CLI and Web UI to view targets and alerts of multiple prometheus servers.
Create a configuration file with required prometheus servers in $HOME/.config/promi/config.yaml
:
prometheus-urls:
- http://prometheus101.example.com
- http://prometheus102.example.com
- http://prometheus103.example.com
Or you can create an environment variable:
export PROMI_PROMETHEUS_URLS=http://prometheus101.example.com,http://prometheus102.example.com,http://prometheus103.example.com
If you run the command:
$ promi server
and point your browser to http://localhost:8080 you get the official prometheus web ui with all consolidated targets. The source code is taken from prometheus react-app. Only the targets endpoint work and the classic ui is omitted.
If multiple prometheus servers scrape the same endpoint you can run the server with the option --deduplicate
.
To list all targets run:
$ promi targets
$ promi targets --help
Usage: promi targets
Show targets.
Flags:
-h, --help Show context-sensitive help ($PROMI_HELP).
-u, --prometheus-urls=http://localhost:9090,... A comma separated list of prometheus base URLs ($PROMI_PROMETHEUS_URLS).
--show-config Show used config files ($PROMI_SHOW_CONFIG)
--version Show version information ($PROMI_VERSION)
-d, --debug Show debug output ($PROMI_DEBUG).
--timeout=10s The http request timeout ($PROMI_TIMEOUT).
-o, --output="table" Output format (table|json|yaml) ($PROMI_OUTPUT).
-c, --compact Do not display labels and last error ($PROMI_COMPACT).
-n, --no-headers Do not display headers in table output ($PROMI_NO_HEADERS).
-N, --filter-name=STRING Filter targets by job name (regular expression) ($PROMI_FILTER_NAME).
-S, --filter-server=STRING Filter targets by promehteus server name (regular expression) ($PROMI_FILTER_SERVER).
-u, --filter-scrape-url=STRING Filter targets by scrape url (regular expression) ($PROMI_FILTER_SCRAPE_URL).
-H, --filter-health=HEALTH-STATUS Filter targets by health (up|down) ($PROMI_FILTER_HEALTH)
-s, --filter-selector=STRING Filter services by (k8s style) selector ($PROMI_FILTER_SELECTOR).
To list all alerts run:
$ promi alerts
$ promi alerts --help
Usage: promi alerts
Show alerts.
Flags:
-h, --help Show context-sensitive help ($PROMI_HELP).
-u, --prometheus-urls=http://localhost:9090,... A comma separated list of prometheus base URLs ($PROMI_PROMETHEUS_URLS).
--show-config Show used config files ($PROMI_SHOW_CONFIG)
--version Show version information ($PROMI_VERSION)
-d, --debug Show debug output ($PROMI_DEBUG).
--timeout=10s The http request timeout ($PROMI_TIMEOUT).
-o, --output="table" Output format (table|json|yaml) ($PROMI_OUTPUT).
-n, --no-headers Do not display headers in table output ($PROMI_NO_HEADERS).
-N, --filter-name=STRING Filter alerts by job name (regular expression) ($PROMI_FILTER_NAME).
-a, --filter-alert=STRING Filter alerts by alert name (regular expression) ($PROMI_FILTER_ALERT).
-S, --filter-server=STRING Filter alerts by prometheus server name (regular expression) ($PROMI_FILTER_SERVER).
-s, --filter-state=ALERT-STATE Filter alerts by state (pending|firing) ($PROMI_FILTER_STATE)