initial commit for wavefront chart (#11098)

* initial commit for wavefront chart

Signed-off-by: Pierre Tessier <pierre@pierretessier.com>

* removed trailing spaces

Signed-off-by: Pierre Tessier <pierre@pierretessier.com>

* fixed trailing spaces

Signed-off-by: Pierre Tessier <pierre@pierretessier.com>

* chart version, new lines, helm.sh/chart labels

Signed-off-by: Pierre Tessier <pierre@pierretessier.com>

* use 0.9.7 collector

Signed-off-by: Pierre Tessier <pierre@pierretessier.com>
This commit is contained in:
Pierre Tessier
2019-04-05 09:17:22 -07:00
committed by Kubernetes Prow Robot
parent 1e206341fe
commit 67fe96ff62
18 changed files with 716 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
# OWNERS file for Kubernetes
OWNERS
+21
View File
@@ -0,0 +1,21 @@
apiVersion: v1
name: wavefront
description: Wavefront Kubernetes collector
appVersion: 0.9.7
version: 1.0.0
keywords:
- metric
- monitoring
- observability
- alerting
home: https://www.wavefront.com
sources:
- https://github.com/wavefrontHQ/wavefront-kubernetes-collector
- https://github.com/wavefrontHQ/java/tree/master/proxy
maintainers:
- name: vikramraman
email: rvikram@vmware.com
- name: puckpuck
email: pierre@wavefront.com
- name: krisclarkdev
email: clarkk@vmware.com
+8
View File
@@ -0,0 +1,8 @@
approvers:
- vikramraman
- puckpuck
- krisclarkdev
reviewers:
- vikramraman
- puckpuck
- krisclarkdev
+20
View File
@@ -0,0 +1,20 @@
# Wavefront Kubenetes collector
[Wavefront](https://wavefront.com) is a cloud-native monitoring and analytics platform that provides
three dimensional microservices observability with metrics, histograms and OpenTracing-compatible distributed tracing.
## Introduction
This chart will deploy the Wavefront Kubernetes collector and Wavefront Proxy to your
Kubernetes cluster. You can use this chart to install multiple Wavefront Proxy releases,
though only one Wavefront Kubernetes collector per cluster should be used.
You can learn more about the Wavefront and Kubernetes integration [here](https://docs.wavefront.com/wavefront_kubernetes.html)
## Configuration
The [values.yaml](./values.yaml) file contains information about all configuration
options for this chart.
The **requried** options are `clusterName`, `wavefront.url` and `wavefront.token`.
You will need to provide values for those options for a successful installation of the chart.
+6
View File
@@ -0,0 +1,6 @@
dependencies:
- name: kube-state-metrics
repository: https://kubernetes-charts.storage.googleapis.com/
version: 0.13.0
digest: sha256:a009e6781117de69f26b9ac1e72267407f5f598642fd20043b88ad815915391c
generated: 2019-01-17T23:00:41.957053-05:00
+5
View File
@@ -0,0 +1,5 @@
dependencies:
- name: kube-state-metrics
version: ^0.8.0
repository: https://kubernetes-charts.storage.googleapis.com/
condition: kubeStateMetrics.enabled
+55
View File
@@ -0,0 +1,55 @@
{{- $validClusterName := and (.Values.clusterName) (ne .Values.clusterName "KUBERNETES_CLUSTER_NAME") -}}
{{- $validUrl := and (.Values.wavefront.url) (ne .Values.wavefront.url "https://YOUR_CLUSTER.wavefront.com") -}}
{{- $validToken := and (.Values.wavefront.token) (ne .Values.wavefront.token "YOUR_API_TOKEN") -}}
{{- if not $validClusterName }}
##### ERROR:
You must set the value for 'clusterName' to uniquely identify this Kubernetes cluster in Wavefront.
#####
{{- end }}
{{- if .Values.collector.useProxy }}
{{- if and (not .Values.proxy.enabled) (not .Values.collector.proxyAddress) }}
##### ERROR:
Collector is set to use proxy but `proxy.enabled` is not true and `collector.proxyAddress` is not provided.
#####
{{- end }}
{{- else }}
{{- if or (not $validUrl) (not $validToken) }}
##### ERROR:
Collector is set to use direct ingestion API but `wavefront.url` or `wavefront.token` are not specified.
#####
{{- end }}
{{- end }}
{{- if .Values.proxy.enabled }}
{{- if or (not $validUrl) (not $validToken) }}
##### ERROR:
Proxy is enabled but `wavefront.url` or `wavefront.token` are not specified.
#####
{{- end }}
{{- end }}
{{- if or (not $validUrl) (not $validToken) }}
You did not specify a valid URL or Token for Wavefront.
If you do not have a Wavefront instance you can get a free trial here
https://www.wavefront.com/sign-up
If you already have access to Wavefront please specify your URL and Token then try again.
{{- end }}
Wavefront is setup and configured to collect metrics from your Kubernetes cluster. You
should see metrics flowing within a few minutes.
You can visit this dashboard in Wavefront to see your Kubernetes metrics:
{{ .Values.wavefront.url }}/dashboard/integration-kubernetes-main
+67
View File
@@ -0,0 +1,67 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "wavefront.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "wavefront.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "wavefront.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create a name for Wavefront Collector
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "wavefront.collector.fullname" -}}
{{- printf "%s-collector" (include "wavefront.fullname" .) | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a name for Wavefront Proxy
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "wavefront.proxy.fullname" -}}
{{- printf "%s-proxy" (include "wavefront.fullname" .) | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "wavefront.collector.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "wavefront.collector.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create template used as options for Wavefront sink in collector
*/}}
{{- define "wavefront.collector.sinkOptions" -}}
{{- printf "&clusterName=%s&includeLabels=%t&includeContainers=%t&prefix=%s" .Values.clusterName (default .Values.collector.includeLabels true) (default .Values.collector.includeContainers true) (default .Values.collector.prefix "kubernetes.") -}}
{{- end -}}
@@ -0,0 +1,15 @@
{{- if .Values.wavefront.token }}
apiVersion: v1
kind: Secret
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
helm.sh/chart: {{ template "wavefront.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io.instance: {{ .Release.Name | quote }}
app.kubernetes.io/component: collector
name: {{ template "wavefront.fullname" . }}
type: Opaque
data:
api-token: {{ .Values.wavefront.token | b64enc | quote }}
{{- end }}
@@ -0,0 +1,37 @@
{{- if and .Values.rbac.create .Values.collector.enabled }}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
helm.sh/chart: {{ template "wavefront.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io.instance: {{ .Release.Name | quote }}
app.kubernetes.io/component: collector
kubernetes.io/bootstrapping: rbac-defaults
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
name: {{ template "wavefront.collector.fullname" . }}
rules:
- apiGroups:
- ""
resources:
- events
- namespaces
- nodes
- nodes/stats
- pods
- services
verbs:
- get
- list
- watch
- apiGroups:
- extensions
resources:
- deployments
verbs:
- get
- list
- watch
{{- end }}
@@ -0,0 +1,14 @@
{{- if and .Values.collector.discovery.enabled .Values.collector.discovery.config }}
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
helm.sh/chart: {{ template "wavefront.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io.instance: {{ .Release.Name | quote }}
app.kubernetes.io/component: collector
name: {{ template "wavefront.collector.fullname" . }}-config
data:
{{ tpl (toYaml .Values.collector.discovery.config) . | indent 2 }}
{{- end }}
@@ -0,0 +1,84 @@
{{- if .Values.collector.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
helm.sh/chart: {{ template "wavefront.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io.instance: {{ .Release.Name | quote }}
app.kubernetes.io/component: collector
name: {{ template "wavefront.collector.fullname" . }}
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name : {{ template "wavefront.fullname" .}}
app.kubernetes.io/component: collector
template:
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" .}}
app.kubernetes.io/component: collector
spec:
serviceAccountName: {{ template "wavefront.collector.serviceAccountName" . }}
containers:
- name: wavefront-collector
image: {{ .Values.collector.image.repository }}:{{ .Values.collector.image.tag }}
imagePullPolicy: {{ .Values.collector.image.pullPolicy }}
command:
- /wavefront-collector
- --source={{ .Values.collector.kubernetesSource | default "kubernetes.summary_api:''" }}
{{- if and (.Values.kubeStateMetrics.enabled) (not .Values.collector.discovery.enabled) }}
- --source=prometheus:''?url=http://{{ .Release.Name }}-kube-state-metrics:{{ index .Values "kube-state-metrics" "service" "port" }}/metrics
{{- end }}
{{- if .Values.collector.useProxy }}
{{- if .Values.collector.proxyAddress }}
- --sink=wavefront:?proxyAddress={{ .Values.collector.proxyAddress }}{{ template "wavefront.collector.sinkOptions" . }}
{{- else }}
- --sink=wavefront:?proxyAddress={{ template "wavefront.proxy.fullname" . }}:{{ .Values.proxy.port }}{{ template "wavefront.collector.sinkOptions" . }}
{{- end }}
{{- else }}
- --sink=wavefront:?server={{ .Values.wavefront.url }}&token={{ .Values.wavefront.token }}{{ template "wavefront.collector.sinkOptions" . }}
{{- end }}
- --enable-discovery={{ .Values.collector.discovery.enabled }}
{{- if and .Values.collector.discovery.enabled .Values.collector.discovery.config }}
- --discovery-config=/etc/collector/config.yaml
{{- end }}
{{- if .Values.collector.maxProcs }}
- --max-procs={{ .Values.collector.maxProcs }}
{{- end }}
{{- if .Values.collector.interval }}
- --metric-resolution={{ .Values.collector.interval }}
{{- end }}
{{- if .Values.collector.sinkDelay }}
- --sink-export-data-timeout={{ .Values.collector.sinkDelay }}
{{- end }}
{{- if .Values.collector.logVerbosity }}
- --v={{ .Values.collector.logVerbosity }}
{{- end }}
resources:
{{ toYaml .Values.collector.resources | indent 10 }}
volumeMounts:
{{- if and .Values.collector.discovery.enabled .Values.collector.discovery.config }}
- name: config
mountPath: /etc/collector/
readOnly: true
{{- end }}
{{- if not .Values.openshift.enabled }}
- name: ssl-certs
mountPath: /etc/ssl/certs
readOnly: true
{{- end }}
volumes:
{{- if and .Values.collector.discovery.enabled .Values.collector.discovery.config }}
- name: config
configMap:
name: {{ template "wavefront.collector.fullname" . }}-config
{{- end }}
{{- if not .Values.openshift.enabled }}
- name: ssl-certs
hostPath:
path: /etc/ssl/certs
{{- end }}
{{- end }}
@@ -0,0 +1,20 @@
{{- if and .Values.rbac.create .Values.collector.enabled }}
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
helm.sh/chart: {{ template "wavefront.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io.instance: {{ .Release.Name | quote }}
app.kubernetes.io/component: collector
name: {{ template "wavefront.collector.fullname" . }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "wavefront.collector.fullname" . }}
subjects:
- kind: ServiceAccount
name: {{ template "wavefront.collector.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
{{- end }}
@@ -0,0 +1,13 @@
{{- if and .Values.serviceAccount.create .Values.collector.enabled }}
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
helm.sh/chart: {{ template "wavefront.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io.instance: {{ .Release.Name | quote }}
app.kubernetes.io/component: collector
name: {{ template "wavefront.collector.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
{{- end }}
@@ -0,0 +1,85 @@
{{- if .Values.proxy.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
helm.sh/chart: {{ template "wavefront.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io.instance: {{ .Release.Name | quote }}
app.kubernetes.io/component: proxy
name: {{ template "wavefront.proxy.fullname" . }}
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name : {{ template "wavefront.fullname" .}}
app.kubernetes.io/component: proxy
template:
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" .}}
app.kubernetes.io/component: proxy
spec:
containers:
- name: wavefront-proxy
image: {{ .Values.proxy.image.repository }}:{{ .Values.proxy.image.tag }}
imagePullPolicy: {{ .Values.proxy.image.pullPolicy }}
env:
- name: WAVEFRONT_URL
value: {{ .Values.wavefront.url }}/api
- name: WAVEFRONT_TOKEN
valueFrom:
secretKeyRef:
name: {{ template "wavefront.fullname" . }}
key: api-token
- name: WAVEFRONT_PROXY_ARGS
value: {{ .Values.proxy.args }}
{{- if .Values.proxy.tracePort }} --traceListenerPorts {{ .Values.proxy.tracePort }}{{- end -}}
{{- if .Values.proxy.jaegerPort }} --traceJaegerListenerPorts {{ .Values.proxy.jaegerPort }}{{- end -}}
{{- if .Values.proxy.zipkinPort }} --traceZipkinListenerPorts {{ .Values.proxy.zipkinPort }}{{- end -}}
{{- if .Values.proxy.traceSamplingRate }} --traceSamplingRate {{ .Values.proxy.traceSamplingRate }}{{- end -}}
{{- if .Values.proxy.traceSamplingDuration }} --traceSamplingDuration {{ .Values.proxy.traceSamplingDuration }}{{- end -}}
{{- if .Values.proxy.preprocessor }} --preprocessorConfigFile /etc/wavefront/wavefront-proxy/preprocessor/rules.yaml{{- end -}}
{{- if .Values.proxy.heap }}
- name: JAVA_HEAP_USAGE
value: {{ .Values.proxy.heap | quote }}
{{- end }}
ports:
- containerPort: {{ .Values.proxy.port }}
protocol: TCP
{{- if .Values.proxy.tracePort }}
- containerPort: {{ .Values.proxy.tracePort }}
protocol: TCP
{{- end }}
{{- if .Values.proxy.jaegerPort }}
- containerPort: {{ .Values.proxy.jaegerPort }}
protocol: TCP
{{- end }}
{{- if .Values.proxy.zipkinPort }}
- containerPort: {{ .Values.proxy.zipkinPort }}
protocol: TCP
{{- end }}
securityContext:
privileged: false
volumeMounts:
{{- if .Values.proxy.preprocessor }}
- name: preprocessor
mountPath: /etc/wavefront/wavefront-proxy/preprocessor
{{- end }}
{{- if .Values.openshift.enabled }}
- name: spool
mountPath: /var/spool/wavefront-proxy
{{- end }}
volumes:
{{- if .Values.proxy.preprocessor }}
- name: preprocessor
configMap:
name: {{ template "wavefront.proxy.fullname" . }}-preprocessor
{{- end }}
{{- if .Values.openshift.enabled }}
- name: spool
persistentVolumeClaim:
claimName: {{ .Values.openshift.pvcName | quote }}
{{- end }}
{{- end }}
@@ -0,0 +1,14 @@
{{- if .Values.proxy.preprocessor }}
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
helm.sh/chart: {{ template "wavefront.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io.instance: {{ .Release.Name | quote }}
app.kubernetes.io/component: proxy
name: {{ template "wavefront.proxy.fullname" . }}-preprocessor
data:
{{ tpl (toYaml .Values.proxy.preprocessor) . | indent 2 }}
{{- end }}
@@ -0,0 +1,35 @@
{{- if .Values.proxy.enabled }}
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
helm.sh/chart: {{ template "wavefront.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io.instance: {{ .Release.Name | quote }}
app.kubernetes.io/component: proxy
name: {{ template "wavefront.proxy.fullname" . }}
spec:
ports:
- name: wavefront
port: {{ .Values.proxy.port }}
protocol: TCP
{{- if .Values.proxy.tracePort }}
- name: wavefront-trace
port: {{ .Values.proxy.tracePort }}
protocol: TCP
{{- end }}
{{- if .Values.proxy.jaegerPort }}
- name: jaeger
port: {{ .Values.proxy.jaegerPort }}
protocol: TCP
{{- end }}
{{- if .Values.proxy.zipkinPort }}
- name: zipkin
port: {{ .Values.proxy.zipkinPort }}
protocol: TCP
{{- end }}
selector:
app.kubernetes.io/name : {{ template "wavefront.fullname" .}}
app.kubernetes.io/component: proxy
{{ end }}
+194
View File
@@ -0,0 +1,194 @@
## Default values for Wavefront
## This is a unique name for the cluster
## All metrics will receive a `cluster` tag with this value
## Required
clusterName: KUBERNETES_CLUSTER_NAME
## Wavefront URL (cluster) and API Token
## Required
wavefront:
url: https://YOUR_CLUSTER.wavefront.com
token: YOUR_API_TOKEN
## Wavefront Collector is responsible to get all Kubernetes metrics from your cluster.
## It will capture Kubernetes resources metrics available from the kubelets,
## as well as auto-discovery capabilities.
collector:
enabled: true
image:
repository: wavefronthq/wavefront-kubernetes-collector
tag: 0.9.7
pullPolicy: IfNotPresent
## If set to true, metrics will be sent to Wavefront via a Wavefront Proxy.
## When true you must either specify a value for `collector.proxyAddress` or set `proxy.enabled` to true
## If set to false, metrics will be sent to Wavefront via the Direct Ingestion API
useProxy: true
## Can be used to specify a specific address for the Wavefront Proxy
## The proxy can be anywhere network reachable including outside of the cluster
## Required if `collector.useProxy` is true and `proxy.enabled` is false
# proxyAddress: wavefront-proxy:2878
## This is the Kubelet summary api endpoint and options.
## Ref: https://github.com/wavefrontHQ/wavefront-kubernetes-collector/blob/master/docs/configuration.md#kubernetes-source
# kubernetesSource: kubernetes.summary_api:''
## If using Openshift (see below to enable) use the following for kubernetesSource
# kubernetesSource: kubernetes.summary_api:${MASTER_URL}?useServiceAccount=true&kubeletHttps=true&kubeletPort=10250
## If set to true, any Kubernetes labels will be applied to metrics as tags. Defaults to false.
includeLabels: true
## If set to true, all container metrics will be sent to Wavefront.
## When set to false, container level metrics are skipped (pod level and above are still sent to Wavefront). Defaults to true.
# includeContainers: true
## The global prefix to be added for Kubernetes metrics. Defaults to `kubernetes.`.
## This does not apply to other sources. Use source level prefixes for sources other than the Kubernetes source.
# prefix: kubernetes.
## max number of CPUs that can be used simultaneously. Less than 1 for default (number of cores)
# maxProcs: 0
## The resolution at which the collector will retain metrics. (default 1m)
# interval: 1m
## Timeout for exporting data (default 20s)
# sinkDelay: 20s
## log level. Uses V logs (glog)
# logVerbosity: 0
## Discovery capabilities of Wavefront Collector
discovery:
enabled: true
## Rules based discovery collection configuration
## Ref: https://github.com/wavefrontHQ/wavefront-kubernetes-collector/blob/master/docs/discovery.md#rules-based-discovery
# config:
# config.yaml: |
# global:
# discovery_interval: 10m
# prom_configs:
# - name: kube-dns-discovery
# labels:
# k8s-app: kube-dns
# port: 10055
# path: /metrics
# scheme: http
# source: kube-dns
# prefix: kube.dns.
# tags:
# env: prod
# collector: wavefront-collector
## Wavefront Collector resource requests and limits
## Make sure to keep requests and limits equal to keep the pods in the Guaranteed QoS class
## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
resources:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 200m
memory: 256Mi
## Wavefront Proxy is a metrics forwarder that is used to relay metrics to the Wavefront SaaS service.
## It can receive metrics from the Wavefront Collector as well as other metrics collection services
## within your cluster. The proxy also supports preprocessor rules to allow you to further filter
## and enhance your metric names, and tags. Should network connectivity fall between the proxy and
## Wavefront SaaS service, the proxy will buffer metrics, which will be flushed when connectivity resumes.
## Ref: https://docs.wavefront.com/proxies.html
proxy:
enabled: true
image:
repository: wavefronthq/proxy
tag: 4.35
pullPolicy: IfNotPresent
## The port number the proxy will listen on for metrics in Wavefront data format.
## This is usually 2878
port: 2878
## The port nubmer the proxy will listen on for tracing spans in Wavefront trace data format.
## This is usually 30000
# tracePort: 30000
## The port nubmer the proxy will listen on for tracing spans in Jaeger data format.
## This is usually 30001
# jaegerPort: 30001
## The port nubmer the proxy will listen on for tracing spans in Zipkin data format.
## This is usually 9411
# zipkinPort: 9411
## Sampling rate to apply to tracing spans sent to the proxy.
## This rate is applied to all data formats the proxy is listening on.
## Value should be between 0.0 and 1.0. Default is 1.0
# traceSamplingRate: 0.25
## When this is set to a value greater than 0,
## spans that are greater than or equal to this value will be sampled.
# traceSamplingDuration: 500
## Any configuration property can be passed to the proxy via command line args in
## in the format: `--<property_name> <value>`. Multiple properties can be specified
## separated by whitespace.
## Ref: https://docs.wavefront.com/proxies_configuring.html
# args:
## Proxy is a Java application. By default Java will consume upto 4G of heap memory.
## This can be used to override the default. Uses the `-Xmx` command line option for java
# heap: 1024m
## Preprocessor rules is a powerful way to apply filtering or to enhance metrics as they flow
## through the proxy. You can configure the rules here. By default a rule to drop Kubernetes
## generated labels is applied to remove unecessary and often noisy tags.
## Ref: https://docs.wavefront.com/proxies_preprocessor_rules.html
preprocessor:
rules.yaml: |
'2878':
- rule : drop-generated-label-tags
action : dropTag
tag : label\.(controller-revision-hash|pod-template-.*|.*kubernetes\.io.*)
# - rule : add-cluster-tag
# action : addTag
# tag : cluster
# value : {{ .Values.clusterName | quote }}
## Specifies whether RBAC resources should be created
rbac:
create: true
## Specifies whether a ServiceAccount should be created
serviceAccount:
create: true
## The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the fullname template
name:
## kube-state-metrics are used to get metrics about the state of the Kubernetes scheduler
## If enabled the kube-state-metrics chart will be installed as a subchart and the collector
## will be configured to capture metrics.
kubeStateMetrics:
enabled: true
## Openshift integration can be enabled here
## If enabled is true, you must specify `collector.kubernetesSource` to be a valid
## summary api endpoint within your Openshift environment.
openshift:
enabled: false
## Wavefront proxy requires a persistent volume claim for its metrics buffers in Openshift
## If `proxy.enabled` is true, this must be set to the name of a persistent volume claim
## that the proxy can use for its buffers.
# pvcName: wavefront-storage