graphite-api
graphite-api copied to clipboard
Graphite-web, without the interface. Just the rendering HTTP API.
Graphite-API
.. image:: https://travis-ci.org/brutasse/graphite-api.svg?branch=master :alt: Build Status :target: https://travis-ci.org/brutasse/graphite-api
.. image:: https://img.shields.io/coveralls/brutasse/graphite-api/master.svg :alt: Coverage Status :target: https://coveralls.io/r/brutasse/graphite-api?branch=master
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.
.. _On readthedocs.org: https://graphite-api.readthedocs.io/en/latest/
Hacking
Tox
_ is used to run the tests for all supported environments. To get started
from a fresh clone of the repository:
.. code-block:: bash
pip install tox
tox
.. _Tox: https://testrun.org/tox/