Metadata-Version: 1.1
Name: query-exporter
Version: 0.1.2
Summary: Export Prometheus metrics generated from SQL queries.
Home-page: https://github.com/albertodonato/query-exporter
Author: Alberto Donato
Author-email: alberto.donato@gmail.com
License: GPLv3+
Description: # query-exporter - Export Prometheus metrics from SQL queries
        
        [![Latest Version](https://img.shields.io/pypi/v/query-exporter.svg)](https://pypi.python.org/pypi/query-exporter)
        [![Build Status](https://travis-ci.org/albertodonato/query-exporter.svg?branch=master)](https://travis-ci.org/albertodonato/query-exporter)
        [![Coverage Status](https://codecov.io/gh/albertodonato/query-exporter/branch/master/graph/badge.svg)](https://codecov.io/gh/albertodonato/query-exporter)
        
        `query-exporter` is a [Prometheus](https://prometheus.io/) exporter which
        allows collecting metrics from database queries, at specified time intervals.
        
        It currently supports [PostgreSQL](https://www.postgresql.org/) as a backend
        database.
        
        Each query can be run on multiple databases, and update multiple metrics.
        
        The application is called with a configuration file that looks like this:
        
        ```yaml
        
        databases:
          db1:
            dsn: dbname=sampledb1
          db2:
            dsn: dbname=sampledb2
        
        metrics:
          metric1:
            type: gauge
            description: A sample gauge
          metric2:
            type: summary
            description: A sample summary
          metric3:
            type: histogram
            description: A sample histogram
            buckets: [10, 20, 50, 100, 1000]
        
        queries:
          query1:
            interval: 30
            databases: [db1]
            metrics: [metric1]
            sql: SELECT random() * 100
          query2:
            interval: 1m
            databases: [db1, db2]
            metrics: [metric2, metric3]
            sql: SELECT random() * 1000, random() * 10000
        
        ```
        
        The `metrics` list in the query configuration must match values returned by the
        query defined in `sql`.
        
        The `interval` value is interpreted as seconds if no suffix is specified; valid
        suffix are `s`, `m`, `h`, `d`. Only integer values can be specified.
        
        Queries will usually return a single row, but multiple rows are supported, and
        each row will cause an update of the related metrics.
        
        For the configuration above, exported metrics look like this:
        
        ```
        # HELP metric1 A sample gauge
        # TYPE metric1 gauge
        metric1{database="db1"} 13.8291064184159
        # HELP metric2 A sample summary
        # TYPE metric2 summary
        metric2_count{database="db1"} 1.0
        metric2_sum{database="db1"} 889.48124460876
        metric2_count{database="db2"} 1.0
        metric2_sum{database="db2"} 665.63375480473
        # HELP metric3 A sample histogram
        # TYPE metric3 histogram
        metric3_bucket{database="db1",le="10.0"} 0.0
        metric3_bucket{database="db1",le="20.0"} 0.0
        metric3_bucket{database="db1",le="50.0"} 0.0
        metric3_bucket{database="db1",le="100.0"} 0.0
        metric3_bucket{database="db1",le="1000.0"} 0.0
        metric3_bucket{database="db1",le="+Inf"} 1.0
        metric3_count{database="db1"} 1.0
        metric3_sum{database="db1"} 9988.39943669736
        metric3_bucket{database="db2",le="10.0"} 0.0
        metric3_bucket{database="db2",le="20.0"} 0.0
        metric3_bucket{database="db2",le="50.0"} 0.0
        metric3_bucket{database="db2",le="100.0"} 0.0
        metric3_bucket{database="db2",le="1000.0"} 0.0
        metric3_bucket{database="db2",le="+Inf"} 1.0
        metric3_count{database="db2"} 1.0
        metric3_sum{database="db2"} 9923.82999043912
        ```
        
        Metrics are automatically tagged with the `database` label so that indipendent
        series are generated for each database.
        
Keywords: sql metric prometheus exporter
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Utilities
