Announcing Application Insights Preview

Announcing Application Insights Preview

Rate This
  • Comments 18

Many folks have noticed I had practically stopped blogging. I have been working on one of the products Brian announced at the launch: Application Insights and as this service wasn’t in preview until today have not been able to blog about it.

For those of you that weren’t able to make the launch, Application Insights is a set of services that provide actionable insight into a production application. This data is then integrated back into the development tools and process. These services include:

  1. Out-side-in availability monitoring
  2. Understanding application and system internals with Application Performance Monitoring
  3. Data driven decisions with customer usage analytics

To ensure all this data is actionable we surface it in a couple of different ways

  1. Dynamic Reports
  2. User configurable Email Alerts
  3. Easy to customize Dashboards

Out-side-in availability monitoring

image

Historically, we would often wait for customers to call the help desk informing us of an outage, even if customers didn’t expect and demand more, in many cases this “call help desk” mindset just doesn’t make sense with globally distributed applications. The days of waiting for a customer to let you know of an outage are (thankfully) long over. To eliminate that dynamic, Application Insights offers availability monitoring that makes it trivial to setup synthetic transactions from either a simple URI or a Visual Studio multi-step Web Test to verify your application is available from 18 locations across the planet –AND show how performant your application is from those locations. In the availability report above, you can see I deployed a version of the application (the blue dot) at which point some of the tests started failing and the entire application slowed down. I then fixed the bugs and did another deployment. This is the second blue dot and clicking on either of these deployment markers will automatically open THAT deployment changeset.

Application Performance Monitoring

image

I must admit when I first joined the team they used operation terms I wasn’t familiar with like GSM (for Global System Monitoring) and APM. After using the product and looking at the capabilities, I was CERTAIN APM stood for Application Process Monitoring as this service tells me things like exceptions, memory usage, dependency and system information like CPU, request rate, response time, Network IO rate, instance count, memory thresholds and of course performance events. All of this data is served by the same agent as Intellitrace and System Center and integrated with Visual Studio. See blog post Introducing Microsoft Monitoring Agent. “APM” actually stands for Application Performance Monitoring – but our APM service does SO much more than performance monitoring!!!!

 

Data driven decisions using customer usage

image

The customer usage service is my favorite service from Application Insights. Add a line of JavaScript to my web application or a Nuget package to my Windows Phone application and I get over 15 reports including information like Operating System, Referral Sources, Pages Usage, Browsers, Location, Networks, Devices, etc. The reason this is my favorite service, it helps make informed decisions when doing our product planning. For instance I instrumented the ALM Blog right after we added the navigation buttons. Adding custom events (another report this service adds) I was able to easily see which buttons people are using.

Making all this data actionable

Application Insights will track an incredible amount of information over long periods of time and we have added several features to make sure it is actionable.

Dynamic Reports

image

To ensure all the data surfaced by Application Insights is actionable all the repots can easily be factored to just the events you want to examine. At the most course grained you can select time spans then within that time span there are zoom tools to drill into specific events.

Easy to customize Dashboards

image 

We realize that with all this data, one of the challenges developers would have is just consuming it! To that end Application Insights will automatically create dashboards with the data you need which can be run full screen and even played like a slide show! As you interact with Application Insights and see a metric of particular interest, you can also click on the thumb tack glyph to add it to the dashboard of your choice.

User configurable Email Alerts

image

While Application Insights makes seeing the important data easy; sometime this just isn’t enough. For those cases we also enable email alerts to be sent when threshold violations have been exceeded. While these dialogs look relatively simple, the engine driving them is quite sophisticated and can also be controlled through xml files and powershell ( a future blog post to be sure!).

image

Summary

By integrating production monitoring with the development tools Applications Insights will enable higher quality code, decrease rework and further reduce cycle times between releases. So how do you get started? Starting 11/13 9:00am PST we are going to enable a blue box on your Visual Studio online account…access via http://YOURACCOUNT.Visualstudio.com. If you don’t have an account yet you can get one at http://TFS.Visualstudio.com

 

image

 

And for more information please check the new Channel9 series and the new Application Insight forum:

Shortened Links

Leave a Comment
  • Please add 2 and 7 and type the answer here:
  • Post
  • Today during our chanel9 interview we had two questions come through I wanted to answer here:

    1. Will Application Insights be extensible to add in our own logging

    2.  Will application Insights require I change my application

  • Q: Will Application Insights be extensible to add in our own logging

    A:

    There are two services this makes sense for:

    •Usage Data

    •APM type data.

    The SDK for usage data is available now

    While the MMA agent linked to the Application Insights "Create Application" button has this enabled it is not documented yet.  We are doing another deployment in two weeks and hoping the documentation will catch up with the agent binaries.

  • Will TFS on-premises support Application Insight?

  • Q: Will application Insights require I change my application?

    A:

    There are three services: Usage, App Internals and Out-side in Availability/Performance.  

    1. For outside in NO changes needed to the server running it of the application

    2. For Usage monitoring a line of JavaScript or a Nuget package is required to be added

    3. For Internal Application monitoring the MMA agent is required to be installed see: blogs.msdn.com/.../introducing-microsoft-monitoring-agent.aspx

    Andrew mentioned a correction that memory analysis does not require the MMA agent...While technical correct Application Insights DOES require the agent to push that information the online account

  • @Alex

    We have seen a couple of variants of the question:

    “Does Application Insights work on premises?”

    For on premises hosted applications Application Insights definitely does work.  For example all of the Application Insight Channel9 videos (except for: Setting up Application Insights for monitoring an Azure Cloud Services) were shot with on premises applications.  

    Sometimes people intend this question to mean:

    “Does Application Insights work with on premises Team Foundation Servers?”

    Companies can adopt Visual Studio Online services on their own terms while still keeping other ALM activities with TFS on-premises. The Application Insights visualization i.e. reports, alerts, dashboards etc. are all cloud based; but like Cloud based load testing Application Insights can work hand and hand with your on premises Team Foundation Servers.  For example during the launch the application demoed was built on one Team Foundation instance but Application Insights that was doing the monitoring was on a separate Team Foundation Service instance.

    All the Application Insights to Visual Studio integration for things like Intellitrace, Memory Events and deployment markers work great in this hybrid configuration.

  • I'm not seeing the link to the blue box ...

  • I'm also not seeing the blue box to request an invite. Has this not been rolled out yet?

  • Does this collection of usage data violate any of the new California mobile privacy laws?

  • Q: Will Application Insights be extensible to add in our own logging.

    A: Furthering Charles comments. :) We are very interested in supporting the capture of logging data and allowing for extensibility around the Application Insights service. I'd love to talk more about what types of logging data you'd like to see and how you are performing logging today. If you'd like to talk more directly I'm reachable at joshweb at microsoft dot com.

  • @James/Craig

    We just re-enabled it...should be live now

  • Monitoring Agent successfully installed, but configuring was failed.

    ...

    Agent configuration completed.

    Starting to monitor Default Web Site...Failed

    The specified collection plan, version 1.0, is not supported. This installation of Microsoft Monitoring Agent supports collection plan versions from 1.0 to 1.0.

    ...

    Server has Russian regional settings.

    In the event log "Operations Manager" many similar errors:

    A module of type "Microsoft.EnterpriseManagement.Modules.Apm.AgentModules.TelemetryDataItemMapper" reported an exception System.ArgumentOutOfRangeException: 19.11.2013 8:05:51 ---> System.FormatException: String was not recognized as a valid DateTime.

      at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)

      at Microsoft.EnterpriseManagement.Modules.Apm.AgentModules.AviCodeDataItem.GetDateFromString(String utcLogDate)

    and

    The following error occurred in the monitoring agent PowerShell cmdlet:

    The specified collection plan, version 1.0, is not supported. This installation of Microsoft Monitoring Agent supports collection plan versions from 1.0 to 1.0

    Is it possible to fix?

  • Hello Alex,

    This error is coming from the fact you are attempting to install the agent on a Russian (non English) computer.

    Unfortunately the preview only supports English computers at this time.

    Chuck

  • @Charles

    Here the same error as reported by Alex, but under play Windows Server 2012 english:

    A module of type "Microsoft.EnterpriseManagement.Modules.Apm.AgentModules.TelemetryDataItemMapper" reported an exception System.ArgumentOutOfRangeException: 21.11.2013 13:17:20 ---> System.FormatException: String was not recognized as a valid DateTime.

      at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)

      at Microsoft.EnterpriseManagement.Modules.Apm.AgentModules.AviCodeDataItem.GetDateFromString(String utcLogDate)

      --- End of inner exception stack trace ---

      at Microsoft.EnterpriseManagement.Modules.Apm.AgentModules.AviCodeDataItem.GetDateFromString(String utcLogDate)

      at Microsoft.EnterpriseManagement.Modules.Apm.AgentModules.AviCodeDataItem..ctor(String eventClass, String eventClassVersion, String eventSource, String eventData, String machineName, String timeZoneName, Int32 utcOffset, String utcLogDate, AgentType agentType)

      at Microsoft.EnterpriseManagement.Modules.Apm.AgentModules.TelemetryDataItemMapper.ProcessDataItem(DataItemBase dataItem)

      at Microsoft.EnterpriseManagement.Modules.Apm.AgentModules.TelemetryDataItemMapper.OnNewDataItems(DataItemBase[] dataItems, Boolean logicalSet, DataItemAcknowledgementCallback acknowledgedCallback, Object acknowledgedState, DataItemProcessingCompleteCallback completionCallback, Object completionState) which was running as part of rule "Microsoft.SystemCenter.Apm.CloudServices.CollectTelemetryEvents" running for instance "" with id:"{1E22BC42-E665-F43C-2C72-C6D2E48E7815}" in management group "AppDiagnostics".

  • Does anyone know when other language support will be realeased?

  • Hi  - I have installed MMA in W2008 Server R2 machines(2 machines), Both the machines has same Asp.net application mapped in IIS. I can see the application with server count 2 in VS.com. But I don't how how to segregate the server performance or any other metrics between the server.

    Can you please help me to create a dashboard to compare cpu, error events, etc... from these machines.

Page 1 of 2 (18 items) 12