telegraf/plugins/outputs/riemann
Fabio Berchtold 3fa37a9212 Rewriting Riemann output plugin (#1900)
* rename to riemann_legacy

Signed-off-by: Fabio Berchtold <fabio.berchtold@swisscom.com>

* initial draft for Riemann output plugin rewrite

Signed-off-by: Fabio Berchtold <fabio.berchtold@swisscom.com>

* add unit tests

Signed-off-by: Fabio Berchtold <fabio.berchtold@swisscom.com>

* add option to send string metrics as states

Signed-off-by: Fabio Berchtold <fabio.berchtold@swisscom.com>

* add integration tests

Signed-off-by: Fabio Berchtold <fabio.berchtold@swisscom.com>

* add plugin README.md

Signed-off-by: Fabio Berchtold <fabio.berchtold@swisscom.com>

* bump riemann library

* clarify settings description

Signed-off-by: Fabio Berchtold <fabio.berchtold@swisscom.com>

* update Readme.md with updated description

Signed-off-by: Fabio Berchtold <fabio.berchtold@swisscom.com>

* add Riemann event examples

Signed-off-by: Fabio Berchtold <fabio.berchtold@swisscom.com>

* use full URL for Riemann server address

Signed-off-by: Fabio Berchtold <fabio.berchtold@swisscom.com>

closes #1878
2017-01-27 14:54:59 -08:00
..
README.md Rewriting Riemann output plugin (#1900) 2017-01-27 14:54:59 -08:00
riemann.go Rewriting Riemann output plugin (#1900) 2017-01-27 14:54:59 -08:00
riemann_test.go Rewriting Riemann output plugin (#1900) 2017-01-27 14:54:59 -08:00

README.md

Riemann Output Plugin

This plugin writes to Riemann via TCP or UDP.

Configuration:

# Configuration for Riemann to send metrics to
[[outputs.riemann]]
  ## The full TCP or UDP URL of the Riemann server
  url = "tcp://localhost:5555"

  ## Riemann event TTL, floating-point time in seconds.
  ## Defines how long that an event is considered valid for in Riemann
  # ttl = 30.0

  ## Separator to use between measurement and field name in Riemann service name
  ## This does not have any effect if 'measurement_as_attribute' is set to 'true'
  separator = "/"

  ## Set measurement name as Riemann attribute 'measurement', instead of prepending it to the Riemann service name
  # measurement_as_attribute = false

  ## Send string metrics as Riemann event states.
  ## Unless enabled all string metrics will be ignored
  # string_as_state = false

  ## A list of tag keys whose values get sent as Riemann tags.
  ## If empty, all Telegraf tag values will be sent as tags
  # tag_keys = ["telegraf","custom_tag"]

  ## Additional Riemann tags to send.
  # tags = ["telegraf-output"]

  ## Description for Riemann event
  # description_text = "metrics collected from telegraf"

Required parameters:

  • url: The full TCP or UDP URL of the Riemann server to send events to.

Optional parameters:

  • ttl: Riemann event TTL, floating-point time in seconds. Defines how long that an event is considered valid for in Riemann.
  • separator: Separator to use between measurement and field name in Riemann service name.
  • measurement_as_attribute: Set measurement name as a Riemann attribute, instead of prepending it to the Riemann service name.
  • string_as_state: Send string metrics as Riemann event states. If this is not enabled then all string metrics will be ignored.
  • tag_keys: A list of tag keys whose values get sent as Riemann tags. If empty, all Telegraf tag values will be sent as tags.
  • tags: Additional Riemann tags that will be sent.
  • description_text: Description text for Riemann event.

Example Events:

Riemann event emitted by Telegraf with default configuration:

#riemann.codec.Event{
:host "postgresql-1e612b44-e92f-4d27-9f30-5e2f53947870", :state nil, :description nil, :ttl 30.0,
:service "disk/used_percent", :metric 73.16736001949994, :path "/boot", :fstype "ext4", :time 1475605021}

Telegraf emitting the same Riemann event with measurement_as_attribute set to true:

#riemann.codec.Event{ ...
:measurement "disk", :service "used_percent", :metric 73.16736001949994,
... :time 1475605021}

Telegraf emitting the same Riemann event with additional Riemann tags defined:

#riemann.codec.Event{
:host "postgresql-1e612b44-e92f-4d27-9f30-5e2f53947870", :state nil, :description nil, :ttl 30.0,
:service "disk/used_percent", :metric 73.16736001949994, :path "/boot", :fstype "ext4", :time 1475605021,
:tags ["telegraf" "postgres_cluster"]}

Telegraf emitting a Riemann event with a status text and string_as_state set to true, and a description_text defined:

#riemann.codec.Event{
:host "postgresql-1e612b44-e92f-4d27-9f30-5e2f53947870", :state "Running", :ttl 30.0,
:description "PostgreSQL master node is up and running",
:service "status", :time 1475605021}