Configuration du suivi d'.NET s sur z/OS

Vous pouvez configurer le traçage d'.NET s sur les systèmes z/OS à l'aide d'une instrumentation manuelle. En raison des limitations de la plateforme, l'instrumentation automatique n'est pas disponible sur z/OS.

Pour plus d'informations sur le fonctionnement de la surveillance d'.NET, consultez la section « Comment fonctionne la surveillance d'.NET ».

Activation du traçage d'.NET

Sur les systèmes d' z/OS, la fonctionnalité de profilage API d' CoreCLR n'est pas prise en charge. Par conséquent, l'instrumentation automatique via la réécriture IL et l'intégration d'un profileur natif n'est pas disponible sur cette plateforme.

En raison de ces contraintes architecturales, vous devez recourir à l'instrumentation manuelle pour activer le traçage des applications .NET sur z/OS.

Instana prend en charge deux méthodes d'instrumentation manuelle sur z/OS :

Méthode 1 : Utilisation du SDK d' Instana

Utilisez le SDK de traçage d' Instana s pour créer des segments et des traces personnalisés.

Pour activer le traçage à l'aide du SDK d' Instana, procédez comme suit :

  1. Ajoutez le Instana.Tracing.Core.Sdk paquet NuGet à votre projet.
  2. Créez des intervalles personnalisés dans le code de votre application :

    using Instana.Tracing.Sdk.Spans;
    
    // Create an entry span for incoming requests
    using (var span = CustomSpan.Create(SpanType.ENTRY, "operation-name"))
    {
        span.SetServiceName("your-service-name");
        span.SetEndpointName("endpoint-name");
        span.SetData("custom.key", "custom-value");
    
        // Your application logic here
    }
    
    // Create an intermediate span for internal operations
    using (var span = CustomSpan.Create(SpanType.INTERMEDIATE, "internal-operation"))
    {
        span.SetServiceName("your-service-name");
        span.SetEndpointName("operation-name");
    
        // Your internal logic here
    }
  3. Facultatif : configurez le traceur d' Instana s dans le code de démarrage de votre application (généralement dans Program.cs) afin de définir les noms par défaut des services et des points de terminaison qui s'affichent dans les traces :

    using Instana.Tracing.Sdk;
    
    // Configure Instana Tracer
    TracerConfiguration.ServiceName = "your-service-name";
    TracerConfiguration.EndpointName = "your-endpoint-name";
  4. Déployez et lancez l'application. Générer du trafic vers les points de terminaison de l'application.
  5. Vérifiez que les traces sont bien enregistrées :

    1. Go dans Applications > Services de l'interface utilisateur d' Instana.
    2. Recherchez le nom du service pour consulter ses traces et ses métriques.

Pour plus d'informations sur le SDK de traçage Instana .NET Core, consultez .NET ou .NET Core.

Méthode 2 : Utilisation du SDK d' OpenTelemetry

Utilisez le SDK d' OpenTelemetry, associé à l'exportateur OTLP, pour envoyer des traces vers Instana.

<agent-root-path>/agent/etc/instana/configuration.yamlAvant d'utiliser le SDK d' OpenTelemetry, configurez l'agent Instana pour qu'il accepte les données d' OpenTelemetry en activant la configuration suivante dans le fichier de configuration de l'agent :

# Enable OpenTelemetry
com.instana.plugin.opentelemetry:
  grpc:
    enabled: true
  http:
    enabled: true

# Enable .NET Core AutoTracing
com.instana.plugin.netcore:
  tracing:
    enabled: true

Pour activer le traçage à l'aide du SDK d' OpenTelemetry, procédez comme suit :

  1. Ajoutez les paquets requis OpenTelemetry NuGet à votre projet :

    • OpenTelemetry.Extensions.Hosting
    • OpenTelemetry.Exporter.OpenTelemetryProtocol
    • OpenTelemetry.Exporter.Console (si la journalisation via la console est requise)
    • OpenTelemetry.Instrumentation.AspNetCore (pour les applications web d' ASP.NET Core )
    • OpenTelemetry.Instrumentation.Http (pour l'instrumentation client d' HTTP )
  2. Configurez ` OpenTelemetry ` dans le code de démarrage de votre application (généralement dans Program.cs) :

    using OpenTelemetry.Resources;
    using OpenTelemetry.Trace;
    
    var builder = WebApplication.CreateBuilder(args);
    
    // Configure OpenTelemetry
    builder.Services.AddOpenTelemetry()
        .ConfigureResource(resource =>
        {
            resource.AddService(
                serviceName: "your-service-name",
                serviceVersion: "1.0.0",
                serviceInstanceId: Environment.ProcessId.ToString());
        })
        .WithTracing(tracing =>
        {
            tracing
                .AddSource("your-service-name")
                .AddAspNetCoreInstrumentation()
                .AddHttpClientInstrumentation()
                .AddOtlpExporter(options =>
                {
                    // Configure OTLP endpoint to point to Instana Agent
                    options.Endpoint = new Uri("http://localhost:4317");
                });
        });
  3. Créez des segments personnalisés à l'aide de OpenTelemetry ActivitySource:

    using System.Diagnostics;
    
    // Create an ActivitySource
    private static readonly ActivitySource ActivitySource = new ActivitySource("your-service-name", "1.0.0");
    
    // Create custom spans
    using (var activity = ActivitySource.StartActivity("operation-name"))
    {
        activity?.SetTag("custom.key", "custom-value");
        activity?.SetTag("operation.type", "business-logic");
    
        // Your application logic here
    
        activity?.AddEvent(new ActivityEvent("Operation completed"));
    }
  4. Déployez et lancez l'application. Générer du trafic vers les points de terminaison de l'application.
  5. Vérifiez que les traces sont bien enregistrées :

    1. Go dans Applications > Services de l'interface utilisateur d' Instana.
    2. Recherchez le nom du service pour consulter ses traces et ses métriques.