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
/metrics/search
(removed strangekeep_query_pattern
parameter)/render
No-ops:
/dashboard/find
/dashboard/load/<name>
/events/get_data
Additional API calls:
/index
(POST
orPUT
only): rebuilds the search index by recursively querying the storage backends for available paths. Replaces graphite-web'sbuild-index
command-line script.
- Stateless. No need for a database.
- No caching. Rendering is live.
- No Pickle.
- 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.
- Solid codebase. Strict flake8 compatibility, good test coverage.
- Ease of installation/use/configuration.
- Compatibility with the original Graphite-web API and 3rd-party dashboards.
- 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.
On readthedocs.org or in the docs/
directory.
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