This plugin gathers the status of systemd-units on Linux, using systemd's DBus interface.
Please note: At least systemd v230 is required!
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.
# Gather information about systemd-unit states
# This plugin ONLY supports Linux
[[inputs.systemd_units]]
## Pattern of units to collect
## A space-separated list of unit-patterns including wildcards determining
## the units to collect.
## ex: pattern = "telegraf* influxdb* user@*"
# pattern = "*"
## Filter for a specific unit type
## Available settings are: service, socket, target, device, mount,
## automount, swap, timer, path, slice and scope
# unittype = "service"
## Collect system or user scoped units
## ex: scope = "user"
# scope = "system"
## Collect also units not loaded by systemd, i.e. disabled or static units
## Enabling this feature might introduce significant load when used with
## unspecific patterns (such as '*') as systemd will need to load all
## matching unit files.
# collect_disabled_units = false
## Collect detailed information for the units
# details = false
## Timeout for state-collection
# timeout = "5s"
This plugin supports two modes of operation:
This is the default mode, collecting data on the unit's status only without further details on the unit.
This mode can be enabled by setting the configuration option details
to
true
. In this mode the plugin collects all information of the non-detailed
mode but provides additional unit information such as memory usage,
restart-counts, PID, etc. See the metrics section below for a list
of all properties collected.
These metrics are available in both modes:
- systemd_units:
- tags:
- name (string, unit name)
- load (string, load state)
- active (string, active state)
- sub (string, sub state)
- user (string, username only for user scope)
- fields:
- load_code (int, see below)
- active_code (int, see below)
- sub_code (int, see below)
- tags:
The following additional metrics are available with details = true
:
- systemd_units:
- tags:
- state (string, unit file state)
- preset (string, unit file preset state)
- fields:
- status_errno (int, last error)
- restarts (int, number of restarts)
- pid (int, pid of the main process)
- mem_current (uint, current memory usage)
- mem_peak (uint, peak memory usage)
- swap_current (uint, current swap usage)
- swap_peak (uint, peak swap usage)
- mem_avail (uint, available memory for this unit)
- active_enter_timestamp_us (uint, timestamp in us when entered the state)
- tags:
Enumeration of unit_load_state_table
Value | Meaning | Description |
---|---|---|
0 | loaded | unit is ~ |
1 | stub | unit is ~ |
2 | not-found | unit is ~ |
3 | bad-setting | unit is ~ |
4 | error | unit is ~ |
5 | merged | unit is ~ |
6 | masked | unit is ~ |
Enumeration of unit_active_state_table
Value | Meaning | Description |
---|---|---|
0 | active | unit is ~ |
1 | reloading | unit is ~ |
2 | inactive | unit is ~ |
3 | failed | unit is ~ |
4 | activating | unit is ~ |
5 | deactivating | unit is ~ |
enumeration of sub states, see various unittype_state_tables; duplicates were removed, tables are hex aligned to keep some space for future values
Value | Meaning | Description |
---|---|---|
service_state_table start at 0x0000 | ||
0x0000 | running | unit is ~ |
0x0001 | dead | unit is ~ |
0x0002 | start-pre | unit is ~ |
0x0003 | start | unit is ~ |
0x0004 | exited | unit is ~ |
0x0005 | reload | unit is ~ |
0x0006 | stop | unit is ~ |
0x0007 | stop-watchdog | unit is ~ |
0x0008 | stop-sigterm | unit is ~ |
0x0009 | stop-sigkill | unit is ~ |
0x000a | stop-post | unit is ~ |
0x000b | final-sigterm | unit is ~ |
0x000c | failed | unit is ~ |
0x000d | auto-restart | unit is ~ |
0x000e | condition | unit is ~ |
0x000f | cleaning | unit is ~ |
service_state_table start at 0x0010 | ||
0x0010 | waiting | unit is ~ |
0x0011 | reload-signal | unit is ~ |
0x0012 | reload-notify | unit is ~ |
0x0013 | final-watchdog | unit is ~ |
0x0014 | dead-before-auto-restart | unit is ~ |
0x0015 | failed-before-auto-restart | unit is ~ |
0x0016 | dead-resources-pinned | unit is ~ |
0x0017 | auto-restart-queued | unit is ~ |
service_state_table start at 0x0020 | ||
0x0020 | tentative | unit is ~ |
0x0021 | plugged | unit is ~ |
service_state_table start at 0x0030 | ||
0x0030 | mounting | unit is ~ |
0x0031 | mounting-done | unit is ~ |
0x0032 | mounted | unit is ~ |
0x0033 | remounting | unit is ~ |
0x0034 | unmounting | unit is ~ |
0x0035 | remounting-sigterm | unit is ~ |
0x0036 | remounting-sigkill | unit is ~ |
0x0037 | unmounting-sigterm | unit is ~ |
0x0038 | unmounting-sigkill | unit is ~ |
service_state_table start at 0x0040 | ||
service_state_table start at 0x0050 | ||
0x0050 | abandoned | unit is ~ |
service_state_table start at 0x0060 | ||
0x0060 | active | unit is ~ |
service_state_table start at 0x0070 | ||
0x0070 | start-chown | unit is ~ |
0x0071 | start-post | unit is ~ |
0x0072 | listening | unit is ~ |
0x0073 | stop-pre | unit is ~ |
0x0074 | stop-pre-sigterm | unit is ~ |
0x0075 | stop-pre-sigkill | unit is ~ |
0x0076 | final-sigkill | unit is ~ |
service_state_table start at 0x0080 | ||
0x0080 | activating | unit is ~ |
0x0081 | activating-done | unit is ~ |
0x0082 | deactivating | unit is ~ |
0x0083 | deactivating-sigterm | unit is ~ |
0x0084 | deactivating-sigkill | unit is ~ |
service_state_table start at 0x0090 | ||
service_state_table start at 0x00a0 | ||
0x00a0 | elapsed | unit is ~ |
systemd_units,host=host1.example.com,name=dbus.service,load=loaded,active=active,sub=running,user=telegraf load_code=0i,active_code=0i,sub_code=0i 1533730725000000000
systemd_units,host=host1.example.com,name=networking.service,load=loaded,active=failed,sub=failed,user=telegraf load_code=0i,active_code=3i,sub_code=12i 1533730725000000000
systemd_units,host=host1.example.com,name=ssh.service,load=loaded,active=active,sub=running,user=telegraf load_code=0i,active_code=0i,sub_code=0i 1533730725000000000
systemd_units,active=active,host=host1.example.com,load=loaded,name=dbus.service,sub=running,preset=disabled,state=static,user=telegraf active_code=0i,load_code=0i,mem_avail=6470856704i,mem_current=2691072i,mem_peak=3895296i,pid=481i,restarts=0i,status_errno=0i,sub_code=0i,swap_current=794624i,swap_peak=884736i 1533730725000000000
systemd_units,active=inactive,host=host1.example.com,load=not-found,name=networking.service,sub=dead,user=telegraf active_code=2i,load_code=2i,pid=0i,restarts=0i,status_errno=0i,sub_code=1i 1533730725000000000
systemd_units,active=active,host=host1.example.com,load=loaded,name=pcscd.service,sub=running,preset=disabled,state=indirect,user=telegraf active_code=0i,load_code=0i,mem_avail=6370541568i,mem_current=512000i,mem_peak=4399104i,pid=1673i,restarts=0i,status_errno=0i,sub_code=0i,swap_current=3149824i,swap_peak=3149824i 1533730725000000000