diff --git a/README.rst b/README.rst index 4b110c7..90a2880 100644 --- a/README.rst +++ b/README.rst @@ -54,7 +54,8 @@ Docker Image There will now be a Graphite-API running on ``localhost:8000`` from the container with a default InfluxDB configuration and memcache enabled. Finder expects InfluxDB to be running on ``localhost:8086`` by default. The image will use a supplied ``graphite-api.yaml`` on build, when ``docker build`` is called on an InfluxGraph image. -A dockerfile can also be found under ``docker`` directory of the repository. + +`Docker file `_ used to build container can be found under ``docker`` directory of the repository. Main features ============== @@ -63,11 +64,11 @@ Main features * Dynamically calculated group by intervals based on query date/time range - fast queries regardless of the date/time they span * Configurable per-query aggregation functions by regular expression pattern * Configurable per-query retention policies by query date/time range. Automatically use pre-calculated downsampled data in a retention policy for historical data -* In-memory index for Graphite metric path queries +* In-memory index for Graphite metric path queries with on-disk persistance * Multi-fetch enabled - fetch data for multiple metrics with one query to InfluxDB * Memcached integration * Python 3 and PyPy compatibility -* Good performance even with extremely large number of metrics in the DB - generated queries are guaranteed to be have ``O(1)`` performance characteristics +* Good performance even with extremely large number of metrics in the DB - generated queries are guaranteed to have ``O(1)`` performance characteristics Google User's Group ===================== @@ -82,13 +83,14 @@ Goals * Expose native InfluxDB line protocol ingested data via the Graphite API * Clean, readable code with complete documentation for public endpoints * Complete code coverage with both unit and integration testing. Code has `>90%` test coverage and is integration tested against a real InfluxDB service +* Good performance at large scale. InfluxGraph is used in production with good performance on InfluxDB nodes with cardinality exceeding 5M and a write rate of over 5M metrics/minute or 66K/second. -The two three points provide both +The first three goals provide both - A backwards compatible migration path for existing Graphite installations to use InfluxDB as a drop-in storage back-end replacement with no API client side changes required, meaning existing Grafana or other dashboards continue to work as-is. - A way for native InfluxDB collection agents to expose their data via the *Graphite API* which allows the use of any Graphite API talking tool, the plethora of Graphite API functions, custom functions, functions across series, multi-series plotting and functions via Graphite glob expressions et al. -As of this time of writing, no alternatives exist with similar functionality and compatibility. +As of this time of writing, no alternatives exist with similar functionality, performance and compatibility. Non-Goals ========== @@ -114,7 +116,7 @@ Even data written to InfluxDB by native InfluxDB API clients can be exposed as G To make use of tagged InfluxDB data, the finder needs to know how to generate a Graphite metric path from the tags used by InfluxDB. -The easiest way to do this is to use the Graphite plugin in InfluxDB with a configured template which can be used as-is in `InfluxGraph`_ configuration - see `Full Configuration Example`_ section for details. This presumes existing collection agents are using the Graphite line protocol to write to InfluxDB via its Graphite input service. +The easiest way to do this is to use the Graphite service in InfluxDB with configured templates which can be used as-is in `InfluxGraph`_ configuration - see `Full Configuration Example`_ section for details. This presumes existing collection agents are using the Graphite line protocol to write to InfluxDB via its Graphite input service. If, on the other hand, native `InfluxDB`_ metrics collection agents like `Telegraf `_ are used, that data can too be exposed as Graphite metrics by writing appropriate template(s) in Graphite-API configuration alone. @@ -135,13 +137,14 @@ Pending implementation of a feature request that will allow InfluxDB to select a retention_policies: