Skip to content
share

Container Metrics

Sematext Agent offers a unified and agnostic approach to container engine monitoring and visibility. Containers are discovered from cgroupfs hierarchies and all the metrics are fetched directly from accounting data exposed through cgroup controllers. We have support for Docker, containerd, crio, and podman container runtimes.

Metrics

The following information recaps all the metrics shipped by the agent.

Type Description
Operating System Metrics

Host machine metrics

  • CPU Usage
  • Memory Usage
  • Network Stats
  • Disk I/O Stats
Container Metrics/Stats
  • CPU Usage / limits
  • Memory Usage / Limits / Fail Counters
  • Network Stats
  • Disk I/O Stats
Events
Agent Startup Event server-info – created by spm-agent framework with node.js and OS version info on startup. Please note the agent is implemented in node.js.
Docker-info – Docker Version, API Version, Kernel Version on startup
Docker Events Container Lifecycle Events| create, exec_create, destroy, export, ...
Container Runtime Events die, exec_start, kill, pause, restart, start, stop, unpause, ...
Docker Logs
Default Fields
  • hostname / IP address
  • container id
  • container name
  • image name
  • message

Log formats

(detection and log parsers)

JSON, Plain Text

Supported Platforms

  • Docker Engine >= 17.0.0
  • Platforms using Docker:
    • Docker Data Center
    • Docker Enterprise
    • Kubernetes
    • AWS ECS, AWS EKS
    • AKS
    • GKE
    • Red Hat OpenShift
    • Nomad
    • Docker Swarm
    • Mesos
    • Rancher

Container Metrics Fields

Name Type Unit Numeric Type Label Description
container.memory.usage gauge bytes long memory container memory usage in bytes
container.memory.fail.count counter long memory the number of times that memory cgroup limit was exceeded
container.memory.limit gauge bytes long memory the max allowed memory limit for the container cgroup
container.memory.limit.soft gauge bytes long soft memory limit soft memory limit represents the initial memory reservation for the container
container.memory.rss gauge bytes long RSS memory number of bytes of anonymous (file unmapped memory) and swap cache memory
container.cache.usage gauge bytes long cache memory number of bytes of page cache memory
container.memory.pages.in counter long memory pages in memory pages in,description=the number of events each time the page is accounted to the cgroup
container.memory.pages.out counter long memory pages out memory pages out,description=the number of events each time a page is unaccounted from the cgroup
container.memory.pages.fault counter long memory page faults the number of page faults accounted to the cgroup
container.memory.pages.fault.major counter long major memory page faults the number of major page faults accounted to the cgroup
container.swap.size counter bytes long swap the number of bytes of swap usage
container.swap.limit gauge bytes long swap limit the swap memory usage limit
container.io.read gauge long disk read the number of bytes read from the disk
container.io.read.time gauge ns long disk read time the total amount of time (in nanoseconds) between request dispatch and request completion
container.io.read.wait.time counter ns long disk read wait time total amount of time the IO operations for this cgroup spent waiting in the scheduler queues
container.io.write counter bytes long disk write the number of bytes written to the disk
container.io.write.time counter ns long disk write time the total amount of time (in nanoseconds) between request dispatch and request completion
container.io.write.wait.time counter ns long disk write wait time total amount of time the IO operations for this cgroup spent waiting in the scheduler queues
container.io.weight gauge ns long disk io weight specifies the relative proportion of block I/O access ranging from 100 to 1000
container.cpu.percent gauge % double CPU usage container CPU usage
container.cpu.throttled.time counter microseconds long CPU throttled time the total amount of time that processes have been throttled in the container cgroup
container.cpu.shares gauge ns long CPU shares represents the weight of the cgroup that translates into the amount of CPU it is expected to get. Upon cgroup creation each group gets assigned a default of 1024
container.cpu.quota gauge microseconds long CPU quota enforces a hard limit to the CPU time allocated to processes
container.cpu.period gauge microseconds long CPU period is the time window expressed in microseconds that represents the period for which processes are allowed to run under specific quota
container.network.rx.bytes counter bytes long network received received amount of bytes on the network interface
container.network.rx.packets counter long network packets received received amount of packets on the network interface
container.network.rx.errors counter long network rx errors received amount of errors on the network interface
container.network.rx.dropped counter long network packets rx dropped amount of dropped inbound packets on the network interface
container.network.tx counter long network transmitted transmitted amount of bytes on the network interface
container.network.tx.bytes counter bytes long network received transmitted amount of bytes on the network interface
container.network.tx.packets counter long network packets transmitted transmitted amount of packets on the network interface
container.network.tx.errors counter long network tx errors transmitted amount of errors on the network interface
container.network.tx.dropped counter long network packets tx dropped amount of dropped outbound packets on the network interface