prometheus-salt-exporter
========================
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 <https://github.com/BonnierNews/saltstack_exporter>`__
Prerequisites
-------------
- Install
`salt <https://docs.saltproject.io/salt/install-guide/en/latest/>`__
- Be on the salt master node
Installation
------------
.. code:: shell
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.
Raw data
{
"_id": null,
"home_page": "https://github.com/ioki-mobility/salt_exporter",
"name": "prometheus-salt-exporter",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "prometheus exporter salt monitoring",
"author": "ioki SRE core",
"author_email": "sre.core@ioki.com",
"download_url": "https://files.pythonhosted.org/packages/ea/ca/a32b15d8f1cc10cff95b75e044f7716a959bb4a05991718c6b12370598af/prometheus-salt-exporter-0.1.4.tar.gz",
"platform": null,
"description": "prometheus-salt-exporter\n========================\n\nPrometheus Exporter for Salt highstate metrics run from the Salt master.\nThe exporter must have permissions to execute commands locally.\n\nNote: Python 2 is not supported. Instead use Python 3.8 or higher.\n\nInspired by `BonnierNews/saltstack_exporter <https://github.com/BonnierNews/saltstack_exporter>`__\n\nPrerequisites\n-------------\n\n- Install\n `salt <https://docs.saltproject.io/salt/install-guide/en/latest/>`__\n- Be on the salt master node\n\nInstallation\n------------\n\n.. code:: shell\n\n pip install prometheus-salt-exporter\n\nConfiguration and Usage\n-----------------------\n\n::\n\n 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]\n [--batch-size BATCH_SIZE] [--salt-target SALT_TARGET] [--log-level LOG_LEVEL]\n\n options:\n -h, --help show this help message and exit\n --listen-addr LISTEN_ADDR\n Address to bind to. IPv4 and IPv6 addresses can be specified. (default: ::)\n --listen-port LISTEN_PORT\n Port to bind to (default: 9175)\n --highstate-interval HIGHSTATE_INTERVAL\n Seconds between each highstate test run (default: 300)\n --wait-on-error-interval WAIT_ON_ERROR_INTERVAL\n Seconds to wait when an error occurs (e.g. salt-master not responding in time) (default: 300)\n --batch-size BATCH_SIZE\n Batch size to use in salt (default: 10)\n --batch-wait BATCH_WAIT\n Seconds to wait after a minion returns, before sending the command to a new minion (default: 10)\n --salt-target SALT_TARGET\n Salt target to be used (default: *)\n --log-level LOG_LEVEL\n log level (default: 30)\n\nMetrics\n-------\n\nCurrently, the exporter exposes metrics for highstate conformity only:\n\n+---------------------------+---------------------------------------------+\n| Metric | Description |\n+===========================+=============================================+\n|| saltstack_states_total || Number of states which apply to the minion |\n|| || in highstate |\n+---------------------------+---------------------------------------------+\n|| saltstack_nonhigh_states || Number of states which would change on |\n|| || state.highstate |\n+---------------------------+---------------------------------------------+\n|| saltstack_error_states || Number of states which returns an error on |\n|| || highstate dry-run |\n+---------------------------+---------------------------------------------+\n| saltstack_highstate_error | Error in trying to apply highstate |\n+---------------------------+---------------------------------------------+\n|| saltstack_last_highstate || Timestamp of the last highstate test run |\n|| || |\n+---------------------------+---------------------------------------------+\n\nOutput\n------\n\n::\n\n # HELP saltstack_last_highstate_total Timestamp of the last highstate test run\n # TYPE saltstack_last_highstate_total counter\n saltstack_last_highstate_total 1.674730426e+09\n # HELP saltstack_states_total Number of states which apply to the minion in highstate\n # TYPE saltstack_states_total gauge\n saltstack_states_total{minion=\"1.minion\"} 271.0\n # HELP saltstack_nonhigh_states Number of states which would change on state.highstate\n # TYPE saltstack_nonhigh_states gauge\n saltstack_nonhigh_states{minion=\"1.minion\"} 13.0\n # HELP saltstack_error_states Number of states which returns an error on highstate dry-run\n # TYPE saltstack_error_states gauge\n saltstack_error_states{minion=\"1.minion\"} 0.0\n # HELP saltstack_highstate_error Error in trying to apply highstate\n # TYPE saltstack_highstate_error gauge\n saltstack_highstate_error{minion=\"1.minion\"} 0.0\n # HELP saltstack_states_total Number of states which apply to the minion in highstate\n # TYPE saltstack_states_total gauge\n saltstack_states_total{minion=\"2.minion\"} 197.0\n # HELP saltstack_nonhigh_states Number of states which would change on state.highstate\n # TYPE saltstack_nonhigh_states gauge\n saltstack_nonhigh_states{minion=\"2.minion\"} 6.0\n # HELP saltstack_error_states Number of states which returns an error on highstate dry-run\n # TYPE saltstack_error_states gauge\n saltstack_error_states{minion=\"2.minion\"} 0.0\n # HELP saltstack_highstate_error Error in trying to apply highstate\n # TYPE saltstack_highstate_error gauge\n saltstack_highstate_error{minion=\"2.minion\"} 0.0\n\n\nTroubleshooting\n---------------\n\nResource issues\n^^^^^^^^^^^^^^^\n\nIf you encounter resource issues (e.g. your ``salt-master`` cannot keep up with providing the highstate), \nplease consider using a combination of ``--batch-wait`` and ``--batch-size`` by decreasing the batch size and increasing \nthe waiting time between requests. \n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Prometheus Exporter for Salt highstate metrics run from the Salt master.",
"version": "0.1.4",
"split_keywords": [
"prometheus",
"exporter",
"salt",
"monitoring"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "342b3d79e2d4ed3395061ddb90c7c8879f8095eb077cb960872c46047139b7b9",
"md5": "5f2a002d0239f9e99c5baa87e81dd4f4",
"sha256": "c5ce46bb2911c6f0596de8405cf0df8d2e275631014701c6955a57403b652b17"
},
"downloads": -1,
"filename": "prometheus_salt_exporter-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5f2a002d0239f9e99c5baa87e81dd4f4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 7584,
"upload_time": "2023-03-31T09:02:58",
"upload_time_iso_8601": "2023-03-31T09:02:58.278139Z",
"url": "https://files.pythonhosted.org/packages/34/2b/3d79e2d4ed3395061ddb90c7c8879f8095eb077cb960872c46047139b7b9/prometheus_salt_exporter-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eacaa32b15d8f1cc10cff95b75e044f7716a959bb4a05991718c6b12370598af",
"md5": "c89411d7bfe7765c9f4b1f63b21a7d14",
"sha256": "86d0270b87b2fd7c09a0d6c73edc9e2ee3ac0a88753ea4bdde169ddb0baa3cf7"
},
"downloads": -1,
"filename": "prometheus-salt-exporter-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "c89411d7bfe7765c9f4b1f63b21a7d14",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 7366,
"upload_time": "2023-03-31T09:02:59",
"upload_time_iso_8601": "2023-03-31T09:02:59.964632Z",
"url": "https://files.pythonhosted.org/packages/ea/ca/a32b15d8f1cc10cff95b75e044f7716a959bb4a05991718c6b12370598af/prometheus-salt-exporter-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-03-31 09:02:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "ioki-mobility",
"github_project": "salt_exporter",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "prometheus-salt-exporter"
}