Azure - Change TimeZone for WebJob Details log - azure

Having WebJobs on Azure App Service, trying to sort out the timezone of Continous WebJobs Details.
Can anyone guide to change TimeZone in Azure WebJobs output logs. Have tried to add a value on the Application Setting for “WEBSITE_TIME_ZONE” but didnt help us to change the WebJobs logs.

Currently we can not modify the time which used to output the Azure WebJobs logs. It is always in UTC time.
If we use the WEBSITE_TIME_ZONE setting to change the time zone, it will work in your code, but not for the output log itself.
For example, I have a webjob which will print current time. And I add an application setting as below
China Standard Time=UTC+8. So the output should be like this
Reference:
Set the time zone

Related

How to skip to a specific time in Azure AppService logs

Using Linux App Service on Azure. How do I view the logs (app/console logs and HTTP request logs) for a particular time in the past?
In other logging apps I can enter a search term, or a time and jump straight to that point to view the logs for that point (and before and after). That's what I'd like to do for Azure.
You need to set WEBSITE_TIME_ZONE variable in Application settings.
Supported timezone values are
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
https://learn.microsoft.com/en-us/azure/app-service/faq-configuration-and-management
You can verify Time by navigating to Console and executing time command enter
If you want to search in logs you may download them in txt file into local machine or send the logs to Azure Log Analytics and query them using query language filters
| where TimeGenerated xxx

Best practices for azure webapp loging and automate log clearing policy (in the case log size is increasing )

I'm setting up Azure WebApp logging. My concern is that error logs are stored in webapp server level, the size increasing day by day from Elmah. Is there a best approach to maintaining the logs, both storing and automating archiving or deleting?
My web development is based on angular. Any suggestion for aggregating logs, like what kind of logs would be generated?
Yes, by default, logs are not automatically deleted (with the exception of Application Logging (Filesystem)). To automatically delete logs, set the Retention Period (Days) field. You could automate the deletion by leveraging KUDU Virtual File System (VFS) Rest API. For a sample script, checkout this discussion thread for a similar approach:
How can you delete all log files from an Azure WebApp using powershell?
Just to highlight, these are the logging that you could capture on WebApps:
• Detailed Error Logging
• Failed Request Tracing
• Web Server Logging
• Application logging - you can turn on the file system option temporarily for debugging purposes. This option turns off automatically in 12 hours. You can also turn on the blob storage option to select a blob container to write logs to.
For log directory information kindly refer to this document: https://learn.microsoft.com/azure/app-service/troubleshoot-diagnostic-logs

monitor heartbeat on azure vm

We shut down our azure vm's every day at 11pm and start them at 7am, except for weekends.
Is there a way we can check the heartbeat on weekdays only between 7.30am and 10.30pm to see if the server is alive and working?
If so, how can I send a mail for the servers that miss the heartbeat during that time?
There doesn't seem to be any support from any Azure service for creating monitoring or alerts that fire only between certain hours.
It seems Azure monitoring, Log Analytics or specific service alerts (like specific a VM) all assume the alerts should be active at all times.
Some possible solutions that might work that I came up with:
If you need to use Azure services, you could create an Azure Automation PowerShell runbook
Set it to trigger regularly (every hour?) and in code handle the time interval you are interested in
Also, in code do the testing if the service is up
In my opinion, feels a bit hackish..
Use some external tool for monitoring your services, like e.g. Nagios
See e.g. this link for how it could work

Cleaning of logs in Azure Web Job

I am using the default logging mechanism that Azure web job provides. Type of logger is 'TextWriter'. I have 3 functions in the same web job with extensive logging. A number of logs being generated every minute. As with the default settings of azure web job, all the logs go to the storage account into blobs. I do not want my storage account to just keep on growing with months and months of old logs.
I need a way of cleaning the logs on a periodic basis. Or is there any setting/configuration that can be done so that my logs get cleaned on a periodic basis? Or should I write code to monitor the blob container 'azure-webjobs-hosts' and then the files inside 'output-logs'. Is that the only place where the logs for my application are stored by default by the web job?
I tried searching the web but couldn't find any related posts. Any pointers would be of great help.
Based on my experience, we can achieve this purpose by define the azure storage container name. We can define weekly/monthly/daily as container name. Then use a time trigger function to delete the container. For example, if we need delete weekly data, then we set container for this weekly data, then delete it in the next week via time trigger.

Is there any other method for exporting data from Microsoft Application Insight other than 'Continuous Export'?

Is there any other method for exporting data from Microsoft Application Insight other than 'Continuous Export' ?
Any server side API for Application Insight for our resource on Azure that can be consumed.
No, Continuous Export is the only supported way at this time. Please continue checking Application Insights blog from time to time for new feature announcements.
If you are using Azure app service & using any logging then,
First, go to Azure portal then go inside your specific app service which logs you want to export continuously.
Then see the menu, there you find "Diagnostics logs", go inside the "Diagnostics logs".
Here you find "Application Logging (Blob)", make it on (by default it's off) and add your storage at storage settings.
Here you also find log level and Retention Period. Change it with your convenient value.
Yes, You can use API to export the data from Azure Application Insights. https://dev.applicationinsights.io/
There are some limitation:
https://dev.applicationinsights.io/documentation/Authorization/Rate-limits
https://learn.microsoft.com/en-us/azure/data-explorer/kusto/concepts/querylimits
To overcome the limitation,I wrote a python script to export the data by limiting the data.
https://gist.github.com/satheeshpayoda/92065d9fbaf5b0158728a8537d79af0e

Resources