[英]How to track dependencies of Java Function Apps
我为使用 Java 实现的 Azure Function 应用程序设置了一些依赖项跟踪。 因此,我添加了applicationinsights-core
作为依赖项,请参阅Add the Application Insights SDK for Java to your project 。
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version>2.6.2</version>
</dependency>
为了创建一个dependencies
项,我使用TelemetryClient
的一个实例。
// call an external service, e.g. ADLS file upload..
long start = System.currentTimeMillis();
uploadFile();
long elapsed = System.currentTimeMillis() - start;
// void trackDependency(String dependencyName, String commandName, Duration duration, boolean success)
new TelemetryClient().trackDependency(
"ADLS", "upload file", new Duration(elapsed), true);
生成的dependencies
项看起来很奇怪。 它错过了cloud_RoleName
,它通常标识条目的创建者。 此外, commandName
作为data
属性传递,似乎无法设置条目的type
属性。
While I found no dedicated Java Function App documentation for dependency tracking, the general Java documentation recommends to use the applicationinsights-agent
additionally (see Java codeless application monitoring Azure Monitor Application Insights ). 代理处理applicationinsights-core
的遥测(请参阅支持的自定义遥测)。 但对我来说,如何为 Azure Function App 设置代理并不明显。
如何设置cloud_RoleName
? 有没有办法设置dependencies
的type
属性?
我找到了一个仅使用applicationinsights-core
的解决方案。
cloud_RoleName
可以取自环境变量WEBSITE_SITE_NAME
。type
可以通过RemoteDependencyTelemetry
的设置器进行配置。// create depedencies entry
createTelemetryClient().trackDependency(
buildTelemetry("ADSL", "upload file", "custom context", successful, elapsed));
// ..
private TelemetryClient createTelemetryClient() {
TelemetryConfiguration configuration = TelemetryConfiguration.getActive();
configuration.setRoleName(System.getenv("WEBSITE_SITE_NAME"));
return new TelemetryClient(configuration);
}
private RemoteDependencyTelemetry buildTelemetry(String type,
String name,
String data,
boolean successful,
long elapsed) {
RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(
name,
data,
new Duration(elapsed),
successful);
telemetry.setType(type);
return telemetry;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.