Documentation

UPSD Input Plugin

This plugin reads data of one or more Uninterruptible Power Supplies from a Network UPS Tools daemon using its NUT network protocol.

Introduced in: Telegraf v1.24.0 Tags: hardware, server OS support: all

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.
  ## Please attach this information when reporting issues!
  # log_level = "trace"

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

Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Read more

New in InfluxDB 3.4

Key enhancements in InfluxDB 3.4 and the InfluxDB 3 Explorer 1.2.

See the Blog Post

InfluxDB 3.4 is now available for both Core and Enterprise, which introduces offline token generation for use in automated deployments and configurable license type selection that lets you bypass the interactive license prompt. InfluxDB 3 Explorer 1.2 is also available, which includes InfluxDB cache management and other new features.

For more information, check out: