diff --git a/modules/shared/telegraf.nix b/modules/shared/telegraf.nix index 86b4a27..e0b5367 100644 --- a/modules/shared/telegraf.nix +++ b/modules/shared/telegraf.nix @@ -1,4 +1,19 @@ -{ inputs, lib, ... }: +{ config, inputs, lib, pkgs, ... }: +let + hostInfo = pkgs.writeShellScript "host-info" '' + nix_version="$(${config.nix.package}/bin/nix store ping --store daemon --json | ${pkgs.jq}/bin/jq -r '.version')" + case "$(uname -s)" in + Darwin) + os_version="$(/usr/bin/sw_vers --productVersion)_$(/usr/bin/sw_vers --buildVersion)" + ;; + Linux) + os_version="$(uname -r)" + ;; + esac + system="$(${config.nix.package}/bin/nix eval --impure --raw --expr 'builtins.currentSystem')" + echo "host,nix_version=$nix_version,os_version=$os_version,system=$system info=1" + ''; +in { environment.etc = let @@ -19,6 +34,12 @@ }; services.telegraf.extraConfig.inputs = { + exec = [ + { + commands = [ hostInfo ]; + data_format = "influx"; + } + ]; file = [ { data_format = "prometheus";