使用 Application Insights 跟踪自定义 ActivitySource
Track Custom ActivitySource with Application Insights
我正在尝试获取应用程序洞察力以了解库中的自定义 ActivitySource
,但是文档不清楚如何实现这一点。
目前我有:
...
public static readonly ActivitySource Source = new ActivitySource("MyCompany.Library");
...
在库中是这样使用的:
using(var activity = Source.StartActivity("Action"))
{
...
}
在我的初创公司中,我添加了以下内容:
services.ConfigureTelemetryModule<DependencyTrackingTelemetryModule>(
(m, o) => m.IncludeDiagnosticSourceActivities.Add("MyCompany.Library")
);
services.AddApplicationInsightsTelemetryWorkerService();
但是,这些活动并未被应用程序洞察力所接受。
是否还需要其他东西才能让应用程序洞察了解这些活动?
我不想'pollute'这些带有应用程序洞察代码的库
按照以下步骤操作:
- 添加 OpenTelemetry.Exporter.Console NuGet 包。
dotnet add package OpenTelemetry.Exporter.Console
使用指令
使用额外的 OpenTelemetry 更新 Program.cs
using OpenTelemetry;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
using System;
using System.Diagnostics;
using System.Threading.Tasks;
更新 Main() 以创建 OpenTelemetry TracerProvider:
public 静态异步任务 Main()
{
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService("MySample"))
.AddSource("Sample.DistributedTracing")
.AddConsoleExporter()
.Build();
await DoSomeWork();
Console.WriteLine("Example work done");
}
现在应用程序收集分布式跟踪信息并将其显示到控制台:
> dotnet run
您将得到所需的结果。
按照以下 link 进一步参考:
https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-collection-walkthroughs
ApplicationInsights SDK 不支持自定义报告遥测 ActivitySource
。
有一个预览版支持基于 ActivitySource 的遥测。 (它称为 OpenTelemetry AzureMonitorExporter)
https://docs.microsoft.com/azure/azure-monitor/app/opentelemetry-enable?tabs=net
我正在尝试获取应用程序洞察力以了解库中的自定义 ActivitySource
,但是文档不清楚如何实现这一点。
目前我有:
...
public static readonly ActivitySource Source = new ActivitySource("MyCompany.Library");
...
在库中是这样使用的:
using(var activity = Source.StartActivity("Action"))
{
...
}
在我的初创公司中,我添加了以下内容:
services.ConfigureTelemetryModule<DependencyTrackingTelemetryModule>(
(m, o) => m.IncludeDiagnosticSourceActivities.Add("MyCompany.Library")
);
services.AddApplicationInsightsTelemetryWorkerService();
但是,这些活动并未被应用程序洞察力所接受。 是否还需要其他东西才能让应用程序洞察了解这些活动?
我不想'pollute'这些带有应用程序洞察代码的库
按照以下步骤操作:
- 添加 OpenTelemetry.Exporter.Console NuGet 包。
dotnet add package OpenTelemetry.Exporter.Console
使用指令
使用额外的 OpenTelemetry 更新 Program.csusing OpenTelemetry;
using OpenTelemetry.Resources; using OpenTelemetry.Trace; using System; using System.Diagnostics; using System.Threading.Tasks;
更新 Main() 以创建 OpenTelemetry TracerProvider:
public 静态异步任务 Main() {
using var tracerProvider = Sdk.CreateTracerProviderBuilder() .SetResourceBuilder(ResourceBuilder.CreateDefault().AddService("MySample")) .AddSource("Sample.DistributedTracing") .AddConsoleExporter() .Build(); await DoSomeWork(); Console.WriteLine("Example work done"); }
现在应用程序收集分布式跟踪信息并将其显示到控制台:
> dotnet run
您将得到所需的结果。
按照以下 link 进一步参考: https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-collection-walkthroughs
ApplicationInsights SDK 不支持自定义报告遥测 ActivitySource
。
有一个预览版支持基于 ActivitySource 的遥测。 (它称为 OpenTelemetry AzureMonitorExporter) https://docs.microsoft.com/azure/azure-monitor/app/opentelemetry-enable?tabs=net