加载中

设置 MongoDB 插桩

软件包 支持的版本
MongoDB.Driver ≥3.0.0 <4.0.0

有关包括支持的安装方法在内的完整兼容性矩阵,请参考 数据访问技术

注意

MongoDB.Driver ≥3.7.0 原生发出 OpenTelemetry span。在支持代理的 OpenTelemetry 桥接器 的运行时中,这些 span 会被自动捕获,因此无需额外的包。在 .NET Framework 上不支持 OpenTelemetry 桥接器;请改用 Elastic.Apm.MongoDb。对于 MongoDB.Driver ≥3.0.0 <3.7.0,也需要此包。

本页假设核心代理已设置完毕。如果尚未设置,请先参阅 设置 APM .NET 代理

Elastic.Apm.MongoDb NuGet 包对官方的 MongoDB.Driver 进行插桩,以将 MongoDB 操作捕获为 APM span,其中包括命令名称、目标数据库和持续时间。

如果您还没有在使用 Elastic.Apm.NetCoreAll,请安装 Elastic.Apm.MongoDb。如果您正在使用 Elastic.Apm.NetCoreAll,则可以跳过此安装步骤并继续进行步骤 2。

dotnet add package Elastic.Apm.MongoDb
		

在创建 MongoClient 时注册 MongoDbEventSubscriber

using MongoDB.Driver;
using Elastic.Apm.MongoDb;

var settings = MongoClientSettings.FromConnectionString(mongoConnectionString);
settings.ClusterConfigurator = builder => builder.Subscribe(new MongoDbEventSubscriber());
var mongoClient = new MongoClient(settings);
		

如何完成设置取决于您将 APM .NET Agent 添加到应用程序中的方式

使用 Elastic.Apm.NetCoreAll 适用于 ASP.NET Core 的一体化包。无需进行其他操作。MongoDB 调用会在每个活动事务上自动捕获。

直接使用 Elastic.Apm.MongoDb。在应用程序启动时订阅一次诊断订阅者

using Elastic.Apm;
using Elastic.Apm.MongoDb;

Agent.Subscribe(new MongoDbDiagnosticsSubscriber());
		

请确保只调用一次。多次调用会导致代理为 MongoDB 操作记录重复的 span。

© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.