This project enables querying the Application Insights Analytics API while parsing the results for further processing in a simple manner. Application Insights Analytics is a powerful search feature of Application Insights, which allows to query your Application 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 service. For that you can use the official python sdk repo.
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.
To install the latest release you can use pip.
$ pip install aianalytics-client
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()