Skip to main content

A Netbox plugin to export targets for Prometheus HTTP service discovery

Project description

netbox-plugin-prometheus-http-sd

Demo

docker-compose up -d

docker exec netbox-plugin-prometheus-http-sd-netbox-1 /opt/netbox/netbox/manage.py load_initializer_data --path /etc/netbox/initializer-data

Login into Netbox (http://localhost:8080) and create Config Context named prometheus_role_map with the following JSON structure:

{
    "prometheus_exporters": {
        "default": [
            {
                "job": "node-exporter",
                "port": 9100
            }
        ],
        "etcd": [
            {
                "job": "node-exporter",
                "port": 9100
            },
            {
                "job": "etcd-exporter",
                "port": 2379
            }
        ],
        "postgresql": [
            {
                "job": "node-exporter",
                "port": 9100
            },
            {
                "job": "postgresql-exporter",
                "port": 9187
            }
        ],
        "vault": [
            {
                "job": "vault-exporter",
                "scheme": "https",
                "metrics_path": "/v1/sys/metrics",
                "params": {
                    "format": [
                        "prometheus"
                    ]
                },
                "port": 8200
            }
        ]
    }
}

Each role can have multiple jobs (one target per job is generated)

If role is not found, the default entry is used

Usage

The plugin exposes a single API endpoint (no web UI):

GET /api/plugins/prometheus-sd/targets/

Device or Virtual Machine is included only if all of the following are true:

  1. It has status active
  2. The custom field role is present and non‑empty

Metrics labels

Labels:

  • job – Prometheus job name defined in the mapping
  • __meta_netbox_name – object name
  • __meta_netbox_typedevice or vm
  • __meta_netbox_cf_<custom_field> – every custom field prefixed with __meta_netbox_cf_

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netbox_plugin_prometheus_http_sd-0.2.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file netbox_plugin_prometheus_http_sd-0.2.0.tar.gz.

File metadata

File hashes

Hashes for netbox_plugin_prometheus_http_sd-0.2.0.tar.gz
Algorithm Hash digest
SHA256 485a620aac3ae3c02f69deefc7b36df3de17d30618075040b8c69d35ef6dbff4
MD5 a0e6cc338dce44bbec129e0472ce746e
BLAKE2b-256 5572915cf4d48bee4da76e72344e978edb981ce608e66f76286a5da6539cbf03

See more details on using hashes here.

File details

Details for the file netbox_plugin_prometheus_http_sd-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for netbox_plugin_prometheus_http_sd-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b85aa78da2bb54854c4be08ee30ee9027ae360374b69cf2a5aa5fe9664182797
MD5 7d2af159cd56ff7be7bebb78757bc665
BLAKE2b-256 a2fe30583c59827fa10c60f68f49623cd9e5d2d8a0f9b93b4145238be20cdb03

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page