Use*_*rol 5 javascript azure node.js azure-application-insights azure-functions
我有一个用 javascript 编写的 Azure Function 应用程序,它集成了 Application Insights:
const AppInsights = require("applicationinsights");
AppInsights.setup(appInsightsInstrumentationKey);
AppInsights.defaultClient.context.tags[
AppInsights.defaultClient.context.keys.cloudRole
] = "My back-end";
AppInsights.start();
Run Code Online (Sandbox Code Playgroud)
模块版本为 1.7.4。
我确实需要访问当前操作 ID 以将其发送到我的自定义日志,以便与 Azure 中的 AI 日志相关联。在我的函数中,我试过这个:
var telemetry = appInsights.defaultClient;
var oid = telemetry.context.tags["ai.operation.id"]; // does not work
var oid = telemetry.context.operation.id; // does not work
Run Code Online (Sandbox Code Playgroud)
尽管如此,AI 还是会以某种方式收集它,因此我可以在 Azure 门户中看到它:
如何operation_id在运行时访问Azure 函数中的值?
阅读nodejs客户端中的文档,我认为你必须setDistributedTracingMode将appInsights.DistributedTracingModes.AI
这就是 operationId 正在做的事情,它有助于跟踪分布式系统,以便您可以关联请求。
从文档页面:
let appInsights = require("applicationinsights");
appInsights.setup("<instrumentation_key>")
.setDistributedTracingMode(appInsights.DistributedTracingModes.AI)
.start();
Run Code Online (Sandbox Code Playgroud)
operationId 是由 Application Insights SDK 自动添加到每个请求上的值,但显然是在稍后阶段,当您尝试访问它时还为时过早。这就是黑盒解决方案的问题。但你可以先尝试自己设置。自行将 telemetry.context.operation.id 设置为唯一 ID,并确认 ApplicationInsights 是否正确跟踪该 ID。
| 归档时间: |
|
| 查看次数: |
1357 次 |
| 最近记录: |