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/