Skip to content

camptocamp/prometheus-puppetdb-sd

Repository files navigation

Prometheus PuppetDB SD

Docker Pulls Build Status Coverage Status Go Report Card By Camptocamp

Prometheus PuppetDB SD is a PuppetDB based service discovery tool for Prometheus. It queries PuppetDB to retrieve a list of targets and output Prometheus configuration to scrape the discovered targets.

Installing

$ go get github.com/camptocamp/prometheus-puppetdb-sd

Usage

Usage:
  prometheus-puppetdb-sd [OPTIONS]

Application Options:
  -V, --version                                                             Display version.
  -m, --manpage                                                             Output manpage.
  -s, --sleep=                                                              Sleep time between queries. (default: 5s) [$SLEEP]

PuppetDB Client Options:
  -u, --puppetdb.url=                                                       PuppetDB base URL. (default: http://puppetdb:8080) [$PUPPETDB_URL]
  -x, --puppetdb.cert-file=                                                 A PEM encoded certificate file. [$PUPPETDB_CERT_FILE]
  -y, --puppetdb.key-file=                                                  A PEM encoded private key file. [$PUPPETDB_KEY_FILE]
  -z, --puppetdb.cacert-file=                                               A PEM encoded CA's certificate file. [$PUPPETDB_CACERT_FILE]
  -k, --puppetdb.ssl-skip-verify                                            Skip SSL verification. [$PUPPETDB_SSL_SKIP_VERIFY]
  -q, --puppetdb.query=                                                     PuppetDB query. (default: resources[certname, parameters] { type = 'Prometheus::Scrape_job' and exported = true }) [$PUPPETDB_QUERY]

Prometheus Service Discovery Options:
      --prometheus.proxy-url=                                               Prometheus target scraping proxy URL. [$PROMETHEUS_PROXY_URL]

Output Configuration:
  -o, --output.method=[stdout|file|k8s-secret]                              Output method. (default: stdout) [$OUTPUT_METHOD]
      --output.format=[scrape-configs|static-configs|merged-static-configs] Output format. (default: scrape-configs) [$OUTPUT_FORMAT]

File Output Configuration:
  -f, --output.file.filename=                                               Output filename. (default: puppetdb-sd.yml) [$OUTPUT_FILENAME]
      --output.file.filename-pattern=                                       Output filename pattern ('*' is the placeholder). (default: *.yml) [$OUTPUT_FILENAME_PATTERN]
      --output.file.directory=                                              Output directory. (default: /etc/prometheus/puppetdb-sd) [$OUTPUT_DIRECTORY]

Kubernetes Secret Output Configuration:
      --output.k8s-secret.secret-name=                                      Kubernetes secret name. [$OUTPUT_K8S_SECRET_NAME]
      --output.k8s-secret.namespace=                                        Kubernetes namespace. [$OUTPUT_K8S_NAMESPACE]
      --output.k8s-secret.object-labels=                                    Labels to add to Kubernetes objects. (default: app.kubernetes.io/name:prometheus-puppetdb-sd) [$OUTPUT_K8S_OBJECT_LABELS]
      --output.k8s-secret.secret-key=                                       Kubernetes secret key. [$OUTPUT_K8S_SECRET_KEY]
      --output.k8s-secret.secret-key-pattern=                               Kubernetes secret key pattern ('*' is the placeholder). [$OUTPUT_K8S_SECRET_KEY_PATTERN]

Help Options:
  -h, --help                                                                Show this help message

How does it work

Prometheus PuppetDB SD works by querying PuppetDB for Prometheus::Scrape_job exported resources. These resources comes from the Prometheus Puppet module either by setting the export_scrape_job parameter to true when using the module's exporter classes or the module's defined type prometheus::daemon, or by using the module's defined type prometheus::scrape_job directly.

Prometheus PuppetDB SD then build a Prometheus scrape configuration list from the discovered targets and output it using the chosen method and format.

About

Generate scrape files for Prometheus from PuppetDB

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors