Insights & updates from our experts
Overview
Connects to Datadog to fetch monitored hosts for syncing into Xurrent's CMDB.
Prerequisites
- A Datadog account on any supported site.
- An API key from Organization Settings → API Keys (docs).
- An Application key from Organization Settings → Application Keys that carries the
hosts_readscope.
Authentication
Header-based. Each outbound request carries DD-API-KEY and DD-APPLICATION-KEY, populated from the connection's API Key and Application Key credential fields. No OAuth flow is involved.
Configuration
Pick a Region matching your Datadog site. The connector routes all calls to the region's API host:
| Region | API base URL |
|---|---|
| US1 | api.datadoghq.com |
| US3 | api.us3.datadoghq.com |
| US5 | api.us5.datadoghq.com |
| EU1 | api.datadoghq.eu |
| US1-FED | api.ddog-gov.com |
| AP1 | api.ap1.datadoghq.com |
| AP2 | api.ap2.datadoghq.com |
Triggers
None — this connector is outbound only.
Actions
Fetch hosts
Retrieves all hosts from Datadog with pagination support using the Hosts API (v1).
Use case: populate or refresh the list of Datadog-monitored hosts in Xurrent's CMDB. Use the From field to fetch only hosts reported at or after a specific time, which is useful for incremental CMDB updates.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| page_size | Integer | No | 100 | Number of hosts per page (1-1000) |
| from | Integer | No | - | Epoch seconds for incremental sync |
| filter | String | No | - | String to filter search results |
| sort_field | String | No | - | Field to sort hosts by |
| sort_dir | String | No | - | Sort direction (asc or desc) |
| include_muted_hosts_data | Boolean | No | - | Include muted hosts data |
| include_hosts_metadata | Boolean | No | - | Include additional metadata |
Example Input
{
"page_size": 100,
"from": 1771410150,
"filter": "my-host",
"sort_dir": "asc"
}
Output
| Field Name | Type | Description |
|---|---|---|
total_matching |
Integer | Total hosts matching the query |
total_returned |
Integer | Hosts returned in this page |
has_next_page |
Boolean | true while more pages remain |
host_list |
Array | One object per host — see Host object fields below |
Host object fields
| Field Name | Type | Description |
|---|---|---|
id |
Integer | Datadog host ID. For Amazon EC2 hosts this field is replaced by aws_id |
aws_id |
Integer | AWS host ID. Returned in place of id when the host is an Amazon EC2 instance |
name |
String | Host display name |
host_name |
String | Hostname reported by the agent |
aliases |
Array | Host aliases |
apps |
Array | Applications running on the host |
aws_name |
String | AWS name (when available) |
sources |
Array | Data sources reporting this host |
up |
Boolean | Whether the host is currently reporting |
is_muted |
Boolean | Whether the host is muted |
mute_timeout |
Integer | Mute timeout (timestamp in seconds) |
last_reported_time |
Integer | Last report time (timestamp in seconds) |
tags_by_source |
Object | Tags grouped by source |
meta |
Object | Agent, OS, and Gohai metadata (when Include hosts metadata is on) |
metrics |
Object | Basic metrics — cpu, iowait, load |
Example Output
{
"total_matching": 1,
"total_returned": 1,
"has_next_page": false,
"host_list": [
{
"id": 123145537712914,
"name": "Xurrent-FNX2Y3Q7FK",
"host_name": "Xurrent-FNX2Y3Q7FK",
"aliases": ["Xurrent-FNX2Y3Q7FK"],
"apps": ["agent", "ntp"],
"sources": ["agent"],
"up": true,
"is_muted": false,
"mute_timeout": null,
"last_reported_time": 1770967634,
"tags_by_source": {
"Datadog": ["host:Xurrent-FNX2Y3Q7FK"]
},
"meta": {
"cpu_cores": 12,
"agent_version": "7.75.3",
"timezones": ["IST"],
"platform": "darwin",
"machine": "arm64",
"processor": "Apple M4 Pro",
"install_method": {
"installer_version": null,
"tool": null,
"tool_version": "install_script_mac"
},
"logs_agent": {
"transport": ""
},
"agent_flavor": "agent",
"host_id": 123145537712914,
"gohai": {
"cpu": { "cpu_cores": "12", "model_name": "Apple M4 Pro" },
"memory": { "swap_total": "2097152kB", "total": "25769803776" }
}
},
"metrics": {
"cpu": 8.087143,
"iowait": 0,
"load": 0.1817419
}
}
]
}
Error Handling
The job fails immediately on 400 / 401 / 403 responses (invalid input or credential/scope issue). On 429 (rate limited) or 5xx server errors, the connector waits for the time in X-RateLimit-Reset and retries automatically.
Best Practices
- Incremental: Use
fromset to the epoch-seconds of your last successful sync; store the maxlast_reported_timeseen in this run for the next run'sfrom. - Full metadata off by default: Set
include_hosts_metadata = trueonly when you need agent / OS / Gohai details — otherwise leave it off to reduce payload. - Deterministic paging: Set
sort_field = "name"andsort_dir = "asc"to page through hosts in a stable order across runs. - Paginate to completion: Call until
has_next_page = false— the connector manages the cursor internally.
Rate Limiting
Datadog applies per-endpoint rate limits that vary by site and plan, surfaced on rate-limited endpoints via X-RateLimit-* headers (reference). The connector reads the limit off those headers and backs off automatically. Higher limits can be requested through a Datadog support ticket.
| HTTP status | Connector behaviour |
|---|---|
| 429 Too Many Requests | Retry after X-RateLimit-Reset seconds (60 s default if header absent) |
| 5xx Server errors | Retry after X-RateLimit-Reset seconds if present, otherwise 60 s default |
| 401 / 403 | Fail immediately — credential or scope issue |
| 400 | Fail immediately — invalid input |
Best Practices
- Incremental syncs: Set the
frominput on Fetch hosts to the epoch-seconds timestamp of your last sync — returns only hosts that have reported since then. - Track sync state: Store the max
last_reported_timeseen in this run and use it as the nextfrominput. - Filter noise: Use the
filterinput (free-text match) or combine withsort_field/sort_dirto narrow results when you don't need the full host list. - Scope metadata: Leave
include_hosts_metadata = falseunless you specifically need themetafield (agent / OS / Gohai details) — it's a larger payload per host. - Match Region to your Datadog site: Set the connection's Region to match your Datadog account's site. API keys are scoped to a single site, so a mismatched region returns 403 Forbidden.
Common Use Cases
- CMDB sync — mirror Datadog-monitored hosts into Xurrent's CMDB as Configuration Items.
- Incident enrichment — on incident creation, look up the affected host's agent version, OS, and last-reported time.
- Fleet inventory — periodic pull of all hosts with
up,is_muted, andmetricsfor monitoring dashboards. - Compliance reporting — track reporting vs. non-reporting hosts by filtering on
upandlast_reported_time.























