# Need to change YOUR_CLUSTER_NAME and YOUR_WAVEFRONT_URL accordingly apiVersion: wavefront.com/v1alpha1 kind: Wavefront metadata: name: wavefront namespace: observability-system spec: # Note on clusterName Precedence # # clusterName is required, but will be overridden by the clusterName in ConfigMap clusterName: YOUR_CLUSTER_NAME wavefrontUrl: YOUR_WAVEFRONT_URL dataExport: wavefrontProxy: enable: true dataCollection: metrics: enable: true customConfig: wavefront-collector-config --- apiVersion: v1 kind: ConfigMap metadata: labels: app.kubernetes.io/name : wavefront app.kubernetes.io/component: collector name: wavefront-collector-config namespace: observability-system data: # Note: make sure your configuration is named `config.yaml` (manual deploy used `collector.yaml`) config.yaml: | # Note on clusterName Precedence # # This overrides the clusterName Wavefront Custom Resource clusterName: YOUR_CLUSTER_NAME enableDiscovery: true enableEvents: false defaultCollectionInterval: 60s sinks: - proxyAddress: wavefront-proxy:2878 filters: metricDenyList: - kubernetes.sys_container.* - kubernetes.collector.runtime.* - kubernetes.*.network.rx_rate - kubernetes.*.network.rx_errors_rate - kubernetes.*.network.tx_rate - kubernetes.*.network.tx_errors_rate - kubernetes.*.memory.page_faults - kubernetes.*.memory.page_faults_rate - kubernetes.*.memory.major_page_faults - kubernetes.*.memory.major_page_faults_rate - kubernetes.*.filesystem.inodes - kubernetes.*.filesystem.inodes_free - kubernetes.*.ephemeral_storage.request - kubernetes.*.ephemeral_storage.limit tagExclude: - label?controller?revision* - label?pod?template* - annotation_kubectl_kubernetes_io_last_applied_configuration sources: kubernetes_source: url: https://kubernetes.default.svc kubeletPort: 10250 kubeletHttps: true useServiceAccount: true insecure: true prefix: kubernetes. filters: metricDenyList: - 'kubernetes.sys_container.*' - 'kubernetes.node.ephemeral_storage.*' internal_stats_source: prefix: kubernetes. kubernetes_state_source: prefix: kubernetes. kubernetes_control_plane_source: collection: interval: 120s discovery: enable_runtime_plugins: true plugins: # auto-discover kube DNS - name: kube-dns-discovery type: prometheus selectors: images: - '*kube-dns/sidecar*' labels: k8s-app: - kube-dns port: 10054 path: /metrics scheme: http prefix: kube.dns. filters: metricAllowList: - 'kube.dns.http.request.duration.microseconds' - 'kube.dns.http.request.size.bytes' - 'kube.dns.http.requests.total.counter' - 'kube.dns.http.response.size.bytes' - 'kube.dns.kubedns.dnsmasq.*' - 'kube.dns.process.*' # auto-discover coredns - name: coredns-discovery type: prometheus selectors: images: - '*coredns:*' labels: k8s-app: - kube-dns port: 9153 path: /metrics scheme: http prefix: kube.coredns. filters: metricAllowList: - 'kube.coredns.coredns.cache.*' - 'kube.coredns.coredns.dns.request.count.total.counter' - 'kube.coredns.coredns.dns.request.duration.seconds' - 'kube.coredns.coredns.dns.request.size.bytes' - 'kube.coredns.coredns.dns.request.type.count.total.counter' - 'kube.coredns.coredns.dns.response.rcode.count.total.counter' - 'kube.coredns.coredns.dns.response.size.bytes' - 'kube.coredns.process.*'