AzureWebApp: Monitor Application Logs - azure

I'm building an Azure web-app and if there are certain unexpected errors, I want to be able to bubble it up in the Azure Dashboard / add alerts.
Any System.Diagnostics.Trace.TraceError() messages are logged to the ApplicationLog. Is there a way to add alert/monitoring-graphs for these in Azure Portal?

I think and most flexible option for configuring alerts on Web Apps is enabling the Application insights have the App Insight be one of your event sources:
https://azure.microsoft.com/en-us/documentation/articles/app-insights-search-diagnostic-logs/
Once you have the Application Insight setup then you can easily set any kind of alerts based on the diagnostics that are collected:
https://azure.microsoft.com/en-gb/documentation/articles/app-insights-alerts/

Aram's links below really helps. Please read them.
To Get this working:
Add the ApplicationInsights to your project.
(Optional) If you want log traces (System.Diagnostics.Trace) to be searchable on insights, add Microsoft.ApplicationInsights.TraceListener nuget to your project.
Use telemetryClient.TrackException() to place a server exception
when you hit a critical error.
Add an alert on Azure portal to check for ServerExceptions within the given time window.

Related

Find the logs created by logging library in azure portal

I built a python function in Azure. I used the library logging to record some important steps in my function. I am using the level "info" of this library. My question is how do I find the logs created after execution in Azure portal?. I would like to see these logs to validate the execution of my function.
Tks in advance
Update 1:
I found in the Microsoft documentation:
Logging Access to the Azure Functions runtime logger is available via
a root logging handler in your function app. This logger is tied to
Application Insights and allows you to flag warnings and errors that
occur during the function execution.
Python developer reference: Logging
However, I do not know how to find these logs in Applications Insights.
Update 2:
My function has already the settings:
APPINSIGHTS_INSTRUMENTATIONKEY
APPLICATIONINSIGHTS_CONNECTION_STRING
When I checked 'Transaction search' in the application insights, I am not getting the logs that I defined in my function using the library 'logging'. Here an example what I see:
The logs are seemly the standard one that Azure has.
Few things -
Have you enabled Application Insights? And setup the the storage account for logs?
Can you see Application Insights related configs in your Configuration > Application Settings
If the above are all fine, without your code snippet its hard to tell if there's something wrong.
To see the logs, try navigating to -
Your Azure Function's Application Insights
Click on 'View Application Insights data'
Then on the left nav bar look for 'Transaction Search' and click it
Finally, click the center button 'See all data in the last 24 hours'
Wait for it to load your logs, and hopefully if everything is setup correctly you'll see your logs there.

Application Insights stop working after deployed to Azure

I set up Application Insights on my asp.net core (2.2) app. I can see data in Azure portal when I run my application locally. However, once I deploy it to App Service in Azure, Application Insights stop working - there is no data flow at all. Are there any additional steps I am missing?
Adding to Stuart's comments- > If you edited ApplicationInsights.config, kindly check the configuration of TelemetryInitializers and TelemetryProcessors. An incorrectly-named type or parameter can cause the SDK to send no data.
Also, in the Application Insights portal, open Diagnostic Search. Data usually appears here first. Refresh to see if it helps.
If feasible, you may restart the app and check to see if that helps.

Error setting up Azure Function within Azure Resource under Log Analytics Workspace

I have error setting up Azure Function within Azure Resource under Log Analytics Workspace.
When only AllMetrics is checked, it works. But whenever FunctionExecutionLogs is checked, error occurs like below:
1.Nav to your log analytics workspace in azure portal.
2.in the left blade, select Workspace Data Sources -> Azure Resources, then click your azure function there.
Check FunctionExecutionLogs and error occurs.
Any idea?
Setup data used by Azure Log Analytics with Azure Fucntions
Update
We would like to understand more on Application InSights and Log Analytics, and use the best tool for us.
'FunctionExecutionLogs' for azure function/web app in azure log analytics will not be supported any more.
So application insights is a better choice for monitoring azure function.
The following is the feedback from MS log analytics team:
Several months ago, App Service/Functions team on-boarded to Azure Monitor diagnostic logs but they don't actually emit log data.
Basically there are thousands of diagnostic setting registrations which are no-ops and don't actually do anything.
Recently in the past few weeks, we've been in discussion with App Service to release this feature in the next few weeks as a private preview feature.
This unfortunately is a breaking change as only private preview customers can turn on diagnostic logs for App Service.
Please note -- There is no actual customer impact as whatever customers turned on previously never worked to begin with.
To fix the deployment script, we should ask customers to update their template to only turn on metric export and not logs --- this won't have any actual customer impact.
So, from our Log Analytics side, this is a scenario we are not support from our Log Analytics team which has declared by our Production Group any more.
I would recommend using Application insight with Azure Functions. Application insights has deeper integration with Azure Functions and is the recommended way of setting up Analytics for your app. Is there a specific reason you want to setup through Log Analytics instead of Application Insights?
Now, almost 2 years later, Classic Application Insights is deprecated (apparently it will be retired around Feb '24). The recommended way to set this up is to
Create a log analytics workspace
Create an application insights resource that has it's workspace id set to the LA workspace created in the previous step
Your functions will still be configured to log to app insights but that has its datastorage now backed by the LA workspace instead of bringing its own.
You can migrate existing app insights to link to a LA workspace - apparently this migration is not reversible but it should be transparent from your function point of view (i.e. the app insights connection doesn't change). Details can be found here: https://learn.microsoft.com/en-nz/azure/azure-monitor/app/convert-classic-resource

Logging from an azure console app as a web job

I am in search for a good way to log various messages while being able to use functions, logic, monitoring, etc to get notified or run a certain task to fix a problem and notify someone.
What I have in mind is something like "If a specific error happens send me a notification or restart a service"
What I currently already have is an app service that holds 10 web jobs(continuous, triggered). Two of them use the Azure Web job SDK and the rest of them are plain .net core console apps. All of them generate structured logs using serilog and are saved to blob storage.
Is there something I am missing? I don't want to reinvent the wheel here.
You can use application insights with webjobs, more details are here.
You can also set an alert in application insights if error occurs, refer to this doc.
Any more questions please let me know.

Azure Logic App Workflow Runtime

Having difficulty getting diagnostic details out of my logic app. I have enabled the diagnostics, bit the event hub and log analytics for work flow runtime. But at this time I'm not seeing anything coming out. I have also checked the diagnostic logs table and nothing. this is a very basic POC logic app.
Do I need to do anything else.
You can set up the log analytics(OMS) workspace in azure and link it with the logic app. For the existing logic apps, we can add this via diagnostics settings under monitoring.

Resources