From 90d304b6729c46d0f753b76b36c15787e602e3eb Mon Sep 17 00:00:00 2001 From: adel121 Date: Mon, 4 Mar 2024 21:11:36 +0100 Subject: [PATCH] add language detection apm config --- charts/datadog/CHANGELOG.md | 4 ++++ charts/datadog/Chart.yaml | 2 +- charts/datadog/README.md | 3 ++- charts/datadog/templates/_components-common-env.yaml | 5 +++-- .../datadog/templates/_container-process-agent.yaml | 4 ++++ .../datadog/templates/cluster-agent-deployment.yaml | 2 ++ charts/datadog/templates/cluster-agent-rbac.yaml | 11 +++++++++++ charts/datadog/values.yaml | 7 +++++++ 8 files changed, 34 insertions(+), 4 deletions(-) diff --git a/charts/datadog/CHANGELOG.md b/charts/datadog/CHANGELOG.md index 246948338..03a2449cf 100644 --- a/charts/datadog/CHANGELOG.md +++ b/charts/datadog/CHANGELOG.md @@ -1,5 +1,9 @@ # Datadog changelog +## 3.59.4 + +* Add language detection enable option for `APM` instrumentation. + ## 3.59.3 * Add `contimage-intake.datadoghq.com` & `contlcycle-intake.datadoghq.com` endpoints to the `Agent` cilium network policy. diff --git a/charts/datadog/Chart.yaml b/charts/datadog/Chart.yaml index 05955a62f..90b281394 100644 --- a/charts/datadog/Chart.yaml +++ b/charts/datadog/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: datadog -version: 3.59.3 +version: 3.59.4 appVersion: "7" description: Datadog Agent keywords: diff --git a/charts/datadog/README.md b/charts/datadog/README.md index 868acbf94..9089d89dd 100644 --- a/charts/datadog/README.md +++ b/charts/datadog/README.md @@ -1,6 +1,6 @@ # Datadog -![Version: 3.59.3](https://img.shields.io/badge/Version-3.59.3-informational?style=flat-square) ![AppVersion: 7](https://img.shields.io/badge/AppVersion-7-informational?style=flat-square) +![Version: 3.59.4](https://img.shields.io/badge/Version-3.59.4-informational?style=flat-square) ![AppVersion: 7](https://img.shields.io/badge/AppVersion-7-informational?style=flat-square) [Datadog](https://www.datadoghq.com/) is a hosted infrastructure monitoring platform. This chart adds the Datadog Agent to all nodes in your cluster via a DaemonSet. It also optionally depends on the [kube-state-metrics chart](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-state-metrics). For more information about monitoring Kubernetes with Datadog, please refer to the [Datadog documentation website](https://docs.datadoghq.com/agent/basic_agent_usage/kubernetes/). @@ -665,6 +665,7 @@ helm install \ | datadog.apm.instrumentation.disabledNamespaces | list | `[]` | Disable injecting the Datadog APM libraries into pods in specific namespaces (beta). | | datadog.apm.instrumentation.enabled | bool | `false` | Enable injecting the Datadog APM libraries into all pods in the cluster (beta). | | datadog.apm.instrumentation.enabledNamespaces | list | `[]` | Enable injecting the Datadog APM libraries into pods in specific namespaces (beta). | +| datadog.apm.instrumentation.language_detection.enabled | bool | `true` | Run language detection to automatically detect languages of user workloads (beta). | | datadog.apm.instrumentation.libVersions | object | `{}` | Inject specific version of tracing libraries with Single Step Instrumentation (beta). | | datadog.apm.port | int | `8126` | Override the trace Agent port | | datadog.apm.portEnabled | bool | `false` | Enable APM over TCP communication (hostPort 8126 by default) | diff --git a/charts/datadog/templates/_components-common-env.yaml b/charts/datadog/templates/_components-common-env.yaml index 3c67bd01c..19198b3cd 100644 --- a/charts/datadog/templates/_components-common-env.yaml +++ b/charts/datadog/templates/_components-common-env.yaml @@ -1,9 +1,10 @@ # The purpose of this template is to define a minimal set of environment # variables shared between components: agent, cluster-agent {{- define "components-common-env" -}} -# Workaround for issue in `7.52.0` default activating language detection +- name: DD_LANGUAGE_DETECTION_ENABLED + value: {{ (and .Values.datadog.apm.instrumentation.enabled .Values.datadog.apm.instrumentation.language_detection.enabled) | quote }} - name: DD_LANGUAGE_DETECTION_REPORTING_ENABLED - value: "false" + value: {{ (and .Values.datadog.apm.instrumentation.enabled .Values.datadog.apm.instrumentation.language_detection.enabled) | quote }} {{- if .Values.datadog.secretBackend.command }} - name: DD_SECRET_BACKEND_COMMAND value: {{ .Values.datadog.secretBackend.command | quote }} diff --git a/charts/datadog/templates/_container-process-agent.yaml b/charts/datadog/templates/_container-process-agent.yaml index b69179bbc..d8fdd8610 100644 --- a/charts/datadog/templates/_container-process-agent.yaml +++ b/charts/datadog/templates/_container-process-agent.yaml @@ -52,6 +52,10 @@ {{- end }} - name: DD_ORCHESTRATOR_EXPLORER_ENABLED value: {{ (include "should-enable-k8s-resource-monitoring" .) | quote }} + {{- if and .Values.datadog.apm.instrumentation.enabled .Values.datadog.apm.instrumentation.language_detection.enabled }} + - name: DD_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED + value: "true" + {{- end }} {{- include "additional-env-entries" .Values.agents.containers.processAgent.env | indent 4 }} {{- include "additional-env-dict-entries" .Values.agents.containers.processAgent.envDict | indent 4 }} volumeMounts: diff --git a/charts/datadog/templates/cluster-agent-deployment.yaml b/charts/datadog/templates/cluster-agent-deployment.yaml index cd7bd026f..e899f004a 100644 --- a/charts/datadog/templates/cluster-agent-deployment.yaml +++ b/charts/datadog/templates/cluster-agent-deployment.yaml @@ -308,6 +308,8 @@ spec: - name: DD_ORCHESTRATOR_EXPLORER_CONTAINER_SCRUBBING_ENABLED value: {{ .Values.datadog.orchestratorExplorer.container_scrubbing.enabled | quote }} {{- end }} + - name: DD_CLUSTER_AGENT_LANGUAGE_DETECTION_PATCHER_ENABLED + value: {{ (and .Values.datadog.apm.instrumentation.enabled .Values.datadog.apm.instrumentation.language_detection.enabled) | quote }} {{- if eq (include "should-enable-security-agent" .) "true" }} - name: DD_COMPLIANCE_CONFIG_ENABLED value: {{ .Values.datadog.securityAgent.compliance.enabled | quote }} diff --git a/charts/datadog/templates/cluster-agent-rbac.yaml b/charts/datadog/templates/cluster-agent-rbac.yaml index a414f640f..d9e87ff5b 100644 --- a/charts/datadog/templates/cluster-agent-rbac.yaml +++ b/charts/datadog/templates/cluster-agent-rbac.yaml @@ -115,6 +115,17 @@ rules: - "get" - "watch" {{- end }} +{{- if and .Values.datadog.apm.instrumentation.enabled .Values.datadog.apm.instrumentation.language_detection.enabled }} +- apiGroups: + - "apps" + resources: + - deployments + verbs: + - list + - get + - watch + - patch +{{- end }} {{- if eq (include "should-enable-k8s-resource-monitoring" .) "true" }} - apiGroups: # to get the kube-system namespace UID and generate a cluster ID - "" diff --git a/charts/datadog/values.yaml b/charts/datadog/values.yaml index f39b58904..9fad54d16 100644 --- a/charts/datadog/values.yaml +++ b/charts/datadog/values.yaml @@ -479,6 +479,13 @@ datadog: # datadog.apm.instrumentation.libVersions -- Inject specific version of tracing libraries with Single Step Instrumentation (beta). libVersions: {} + + # Language detection currently only detects languages and adds them as annotations on deployments, but doesn't use these languages for injecting libraries to applicative pods. + # It requires Agent 7.52+ and Cluster Agent 7.52+ + language_detection: + # datadog.apm.instrumentation.language_detection.enabled -- Run language detection to automatically detect languages of user workloads (beta). + enabled: true + ## OTLP ingest related configuration otlp: receiver: