{"id":26859,"date":"2026-06-23T03:57:47","date_gmt":"2026-06-23T03:57:47","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=26859"},"modified":"2026-06-23T03:57:50","modified_gmt":"2026-06-23T03:57:50","slug":"datadog-agent-troubleshooting-guide","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/datadog-agent-troubleshooting-guide\/","title":{"rendered":"Datadog Troubleshooting Master Guide"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">It covers:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog Agent, Kubernetes Agent, Cluster Agent, integrations, logs, APM\/traces, custom metrics, DogStatsD, OpenTelemetry, API keys, Terraform, monitors, SLOs, RUM, Synthetics, cloud integrations, cost, permissions, and common \u201cdata missing in Datadog\u201d scenarios.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. First Principle: Understand the Datadog Data Flow<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before troubleshooting Datadog, always identify <strong>where the data path is broken<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A typical telemetry path looks like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">flowchart<\/span> <span class=\"hljs-selector-tag\">LR<\/span>\n    <span class=\"hljs-selector-tag\">A<\/span><span class=\"hljs-selector-attr\">&#91;Application \/ Host \/ Container \/ Cloud Service]<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">B<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Agent \/ SDK \/ Collector \/ Integration]<\/span>\n    <span class=\"hljs-selector-tag\">B<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">C<\/span><span class=\"hljs-selector-attr\">&#91;Network \/ Proxy \/ TLS \/ Firewall]<\/span>\n    <span class=\"hljs-selector-tag\">C<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">D<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Intake Endpoint]<\/span>\n    <span class=\"hljs-selector-tag\">D<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">E<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Processing Pipeline]<\/span>\n    <span class=\"hljs-selector-tag\">E<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">F<\/span><span class=\"hljs-selector-attr\">&#91;Indexes \/ Metrics Store \/ Trace Store \/ RUM \/ Synthetics]<\/span>\n    <span class=\"hljs-selector-tag\">F<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">G<\/span><span class=\"hljs-selector-attr\">&#91;Dashboard \/ Monitor \/ SLO \/ Explorer]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Most Datadog problems fall into one of these buckets:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Problem Area<\/th><th>Typical Issue<\/th><\/tr><\/thead><tbody><tr><td>Source<\/td><td>App is not emitting logs, metrics, or traces<\/td><\/tr><tr><td>Agent \/ SDK<\/td><td>Agent not running, wrong config, tracer not loaded<\/td><\/tr><tr><td>Network<\/td><td>Proxy, firewall, DNS, TLS, site mismatch<\/td><\/tr><tr><td>Authentication<\/td><td>Wrong API key, wrong app key, wrong Datadog site<\/td><\/tr><tr><td>Processing<\/td><td>Log pipeline, index filter, sampling, retention, exclusion<\/td><\/tr><tr><td>Query\/UI<\/td><td>Wrong tags, wrong environment, wrong timeframe, wrong aggregation<\/td><\/tr><tr><td>Cost controls<\/td><td>Metrics\/logs\/traces intentionally dropped or not indexed<\/td><\/tr><tr><td>Permissions<\/td><td>User cannot see data because of RBAC, restriction queries, or scoped app keys<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s own Agent troubleshooting checklist starts with exactly these basics: internet\/proxy access, correct API key, correct Datadog site, only one Agent per host, restarting after YAML changes, then checking Agent status and logs. (<a href=\"https:\/\/docs.datadoghq.com\/agent\/troubleshooting\/\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">2. Universal Troubleshooting Checklist<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Use this before debugging any specific Datadog product.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.1 Check the Datadog site<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog has multiple sites, such as US1, US3, US5, EU, AP1, AP2, and US1-FED. If your Agent, SDK, Terraform provider, API request, RUM SDK, or Synthetic Private Location is configured for the wrong site, data may be sent successfully but to the wrong Datadog intake.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Common values:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">datadoghq<\/span><span class=\"hljs-selector-class\">.com<\/span>\n<span class=\"hljs-selector-tag\">us3<\/span><span class=\"hljs-selector-class\">.datadoghq<\/span><span class=\"hljs-selector-class\">.com<\/span>\n<span class=\"hljs-selector-tag\">us5<\/span><span class=\"hljs-selector-class\">.datadoghq<\/span><span class=\"hljs-selector-class\">.com<\/span>\n<span class=\"hljs-selector-tag\">datadoghq<\/span><span class=\"hljs-selector-class\">.eu<\/span>\n<span class=\"hljs-selector-tag\">ap1<\/span><span class=\"hljs-selector-class\">.datadoghq<\/span><span class=\"hljs-selector-class\">.com<\/span>\n<span class=\"hljs-selector-tag\">ap2<\/span><span class=\"hljs-selector-class\">.datadoghq<\/span><span class=\"hljs-selector-class\">.com<\/span>\n<span class=\"hljs-selector-tag\">ddog-gov<\/span><span class=\"hljs-selector-class\">.com<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo datadog-agent status\nsudo datadog-agent configcheck\ngrep -i <span class=\"hljs-string\">\"site\"<\/span> \/etc\/datadog-agent\/datadog.yaml\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Kubernetes, check Helm\/Operator values:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">helm <span class=\"hljs-keyword\">get<\/span> values datadog -n datadog\nkubectl <span class=\"hljs-keyword\">get<\/span> datadogagent -A -o yaml\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The site configured in <code>datadog.yaml<\/code> must match the organization\u2019s Datadog platform site. (<a href=\"https:\/\/docs.datadoghq.com\/agent\/troubleshooting\/\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2.2 Check API key and application key<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There are two key types:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Key Type<\/th><th>Used For<\/th><\/tr><\/thead><tbody><tr><td>API key<\/td><td>Agent and intake submission: metrics, logs, events<\/td><\/tr><tr><td>Application key<\/td><td>Datadog API operations: Terraform, dashboards, monitors, user-level actions<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog API keys are unique to the organization and are required by the Agent to submit metrics and events. Application keys are used with the API key for programmatic API access and inherit permissions from the user or service account unless scoped differently. (<a href=\"https:\/\/docs.datadoghq.com\/account_management\/api-app-keys\/\">Datadog<\/a>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">grep -i <span class=\"hljs-string\">\"api_key\"<\/span> \/etc\/datog-agent\/datadog.yaml\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">But do <strong>not<\/strong> print secrets in CI logs or Slack.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For API validation:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -X GET <span class=\"hljs-string\">\"https:\/\/api.&lt;DATADOG_SITE&gt;\/api\/v1\/validate\"<\/span> \\\n  -H <span class=\"hljs-string\">\"DD-API-KEY: ${DD_API_KEY}\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For API + app key validation:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -X GET <span class=\"hljs-string\">\"https:\/\/api.&lt;DATADOG_SITE&gt;\/api\/v2\/validate_keys\"<\/span> \\\n  -H <span class=\"hljs-string\">\"DD-API-KEY: ${DD_API_KEY}\"<\/span> \\\n  -H <span class=\"hljs-string\">\"DD-APPLICATION-KEY: ${DD_APP_KEY}\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog recommends scoped application keys with least privilege, and newer organizations created after August 20, 2025 have One-Time Read mode enabled by default for application keys, meaning the app key secret is visible only at creation time. (<a href=\"https:\/\/docs.datadoghq.com\/account_management\/api-app-keys\/\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2.3 Check network, proxy, DNS, TLS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Many Datadog issues are not Datadog issues. They are egress issues.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -v https:<span class=\"hljs-comment\">\/\/api.datadoghq.com<\/span>\ncurl -v https:<span class=\"hljs-comment\">\/\/app.datadoghq.com<\/span>\ncurl -v https:<span class=\"hljs-comment\">\/\/trace.agent.datadoghq.com<\/span>\ncurl -v https:<span class=\"hljs-comment\">\/\/http-intake.logs.datadoghq.com<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For your actual site, replace with the correct regional endpoint.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From Kubernetes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">kubectl run curl-test --rm -it --image=curlimages\/curl -- sh\ncurl -v https:<span class=\"hljs-comment\">\/\/api.datadoghq.com<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Common causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Symptom<\/th><th>Likely Cause<\/th><\/tr><\/thead><tbody><tr><td>Agent runs but no data<\/td><td>Firewall or proxy blocks Datadog intake<\/td><\/tr><tr><td>TLS handshake error<\/td><td>Corporate proxy, custom CA, SSL inspection<\/td><\/tr><tr><td>Works on host, fails in pod<\/td><td>Kubernetes NetworkPolicy, egress policy, NAT issue<\/td><\/tr><tr><td>Works in dev, fails in prod<\/td><td>Different outbound firewall\/proxy<\/td><\/tr><tr><td>Random timeout<\/td><td>Proxy saturation or DNS issue<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2.4 Check Agent health and status<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Core commands:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo datadog-agent status\nsudo datadog-agent health\nsudo datadog-agent diagnose\nsudo datadog-agent configcheck\nsudo datadog-agent flare\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Docker:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">docker exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">datadog-agent-container<\/span>&gt;<\/span> agent status\ndocker exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">datadog-agent-container<\/span>&gt;<\/span> agent health\ndocker exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">datadog-agent-container<\/span>&gt;<\/span> agent diagnose\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Kubernetes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">datadog-agent-pod<\/span>&gt;<\/span> -n datadog -- agent status\nkubectl exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">datadog-agent-pod<\/span>&gt;<\/span> -n datadog -- agent health\nkubectl exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">datadog-agent-pod<\/span>&gt;<\/span> -n datadog -- agent configcheck\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog documents <code>datadog-agent status<\/code>, <code>configcheck<\/code>, <code>diagnose<\/code>, <code>flare<\/code>, <code>health<\/code>, <code>hostname<\/code>, <code>stream-logs<\/code>, and check-specific commands as core troubleshooting commands. (<a href=\"https:\/\/docs.datadoghq.com\/agent\/configuration\/agent-commands\/\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2.5 Check Agent logs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Linux:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo journalctl -u datadog-agent.service -r\nsudo tail -f \/<span class=\"hljs-keyword\">var<\/span>\/log\/datadog\/agent.log\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Kubernetes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl logs -n datadog <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">datadog-agent-pod<\/span>&gt;<\/span>\nkubectl logs -n datadog <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">datadog-cluster-agent-pod<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check for:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">API key invalid\nconnection refused\ntimeout\nproxy error\nTLS error\ninvalid YAML\npermission denied\nunable to resolve hostname\ncheck failed\nlogs-agent stopped\ntrace-agent stopped\nprocess-agent stopped\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For systemd systems, Datadog recommends <code>systemctl status datadog-agent<\/code> and <code>journalctl -u datadog-agent.service<\/code> when the Agent fails to start. (<a href=\"https:\/\/docs.datadoghq.com\/agent\/troubleshooting\/agent_check_status.md?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">3. Datadog Agent Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">3.1 Agent not starting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Symptoms<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">datadog-agent.service failed\nAgent container CrashLoopBackOff\nNo host appears in Infrastructure <span class=\"hljs-keyword\">List<\/span>\nNo system.cpu\/system.mem metrics\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Check<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Linux:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">sudo<\/span> <span class=\"hljs-selector-tag\">systemctl<\/span> <span class=\"hljs-selector-tag\">status<\/span> <span class=\"hljs-selector-tag\">datadog-agent<\/span>\n<span class=\"hljs-selector-tag\">sudo<\/span> <span class=\"hljs-selector-tag\">journalctl<\/span> <span class=\"hljs-selector-tag\">-u<\/span> <span class=\"hljs-selector-tag\">datadog-agent<\/span><span class=\"hljs-selector-class\">.service<\/span> <span class=\"hljs-selector-tag\">-r<\/span>\n<span class=\"hljs-selector-tag\">sudo<\/span> <span class=\"hljs-selector-tag\">datadog-agent<\/span> <span class=\"hljs-selector-tag\">status<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Kubernetes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl get pods -n datadog\nkubectl describe pod <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog\nkubectl logs <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Common causes<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Invalid YAML<\/td><td>Run <code>datadog-agent configcheck<\/code><\/td><\/tr><tr><td>Missing API key<\/td><td>Verify Secret or <code>datadog.yaml<\/code><\/td><\/tr><tr><td>Wrong site<\/td><td>Set correct <code>DD_SITE<\/code><\/td><\/tr><tr><td>Permission denied<\/td><td>Check file permissions, container securityContext<\/td><\/tr><tr><td>Hostname detection failure<\/td><td>Set hostname or fix cloud metadata access<\/td><\/tr><tr><td>Proxy not configured<\/td><td>Add proxy config<\/td><\/tr><tr><td>Duplicate Agent<\/td><td>Ensure only one Agent per host\/node<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The official Agent checklist explicitly calls out hostname detection, proxy access, API key, site, duplicate Agents, restart after YAML changes, status command, logs, debug mode, and Agent flare. (<a href=\"https:\/\/docs.datadoghq.com\/agent\/troubleshooting\/\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3.2 Agent installed but host not visible<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Check the basic metrics<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In Datadog Metrics Explorer, query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">system<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.user<\/span>\n<span class=\"hljs-selector-tag\">system<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.used<\/span>\n<span class=\"hljs-selector-tag\">datadog<\/span><span class=\"hljs-selector-class\">.agent<\/span><span class=\"hljs-selector-class\">.running<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">On host:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo datadog-agent status\nsudo datadog-agent diagnose\nsudo datadog-agent hostname\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Likely causes<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td>Wrong API key<\/td><td>Agent sends to invalid org<\/td><\/tr><tr><td>Wrong Datadog site<\/td><td>Agent sends to wrong region<\/td><\/tr><tr><td>Network blocked<\/td><td>Intake unreachable<\/td><\/tr><tr><td>Clock skew<\/td><td>Timestamps too far in past\/future<\/td><\/tr><tr><td>Hostname conflict<\/td><td>Multiple hosts collapse into one<\/td><\/tr><tr><td>Duplicate Agent<\/td><td>Data conflict or host confusion<\/td><\/tr><tr><td>Host filter<\/td><td>You are filtering wrong tags in UI<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Fix pattern<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Confirm Agent service is running.<\/li>\n\n\n\n<li>Confirm API key and site.<\/li>\n\n\n\n<li>Confirm outbound HTTPS access.<\/li>\n\n\n\n<li>Confirm hostname.<\/li>\n\n\n\n<li>Confirm correct UI timeframe.<\/li>\n\n\n\n<li>Search by hostname, cloud instance ID, Kubernetes node name, and tags.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3.3 Agent running but integration metrics missing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Example: Agent metrics exist, but PostgreSQL, Redis, NGINX, Kafka, MySQL, or JVM metrics are missing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Check<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">sudo datadog-agent status\nsudo datadog-agent configcheck\nsudo datadog-agent check <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">integration_name<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Examples:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo datadog-agent check postgres\nsudo datadog-agent check redisdb\nsudo datadog-agent check nginx\nsudo datadog-agent check kafka\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">What to inspect in status output<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Look under:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Running Checks\n===========\npostgres\nredisdb\nnginx\nkafka\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">A healthy check should show metric samples, no critical errors, and recent successful runs. Datadog\u2019s command reference notes that properly configured integrations appear under <code>Running Checks<\/code> with no warnings or errors. (<a href=\"https:\/\/docs.datadoghq.com\/agent\/configuration\/agent-commands\/\">Datadog<\/a>)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Common causes<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Wrong integration config path<\/td><td>Use correct <code>conf.d\/&lt;check&gt;.d\/conf.yaml<\/code><\/td><\/tr><tr><td>Bad YAML indentation<\/td><td>Validate YAML<\/td><\/tr><tr><td>Wrong host\/port<\/td><td>Test with <code>curl<\/code>, <code>nc<\/code>, <code>psql<\/code>, <code>redis-cli<\/code><\/td><\/tr><tr><td>Missing credentials<\/td><td>Verify secret injection<\/td><\/tr><tr><td>DB user lacks permissions<\/td><td>Grant monitoring permissions<\/td><\/tr><tr><td>TLS required<\/td><td>Add TLS parameters<\/td><\/tr><tr><td>Check disabled<\/td><td>Enable integration<\/td><\/tr><tr><td>Autodiscovery labels wrong<\/td><td>Fix pod annotations\/labels<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3.4 Agent high CPU or memory<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Check<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">top\nps aux | grep datadog\nsudo datadog-agent status\nsudo datadog-agent health\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">In Kubernetes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl top pod -n datadog\nkubectl describe pod <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Common causes<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Why It Happens<\/th><\/tr><\/thead><tbody><tr><td>Too many logs<\/td><td>Agent tails too many files or multiline logs are expensive<\/td><\/tr><tr><td>High-cardinality metrics<\/td><td>Too many tag combinations<\/td><\/tr><tr><td>Heavy integrations<\/td><td>JMX, database, Kubernetes, or custom checks too frequent<\/td><\/tr><tr><td>Process Agent enabled broadly<\/td><td>Process collection can be noisy<\/td><\/tr><tr><td>Network Performance Monitoring<\/td><td>System-probe needs resources<\/td><\/tr><tr><td>Security modules<\/td><td>Workload\/security monitoring adds overhead<\/td><\/tr><tr><td>Debug logging enabled<\/td><td>Huge log volume<\/td><\/tr><tr><td>Large Kubernetes cluster<\/td><td>Too much metadata, events, pods, containers<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Fix<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Reduce collection scope, increase Agent resources, tune log exclusions, reduce check frequency, avoid unnecessary debug logs, control tags, and use Cluster Agent for Kubernetes metadata and cluster-level functions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3.5 Agent debug mode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use debug mode only temporarily.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Why?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because debug mode increases log volume and may expose configuration details.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Typical approach:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo datadog-agent config <span class=\"hljs-keyword\">set<\/span> log_level debug\nsudo systemctl restart datadog-agent\nsudo tail -f \/var\/log\/datadog\/agent.log\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">After troubleshooting:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo datadog-agent config <span class=\"hljs-keyword\">set<\/span> log_level info\nsudo systemctl restart datadog-agent\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3.6 Agent flare<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use a flare when you need to send diagnostic data to Datadog Support.<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo datadog-agent flare\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">In Kubernetes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog -- agent flare\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">A flare gathers Agent configuration files and logs into an archive and removes sensitive information such as API keys, passwords, proxy credentials, and SNMP community strings. (<a href=\"https:\/\/docs.datadoghq.com\/agent\/troubleshooting\/send_a_flare\/?tab=agent&amp;utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">4. Kubernetes Datadog Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">4.1 Recommended Kubernetes installation approach<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For Kubernetes, prefer:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Datadog Operator, or<\/li>\n\n\n\n<li>Helm chart.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Avoid manually maintaining large raw DaemonSet YAML unless you have a strict reason.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog describes the Operator as the recommended Kubernetes installation method because it reports deployment status, health, and errors in the custom resource status and reduces misconfiguration risk through higher-level configuration options. (<a href=\"https:\/\/docs.datadoghq.com\/containers\/kubernetes\/installation\/?tab=datadogoperator&amp;utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4.2 Kubernetes architecture<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">flowchart<\/span> <span class=\"hljs-selector-tag\">TB<\/span>\n    <span class=\"hljs-selector-tag\">subgraph<\/span> <span class=\"hljs-selector-tag\">K8S<\/span><span class=\"hljs-selector-attr\">&#91;Kubernetes Cluster]<\/span>\n        <span class=\"hljs-selector-tag\">A<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Agent DaemonSet&lt;br&gt;one per node]<\/span>\n        <span class=\"hljs-selector-tag\">B<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Cluster Agent&lt;br&gt;cluster-level metadata]<\/span>\n        <span class=\"hljs-selector-tag\">C<\/span><span class=\"hljs-selector-attr\">&#91;Kubelet \/ Container Runtime]<\/span>\n        <span class=\"hljs-selector-tag\">D<\/span><span class=\"hljs-selector-attr\">&#91;Kubernetes API Server]<\/span>\n        <span class=\"hljs-selector-tag\">E<\/span><span class=\"hljs-selector-attr\">&#91;Application Pods]<\/span>\n    <span class=\"hljs-selector-tag\">end<\/span>\n\n    <span class=\"hljs-selector-tag\">E<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">A<\/span>\n    <span class=\"hljs-selector-tag\">C<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">A<\/span>\n    <span class=\"hljs-selector-tag\">D<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">B<\/span>\n    <span class=\"hljs-selector-tag\">B<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">A<\/span>\n    <span class=\"hljs-selector-tag\">A<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">F<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Intake]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The Agent DaemonSet collects node, container, logs, traces, and process data. The Cluster Agent centralizes cluster-level data collection and helps reduce direct API server pressure from node Agents. The Cluster Agent is enabled by default for modern Helm and Operator installations. (<a href=\"https:\/\/docs.datadoghq.com\/containers\/kubernetes\/configuration\/?tab=datadogoperator&amp;utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4.3 Agent pod not running<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Check<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl get pods -n datadog -o wide\nkubectl describe pod <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog\nkubectl logs <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog\nkubectl get daemonset -n datadog\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Common causes<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Symptom<\/th><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>ImagePullBackOff<\/td><td>Registry blocked or wrong image<\/td><td>Check image registry, pull secret, egress<\/td><\/tr><tr><td>CrashLoopBackOff<\/td><td>Bad config, missing key, hostname issue<\/td><td>Read logs and config<\/td><\/tr><tr><td>Pending<\/td><td>No node resources or taints<\/td><td>Add tolerations\/resources<\/td><\/tr><tr><td>Permission denied<\/td><td>PSP\/PSA\/securityContext<\/td><td>Fix RBAC\/securityContext<\/td><\/tr><tr><td>Cannot mount volumes<\/td><td>Host path restricted<\/td><td>Check node filesystem and policies<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4.4 Cluster Agent not working<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Check<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-25\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">kubectl <span class=\"hljs-keyword\">get<\/span> deploy -n datadog\nkubectl <span class=\"hljs-keyword\">get<\/span> pods -n datadog | grep cluster\nkubectl logs -n datadog deploy\/datadog-cluster-agent\nkubectl exec -n datadog deploy\/datadog-cluster-agent -- datadog-cluster-agent status\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-25\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Common causes<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Missing RBAC<\/td><td>Reinstall\/fix Helm or Operator manifests<\/td><\/tr><tr><td>Token mismatch between Agent and Cluster Agent<\/td><td>Check shared token secret<\/td><\/tr><tr><td>API server blocked<\/td><td>Check NetworkPolicy<\/td><\/tr><tr><td>Wrong namespace<\/td><td>Check install namespace<\/td><\/tr><tr><td>Version mismatch<\/td><td>Upgrade Agent\/Cluster Agent together<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4.5 Kubernetes metrics missing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-26\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">kubectl<\/span> <span class=\"hljs-selector-tag\">get<\/span> <span class=\"hljs-selector-tag\">pods<\/span> <span class=\"hljs-selector-tag\">-n<\/span> <span class=\"hljs-selector-tag\">datadog<\/span>\n<span class=\"hljs-selector-tag\">kubectl<\/span> <span class=\"hljs-selector-tag\">logs<\/span> <span class=\"hljs-selector-tag\">-n<\/span> <span class=\"hljs-selector-tag\">datadog<\/span> &lt;<span class=\"hljs-selector-tag\">agent-pod<\/span>&gt;\n<span class=\"hljs-selector-tag\">kubectl<\/span> <span class=\"hljs-selector-tag\">logs<\/span> <span class=\"hljs-selector-tag\">-n<\/span> <span class=\"hljs-selector-tag\">datadog<\/span> &lt;<span class=\"hljs-selector-tag\">cluster-agent-pod<\/span>&gt;\n<span class=\"hljs-selector-tag\">kubectl<\/span> <span class=\"hljs-selector-tag\">auth<\/span> <span class=\"hljs-selector-tag\">can-i<\/span> <span class=\"hljs-selector-tag\">get<\/span> <span class=\"hljs-selector-tag\">pods<\/span> <span class=\"hljs-selector-tag\">--as<\/span> <span class=\"hljs-selector-tag\">system<\/span><span class=\"hljs-selector-pseudo\">:serviceaccount<\/span><span class=\"hljs-selector-pseudo\">:datadog<\/span><span class=\"hljs-selector-pseudo\">:datadog-agent<\/span>\n<span class=\"hljs-selector-tag\">kubectl<\/span> <span class=\"hljs-selector-tag\">auth<\/span> <span class=\"hljs-selector-tag\">can-i<\/span> <span class=\"hljs-selector-tag\">list<\/span> <span class=\"hljs-selector-tag\">nodes<\/span> <span class=\"hljs-selector-tag\">--as<\/span> <span class=\"hljs-selector-tag\">system<\/span><span class=\"hljs-selector-pseudo\">:serviceaccount<\/span><span class=\"hljs-selector-pseudo\">:datadog<\/span><span class=\"hljs-selector-pseudo\">:datadog-agent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-26\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Query in Datadog:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-27\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">kubernetes<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage<\/span><span class=\"hljs-selector-class\">.total<\/span>\n<span class=\"hljs-selector-tag\">kubernetes<\/span><span class=\"hljs-selector-class\">.memory<\/span><span class=\"hljs-selector-class\">.usage<\/span>\n<span class=\"hljs-selector-tag\">kubernetes<\/span><span class=\"hljs-selector-class\">.pods<\/span><span class=\"hljs-selector-class\">.running<\/span>\n<span class=\"hljs-selector-tag\">kubernetes_state<\/span><span class=\"hljs-selector-class\">.pod<\/span><span class=\"hljs-selector-class\">.status_phase<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-27\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Possible issues:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Issue<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td>Kubelet auth problem<\/td><td>Agent cannot scrape kubelet<\/td><\/tr><tr><td>RBAC missing<\/td><td>Agent cannot list Kubernetes resources<\/td><\/tr><tr><td>Kube-state-metrics disabled\/missing<\/td><td><code>kubernetes_state.*<\/code> missing<\/td><\/tr><tr><td>Cluster Agent unhealthy<\/td><td>Metadata and external metrics affected<\/td><\/tr><tr><td>Tags missing<\/td><td>Metrics exist but not under expected tags<\/td><\/tr><tr><td>Wrong cluster name<\/td><td>Searching wrong <code>kube_cluster_name<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4.6 Kubernetes log collection missing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog recommends file-based log collection in Kubernetes because it scales better for ephemeral pods and is more resource-efficient than Docker socket polling. (<a href=\"https:\/\/docs.datadoghq.com\/containers\/kubernetes\/log\/?tab=datadogoperator&amp;utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Check Agent settings<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For Helm\/Operator, confirm logs are enabled:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-28\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">logs:\n  enabled: <span class=\"hljs-literal\">true<\/span>\n  <span class=\"hljs-attr\">containerCollectAll<\/span>: <span class=\"hljs-literal\">true<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-28\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or equivalent Operator config.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Commands<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-29\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog -- agent status\nkubectl exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog -- agent stream-logs\nkubectl logs <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">application-pod<\/span>&gt;<\/span> -n <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">namespace<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-29\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Common causes<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Logs not enabled<\/td><td>Enable logs in Helm\/Operator<\/td><\/tr><tr><td>App logs to file, not stdout<\/td><td>Configure file log collection<\/td><\/tr><tr><td>Autodiscovery annotation wrong<\/td><td>Fix pod annotation<\/td><\/tr><tr><td>Exclusion rule dropping logs<\/td><td>Check <code>DD_CONTAINER_EXCLUDE_LOGS<\/code><\/td><\/tr><tr><td>Log pipeline drops or remaps badly<\/td><td>Check pipelines<\/td><\/tr><tr><td>Index excludes logs<\/td><td>Check log indexes<\/td><\/tr><tr><td>Timeframe wrong<\/td><td>Search wider time window<\/td><\/tr><tr><td>Permissions issue on log files<\/td><td>Fix hostPath\/securityContext<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s container log troubleshooting explains that container logs are collected either file-based or socket-based, with file-based collection being the recommended Kubernetes default. (<a href=\"https:\/\/docs.datadoghq.com\/containers\/troubleshooting\/log-collection\/?tab=datadogoperator&amp;utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4.7 APM traces missing from Kubernetes apps<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is one of the most common production problems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Data path<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-30\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">flowchart<\/span> <span class=\"hljs-selector-tag\">LR<\/span>\n    <span class=\"hljs-selector-tag\">A<\/span><span class=\"hljs-selector-attr\">&#91;Application Pod with Datadog tracer]<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">B<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Agent on node]<\/span>\n    <span class=\"hljs-selector-tag\">B<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">C<\/span><span class=\"hljs-selector-attr\">&#91;Trace Agent :8126]<\/span>\n    <span class=\"hljs-selector-tag\">C<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">D<\/span><span class=\"hljs-selector-attr\">&#91;Datadog APM Intake]<\/span>\n    <span class=\"hljs-selector-tag\">D<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">E<\/span><span class=\"hljs-selector-attr\">&#91;Trace Explorer \/ Service Catalog]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-30\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Check in app pod<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">env | grep DD_\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Important variables:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">DD_ENV\nDD_SERVICE\nDD_VERSION\nDD_AGENT_HOST\nDD_TRACE_AGENT_PORT\nDD_TRACE_ENABLED\nDD_LOGS_INJECTION\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Common Kubernetes issue<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Many apps default to sending traces to:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-31\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">localhost<\/span><span class=\"hljs-selector-pseudo\">:8126<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-31\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">But inside a Kubernetes application container, <code>localhost<\/code> means the application pod itself, not the Datadog Agent pod.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Typical fix:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-32\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">env:\n  - name: DD_AGENT_HOST\n    <span class=\"hljs-attr\">valueFrom<\/span>:\n      fieldRef:\n        fieldPath: status.hostIP\n  - name: DD_TRACE_AGENT_PORT\n    <span class=\"hljs-attr\">value<\/span>: <span class=\"hljs-string\">\"8126\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-32\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Also make sure APM is enabled in the Agent.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">5. Log Management Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">5.1 Logs not appearing in Datadog<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">First question<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Are logs missing from:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The application?<\/li>\n\n\n\n<li>The Agent?<\/li>\n\n\n\n<li>Datadog intake?<\/li>\n\n\n\n<li>Log Explorer?<\/li>\n\n\n\n<li>A specific index?<\/li>\n\n\n\n<li>A specific dashboard\/monitor?<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">This distinction matters.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Check source<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-33\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl logs <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">pod<\/span>&gt;<\/span> -n <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">namespace<\/span>&gt;<\/span>\ndocker logs <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">container<\/span>&gt;<\/span>\ntail -f \/path\/to\/app.log\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-33\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If logs are not visible here, Datadog cannot collect them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Check Agent<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-34\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo datadog-agent status\nsudo datadog-agent stream-logs\nsudo tail -f \/<span class=\"hljs-keyword\">var<\/span>\/log\/datadog\/agent.log\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-34\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Kubernetes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-35\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog -- agent status\nkubectl exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog -- agent stream-logs\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-35\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s log troubleshooting documentation focuses on missing logs, data access, timestamp misalignment, ingestion\/processing issues, and index\/exclusion behavior. (<a href=\"https:\/\/docs.datadoghq.com\/logs\/troubleshooting\/?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5.2 Logs are collected but not searchable<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Likely cause: logs are ingested but not indexed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Area<\/th><th>What to Check<\/th><\/tr><\/thead><tbody><tr><td>Log indexes<\/td><td>Does index filter match the log?<\/td><\/tr><tr><td>Index order<\/td><td>Is another index\/exclusion catching it first?<\/td><\/tr><tr><td>Exclusion filters<\/td><td>Are logs sampled or dropped?<\/td><\/tr><tr><td>Retention<\/td><td>Is the log outside retention?<\/td><\/tr><tr><td>Permissions<\/td><td>Does user have access to index?<\/td><\/tr><tr><td>Time field<\/td><td>Is timestamp wrong?<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog usage metrics such as <code>datadog.estimated_usage.logs.ingested_events<\/code> can be filtered by tags like <code>datadog_index<\/code>, <code>datadog_is_excluded<\/code>, <code>service<\/code>, and <code>status<\/code>; if <code>datadog_index:N\/A<\/code>, the logs may not match any index. (<a href=\"https:\/\/docs.datadoghq.com\/logs\/troubleshooting.md?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5.3 Logs have wrong timestamp<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Symptoms:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-36\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Logs appear <span class=\"hljs-keyword\">in<\/span> future\nLogs appear hours late\nLogs disappear <span class=\"hljs-keyword\">from<\/span> current view\nLog monitor does not trigger\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-36\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>App emits local timezone without timezone offset<\/td><td>Emit ISO 8601 UTC<\/td><\/tr><tr><td>Custom timestamp parser wrong<\/td><td>Fix pipeline date parser<\/td><\/tr><tr><td>Host time skew<\/td><td>Fix NTP<\/td><\/tr><tr><td>Container image timezone mismatch<\/td><td>Use UTC<\/td><\/tr><tr><td>Logs delayed by batch pipeline<\/td><td>Widen search window<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Best practice: emit logs in structured JSON with an explicit UTC timestamp.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5.4 Logs missing <code>service<\/code>, <code>env<\/code>, or <code>version<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This breaks correlation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-37\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">service<\/span>\n<span class=\"hljs-selector-tag\">env<\/span>\n<span class=\"hljs-selector-tag\">version<\/span>\n<span class=\"hljs-selector-tag\">dd<\/span><span class=\"hljs-selector-class\">.service<\/span>\n<span class=\"hljs-selector-tag\">dd<\/span><span class=\"hljs-selector-class\">.env<\/span>\n<span class=\"hljs-selector-tag\">dd<\/span><span class=\"hljs-selector-class\">.version<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-37\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Kubernetes fix:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-38\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">labels:\n  tags.datadoghq.com\/env: prod\n  tags.datadoghq.com\/service: checkout\n  tags.datadoghq.com\/version: <span class=\"hljs-string\">\"1.2.3\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-38\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or environment variables:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-39\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">env<\/span>:\n  <span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">DD_ENV<\/span>\n    <span class=\"hljs-selector-tag\">value<\/span>: <span class=\"hljs-selector-tag\">prod<\/span>\n  <span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">DD_SERVICE<\/span>\n    <span class=\"hljs-selector-tag\">value<\/span>: <span class=\"hljs-selector-tag\">checkout<\/span>\n  <span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">DD_VERSION<\/span>\n    <span class=\"hljs-selector-tag\">value<\/span>: \"1<span class=\"hljs-selector-class\">.2<\/span><span class=\"hljs-selector-class\">.3<\/span>\"\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-39\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Unified Service Tagging is one of the most important Datadog design requirements because it correlates metrics, logs, traces, deployments, services, and versions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5.5 Multiline logs are broken<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Symptoms:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-40\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Stack traces split into many log events\nJava\/Python exceptions appear <span class=\"hljs-keyword\">as<\/span> many separate logs\n<span class=\"hljs-built_in\">Error<\/span> Tracking does not group correctly\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-40\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Fix by configuring multiline processing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example concept:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-41\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">logs:\n  - type: file\n    <span class=\"hljs-attr\">path<\/span>: <span class=\"hljs-regexp\">\/var\/<\/span>log\/app.log\n    <span class=\"hljs-attr\">service<\/span>: my-service\n    <span class=\"hljs-attr\">source<\/span>: java\n    <span class=\"hljs-attr\">log_processing_rules<\/span>:\n      - type: multi_line\n        <span class=\"hljs-attr\">name<\/span>: new_log_start_with_date\n        <span class=\"hljs-attr\">pattern<\/span>: \\d{<span class=\"hljs-number\">4<\/span>}-\\d{<span class=\"hljs-number\">2<\/span>}-\\d{<span class=\"hljs-number\">2<\/span>}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-41\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Do not overuse multiline rules; they can increase Agent CPU usage.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5.6 Log pipeline parsing issue<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Symptoms:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-42\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">status is wrong\nservice is wrong\n<span class=\"hljs-built_in\">JSON<\/span> not parsed\nfields are missing\nseverity not recognized\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-42\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Raw log event.<\/li>\n\n\n\n<li>Pipeline order.<\/li>\n\n\n\n<li>Grok\/parser rule.<\/li>\n\n\n\n<li>Attribute remapper.<\/li>\n\n\n\n<li>Status remapper.<\/li>\n\n\n\n<li>Service remapper.<\/li>\n\n\n\n<li>Date remapper.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Best practice:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Emit structured JSON:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-43\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\">{\n  <span class=\"hljs-attr\">\"timestamp\"<\/span>: <span class=\"hljs-string\">\"2026-06-23T10:15:00Z\"<\/span>,\n  <span class=\"hljs-attr\">\"level\"<\/span>: <span class=\"hljs-string\">\"ERROR\"<\/span>,\n  <span class=\"hljs-attr\">\"service\"<\/span>: <span class=\"hljs-string\">\"checkout\"<\/span>,\n  <span class=\"hljs-attr\">\"env\"<\/span>: <span class=\"hljs-string\">\"prod\"<\/span>,\n  <span class=\"hljs-attr\">\"message\"<\/span>: <span class=\"hljs-string\">\"Payment failed\"<\/span>,\n  <span class=\"hljs-attr\">\"order_id\"<\/span>: <span class=\"hljs-string\">\"12345\"<\/span>\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-43\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">6. APM \/ Trace Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">6.1 APM components<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">APM depends on three things:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-44\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">flowchart<\/span> <span class=\"hljs-selector-tag\">LR<\/span>\n    <span class=\"hljs-selector-tag\">A<\/span><span class=\"hljs-selector-attr\">&#91;Application Code]<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">B<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Tracer \/ SDK]<\/span>\n    <span class=\"hljs-selector-tag\">B<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">C<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Agent Trace Agent]<\/span>\n    <span class=\"hljs-selector-tag\">C<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">D<\/span><span class=\"hljs-selector-attr\">&#91;Datadog APM Intake]<\/span>\n    <span class=\"hljs-selector-tag\">D<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">E<\/span><span class=\"hljs-selector-attr\">&#91;Trace Explorer \/ Services \/ APM Metrics]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-44\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s APM troubleshooting docs cover trace retention, trace metrics, services, data volume, connection errors, resource usage, security, tracer startup logs, tracer debug logs, and SDK configuration. (<a href=\"https:\/\/docs.datadoghq.com\/tracing\/troubleshooting\/?tab=java\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6.2 No traces in Datadog<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Check 1: Is application instrumented?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-45\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">java -javaagent:<span class=\"hljs-regexp\">\/path\/<\/span>dd-java-agent.jar -jar app.jar\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-45\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Python:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-46\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">ddtrace-run<\/span> <span class=\"hljs-selector-tag\">python<\/span> <span class=\"hljs-selector-tag\">app<\/span><span class=\"hljs-selector-class\">.py<\/span>\n<span class=\"hljs-selector-tag\">ddtrace-run<\/span> <span class=\"hljs-selector-tag\">--info<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-46\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Node.js:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-47\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-built_in\">require<\/span>(<span class=\"hljs-string\">'dd-trace'<\/span>).init()\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-47\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Go:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use Datadog tracing libraries and wrap supported frameworks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.NET:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check tracer installation and environment variables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s Python documentation specifically notes that <code>ddtrace-run --info<\/code> can be used to check configuration after setup. (<a href=\"https:\/\/docs.datadoghq.com\/tracing\/trace_collection\/dd_libraries\/python.md?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Check 2: Is the tracer sending to the Agent?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">From app container:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-48\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -v http:<span class=\"hljs-comment\">\/\/${DD_AGENT_HOST}:8126\/info<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-48\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If this fails, fix networking first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Check 3: Is Agent APM enabled?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Agent status should show APM \/ trace-agent.<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo datadog-agent status\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Kubernetes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-49\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog -- agent status\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-49\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Look for:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">APM Agent\n=========\nStatus: Running\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6.3 Traces reach Agent but not Datadog<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check Agent logs:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-50\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo tail -f \/<span class=\"hljs-keyword\">var<\/span>\/log\/datadog\/trace-agent.log\nsudo tail -f \/<span class=\"hljs-keyword\">var<\/span>\/log\/datadog\/agent.log\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-50\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Kubernetes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-51\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl logs <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -n datadog | grep -i trace\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-51\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Common causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Wrong API key\/site<\/td><td>Correct Agent config<\/td><\/tr><tr><td>Datadog intake blocked<\/td><td>Fix egress<\/td><\/tr><tr><td>Trace-agent disabled<\/td><td>Enable APM<\/td><\/tr><tr><td>Payload too large<\/td><td>Reduce tags\/spans<\/td><\/tr><tr><td>Sampling\/retention confusion<\/td><td>Check ingestion and retention<\/td><\/tr><tr><td>Malformed spans<\/td><td>Upgrade tracer<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6.4 Service missing from APM Service Catalog<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Possible causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td>No traffic<\/td><td>Tracer only sends spans when instrumented requests happen<\/td><\/tr><tr><td>Wrong service name<\/td><td><code>DD_SERVICE<\/code> missing or auto-detected unexpectedly<\/td><\/tr><tr><td>Wrong env<\/td><td>Looking at <code>env:prod<\/code>, data sent to <code>env:staging<\/code><\/td><\/tr><tr><td>Sampling<\/td><td>Few\/no retained traces<\/td><\/tr><tr><td>Unsupported framework<\/td><td>Auto-instrumentation may not cover it<\/td><\/tr><tr><td>Agent not reachable<\/td><td>Tracer cannot connect to Agent<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">env | grep DD_\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Important:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">DD_SERVICE\nDD_ENV\nDD_VERSION\nDD_TAGS\nDD_SERVICE_MAPPING\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog tracer configuration uses <code>DD_SERVICE<\/code>, <code>DD_ENV<\/code>, <code>DD_VERSION<\/code>, <code>DD_TAGS<\/code>, and service mapping variables across language libraries, with language-specific fallback behavior if service is not explicitly configured. (<a href=\"https:\/\/docs.datadoghq.com\/tracing\/trace_collection\/library_config\/java\/?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6.5 Too many services in APM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Symptoms:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">checkout-prod\ncheckout-stage\ncheckout-v1\ncheckout-worker-123\npostgres-prod\nredis-checkout-prod\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Root problem: environment, version, host, region, or shard has been included in the service name.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bad:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">checkout-prod\ncheckout-uat\ncheckout-v1-2-3\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Good:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-52\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">service<\/span><span class=\"hljs-selector-pseudo\">:checkout<\/span>\n<span class=\"hljs-selector-tag\">env<\/span><span class=\"hljs-selector-pseudo\">:prod<\/span>\n<span class=\"hljs-selector-tag\">version<\/span><span class=\"hljs-selector-pseudo\">:1.2.3<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-52\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Use <code>env<\/code>, <code>version<\/code>, <code>team<\/code>, <code>region<\/code>, and other tags instead of encoding them in the service name.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6.6 Trace exists but related logs are missing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To correlate logs and traces:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Logs must be collected.<\/li>\n\n\n\n<li>Tracer must inject trace\/span IDs into logs.<\/li>\n\n\n\n<li>Logs must include <code>service<\/code>, <code>env<\/code>, and <code>version<\/code>.<\/li>\n\n\n\n<li>Log parser must preserve trace fields.<\/li>\n\n\n\n<li>Logs must be indexed\/searchable.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Check fields:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-53\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">dd<\/span><span class=\"hljs-selector-class\">.trace_id<\/span>\n<span class=\"hljs-selector-tag\">dd<\/span><span class=\"hljs-selector-class\">.span_id<\/span>\n<span class=\"hljs-selector-tag\">trace_id<\/span>\n<span class=\"hljs-selector-tag\">span_id<\/span>\n<span class=\"hljs-selector-tag\">service<\/span>\n<span class=\"hljs-selector-tag\">env<\/span>\n<span class=\"hljs-selector-tag\">version<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-53\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Enable:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-54\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">DD_LOGS_INJECTION=<span class=\"hljs-literal\">true<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-54\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog supports correlating traces with logs, RUM, synthetics, profiles, and DBM when the telemetry carries the right metadata. (<a href=\"https:\/\/docs.datadoghq.com\/tracing\/troubleshooting\/?tab=java\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6.7 Trace metrics missing or confusing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">APM generates trace metrics such as request count, error count, latency, and Apdex.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Common confusion:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Situation<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td>Trace Explorer shows spans but monitor metric does not<\/td><td>Trace Explorer and trace metrics can have different retention\/query behavior<\/td><\/tr><tr><td>p95 latency differs between views<\/td><td>Different aggregation, filters, or sampling<\/td><\/tr><tr><td>No <code>trace.*<\/code> metric<\/td><td>Service may not be instrumented or no traffic<\/td><\/tr><tr><td>Service appears but no endpoint<\/td><td>Resource naming issue<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s APM troubleshooting separates trace retention, trace metrics, services, ingestion\/sampling, and retention filters because these are related but not identical views of tracing data. (<a href=\"https:\/\/docs.datadoghq.com\/tracing\/troubleshooting\/?tab=java\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6.8 APM high cost or high trace volume<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Problem<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Too many spans<\/td><td>Reduce unnecessary custom spans<\/td><\/tr><tr><td>High-cardinality span tags<\/td><td>Remove user ID, request ID, session ID from indexed tags<\/td><\/tr><tr><td>Excessive error traces<\/td><td>Fix app or tune sampling<\/td><\/tr><tr><td>Background jobs too noisy<\/td><td>Sample lower<\/td><\/tr><tr><td>Too many services\/resources<\/td><td>Normalize service\/resource names<\/td><\/tr><tr><td>Health checks traced<\/td><td>Drop or filter health check traces<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Use ingestion controls, sampling, retention filters, and service\/resource normalization.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6.9 Single Step Instrumentation troubleshooting<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Single Step Instrumentation can inject tracers automatically for supported environments and languages, but troubleshooting should confirm whether injection actually happened.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Area<\/th><th>What to verify<\/th><\/tr><\/thead><tbody><tr><td>Agent version<\/td><td>SSI requires supported Agent version<\/td><\/tr><tr><td>Language support<\/td><td>Java, Python, Node.js, PHP, .NET etc. depending on setup<\/td><\/tr><tr><td>Process instrumentation<\/td><td>Was tracer injected into the process?<\/td><\/tr><tr><td>Environment<\/td><td>Linux hosts, containers, Kubernetes supported scenarios<\/td><\/tr><tr><td>Fleet Automation<\/td><td>Use instrumentation insights if available<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s SSI troubleshooting page says injection issues can be checked through Fleet Automation or manually at container level; process-level insights show instrumentation status and SDK installation details, and current docs mention Agent v7.68.2+ for that SSI troubleshooting flow. (<a href=\"https:\/\/docs.datadoghq.com\/tracing\/trace_collection\/single-step-apm\/troubleshooting\/?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">7. DogStatsD and Custom Metrics Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">7.1 Custom metric not visible<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Data path<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-55\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">flowchart<\/span> <span class=\"hljs-selector-tag\">LR<\/span>\n    <span class=\"hljs-selector-tag\">A<\/span><span class=\"hljs-selector-attr\">&#91;Application]<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">B<\/span><span class=\"hljs-selector-attr\">&#91;DogStatsD client]<\/span>\n    <span class=\"hljs-selector-tag\">B<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">C<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Agent DogStatsD :8125]<\/span>\n    <span class=\"hljs-selector-tag\">C<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">D<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Metrics Intake]<\/span>\n    <span class=\"hljs-selector-tag\">D<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">E<\/span><span class=\"hljs-selector-attr\">&#91;Metrics Explorer]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-55\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Check<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo datadog-agent status\nsudo datadog-agent configcheck\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Look for DogStatsD section.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Test UDP locally:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-56\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">echo<\/span> -n <span class=\"hljs-string\">\"custom.test.metric:1|c|#env:dev,service:test\"<\/span> | nc <span class=\"hljs-number\">-4<\/span>u -w1 <span class=\"hljs-number\">127.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.1<\/span> <span class=\"hljs-number\">8125<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-56\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then search:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-57\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">custom<\/span><span class=\"hljs-selector-class\">.test<\/span><span class=\"hljs-selector-class\">.metric<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-57\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7.2 DogStatsD issue in Kubernetes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Common problem: app sends metrics to <code>localhost:8125<\/code>, but DogStatsD is in the Datadog Agent pod on the node.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fix patterns:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Option 1: Use host IP<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-58\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">env<\/span>:\n  <span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">DD_AGENT_HOST<\/span>\n    <span class=\"hljs-selector-tag\">valueFrom<\/span>:\n      <span class=\"hljs-selector-tag\">fieldRef<\/span>:\n        <span class=\"hljs-selector-tag\">fieldPath<\/span>: <span class=\"hljs-selector-tag\">status<\/span><span class=\"hljs-selector-class\">.hostIP<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-58\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Option 2: Use Unix Domain Socket<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Better for local node-level communication if configured.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Option 3: Use service-based routing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Possible but be careful with load balancing because metrics may be sent to an Agent not on the same node.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7.3 Custom metrics cost\/cardinality issue<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Symptoms:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Custom metrics count exploded\nBill increased\nMetrics Summary shows many tag combinations\nDashboards slow\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Common bad tags:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">user_id\nrequest_id\nsession_id\npod_uid\ncontainer_id\ntimestamp\norder_id\ntransaction_id\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Better tags:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-59\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">env\nservice\nversion\nregion\nteam\ncluster\n<span class=\"hljs-keyword\">namespace<\/span>\n<span class=\"hljs-title\">endpoint<\/span>\n<span class=\"hljs-title\">status<\/span>\n<span class=\"hljs-title\">method<\/span>\n<span class=\"hljs-title\">provider<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-59\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s Metrics without Limits decouples custom metric ingestion and indexing, allowing allowlists or blocklists of tags to control which tags remain queryable and reduce billable custom metric volume. (<a href=\"https:\/\/docs.datadoghq.com\/metrics\/metrics-without-limits\/\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">8. Integration Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">8.1 Integration check fails<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Example status:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-60\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Instance<\/span> <span class=\"hljs-selector-tag\">ID<\/span>: <span class=\"hljs-selector-tag\">postgres<\/span><span class=\"hljs-selector-pseudo\">:...<\/span>\n<span class=\"hljs-selector-tag\">Error<\/span>: <span class=\"hljs-selector-tag\">connection<\/span> <span class=\"hljs-selector-tag\">refused<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-60\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Use:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-61\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">sudo datadog-agent check <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">integration<\/span>&gt;<\/span>\nsudo datadog-agent configcheck\nsudo datadog-agent status\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-61\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Common integration failure categories:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Category<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td>Network<\/td><td>Cannot connect to DB\/cache\/app<\/td><\/tr><tr><td>Auth<\/td><td>Wrong username\/password\/token<\/td><\/tr><tr><td>Permission<\/td><td>DB monitoring user lacks grants<\/td><\/tr><tr><td>TLS<\/td><td>Certificate or CA mismatch<\/td><\/tr><tr><td>YAML<\/td><td>Bad indentation or wrong key<\/td><\/tr><tr><td>Autodiscovery<\/td><td>Wrong pod annotation<\/td><\/tr><tr><td>Version<\/td><td>Integration requires newer Agent<\/td><\/tr><tr><td>Timeout<\/td><td>Check too heavy or endpoint slow<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s integration troubleshooting guide focuses on YAML files, check status, missing metrics, and resolving integration configuration issues through Agent status\/config\/check commands. (<a href=\"https:\/\/docs.datadoghq.com\/agent\/troubleshooting\/integrations\/?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">8.2 JMX integration issues<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Common for Kafka, Cassandra, JVM apps, Tomcat, Solr, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-62\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">sudo datadog-agent status\nsudo datadog-agent jmx <span class=\"hljs-keyword\">list<\/span> collected\nsudo datadog-agent jmx <span class=\"hljs-keyword\">list<\/span> matching\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-62\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Common causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>JMX port not exposed<\/td><td>Expose JMX<\/td><\/tr><tr><td>RMI hostname wrong<\/td><td>Set <code>java.rmi.server.hostname<\/code><\/td><\/tr><tr><td>SSL required<\/td><td>Configure SSL<\/td><\/tr><tr><td>Auth required<\/td><td>Add user\/password<\/td><\/tr><tr><td>Too many beans<\/td><td>Limit collection<\/td><\/tr><tr><td>Wrong bean pattern<\/td><td>Fix include\/exclude config<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">8.3 Database integration issue<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For PostgreSQL\/MySQL\/etc., check from the Agent host\/pod:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-63\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">nc -vz <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">db-host<\/span>&gt;<\/span> 5432\npsql -h <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">db-host<\/span>&gt;<\/span> -U <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">monitor_user<\/span>&gt;<\/span> -d <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">db<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-63\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For MySQL:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-64\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">nc -vz <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">db-host<\/span>&gt;<\/span> 3306\nmysql -h <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">db-host<\/span>&gt;<\/span> -u <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">monitor_user<\/span>&gt;<\/span> -p\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-64\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Common causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>DB SG\/firewall blocks Agent<\/td><td>Allow Agent source<\/td><\/tr><tr><td>Wrong DB endpoint<\/td><td>Use correct writer\/reader endpoint<\/td><\/tr><tr><td>TLS required<\/td><td>Configure TLS<\/td><\/tr><tr><td>Monitoring user lacks permissions<\/td><td>Grant required permissions<\/td><\/tr><tr><td>Password rotation broke secret<\/td><td>Update secret<\/td><\/tr><tr><td>Agent cannot resolve DNS<\/td><td>Fix DNS\/VPC\/resolver<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">9. AWS \/ Cloud Integration Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">9.1 AWS integration not working<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Area<\/th><th>What to Verify<\/th><\/tr><\/thead><tbody><tr><td>IAM role<\/td><td>Trust policy allows Datadog to assume role<\/td><\/tr><tr><td>External ID<\/td><td>Correct external ID<\/td><\/tr><tr><td>Permissions<\/td><td>Required AWS permissions attached<\/td><\/tr><tr><td>Regions<\/td><td>Correct regions enabled<\/td><\/tr><tr><td>Services<\/td><td>Specific AWS service integration enabled<\/td><\/tr><tr><td>SCP<\/td><td>Organization SCP is not blocking<\/td><\/tr><tr><td>CloudWatch<\/td><td>Metrics exist in CloudWatch<\/td><\/tr><tr><td>Delay<\/td><td>CloudWatch metrics are not always instant<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A Datadog AWS <code>sts:AssumeRole<\/code> error means the trust policy associated with the Datadog integration role is wrong, and Datadog notes that the error may persist in the UI for a few hours while changes propagate. (<a href=\"https:\/\/docs.datadoghq.com\/integrations\/guide\/aws-integration-troubleshooting\/\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">9.2 CloudWatch and Datadog metric values differ<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is common and not always an error.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td>Time aggregation<\/td><td>Datadog may display per-second values<\/td><\/tr><tr><td>Space aggregation<\/td><td>AWS and Datadog aggregate dimensions differently<\/td><\/tr><tr><td>Different period<\/td><td>CloudWatch period may be 5 min vs Datadog 1 min<\/td><\/tr><tr><td>Different filters<\/td><td>AWS dimensions must match Datadog tags<\/td><\/tr><tr><td>Metric delay<\/td><td>CloudWatch metrics can be delayed<\/td><\/tr><tr><td>Detailed monitoring<\/td><td>Some AWS metrics are 1-min only if detailed monitoring is enabled<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s AWS troubleshooting guide specifically calls out time aggregation, space aggregation, matching dimensions\/tags, one-minute precision, region, namespace, metric name, and CloudWatch API delays. (<a href=\"https:\/\/docs.datadoghq.com\/integrations\/guide\/aws-integration-troubleshooting\/\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">10. API and Terraform Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">10.1 API returns 403 Forbidden<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Likely causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Wrong app key<\/td><td>Use valid app key<\/td><\/tr><tr><td>App key lacks scope<\/td><td>Add required scope<\/td><\/tr><tr><td>Key belongs to wrong org<\/td><td>Use key from same org<\/td><\/tr><tr><td>Service account lacks permission<\/td><td>Grant role\/scope<\/td><\/tr><tr><td>Wrong site endpoint<\/td><td>Use correct regional API endpoint<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Remember: API key validates organization intake access; app key controls programmatic actions and permissions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">10.2 API returns 401 Unauthorized<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Likely causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Missing API key<\/td><td>Add <code>DD-API-KEY<\/code><\/td><\/tr><tr><td>Missing app key<\/td><td>Add <code>DD-APPLICATION-KEY<\/code><\/td><\/tr><tr><td>Invalid key<\/td><td>Rotate\/regenerate<\/td><\/tr><tr><td>Key not propagated yet<\/td><td>Retry with backoff<\/td><\/tr><tr><td>Wrong site<\/td><td>Use correct site<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog recommends allowing a brief propagation period for new API\/application keys and using retry with short exponential backoff for transient errors. (<a href=\"https:\/\/docs.datadoghq.com\/account_management\/api-app-keys\/\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">10.3 Terraform provider cannot connect<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check provider config:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-65\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">provider <span class=\"hljs-string\">\"datadog\"<\/span> {\n  api_key = <span class=\"hljs-keyword\">var<\/span>.datadog_api_key\n  app_key = <span class=\"hljs-keyword\">var<\/span>.datadog_app_key\n  api_url = <span class=\"hljs-string\">\"https:\/\/api.datadoghq.com\/\"<\/span>\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-65\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For EU\/AP\/etc., use the correct site API URL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Common errors:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Error<\/th><th>Likely Cause<\/th><\/tr><\/thead><tbody><tr><td>403<\/td><td>App key missing scope<\/td><\/tr><tr><td>401<\/td><td>Bad key<\/td><\/tr><tr><td>404<\/td><td>Wrong site\/org\/resource<\/td><\/tr><tr><td>429<\/td><td>API rate limit<\/td><\/tr><tr><td>Provider diff always changing<\/td><td>Field computed by Datadog or ordering issue<\/td><\/tr><tr><td>Monitor query invalid<\/td><td>Datadog query syntax problem<\/td><\/tr><tr><td>State drift<\/td><td>UI changes outside Terraform<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The Datadog Terraform provider is used to manage Datadog resources such as monitors, dashboards, logs configuration, and integrations through Terraform. (<a href=\"https:\/\/docs.datadoghq.com\/integrations\/terraform.md?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">10.4 Terraform monitor fails validation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Common causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Query syntax invalid<\/td><td>Test query in Datadog UI first<\/td><\/tr><tr><td>Wrong metric name<\/td><td>Check Metrics Explorer<\/td><\/tr><tr><td>Wrong rollup<\/td><td>Remove or correct rollup<\/td><\/tr><tr><td>Missing quotes around tags<\/td><td>Fix syntax<\/td><\/tr><tr><td>No data during validation<\/td><td>Use <code>require_full_window=false<\/code> if appropriate<\/td><\/tr><tr><td>Invalid notification target<\/td><td>Check Slack\/PagerDuty integration<\/td><\/tr><tr><td>Restricted role missing<\/td><td>Check RBAC<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Best practice: manually test query in Datadog Metrics Explorer before putting it into Terraform.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">11. Monitor and Alert Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">11.1 Monitor not alerting<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Area<\/th><th>What to Verify<\/th><\/tr><\/thead><tbody><tr><td>Query<\/td><td>Does it return data?<\/td><\/tr><tr><td>Time window<\/td><td>Is evaluation window too short\/long?<\/td><\/tr><tr><td>Threshold<\/td><td>Is threshold reachable?<\/td><\/tr><tr><td>Grouping<\/td><td>Is it grouped by wrong tag?<\/td><\/tr><tr><td>No data behavior<\/td><td>Is no-data alert disabled?<\/td><\/tr><tr><td>Require full window<\/td><td>Is window fully populated?<\/td><\/tr><tr><td>Evaluation delay<\/td><td>Needed for delayed cloud metrics<\/td><\/tr><tr><td>Muting\/downtime<\/td><td>Monitor muted?<\/td><\/tr><tr><td>Permissions<\/td><td>Can user see monitor\/data?<\/td><\/tr><tr><td>Notification<\/td><td>Is destination configured?<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">11.2 Monitor stuck in No Data<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Metric stopped reporting<\/td><td>Check Agent\/source<\/td><\/tr><tr><td>Rollup too sparse<\/td><td>Adjust rollup\/window<\/td><\/tr><tr><td>Require full window enabled<\/td><td>Disable if inappropriate<\/td><\/tr><tr><td>Cloud metric delayed<\/td><td>Add evaluation delay<\/td><\/tr><tr><td>Tag changed<\/td><td>Fix query tags<\/td><\/tr><tr><td>New group delay<\/td><td>Tune group delay<\/td><\/tr><tr><td>Logs\/traces not indexed<\/td><td>Fix indexing\/retention<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s No Data troubleshooting warns that rollups and evaluation windows can cause unexpected No Data behavior, especially when Require Full Window is enabled and the rollup interval does not fully populate the evaluation window. (<a href=\"https:\/\/docs.datadoghq.com\/monitors\/guide\/troubleshooting-no-data\/?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For AWS\/crawler-based metrics, Datadog recommends using an evaluation delay, commonly at least 900 seconds for AWS CloudWatch delays. (<a href=\"https:\/\/docs.datadoghq.com\/monitors\/guide\/adjusting-no-data-alerts-for-metric-monitors\/?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">11.3 Monitor alerts too noisy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Fix strategy:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Noise Source<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Short spike<\/td><td>Increase evaluation window<\/td><\/tr><tr><td>New pods alerting immediately<\/td><td>Add new group delay<\/td><\/tr><tr><td>One bad pod pages whole team<\/td><td>Use multi-alert with routing<\/td><\/tr><tr><td>Low-priority symptom<\/td><td>Use composite monitor<\/td><\/tr><tr><td>Batch job silence<\/td><td>Use no-data only when expected cadence is known<\/td><\/tr><tr><td>Delayed cloud metrics<\/td><td>Add evaluation delay<\/td><\/tr><tr><td>Too many warning states<\/td><td>Remove or tune warning threshold<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Good alert rule:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Page only when customer impact is likely and action is required.\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Bad alert:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">CPU &gt; 80% for 1 minute\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Better alert:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Checkout p95 latency &gt; 1s and error rate &gt; 5% for 10 minutes in prod\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">12. SLO Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">12.1 SLO shows wrong reliability<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Area<\/th><th>What to Verify<\/th><\/tr><\/thead><tbody><tr><td>SLI query<\/td><td>Good events \/ total events correct?<\/td><\/tr><tr><td>Time window<\/td><td>7, 30, 90 days?<\/td><\/tr><tr><td>Tags<\/td><td>Correct service\/env\/region?<\/td><\/tr><tr><td>Metric type<\/td><td>Count\/rate\/distribution usage correct?<\/td><\/tr><tr><td>Missing data<\/td><td>Are missing periods counted correctly?<\/td><\/tr><tr><td>Monitor-based SLO<\/td><td>Are underlying monitors correct?<\/td><\/tr><tr><td>Grouped SLO<\/td><td>Are groups expected?<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">SLOs are used to define and track reliability targets and help teams communicate service performance; Datadog also exposes burn rate status such as healthy, elevated, and critical. (<a href=\"https:\/\/docs.datadoghq.com\/service_level_objectives\/?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">12.2 Burn-rate alert too noisy or too late<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use multiple windows:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Alert Type<\/th><th>Purpose<\/th><\/tr><\/thead><tbody><tr><td>Fast burn<\/td><td>Detect serious incident quickly<\/td><\/tr><tr><td>Slow burn<\/td><td>Detect gradual reliability erosion<\/td><\/tr><tr><td>Warning<\/td><td>Notify before hard breach<\/td><\/tr><tr><td>Critical<\/td><td>Page responders<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For monitor-based SLOs, Datadog notes that burn-rate alerts can only be set on the overall SLO, not per group. (<a href=\"https:\/\/docs.datadoghq.com\/service_level_objectives\/burn_rate\/?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">13. Synthetic Monitoring Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">13.1 API test fails but endpoint works manually<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Area<\/th><th>What to Verify<\/th><\/tr><\/thead><tbody><tr><td>Location<\/td><td>Test from same region\/location<\/td><\/tr><tr><td>Private\/public<\/td><td>Internal endpoint needs Private Location<\/td><\/tr><tr><td>DNS<\/td><td>Datadog location resolves same DNS?<\/td><\/tr><tr><td>TLS<\/td><td>Cert chain valid?<\/td><\/tr><tr><td>Headers<\/td><td>Required auth headers present?<\/td><\/tr><tr><td>Proxy\/WAF<\/td><td>Is Datadog blocked?<\/td><\/tr><tr><td>Response assertion<\/td><td>Assertion too strict?<\/td><\/tr><tr><td>Timeout<\/td><td>Endpoint slow<\/td><\/tr><tr><td>IP allowlist<\/td><td>Datadog locations allowed?<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">13.2 Browser test is flaky<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Common causes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Dynamic elements<\/td><td>Use stable selectors<\/td><\/tr><tr><td>Slow page load<\/td><td>Add wait\/assertion<\/td><\/tr><tr><td>Animation\/loading state<\/td><td>Wait for element<\/td><\/tr><tr><td>Third-party widget<\/td><td>Avoid depending on it<\/td><\/tr><tr><td>Captcha\/MFA<\/td><td>Use test bypass or API auth<\/td><\/tr><tr><td>Session expiry<\/td><td>Refresh login token<\/td><\/tr><tr><td>Test data collision<\/td><td>Generate unique data<\/td><\/tr><tr><td>Region-specific latency<\/td><td>Run from relevant locations<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">13.3 Browser recorder does not work<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s Synthetics troubleshooting explains that CSP or <code>X-Frame-Options<\/code> can prevent the recorder iframe from loading the site, and the workaround is to record in a popup. It also notes HTTP pages do not load in the iframe recorder, extension permissions can block recording, Chrome policies can block the extension, and incognito mode can help record login flows from a fresh session. (<a href=\"https:\/\/docs.datadoghq.com\/synthetics\/troubleshooting\/?tab=common\">Datadog<\/a>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Practical checks:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">CSP\nX-Frame-Options\nCSRF token behavior\nChrome extension permissions\nCorporate browser policy\nLogin\/session state\nHTTP vs HTTPS\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">13.4 Private Location troubleshooting<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Private Location issues are usually network or runtime issues.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Area<\/th><th>What to Verify<\/th><\/tr><\/thead><tbody><tr><td>Worker running<\/td><td>Container\/service is healthy<\/td><\/tr><tr><td>API key<\/td><td>Correct Datadog org\/site<\/td><\/tr><tr><td>Outbound access<\/td><td>Worker can reach Datadog<\/td><\/tr><tr><td>Internal DNS<\/td><td>Worker can resolve private app<\/td><\/tr><tr><td>Firewall<\/td><td>Worker can reach target<\/td><\/tr><tr><td>Proxy<\/td><td>Proxy config correct<\/td><\/tr><tr><td>TLS<\/td><td>Internal CA trusted<\/td><\/tr><tr><td>Resources<\/td><td>Worker has enough CPU\/memory<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">14. RUM and Session Replay Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">14.1 RUM data missing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Area<\/th><th>What to Verify<\/th><\/tr><\/thead><tbody><tr><td>RUM SDK loaded<\/td><td>Browser\/mobile SDK initialized<\/td><\/tr><tr><td>Client token<\/td><td>Correct token<\/td><\/tr><tr><td>Application ID<\/td><td>Correct app ID<\/td><\/tr><tr><td>Site<\/td><td>Correct regional site<\/td><\/tr><tr><td>Sampling<\/td><td>Session sample rate not zero<\/td><\/tr><tr><td>Environment<\/td><td><code>env<\/code> correct<\/td><\/tr><tr><td>CSP<\/td><td>Browser allowed to send intake requests<\/td><\/tr><tr><td>Ad blockers<\/td><td>Some users may block telemetry<\/td><\/tr><tr><td>Consent<\/td><td>Tracking consent enabled if required<\/td><\/tr><tr><td>Timeframe<\/td><td>Search correct time window<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog RUM captures real user performance, errors, analytics\/usage, and support data; sessions include views, actions, resources, errors, and related signals. A RUM session can last up to 4 hours and expires after 15 minutes of inactivity. (<a href=\"https:\/\/docs.datadoghq.com\/real_user_monitoring\/\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">14.2 Session Replay missing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Replay not enabled<\/td><td>Enable Session Replay<\/td><\/tr><tr><td>Replay sample rate low<\/td><td>Adjust sample rate<\/td><\/tr><tr><td>Privacy masking<\/td><td>Expected masking behavior<\/td><\/tr><tr><td>User not sampled<\/td><td>Test with controlled sampling<\/td><\/tr><tr><td>CSP blocks intake<\/td><td>Update CSP<\/td><\/tr><tr><td>Permissions<\/td><td>User lacks replay access<\/td><\/tr><tr><td>Data deleted<\/td><td>Check retention\/deletion policy<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">14.3 RUM errors do not connect to APM traces<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Allowed tracing URLs\nCORS headers\nBackend tracer enabled\nTrace context propagation\nservice\/env\/version alignment\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Frontend-to-backend trace correlation requires both RUM and backend APM to propagate compatible trace context.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">15. OpenTelemetry Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">15.1 OTel data not reaching Datadog<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Possible data paths:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-66\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">flowchart<\/span> <span class=\"hljs-selector-tag\">TB<\/span>\n    <span class=\"hljs-selector-tag\">A<\/span><span class=\"hljs-selector-attr\">&#91;OTel SDK]<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">B<\/span><span class=\"hljs-selector-attr\">&#91;OTel Collector]<\/span>\n    <span class=\"hljs-selector-tag\">B<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">C<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Exporter]<\/span>\n    <span class=\"hljs-selector-tag\">C<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">D<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Intake]<\/span>\n\n    <span class=\"hljs-selector-tag\">A2<\/span><span class=\"hljs-selector-attr\">&#91;OTel SDK]<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">B2<\/span><span class=\"hljs-selector-attr\">&#91;Datadog Agent OTLP Receiver]<\/span>\n    <span class=\"hljs-selector-tag\">B2<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">D<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-66\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog supports OpenTelemetry data through the OpenTelemetry Collector with Datadog exporter and through OTLP ingest in the Datadog Agent. (<a href=\"https:\/\/docs.datadoghq.com\/integrations\/otel\/?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">15.2 OTLP ingest into Datadog Agent not working<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check Agent OTLP receiver config.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Important:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-67\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">OTLP gRPC <span class=\"hljs-keyword\">default<\/span>: <span class=\"hljs-number\">4317<\/span>\nOTLP HTTP <span class=\"hljs-keyword\">default<\/span>: <span class=\"hljs-number\">4318<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-67\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Application:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">env | grep OTEL_\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Common variables:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">OTEL_EXPORTER_OTLP_ENDPOINT\nOTEL_SERVICE_NAME\nOTEL_RESOURCE_ATTRIBUTES\nOTEL_TRACES_EXPORTER\nOTEL_METRICS_EXPORTER\nOTEL_LOGS_EXPORTER\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog Agent supports OTLP traces and metrics through gRPC or HTTP since Agent 6.32\/7.32, and OTLP logs since Agent 6.48\/7.48. Datadog also warns that OTLP ingest is intended for an Agent local to each telemetry-generating host, not a remote Agent on another host. (<a href=\"https:\/\/docs.datadoghq.com\/opentelemetry\/setup\/otlp_ingest_in_the_agent\/?tab=host\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">15.3 Duplicate hosts with OpenTelemetry<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cause:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You are sending host telemetry through both the Datadog Agent and OpenTelemetry with inconsistent hostname\/resource attributes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fix:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Standardize:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-68\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">host<\/span><span class=\"hljs-selector-class\">.name<\/span>\n<span class=\"hljs-selector-tag\">service<\/span><span class=\"hljs-selector-class\">.name<\/span>\n<span class=\"hljs-selector-tag\">deployment<\/span><span class=\"hljs-selector-class\">.environment<\/span>\n<span class=\"hljs-selector-tag\">service<\/span><span class=\"hljs-selector-class\">.version<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-68\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog\u2019s OTel troubleshooting notes that duplicate host entries can happen when a host is monitored through multiple ingestion methods, such as OTLP plus Datadog Agent or DogStatsD plus OTLP, without aligning on a single hostname resource attribute. (<a href=\"https:\/\/docs.datadoghq.com\/opentelemetry\/troubleshooting.md?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">15.4 Some Datadog features missing with OTel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">OpenTelemetry is great, but not every Datadog-native capability works the same way with only OTel SDK instrumentation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog notes that data from applications instrumented with OpenTelemetry SDKs cannot be used in some proprietary products, including App and API Protection, Continuous Profiler, and Ingestion Rules. (<a href=\"https:\/\/docs.datadoghq.com\/opentelemetry\/setup\/otlp_ingest_in_the_agent\/?tab=host\">Datadog<\/a>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So when debugging OTel setups, ask:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Are we using OTel SDK only?\nAre we using Datadog tracer?\nAre we using Datadog Agent OTLP ingest?\nAre we using Datadog Distribution of OpenTelemetry Collector?\nWhich Datadog features are required?\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">16. Security \/ Cloud SIEM \/ Sensitive Data Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">16.1 Security signals missing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Area<\/th><th>What to Verify<\/th><\/tr><\/thead><tbody><tr><td>Log source<\/td><td>Security logs are ingested<\/td><\/tr><tr><td>Indexing<\/td><td>Logs are indexed or available to SIEM<\/td><\/tr><tr><td>Detection rule<\/td><td>Rule enabled<\/td><\/tr><tr><td>Rule query<\/td><td>Query matches events<\/td><\/tr><tr><td>Severity<\/td><td>Filter not hiding it<\/td><\/tr><tr><td>Suppression<\/td><td>Signal not suppressed<\/td><\/tr><tr><td>Permissions<\/td><td>User can view security data<\/td><\/tr><tr><td>Timestamp<\/td><td>Event time valid<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">16.2 Sensitive data still visible<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Scanner rule not enabled<\/td><td>Enable rule<\/td><\/tr><tr><td>Pattern does not match<\/td><td>Adjust regex\/pattern<\/td><\/tr><tr><td>Pipeline order wrong<\/td><td>Redact before indexing<\/td><\/tr><tr><td>Data in traces\/RUM too<\/td><td>Enable scanner across needed telemetry<\/td><\/tr><tr><td>Already indexed old data<\/td><td>Consider deletion\/remediation process<\/td><\/tr><tr><td>Custom field missed<\/td><td>Add custom scanner rule<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Best practice: prevent secrets at source. Scanning is a safety net, not the main control.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">17. Cloud Cost \/ Datadog Cost Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">17.1 Cloud cost data missing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cloud<\/th><th>What to Verify<\/th><\/tr><\/thead><tbody><tr><td>AWS<\/td><td>CUR configured, S3 access, IAM permissions<\/td><\/tr><tr><td>GCP<\/td><td>BigQuery billing export, bucket\/dataset setup<\/td><\/tr><tr><td>Azure<\/td><td>Export permissions and billing scope<\/td><\/tr><tr><td>Tags<\/td><td>Cost allocation tags enabled<\/td><\/tr><tr><td>Delay<\/td><td>Cost data is not real-time<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog Cloud Cost Management ingests cloud cost data and transforms it into metrics that can be queried in Cost Explorer; it is meant to correlate cost increases with usage and infrastructure changes. (<a href=\"https:\/\/docs.datadoghq.com\/cloud_cost_management\/?utm_source=chatgpt.com\">Datadog<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">17.2 Datadog bill increased<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Investigate:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cost Driver<\/th><th>Where to Look<\/th><\/tr><\/thead><tbody><tr><td>Custom metrics<\/td><td>Metrics Summary, Metrics without Limits<\/td><\/tr><tr><td>Indexed logs<\/td><td>Log indexes, exclusion filters<\/td><\/tr><tr><td>Ingested logs<\/td><td>Usage metrics<\/td><\/tr><tr><td>APM spans<\/td><td>APM ingestion\/retention<\/td><\/tr><tr><td>RUM sessions<\/td><td>RUM usage<\/td><\/tr><tr><td>Synthetics<\/td><td>Test frequency, locations, browser tests<\/td><\/tr><tr><td>Containers\/hosts<\/td><td>Infrastructure list<\/td><\/tr><tr><td>Cloud cost<\/td><td>Cost Explorer<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Common root causes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-69\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">containerCollectAll enabled without exclusions\ndebug logs enabled\nhigh-cardinality custom metric tags\n<span class=\"hljs-keyword\">new<\/span> Kubernetes cluster added\nlogs indexed <span class=\"hljs-keyword\">for<\/span> all environments\nsynthetics running every minute <span class=\"hljs-keyword\">from<\/span> many locations\ntrace sampling too high\nRUM sample rate too high\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-69\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">18. Dashboard and Query Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">18.1 Dashboard shows no data<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Wrong timeframe<\/td><td>Expand time range<\/td><\/tr><tr><td>Wrong template variable<\/td><td>Clear variables<\/td><\/tr><tr><td>Wrong env\/service tag<\/td><td>Verify tag values<\/td><\/tr><tr><td>Metric missing<\/td><td>Check Metrics Explorer<\/td><\/tr><tr><td>Query aggregation wrong<\/td><td>Adjust rollup\/grouping<\/td><\/tr><tr><td>User lacks data permission<\/td><td>Check RBAC<\/td><\/tr><tr><td>Data delayed<\/td><td>Wait\/add delay for cloud metrics<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">18.2 Dashboard values differ from monitor values<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Common reasons:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Reason<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td>Different time window<\/td><td>Dashboard last 1h vs monitor last 5m<\/td><\/tr><tr><td>Different rollup<\/td><td>avg vs sum vs max<\/td><\/tr><tr><td>Different grouping<\/td><td>grouped vs aggregated<\/td><\/tr><tr><td>Different filters<\/td><td>env\/service mismatch<\/td><\/tr><tr><td>Evaluation delay<\/td><td>Monitor evaluates older window<\/td><\/tr><tr><td>Require full window<\/td><td>Monitor behavior differs<\/td><\/tr><tr><td>Timezone\/display<\/td><td>UI interpretation<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">19. Incident Troubleshooting Method<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">When there is a production incident, do not randomly click dashboards. Use a fixed flow.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-70\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">flowchart<\/span> <span class=\"hljs-selector-tag\">TD<\/span>\n    <span class=\"hljs-selector-tag\">A<\/span><span class=\"hljs-selector-attr\">&#91;Alert Fires]<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">B<\/span><span class=\"hljs-selector-attr\">&#91;Confirm Customer Impact]<\/span>\n    <span class=\"hljs-selector-tag\">B<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">C<\/span><span class=\"hljs-selector-attr\">&#91;Check SLO \/ Error Budget]<\/span>\n    <span class=\"hljs-selector-tag\">C<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">D<\/span><span class=\"hljs-selector-attr\">&#91;Identify Service + Env + Version]<\/span>\n    <span class=\"hljs-selector-tag\">D<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">E<\/span><span class=\"hljs-selector-attr\">&#91;Check Recent Changes]<\/span>\n    <span class=\"hljs-selector-tag\">E<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">F<\/span><span class=\"hljs-selector-attr\">&#91;Metrics: traffic, errors, latency, saturation]<\/span>\n    <span class=\"hljs-selector-tag\">F<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">G<\/span><span class=\"hljs-selector-attr\">&#91;Traces: slow\/failing requests]<\/span>\n    <span class=\"hljs-selector-tag\">G<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">H<\/span><span class=\"hljs-selector-attr\">&#91;Logs: errors around trace IDs]<\/span>\n    <span class=\"hljs-selector-tag\">H<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">I<\/span><span class=\"hljs-selector-attr\">&#91;Infra\/K8s: pods, nodes, deploys]<\/span>\n    <span class=\"hljs-selector-tag\">I<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">J<\/span><span class=\"hljs-selector-attr\">&#91;Cloud\/DB\/Queue Dependencies]<\/span>\n    <span class=\"hljs-selector-tag\">J<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">K<\/span><span class=\"hljs-selector-attr\">&#91;Mitigate]<\/span>\n    <span class=\"hljs-selector-tag\">K<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-tag\">L<\/span><span class=\"hljs-selector-attr\">&#91;Postmortem + Monitor Fixes]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-70\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Golden questions:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-71\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">What changed?\nWho is affected?\nWhich service owns the issue?\nIs it regional?\nIs it version-specific?\nIs it dependency-specific?\nIs it traffic-related?\nIs the alert actionable?\nIs <span class=\"hljs-keyword\">this<\/span> an observability gap?\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-71\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">20. Troubleshooting Cheat Sheet<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Agent<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-72\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">sudo datadog-agent status\nsudo datadog-agent health\nsudo datadog-agent diagnose\nsudo datadog-agent configcheck\nsudo datadog-agent check <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">integration<\/span>&gt;<\/span>\nsudo datadog-agent flare\nsudo journalctl -u datadog-agent.service -r\nsudo tail -f \/var\/log\/datadog\/agent.log\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-72\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Docker Agent<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-73\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">docker ps | grep datadog\ndocker logs <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-container<\/span>&gt;<\/span>\ndocker exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-container<\/span>&gt;<\/span> agent status\ndocker exec -it <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-container<\/span>&gt;<\/span> agent configcheck\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-73\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Kubernetes Agent<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-74\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl get pods -n datadog -o wide\nkubectl logs -n datadog <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span>\nkubectl describe pod -n datadog <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span>\nkubectl exec -it -n datadog <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -- agent status\nkubectl exec -it -n datadog <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -- agent configcheck\nkubectl exec -it -n datadog <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">agent-pod<\/span>&gt;<\/span> -- agent stream-logs\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-74\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Cluster Agent<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-75\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">kubectl <span class=\"hljs-keyword\">get<\/span> deploy -n datadog\nkubectl logs -n datadog deploy\/datadog-cluster-agent\nkubectl exec -n datadog deploy\/datadog-cluster-agent -- datadog-cluster-agent status\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-75\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">APM<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-76\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">env | grep DD_\ncurl -v http:<span class=\"hljs-comment\">\/\/${DD_AGENT_HOST}:8126\/info<\/span>\nsudo datadog-agent status\nsudo tail -f \/<span class=\"hljs-keyword\">var<\/span>\/log\/datadog\/trace-agent.log\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-76\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Logs<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-77\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">kubectl logs <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">pod<\/span>&gt;<\/span> -n <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">namespace<\/span>&gt;<\/span>\ndocker logs <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">container<\/span>&gt;<\/span>\nsudo datadog-agent stream-logs\nsudo datadog-agent status\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-77\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">API<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-78\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -X GET <span class=\"hljs-string\">\"https:\/\/api.&lt;DATADOG_SITE&gt;\/api\/v1\/validate\"<\/span> \\\n  -H <span class=\"hljs-string\">\"DD-API-KEY: ${DD_API_KEY}\"<\/span>\n\ncurl -X GET <span class=\"hljs-string\">\"https:\/\/api.&lt;DATADOG_SITE&gt;\/api\/v2\/validate_keys\"<\/span> \\\n  -H <span class=\"hljs-string\">\"DD-API-KEY: ${DD_API_KEY}\"<\/span> \\\n  -H <span class=\"hljs-string\">\"DD-APPLICATION-KEY: ${DD_APP_KEY}\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-78\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">21. Most Common Datadog Problems and Fast Fixes<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Problem<\/th><th>Most Likely Cause<\/th><th>First Fix<\/th><\/tr><\/thead><tbody><tr><td>Host not visible<\/td><td>Wrong API key\/site\/network<\/td><td>Run Agent status\/diagnose<\/td><\/tr><tr><td>Logs missing<\/td><td>Logs not enabled or not indexed<\/td><td>Check Agent status + indexes<\/td><\/tr><tr><td>Traces missing<\/td><td>App cannot reach Agent on 8126<\/td><td>Check <code>DD_AGENT_HOST<\/code><\/td><\/tr><tr><td>Metrics missing<\/td><td>Integration check failing<\/td><td>Run <code>agent check &lt;name&gt;<\/code><\/td><\/tr><tr><td>Monitor No Data<\/td><td>Rollup\/window\/evaluation issue<\/td><td>Check Require Full Window<\/td><\/tr><tr><td>API 403<\/td><td>App key lacks permission<\/td><td>Check scopes\/role<\/td><\/tr><tr><td>Terraform 403<\/td><td>Wrong\/scoped app key<\/td><td>Use service account key<\/td><\/tr><tr><td>AWS metrics delayed<\/td><td>CloudWatch crawl delay<\/td><td>Add evaluation delay<\/td><\/tr><tr><td>Too many services<\/td><td>Bad service naming<\/td><td>Use <code>env<\/code>\/<code>version<\/code> tags<\/td><\/tr><tr><td>Cost spike<\/td><td>High-cardinality\/log indexing<\/td><td>Check Metrics Summary\/log indexes<\/td><\/tr><tr><td>K8s metadata missing<\/td><td>Cluster Agent\/RBAC issue<\/td><td>Check Cluster Agent logs<\/td><\/tr><tr><td>Browser test flaky<\/td><td>Dynamic selector\/timing<\/td><td>Add stable assertions<\/td><\/tr><tr><td>RUM missing<\/td><td>Wrong app\/client token\/site<\/td><td>Check SDK config<\/td><\/tr><tr><td>OTel duplicate hosts<\/td><td>Hostname\/resource mismatch<\/td><td>Align resource attributes<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">22. Best-Practice Troubleshooting Mindset<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The best Datadog engineers do not start with dashboards. They start with the telemetry path.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ask in this order:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Is the source producing data?<\/strong><\/li>\n\n\n\n<li><strong>Is the Agent\/SDK\/Collector receiving it?<\/strong><\/li>\n\n\n\n<li><strong>Can it reach Datadog intake?<\/strong><\/li>\n\n\n\n<li><strong>Is Datadog accepting it?<\/strong><\/li>\n\n\n\n<li><strong>Is it being processed, indexed, retained, or sampled?<\/strong><\/li>\n\n\n\n<li><strong>Are we querying it correctly?<\/strong><\/li>\n\n\n\n<li><strong>Do tags match our standard?<\/strong><\/li>\n\n\n\n<li><strong>Is the user allowed to see it?<\/strong><\/li>\n\n\n\n<li><strong>Is cost control intentionally dropping or reducing it?<\/strong><\/li>\n\n\n\n<li><strong>Can we prevent the same issue with better tagging, monitors, dashboards, or IaC?<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The biggest real-world Datadog issues are usually not \u201cDatadog is broken.\u201d They are usually:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-79\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">wrong site\nwrong key\nwrong tag\nwrong environment\nwrong Agent config\nwrong Kubernetes networking\nwrong log index\nwrong trace endpoint\nwrong monitor <span class=\"hljs-built_in\">window<\/span>\nwrong permissions\ntoo much cardinality\ntoo much noisy data\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-79\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That\u2019s the Datadog troubleshooting game in one sentence: <strong>follow the telemetry, then follow the tags.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>It covers: Datadog Agent, Kubernetes Agent, Cluster Agent, integrations, logs, APM\/traces, custom metrics, DogStatsD, OpenTelemetry, API keys, Terraform, monitors, SLOs, RUM, Synthetics, cloud integrations, cost, permissions, and&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[25768],"tags":[],"class_list":["post-26859","post","type-post","status-publish","format-standard","hentry","category-datadog"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/26859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=26859"}],"version-history":[{"count":4,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/26859\/revisions"}],"predecessor-version":[{"id":77128,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/26859\/revisions\/77128"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=26859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=26859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=26859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}