Application Insights Call Stacks for Dependency Telemetry
=====================================

>The Microsoft Application Insights API SDK enables developers to instrument their .NET application to track events and metrics. 
> -- <cite>[Getting started with Application Insights](http://azure.microsoft.com/en-us/documentation/articles/app-insights-start-monitoring-app-health-usage/)</cite> 

This project extends the Application Insights SDK for .NET to provide call stack information for every dependency collected. This provides useful debugging information for tracking down the source of failing or slow dependencies.

Requirements
---------------
To use this project you must have an application using the [Application Insights SDK for .NET](https://www.nuget.org/packages/Microsoft.ApplicationInsights/).

**NOTE:** This project will use one custom property on each dependency. If you are already sending the maximum amount of custom properties with your dependencies do not install this project.

Installation
------------
- Add the [Application Insights SDK Labs](https://www.myget.org/gallery/applicationinsights-sdk-labs) package source to NuGet
- Add the package `Microsoft.ApplicationInsights.DependencyCallstacks` to your project.
- That's it! Re-build and run your app.

Viewing Call Stacks
---------------------
Using this experiment will change your experience in the Azure Portal to support this new data. When viewing requests in Application Insights that have related dependencies you will now get a view showing the relationship between your dependencies.

Clicking on any dependency in this new view will bring up the dependency details blade, now containing a call stack section complete with class and function names as well as filenames and line numbers, when available.

[<p align="center"><img src="https://cloud.githubusercontent.com/assets/4926351/8881721/bce31612-31f6-11e5-8d62-43ed3bf37ed9.png" width="75%"></p>](https://cloud.githubusercontent.com/assets/4926351/8881721/bce31612-31f6-11e5-8d62-43ed3bf37ed9.png)

To stop getting this experimental experience, remove the package from your project. All new requests will return to the old UI in the Azure Portal.

Known Issues
---------------
- Some asynchronously called dependencies may not have call stack information collected.
- Only the "Just My Code" version of the call stack is collected.

Add readme with usage instructions
Add readme with usage instructions
