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:
Name | Documentation | Decoder name |
Graphite | ο»Ώ[Graphite plaintext protocol](πο»Ώ)ο»Ώ | dp_graphite |
Influx DB | ο»Ώ[Influx line protocol](πο»Ώ)ο»Ώ | dp_influx |
Metrics2.0 | ο»Ώ[Metrics2.0 spec](πο»Ώ)ο»Ώ | dp_metrics2 |
OpenTSDB | ο»Ώ[OpenTSDB user guide](πο»Ώ)ο»Ώ | dp_otsdb |
Prometheus Writer | ο»Ώ | dp_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.
Name | Documentation | Decoder name |
Prometheus | ο»Ώ[Prometheus exposition formats](πο»Ώ)ο»Ώ | dp_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
`):
βxlisteners.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:
xxxxxxxxxx
1<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
`):
xxxxxxxxxx
1listeners.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
`):
xxxxxxxxxx
1listeners.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
`):
xxxxxxxxxx
1listeners.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.
xxxxxxxxxx
1prometheus_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.
xxxxxxxxxx
1listeners.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.