Documentation

Kernel Input Plugin

This plugin gathers metrics about the Linux kernel including, among others, the available entropy, Kernel Samepage Merging and Pressure Stall Information.

Introduced in: Telegraf v0.11.0 Tags: system OS support: linux

Global configuration options

In addition to the plugin-specific configuration settings, plugins support additional global and plugin configuration settings. These settings are used to modify metrics, tags, and field or create aliases and configure ordering, etc. See the CONFIGURATION.md for more details.

Configuration

# Plugin to collect various Linux kernel statistics.
# This plugin ONLY supports Linux
[[inputs.kernel]]
  ## Additional gather options
  ## Possible options include:
  ## * ksm - kernel same-page merging
  ## * psi - pressure stall information
  # collect = []

Please check the documentation of the underlying kernel interfaces in the /proc/stat section of the proc man page, as well as in the /proc interfaces section of the random man page.

Kernel Samepage Merging is generally documented in the kernel documentation and the available metrics exposed via sysfs are documented in the admin guide.

Pressure Stall Information is exposed through /proc/pressure and is documented in kernel documentation. Kernel version 4.20+ is required.

Metrics

  • kernel

    • boot_time (int) - seconds since epoch, btime
    • context_switches (int) - number of context switches ctxt
    • disk_pages_in (int) - page (0)
    • disk_pages_out (int) - page (1)
    • interrupts (int) - number of interrupts intr
    • processes_forked (int) - number of forked processes processes
    • entropy_avail (int) - entropy currently available entropy_available
    • ksm_full_scans (int) - number of scans of all mergeable areas full_scans
    • ksm_max_page_sharing (int) - maximum sharing allowed for each KSM page max_page_sharing
    • ksm_merge_across_nodes (int) - flag for merging of pages across NUMA nodes merge_across_nodes
    • ksm_pages_shared (int) - number of shared pages are being used pages_shared
    • ksm_pages_sharing (int) - number of sites sharing pages pages_sharing
    • ksm_pages_to_scan (int) - number of pages to scan before ksmd sleep pages_to_scan
    • ksm_pages_unshared (int) - number of pages unique but repeatedly checked for merging pages_unshared
    • ksm_pages_volatile (int) - number of pages changing too fast to be placed in a tree pages_volatile
    • ksm_run (int) - flag for ksm is running or not run
    • ksm_sleep_millisecs (int) - sleep time for ksmd between scans sleep_millisecs
    • ksm_stable_node_chains (int) - number of KSM pages hitting the max_page_sharing limit stable_node_chains
    • ksm_stable_node_chains_prune_millisecs (int) - frequency for KSM checks of page metadata hitting the deduplication limit stable_node_chains_prune_millisecs
    • ksm_stable_node_dups (int) - number of duplicated KSM pages, stable_node_dups
    • ksm_use_zero_pages (int) - flag for empty pages being treated specially use_zero_pages
  • pressure (if psi is included in collect)

    • tags:
      • resource: cpu, memory, or io
      • type: some or full
    • floating-point fields: avg10, avg60, avg300
    • integer fields: total

Example Output

Default config:

kernel boot_time=1690487872i,context_switches=321398652i,entropy_avail=256i,interrupts=141868628i,processes_forked=946492i 1691339564000000000

If ksm is included in collect:

kernel boot_time=1690487872i,context_switches=321252729i,entropy_avail=256i,interrupts=141783427i,ksm_full_scans=0i,ksm_max_page_sharing=256i,ksm_merge_across_nodes=1i,ksm_pages_shared=0i,ksm_pages_sharing=0i,ksm_pages_to_scan=100i,ksm_pages_unshared=0i,ksm_pages_volatile=0i,ksm_run=0i,ksm_sleep_millisecs=20i,ksm_stable_node_chains=0i,ksm_stable_node_chains_prune_millisecs=2000i,ksm_stable_node_dups=0i,ksm_use_zero_pages=0i,processes_forked=946467i 1691339522000000000

If psi is included in collect:

pressure,resource=cpu,type=some avg10=1.53,avg60=1.87,avg300=1.73 1700000000000000000
pressure,resource=memory,type=some avg10=0.00,avg60=0.00,avg300=0.00 1700000000000000000
pressure,resource=memory,type=full avg10=0.00,avg60=0.00,avg300=0.00 1700000000000000000
pressure,resource=io,type=some avg10=0.0,avg60=0.0,avg300=0.0 1700000000000000000
pressure,resource=io,type=full avg10=0.0,avg60=0.0,avg300=0.0 1700000000000000000
pressure,resource=cpu,type=some total=1088168194i 1700000000000000000
pressure,resource=memory,type=some total=3463792i 1700000000000000000
pressure,resource=memory,type=full total=1429641i 1700000000000000000
pressure,resource=io,type=some total=68568296i 1700000000000000000
pressure,resource=io,type=full total=54982338i 1700000000000000000

Note that the combination for resource=cpu,type=full is omitted because it is always zero.


Was this page helpful?

Thank you for your feedback!


New in InfluxDB 3.5

Key enhancements in InfluxDB 3.5 and the InfluxDB 3 Explorer 1.3.

See the Blog Post

InfluxDB 3.5 is now available for both Core and Enterprise, introducing custom plugin repository support, enhanced operational visibility with queryable CLI parameters and manual node management, stronger security controls, and general performance improvements.

InfluxDB 3 Explorer 1.3 brings powerful new capabilities including Dashboards (beta) for saving and organizing your favorite queries, and cache querying for instant access to Last Value and Distinct Value caches—making Explorer a more comprehensive workspace for time series monitoring and analysis.

For more information, check out:

InfluxDB Docker latest tag changing to InfluxDB 3 Core

On November 3, 2025, the latest tag for InfluxDB Docker images will point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in your Docker deployments.

If using Docker to install and run InfluxDB, the latest tag will point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in your Docker deployments. For example, if using Docker to run InfluxDB v2, replace the latest version tag with a specific version tag in your Docker pull command–for example:

docker pull influxdb:2