Skip to content

kpetremann/salt-exporter

Repository files navigation

Latest Go CI GitHub

Buy Me A Coffee

Salt Live

salt-run state.event pretty=True under steroids

Salt Exporter comes with Salt Live. This is a Terminal UI tool to watch events in real time.

demo

Salt Exporter

Salt Exporter is a Prometheus exporter for Saltstack events. It exposes relevant metrics regarding jobs and results.

This exporter is passive. It does not use the Salt API.

It works out of the box: you just need to run the exporter on the same user as the Salt Master.

$ ./salt-exporter
$ curl -s 127.0.0.1:2112/metrics

salt_expected_responses_total{function="cmd.run", state=""} 6
salt_expected_responses_total{function="state.sls",state="test"} 1

salt_function_responses_total{function="cmd.run",state="",success="true"} 6
salt_function_responses_total{function="state.sls",state="test",success="true"} 1

salt_function_status{minion="node1",function="state.highstate",state="highstate"} 1

salt_new_job_total{function="cmd.run",state="",success="false"} 3
salt_new_job_total{function="state.sls",state="test",success="false"} 1

salt_responses_total{minion="local",success="true"} 6
salt_responses_total{minion="node1",success="true"} 6

salt_scheduled_job_return_total{function="state.sls",minion="local",state="test",success="true"} 2

salt_health_last_heartbeat{minion="local"} 1703053536
salt_health_last_heartbeat{minion="node1"} 1703053536

salt_responses_last_received_response{minion="local"} 1703053537
salt_responses_last_received_response{minion="node1"} 1703053535

salt_health_minions_total{} 2

The exporter tracks minion health using multiple metrics:

  • salt_health_last_heartbeat: last heartbeat timestamp from status beacons
  • salt_responses_last_received_response: last received response timestamp (job results, events, etc.)

Deprecation notice

-health-minions, health-functions-filter and health-states-filter are deprecated. They should be replaced by metrics configuration in the config.yml file.

The equivalent of ./salt-exporter -health-minions -health-functions-filter "func1,func2" -health-states-filter "state1,state2" is:

metrics:
  salt_responses_total:
    enabled: true

  salt_function_status:
    enabled: true
    filters:
      functions:
        - "func1"
        - "func2"
      states:
        - "state1"
        - "state2"

Installation

Just use the binary from Github releases page.

Or, install from source:

  • latest published version: go install github.com/kpetremann/salt-exporter/cmd/salt-exporter@latest
  • latest commit (unstable): go install github.com/kpetremann/salt-exporter/cmd/salt-exporter@main

Usage

Simply run: ./salt-exporter

The exporter can be configured in different ways, with the following precedence order:

  • flags
  • environment variables
  • configuration file (config.yml)

See the official documentation for more details

About

Salt Prometheus exporter working out of the box without any configuration on Salt side. Comes with an event watcher TUI.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors

Languages