AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Datadog Agent

skill-cogni-ai-ou-cogni-ai-agent-skills-datadog-agent · by Cogni-AI-OU

Use when installing, configuring, or updating Datadog Agent;

No reviews yet
0 installs
53 views
0.0% view→install

Install

$ agentstack add skill-cogni-ai-ou-cogni-ai-agent-skills-datadog-agent

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution Used
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-cogni-ai-ou-cogni-ai-agent-skills-datadog-agent)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Datadog Agent? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Skill: datadog-agent

Expert-level guidance for installing, configuring, and extending the Datadog Agent, including Ansible orchestration and custom OpenMetrics checks.

When to Use

  • When configuring, installing, or troubleshooting the Datadog Agent on a Linux host.
  • To write custom Python check scripts (AgentCheck or OpenMetricsBaseCheckV2) for the agent.
  • When updating Ansible playbooks that deploy the datadog.dd.agent role.

When Not to Use

  • For querying Datadog APIs to read telemetry or dashboard data (use datadog-api instead).
  • When managing Datadog SaaS configurations like Monitors or SLOs (use datadog-monitors).
  • If you are deploying Datadog strictly via a Helm chart in Kubernetes without needing custom host-level Python checks.

Common Pitfalls

  • Subprocess Hangs: Using Python's native subprocess module inside a custom check instead of get_subprocess_output(), which deadlocks the Agent's Go-runtime.
  • Misnamed Files: Creating a custom check script named my_check.py but naming the configuration file custom_check.yaml, causing the Agent to silently ignore it.
  • Root Level Logs: Defining - type: file at the root of a check's YAML configuration instead of properly nesting it under a logs: key.

Core Principles

  • Agent Immutability: Prefer immutable configuration deployments (e.g., Ansible) over manual modifications to datadog.yaml or conf.d/.
  • API Key Handling: Never hardcode datadog_api_key in playbooks; utilize vault secrets or environment variables.
  • Python Compatibility: Custom Agent checks must be Python 3 compatible for modern Agent versions (v7+).
  • File Matching: The custom check script name (e.g., my_check.py) must exactly match its configuration file name (e.g., my_check.yaml).

Ansible Integration & Logs Configuration

When using the datadog.dd.agent (or legacy datadog.datadog) Ansible role, ensure correct YAML hierarchy, especially for log collection.

  • Requirements: Ansible v2.10+, ansible-galaxy collection install datadog.dd
  • Avoid Array Root: Do not map a check directly to an array. A common mistake with logs is defining - type: file at the root check level.
  • Correct Logs Structure: Logs must be encapsulated under a logs: key within the specific check dictionary.
# Correct Ansible definition for logs attached to a custom/syslog check
datadog_checks:
  syslog: # Creates /etc/datadog-agent/conf.d/syslog.d/conf.yaml
    logs:
      - type: file
        path: /var/log/syslog
        service: syslog
        source: syslog

Custom Agent Checks

Create custom Python checks by extending AgentCheck for simple metrics or OpenMetricsBaseCheckV2 for Prometheus endpoints.

  • Directory Paths:
  • Scripts: /etc/datadog-agent/checks.d/
  • Configs: /etc/datadog-agent/conf.d/.d/conf.yaml
  • Naming Convention: Prefix custom checks with custom_ (e.g., custom_postfix.py) to avoid conflicts with out-of-the-box integrations.
  • Check Verification: sudo -u dd-agent -- datadog-agent check

Simple Python Check

from datadog_checks.base import AgentCheck

class CustomCheck(AgentCheck):
    def check(self, instance):
        self.gauge('custom.metric', 1, tags=instance.get('tags', []))

OpenMetrics Base Check (V2)

Advanced scraping from Prometheus endpoints. Requires openmetrics_endpoint in the check config.

from datadog_checks.base import OpenMetricsBaseCheckV2, ConfigurationError

class CustomOpenMetricsCheck(OpenMetricsBaseCheckV2):
    __NAMESPACE__ = "my_namespace"

    def __init__(self, name, init_config, instances):
        super(CustomOpenMetricsCheck, self).__init__(name, init_config, instances)
        self.metrics_map = {
            'prom_metric_name': 'datadog.metric.name',
        }

    def get_default_config(self):
        return {'metrics': self.metrics_map}

    def check(self, instance):
        endpoint = instance.get('openmetrics_endpoint')
        if not endpoint:
            raise ConfigurationError("Missing 'openmetrics_endpoint'")
        super().check(instance)

Integrations & Developer Platform

  • Tiles & Dashboards: Official integrations must include out-of-the-box dashboards and telemetry logic. API integrations require OAuth 2.0.
  • Platform Separation: Agent-based integrations collect from local hosts, whereas API-based integrations ingest directly via Datadog REST endpoints.

Diagnostics and Troubleshooting

  • Check agent status: datadog-agent status
  • Subprocess execution: Never use Python's native subprocess module due to the Agent's Go-runtime multithreading constraints. Always use get_subprocess_output() from datadog_checks.base.utils.subprocess_output.
from datadog_checks.base.utils.subprocess_output import get_subprocess_output
out, err, retcode = get_subprocess_output(["ls", "."], self.log, raise_on_empty_output=True)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.