Azure 辅助角色中的异常警报

Alerts for exceptions in an Azure worker role

如果辅助角色抛出异常或出现错误,是否有一种简单的方法可以在 Azure 管理门户中发送警报或通知?

我正在使用 Azure 2.5

我已经设置了所有跟踪和诊断程序,并且可以在 Visual studio 的服务器资源管理器中查看日志,但是无论如何,如果日志中出现错误消息,是否可以设置警报。

我知道您可以在管理门户中为监控指标设置警报有没有简单的方法来添加错误和异常的指标?

或者以某种方式获取 C# 异常代码以在 Azure 管理门户中创建通知或警报?

我使用 SendGrid 通过 Azure 发送电子邮件,因为它是免费的。以下是我会做的事情:

try
{
     //....
}
catch(Exception ex)
{
     MailMessage mailMsg = new MailMessage() {
                //Set your properties here
            };
    
     // Add the alternate body to the message.
     mailMsg.AlternateViews.Add(
            AlternateView.CreateAlternateViewFromString(Body
                   , new System.Net.Mime.ContentType("text/html")));

     SmtpClient smtpClient = new SmtpClient(
                                 ServerGlobalVariables.SmtpServerHost
                                 , Convert.ToInt32(587));

     System.Net.NetworkCredential credentials = 
          new System.Net.NetworkCredential(
                 ServerGlobalVariables.SmtpServerUserName
                 , ServerGlobalVariables.SmtpServerPassword);

     smtpClient.Credentials = credentials;

     smtpClient.Send(mailMsg);
}

请注意,我将积分存储在名为 ServerGlobalVariables 的全局变量 class 中。另外,我发送的电子邮件格式为 HTML,但您不必这样做。

我最终使用电子邮件警报和应用程序洞察来监控我在 Azure 门户中的辅助角色。我根据 these instructions 在门户上创建了应用程序洞察。

使用 Visual Studio 中的 Nuget 包管理器,我添加了应用程序洞察 API、网站应用程序洞察(即使我的工作者角色不是 Web 应用程序)和应用程序洞察跟踪侦听器。

然后我通过将以下内容添加到工作者角色来创建一个应用程序洞察实例。

private TelemetryClient tc = new TelemetryClient();

然后将其添加到 onStart 方法中。

        tc.Context.InstrumentationKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX";

您可以在 Azure 门户中找到您的安装密钥。

在 运行 之后,或者部署我的工作者角色后,我可以在 Azure 门户中查看我的所有 Trace.TraceInformation 和 TraceError 语句,以及添加 tc.TrackError 和 tc.TrackEvent 语句来跟踪错误和事件。

TrackError 非常适合在抛出异常时通知我。