systemd_units

package
v1.30.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: MIT Imports: 12 Imported by: 1

README

Systemd-Units Input Plugin

This plugin gathers the status of systemd-units on Linux, using systemd's DBus interface.

Please note: At least systemd v230 is required!

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

# 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 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:

Non-detailed mode

This is the default mode, collecting data on the unit's status only without further details on the unit.

Detailed mode

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.

Metrics

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)
    • fields:
      • load_code (int, see below)
      • active_code (int, see below)
      • sub_code (int, see below)

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)
Load

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 ~
Active

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 ~
Sub

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 ~

Example Output

Output in non-detailed mode
systemd_units,host=host1.example.com,name=dbus.service,load=loaded,active=active,sub=running 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 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 load_code=0i,active_code=0i,sub_code=0i 1533730725000000000
Output in detailed mode
systemd_units,active=active,host=host1.example.com,load=loaded,name=dbus.service,sub=running,preset=disabled,state=static 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 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 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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type SystemdUnits

type SystemdUnits struct {
	Pattern         string          `toml:"pattern"`
	UnitType        string          `toml:"unittype"`
	Details         bool            `toml:"details"`
	CollectDisabled bool            `toml:"collect_disabled_units"`
	Timeout         config.Duration `toml:"timeout"`
	Log             telegraf.Logger `toml:"-"`
	// contains filtered or unexported fields
}

SystemdUnits is a telegraf plugin to gather systemd unit status

func (*SystemdUnits) Gather

func (s *SystemdUnits) Gather(acc telegraf.Accumulator) error

func (*SystemdUnits) Init added in v1.30.0

func (s *SystemdUnits) Init() error

func (*SystemdUnits) SampleConfig

func (*SystemdUnits) SampleConfig() string

func (*SystemdUnits) Start added in v1.30.0

func (*SystemdUnits) Stop added in v1.30.0

func (s *SystemdUnits) Stop()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL