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);
}
我查看了 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);
}