diff --git a/nixos/machines/cherry/configuration.nix b/nixos/machines/cherry/configuration.nix index 9a0cbc6..6aac578 100644 --- a/nixos/machines/cherry/configuration.nix +++ b/nixos/machines/cherry/configuration.nix @@ -18,6 +18,7 @@ ./telemetry/opentelemetry.nix ./telemetry/prometheus.nix + ./telemetry/prometheus-exporter-node.nix ./telemetry/telegraf.nix ]; diff --git a/nixos/machines/cherry/telemetry/opentelemetry.nix b/nixos/machines/cherry/telemetry/opentelemetry.nix index 7eb12f6..2795172 100644 --- a/nixos/machines/cherry/telemetry/opentelemetry.nix +++ b/nixos/machines/cherry/telemetry/opentelemetry.nix @@ -1,29 +1,5 @@ { pkgs, config, ... }: -let - prometheus_port = 8090; -in { - - imports = [ - - # prometheus export - { - services.opentelemetry-collector.settings = { - exporters.prometheus.endpoint = "127.0.0.1:${toString prometheus_port}"; - service.pipelines.metrics.exporters = [ "prometheus" ]; - }; - services.prometheus.scrapeConfigs = [ - { - job_name = "opentelemetry"; - metrics_path = "/metrics"; - scrape_interval = "10s"; - static_configs = [{ targets = [ "localhost:${toString prometheus_port}" ]; }]; - } - ]; - } - - ]; - services.opentelemetry-collector = { enable = true; package = pkgs.unstable.opentelemetry-collector-contrib; @@ -61,13 +37,6 @@ in } ]; } - - { - job_name = "node-exporter"; - static_configs = [{ - targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.node.port}" ]; - }]; - } ]; }; diff --git a/nixos/machines/cherry/telemetry/prometheus-exporter-node.nix b/nixos/machines/cherry/telemetry/prometheus-exporter-node.nix new file mode 100644 index 0000000..5047e10 --- /dev/null +++ b/nixos/machines/cherry/telemetry/prometheus-exporter-node.nix @@ -0,0 +1,17 @@ +{ config, ... }: +{ + services.opentelemetry-collector.settings.receivers.prometheus.config.scrape_configs = [ + { + job_name = "node-exporter"; + static_configs = [{ + targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.node.port}" ]; + }]; + } + ]; + services.prometheus.exporters.node = { + enable = true; + enabledCollectors = [ "systemd" ]; + port = 9002; + }; + +} diff --git a/nixos/machines/cherry/telemetry/prometheus.nix b/nixos/machines/cherry/telemetry/prometheus.nix index 24d5e71..3bc35ae 100644 --- a/nixos/machines/cherry/telemetry/prometheus.nix +++ b/nixos/machines/cherry/telemetry/prometheus.nix @@ -1,4 +1,8 @@ -{ config, pkgs, lib, ... }: { +{ config, pkgs, lib, ... }: +let + prometheus_port = 8090; +in +{ services.nginx = { enable = true; @@ -17,13 +21,24 @@ services.prometheus = { checkConfig = "syntax-only"; enable = true; - exporters = { - node = { - enable = true; - enabledCollectors = [ "systemd" ]; - port = 9002; - }; - }; - }; + + + imports = [ + # open telemetry connection + { + services.opentelemetry-collector.settings = { + exporters.prometheus.endpoint = "127.0.0.1:${toString prometheus_port}"; + service.pipelines.metrics.exporters = [ "prometheus" ]; + }; + services.prometheus.scrapeConfigs = [ + { + job_name = "opentelemetry"; + metrics_path = "/metrics"; + scrape_interval = "10s"; + static_configs = [{ targets = [ "localhost:${toString prometheus_port}" ]; }]; + } + ]; + } + ]; }