Que fait observability-edot-dotnet-migrate ?
Migrer une application .NET de l'agent APM .NET classique d'Elastic vers le SDK EDOT .NET. À utiliser lors du passage des packages Elastic.Apm.* vers Elastic.OpenTelemetry.
Aperçu
Cette compétence automatise la migration d'une application .NET existante utilisant l'agent APM .NET classique d'Elastic (paquets Elastic.Apm.*) vers le SDK EDOT .NET (paquet Elastic.OpenTelemetry). Elle garantit une transition en douceur avec un minimum d'interruptions.
Ce qu'elle fait
- Identifie toutes les références aux paquets
Elastic.Apm.*dans les fichiers projet - Remplace ces références par le paquet
Elastic.OpenTelemetry - Met à jour le code de démarrage de l'agent (par exemple,
Elastic.Apm.Agent.Start(...)) pour utiliser le nouveau SDK (par exemple,OpenTelemetry.Sdk.CreateTracerProviderBuilder(...)) - Convertit les appels API spécifiques à Elastic en équivalents OpenTelemetry
- Adapte les options de configuration et les paramètres de l'agent aux nouvelles APIs
Plateformes supportées
- .NET Core 3.1 et versions ultérieures
- .NET 5, 6, 7, 8, 9
- .NET Framework 4.6.1 et versions ultérieures
Utilisation
- Assurez-vous que votre projet utilise actuellement
Elastic.Apm.*. - Exécutez cette compétence dans le répertoire racine de votre solution.
- Suivez les invites pour confirmer les modifications.
- Vérifiez la build et testez votre application.
Exemple
Avant (fichier projet .csproj) :
<PackageReference Include="Elastic.Apm" Version="1.24.0" />
<PackageReference Include="Elastic.Apm.AspNetCore" Version="1.24.0" />
Après :
<PackageReference Include="Elastic.OpenTelemetry" Version="1.0.0" />
Avant (code C#) :
using Elastic.Apm;
Agent.Start(new AgentComponents());
Après :
using OpenTelemetry;
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddElasticOpenTelemetry()
.AddAspNetCoreInstrumentation()
.Build();
Avertissements
- Sauvegardez votre code avant d'exécuter la migration.
- Testez minutieusement après la migration, surtout si vous utilisez des fonctionnalités avancées comme les transactions personnalisées ou les spans.
- Certaines options de configuration peuvent ne pas avoir d'équivalent direct dans OpenTelemetry.