apiVersion: v1
kind: ConfigMap
metadata:
  name: telegraf-config
  namespace: telegraf
  annotations:
    kapp.k14s.io/versioned: ""
data:
  telegraf.conf: |+
    [[outputs.wavefront]]
      url = "http://wavefront-proxy-tanzu.tanzu-observability-saas:2878"
    # Statsd Server
    [[inputs.prometheus]]
      urls = [ "http://concourse-web.concourse:9090/metrics" ]
    [[inputs.prometheus]]
      urls = [ "http://harbor-exporter.harbor:9107/metrics" ]
    [[inputs.vsphere]]
      vcenters = [ "$VCENTER_HOST" ]
      username = "$VCENTER_USERNAME"
      password = "$VCENTER_PASSWORD"

      ## VMs
      ## Typical VM metrics (if omitted or empty, all metrics are collected)
      # vm_include = [ "/*/vm/**"] # Inventory path to VMs to collect (by default all are collected)
      # vm_exclude = [] # Inventory paths to exclude
      vm_metric_include = [
        "cpu.demand.average",
        "cpu.idle.summation",
        "cpu.latency.average",
        "cpu.readiness.average",
        "cpu.ready.summation",
        "cpu.run.summation",
        "cpu.usagemhz.average",
        "cpu.used.summation",
        "cpu.wait.summation",
        "mem.active.average",
        "mem.granted.average",
        "mem.latency.average",
        "mem.swapin.average",
        "mem.swapinRate.average",
        "mem.swapout.average",
        "mem.swapoutRate.average",
        "mem.usage.average",
        "mem.vmmemctl.average",
        "net.bytesRx.average",
        "net.bytesTx.average",
        "net.droppedRx.summation",
        "net.droppedTx.summation",
        "net.usage.average",
        "power.power.average",
        "virtualDisk.numberReadAveraged.average",
        "virtualDisk.numberWriteAveraged.average",
        "virtualDisk.read.average",
        "virtualDisk.readOIO.latest",
        "virtualDisk.throughput.usage.average",
        "virtualDisk.totalReadLatency.average",
        "virtualDisk.totalWriteLatency.average",
        "virtualDisk.write.average",
        "virtualDisk.writeOIO.latest",
        "sys.uptime.latest",
      ]
      # vm_metric_exclude = [] ## Nothing is excluded by default
      # vm_instances = true ## true by default

      ## Hosts
      ## Typical host metrics (if omitted or empty, all metrics are collected)
      # host_include = [ "/*/host/**"] # Inventory path to hosts to collect (by default all are collected)
      # host_exclude [] # Inventory paths to exclude
      host_metric_include = [
        "cpu.coreUtilization.average",
        "cpu.costop.summation",
        "cpu.demand.average",
        "cpu.idle.summation",
        "cpu.latency.average",
        "cpu.readiness.average",
        "cpu.ready.summation",
        "cpu.swapwait.summation",
        "cpu.usage.average",
        "cpu.usagemhz.average",
        "cpu.used.summation",
        "cpu.utilization.average",
        "cpu.wait.summation",
        "disk.deviceReadLatency.average",
        "disk.deviceWriteLatency.average",
        "disk.kernelReadLatency.average",
        "disk.kernelWriteLatency.average",
        "disk.numberReadAveraged.average",
        "disk.numberWriteAveraged.average",
        "disk.read.average",
        "disk.totalReadLatency.average",
        "disk.totalWriteLatency.average",
        "disk.write.average",
        "mem.active.average",
        "mem.latency.average",
        "mem.state.latest",
        "mem.swapin.average",
        "mem.swapinRate.average",
        "mem.swapout.average",
        "mem.swapoutRate.average",
        "mem.totalCapacity.average",
        "mem.usage.average",
        "mem.vmmemctl.average",
        "net.bytesRx.average",
        "net.bytesTx.average",
        "net.droppedRx.summation",
        "net.droppedTx.summation",
        "net.errorsRx.summation",
        "net.errorsTx.summation",
        "net.usage.average",
        "power.power.average",
        "storageAdapter.numberReadAveraged.average",
        "storageAdapter.numberWriteAveraged.average",
        "storageAdapter.read.average",
        "storageAdapter.write.average",
        "sys.uptime.latest",
      ]
        ## Collect IP addresses? Valid values are "ipv4" and "ipv6"
      # ip_addresses = ["ipv6", "ipv4" ]

      # host_metric_exclude = [] ## Nothing excluded by default
      # host_instances = true ## true by default


      ## Clusters
      # cluster_include = [ "/*/host/**"] # Inventory path to clusters to collect (by default all are collected)
      # cluster_exclude = [] # Inventory paths to exclude
      # cluster_metric_include = [] ## if omitted or empty, all metrics are collected
      # cluster_metric_exclude = [] ## Nothing excluded by default
      # cluster_instances = false ## false by default

      ## Datastores
      # datastore_include = [ "/*/datastore/**"] # Inventory path to datastores to collect (by default all are collected)
      # datastore_exclude = [] # Inventory paths to exclude
      # datastore_metric_include = [] ## if omitted or empty, all metrics are collected
      # datastore_metric_exclude = [] ## Nothing excluded by default
      # datastore_instances = false ## false by default

      ## Datacenters
      # datacenter_include = [ "/*/host/**"] # Inventory path to clusters to collect (by default all are collected)
      # datacenter_exclude = [] # Inventory paths to exclude
      datacenter_metric_include = [] ## if omitted or empty, all metrics are collected
      datacenter_metric_exclude = [ "*" ] ## Datacenters are not collected by default.
      # datacenter_instances = false ## false by default

      ## Plugin Settings
      ## separator character to use for measurement and field names (default: "_")
      # separator = "_"

      ## number of objects to retrieve per query for realtime resources (vms and hosts)
      ## set to 64 for vCenter 5.5 and 6.0 (default: 256)
      # max_query_objects = 256

      ## number of metrics to retrieve per query for non-realtime resources (clusters and datastores)
      ## set to 64 for vCenter 5.5 and 6.0 (default: 256)
      # max_query_metrics = 256

      ## number of go routines to use for collection and discovery of objects and metrics
      # collect_concurrency = 1
      # discover_concurrency = 1

      ## the interval before (re)discovering objects subject to metrics collection (default: 300s)
      # object_discovery_interval = "300s"

      ## timeout applies to any of the api request made to vcenter
      # timeout = "60s"

      ## When set to true, all samples are sent as integers. This makes the output
      ## data types backwards compatible with Telegraf 1.9 or lower. Normally all
      ## samples from vCenter, with the exception of percentages, are integer
      ## values, but under some conditions, some averaging takes place internally in
      ## the plugin. Setting this flag to "false" will send values as floats to
      ## preserve the full precision when averaging takes place.
      # use_int_samples = true

      ## Custom attributes from vCenter can be very useful for queries in order to slice the
      ## metrics along different dimension and for forming ad-hoc relationships. They are disabled
      ## by default, since they can add a considerable amount of tags to the resulting metrics. To
      ## enable, simply set custom_attribute_exclude to [] (empty set) and use custom_attribute_include
      ## to select the attributes you want to include.
      ## By default, since they can add a considerable amount of tags to the resulting metrics. To
      ## enable, simply set custom_attribute_exclude to [] (empty set) and use custom_attribute_include
      ## to select the attributes you want to include.
      # custom_attribute_include = []
      # custom_attribute_exclude = ["*"]

      ## Optional SSL Config
      # ssl_ca = "/path/to/cafile"
      # ssl_cert = "/path/to/certfile"
      # ssl_key = "/path/to/keyfile"
      ## Use SSL but skip chain & host verification
      insecure_skip_verify = true