# Reads metrics from DPDK applications using v2 telemetry interface.
# This plugin ONLY supports Linux
[[inputs.dpdk]]
  ## Path to DPDK telemetry socket. This shall point to v2 version of DPDK
  ## telemetry interface.
  # socket_path = "/var/run/dpdk/rte/dpdk_telemetry.v2"

  ## Duration that defines how long the connected socket client will wait for
  ## a response before terminating connection.
  ## This includes both writing to and reading from socket. Since it's local
  ## socket access to a fast packet processing application, the timeout should
  ## be sufficient for most users.
  ## Setting the value to 0 disables the timeout (not recommended)
  # socket_access_timeout = "200ms"

  ## Enables telemetry data collection for selected device types.
  ## Adding "ethdev" enables collection of telemetry from DPDK NICs (stats, xstats, link_status, info).
  ## Adding "rawdev" enables collection of telemetry from DPDK Raw Devices (xstats).
  # device_types = ["ethdev"]

  ## List of custom, application-specific telemetry commands to query
  ## The list of available commands depend on the application deployed.
  ## Applications can register their own commands via telemetry library API
  ## https://doc.dpdk.org/guides/prog_guide/telemetry_lib.html#registering-commands
  ## For L3 Forwarding with Power Management Sample Application this could be:
  ##   additional_commands = ["/l3fwd-power/stats"]
  # additional_commands = []

  ## List of plugin options.
  ## Supported options:
  ##  - "in_memory" option enables reading for multiple sockets when a dpdk application is running with --in-memory option.
  ##    When option is enabled plugin will try to find additional socket paths related to provided socket_path.
  ##    Details: https://doc.dpdk.org/guides/howto/telemetry.html#connecting-to-different-dpdk-processes
  # plugin_options = ["in_memory"]

  ## Specifies plugin behavior regarding unreachable socket (which might not have been initialized yet).
  ## Available choices:
  ##   - error: Telegraf will return an error during the startup and gather phases if socket is unreachable
  ##   - ignore: Telegraf will ignore error regarding unreachable socket on both startup and gather
  # unreachable_socket_behavior = "error"

  ## List of metadata fields which will be added to every metric produced by the plugin.
  ## Supported options:
  ##  - "pid" - exposes PID of DPDK process. Example: pid=2179660i
  ##  - "version" - exposes version of DPDK. Example: version="DPDK 21.11.2"
  # metadata_fields = ["pid", "version"]

  ## Allows turning off collecting data for individual "ethdev" commands.
  ## Remove "/ethdev/link_status" from list to gather link status metrics.
  [inputs.dpdk.ethdev]
    exclude_commands = ["/ethdev/link_status"]

  ## When running multiple instances of the plugin it's recommended to add a
  ## unique tag to each instance to identify metrics exposed by an instance
  ## of DPDK application. This is useful when multiple DPDK apps run on a
  ## single host.
  ##  [inputs.dpdk.tags]
  ##    dpdk_instance = "my-fwd-app"
