Utility for analyzing graphite metrics. Experimental package.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
analyze
data
input
output
vendor/github.com
.gitignore
.travis.yml
Gopkg.lock
Gopkg.toml
LICENSE.md
README.md
main.go
threesigma.png

README.md

Anode

Build Status

Anode is a tool for experimenting with different analysis algorithms on metrics and other time series. You can read an extended introduction to anode here.

Data analysis starts with getting to know your data. The overarching goal of anode is to advance the open-source offerings for metrics analysis by creating a proving ground for different approaches.

Anode ships with a Graphite input plugin, capable of fetching a named metric from graphite and streaming updates to registered analysis plugins. Each analysis plugin then streams its result to output plugins.

Just learning about metrics analysis? Have a look at this excellent talk on anomaly detection for metrics.

Example

A three sigma analyzer is included. This works best for data with a normal (gaussian) distribution.

go get github.com/mattrco/anode
anode -metric=app.latency

(Other flags exist; see here).

This will fetch and process the last 24 hours of data. New metrics will appear in graphite under anode.threesig which you can then plot alongside your existing metric. The screenshot below shows the original metric (lilac) with anomalous values highlighted in orange.

Screenshot of Three Sigma analyzer

Contributions

Contributions welcome! Please open an issue to discuss what you'd like to work on.

Related projects and acknowledgement

mozilla-services/heka

Heka is a more general data collection and processing system, processing much more than time series. Its data pipeline inspired anode's architecture.

etsy/skyline

Skyline is an anomaly detection system for time series data.

Key differences:

  • Skyline is production-ready and more work to get set up
  • Fairly rigid decision logic for determining whether latest updates to a series are anomalous. Algorithms each return a boolean and majority vote wins. There's no way to apply different analyses to different metrics, which is a key design point of anode.

Copyright Notice and License

Copyright 2014 Matthew ("Matt") Cottingham

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.