在应用洞察中添加自定义遥测模块

时间:2017-05-16 17:13:00

标签: java azure azure-application-insights

我正在尝试用Java创建一个自定义遥测模块,它可以记录自定义的http请求和响应标头。根据我的分析,遥测模块是可以访问http请求和http响应对象的模块。

我通过扩展Webtelemetrymodule接口创建了自己的遥测模块,并使用Application insights.xml注册了该模块

当我的应用程序启动时,我收到错误消息说无法为我的CustomTelemetry类加载类

我错过了什么吗?关于遥测模块的文档很多,所以非常感谢任何帮助

代码

以下是我的自定义遥测模块,它已在ApplicationInsights.xml中注册

public class CustomRequestTelemetryModule实现了WebTelemetryModule {

public static final String REQUEST_ID_HEADER = "CUSTOM_HEADER";



@Override
public void onBeginRequest(ServletRequest request, ServletResponse response) {

}

@Override
public void onEndRequest(ServletRequest req, ServletResponse res) {

    //logger.info("Inside Custom Telemetry Module");

    HttpServletResponse response = (HttpServletResponse)res;

    String REQID = response.getHeader("REQUEST_ID_HEADER");

    RequestTelemetryContext context = ThreadContext.getRequestTelemetryContext();
    RequestTelemetry telemetry = context.getHttpRequestTelemetry();

    //telemetry.setId(REQID);
    telemetry.getProperties().put("ID",REQID);



}

}

Application Insight Config

  

块引用

    <Add type="custompackage.CustomRequestTelemetryModule"/>

AI记录的错误

AI:ERROR 16-05-2017 12:13,15:无法创建custompackage..CustomRequestTelemetryModule,类custompackage.CustomRequestTelemetryModule

TIA

1 个答案:

答案 0 :(得分:0)

该类需要与TelemetryModule接口一起实现WebTelemetryModule。这样做对我来说解决了这个问题。

这是我写的博客,解释了如何做到这一点 https://dtechonline.wordpress.com