Service Discovery Configuration Options

Service Discovery

Service Discovery configuration templates

Prometheus DC/OS service discovery can be configured along with the default Prometheus configuration. You can use the following templates to pass along a default Prometheus configuration using the Prometheus yml.


Consul SD configurations allow you to retrieve scrape targets from Consul’s Catalog API. Finding targets requires two stages.

  1. A service discovery method such as Consul returns potential targets with metadata.
  2. Relabelling allows you to choose which of those targets you want to scrape, and how to convert the metadata into target labels.

If you want to monitor all services with a prod tag and use the Consul service name as the job label, your scrape configuration would look like this:

Template for consul sd config :

# The information to access the Consul API. It is to be defined
# as the Consul documentation requires
  - job_name: dummy
      - server: 'localhost:8500'
      - source_labels: [__meta_consul_tags]
        regex: .*,prod,.*
        action: keep
      - source_labels: [__meta_consul_service]
        target_label: job

The first relabel action reserves processing only to those targets which have a prod tag. Prometheus exposes the Consul tags as a comma separated list in the label called __meta_consul_tags, with leading and trailing commas added for convenience.

The second relabel action copies the service name from the __meta_consul_service label to the job label. This action takes advantage of the default values for relabel actions, as a straight copy from one label to another is common.


A DNS-based service discovery configuration allows you to specify a set of DNS domain names which are periodically queried to discover a list of targets. This service discovery method only supports basic DNS A, AAAA and SRV record queries.

Default dns sd configuration in dcos prometheus:

- job_name: master-metrics #job name
  # All master nodes are available at master.mesos via their A record
    - names: ['master.mesos'] # A list of DNS domain names to be queried.
      type: 'A' # The type of DNS query to perform.
      port: 61091 # The port number used if the query type is not SRV.


EC2 SD configurations allow you to retrieve scrape targets from AWS EC2 instances.

Template for EC2_sd_config:

# The information to access the EC2 API.
  - job_name: 'node' # mention job name as desired
      - region: eu-west-1 # The AWS Region.
        access_key: PUT_THE_ACCESS_KEY_HERE
        secret_key: PUT_THE_SECRET_KEY_HERE
        port: 9100

See Prometheus Configuration for all options.