监控 Azure 函数
Monitoring Azure function
我有定时器触发功能。它每分钟执行一次,但我在 Azure 门户的“监视器”部分看不到任何日志。
然而,当我单击“运行 Application Insights 中的查询”并在查询中修复 cloudRoleName(默认情况下,它设置为应用程序名称,但我们将其更改为 ITelemetryInitializer
)时,它会显示所有执行正确。
编辑:
这是我的启动代码
public class Startup : IWebJobsStartup
{
public void Configure(IWebJobsBuilder builder)
{
builder.Services
.AddSingleton<ITelemetryInitializer, CloudRoleNameInitializer>();
// more registrations
}
和 CloudRoleNameInitializer
public class CloudRoleNameInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
telemetry.Context.Cloud.RoleName = "EmailPuller";
}
}
当我在 Application Insights 中单击 运行 查询时,生成的查询是
requests
| project timestamp, id, operation_Name, success, resultCode, duration, operation_Id, cloud_RoleName, invocationId=customDimensions['InvocationId']
| where timestamp > ago(30d)
| where cloud_RoleName =~ 'emailpuller-UNIQUE_ID_FROM_ARM_TEMPLATE' and operation_Name =~ 'OurOperationName'
| order by timestamp desc
| take 20
因此您可以看到 cloud_RoleName
与 ITelemetryInitializer
设置的不同。如果我更新查询以使用 'emailpuller' 它 returns 有关执行的信息
你猜对了。 Monitor UI 使用 the default CloudRoleName
查询日志。
很容易找到根本原因。步骤如下:
1.Nav到azure portal -> 你的azure function -> Monitor -> 按F12打开浏览器的Develop Tool
2.then点击Refresh
按钮->然后在开发工具中,selectapi->然后在Request Payload
,就可以了看到这个 api 使用默认 CloudRoleName
查询日志。
截图如下:
这可能是一个错误,您可以在 github of Azure function 中提出问题。
我有定时器触发功能。它每分钟执行一次,但我在 Azure 门户的“监视器”部分看不到任何日志。
然而,当我单击“运行 Application Insights 中的查询”并在查询中修复 cloudRoleName(默认情况下,它设置为应用程序名称,但我们将其更改为 ITelemetryInitializer
)时,它会显示所有执行正确。
编辑: 这是我的启动代码
public class Startup : IWebJobsStartup
{
public void Configure(IWebJobsBuilder builder)
{
builder.Services
.AddSingleton<ITelemetryInitializer, CloudRoleNameInitializer>();
// more registrations
}
和 CloudRoleNameInitializer
public class CloudRoleNameInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
telemetry.Context.Cloud.RoleName = "EmailPuller";
}
}
当我在 Application Insights 中单击 运行 查询时,生成的查询是
requests
| project timestamp, id, operation_Name, success, resultCode, duration, operation_Id, cloud_RoleName, invocationId=customDimensions['InvocationId']
| where timestamp > ago(30d)
| where cloud_RoleName =~ 'emailpuller-UNIQUE_ID_FROM_ARM_TEMPLATE' and operation_Name =~ 'OurOperationName'
| order by timestamp desc
| take 20
因此您可以看到 cloud_RoleName
与 ITelemetryInitializer
设置的不同。如果我更新查询以使用 'emailpuller' 它 returns 有关执行的信息
你猜对了。 Monitor UI 使用 the default CloudRoleName
查询日志。
很容易找到根本原因。步骤如下:
1.Nav到azure portal -> 你的azure function -> Monitor -> 按F12打开浏览器的Develop Tool
2.then点击Refresh
按钮->然后在开发工具中,selectapi->然后在Request Payload
,就可以了看到这个 api 使用默认 CloudRoleName
查询日志。
截图如下:
这可能是一个错误,您可以在 github of Azure function 中提出问题。