Essayez Introduction to Monitoring Kubernetes dans le Learning Center
Apprenez sans frais sur une véritable capacité de calcul cloud et un compte d'essai Datadog. Commencez ces laboratoires pratiques pour vous familiariser avec les métriques, les journaux et les traces APM spécifiques à Kubernetes.
Vous pouvez envoyer des traces via Unix Domain Socket (UDS), TCP (IP:Port) ou le service Kubernetes. Datadog recommande d’utiliser UDS, mais il est possible d’utiliser les trois en même temps, si nécessaire.
Lorsque l’APM est activé, la configuration par défaut crée un répertoire sur l’hôte et le monte dans l’Agent. L’Agent crée ensuite et écoute sur un fichier socket /var/run/datadog/apm/apm.socket. Les pods d’application peuvent alors monter ce volume de manière similaire et écrire sur ce même socket. Vous pouvez modifier le chemin et le socket avec la valeur de configuration features.apm.unixDomainSocketConfig.path.
After making your changes, apply the new configuration by using the following command:
Remarque : Sur minikube, vous pouvez recevoir une erreur Unable to detect the kubelet URL automatically. Dans ce cas, définissez global.kubelet.tlsVerify sur false.
Pour vérifier, assurez-vous que datadog.apm.socketEnabled est défini sur true dans votre datadog-values.yaml.
datadog:apm:socketEnabled:true
La configuration par défaut crée un répertoire sur l’hôte et le monte dans l’Agent. L’Agent crée ensuite et écoute sur un fichier socket /var/run/datadog/apm.socket. Les pods d’application peuvent alors monter ce volume de manière similaire et écrire sur ce même socket. Vous pouvez modifier le chemin et le socket avec les valeurs de configuration datadog.apm.hostSocketPath et datadog.apm.socketPath.
datadog:apm:# the following values are default:socketEnabled:truehostSocketPath:/var/run/datadog/socketPath:/var/run/datadog/apm.socket
Pour désactiver APM, définissez datadog.apm.socketEnabled sur false.
After making your changes, upgrade your Datadog Helm chart using the following command:
Remarque : Sur minikube, vous pouvez recevoir une erreur Unable to detect the kubelet URL automatically. Dans ce cas, définissez datadog.kubelet.tlsVerify sur false.
Configurez vos pods d’application pour soumettre des traces à l’Agent Datadog
Le Contrôleur d’Admission Datadog est un composant de l’Agent de Cluster Datadog qui simplifie la configuration de vos pods d’application. En savoir plus en lisant la documentation du Contrôleur d’Admission Datadog.
Utilisez le Contrôleur d’Admission Datadog pour injecter des variables d’environnement et monter les volumes nécessaires sur de nouveaux pods d’application, configurant automatiquement la communication des traces entre le pod et l’Agent. Apprenez à configurer automatiquement votre application pour soumettre des traces à l’Agent Datadog en lisant la documentation sur l’injection de bibliothèques à l’aide du Contrôleur d’Admission.
Si vous envoyez des traces à l’Agent en utilisant UDS, montez le répertoire hôte dans lequel se trouve le socket (que l’Agent a créé) dans le conteneur d’application et spécifiez le chemin vers le socket avec DD_TRACE_AGENT_URL :
Configurez vos SDK d’application pour émettre des traces :
Après avoir configuré votre Agent Datadog pour collecter des traces et donné à vos pods d’application la configuration sur où envoyer les traces, installez le SDK Datadog dans vos applications pour émettre les traces. Une fois cela fait, le SDK envoie les traces au point de terminaison approprié DD_TRACE_AGENT_URL.
Si vous envoyez des traces à l’Agent en utilisant TCP (<IP_ADDRESS>:8126), fournissez cette adresse IP à vos pods d’application—soit automatiquement avec le Contrôleur d’Admission Datadog, soit manuellement en utilisant l’API descendante pour récupérer l’IP de l’hôte. Le conteneur d’application a besoin de la variable d’environnement DD_AGENT_HOST qui pointe vers status.hostIP :
Remarque : Cette configuration nécessite que l’Agent soit configuré pour accepter des traces via TCP
Configurez vos SDK d’application pour émettre des traces :
Après avoir configuré votre Agent Datadog pour collecter des traces et avoir donné à vos pods d’application la configuration sur où envoyer les traces, installez le SDK Datadog dans vos applications pour émettre les traces. Une fois cela fait, le SDK envoie automatiquement les traces au point de terminaison approprié DD_AGENT_HOST.
Avertissement : Le paramètre hostPort ouvre un port sur votre hôte. Assurez-vous que votre pare-feu n’autorise l’accès qu’à vos applications ou à des sources de confiance. Si votre plugin réseau ne prend pas en charge hostPorts, ajoutez hostNetwork: true dans les spécifications de votre pod Agent. Cela partage l’espace de noms réseau de votre hôte avec l’Agent Datadog. Cela signifie également que tous les ports ouverts sur le conteneur sont ouverts sur l’hôte. Si un port est utilisé à la fois sur l’hôte et dans votre conteneur, ils entrent en conflit (puisqu’ils partagent le même espace de noms réseau) et le pod ne démarre pas. Certaines installations Kubernetes ne permettent pas cela.
Mettez à jour votre fichier datadog-values.yaml avec la configuration APM suivante :
datadog:apm:portEnabled:trueport:8126# default
After making your changes, upgrade your Datadog Helm chart using the following command:
Avertissement : Le paramètre datadog.apm.portEnabled ouvre un port sur votre hôte. Assurez-vous que votre pare-feu n’autorise l’accès qu’à vos applications ou à des sources de confiance. Si votre plugin réseau ne prend pas en charge hostPorts, ajoutez hostNetwork: true dans les spécifications de votre pod Agent. Cela partage l’espace de noms réseau de votre hôte avec l’Agent Datadog. Cela signifie également que tous les ports ouverts sur le conteneur sont ouverts sur l’hôte. Si un port est utilisé à la fois sur l’hôte et dans votre conteneur, ils entrent en conflit (puisqu’ils partagent le même espace de noms réseau) et le pod ne démarre pas. Certaines installations Kubernetes ne permettent pas cela.
Variables d’environnement APM
Définissez des variables d’environnement APM supplémentaires sous override.nodeAgent.containers.trace-agent.env :
Configure resources for the Agent to ignore. Format should be comma separated, regular expressions. For example: GET /ignore-me,(GET|POST) /and-also-me
DD_APM_LOG_FILE
Path to file where APM logs are written.
DD_APM_CONNECTION_LIMIT
Maximum connection limit for a 30 second time window. Default: 2000
DD_APM_ADDITONAL_ENDPOINTS
Send data to multiple endpoints and/or with multiple API keys. See Dual Shipping.
DD_APM_DEBUG_PORT
Port for the debug endpoints for the Trace Agent. Set to 0 to disable the server. Default: 5012.
DD_BIND_HOST
Set the StatsD and receiver hostname.
DD_DOGSTATSD_PORT
For tracing over TCP, set the DogStatsD port.
DD_ENV
Sets the global env for all data emitted by the Agent. If env is not present in your trace data, this variable is used.
DD_HOSTNAME
Manually set the hostname to use for metrics if autodetection fails, or when running the Datadog Cluster Agent.
DD_LOG_LEVEL
Set the logging level. Values: trace, debug, info, warn, error, critical, off
DD_PROXY_HTTPS
Configurez l’URL pour le proxy à utiliser.
Lectures complémentaires
Documentation, liens et articles supplémentaires utiles: