Was macht observability-edot-dotnet-instrument?
Instrumentieren Sie eine .NET-Anwendung mit dem Elastic Distribution of OpenTelemetry (EDOT) .NET SDK für automatisches Tracing, Metriken und Logs. Verwenden Sie dies, wenn Sie einer .NET-Anwendung ohne vorhandenen APM-Agenten Observability hinzufügen.
Voraussetzungen
- .NET 6.0 oder höher
- Ein Elastic Observability Cluster (Elastic Cloud oder Self-Managed)
- API-Schlüssel oder ein gültiges Authentifizierungstoken für Elastic
Installation
Fügen Sie das NuGet-Paket Elastic.OpenTelemetry zu Ihrem Projekt hinzu:
dotnet add package Elastic.OpenTelemetry
Konfiguration
Fügen Sie in Ihrer Program.cs-Datei die OpenTelemetry-Instrumentierung hinzu:
using OpenTelemetry;
using Elastic.OpenTelemetry;
var builder = WebApplication.CreateBuilder(args);
// Fügen Sie das Elastic OpenTelemetry SDK hinzu
builder.Services.AddElasticOpenTelemetry();
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
Umgebungsvariablen
Konfigurieren Sie die Verbindung zu Ihrem Elastic Observability Cluster über Umgebungsvariablen:
| Variable | Beschreibung |
|---|---|
ELASTIC_ENDPOINT | Die URL Ihres Elastic Observability Endpunkts |
ELASTIC_API_KEY | Der API-Schlüssel für die Authentifizierung |
ELASTIC_CLOUD_ID | Die Cloud-ID für Elastic Cloud (alternativ zu Endpunkt) |
ELASTIC_APM_SERVICE_NAME | Der Name Ihrer .NET-Anwendung |
ELASTIC_APM_ENVIRONMENT | Die Umgebung (z. B. production, staging) |
ELASTIC_OTEL_LOG_LEVEL | Log-Level für das SDK (standardmäßig Information) |
Beispiel für Umgebungsvariablen
export ELASTIC_ENDPOINT="https://my-deployment.es.eastus2.azure.elastic-cloud.com"
export ELASTIC_API_KEY="base64-encoded-api-key"
export ELASTIC_APM_SERVICE_NAME="my-dotnet-service"
export ELASTIC_APM_ENVIRONMENT="production"
Weitere Konfiguration
Sie können zusätzliche OpenTelemetry-Instrumentierungen hinzufügen, z. B. für HTTP-Anfragen oder Datenbanken:
using OpenTelemetry.Instrumentation.AspNetCore;
using OpenTelemetry.Instrumentation.Http;
builder.Services.AddElasticOpenTelemetry(options =>
{
options.Instrumentations.AddAspNetCore();
options.Instrumentations.AddHttpClient();
});
Überprüfen der Instrumentierung
Starten Sie Ihre Anwendung und führen Sie einige Anfragen aus. Die Telemetriedaten sollten in Ihrem Elastic Observability Cluster erscheinen. Sie können dies im Kibana-Bereich "APM" und "Logs" überprüfen.
Fehlerbehebung
- Stellen Sie sicher, dass die Umgebungsvariablen korrekt gesetzt sind.
- Überprüfen Sie die Logs Ihrer Anwendung auf Fehler des OpenTelemetry SDKs.
- Vergewissern Sie sich, dass Ihr Elastic Observability Cluster Zugriff von Ihrer Anwendung aus zulässt.
Unterstützte Plattformen
- .NET 6, 7, 8 und höher
- Windows, Linux und macOS
- Docker / Kubernetes
- Azure App Services, AWS Elastic Beanstalk und andere Cloud-Umgebungen