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";