我创建了一个派生自ITelemetryProcessor的类,因此我可以在C#.Net类库的单元测试中捕获遥测数据。作为单元测试,没有提供InstrumentationKey,因为单元测试应该没有网络依赖性。 (我无法将遥测系统考虑到注入的接口。)
我在单元测试方法中创建并使用TelemetryClient并记录自定义事件。但是,我注意到在记录遥测项目时没有调用我的Process()方法。
在做了一些实验之后,我意识到如果将InstrumentationKey设置为虚拟Guid,那么我的Processor()方法就开始被调用了。
TelemetryConfiguration.Active.InstrumentationKey = Guid.NewGuid().ToString();
问题:为什么我需要提供一个InstrumentationKey才能调用处理器?
谢谢
-约翰
遥测处理器用于在发送到AI之前对遥测项目应用额外的处理/过滤。如果没有ikey,则无法向AI发送,因为它无论如何都不会被接受。为什么要运行所有处理器的开销。