Metadata-Version: 2.0
Name: netuitive
Version: 0.1.4
Summary: Python Client for Netuitive Cloud
Home-page: https://github.com/netuitive/netuitive-client-python
Author: Netuitive
Author-email: python@netuitive.com
License: Apache License 2.0
Keywords: netuitive
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5

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

|BuildStatus|_

.. |BuildStatus| image:: https://travis-ci.org/Netuitive/netuitive-client-python.svg?branch=master
.. _BuildStatus: https://travis-ci.org/Netuitive/netuitive-client-python
.. image:: https://coveralls.io/repos/github/Netuitive/netuitive-client-python/badge.svg?branch=master :target: https://coveralls.io/github/Netuitive/netuitive-client-python?branch=master

What is Netuitive monitoring?
-----------------------------
Netuitive provides an adaptive monitoring and analytics platform for cloud infrastructure and web applications.
Netuitive learns behaviors and utilizes pre-set dynamic policies that reduce the manual effort and human-guesswork typically required to monitor systems and applications.
This unique technology enables IT operations and developers to automate performance analysis, detect relevant anomalies, and determine efficient capacity utilization.

Features
--------

* Create a Netuitive Element with the following data:
    * Element Name
    * Attributes
    * Tags
    * Metric Samples
    * Element relations
    * Location
    * Metric Tags

* Create a Netuitive Event with the following data
    * Element Name
    * Event Type
    * Title
    * Message
    * Level
    * Tags
    * Source


Usage
-----

###### 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','big old test message', 'INFO')``

###### Send the Event

``ApiClient.post_event(MyEvent)``

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

``ApiClient.time_insync()``

Example
-------


    import netuitive

    ApiClient = netuitive.Client(api_key='aaaa9956110211e594444697f922ec7b')

    MyElement = netuitive.Element()

    MyElement.add_attribute('Language', 'Python')
    MyElement.add_attribute('app_version', '7.0')

    MyElement.add_relation('my_child_element')

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

    MyElement.add_sample('app.error', 1432832135, 1, host='appserver01')
    MyElement.add_sample('app.request', 1432832135, 10, host='appserver01')

    ApiClient.post(MyElement)

    MyElement.clear_samples()

    MyEvent = netuitive.Event('appserver01', 'INFO', 'test event','big old test message', 'INFO')

    ApiClient.post_event(MyEvent)

    if ApiClient.time_insync():
        print('we have time sync with the server')

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

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




History
-------

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.


