Set up gRPC instrumentation
Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud. Availability This functionality is generally available and ready for production usage. The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability This functionality is generally available and ready for production usage. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. The Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Serverless Observability
Generally available
Stack
Generally available
APM Agent .NET
Generally available
| Package | Supported versions |
|---|---|
Grpc.Net.Client |
≥2.23.2 <3.0.0 |
gRPC server-side instrumentation is built in to ASP.NET Core (≥8.0.0 ≤10.0.x) and does not require an additional package.
For the full compatibility matrix including supported installation methods, refer to RPC frameworks.
This page assumes the core agent is already set up. If not, see Set up the APM .NET Agent first.
Server-side gRPC instrumentation is automatically included when using the ASP.NET Core setup. No additional package is required.
Add the Elastic.Apm.GrpcClient NuGet package to your project:
dotnet add package Elastic.Apm.GrpcClient
Pass GrpcClientDiagnosticListener to the AddElasticApm method in case of ASP.NET Core:
using Elastic.Apm.GrpcClient;
app.Services.AddElasticApm(new GrpcClientDiagnosticListener());
or passing GrpcClientDiagnosticSubscriber to the Subscribe method
using Elastic.Apm;
using Elastic.Apm.GrpcClient;
Agent.Subscribe(new GrpcClientDiagnosticSubscriber());
Diagnostic events from Grpc.Net.Client are captured as spans.