Buffering InfluxDB client and mixin for Tornado applications
Project description
Buffering InfluxDB client and mixin for Tornado applications
Installation
sprockets-influxdb is available on the Python package index and is installable via pip:
pip install sprockets-influxdb
Documentation
Documentation is available at sprockets-influxdb.readthedocs.io.
Configuration
Configuration can be managed by specifying arguments when invoking sprockets_influxdb.install or by using environment variables.
For programmatic configuration, see the sprockets_influxdb.install documentation.
The following table details the environment variable configuration options.
Variable |
Definition |
Default |
---|---|---|
INFLUXDB_SCHEME |
The URL request scheme for making HTTP requests |
https |
INFLUXDB_HOST |
The InfluxDB server hostname |
localhost |
INFLUXDB_PORT |
The InfluxDB server port |
8086 |
INFLUXDB_USER |
The InfluxDB server username |
|
INFLUXDB_PASSWORD |
The InfluxDB server password |
|
INFLUXDB_ENABLED |
Set to false to disable InfluxDB support |
true |
INFLUXDB_INTERVAL |
How many milliseconds to wait before submitting measurements when the buffer has fewer than INFLUXDB_TRIGGER_SIZE measurements. |
60000 |
INFLUXDB_MAX_BATCH_SIZE |
Max # of measurements to submit in a batch |
10000 |
INFLUXDB_MAX_BUFFER_SIZE |
Limit of measurements in a buffer before new measurements are discarded. |
25000 |
INFLUXDB_TRIGGER_SIZE |
The number of metrics in the buffer to trigger the submission of a batch. |
60000 |
INFLUXDB_TAG_HOSTNAME |
Include the hostname as a tag in the measurement |
true |
Mixin Configuration
The sprockets_influxdb.InfluxDBMixin class will automatically tag the measurement if the ENVIRONMENT environment variable is set with the environment that the application is running in. Finally, if you are using the Sprockets Correlation Mixin, measurements will automatically be tagged with the correlation ID for a request.
Example
In the following example, a measurement is added to the example InfluxDB database with the measurement name of measurement-name. When the ~tornado.ioloop.IOLoop is started, the stop method is invoked, calling ~sprockets_influxdb.shutdown. ~sprockets_influxdb.shutdown ensures that all of the buffered metrics are written before the IOLoop is stopped.
import logging
import sprockets_influxdb as influxdb
from tornado import ioloop
logging.basicConfig(level=logging.INFO)
io_loop = ioloop.IOLoop.current()
influxdb.install(io_loop=io_loop)
measurement = influxdb.Measurement('example', 'measurement-name')
measurement.set_tag('foo', 'bar')
measurement.set_field('baz', 1.05)
influxdb.add_measurement(measurement)
def stop():
influxdb.shutdown()
io_loop.stop()
io_loop.add_callback(stop)
io_loop.start()
Requirements
Version History
Available at https://sprockets-influxdb.readthedocs.org/en/latest/history.html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sprockets_influxdb-2.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff398fef43eed56277506cd5ecfa6f9ff21dc3ae7d796a07f76c9b796da1d21e |
|
MD5 | c77a48138ac39977954a890be84456dc |
|
BLAKE2b-256 | b13e6f357f083f53702c98fb707b1dc7ca27bfbb8cdb167dda009ec0e8c27f65 |