InfluxDB-Python is a client for interacting with InfluxDB.
InfluxDB is an open-source distributed time series database, find more about InfluxDB at http://influxdb.com/
The 1.0.0 version of this library now supports InfluxDB 0.9. Please note that InfluxDB 0.9 is still pre-release software. For stability, you should use the influxdb.influxdb08
module in conjunction with InfluxDB 0.8.
Influxdb >=0.9.0 brings many breaking changes to the API. InfluxDB 0.8.X users may use the legacy client by using from influxdb.influxdb08 import InfluxDBClient
instead.
Install, upgrade and uninstall InfluxDB-Python with these commands:
$ pip install influxdb $ pip install --upgrade influxdb $ pip uninstall influxdb
On Debian/Ubuntu, you can install it with this command:
$ sudo apt-get install python-influxdb
The InfluxDB-Python distribution is supported and tested on Python 2.7, 3.2, 3.3, 3.4, PyPy and PyPy3.
Main dependency is:
- Requests: HTTP library for human beings (http://docs.python-requests.org/)
Additional dependencies are:
- pandas: for writing from and reading to DataFrames (http://pandas.pydata.org/)
- Sphinx: Tool to create and manage the documentation (http://sphinx-doc.org/)
- Nose: to auto-discover tests (http://nose.readthedocs.org/en/latest/)
- Mock: to mock tests (https://pypi.python.org/pypi/mock)
InfluxDB-Python documentation is available at http://influxdb-python.readthedocs.org
You will need Sphinx installed to generate the documentation.
The documentation can be generated by running:
$ tox -e docs
Generated documentation can be found in the docs/build/html/ directory.
Here's a basic example (for more see the examples directory):
$ python >>> from influxdb import InfluxDBClient >>> json_body = [ { "measurement": "cpu_load_short", "tags": { "host": "server01", "region": "us-west" }, "timestamp": "2009-11-10T23:00:00Z", "fields": { "value": 0.64 } } ] >>> client = InfluxDBClient('localhost', 8086, 'root', 'root', 'example') >>> client.create_database('example') >>> client.write_points(json_body) >>> result = client.query('select value from cpu_load_short;') >>> print("Result: {0}".format(result))
If you want to connect to a cluster, you could initialize a InfluxDBClusterClient
:
$ python >>> from influxdb import InfluxDBClusterClient >>> cc = InfluxDBClusterClient(hosts = [('192.168.0.1', 8086), ('192.168.0.2', 8086), ('192.168.0.3', 8086)], username='root', password='root', database='example')
InfluxDBClusterClient
has the same methods as InfluxDBClient
, it basically is a proxy to multiple InfluxDBClients.
Make sure you have tox by running the following:
$ pip install tox
To test influxdb-python with multiple version of Python, you can use Tox:
$ tox
For issues with, questions about, or feedback for InfluxDB, please look into our community page: http://influxdb.com/community/.
All development is done on Github. Use Issues to report problems or submit contributions.
The TODO/Roadmap can be found in Github bug tracker: influxdata#109
The source code is currently available on Github: https://github.com/influxdb/influxdb-python