我正在尝试用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
答案 0 :(得分:0)
该类需要与TelemetryModule接口一起实现WebTelemetryModule。这样做对我来说解决了这个问题。
这是我写的博客,解释了如何做到这一点 https://dtechonline.wordpress.com