Azure WebJobs 和队列相关指标

Azure WebJobs and Queue Related Metrics

我查看了 Azure 门户并搜索了网络,但一直无法找到答案。有没有办法,也许通过 api 或 powershell,来获取 webjobs 的指标?例如每个作业的平均运行时间?我还想找出 webjob 触发的消息的平均排队时间(尽管这可能是存储指标而不是 webjob 指标)。任何指针将不胜感激。

如果没有第 3 方服务,这是不可能的。事实上,我所知道的唯一专门做这些事情的是 CloudMonix,我隶属于它。

正如Igorek所说,我也不认为这是可能的。有很多工具可以监控应用程序。其中两个集成了 Azure:

我已经使用 Application Insights 从 Web 作业发送指标。您可以按照本教程在您的网络作业中设置 Application insights:

如果你想计算处理队列中消息的时间,你可以这样做:

public async Task ProcessAsync([ServiceBusTrigger("queueName")] BrokeredMessage incommingMessage)
{
    var stopwatch = Stopwatch.StartNew();

    // Process your message
    ...

    stopwatch.Stop();

    // You should only instantiate the TelemetryClient once in your application.
    var telemetryClient = new TelemetryClient() { InstrumentationKey = "MyInstrumentationKey"};

    //Send your metric
    telemetryClient.TrackMetric("ProcessQueueMessageElapsedTime", stopwatch.ElapsedMilliseconds);
}