# This section defines default settings for how queries should be run.
# All settings can be overridden for any given query in its own section.
# The values shown in this example are also the fallback values used if
# a setting is not specified in the DEFAULT section or a query's section.
[DEFAULT]
# How often to run queries.
QueryIntervalSecs = 15
# How long to wait for a query to return before timing out.
QueryTimeoutSecs = 10
# The indices to run the query on.
# Any way of specifying indices supported by your Elasticsearch version can be used.
QueryIndices = _all

# Queries are defined in sections beginning with 'query_'.
# Characters following this prefix will be used as a prefix for all metrics
# generated for this query
[query_all]
# Settings that are not specified are inheritied from the DEFAULT section.
# The search query to run.
QueryJson = {
        "size": 0,
        "query": {
            "match_all": {}
        }
    }

[query_terms]
# The DEFAULT settings can be overridden.
QueryIntervalSecs = 20
QueryTimeoutSecs = 15
QueryIndices = <logstash-{now/d}>
QueryJson = {
        "size": 0,
        "query": {
            "match_all": {}
        },
        "aggs": {
            "group1_terms": {
                "terms": {"field": "group1"},
                "aggs": {
                    "val_sum": {
                        "sum": {"field": "val"}
                    }
                }
            }
        }
    }
