Skip to main content

Python Client for Netuitive Cloud

Project description

===============================
Netuitive Python Client
===============================

|BuildStatus|_ |CoverageStatus|_

.. |BuildStatus| image:: https://travis-ci.org/Netuitive/netuitive-client-python.svg?branch=master
.. _BuildStatus: https://travis-ci.org/Netuitive/netuitive-client-python

.. |CoverageStatus| image:: https://coveralls.io/repos/github/Netuitive/netuitive-client-python/badge.svg?branch=master
.. _CoverageStatus: https://coveralls.io/github/Netuitive/netuitive-client-python?branch=master

| The Netuitive Python Client allows you to push data to `Netuitive <https://www.netuitive.com>`_ using Python. Netuitive provides an adaptive monitoring and analytics platform for cloud infrastructure and web applications.

| For more information, check out the `help docs <https://help.netuitive.com>`_ or contact `support <mailto:support@netuitive.com>`_.

The Netuitive Python Client can...

* ...create an `element <https://help.netuitive.com/Content/Performance/Elements/elements.htm>`_ in Netuitive with the following data:
* Element Name
* Attributes
* Tags
* Metric Samples
* Element relations
* Location
* Metric Tags

* ...create an `event <https://help.netuitive.com/Content/Events/events.htm>`_ in Netuitive with the following data:
* Element Name
* Event Type
* Title
* Message
* Level
* Tags
* Source

Using the Python Netuitive Client
----------------------------------

Setup the Client
~~~~~~~~~~~~~~~~~

``ApiClient = netuitive.Client(api_key='<my_api_key>')``


Setup the Element
~~~~~~~~~~~~~~~~~~

``MyElement = netuitive.Element()``

Add an Attribute
~~~~~~~~~~~~~~~~~

``MyElement.add_attribute('Language', 'Python')``

Add an Element relation
~~~~~~~~~~~~~~~~~~~~~~~~

``MyElement.add_relation('my_child_element')``

Add a Tag
~~~~~~~~~~

``MyElement.add_tag('Production', 'True')``

Add a Metric Sample
~~~~~~~~~~~~~~~~~~~~

``MyElement.add_sample('cpu.idle', 1432832135, 1, host='my_hostname')``

Add a Metric Sample with a Sparse Data Strategy
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``MyElement.add_sample('app.zero', 1432832135, 1, host='my_hostname', sparseDataStrategy='ReplaceWithZero')``

Add a Metric Sample with unit type
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``MyElement.add_sample('app.requests', 1432832135, 1, host='my_hostname', unit='requests/s')``

Add a Metric Sample with utilization tag
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``MyElement.add_sample('app.requests', 1432832135, 1, host='my_hostname', tags=[{'utilization': 'true'}])``

Add a Metric Sample with min/max values
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``MyElement.add_sample('app.percent_used', 1432832135, 50, host='my_hostname', unit='percent', min=0, max=100)``

Send the Samples
~~~~~~~~~~~~~~~~~

``ApiClient.post(MyElement)``

Remove the samples already sent
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``MyElement.clear_samples()``

Create an Event
~~~~~~~~~~~~~~~~

``MyEvent = netuitive.Event(hst, 'INFO', 'test event','this is a test message', 'INFO')``

Add a Custom Check
~~~~~~~~~~~~~~~~

``MyCheck = netuitive.Check('heartbeat', 'element', 60)``

POST to ``/check/{apiId}/{checkName}/{elementFqn}/{ttl}``

See our `checks documentation <https://docs.metricly.com/alerts-notifications/checks/custom-checks/>`_ for more information about custom check parameters and a cURL example.

Send the Event
~~~~~~~~~~~~~~~

``ApiClient.post_event(MyEvent)``

Check that our local time is set correctly (returns True/False)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``ApiClient.time_insync()``

Docker Example
----------
Included in this project is an example python script (`example/example.py`) which can be built and run within a Docker container. To send test data into your Netuitive environment run the following:

::

docker build -t netuitive-client-python .
docker run -e CUSTOM_API_KEY=<custom-api-key> netuitive-client-python

::

Make sure to use your **Custom** Netuitive datasource API key.

Copyright and License
---------------------

Copyright 2015-2016 Netuitive, Inc. under [the Apache 2.0 license](LICENSE).




History
-------

0.2.3 (2017-02-14)
---------------------

* test_check_time_offset should not be timezone sensitive
* add Example Script Dockerfile
* Handle 403 and other HTTP errors better


0.2.2 (2016-09-30)
---------------------

* fix millisecond timestamps

0.2.1 (2016-09-30)
---------------------

* add support for millisecond timestamps

0.2.0 (2016-07-22)
---------------------

* sanitize metric names

0.1.6 (2016-05-20)
---------------------

* fix handling of http errors

0.1.5 (2016-05-03)
---------------------

* fix the internal version number
* improve handling of http errors

0.1.4 (2016-04-07)
---------------------

* improve HTTP response error handling
* Update Development Status to 4 - Beta

0.1.3 (2016-03-21)
---------------------

* Add user agent to time offset check
* Better handling of null element ids

0.1.2 (2016-03-09)
---------------------

* Fix server time offset check


0.1.1 (2016-03-08)
---------------------

* Add server time offset check
* Fix default event time


0.1.0 (2016-01-27)
---------------------

* Add metric tag support
* Add min/max/avg/sum/cnt support
* Add Element location support
* Test re-factor
* Increase test coverage
* Fix for event support


0.0.9 (2015-12-03)
---------------------

* Add custom client string
* Add relation support


0.0.8 (2015-10-16)
---------------------

* Add event support
* Add Python 3 support


0.0.7 (2015-06-23)
---------------------

* Fix for Preventing duplicate metrics


0.0.6 (2015-06-23)
---------------------

* Add support for Spare Data Strategy and Unit settings for Metrics
* Prevent duplicate metrics
* Documentation improvements


0.0.5 (2015-06-12)
---------------------

* Element type is now easier to set


0.0.3 (2015-06-01)
---------------------

* Fixes for API URL setting


0.0.2 (2015-05-28)
---------------------

* First release on PyPI.


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

netuitive-0.3.4.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

netuitive-0.3.4-py2.py3-none-any.whl (10.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file netuitive-0.3.4.tar.gz.

File metadata

  • Download URL: netuitive-0.3.4.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15

File hashes

Hashes for netuitive-0.3.4.tar.gz
Algorithm Hash digest
SHA256 9d19ace4fb3fd2c8a88bd03ccff25ec3083c7bf193ce1489f804ebd0f62b278b
MD5 111447ec7d1c294ebfda6daf6b5c75a7
BLAKE2b-256 66c04e1fabde8b41fc983036651cea91fbbe4815b878e0d1a6ef9bf8d798c209

See more details on using hashes here.

File details

Details for the file netuitive-0.3.4-py2.py3-none-any.whl.

File metadata

  • Download URL: netuitive-0.3.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15

File hashes

Hashes for netuitive-0.3.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 644b96da152c80dec24615702e8a522a795869b87316236c26d58667171d13f2
MD5 b7faa2dd3f2aa24f6646c5c410dccdb3
BLAKE2b-256 5f9be690bf472c1d5955acabaa82f37000c459138043b3a27c24eed4ca202a42

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