Skip to main content

Influx Object Package

Project description

Influx Point

Description

This module enables the creation of an influx point object that can be transformed into either a JSON or LineProtocol format.

Features

InfluxDB Line Protocol Format

The InfluxDB Line Protocol is a text-based format designed for the efficient writing of time-series data into InfluxDB. It organizes the data points with timestamps, measurement names, fields (key-value pairs representing the data), and tags (optional key-value pairs used to store metadata that describes the data). The format is highly optimized for time-series data, enabling quick parsing and writing. A typical line in this format looks like this:

measurementName,tagKey=tagValue fieldKey="fieldValue" 1465839830100400200

  • measurementName: Identifies the measurement.
  • tagKey=tagValue: Zero or more tag sets separated by commas. Tags are optional but recommended for indexing.
  • fieldKey="fieldValue": At least one field set, with multiple fields separated by commas. Fields are the actual data points.
  • 1465839830100400200: An optional timestamp for the data point. If not specified, the server's current time is used.

JSON Format

The JSON format offers a more flexible way to represent data.

{
    "measurement": "measurement",
    "tags": {"tag1": "value1"},
    "fields": {"field1": 1, "field2": 2},
    "timestamp": 1609455600,
}

Usage

    from influxobject.influxpoint import InfluxPoint

    influx_point = InfluxPoint()
    influx_point.set_measurement("measurement")
    influx_point.set_tags({"tag1": "value1"})
    influx_point.set_fields({"field1": 1, "field2": 2})
    influx_point.set_timestamp(datetime.datetime(2021, 1, 1))\
    
    print(influx_point.to_json())

        # {
        #     "measurement": "measurement",
        #     "tags": {"tag1": "value1"},
        #     "fields": {"field1": 1, "field2": 2},
        #     "timestamp": 1609455600,
        # }
        
    print(influx_point.to_line_protocol())

        # "measurement,tag1=value1 field1=1,field2=2 1609455600"

All functinoalities of the InfluxPoint object are listed below:

    import influxobject
    x = influxobject.InfluxPoint()
    x.
        x.add_field(..., ...)
        x.from_json(...)
        x.remove_field(...)
        x.set_measurement(...)
        x.to_line_protocol()
        x.add_tag(..., ...)
        x.remove_tag(...)
        x.set_tags(...)
        x.validate()
        x.parse_line_protocol(...)
        x.set_fields(...)
        x.set_timestamp(...)
        x.to_json()

Installation

To install the package use the pip package manager

    pip install influxobject

Development

Tox is used as the test runner for this project. To run the entire tox suite use the following command:

    tox

To only run the tests under python 3.9

    tox -e py39

Build

    python setup.py sdist

Publish

    twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

influxobject-0.0.8.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

influxobject-0.0.8-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file influxobject-0.0.8.tar.gz.

File metadata

  • Download URL: influxobject-0.0.8.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.12 Linux/5.15.154+

File hashes

Hashes for influxobject-0.0.8.tar.gz
Algorithm Hash digest
SHA256 4cdba5b10c983aaf064fbe4fd3711331b5ff2d372c0d7e0df80504c6f9dea2af
MD5 5fbcaba426d71f0d75c0a94c43072d5e
BLAKE2b-256 6aac7796dd28ed90b9482856f221676cd9ba7bb0f90aff3e9817eac94bc707f4

See more details on using hashes here.

File details

Details for the file influxobject-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: influxobject-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.12 Linux/5.15.154+

File hashes

Hashes for influxobject-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 01aa9b18a63abd54c701c39f4ca379c552d0aa5cf67cb046d8a055454f252244
MD5 3023446095e5c7ef2f6557e57097484a
BLAKE2b-256 b80df839ff5f0c2a655593d96586441fa9e31829e467bf64afa3efd0493e62f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page