azure - Application Insights Visual Studio 集成不适用于控制台应用程序 (WebJob)
问题描述
我有一个控制台应用程序,我们在 Azure 中部署为 WebJob。Application Insights 正在运行,因为遥测数据已正确发送到 Azure。但 Visual Studio (2019) 中的“Application Insights Search”窗口并未在本地获取遥测数据。我需要配置什么,因此应用程序洞察窗口将显示控制台应用程序的遥测数据?
在解决方案中,我们将 MVC 网站和 WebJob 放在同一个解决方案中。遥测在本地适用于 MVC 网站项目,但不适用于 webjob 项目。
我已将 Application Insights 与以下代码集成:
builder.ConfigureLogging((context, loggingBuilder) =>
{
loggingBuilder.AddApplicationInsightsWebJobs(o =>
{
o.InstrumentationKey = instrumentationKey;
o.EnableLiveMetrics = true;
o.LiveMetricsInitializationDelay = TimeSpan.FromMinutes(1);
o.SamplingExcludedTypes = "Exception";
});
});
检测密钥来自 appsettings.json:
"Company.Logging": {
"InstrumentationKey": "1242189c-1192-41d9-b877-b26890bd0eef",
"LoggingServiceUrl": "https://loggingapidev.company.com/api/logs/batch"
}
我们对网站使用相同的配置,这很有效。
我确实尝试在 appsettings.json 中添加“APPINSIGHTS_INSTRUMENTATIONKEY”键并作为环境变量。那没有任何影响。
有谁知道我能做些什么来完成这项工作?这将使开发人员更直观地使用应用程序洞察力。现在我必须将他们引导到可以找到本地遥测数据的门户。
解决方案
我用控制台项目(webjob v3)对其进行了测试,它工作正常。我可以看到日志显示在 Visual Studio Application Insights 搜索窗口中。
如果您仍然出现此问题,请尝试通过手动将空 ApplicationInsights.config
文件添加到您的 webjob 项目中。
工作流程:
- 右键单击项目:添加 -> 新项目...
- 选择:应用程序配置文件,例如“JavaScript JSON 配置文件”。
- 名称:ApplicationInsights.config
- 删除此文件的内容 -> 然后单击保存。然后右键这个文件->选择属性->将“复制到输出目录”设置为“如果较新则复制”
推荐阅读
- mongodb - 如何使用 MongoDB 在数组中投影子文档值?
- python - 将列表的元素分成其中的许多元素并通过条件选择其中一个元素
- github - 我如何在 github 上更新一个 apt 包
- python - 在 Python 中使用 re 模块替换两个字符串中的所有标点符号来比较它们?
- java - 从 URL 读取数据的问题
- docker - Asp.net Core 网站图标在 docker 中缺少托管
- javascript - 如何在 ES 2017 中链接异步函数的返回值?
- julia - Interact.jl 错误:未定义 WebIOServer
- html - 使用 BeautifulSoup 从 HTML 中提取几个“下一个兄弟姐妹”
- javascript - 错误类型错误:无法读取未定义的属性“first_name”