Skip to content

Commit

Permalink
Introduce new container integrations (DataDog#10577)
Browse files Browse the repository at this point in the history
* Introduce new `container` integrations

* Apply suggestions from code review

Co-authored-by: Kaylyn <[email protected]>

Co-authored-by: Kaylyn <[email protected]>
  • Loading branch information
vboulineau and Kaylyn authored Nov 10, 2021
1 parent f81e4d1 commit 0ffde1c
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 0 deletions.
49 changes: 49 additions & 0 deletions container/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Agent Check: Container

## Overview

This check reports a set of metrics about any running containers, regardless of the runtime used to start them.

**NOTE**: The `container` check is different from the `containerd` check. The `container` checks will report standardized metrics for all containers found on the system,
regardless of the container runtime.
The `containerd` is dedicated to `containerd` runtime and publishes metrics in the `containerd.*` namespace.

## Setup

### Installation

Container is a core Datadog Agent check and is automatically activated if any supported container runtime is detected.
Configuring access to supported container runtimes (Docker, containerd) may be required depending on your environment.

#### Installation on containers

The `container` check requires some folders to be mounted to allow for automatic activation. This is handled by our official Helm Chart, the Datadog Operator, and as documented set ups for Kubernetes, Docker, ECS, and ECS Fargate.

### Configuration

Currently, the `container` check does not expose any specific configuration settings. To customize common fields or to force the activation of the `container` check, follow these steps:

1. Create the `container.d/conf.yaml` file in the `conf.d/` folder at the root of your Agent's configuration directory.

2. [Restart the Agent][2]

The `container` check can collect metrics about CPU, Memory, Network and Disks IO.
Some metrics may not be available depending on your environment (Linux / Windows, for instance).

### Validation

[Run the Agent's `status` subcommand][2] and look for `container` under the **Checks** section.

## Data Collected

### Metrics

See [metadata.csv][3] for a list of metrics provided by this integration.

## Troubleshooting

Need help? Contact [Datadog support][1].

[1]: https://docs.datadoghq.com/help/
[2]: https://docs.datadoghq.com/agent/guide/agent-commands/#start-stop-and-restart-the-agent
[3]: https://github.com/DataDog/integrations-core/blob/master/container/metadata.csv
1 change: 1 addition & 0 deletions container/assets/service_checks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
30 changes: 30 additions & 0 deletions container/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"maintainer": "[email protected]",
"manifest_version": "1.0.0",
"metric_prefix": "container.",
"metric_to_check": "container.uptime",
"name": "container",
"short_description": "Track your container metrics with Datadog",
"guid": "39d40858-0d56-4623-bd1d-864790d0c894",
"support": "core",
"supported_os": [
"linux",
"windows"
],
"public_title": "Datadog-Container Integration",
"categories": [
"containers"
],
"type": "check",
"is_public": false,
"display_name": "Container",
"creates_events": true,
"integration_id": "container",
"assets": {
"monitors": {},
"dashboards": {},
"service_checks": "assets/service_checks.json",
"logs": {},
"metrics_metadata": "metadata.csv"
}
}
26 changes: 26 additions & 0 deletions container/metadata.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name
container.uptime,gauge,,second,,The container uptime,0,container,uptime
container.cpu.usage,rate,,nanosecond,,The container total CPU Usage,0,container,cpu_total
container.cpu.user,rate,,nanosecond,,The container userspace CPU usage,0,container,cpu_user
container.cpu.system,rate,,nanosecond,,The container system CPU usage,0,container,cpu_system
container.cpu.throttled,rate,,nanosecond,,The total cpu throttled time,0,container,cpu_throttled
container.cpu.throttled.periods,rate,,,,The number of periods during which the container was throttled,0,container,cpu_throttled_periods
container.cpu.shares,gauge,,,,The number of CPU shares assigned to the container,0,container,cpu_shares
container.cpu.limit,gauge,,nanosecond,,The maximum CPU time available to the container,0,container,cpu_limit
container.memory.usage,gauge,,byte,,The container total memory usage,0,container,mem_usage
container.memory.kernel,gauge,,byte,,The container kernel memory usage,0,container,mem_kernel_usage
container.memory.limit,gauge,,byte,,The container memory limit,0,container,mem_limit
container.memory.soft_limit,gauge,,byte,,The container memory soft limit,0,container,mem_soft_limit
container.memory.rss,gauge,,byte,,The container RSS usage,0,container,mem_rss
container.memory.cache,gauge,,byte,,The container cache usage,0,container,mem_cache
container.memory.swap,gauge,,byte,,The container swap usage,0,container,mem_swap
container.memory.oom_events,gauge,,byte,,The number of OOM events triggered by the container,0,container,mem_oom_events
container.memory.working_set,gauge,,byte,,The container working set usage,0,container,mem_workingset
container.memory.commit,gauge,,byte,,The container commit memory usage,0,container,mem_commit
container.memory.commit.peak,gauge,,byte,,The container peak commit memory usage,0,container,mem_commit_peak
container.io.read,rate,,byte,,The number of bytes read from disks by this container,0,container,io_read
container.io.read.operations,rate,,,,The number of read operations done by this continer,0,container,io_read_ops
container.io.write,rate,,byte,,The number of bytes written to disks by this container,0,container,io_write
container.io.write.operations,rate,,,,The number of write operations done by this continer,0,container,io_write_ops
container.pid.thread_count,rate,,,,The number of threads running inside this container,0,container,thread_count
container.pid.thread_limit,rate,,,,The maximum number of threads for this container,0,container,thread_limit

0 comments on commit 0ffde1c

Please sign in to comment.