Configuration

The configuration file can be found in /data/dalmatinerpx/etc/dpx.conf.

Push-based listeners

The proxy allows listeners to be configured for following line protocols:

NameDocumentationDecoder name
GraphiteGraphite plaintext protocoldp_graphite
Influx DBInflux line protocoldp_influx
Metrics2.0Metrics2.0 specdp_metrics2
OpenTSDBOpenTSDB user guidedp_otsdb
Prometheus Writerdp_prom_writer

Pull-based scrapers

The above protocols all follow a 'push-based' approach. A 'pull-based' approach is also supported by the proxy. To this end, only the Prometheus exposition format is currently supported.

NameDocumentationDecoder name
PrometheusPrometheus exposition formatsdp_prometheus

📘

Multiple instances

It is possible to configure the proxy to have more than one listener or scraper for the same protocol. In this case the port should be unique.

Configuration file

idx.backend

The indexer backend, should be set to dqe_idx_pg, which is required for normal use. The dqe_idx_ddb setting is for experimental use only and is deprecated.

idx.pg.backend_host

Set this to the correct host for the postgres database.

dp_graphite

Configure a Graphite listener by specifying the bucket where data is stored, as well as the listener port and protocol (typically tcp):

listeners.dp_graphite.bucket = Graphite
listeners.dp_graphite.port = 2003
listeners.dp_graphite.protocol = tcp

Please note that the dp_graphite decoder expects the following data in a data submission:

<metricname> <value> <timestamp>\n

The \n is added for clarification. Depending on how you are feeding dp_graphite, the \n may or may not be needed to be sent explicitly, this depends on your client. For example if you use the official Graphite nc example to send data to
dp_graphite nc automatically sends a \n, your client may require it to be sent. Currently, if the \n is not sent dp_graphite will wait for it, unless your client closes the connection, in which case dp_graphite will not error, it just will not accept the data as being valid to process and it will discard the data seemingly, without any errors.

dp_influx

Configure an InfluxDB listener by specifying the bucket where data is stored, as well as the listener port and protocol (typically http):

listeners.dp_influx.bucket = InfluxDB
listeners.dp_influx.port = 8086
listeners.dp_influx.protocol = http

dp_metrics2

Configure a Metrics2.0 listener by specifying the bucket where data is stored, as well as the listener port and protocol (typically tcp):

listeners.dp_metrics2.bucket = Metrics2
listeners.dp_metrics2.port = 8087
listeners.dp_metrics2.protocol = tcp

dp_otsdb

Configure an OpenTSDB listener by specifying the bucket where data is stored, as well as the listener port and protocol (typically tcp):

listeners.dp_otsdb.bucket = OpenTSDB
listeners.dp_otsdb.port = 4242
listeners.dp_otsdb.protocol = tcp

prometheus_scrapers

Configure an prmometheus scrapper by specifying the name of the scraper as prefix to several properties. These properties include the bucket where data is stored, as well as the url from which to scrape and the frequency with which to scrape it.

prometheus_scrapers.my_scraper_name.bucket = prom
prometheus_scrapers.my_scraper_name.url = http://localhost:9100/metrics
prometheus_scrapers.my_scraper_name.frequency = 10s

dp_prom_writer

The Prometheus remote writer can be used to have Prometheus export data into dalmatinerdb for long term storage and visualization.

listeners.dp_prom_writer.bucket = prometheus
listeners.dp_prom_writer.port = 1234
listeners.dp_prom_writer.protocol  = http

📘

Configuration changes

In order for configuration changes to take effect, the service must be restarted.