Skip to content

brutasse/graphite-api

Folders and files

NameName
Last commit message
Last commit date
Mar 7, 2014
Jun 28, 2017
May 23, 2016
Oct 24, 2017
Oct 18, 2017
Mar 20, 2014
Jul 20, 2015
Mar 7, 2014
Oct 18, 2017
Mar 6, 2014
Aug 15, 2016
Mar 6, 2014
Mar 6, 2014
Sep 24, 2016
Mar 6, 2014
Feb 28, 2017
Jun 15, 2017
Oct 18, 2017
Oct 18, 2017
Aug 22, 2014

Repository files navigation

Graphite-API

Build Status Coverage Status

Graphite-web, without the interface. Just the rendering HTTP API.

This is a minimalistic API server that replicates the behavior of Graphite-web. I removed everything I could and simplified as much code as possible while keeping the basic functionality.

Implemented API calls:

  • /metrics/find
  • /metrics/expand
  • /render

No-ops:

  • /dashboard/find
  • /dashboard/load/<name>
  • /events/get_data

Difference from graphite-web

  • Stateless. No need for a database.
  • No Pickle rendering.
  • No remote rendering.
  • JSON data in request bodies is supported, additionally to form data and querystring parameters.
  • Ceres integration will be as an external backend.
  • Compatibility with python 2 and 3.
  • Easy to install and configure.

Goals

  • Solid codebase. Strict flake8 compatibility, good test coverage.
  • Ease of installation/use/configuration.
  • Compatibility with the original Graphite-web API and 3rd-party dashboards.

Non-goals

  • Support for very old Python versions (Python 2.6 is still supported but maybe not for long).
  • Built-in support for every metric storage system in the world. Whisper is included by default, other storages are added via 3rd-party backends.

Documentation

On readthedocs.org or in the docs/ directory.

Hacking

Tox is used to run the tests for all supported environments. To get started from a fresh clone of the repository:

pip install tox
tox