如何在没有 SDK 的情况下为 webjobs 设置警报

Posted

技术标签:

【中文标题】如何在没有 SDK 的情况下为 webjobs 设置警报【英文标题】:How to set an alert for webjobs without SDK 【发布时间】:2021-10-21 01:44:56 【问题描述】:

我创建了一个使用 Java 作为技术堆栈的触发式网络作业,并且在部署后运行良好。 但现在我想使用警报通知来监控这个网络作业。我尝试了多种方法,例如在 POM 文件中添加应用程序洞察依赖项并使用检测密钥,但没有任何效果。 如果有人可以指导我如何设置网络作业失败的警报,那将非常有帮助。 谢谢。

【问题讨论】:

【参考方案1】:

更新:

正如Sdcoder 评论的那样:

我正在从 run.sh 文件调用 application-insight 代理 jar。它解决了我的问题,我现在可以在应用程序洞察力中看到日志。我的run.sh 文件如下所示:set PATH=%PATH%;%JAVA_HOME%/bin java -javaagent:applicationinsights-agent-3.0.2.jar -jar app.jar


正如ahmelsayed建议的那样:

如果您使用 WebJob SDK,那么很遗憾,没有任何用于连续 Web 作业的事件。只有one way for triggered jobs。
 private async void ReportTriggeredJobFinished(string jobName, string jobRunId)
        
            TriggeredJobRun triggeredJobRun = GetJobRun(jobName, jobRunId);
            if (triggeredJobRun == null)
            
                return;
            

            await _hooksManager.PublishEventAsync(HookEventTypes.TriggeredJobFinished, triggeredJobRun);
        
    

您可以参考Azure WebJob, how to be notified if it stops?和Best way to set up alerts on azure web job

【讨论】:

感谢 DeepDave-MT。我正在从 run.sh 文件调用 application-insight 代理 jar。它解决了我的问题,我现在可以在应用程序洞察力中看到日志。我的 run.sh 文件如下所示: set PATH=%PATH%;%JAVA_HOME%/bin java -javaagent:applicationinsights-agent-3.0.2.jar -jar app.jar

以上是关于如何在没有 SDK 的情况下为 webjobs 设置警报的主要内容,如果未能解决你的问题,请参考以下文章

如何在本地测试 Azure Webjobs SDK 项目?

如何在没有“始终开启”的情况下保持 Azure WebJob 运行

Azure WebJobs SDK TimerTrigger 函数未运行

如何在不公开所有符号的情况下为 iOS 创建静态库

在 Azure Webjobs SDK 中设置 nextVisibleTime

什么是 Azure WebJobs SDK 3.0 版本的 host.Call()