From 9f3e7b698a33ebaff3577b076f38fbb7ad7ae6fe Mon Sep 17 00:00:00 2001 From: Ingolf Wagner Date: Tue, 14 May 2024 17:06:38 +0200 Subject: [PATCH] configure opentelemetry on orbi --- nixos/machines/orbi/configuration.nix | 5 +- nixos/machines/orbi/system-opentelemetry.nix | 51 +++++++++++++++++++ .../{prometheus.nix => system-prometheus.nix} | 0 .../{telegraf.nix => system-telegraf.nix} | 11 ++-- 4 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 nixos/machines/orbi/system-opentelemetry.nix rename nixos/machines/orbi/{prometheus.nix => system-prometheus.nix} (100%) rename nixos/machines/orbi/{telegraf.nix => system-telegraf.nix} (73%) diff --git a/nixos/machines/orbi/configuration.nix b/nixos/machines/orbi/configuration.nix index 9a076d9..884718f 100644 --- a/nixos/machines/orbi/configuration.nix +++ b/nixos/machines/orbi/configuration.nix @@ -40,9 +40,10 @@ # --------- #./loki.nix #./loki-promtail.nix - ##./prometheus.nix #./grafana.nix - ./telegraf.nix + ./system-telegraf.nix + ./system-opentelemetry.nix + #./system-prometheus.nix #./cache.nix ]; diff --git a/nixos/machines/orbi/system-opentelemetry.nix b/nixos/machines/orbi/system-opentelemetry.nix new file mode 100644 index 0000000..6b389e1 --- /dev/null +++ b/nixos/machines/orbi/system-opentelemetry.nix @@ -0,0 +1,51 @@ +{ 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"; + }; + }; + }; +} diff --git a/nixos/machines/orbi/prometheus.nix b/nixos/machines/orbi/system-prometheus.nix similarity index 100% rename from nixos/machines/orbi/prometheus.nix rename to nixos/machines/orbi/system-prometheus.nix diff --git a/nixos/machines/orbi/telegraf.nix b/nixos/machines/orbi/system-telegraf.nix similarity index 73% rename from nixos/machines/orbi/telegraf.nix rename to nixos/machines/orbi/system-telegraf.nix index 5e7c662..f6e32ff 100644 --- a/nixos/machines/orbi/telegraf.nix +++ b/nixos/machines/orbi/system-telegraf.nix @@ -2,9 +2,14 @@ services.telegraf = { enable = true; extraConfig = { - outputs.prometheus_client = { - listen = ":9273"; - metric_version = 2; + outputs = { + prometheus_client = { + listen = ":9273"; + metric_version = 2; + }; + influxdb_v2 = { + urls = [ "http://127.0.0.1:8088" ]; + }; }; # https://github.com/influxdata/telegraf/tree/master/plugins/inputs < all them plugins inputs = {