From 3ef5fe6c49375d27f68f4f391fe60da95395d346 Mon Sep 17 00:00:00 2001 From: Eric Cavalcanti Date: Thu, 7 Aug 2025 09:03:15 -0500 Subject: [PATCH] Add Datadog as telemetry option (#639) * Add Datadog as telemetry option Signed-off-by: Eric Cavalcanti * Use correct local domain Signed-off-by: Eric Cavalcanti * Change doc Signed-off-by: Eric Cavalcanti * Add docs Signed-off-by: Eric Cavalcanti * remove .cluster.local Signed-off-by: Eric Cavalcanti * Remove cluster.local Signed-off-by: Eric Cavalcanti * Fix doc Signed-off-by: Eric Cavalcanti --------- Signed-off-by: Eric Cavalcanti Co-authored-by: kfox1111 --- charts/spire/charts/spire-agent/README.md | 3 +++ charts/spire/charts/spire-agent/templates/configmap.yaml | 7 +++++++ charts/spire/charts/spire-agent/values.yaml | 7 +++++++ charts/spire/charts/spire-server/README.md | 3 +++ charts/spire/charts/spire-server/templates/configmap.yaml | 7 +++++++ charts/spire/charts/spire-server/values.yaml | 7 +++++++ 6 files changed, 34 insertions(+) diff --git a/charts/spire/charts/spire-agent/README.md b/charts/spire/charts/spire-agent/README.md index ee5d539..70d15e1 100644 --- a/charts/spire/charts/spire-agent/README.md +++ b/charts/spire/charts/spire-agent/README.md @@ -110,6 +110,9 @@ A Helm chart to install the SPIRE agent. | `telemetry.prometheus.podMonitor.enabled` | Enable podMonitor for prometheus | `false` | | `telemetry.prometheus.podMonitor.namespace` | Override where to install the podMonitor, if not set will use the same namespace as the spire-agent | `""` | | `telemetry.prometheus.podMonitor.labels` | Pod labels to filter for prometheus monitoring | `{}` | +| `telemetry.datadog.enabled` | Flag to enable datadog monitoring | `false` | +| `telemetry.datadog.address` | The address of the datadog service to send metrics to. The default URL for services are `..svc` | `datadog.kube-system.svc` | +| `telemetry.datadog.port` | The port of the datadog service to send metrics to | `8125` | | `kubeletConnectByHostname` | If true, connect to kubelet using the nodes hostname. If false, uses localhost. If unset, defaults to true on OpenShift and false otherwise. | `""` | | `socketPath` | The unix socket path to the spire-agent | `/run/spire/agent-sockets/spire-agent.sock` | | `socketAlternate.names` | List of alternate names for the socket that workloads might expect to be able to access in the driver mount. | `["socket","spire-agent.sock","api.sock"]` | diff --git a/charts/spire/charts/spire-agent/templates/configmap.yaml b/charts/spire/charts/spire-agent/templates/configmap.yaml index 120060c..0956072 100644 --- a/charts/spire/charts/spire-agent/templates/configmap.yaml +++ b/charts/spire/charts/spire-agent/templates/configmap.yaml @@ -170,6 +170,13 @@ telemetry: - host: "0.0.0.0" port: {{ .Values.telemetry.prometheus.port }} {{- end }} + +{{- if .Values.telemetry.datadog.enabled }} +telemetry: + - DogStatsd: + - address: "{{ .Values.telemetry.datadog.address }}:{{ .Values.telemetry.datadog.port }}" +{{- end }} + {{- end }} {{- $root := . }} {{- range $name := (concat (list "default") (keys .Values.agents)) | uniq }} diff --git a/charts/spire/charts/spire-agent/values.yaml b/charts/spire/charts/spire-agent/values.yaml index 7996005..b79d8ec 100644 --- a/charts/spire/charts/spire-agent/values.yaml +++ b/charts/spire/charts/spire-agent/values.yaml @@ -263,6 +263,13 @@ telemetry: namespace: "" ## @param telemetry.prometheus.podMonitor.labels [object] Pod labels to filter for prometheus monitoring labels: {} + datadog: + ## @param telemetry.datadog.enabled Flag to enable datadog monitoring + enabled: false + ## @param telemetry.datadog.address The address of the datadog service to send metrics to. The default URL for services are `..svc` + address: "datadog.kube-system.svc" + ## @param telemetry.datadog.port The port of the datadog service to send metrics to + port: 8125 ## @param kubeletConnectByHostname If true, connect to kubelet using the nodes hostname. If false, uses localhost. If unset, defaults to true on OpenShift and false otherwise. kubeletConnectByHostname: "" diff --git a/charts/spire/charts/spire-server/README.md b/charts/spire/charts/spire-server/README.md index 883ea41..8708d20 100644 --- a/charts/spire/charts/spire-server/README.md +++ b/charts/spire/charts/spire-server/README.md @@ -353,6 +353,9 @@ In order to run Tornjak with simple HTTP Connection only, make sure you don't cr | `telemetry.prometheus.podMonitor.enabled` | Enable podMonitor for prometheus | `false` | | `telemetry.prometheus.podMonitor.namespace` | Override where to install the podMonitor, if not set will use the same namespace as the spire-agent | `""` | | `telemetry.prometheus.podMonitor.labels` | Pod labels to filter for prometheus monitoring | `{}` | +| `telemetry.datadog.enabled` | Flag to enable datadog monitoring | `false` | +| `telemetry.datadog.address` | The address of the datadog service to send metrics to. The default URL for services are `..svc` | `datadog.kube-system.svc` | +| `telemetry.datadog.port` | The port of the datadog service to send metrics to | `8125` | | `ingress.enabled` | Flag to enable ingress | `false` | | `ingress.className` | Ingress class name | `""` | | `ingress.controllerType` | Specify what type of ingress controller you're using to add the necessary annotations accordingly. If blank, autodetection is attempted. If other, no annotations will be added. Must be one of [ingress-nginx, openshift, other, ""]. | `""` | diff --git a/charts/spire/charts/spire-server/templates/configmap.yaml b/charts/spire/charts/spire-server/templates/configmap.yaml index a87dfbb..b06a270 100644 --- a/charts/spire/charts/spire-server/templates/configmap.yaml +++ b/charts/spire/charts/spire-server/templates/configmap.yaml @@ -499,6 +499,13 @@ telemetry: - host: "0.0.0.0" port: 9988 {{- end }} + +{{- if .Values.telemetry.datadog.enabled }} +telemetry: + - DogStatsd: + - address: "{{ .Values.telemetry.datadog.address }}:{{ .Values.telemetry.datadog.port }}" +{{- end }} + {{- end }} {{- if not .Values.externalServer }} apiVersion: v1 diff --git a/charts/spire/charts/spire-server/values.yaml b/charts/spire/charts/spire-server/values.yaml index fa3ec08..602cea7 100644 --- a/charts/spire/charts/spire-server/values.yaml +++ b/charts/spire/charts/spire-server/values.yaml @@ -852,6 +852,13 @@ telemetry: namespace: "" ## @param telemetry.prometheus.podMonitor.labels [object] Pod labels to filter for prometheus monitoring labels: {} + datadog: + ## @param telemetry.datadog.enabled Flag to enable datadog monitoring + enabled: false + ## @param telemetry.datadog.address The address of the datadog service to send metrics to. The default URL for services are `..svc` + address: "datadog.kube-system.svc" + ## @param telemetry.datadog.port The port of the datadog service to send metrics to + port: 8125 ingress: ## @param ingress.enabled Flag to enable ingress