Skip to content

Instantly share code, notes, and snippets.

@logankimmel
Created February 27, 2024 14:13
Show Gist options
  • Save logankimmel/92f691547de46fd45cb5d8bcc0edaddc to your computer and use it in GitHub Desktop.
Save logankimmel/92f691547de46fd45cb5d8bcc0edaddc to your computer and use it in GitHub Desktop.
This is an example k8s manifest for deploying the telegraf agent that will send vcenter data to wavefront.
# Notes: please be mindful of how secrets are stored
# Update your proxy address as needed (this is the default for the wavefront proxy on the same k8s cluster)
---
apiVersion: v1
kind: ConfigMap
metadata:
name: vcenter-config
namespace: observability-system
data:
vsphere.conf: |
[[inputs.vsphere]]
vcenters = [ "https://{{VCENTER_HOSTNAME}}/sdk" ]
username = "{{VSCENTER_USERNAME}}"
password = "{{VSPHERE_PASSWORD}}"
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",
]
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",
]
vsan_metric_include = [
"summary.disk-usage",
"summary.health",
"summary.resync",
"performance.cluster-domclient",
"performance.cluster-domcompmgr",
"performance.host-domclient",
"performance.host-domcompmgr",
"performance.cache-disk",
"performance.disk-group",
"performance.capacity-disk",
"performance.disk-group",
"performance.virtual-machine",
"performance.vscsi",
"performance.virtual-disk",
"performance.vsan-host-net",
"performance.vsan-vnic-net",
"performance.vsan-pnic-net",
"performance.vsan-iscsi-host",
"performance.vsan-iscsi-target",
"performance.vsan-iscsi-lun",
"performance.lsom-world-cpu",
"performance.nic-world-cpu",
"performance.dom-world-cpu",
"performance.cmmds-world-cpu",
"performance.host-cpu",
"performance.host-domowner",
"performance.host-memory-slab",
"performance.host-memory-heap",
"performance.system-mem",
]
custom_attribute_include = ["*"]
custom_attribute_exclude = []
insecure_skip_verify = true
[[outputs.wavefront]]
host = "wavefront-proxy"
port = 2878
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: telegraf-deployment
namespace: observability-system
spec:
replicas: 1
selector:
matchLabels:
app: telegraf
template:
metadata:
labels:
app: telegraf
spec:
# May require Docker Hub personal access token due to rate limiting
# imagePullSecrets:
# - name: docker-pat
containers:
- name: telegraf
image: telegraf:1.29.2
volumeMounts:
- name: config-volume
mountPath: /etc/telegraf/telegraf.d
volumes:
- name: config-volume
configMap:
name: vcenter-config
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment