expose metrics as json

This commit is contained in:
pinpox
2025-08-20 11:03:35 +02:00
parent de0b1b2d70
commit 3ac9167f18

View File

@@ -10,17 +10,22 @@
lib, lib,
... ...
}: }:
let
jsonpath = /tmp/telegraf.json;
in
{ {
networking.firewall.interfaces = lib.mkIf (settings.allowAllInterfaces == false) ( networking.firewall.interfaces = lib.mkIf (settings.allowAllInterfaces == false) (
builtins.listToAttrs ( builtins.listToAttrs (
map (name: { map (name: {
inherit name; inherit name;
value.allowedTCPPorts = [ 9273 ]; value.allowedTCPPorts = [ 9273 9990 ];
}) settings.interfaces }) settings.interfaces
) )
); );
systemd.services.telegsaf-json.script = "${pkgs.miniserve}/bin/miniserve -p 9990 ${jsonpath}";
networking.firewall.allowedTCPPorts = lib.mkIf (settings.allowAllInterfaces == true) [ 9273 ]; networking.firewall.allowedTCPPorts = lib.mkIf (settings.allowAllInterfaces == true) [ 9273 ];
clan.core.vars.generators."telegraf-password" = { clan.core.vars.generators."telegraf-password" = {
@@ -72,6 +77,13 @@
} }
]; ];
}; };
outputs.file = {
files = [ jsonpath ];
data_format = "json";
json_timestamp_units = "1s";
};
outputs.prometheus_client = { outputs.prometheus_client = {
listen = ":9273"; listen = ":9273";
metric_version = 2; metric_version = 2;