Skip to main content

Prometheus Exporter for Salt highstate metrics run from the Salt master.

Project description

Prometheus Exporter for Salt highstate metrics run from the Salt master. The exporter must have permissions to execute commands locally.

Note: Python 2 is not supported. Instead use Python 3.8 or higher.

Inspired by BonnierNews/saltstack_exporter

Prerequisites

  • Install salt

  • Be on the salt master node

Installation

pip install prometheus-salt-exporter

Configuration and Usage

usage: prometheus_salt_exporter [-h] [--listen-addr LISTEN_ADDR] [--listen-port LISTEN_PORT] [--highstate-interval HIGHSTATE_INTERVAL] [--wait-on-error-interval WAIT_ON_ERROR_INTERVAL]
               [--batch-size BATCH_SIZE] [--salt-target SALT_TARGET] [--log-level LOG_LEVEL]

options:
-h, --help            show this help message and exit
--listen-addr LISTEN_ADDR
                        Address to bind to. IPv4 and IPv6 addresses can be specified. (default: ::)
--listen-port LISTEN_PORT
                        Port to bind to (default: 9175)
--highstate-interval HIGHSTATE_INTERVAL
                        Seconds between each highstate test run (default: 300)
--wait-on-error-interval WAIT_ON_ERROR_INTERVAL
                        Seconds to wait when an error occurs (e.g. salt-master not responding in time) (default: 300)
--batch-size BATCH_SIZE
                        Batch size to use in salt (default: 10)
--batch-wait BATCH_WAIT
                        Seconds to wait after a minion returns, before sending the command to a new minion (default: 10)
--salt-target SALT_TARGET
                        Salt target to be used (default: *)
--log-level LOG_LEVEL
                        log level (default: 30)

Metrics

Currently, the exporter exposes metrics for highstate conformity only:

Metric

Description

saltstack_states_total

Number of states which apply to the minion
in highstate
saltstack_nonhigh_states

Number of states which would change on
state.highstate
saltstack_error_states

Number of states which returns an error on
highstate dry-run

saltstack_highstate_error

Error in trying to apply highstate

saltstack_last_highstate

Timestamp of the last highstate test run

Output

# HELP saltstack_last_highstate_total Timestamp of the last highstate test run
# TYPE saltstack_last_highstate_total counter
saltstack_last_highstate_total 1.674730426e+09
# HELP saltstack_states_total Number of states which apply to the minion in highstate
# TYPE saltstack_states_total gauge
saltstack_states_total{minion="1.minion"} 271.0
# HELP saltstack_nonhigh_states Number of states which would change on state.highstate
# TYPE saltstack_nonhigh_states gauge
saltstack_nonhigh_states{minion="1.minion"} 13.0
# HELP saltstack_error_states Number of states which returns an error on highstate dry-run
# TYPE saltstack_error_states gauge
saltstack_error_states{minion="1.minion"} 0.0
# HELP saltstack_highstate_error Error in trying to apply highstate
# TYPE saltstack_highstate_error gauge
saltstack_highstate_error{minion="1.minion"} 0.0
# HELP saltstack_states_total Number of states which apply to the minion in highstate
# TYPE saltstack_states_total gauge
saltstack_states_total{minion="2.minion"} 197.0
# HELP saltstack_nonhigh_states Number of states which would change on state.highstate
# TYPE saltstack_nonhigh_states gauge
saltstack_nonhigh_states{minion="2.minion"} 6.0
# HELP saltstack_error_states Number of states which returns an error on highstate dry-run
# TYPE saltstack_error_states gauge
saltstack_error_states{minion="2.minion"} 0.0
# HELP saltstack_highstate_error Error in trying to apply highstate
# TYPE saltstack_highstate_error gauge
saltstack_highstate_error{minion="2.minion"} 0.0

Troubleshooting

Resource issues

If you encounter resource issues (e.g. your salt-master cannot keep up with providing the highstate), please consider using a combination of --batch-wait and --batch-size by decreasing the batch size and increasing the waiting time between requests.

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

prometheus-salt-exporter-0.1.4.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

prometheus_salt_exporter-0.1.4-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file prometheus-salt-exporter-0.1.4.tar.gz.

File metadata

  • Download URL: prometheus-salt-exporter-0.1.4.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for prometheus-salt-exporter-0.1.4.tar.gz
Algorithm Hash digest
SHA256 86d0270b87b2fd7c09a0d6c73edc9e2ee3ac0a88753ea4bdde169ddb0baa3cf7
MD5 c89411d7bfe7765c9f4b1f63b21a7d14
BLAKE2b-256 eacaa32b15d8f1cc10cff95b75e044f7716a959bb4a05991718c6b12370598af

See more details on using hashes here.

File details

Details for the file prometheus_salt_exporter-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: prometheus_salt_exporter-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for prometheus_salt_exporter-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c5ce46bb2911c6f0596de8405cf0df8d2e275631014701c6955a57403b652b17
MD5 5f2a002d0239f9e99c5baa87e81dd4f4
BLAKE2b-256 342b3d79e2d4ed3395061ddb90c7c8879f8095eb077cb960872c46047139b7b9

See more details on using hashes here.

Supported by

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