ccpgames/aggregateD

Name: aggregateD

Owner: CCP Games

Description: A dogstatsD inspired metrics and event aggregation daemon for InfluxDB.

Created: 2015-05-13 13:47:08.0

Updated: 2018-03-11 22:03:03.0

Pushed: 2016-09-03 03:30:43.0

Homepage:

Size: 108

Language: Go

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Build Status

aggregateD

aggregateD is a network daemon which listens for metrics including gauges, counters, histograms, sets and events, sent over http and sends aggregates to InfluxDB. InfluxDB is a promising, but young time series database, aggregateD is intended to bring dogstatsD like functionality to Influx.

aggregateD can accept metrics either as JSON over HTTP or in the dogstatsD format sent over UDP. Therefore, aggregateD can be deployed in the same manner as either satsD or dogstatsD. That is, it can either run on the same host as instrumented applications or it can run on a dedicated host that multiple clients communicate with.

Usage and Configuration

Usuage: ./aggregated -config aggregated.json

aggregateD requires a minimal config in order to specify the InfluxDB server and its credentials. Config can either be provided as a json file or as a yaml file. An example config is as follows:

ept metrics via HTTP
tJSON: true
ept metrics via plain StatsD
tStatsD: true
ept metrics via DogStatsD
tDogStatsD: true

mit metrics to InfluxDB every 60 seconds
hInterval: 60

put metrics via InfluxDB
utInfluxDB: true

luxDB settings
ux:
url: http://localhost:8083
username: username
password: pass123
defaultDB: myDB

te to a redis list falback if InfluxDB is unavailable
sOnInfluxFail: true
sOutputURL: redis:6379

aggregateD exposes two web service endpoints: /events and /metrics on port 8083 by default. aggregateD accepts json encoded metrics which take the form of:


"name":             "requests",
"host":             "httpd.example.com",
"timestamp":        1461204545  
"type":             "gauge",
"value":            67,
"sampling":         1,
"secondaryValues":  {"value1: "my.host"},
"tags":             {"exampleTag1": 5, "exampleTag2": "value"}

Similarly, events are represented in the following format:


"name":           "timeout",
"text":           "a worker thread timedout",
"host":           "node4.example.com",
"alerttype":      "warning",
"priority":       "normal",
"timestamp":      1461204545
"aggregationKey": "worker-timeout",
"sourceType":     "default",
"tags":           {"exampleTag1": 5, "exampleTag2": "value"},


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.