Metadata-Version: 2.1
Name: promesque
Version: 0.0.2
Summary: Configurable Prometheus exporter for results of Elasticsearch queries
Home-page: https://github.com/croesnick/promesque
Author: Carsten Rösnick-Neugebauer
Author-email: croesnick@gmail.com
License: MIT
Download-URL: https://github.com/croesnick/promesque/archive/v0.0.2.tar.gz
Keywords: prometheus,prometheus-exporter,elasticsearch
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: Utilities
Requires-Python: ~=3.6
Requires-Dist: PyYAML (~=3.12)
Requires-Dist: click (~=6.7)
Requires-Dist: ruamel.yaml (~=0.15)
Requires-Dist: prometheus-client (~=0.2)
Requires-Dist: requests (~=2.19)
Requires-Dist: jsonpath-ng (~=1.4)

promesque
=========

*promesque* is a configurable Prometheus exporter for results of Elasticsearch queries.

Installation
------------

::

    pip3 install promesque

Usage
-----

::

    promesque path/to/some/config.yml --log-level info

Refer to ``exporter_es.yml`` as an example for such a config.
The supported fields are explained below.


Configuration File
------------------

Configuration file is in a yaml format with single configuration scope (``metrics``).

Each item in ``metrics`` scope define a metric and must have following attributes:

- ``description``: description of a metric (what it does)
- ``data_path``: jsonpath to data buckets in Elasticsearch response to build metrics from (default: ``$``)
- ``value_path``: jsonpath to metric value within data bucket
- ``labels``: inner scope with ``name: reference`` for each metric:
    - ``name``: name of label exposed by exporter
    - ``reference``: jsonpath to label value within data bucket
- ``url``: url to Elasticsearch cluster (include index)
- ``query``: query in json format; must
    - *either* be inclosed in single quotes (e.g. ``'{ "query": {...} }'``)
    - *or* written in `YAML block notation <http://yaml.org/spec/1.2/spec.html#|%20literal%20style//>`_
      with proper indentation, e.g.,

      ::

        es_query: |
          {
            "query": {
              ...
            }
          }

