JetBrains Rider 2026.1 Help

OpenTelemetry

OpenTelemetry 插件将运行时可观测性引入到您的开发流程中。 它收集、处理并显示日志、指标和跟踪,帮助您了解应用程序中服务的运行时行为及其相互关系。

安装 OpenTelemetry 插件

此功能依赖于 OpenTelemetry 插件,您需要安装并启用该插件。 更多信息请参阅 启用插件设置

  1. 按下 Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 Marketplace 选项卡,找到 OpenTelemetry 插件,然后单击 安装 (如有提示,请重启 IDE)。

安装完成后,插件会在 服务窗口 中添加 OpenTelemetry 服务。 默认情况下,一旦您 run your project ,该服务就会开始收集数据(当前支持 .NET Project.NET Launch Settings 配置)。

JetBrains Rider:服务窗口中的 OpenTelemetry

在大多数情况下,您希望在启动目标应用之前运行 OpenTelemetry 服务,因此默认情况下,在启动 Rider 时会自动启动该服务。 要更改此设置,请在 JetBrains Rider 设置 Ctrl+Alt+S工具 | OpenTelemetry 页面上清除 在启动时启动 OpenTelemetry 主机 复选框。

要启动或停止该服务,请在 服务 窗口中选择 OpenTelemetry 节点,并使用工具栏上的相应按钮。

JetBrains Rider:OpenTelemetry 工具栏

服务运行时,工具栏还会显示主机地址及相应的环境变量。 您可以使用它们手动添加 gRPC OTLP 端点,将在 IDE 之外本地启动的任意应用加入到分析中。

默认情况下,端口会随机分配,但您可以在 JetBrains Rider 设置 Ctrl+Alt+S工具 | OpenTelemetry 页面中使用 使用固定的 OTLP 服务器端口 复选框进行更改。

对于从 IDE 启动的 .NET 应用, OTEL_EXPORTER_OTLP_ENDPOINT 环境变量会自动设置。 这意味着,如果应用已配置为使用 OpenTelemetry,并添加了 OTLP 导出器,但在代码中未显式设置端点,则该应用将自动开始向 Rider OTLP 服务器发送数据。 您可以在 JetBrains Rider 设置 Ctrl+Alt+S工具 | OpenTelemetry 页面上清除 覆盖 OpenTelemetry 环境变量 复选框,以禁用对该环境变量的自动分配。

研究 OpenTelemetry 数据

OpenTelemetry 数据的单位是应用程序实例(按照规范的术语为 service instance)。 默认情况下,实例通过 GUID 标识,并按生成它们的应用进行分组。 在 日志 选项卡中会显示时间戳、日志级别、日志消息等详细信息。 您可以按文本、级别或其他属性筛选日志,以便轻松聚焦相关信息。

JetBrains Rider:服务实例的 OpenTelemetry 日志

日志和指标存储在内存中,并会在 OTLP 服务器重启时被清除。

您可以使用上下文菜单从树视图中移除不必要的实例。

在工具栏上单击 导航到代码 ,即可从日志条目跳转到相应的源代码位置。 请注意,这需要日志条目中包含 {OriginalFormat} 属性,且不支持导航到第三方或反编译的代码。

在工具栏上单击 在编辑器中打开 ,可将日志条目序列化为 JSON,并在编辑器中打开。 序列化的条目将被保存,并显示在 资源管理器工具窗口 中的 临时文件和控制台 节点下。

研究跟踪和跨度

跟踪 选项卡显示所有可用的 跟踪 及其详细信息。 你可以按时间、持续时间或 ID 筛选跟踪。

要直观地研究 跨度 ,请在列表中选择一个跟踪并点击 检查跟踪记录

JetBrains Rider:OpenTelemetry - 跟踪 - 跨度视图

服务地图

当您分析多个应用和服务时,您可以基于 traces 创建架构图(服务地图)。 该地图显示服务、端点、数据库和消息队列,帮助您了解系统内的交互模式和依赖关系。

请确保您的应用和服务生成分布式跟踪(例如通过 HTTP 请求),以便填充服务地图。

要查看服务地图,请在 服务 窗口中选择 OpenTelemetry 节点,然后单击相应的工具栏按钮:

JetBrains Rider:OpenTelemetry 服务地图

自动插桩

当您从 IDE 运行 ASP.NET Core 应用时,JetBrains Rider 可在运行时注入必要的 OpenTelemetry 依赖项,使应用自动开始发送 OpenTelemetry 数据。

默认情况下,自动插桩处于禁用状态。 要启用它,请在 JetBrains Rider 设置 Ctrl+Alt+S工具 | OpenTelemetry 页面上选中 允许自动插桩 复选框。

自动插桩旨在用于快速测试。 对于类似生产环境的设置,建议手动添加并配置 OpenTelemetry 依赖项。 如果您的项目已包含 OpenTelemetry 包,将跳过自动插桩。

手动插桩示例

以下是会被自动插桩的 ASP.NET Core 应用示例:

var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", () => "Hello World!"); app.Run();

以下是配置了 OpenTelemetry 依赖项的同一应用:

var builder = WebApplication.CreateBuilder(args); builder.Services.AddOpenTelemetry() .ConfigureResource(resource => resource.AddService(builder.Environment.ApplicationName)) .WithMetrics(metrics => { metrics .AddAspNetCoreInstrumentation() .AddRuntimeInstrumentation() .AddMeter("Microsoft.AspNetCore.Hosting") .AddMeter("Microsoft.AspNetCore.Server.Kestrel"); }) .WithTracing(tracing => { tracing .AddAspNetCoreInstrumentation(); }) .UseOtlpExporter(); builder.Logging.AddOpenTelemetry(logging => { logging.IncludeFormattedMessage = true; logging.IncludeScopes = true; }); var app = builder.Build(); app.MapEndpoints(); app.MapGet("/", () => "Hello World!"); app.Run();

与本地 OpenTelemetry 提供程序集成

Rider OpenTelemetry Satellite 服务支持 OTLP gRPC collector/exporter API ,可与在 IDE 之外运行的现有本地 OpenTelemetry 提供程序集成。 这使您可以将遥测数据(跟踪、日志、指标)直接发送到 Rider,或通过本地 OpenTelemetry Collector 发送。

直接发送遥测数据

  1. 在 JetBrains Rider 设置 的 Ctrl+Alt+S 中的 工具 | OpenTelemetry 页面,取消选中 覆盖 OpenTelemetry 环境变量 ,并配置 使用固定的 OTLP 服务器端口 ,将 Rider OpenTelemetry 服务绑定到固定端口。

  2. 在您的应用中,将 OTLP 导出器配置为指向 Satellite 服务。 端点为 http://localhost:<port> ,其中 <port> 与插件设置中的配置一致。

如果需要将数据转发到多个目标(例如 Rider 和外部监控服务),请使用 OpenTelemetry Collector

通过 OpenTelemetry Collector 发送遥测数据

  1. 在 JetBrains Rider 设置 的 Ctrl+Alt+S 中的 工具 | OpenTelemetry 页面,取消选中 覆盖 OpenTelemetry 环境变量 ,并配置 使用固定的 OTLP 服务器端口 ,将 Rider OpenTelemetry 服务绑定到固定端口。

  2. 配置 OpenTelemetry Collector 以接收来自您的应用程序的 OTLP 导出器的遥测数据。

    通过将其添加为导出器(例如, endpoint: "localhost:17011" ),将数据导出到 Rider OpenTelemetry Satellite 服务。

  3. 将 Rider OpenTelemetry Satellite 服务添加为收集器。 例如:

    otlp/satellite: endpoint: "localhost:17011" tls: insecure: true
  4. 在 OpenTelemetry Collector 配置中引用相应的管道(traces/metrics/logs),并在这些管道中包含 Rider OpenTelemetry Satellite 服务。 例如:

    service: pipelines: traces: receivers: ... exporters: [otlp/satellite] metrics: receivers: ... exporters: [otlp/satellite] logs: receivers: ... exporters: [otlp/satellite]
2026年 3月 25日