# SPDX-FileCopyrightText: 2024 Tom Hubrecht <tom.hubrecht@dgnum.eu>
#
# SPDX-License-Identifier: EUPL-1.2

{ config, ... }:

{
  services.telegraf = {
    enable = true;

    extraConfig = {
      agent = {
        interval = "10s";
        round_interval = true;
        metric_batch_size = 1000;
        metric_buffer_limit = 10000;
        collection_jitter = "0s";
      };

      inputs = {
        diskio = {
          device_tags = [
            "ID_FS_TYPE"
            "ID_FS_USAGE"
          ];
          name_templates = [
            "$ID_FS_LABEL"
            "$DM_VG_NAME/$DM_LV_NAME"
          ];
        };
      };

      outputs = {
        influxdb_v2 = {
          urls = [ "https://influx.dgnum.eu" ];
          token = "$TELEGRAF_INFLUXDB_TOKEN";
          organization = "dgnum";
          bucket = "telegraf";
        };
      };
    };

    environmentFiles = [ config.age.secrets."telegraf-environment_file".path ];
  };

  age-secrets.autoMatch = [ "telegraf" ];
}