aws-target-discovery

Discovers AWS EC2 instance targets for Prometheus


License
Apache-2.0
Install
pip install aws-target-discovery==0.3.0

Documentation

AWS Target Discovery for Prometheus

Features

Dynamically discovers list of EC2 instances for Prometheus Monitoring.

IAM role policy that it needs:

{
"Version": "2012-10-17",
"Statement": {
    "Effect": "Allow",
    "Action": [
        "ec2:DescribeInstances",
    ],
    "Resource": "*"
}
}

Configuration file example (default location is /etc/aws_target_discovery.conf):

---
# Query interval (seconds).
interval: 60
# Log file location.
logfile:  /etc/prometheus/aws_node_discover.log
# Temporary location to store target lists.
temp_directory: /tmp
# Location that Prometheus expects to find static target files.
prometheus_target_directory: /etc/prometheus
# List of targets based on role and NameTag filter and regions.
# Returns list of targets based on Type. It can be name or ip.
targets:
    database:
        filter: *
        region: us-east-1
        type: ip
        port: 9100
    web_server:
        filter:  *
        region: us-east-2
        type: name
        port: 9190

Generated file example:

[
    {
        "targets": [
            "192.168.126.216:9100",
            "192.168.127.179:9100",
            "192.168.126.229:9100",
            "192.168.126.71:9100",
            "192.168.126.19:9100",
            "192.168.126.41:9100",
            "192.168.126.130:9100",
        ],
        "lables": {
            "role": "database"
        }
    }
]