Skip to main content

Telegraf_pyplug is a software library to simplify and standardize the development of python input plugins for the Telegraf

Project description

Build Status PyPI PyPI - License Python 3.6 Python 3.7 Python 3.8

Telegraf_PyPlug

Problem

Telegaf is a plugin-driven agent for collecting, processing, aggregating, and writing metrics. Custom input plugins collect metrics from the system, services, or 3rd party APIs and outputs them in the InfluxDB line protocol format.

  • Printing metrics in the InfluxDB line protocol format is a bit complicated, and it's easy to make mistakes.
  • There is no standard way to develop Telegraf plugins in Python. Maintaining a lot of plugins designed in different ways becomes hell.

Solution

Telegraf_pyplug is a free and open-source software library to simplify and standardize the development of python input plugins for the Telegraf.

Usage

One field:

from telegraf_pyplug.main import print_influxdb_format


METRIC_NAME: str = 'jumping_sheep'
METRIC_COUNT: int = 321


def main() -> None:
    print_influxdb_format(measurement=METRIC_NAME, fields={'count': METRIC_COUNT})


if __name__ == '__main__':
    main()

Outputs:

jumping_sheep count=321

add_timestamp argument:

from telegraf_pyplug.main import print_influxdb_format


METRIC_NAME: str = 'jumping_sheep'
METRIC_COUNT: int = 321


def main() -> None:
    print_influxdb_format(measurement=METRIC_NAME, fields={'count': METRIC_COUNT}, add_timestamp=True)


if __name__ == '__main__':
    main()

Outputs:

jumping_sheep count=321 1599846911207090944

One field, One tag:

from telegraf_pyplug.main import print_influxdb_format


METRIC_NAME: str = 'jumping_sheep'
METRIC_COUNT: int = 321
METRIC_COLOR: str = 'white'


def main() -> None:
    print_influxdb_format(measurement=METRIC_NAME, tags={'color': METRIC_COLOR}, fields={'count': METRIC_COUNT})


if __name__ == '__main__':
    main()

Outputs:

jumping_sheep,color=white count=321

Multiple fields and tags, nano_timestamp argument:

from datetime import datetime
from typing import Dict

from telegraf_pyplug.main import print_influxdb_format, datetime_tzinfo_to_nano_unix_timestamp


METRIC_NAME: str = 'jumping_sheep'
METRIC_FIELDS: Dict[str, int] = {'count': 321, 'height_m': 1.5}
METRIC_TAGS: Dict[str, str] = {'color': 'white', 'name': 'sweater'}
METRIC_DATE: str = '01.01.2020 03:00:00+0300'


def main() -> None:
    date: datetime = datetime.strptime(METRIC_DATE, '%d.%m.%Y %H:%M:%S%z')

    print_influxdb_format(
        measurement=METRIC_NAME,
        tags=METRIC_TAGS,
        fields=METRIC_FIELDS,
        nano_timestamp=datetime_tzinfo_to_nano_unix_timestamp(date)
    )


if __name__ == '__main__':
    main()

Outputs:

jumping_sheep,color=white,name=sweater count=321,height_m=1.5 1577836800000000000

More advanced examples can be found in the examples_dir.

Installation

Telegraf_PyPlug can easily be installed with pip.

Mac/Linux

pip install --upgrade telegraf_pyplug

Windows

python -m pip install --upgrade telegraf_pyplug

License

Telegraf_PyPlug is under MIT license. See the LICENSE file for the full license text.

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

telegraf_pyplug-0.3.0.tar.gz (8.2 kB view details)

Uploaded Source

File details

Details for the file telegraf_pyplug-0.3.0.tar.gz.

File metadata

  • Download URL: telegraf_pyplug-0.3.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for telegraf_pyplug-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d0687b7e3c137eaf92f77395f605d2998199eee5e48f0ed6a1a1e80da0fa7ba1
MD5 51d330a26c8389ea170c870bd04a86c1
BLAKE2b-256 2fc6abe6080d17fe3a0d6b0a8206fec191c5650a0addb5766115e0caaedbd674

See more details on using hashes here.

Supported by

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