我有多个使用 ASP.NET 4.6.2 的应用程序,我希望使用应用程序 Inishgts 来捕获遥测和日志记录数据。由于这是 ASP.NET 4.6.2,所以没有可以切换 LogLevel 的 app.config,而且我找不到有关如何动态设置日志记录和遥测信息级别以减少传递到的数据量的任何详细信息应用程序洞察。
要使此配置动态化是我找不到相关信息的另一个项目,这在生产环境中会派上用场,在生产环境中我想限制信息并更改配置而无需重新启动应用程序。
感谢您的帮助。
我正在研究采样,但这样我可能会错过重要信息,并且不会有完整的图片来调试问题。
可用于减少遥测的机制有限:
如果您想在运行时决定让哪些遥测数据通过以及放弃哪些遥测数据,那么使用遥测处理器将是一个不错的选择,因为每个遥测项目都通过处理器传递。
一个简单且幼稚的实现可能是:
public class ReduceTelemetryFilter : ITelemetryProcessor
{
private ITelemetryProcessor Next { get; set; }
// next will point to the next TelemetryProcessor in the chain.
public ReduceTelemetryFilter(ITelemetryProcessor next)
{
this.Next = next;
}
public void Process(ITelemetry item)
{
// To filter out an item, return without calling the next processor.
if (!OKtoSend(item)) { return; }
this.Next.Process(item);
}
private bool OKtoSend (ITelemetry item)
{
// some logic
}
}
这为您提供了完全控制权,您可以选择根据遥测项目的类型、内容和/或严重性做出决定。