- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不知道是否可以在没有 applicationInsight.config 的情况下创建完整的 TelemetryConfiguration
我看到有 TelemetryInitializers。添加它运行良好
但没有任何配置
我到处搜索通过代码完成配置的示例,但没有找到任何内容。我想删除配置文件,因为我想在公共(public)库中使用 TelemetryConfiguration。并且不想在最终的库中填充许多配置文件。
我在 Debug模式下查看,发现当我从 nuget 包获取配置文件时使用 TelemetryConfiguration.CreateDefault() 获取的类与没有配置文件时获取的类之间存在许多差异。这就是我提出这个问题的原因。
到目前为止我所拥有的
internal class ApplicationInsightConfig
{
public TelemetryConfiguration Config { get; }
public ApplicationInsightConfig()
{
Config = TelemetryConfiguration.CreateDefault();
Config.InstrumentationKey = ConfigurationManager.GetSetting(new ConfigKey("ApplicationInsightKey"));
Config.ApplicationIdProvider = new ApplicationInsightsApplicationIdProvider();
Config.TelemetryChannel.DeveloperMode = false;
DefineTelemetryInitializers();
DefineDefaultTelemetrySink();
}
private void DefineDefaultTelemetrySink()
{
var tp = Config.DefaultTelemetrySink.TelemetryProcessors;
Config.DefaultTelemetrySink.TelemetryChannel = new ServerTelemetryChannel();
}
private void DefineTelemetryInitializers()
{
Config.TelemetryInitializers.Add(new AzureAppServiceRoleNameFromHostNameHeaderInitializer());
Config.TelemetryInitializers.Add(new HttpDependenciesParsingTelemetryInitializer());
Config.TelemetryInitializers.Add(new AzureRoleEnvironmentTelemetryInitializer());
Config.TelemetryInitializers.Add(new BuildInfoConfigComponentVersionTelemetryInitializer());
Config.TelemetryInitializers.Add(new WebTestTelemetryInitializer());
Config.TelemetryInitializers.Add(new SyntheticUserAgentTelemetryInitializer { Filters = "search|spider|crawl|Bot|Monitor|AlwaysOn" });
Config.TelemetryInitializers.Add(new ClientIpHeaderTelemetryInitializer());
Config.TelemetryInitializers.Add(new OperationNameTelemetryInitializer());
Config.TelemetryInitializers.Add(new UserTelemetryInitializer());
Config.TelemetryInitializers.Add(new AuthenticatedUserIdTelemetryInitializer());
Config.TelemetryInitializers.Add(new AccountIdTelemetryInitializer());
Config.TelemetryInitializers.Add(new SessionTelemetryInitializer());
}
}
感谢您的帮助!
最佳答案
我认为你走在正确的道路上。设置遥测 channel 的方式可能略有不同:
TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
config.InstrumentationKey = ConfigurationManager.GetSetting(new ConfigKey("ApplicationInsightKey"));
config.TelemetryChannel = new ServerTelemetryChannel { DeveloperMode = false };
遥测模块都实现了ITelemetryModule
,它定义了一个void Initialize(TelemetryConfiguration configuration)
方法来连接模块:
var module = new UnhandledExceptionTelemetryModule();
module.Initialize(config);
可以使用TelemetryProcessorChainBuilder
添加遥测处理器:
var builder = config.TelemetryProcessorChainBuilder;
builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next));
builder.Build();
最后一步是使用配置:
var telemetryClient = new TelemetryClient(config);
关于azure - 创建不带配置文件的 ApplicationInsight TelemetryConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72691639/
TelemetryConfiguration.CreateDefault 和 new TelemetryConfiguration() 之间有什么区别? 我正在谈论来自 Microsoft.Appli
我不知道是否可以在没有 applicationInsight.config 的情况下创建完整的 TelemetryConfiguration 我看到有 TelemetryInitializers。添加
我在 Web 作业中使用 Application Insights。目前我不使用依赖注入(inject)。我需要配置 TelemetryChannel 以便能够在退出 webjob 之前刷新提供程序。
我尝试在 Azure Functions 中使用依赖项注入(inject)进行 TelemetryConfiguration。在我的函数中,当我在函数构造函数中注入(inject) Telemetry
我是一名优秀的程序员,十分优秀!