This is a statsD backend that will send metrics aggregated in statsD to an instance of Blueflood.
The Blueflood statsD endpoint is new and has experimental status.
See blueflood/pull/201.
Assumed endpoint is http://host:port/v1.0/:tenantId/experimental/metrics/statsd.
Your statsD configuration file will need a blueflood
section similar to the way you would have one for graphite or the console if you were using those backends.
Here are the values that are currently honored:
tenantId
: (required) This tenantId will be used to publish metrics to Blueflood.endpoint
: (required) The location of the API. e.g.: 'http://metrics.example.com:8080'
Example configuration:
"blueflood": {
"tenantId": "333333",
"endpoint": "http://127.0.0.1:19000"
},
You can also send metrics into the Rackspace Cloud Metrics API service by adding the follwing auth section to the configuration:
"blueflood": {
"tenantId": "333333",
"endpoint": "http://iad.metrics-ingest.api.rackspacecloud.com:80",
"authModule": "./auth",
"authClass": "RaxAuth",
"authParams": {
"raxusername": "my_cloud_user_name",
"raxapikey": "my_rax_api_key"
}
}
If you happen to use some other Openstack identity service, or even something home-grown, you can create your own
authenticator, just make sure to implement the methods indicated by auth.EmptyAuth
.
https://github.com/gdusbabek/blueflood-statsd-backend/wiki/Installing-the-Blueflood-Statsd-Backend
Payloads sent to Blueflood are currently formatted like this:
{
"tenantId": "xxxxxxxx",
"timestamp": 111111111,
"gauges": [
{
"name": "gauge_name",
"value": 42
},
{
"name":"another_gauge",
"value": 4343
}
],
"counters": [
{
"name": "counter_name",
"value": 32,
"rate": 2.32
},
{
"name": "another_counter",
"value": 4424,
"rate": 52.1
}
],
"timers": [
{
"name": "timer_name",
"count": 32,
"rate": 2.3,
"min": 1,
"max": 5,
"sum": 21,
"avg": 2.1,
"median": 3,
"std": 1.01,
"percentiles": {
"999": 1.22222,
"98": 1.11111
},
"histogram": {
"bin_50": 0,
"bin_100": 0,
"bin_inf": 0
}
}
],
"sets": [
{
"name": "set_name",
"values": ["foo", "bar", "baz"]
},
{
"name": "another_set",
"values": ["boo", "far", "zab"]
}
]
}
This code is licensed under the Apache 2.0 open source license.