JetBrains Rider 2026.2 Help

OpenTelemetry

The OpenTelemetry plugin displays logs, metrics, traces, and service relationships from locally running applications directly in JetBrains Rider. Its built-in OTLP receiver lets you inspect telemetry without setting up a separate observability backend.

Install the OpenTelemetry plugin

This functionality relies on the OpenTelemetry plugin, which you need to install and enable. For more information, refer to Open plugin settings.

  1. Press Ctrl+Alt+S to open settings and then select Plugins.

  2. Open the Marketplace tab, find the OpenTelemetry plugin, and click Install (restart the IDE if prompted).

Connect an application

Once installed, the plugin adds the OpenTelemetry tool window. By default, the plugin starts its local OTLP receiver when JetBrains Rider starts.

JetBrains Rider: OpenTelemetry tool window

The OTLP receiver starts automatically so that it is ready before you launch an application. To start it manually instead, clear the Launch OpenTelemetry host on startup checkbox on the Tools | OpenTelemetry page of JetBrains Rider settings Ctrl+Alt+S.

To start or stop the receiver, select the OpenTelemetry node in the OpenTelemetry tool window and use the toolbar buttons.

JetBrains Rider: OpenTelemetry toolbar

Run or debug from the IDE

While the receiver is running, the plugin supplies OTEL_EXPORTER_OTLP_ENDPOINT and the related OTLP environment variables when you run or debug an already instrumented application from a supported run configuration. These variables point the application's exporter to the built-in receiver.

While the receiver is running, the plugin also supplies these variables to every new integrated terminal session. An instrumented application launched from that terminal can therefore connect without additional endpoint configuration. A terminal session keeps the environment it received when it opened. Open a new session if you restart the receiver on a different port.

To keep the OTLP endpoint configured in your run configurations and terminal environment, clear the Overwrite OpenTelemetry environment variables checkbox on the Tools | OpenTelemetry page of JetBrains Rider settings Ctrl+Alt+S.

Connect an application manually

You can also connect an instrumented application started outside the IDE. Start the receiver, then click Copy env vars in the empty state of the OpenTelemetry tool window. Add the copied variables to the application's environment before starting it.

The receiver uses a random available port by default. To keep the endpoint stable, select Use fixed OTLP server port and set the port on the Tools | OpenTelemetry page of JetBrains Rider settings Ctrl+Alt+S.

Explore OpenTelemetry data

The tool window groups telemetry by service and service instance. Select the top-level OpenTelemetry node to inspect data from every service, or select a service or instance to narrow the view.

The plugin keeps collected data in memory and clears it when the OTLP receiver restarts. To remove an instance earlier, use its context menu in the tree.

Logs

The Logs tab shows the timestamp, severity, service, and message for each log record. Search the message text or filter records by severity and time. Select a record to inspect its attributes.

JetBrains Rider: OpenTelemetry logs for a service instance

In Rider, click Navigate To Code to find the log message template in your project. Navigation is available when the record contains the {OriginalFormat} or message_template.text attribute. It does not navigate to third-party or decompiled code.

Click Open In Editor to serialize the selected record as JSON and open it as a scratch file. You can find the file later under Scratches and Consoles in the Explorer tool window.

Metrics

The Metrics tab organizes metrics in a tree. Select a gauge, sum, or histogram to plot its values. You can filter the chart by metric attributes.

JetBrains Rider: OpenTelemetry metric chart

Traces

The Traces tab lists traces with their start time, duration, and services. Filter the list by time or minimum duration.

JetBrains Rider: OpenTelemetry traces

Double-click a trace, or select it and click Examine Trace, to open its span hierarchy. Select a span to inspect its operation, timing, service, and attributes.

JetBrains Rider: OpenTelemetry trace spans

Service Map

The Service Map builds a diagram from the distributed traces received by the plugin. It shows observed relationships between services, endpoints, databases, and message queues.

To open the map, open the Traces tab and click Service Map on the toolbar. The map includes only relationships present in the collected traces, so exercise the application flow you want to inspect first.

JetBrains Rider: OpenTelemetry service map

Use telemetry with coding agents

The plugin provides experimental tools through the JetBrains MCP Server. After you enable and configure the MCP Server, a compatible coding agent can query the telemetry currently held by the plugin.

  • get_log_records returns log records and supports filters for service, message, severity, and time.

  • get_spans returns spans and supports filters for service, trace, span, and time.

  • get_services returns discovered services and their instances.

  • get_service_map returns relationships derived from collected traces.

These tools expose only the data received by the local OTLP receiver. The agent cannot query signals that the application did not export.

Use a local OpenTelemetry Collector

If your application already sends telemetry through an OpenTelemetry Collector, add the plugin's receiver as another OTLP exporter. This lets the Collector continue sending data to your existing destinations while the plugin displays the same signals in the IDE.

Forward telemetry from an OpenTelemetry Collector

  1. On the Tools | OpenTelemetry page of JetBrains Rider settings Ctrl+Alt+S, select Use fixed OTLP server port and note the configured port. The following example uses the default fixed port, 17011.

  2. Add an OTLP exporter that points to the plugin:

    exporters: otlp/ide: endpoint: "localhost:17011" tls: insecure: true
  3. Add otlp/ide to the exporters for each signal you want to inspect. Keep any existing exporters in the same pipelines.

    service: pipelines: traces: exporters: [otlp/ide] metrics: exporters: [otlp/ide] logs: exporters: [otlp/ide]
03 December 2025