59 lines
1.5 KiB
Nix
59 lines
1.5 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
services.opentelemetry-collector = {
|
|
enable = true;
|
|
package = pkgs.unstable.opentelemetry-collector-contrib;
|
|
settings = {
|
|
receivers = {
|
|
|
|
# receive metrics from other open telemetry collectors
|
|
otlp.protocols.grpc.endpoint = "0.0.0.0:4317";
|
|
|
|
# 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 = [ "otlp" "influxdb" "prometheus" ];
|
|
exporters = [ "prometheus" ];
|
|
};
|
|
# open telemetries own metrics?
|
|
telemetry.metrics.address = "0.0.0.0:8100";
|
|
};
|
|
};
|
|
};
|
|
}
|