Api:
  # To configure Keystone correctly, a project-scoped token must be acquired.
  # To accomplish this, the configuration must be set up with one of the
  # following scenarios:
  #   Set username and password and you have a default project set in keystone.
  #   Set username, password and project id.
  #   Set username, password, project name and (domain id or domain name).
  #
  # Monitoring API URL (example: https://region-a.geo-1.monitoring.hpcloudsvc.com:8080/v2.0)
  # If undefined, it will be pulled from Keystone Service Catalog optionally filtering by
  # service_type ('monitoring' by default), endpoint_type ('publicURL' by default) and/or
  # region_name (none by default).
  url: {args.monasca_url}
  service_type: {args.service_type}
  endpoint_type: {args.endpoint_type}
  region_name: {args.region_name}
  # Keystone Username
  username: {args.username}
  # Keystone Password
  password: "{args.password}"
  # Keystone API URL: URL for the Keystone server to use
  # Example: https://region-a.geo-1.identity.hpcloudsvc.com:35357/v3/
  keystone_url: {args.keystone_url}
  # Domain id to be used to resolve username
  user_domain_id: {args.user_domain_id}
  # Domain name to be used to resolve username
  user_domain_name: {args.user_domain_name}
  # Project name to be used by this agent
  project_name: {args.project_name}
  # Project domain id to be used by this agent
  project_domain_id: {args.project_domain_id}
  # Project domain id to be used by this agent
  project_domain_name: {args.project_domain_name}
  # Project id to be used by this agent
  project_id: {args.project_id}
  # Set whether certificates are used for Keystone
  # *******************************************************************************************
  # **** CAUTION ****: The insecure flag should NOT be set to True in a production environment!
  # *******************************************************************************************
  # If insecure is set to False, a ca_file name must be set to authenticate with Keystone
  insecure: {args.insecure}
  # Name of the ca certs file
  ca_file: {args.ca_file}

  # The following 3 options are for handling buffering and reconnection to the monasca-api
  # If the agent forwarder is consuming too much memory, you may want to set
  # max_measurement_buffer_size to a lower value. If you have a larger system with many agents,
  # you may want to throttle the number of messages sent to the API by setting the
  # backlog_send_rate to a lower number.

  # DEPRECATED - please use max_measurement_buffer_size instead
  # Maximum number of messages (batches of measurements) to buffer when unable to communicate
  # with the monasca-api (-1 means no limit)
  max_buffer_size: {args.max_buffer_size}
  # Maximum number of measurements to buffer when unable to communicate with the monasca-api
  # (-1 means no limit)
  max_measurement_buffer_size: {args.max_measurement_buffer_size}
  # Maximum number of messages to send at one time when communication with the monasca-api is restored
  backlog_send_rate: {args.backlog_send_rate}
  # Maximum batch size of measurements to write to monasca-api, 0 is no limit
  max_batch_size: {args.max_batch_size}

  # Publish extra metrics to the API by adding this number of 'amplifier' dimensions.
  # For load testing purposes only; set to 0 for production use.
  amplifier: {args.amplifier}

Main:
  # Force the hostname to whatever you want.
  hostname: {hostname}

  # Optional dimensions to be sent with every metric from this node
  # They should be in the format name: value
  # Example of dimensions below
  # dimensions:
  #   service: nova
  #   group: group_a
  #   environment: production
  dimensions: {args.dimensions}

  # Set the threshold for accepting points to allow anything
  # with recent_point_threshold seconds
  # Defaults to 30 seconds if no value is provided
  #recent_point_threshold: 30

  # time to wait between collection runs
  check_freq: {args.check_frequency}

  # Number of Collector Threads to run
  num_collector_threads: {args.num_collector_threads}

  # Maximum number of collection cycles where all of the threads in the pool are
  # still running plugins before the collector will exit
  pool_full_max_retries: {args.pool_full_max_retries}

  # Threshold value for warning on collection time of each check (in seconds)
  sub_collection_warn: {args.plugin_collect_time_warn}

  # Collector restart interval (in hours)
  collector_restart_interval: 24

  # Change port the Agent is listening to
  # listen_port: 17123

  # Allow non-local traffic to this Agent
  # This is required when using this Agent as a proxy for other Agents
  # that might not have an internet connection
  # For more information, please see
  # https://github.com/DataDog/dd-agent/wiki/Network-Traffic-and-Proxy-Configuration
  # non_local_traffic: no

  # Submits all metrics to this tenant unless specified by the metric.
  # This is the equivalent of submitting delegated_tenant with all metrics, and when
  # not set will submit metrics to the default tenant of the provided credentials.
  # Used when deploying the agent to systems where the credentials of the monitored
  # tenant are not known.
  # global_delegated_tenant:

Statsd:
  # ========================================================================== #
  # Monasca Statsd configuration                                                    #
  # ========================================================================== #
  # Monasca Statsd is a small server that aggregates your custom app metrics.

  #  Make sure your client is sending to the same port.
  monasca_statsd_port : {args.monasca_statsd_port}

  ## The monasca_statsd flush period.
  monasca_statsd_interval : {args.monasca_statsd_interval}

  # If you want to forward every packet received by the monasca_statsd server
  # to another statsd server, uncomment these lines.
  # WARNING: Make sure that forwarded packets are regular statsd packets and not "monasca_statsd" packets,
  # as your other statsd server might not be able to handle them.
  # monasca_statsd_forward_host: address_of_own_statsd_server
  # monasca_statsd_statsd_forward_port: 8125

Logging:
  # ========================================================================== #
  # Logging
  # ========================================================================== #
  log_level: {args.log_level}
  collector_log_file: {args.log_dir}/collector.log
  forwarder_log_file: {args.log_dir}/forwarder.log
  statsd_log_file: {args.log_dir}/statsd.log
  enable_logrotate: {args.enable_logrotate}

  # if syslog is enabled but a host and port are not set, a local domain socket
  # connection will be attempted
  #
  # log_to_syslog: yes
  # syslog_host:
  # syslog_port:
