aianalytics-client

This project enables quering the Application Insights Analytics API while parsing the results for furthur processing using data analysis tools, such as numpy


Keywords
analytics, applicationinsights, telemetry, appinsights, numpy, IPython
License
MIT
Install
pip install aianalytics-client==0.1.5

Documentation

Application Insights Analytics Client for Python

PyPI version

This project enables quering the Application Insights Analytics API while parsing the results for furthur processing in a simple manner. Application Insights Analytics is a powerful search feature of Application Insights, which allows to query your Applciation Insights telemetry. This module is meant to be used with other data analysis packages, such as numpy and matplotlib. The query result are numpy arrays.

Note: this package is not for sending telemetry to the Application Insights serivce. For that you can use the official python sdk repo.

Requirements

This module was tested on Python 2.7 and Python 3.5. Older versions of Python 3 probably work as well.

For opening the project in Microsoft Visual Studio you will need Python Tools for Visual Studio.

Installation

To install the latest release you can use pip.

$ pip install aianalytics-client

Usage

Once installed, you can query your Application Insights telemetry. Here are a few samples.

Query exceptions from the last 24 hours and print them

from analytics.client import AnalyticsClient
client = AnalyticsClient('<Your app id goes here>', '<You app key goes here>')
result = client.query('exceptions | where timestamp > ago(24h) | project timestamp, type, outerMessage') 
for row in result.row_iterator():
    print ("at {0} there was an exception of type {1} with message {2}".format(row['timestamp'], row['type'], row['outerMessage']))
    # Indexes can also be used instead of column names, e.g.:
    print ("at {0} there was an exception of type {1} with message {2}".format(row[0], row[1], row[2]))

Query average request duration from the last week and plot using matplotlib

from analytics.client import AnalyticsClient
client = AnalyticsClient('<Your app id goes here>', '<You app key goes here>')
result = client.query('requests | where timestamp > ago(7d) | summarize Duration = avg(duration/1000) by bin(timestamp, 1h) | order by timestamp asc') 

import matplotlib.pyplot as plt
plt.plot(result["timestamp"], result["Duration"])
plt.show()