Wednesday, February 4, 2026

Deep Diagnostics for Web Apps with Application Insights

hello i am rahul Bogoria a product
manager on the visual studio application
insights team in today's increasingly
complex world of software having access
to the most relevant data that can help
you detect and fix production problems
as well as make future business
decisions is crucial for your
applications to succeed application
insights is a preview service in the
Microsoft Azure portal which can
definitely help you succeed
with deep Diagnostics and analytics
capabilities for any of your web apps
and services in this video I am going to
give you an overview tour of application
insights and discuss how you can detect
triage and diagnose real-world problems
for your web apps and services we will
visit the azure portal and I will take
you through a deep Diagnostics
experience with application insights for
a fully configured production app we
will discuss how quickly you can get
started on any web platform and in the
end we will cover the resources so that
you can learn more about the service and
get started today
application insights is an end-to-end
solution where telemetry data is
collected at every tier sent to the
cloud for processing and storage and
made available in a powerful and
interactive experience in Azure portal
we can talk about this in terms of three
key pillars firstly application insights
gives you a comprehensive view across
your entire application stack with deep
performance and diagnostics telemetry
available out of the box which you can
support with any custom data using our
open source SDKs secondly it provides a
set of powerful exploration tools
enabling you to quickly identify and
diagnose issues SS customer impact and
prioritize accordingly thirdly
application insights makes telemetry an
integral part of your development
process bridging pre and post production
testing and monitoring and providing
integrated experiences with Visual
Studio visual studio team services
and as your Diagnostics application
insights provides you with deep insights
and analytics enabling you to easily
detect and diagnose issues and
prioritize them based on their impact in
a typical detect triage diagnosed
scenario it provides a suite of
capabilities that you can take advantage
of to detect issues you can set up
synthetic availability tests pinging
your site at regular intervals from
points around the globe you can set up
elaborate multi-step web tests to
monitor resources and availability of
your back-end services and you can
monitor real user response times and
failure rates with threshold based
alerts notifying you in real time once
an issue is detected you need to assess
the impact and triage the situation with
information on real user impact and
affected requests it makes it easy to
prioritize fixes if 1% of all HTTP
requests fail that might not sound too
bad until you discover it's click here
to pay button that's failing so once you
are ready to diagnose the problem you
can go deep and analyze your data in
different ways slicing and dicing
acquiring logs and ultimately getting to
the line of code that requires fixing
all this correlated with any contextual
information required around request
performance counters remote dependencies
etc so let's check this out with the
demo here we are in the Microsoft Azure
portal where the application and site
service is hosted I'll click on one
asp.net application that I have been
running for quite some time
this application is hosted on an azure
VM and in one single look I can monitor
how my application is performing both
from client side as well as server side
I can also see how many failures are
occurring that I might want to care
about I can drill down into any of these
charts and metrics to get more details
and more context about these so let's
have a look I'll click on the server
response time chart and get more details
about that particular chart
I can see the server response time data
split across different continents and I
can get a sense of what's the average
response time looking like similarly I
can get details around the dependency
duration what's the typical request
pattern how many dependency calls are
made and so on if I go down the blade I
can get details around the slowest
requests that my site was generating and
some of these I might want to drill down
and explore further to diagnose the
issue similarly I can click on the
browser page load performance and get
more details from the client side on
what was the response time there how
many page views occurred and get a split
on the client performance around client
processing time send request time
receiving response time and so on I can
get a sense of the slowest page loads
which might be interesting for me to
figure out and diagnose further similar
to this I can click on field requests
and get more details about the failures
occurring for my application now these
failures can be occurring anywhere these
may be in your code in the back-end
service these might be in the
dependencies that you are calling for
example you are doing a database called
you are calling a web service some as
your storage requests so the issue can
happen anywhere and with application
insights you can track all of them very
easily now in this particular chart I
can get a sense that out of all the
failed requests that occurred in the
last 24 hours
there is a split of 304 occurring on
Internet Explorer 3 on Chrome and I can
get some insights and patterns from that
I can see that a total of seven
dependency errors have occurred and the
typical exception rate has been around
50 exceptions per hour which is a bit
high for my application and I would want
to figure out what's going wrong so once
I come down I can get a sense of which
are the most popular errors so I can see
that 98% of my errors are happening in
some report requests whereas only around
1.5 percent are occurring in a customer
create scenario while that is low from
my purse
that's a more important scenario that I
would want to resolve earlier so I click
on that to get a more instance level
detail on that particular issue now for
this particular error I can get each
individual instance on when that
exception occurred I can get a sense of
the real user impact as well so I can
see that there were five failures but
only two real users were impacted so in
a real situation this will give you an
idea about how many actual users got
impacted by some production issue with
which you can either take a
prioritization decision or impact your
communication methods so let us click on
one particular instance of this
exception and see what details we can
find to diagnose and solve the problem
so once the blade opens I can see
details around that particular failed
eQuest I can see what was the response
time what was the exact URL what was the
response code when did it occur and all
the different things I can get the
entire exception and I can click on it
to see the details around the exception
message as well as the entire call stack
now with this call stack I can easily go
to the exact page where the exception
was occurring and be able to drill down
the problem coming back I can see all
the remote dependencies that this
particular request was calling now with
application insights all these
dependencies are being monitored out of
the box without you having to write a
single line of code so in this
particular request there were multiple
database calls and one of them failed at
the end and that was the exact issue
with which this request failed now if I
want to diagnose that I just have to
click and get more details around that
failed dependency call I can see the
details that it's a sequel dependency I
can have the sequel statement where the
problem occurred as well as a dependency
call stack to be able to help me figure
out who I need to approach another thing
which is very important when you are
diagnosing a real production issue is to
figure out how the user could have
reached that particular point in the
product where they hid that issue and
that is where all telemetry for this you
session helps you a lot since
application insights is collecting all
the different data points from across
your application stack so we are able to
capture oil dependency calls all these
traces that you are sending all requests
that are generated even user pageviews
exceptions and any custom
instrumentation that you would have sent
from the SDK now with application
insights you can get a timeline based
view of when the from the point that the
user started a particular session what
exactly did they do so they came to the
home page a couple of log messages were
captured a dependency was called so on
and so forth till the point they hit an
exception and exited the scenario now
with this information it empowers you as
a developer to retrace or reproduce that
entire failure sequence and be able to
solve that situation much better now
let's come back to our overview page out
of all these metrics and properties that
we are just seeing here you can set up
alerts on top of any of them now these
alerts you can set up your own flexible
thresholds and say that if something
goes beyond or below a particular
threshold you can immediately get a
real-time email alert as an example I
have an alert setup here which says if
my CPU go the usage goes more than 10% I
want to be immediately alerted with an
email similarly you can set up alerts on
any custom metric any out-of-the-box
metric that application insights is
collecting for you we talked about
availability tests you can set up URL
ping tests and multi step web tests
right from the azure portal and all of
these web tests can be run in a regular
duration typically five minutes or so
and you have an option of around 16
global points of presence with which you
can test your data and once a failure
occurs you can click on a particular
failure you can get a geographically
distributed view and you can see what
has been the average response time for a
from a particular location and get more
and more details that you would wish to
diagnose further similar to this if
I am interested I can trade down further
into performance counters as well things
like IO memory process CPU and so on and
even get some basic usage and session
level details around how many active
users I have what are the most popular
pageviews how many sessions have
occurred and so on
with application insights you get this
entire interactive experience on the
azure portal but you also can export the
data directly to an azure blob storage
on top of which you can write your own
custom processing engine and they also
have articles available with which you
can set up an export to power bi to
excel to sequel and so on essentially
allowing you to further process and
correlate with any other data sources we
just saw how easy it is to detect triage
and diagnose issues in real time with
application insights it is equally easy
to get started for any web app or
service that you want to monitor if you
have access to code and can instrument
and redeploy the application you can get
the full suite of telemetry data
including basic usage and session
telemetry application insights comes as
part of Visual Studio for asp.net
developers integrates with the
Diagnostics hub in Visual Studio and
provides flexibility to search
production monitoring data right from
the ID you can also add our plugin to
eclipse for Java apps or use the
JavaScript snippet to monitor browser
side telemetry in HTML Javascript
websites if you want to monitor an
application already in production and do
not want to redeploy you can still get
the standard performance telemetry by
installing status monitor agent on your
is server or even with Azure extensions
for as your VMs or as your app services
to reiterate all our SDKs are open
sourced on github and available for most
of the popular web platforms with which
you can get started today and that wraps
up a quick overview of application
insights please consult these resources
for more information
and do look for other connect videos
diving deep into ALM and develop
scenarios we are looking forward to your
feedback and we hope it helps you to be
successful and much more productive
thanks for watching

No comments:

Post a Comment