Skip to content
This repository has been archived by the owner on Nov 18, 2020. It is now read-only.

atombender/prompt

Repository files navigation

Prompt

Prompt is an exporter for Prometheus that spawns a set of registered exporters on demand as subprocesses.

It exposes two endpoints:

  • /metrics will spawn all exporters concurrently and return their results as a single text document.
  • /metrics/<name> will spawn a single exporter.

A subprocess is expected to write the Prometheus text file format to standard output. If a subprocess fails, its output is not included in the merged output.

Installation

$ go get github.com/atombender/prompt

Configuration

Example YAML configuration:

exporters:
- name: elasticsearch
  command: /opt/exporters/elasticsearch localhost:9200
  minInterval: 10

The minInterval specifies an optional interval during which the output will be cached in memory. This allows per-command caching without requiring that scrapeInterval be tuned centrally in the Prometheus configuration.

The command is wrapped with sh -c "<command>" and will inherit the environment and user context of the parent process. It's recommended that you use sudo -u nobody or similar whenever possible.

Running

Example invocation:

$ prompt -l localhost:9100 -c prompt.conf

The -c option can be specified multiple times, and supports directories: -c conf.d will read all .conf files inside that directory.

To daemonize, run using a process manager such as Systemd, Upstart, Debian's start-stop-process or similar.

License

MIT license. See the LICENSE file.

About

Prompt is an exporter for Prometheus that spawns a set of registered exporters on demand as subprocesses.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages