Provider Connectors

RRD

The RRD connector (type rrd) can read RRDtool files to extract stored metrics.

Example provider definition using the RRD connector:

{
    "connector": {
        "type": "rrd",
        "path": "/var/lib/collectd/rrd",
        "pattern": "(?P<source>[^/]+)/(?P<metric>.+).rrd",
        "daemon": "unix:/var/run/rrdcached.sock"
    },

    …
}
Note: in JSON you need to double the escaping character \ when writing regular expressions (e.g. \d → \\d).

Mandatory settings:

Optional settings:

Graphite

The Graphite connector (type graphite) can query a Graphite-web HTTP API to access metrics received by its Carbon daemon.

You have to set a regular expression pattern that matches the Carbon metric path format in order to translate original Graphite series names into catalog source and metrics (e.g. for a metric path www1.network.eth0.if_octets.tx, the source would be “www1” and the metric “network.eth0.if_octets.tx”).

Example provider definition using the Graphite connector:

{
    "connector": {
        "type": "graphite",
        "url": "http://my.graphite.server.example.net/",
        "pattern": "(?P<source>[^\\.]+)\\.(?P<metric>.+)"
    },

    …
}

Mandatory settings:

Optional settings:

KairosDB

The KairosDB connector (type kairosdb) can query a KairosDB REST API to access time series.

source and metric are modelled distinguishable in KairosDB. The metric is accessible directly and the source is modelled as a named tag list for each metric. The list defaults to ["host", "server", "device"]. Means that source is built from metrics host tag or server tag if host is not applied.

Because C*/KairosDB could store high frequency series, it is possible to retrieve plots by aggregation. The default aggregation for each metric is none. Could be overwritten by default_aggregator.

Example provider definition using the KairosDB connector:

{
    "connector": {
        "type": "kairosdb",
        "url": "http://localhost:8080/",
        "source_tags": [ "host", "name" ],
        "start_relative": { "value": 6, "unit": "months" },
        "aggregators": [
          { "metric": "^entropy\\.",
            "aggregator": { "name": "min",
                            "sampling": { "value": 5, "unit": "minutes" } } },
          { "metric": "\\.[tr]x$",
            "aggregator": { "name": "max",
                            "sampling": { "value": 5, "unit": "minutes" } } }
        ]
    },

    …
}

Mandatory settings:

Optional settings:

InfluxDB

The InfluxDB connector (type influxdb) can query a InfluxDB database through the HTTP API to access stored metrics.

You have to set a regular expression pattern that matches the InfluxDB series names in order to translate them into catalog source and metrics (e.g. for a series named webapp1.req.5xx, the source would be “webapp1” and the metric “req.5xx”).

Example provider definition using the Graphite connector:

{
    "connector": {
        "type": "influxdb",
        "host": "my.influxdb.server.example.net:8086",
        "database": "webapps",
        "pattern": "(?P<source>[^\\.]+)\\.(?P<metric>.+)"
    },

    …
}

Mandatory settings:

Optional settings:

Facette

The Facette connector (type facette) can query another Facette instance to retrieve and include the upstream catalog to inherit its origins, sources and metrics; the connector then forwards plot queries to the upstream instance when remote metrics are requested in a local graph definition.

This feature can be useful in various cases, for exemple when your metrics are sharded into several nodes for performance/space reasons, or if your want to aggregate metrics from different tools in the same Facette instance.

Example provider definition using the Facette connector:

{
    "connector": {
        "type": "facette",
        "upstream": "http://demo.facette.io/"
    },

    …
}

Mandatory settings:

Optional settings: