multifile

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: 10 Imported by: 2

README

Multifile Input Plugin

The multifile input plugin allows Telegraf to combine data from multiple files into a single metric, creating one field or tag per file. This is often useful creating custom metrics from the /sys or /proc filesystems.

Note: If you wish to parse metrics from a single file formatted in one of the supported input data formats, you should use the file input plugin instead.

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

# Aggregates the contents of multiple files into a single point
[[inputs.multifile]]
  ## Base directory where telegraf will look for files.
  ## Omit this option to use absolute paths.
  base_dir = "/sys/bus/i2c/devices/1-0076/iio:device0"

  ## If true discard all data when a single file can't be read.
  ## Else, Telegraf omits the field generated from this file.
  # fail_early = true

  ## Files to parse each interval.
  [[inputs.multifile.file]]
    file = "in_pressure_input"
    dest = "pressure"
    conversion = "float"
  [[inputs.multifile.file]]
    file = "in_temp_input"
    dest = "temperature"
    conversion = "float(3)"
  [[inputs.multifile.file]]
    file = "in_humidityrelative_input"
    dest = "humidityrelative"
    conversion = "float(3)"

Metrics

Each file table can contain the following options:

  • file: Path of the file to be parsed, relative to the base_dir.
  • dest: Name of the field/tag key, defaults to $(basename file).
  • conversion: Data format used to parse the file contents:
    • float(X): Converts the input value into a float and divides by the Xth power of 10. Effectively just moves the decimal left X places. For example a value of 123 with float(2) will result in 1.23.
    • float: Converts the value into a float with no adjustment. Same as float(0).
    • int: Converts the value into an integer.
    • string, "": No conversion.
    • bool: Converts the value into a boolean.
    • tag: File content is used as a tag.

Example Output

This example shows a BME280 connected to a Raspberry Pi, using the sample config.

multifile pressure=101.343285156,temperature=20.4,humidityrelative=48.9 1547202076000000000

To reproduce this, connect a BMP280 to the board's GPIO pins and register the BME280 device driver

cd /sys/bus/i2c/devices/i2c-1
echo bme280 0x76 > new_device

The kernel driver provides the following files in /sys/bus/i2c/devices/1-0076/iio:device0:

  • in_humidityrelative_input: 48900
  • in_pressure_input: 101.343285156
  • in_temp_input: 20400

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type File

type File struct {
	Name       string `toml:"file"`
	Dest       string
	Conversion string
}

type MultiFile

type MultiFile struct {
	BaseDir   string
	FailEarly bool
	Files     []File `toml:"file"`
}

func (*MultiFile) Gather

func (m *MultiFile) Gather(acc telegraf.Accumulator) error

func (*MultiFile) Init added in v1.23.0

func (m *MultiFile) Init() error

func (*MultiFile) SampleConfig

func (*MultiFile) SampleConfig() string

Jump to

Keyboard shortcuts

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