From 5e16f5a805028627a92c046d27d80bfbd846ab46 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Fri, 8 May 2020 10:39:15 +0100 Subject: [PATCH] [vsphere-influxdb-go] Build config.json from values --- .editorconfig | 16 +++ charts/vsphere-influxdb-go/Chart.yaml | 2 +- .../templates/configmap.yaml | 79 +-------------- charts/vsphere-influxdb-go/values.yaml | 99 +++++++++++++++++++ 4 files changed, 119 insertions(+), 77 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..eaf796e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ + +# EditorConfig helps us maintain consistent formatting on non-source files. +# Visit https://editorconfig.org/ for details on how to configure your editor to respect these settings. + +# This is the terminal .editorconfig in this repository. +root = true + + +[*] +indent_style = space +trim_trailing_whitespace = true +insert_final_newline = true +end_of_line = lf + +[*.{yaml,yml}] +indent_size = 2 diff --git a/charts/vsphere-influxdb-go/Chart.yaml b/charts/vsphere-influxdb-go/Chart.yaml index b4739d4..f614a73 100644 --- a/charts/vsphere-influxdb-go/Chart.yaml +++ b/charts/vsphere-influxdb-go/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: "0.8.5" description: Collect VMware vCenter and ESXi performance metrics and send them to InfluxDB name: vsphere-influxdb-go -version: 0.1.1 +version: 0.2.0 keywords: - vsphere - influxdb diff --git a/charts/vsphere-influxdb-go/templates/configmap.yaml b/charts/vsphere-influxdb-go/templates/configmap.yaml index 3cd0ce2..f59171c 100644 --- a/charts/vsphere-influxdb-go/templates/configmap.yaml +++ b/charts/vsphere-influxdb-go/templates/configmap.yaml @@ -1,80 +1,5 @@ --- apiVersion: v1 -data: - config.json: "{\r\n \"Domain\": \".lab\",\r\n \"RemoveHostDomainName\": false,\r\n - \ \"Interval\": 60,\r\n \"VCenters\": [],\r\n \"InfluxDB\": {\r\n \"Prefix\": - \"vsphere_\",\r\n \"Hostname\": \"http://influxdb:8086\",\r\n \"Database\": - \"vmware_performance\"\r\n },\r\n \"Metrics\": [\r\n {\r\n \"ObjectType\": - [\r\n \"VirtualMachine\",\r\n \"HostSystem\"\r\n - \ ],\r\n \"Definition\": [\r\n {\r\n \"Metric\": - \"cpu.usage.average\",\r\n \"Instances\": \"*\"\r\n },\r\n - \ {\r\n \"Metric\": \"cpu.usage.maximum\",\r\n - \ \"Instances\": \"*\"\r\n },\r\n {\r\n - \ \"Metric\": \"cpu.usagemhz.average\",\r\n \"Instances\": - \"*\"\r\n },\r\n {\r\n \"Metric\": - \"cpu.usagemhz.maximum\",\r\n \"Instances\": \"*\"\r\n },\r\n - \ {\r\n \"Metric\": \"cpu.wait.summation\",\r\n - \ \"Instances\": \"*\"\r\n },\r\n {\r\n - \ \"Metric\": \"cpu.system.summation\",\r\n \"Instances\": - \"*\"\r\n },\r\n {\r\n \"Metric\": - \"cpu.ready.summation\",\r\n \"Instances\": \"*\"\r\n },\r\n - \ {\r\n \"Metric\": \"mem.usage.average\",\r\n - \ \"Instances\": \"*\"\r\n },\r\n {\r\n - \ \"Metric\": \"mem.usage.maximum\",\r\n \"Instances\": - \"*\"\r\n },\r\n {\r\n \"Metric\": - \"mem.consumed.average\",\r\n \"Instances\": \"*\"\r\n },\r\n - \ {\r\n \"Metric\": \"mem.consumed.maximum\",\r\n - \ \"Instances\": \"*\"\r\n },\r\n {\r\n - \ \"Metric\": \"mem.active.average\",\r\n \"Instances\": - \"*\"\r\n },\r\n {\r\n \"Metric\": - \"mem.active.maximum\",\r\n \"Instances\": \"*\"\r\n },\r\n - \ {\r\n \"Metric\": \"mem.vmmemctl.average\",\r\n - \ \"Instances\": \"*\"\r\n },\r\n {\r\n - \ \"Metric\": \"mem.vmmemctl.maximum\",\r\n \"Instances\": - \"*\"\r\n },\r\n {\r\n \"Metric\": - \"mem.totalCapacity.average\",\r\n \"Instances\": \"*\"\r\n - \ },\r\n {\r\n \"Metric\": \"net.packetsRx.summation\",\r\n - \ \"Instances\": \"*\"\r\n },\r\n {\r\n - \ \"Metric\": \"net.packetsTx.summation\",\r\n \"Instances\": - \"*\"\r\n },\r\n {\r\n \"Metric\": - \"net.throughput.usage.average\",\r\n \"Instances\": \"*\"\r\n - \ },\r\n {\r\n \"Metric\": \"net.received.average\",\r\n - \ \"Instances\": \"*\"\r\n },\r\n {\r\n - \ \"Metric\": \"net.transmitted.average\",\r\n \"Instances\": - \"*\"\r\n },\r\n {\r\n \"Metric\": - \"net.throughput.usage.nfs.average\",\r\n \"Instances\": \"*\"\r\n - \ },\r\n {\r\n \"Metric\": \"datastore.numberReadAveraged.average\",\r\n - \ \"Instances\": \"*\"\r\n },\r\n {\r\n - \ \"Metric\": \"datastore.numberWriteAveraged.average\",\r\n - \ \"Instances\": \"*\"\r\n },\r\n {\r\n - \ \"Metric\": \"datastore.read.average\",\r\n \"Instances\": - \"*\"\r\n },\r\n {\r\n \"Metric\": - \"datastore.write.average\",\r\n \"Instances\": \"*\"\r\n },\r\n - \ {\r\n \"Metric\": \"datastore.totalReadLatency.average\",\r\n - \ \"Instances\": \"*\"\r\n },\r\n {\r\n - \ \"Metric\": \"datastore.totalWriteLatency.average\",\r\n \"Instances\": - \"*\"\r\n },\r\n {\r\n \"Metric\": - \"mem.capacity.provisioned.average\",\r\n \"Instances\": \"*\"\r\n - \ },\r\n {\r\n \"Metric\": \"cpu.corecount.provisioned.average\",\r\n - \ \"Instances\": \"*\"\r\n }\r\n ]\r\n - \ },\r\n {\r\n \"ObjectType\": [\r\n \"VirtualMachine\"\r\n - \ ],\r\n \"Definition\": [\r\n {\r\n \"Metric\": - \"datastore.datastoreVMObservedLatency.latest\",\r\n \"Instances\": - \"*\"\r\n }\r\n ]\r\n },\r\n {\r\n \"ObjectType\": - [\r\n \"HostSystem\"\r\n ],\r\n \"Definition\": - [\r\n {\r\n \"Metric\": \"disk.maxTotalLatency.latest\",\r\n - \ \"Instances\": \"\"\r\n },\r\n {\r\n - \ \"Metric\": \"disk.numberReadAveraged.average\",\r\n \"Instances\": - \"*\"\r\n },\r\n {\r\n \"Metric\": - \"disk.numberWriteAveraged.average\",\r\n \"Instances\": \"*\"\r\n - \ },\r\n {\r\n \"Metric\": \"net.throughput.contention.summation\",\r\n - \ \"Instances\": \"*\"\r\n }\r\n ]\r\n - \ },\r\n {\r\n \"ObjectType\": [\r\n \"Datastore\"\r\n - \ ],\r\n \"Definition\": [\r\n {\r\n \"Metric\": - \"disk.capacity.latest\",\r\n \"Instances\": \"*\"\r\n },\r\n - \ {\r\n \"Metric\": \"disk.used.latest\",\r\n - \ \"Instances\": \"*\"\r\n }\r\n ]\r\n - \ }\r\n ]\r\n}" kind: ConfigMap metadata: name: vsphere-influxdb-go-config @@ -83,4 +8,6 @@ metadata: helm.sh/chart: {{ include "vsphere-influxdb-go.chart" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: {{ include "vsphere-influxdb-go.name" . }} - +data: + config.json: |- +{{ toJson .Values.config | indent 4}} diff --git a/charts/vsphere-influxdb-go/values.yaml b/charts/vsphere-influxdb-go/values.yaml index 2297736..3193fe2 100644 --- a/charts/vsphere-influxdb-go/values.yaml +++ b/charts/vsphere-influxdb-go/values.yaml @@ -37,6 +37,105 @@ cronjob: failedJobsHistoryLimit: 1 # startingDeadlineSeconds: 10 +## Configuration data that is wrote to vsphere-influxdb-go +## If you need additional metrics then this is where you can +## add them. +## +config: + Domain: ".lab" + RemoveHostDomainName: false + Interval: 60 + VCenters: {} + InfluxDB: {} + Metrics: + - ObjectType: + - VirtualMachine + - HostSystem + Definition: + - Metric: cpu.usage.average + Instances: "*" + - Metric: cpu.usage.maximum + Instances: "*" + - Metric: cpu.usagemhz.average + Instances: "*" + - Metric: cpu.usagemhz.maximum + Instances: "*" + - Metric: cpu.wait.summation + Instances: "*" + - Metric: cpu.system.summation + Instances: "*" + - Metric: cpu.ready.summation + Instances: "*" + - Metric: mem.usage.average + Instances: "*" + - Metric: mem.usage.maximum + Instances: "*" + - Metric: mem.consumed.average + Instances: "*" + - Metric: mem.consumed.maximum + Instances: "*" + - Metric: mem.active.average + Instances: "*" + - Metric: mem.active.maximum + Instances: "*" + - Metric: mem.vmmemctl.average + Instances: "*" + - Metric: mem.vmmemctl.maximum + Instances: "*" + - Metric: mem.totalCapacity.average + Instances: "*" + - Metric: net.packetsRx.summation + Instances: "*" + - Metric: net.packetsTx.summation + Instances: "*" + - Metric: net.throughput.usage.average + Instances: "*" + - Metric: net.received.average + Instances: "*" + - Metric: net.transmitted.average + Instances: "*" + - Metric: net.throughput.usage.nfs.average + Instances: "*" + - Metric: datastore.numberReadAveraged.average + Instances: "*" + - Metric: datastore.numberWriteAveraged.average + Instances: "*" + - Metric: datastore.read.average + Instances: "*" + - Metric: datastore.write.average + Instances: "*" + - Metric: datastore.totalReadLatency.average + Instances: "*" + - Metric: datastore.totalWriteLatency.average + Instances: "*" + - Metric: mem.capacity.provisioned.average + Instances: "*" + - Metric: cpu.corecount.provisioned.average + Instances: "*" + - ObjectType: + - VirtualMachine + Definition: + - Metric: datastore.datastoreVMObservedLatency.latest + Instances: "*" + - ObjectType: + - HostSystem + Definition: + - Metric: disk.maxTotalLatency.latest + Instances: '' + - Metric: disk.numberReadAveraged.average + Instances: "*" + - Metric: disk.numberWriteAveraged.average + Instances: "*" + - Metric: net.throughput.contention.summation + Instances: "*" + - ObjectType: + - Datastore + Definition: + - Metric: disk.capacity.latest + Instances: "*" + - Metric: disk.used.latest + Instances: "*" + resources: {} # We usually recommend not to specify default resources and to leave this as a conscious # choice for the user. This also increases chances charts run on environments with little