-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewriting Riemann output plugin #1900
Changes from all commits
6023fb3
417560a
1726103
c038bf3
54fa55d
2021ebc
d77d2e8
8586bab
d8e8260
3a7f638
281e1ff
6f6ed1c
e4b78cb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -443,8 +443,39 @@ | |
# # expiration_interval = "60s" | ||
|
||
|
||
# # Configuration for the Riemann server to send metrics to | ||
# # Configuration for Riemann server 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 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you provide more details on what this means? can you provide an example? How does using this option affect the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I tried to clarify the description text a bit. I also added an example Riemann event with this setting to the plugins Readme.md. |
||
# | ||
# ## 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"] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. weren't we going to send tags as riemann "attributes" instead of as tags? is that what you mean by "Riemann tags"? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, Telegraf/Influx/Metrics2.0 tags will be sent as Riemann attributes, which are key/value pairs. But Riemann also has a notion of "Riemann tags" which are just single string thingies. (Kinda like in Graphite I guess?) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. OK, fair enough |
||
# | ||
# ## Additional Riemann tags to send. | ||
# # tags = ["telegraf-output"] | ||
# | ||
# ## Description for Riemann event | ||
# # description_text = "metrics collected from telegraf" | ||
|
||
|
||
# # Configuration for the legacy Riemann plugin | ||
# [[outputs.riemann_legacy]] | ||
# ## URL of server | ||
# url = "localhost:5555" | ||
# ## transport protocol to use either tcp or udp | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
# Riemann Output Plugin | ||
|
||
This plugin writes to [Riemann](http://riemann.io/) via TCP or UDP. | ||
|
||
### Configuration: | ||
|
||
```toml | ||
# 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} | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is a "Riemann TTL"? Can you link to documentation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I meant a Riemann event TTL. It's described here: http://riemann.io/concepts.html
I clarified the description text a bit.