package kube_state import ( "context" "time" "github.com/influxdata/telegraf" "k8s.io/api/core/v1" ) var configMapMeasurement = "kube_configmap" func registerConfigMapCollector(ctx context.Context, acc telegraf.Accumulator, ks *KubenetesState) { list, err := ks.client.getConfigMaps(ctx) if err != nil { acc.AddError(err) return } for _, s := range list.Items { if err = ks.gatherConfigMap(s, acc); err != nil { acc.AddError(err) return } } } func (ks *KubenetesState) gatherConfigMap(s v1.ConfigMap, acc telegraf.Accumulator) error { var creationTime time.Time if !s.CreationTimestamp.IsZero() { creationTime = s.CreationTimestamp.Time } fields := map[string]interface{}{ "gauge": 1, } tags := map[string]string{ "namespace": s.Namespace, "configmap": s.Name, "resource_version": s.ResourceVersion, } acc.AddFields(configMapMeasurement, fields, tags, creationTime) return nil }