> ## Documentation Index
> Fetch the complete documentation index at: https://docs.archal.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Datadog

> Observability REST API: metrics, logs, monitors, dashboards, SLOs, incidents, teams, users, and service definitions.

Datadog is included in Archal's environment catalog. Use it in a sandbox for observability REST API: metrics, logs, monitors, dashboards, SLOs, incidents, teams, users, and service definitions.

|                 |                                                |
| --------------- | ---------------------------------------------- |
| Environment ID  | `datadog`                                      |
| Transport       | REST                                           |
| State           | JSON                                           |
| Contract        | `archal.environment-state.datadog` version `1` |
| Channel         | Preview                                        |
| Curated samples | 5                                              |

Preview means the environment is included for testing, but its upstream coverage is incomplete. Verify the operations your test depends on.

## Compatibility boundary

**Local catalog validation:** All five published samples passed. Checks cover the state contract, relationships, artifact hash, secret scan, and size limit.

<Note>
  Local catalog validation is not hosted proof. Archal checks current certification, reset, and isolation evidence before admitting new sandboxes. Use the authenticated environment catalog for live availability.
</Note>

* Queries and resource families are bounded to the deterministic domain simulator.

## Curated starting states

List the five samples with `archal sample list datadog`. Each sample is a versioned starting state with a representative read, mutation, expected diff, reset expectation, and verified artifact hash.

<AccordionGroup>
  <Accordion title="Datadog CPU monitor baseline">
    Inspect one deterministic CPU monitor, then add a distinct memory monitor without unrelated telemetry.

    **Sample ID:** `datadog.cpu-monitor-baseline.v1`

    **Category:** `minimal`

    **Starting state:** 1 record across `_datadogSimulator.monitors`: 1

    **Supported surface:** Stateful metrics, monitors, events, incidents, dashboards, and modeled resources.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.monitors`

    **First read:** `GET /api/v1/monitor/20000001`. Expected result: HTTP 200.

    **Representative mutation:** `POST /api/v1/monitor`. Expected result: HTTP 200, 201.

    **Mutation input**

    ```json theme={null}
    {
      "message": "Checkout API available memory is below 20% for ten minutes.",
      "name": "Checkout API low available memory",
      "query": "avg(last_10m):avg:system.mem.pct_usable{service:checkout-api,env:staging} < 20",
      "tags": [
        "service:checkout-api",
        "env:staging",
        "team:platform"
      ],
      "type": "query alert"
    }
    ```

    **Expected diff:** changes include `_datadogSimulator.monitors`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Queries and resource families are bounded to the deterministic domain simulator.

    **Start this sample**

    ```bash theme={null}
    archal sample show datadog.cpu-monitor-baseline.v1 --raw > archal-datadog-cpu-monitor-baseline.json
    archal state validate datadog archal-datadog-cpu-monitor-baseline.json
    archal session create datadog \
      --state datadog=archal-datadog-cpu-monitor-baseline.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show datadog.cpu-monitor-baseline.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/datadog/cpu-monitor-baseline/state.json` and is 945 bytes. The CLI verifies SHA-256 `b681752c3146ab4d37d74bbc58a30bf8ab7d35643a4cbdea653bcc4a4640ce45` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Datadog platform monitoring team">
    Model CPU and memory metrics with two monitors owned by a small platform team.

    **Sample ID:** `datadog.platform-monitoring-team.v1`

    **Category:** `small-team`

    **Starting state:** 42 records across `_datadogSimulator.monitors`: 2, `_datadogSimulator.submittedSeries`: 40

    **Supported surface:** Stateful metrics, monitors, events, incidents, dashboards, and modeled resources.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.monitors`

    **First read:** `GET /api/v1/monitor/20000002`. Expected result: HTTP 200.

    **Representative mutation:** `POST /api/v1/monitor`. Expected result: HTTP 200, 201.

    **Mutation input**

    ```json theme={null}
    {
      "message": "Billing worker CPU is above 75% while the settlement queue is active.",
      "name": "Billing worker high CPU",
      "query": "avg(last_5m):avg:system.cpu.user{service:billing-worker,env:staging} > 75",
      "tags": [
        "service:billing-worker",
        "env:staging",
        "team:payments-platform"
      ],
      "type": "query alert"
    }
    ```

    **Expected diff:** changes include `_datadogSimulator.monitors`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Queries and resource families are bounded to the deterministic domain simulator.

    **Start this sample**

    ```bash theme={null}
    archal sample show datadog.platform-monitoring-team.v1 --raw > archal-datadog-platform-monitoring-team.json
    archal state validate datadog archal-datadog-platform-monitoring-team.json
    archal session create datadog \
      --state datadog=archal-datadog-platform-monitoring-team.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show datadog.platform-monitoring-team.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/datadog/platform-monitoring-team/state.json` and is 10,975 bytes. The CLI verifies SHA-256 `84bbfc992ba674b8bc40c8c5621beeafa539a99d183cc50967b67159175b2425` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Datadog populated telemetry corpus">
    Exercise monitor, series, event, dashboard, incident, service, team, and user resource reads.

    **Sample ID:** `datadog.telemetry-corpus.v1`

    **Category:** `populated`

    **Starting state:** 101 records across `_datadogSimulator.events`: 1, `_datadogSimulator.monitors`: 3, `_datadogSimulator.resources`: 7, `_datadogSimulator.submittedSeries`: 90

    **Supported surface:** Stateful metrics, monitors, events, incidents, dashboards, and modeled resources.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.monitors`

    **First read:** `GET /api/v1/monitor/20000003`. Expected result: HTTP 200.

    **Representative mutation:** `POST /api/v1/monitor`. Expected result: HTTP 200, 201.

    **Mutation input**

    ```json theme={null}
    {
      "message": "Connector worker available memory is below 25% across the last ten minutes.",
      "name": "Connector worker low available memory",
      "query": "avg(last_10m):avg:system.mem.pct_usable{service:connector-worker,env:staging} < 25",
      "tags": [
        "service:connector-worker",
        "env:staging",
        "team:integrations"
      ],
      "type": "query alert"
    }
    ```

    **Expected diff:** changes include `_datadogSimulator.monitors`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Queries and resource families are bounded to the deterministic domain simulator.

    **Start this sample**

    ```bash theme={null}
    archal sample show datadog.telemetry-corpus.v1 --raw > archal-datadog-telemetry-corpus.json
    archal state validate datadog archal-datadog-telemetry-corpus.json
    archal session create datadog \
      --state datadog=archal-datadog-telemetry-corpus.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show datadog.telemetry-corpus.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/datadog/telemetry-corpus/state.json` and is 25,006 bytes. The CLI verifies SHA-256 `65ab75e5ea95c5743efd2432da35f53707b59806da2985ec7d5977e5e39ea34b` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Datadog no-data monitor">
    Verify a monitor with no submitted points remains in the No Data state and survives reset.

    **Sample ID:** `datadog.no-data-monitor.v1`

    **Category:** `edge-case`

    **Starting state:** 1 record across `_datadogSimulator.monitors`: 1

    **Supported surface:** Stateful metrics, monitors, events, incidents, dashboards, and modeled resources.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.monitors`

    **First read:** `GET /api/v1/monitor/20000001`. Expected result: HTTP 200.

    **Representative mutation:** `POST /api/v1/monitor`. Expected result: HTTP 200, 201.

    **Mutation input**

    ```json theme={null}
    {
      "message": "Billing worker CPU is above 75% while no checkout points are arriving.",
      "name": "Billing worker high CPU",
      "query": "avg(last_5m):avg:system.cpu.user{service:billing-worker,env:staging} > 75",
      "tags": [
        "service:billing-worker",
        "env:staging",
        "team:payments-platform"
      ],
      "type": "query alert"
    }
    ```

    **Expected diff:** changes include `_datadogSimulator.monitors`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Queries and resource families are bounded to the deterministic domain simulator.

    **Start this sample**

    ```bash theme={null}
    archal sample show datadog.no-data-monitor.v1 --raw > archal-datadog-no-data-monitor.json
    archal state validate datadog archal-datadog-no-data-monitor.json
    archal session create datadog \
      --state datadog=archal-datadog-no-data-monitor.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show datadog.no-data-monitor.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/datadog/no-data-monitor/state.json` and is 1,038 bytes. The CLI verifies SHA-256 `4dc256c94bd283141d8a77a3b85ea98a3b9aa03307d193f685db1ae083a333c1` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Datadog incident response workflow">
    Start from an alerting monitor, matching metric point, deploy event, and active incident before mutation.

    **Sample ID:** `datadog.incident-response-workflow.v1`

    **Category:** `workflow`

    **Starting state:** 11 records across `_datadogSimulator.events`: 1, `_datadogSimulator.monitors`: 1, `_datadogSimulator.resources`: 1, `_datadogSimulator.submittedSeries`: 8

    **Supported surface:** Stateful metrics, monitors, events, incidents, dashboards, and modeled resources.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.monitors`

    **First read:** `GET /api/v1/monitor/20000001`. Expected result: HTTP 200.

    **Representative mutation:** `POST /api/v1/monitor`. Expected result: HTTP 200, 201.

    **Mutation input**

    ```json theme={null}
    {
      "message": "Keep INC-2027-014 open until webhook delivery errors remain below 5%.",
      "name": "INC-2027-014 webhook delivery recovery",
      "query": "avg(last_5m):avg:api_gateway.webhook.delivery_error_pct{service:api-gateway,env:production} > 5",
      "tags": [
        "service:api-gateway",
        "env:production",
        "team:platform",
        "incident:INC-2027-014"
      ],
      "type": "query alert"
    }
    ```

    **Expected diff:** changes include `_datadogSimulator.monitors`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Queries and resource families are bounded to the deterministic domain simulator.

    **Start this sample**

    ```bash theme={null}
    archal sample show datadog.incident-response-workflow.v1 --raw > archal-datadog-incident-response-workflow.json
    archal state validate datadog archal-datadog-incident-response-workflow.json
    archal session create datadog \
      --state datadog=archal-datadog-incident-response-workflow.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show datadog.incident-response-workflow.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/datadog/incident-response-workflow/state.json` and is 4,503 bytes. The CLI verifies SHA-256 `a90a2318a3d1687813246f77eecb0b3499e97e99691a5ee50f780d79c96cbc60` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>
</AccordionGroup>

## Use custom state

Start from a sample when possible. For custom state, inspect the contract with `archal environment describe datadog`, then validate the file before creating a sandbox:

```bash theme={null}
archal state validate datadog state.json
```

Loading state replaces the current collections and establishes a new reset baseline. See [Starting state](/sandboxes/starting-state) before replacing state in an existing sandbox.
