52 lines
1.4 KiB
Nix
52 lines
1.4 KiB
Nix
|
{ pkgs, ... }:
|
||
|
{
|
||
|
services.opentelemetry-collector = {
|
||
|
enable = true;
|
||
|
package = pkgs.unstable.opentelemetry-collector-contrib;
|
||
|
settings = {
|
||
|
receivers = {
|
||
|
# provide a influxdb sink
|
||
|
influxdb = {
|
||
|
endpoint = "127.0.0.1:8088";
|
||
|
};
|
||
|
# scrape opentelemetry-colectors metrics
|
||
|
prometheus.config.scrape_configs = [
|
||
|
{
|
||
|
job_name = "netdata";
|
||
|
scrape_interval = "10s";
|
||
|
metrics_path = "/api/v1/allmetrics";
|
||
|
params.format = [ "prometheus" ];
|
||
|
static_configs = [{ targets = [ "127.0.0.1:19999" ]; }];
|
||
|
}
|
||
|
{
|
||
|
job_name = "otelcol";
|
||
|
scrape_interval = "10s";
|
||
|
static_configs = [{ targets = [ "127.0.0.1:8100" ]; }];
|
||
|
metric_relabel_configs = [
|
||
|
{
|
||
|
source_labels = [ "__name__" ];
|
||
|
regex = ".*grpc_io.*";
|
||
|
action = "drop";
|
||
|
}
|
||
|
];
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
exporters = {
|
||
|
# provide prometheus sink under `/metrics` to
|
||
|
prometheus = {
|
||
|
endpoint = "127.0.0.1:8090";
|
||
|
};
|
||
|
};
|
||
|
service = {
|
||
|
pipelines.metrics = {
|
||
|
receivers = [ "influxdb" "prometheus" ];
|
||
|
exporters = [ "prometheus" ];
|
||
|
};
|
||
|
# open telemetries own metrics?
|
||
|
telemetry.metrics.address = "0.0.0.0:8100";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|