aioinflux icon indicating copy to clipboard operation
aioinflux copied to clipboard

Asynchronous Python client for InfluxDB

aioinflux

.. image:: https://img.shields.io/circleci/project/github/gusutabopb/aioinflux/master.svg :target: https://circleci.com/gh/gusutabopb/aioinflux :alt: CI status

.. image:: https://img.shields.io/codecov/c/github/gusutabopb/aioinflux.svg :target: https://codecov.io/gh/gusutabopb/aioinflux :alt: Coverage

.. image:: https://img.shields.io/pypi/v/aioinflux.svg :target: https://pypi.python.org/pypi/aioinflux :alt: PyPI package

.. image:: https://img.shields.io/pypi/pyversions/aioinflux.svg :target: https://pypi.python.org/pypi/aioinflux :alt: Supported Python versions

.. image:: https://readthedocs.org/projects/aioinflux/badge/?version=stable :target: https://aioinflux.readthedocs.io/en/stable/?badge=stable :alt: Documentation status

Asynchronous Python client for InfluxDB. Built on top of aiohttp and asyncio_. Aioinflux is an alternative to the official InfluxDB Python client.

Aioinflux supports interacting with InfluxDB in a non-blocking way by using aiohttp. It also supports writing and querying of Pandas dataframes, among other handy functionality.

.. _Pandas: http://pandas.pydata.org/ .. _InfluxDB: http://influxdata.com/ .. _asyncio: https://docs.python.org/3/library/asyncio.html .. _aiohttp: https://github.com/aio-libs/aiohttp

Please refer to the documentation_ for more details.

Installation

Python 3.6+ is required. You also need to have access to a running instance of InfluxDB.

.. code:: bash

pip install aioinflux

Quick start

This sums most of what you can do with aioinflux:

.. code:: python

import asyncio
from aioinflux import InfluxDBClient

point = {
    'time': '2009-11-10T23:00:00Z',
    'measurement': 'cpu_load_short',
    'tags': {'host': 'server01',
             'region': 'us-west'},
    'fields': {'value': 0.64}
}

async def main():
    async with InfluxDBClient(db='testdb') as client:
       await client.create_database(db='testdb')
       await client.write(point)
       resp = await client.query('SELECT value FROM cpu_load_short')
       print(resp)


asyncio.get_event_loop().run_until_complete(main())

See the documentation_ for more detailed usage.

.. _documentation: http://aioinflux.readthedocs.io/en/stable/