upsd

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: 9 Imported by: 1

README

UPSD Input Plugin

This plugin reads data of one or more Uninterruptible Power Supplies from an upsd daemon using its NUT network protocol.

Requirements

upsd should be installed and it's daemon should be running.

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

# Monitor UPSes connected via Network UPS Tools
[[inputs.upsd]]
  ## A running NUT server to connect to.
  ## IPv6 addresses must be enclosed in brackets (e.g. "[::1]")
  # server = "127.0.0.1"
  # port = 3493
  # username = "user"
  # password = "password"

  ## Force parsing numbers as floats
  ## It is highly recommended to enable this setting to parse numbers
  ## consistently as floats to avoid database conflicts where some numbers are
  ## parsed as integers and others as floats.
  # force_float = false

  ## Collect additional fields if they are available for the UPS
  ## The fields need to be specified as NUT variable names, see
  ## https://networkupstools.org/docs/developer-guide.chunked/apas02.html
  ## Wildcards are accepted.
  # additional_fields = []

  ## Dump information for debugging
  ## Allows to print the raw variables (and corresponding types) as received
  ## from the NUT server ONCE for each UPS. The output is only available when
  ## running Telegraf in debug-mode.
  ## Please attach this information when reporting issues!
  # dump_raw_variables = false

Pitfalls

Please note that field types are automatically determined based on the values. Especially the strings enabled and disabled are automatically converted to boolean values. This might lead to trouble for fields that can contain non-binary values like enabled, disabled and muted as the output field will be boolean for the first two values but string for the latter. To convert enabled and disabled values back to string for those fields, use the enum processor with

[[processors.enum]]
  [[processors.enum.mapping]]
    field = "ups_beeper_status"
    [processors.enum.mapping.value_mappings]
      true = "enabled"
      false = "disabled"

Alternatively, you can also map the non-binary value to a boolean.

Metrics

This implementation tries to maintain compatibility with the apcupsd metrics:

  • upsd
    • tags:
      • serial
      • ups_name
      • model
    • fields:
      • status_flags (status-bits)
      • input_voltage
      • load_percent
      • battery_charge_percent
      • time_left_ns
      • output_voltage
      • internal_temp
      • battery_voltage
      • input_frequency
      • battery_date
      • nominal_input_voltage
      • nominal_battery_voltage
      • nominal_power
      • firmware

With the exception of:

  • tags:
    • status (string representing the set status_flags)
  • fields:
    • time_on_battery_ns

Example Output

upsd,serial=AS1231515,ups_name=name1 load_percent=9.7,time_left_ns=9800000,output_voltage=230.4,internal_temp=32.4,battery_voltage=27.4,input_frequency=50.2,input_voltage=230.4,battery_charge_percent=100,status_flags=8i 1490035922000000000

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Upsd

type Upsd struct {
	Server     string          `toml:"server"`
	Port       int             `toml:"port"`
	Username   string          `toml:"username"`
	Password   string          `toml:"password"`
	ForceFloat bool            `toml:"force_float"`
	Additional []string        `toml:"additional_fields"`
	DumpRaw    bool            `toml:"dump_raw_variables"`
	Log        telegraf.Logger `toml:"-"`
	// contains filtered or unexported fields
}

func (*Upsd) Gather

func (u *Upsd) Gather(acc telegraf.Accumulator) error

func (*Upsd) Init added in v1.29.2

func (u *Upsd) Init() error

func (*Upsd) SampleConfig

func (*Upsd) SampleConfig() string

Jump to

Keyboard shortcuts

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