Graphite-API
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