Lancement du traceur APM

Pour ajouter la prise en charge de la trace à votre application, procédez comme suit :

Remarque

Pour la configuration Helidon, ignorez ces étapes et reportez-vous à Utilisation du traceur APM dans Helidon.
  1. Importez les classes des traceurs OpenTracing et APM comme suit :

    import io.opentracing.Tracer;
    import com.oracle.apm.tracer.ApmTracer;
  2. Le traceur APM peut être lancé à la façon d'un générateur. Le constructeur d'ApmTracer.Builder comporte 2 paramètres : tracerName et serviceName.

    • tracerName : nom du traceur. Il peut s'agir de n'importe quel nom de chaîne, à l'exception d'une valeur NULL.
    • serviceName : nom du service faisant l'objet de rapports par ce traceur. Il peut s'agir de n'importe quelle chaîne, à l'exception d'une valeur NULL.
    Tracer tracer = new ApmTracer.Builder(String tracerName, String serviceName)            
            .<configuration methods>            
            .build();

Avant d'appeler la méthode build() pour créer l'instance du traceur APM, vous pouvez la configurer avec des méthodes de configuration. Certaines méthodes de configuration peuvent également être configurées en définissant des propriétés système Java et des variables d'environnement.

Méthodes de configuration

Méthode Valeur par défaut Description Propriété système Java équivalente Variable d'environnement équivalente
withDataUploadEndpoint(String endpoint)   Définissez l'adresse de téléchargement de données APM requise pour la communication cloud d'Oracle APM. com.oracle.apm.agent.data.upload.endpoint com_oracle_apm_agent_data_upload_endpoint
withDataUploadKey(String dataKey)   Définissez la clé de téléchargement de données APM requise pour la communication cloud d'Oracle APM. com.oracle.apm.agent.private.data.key com_oracle_apm_agent_private_data_key

withTag(String key, String value)

withTag(String key, Boolean value)

withTag(String key, Number value)

withTags(Map<String, Object> tags)

  Définissez des balises statiques à inclure dans toutes les étendues de trace.    
withLogDirectory(String directory) ./apm-tracer-log Indiquez le chemin complet du répertoire de journaux dans lequel sont écrits tous les journaux du traceur APM. Si cette option n'est pas définie, le répertoire de journaux par défaut, apm-tracer-log, est créé dans le répertoire de travail de la JVM. com.oracle.apm.agent.log.directory com_oracle_apm_agent_log_directory

withProperty(String key, String value)

withProperties(Map<String, String> properties)

 

Définissez des propriétés du traceur APM. Cette méthode permet de définir des propriétés par programmation lors du démarrage du traceur APM. Toutes les propriétés peuvent également être définies à l'aide de propriétés système Java ou de variables d'environnement.

Les propriétés sont ignorées si la clé ou la valeur est NULL.

   
withMicrosecondAccurateTimestamp(boolean microsecondAccuracy) False Définissez la précision de tous les horodatages à la microseconde près lorsque cette valeur est True. Par défaut, la précision se fait en millisecondes.    
withCollectMetrics(boolean collectMetrics) True

Définissez le traceur APM de façon à collecter les mesures de serveur et à générer des rapports vers le cloud OCI APM. La valeur par défaut est True.

L'utilisateur peut accéder à toutes les mesures de serveur collectées à partir d'OCI Telemetry.

Pour plus d'informations sur les mesures de serveur collectées, reportez-vous à Collecte de mesures.

   
withCollectResources(boolean collectResources) True

Définissez le traceur APM de façon à collecter les ressources de serveur et à générer des rapports vers le cloud OCI APM.

Toutes les ressources collectées sont utilisées en tant que dimensions pour la requête de données.

Pour plus d'informations sur les mesures de serveur collectées, reportez-vous à Collecte de mesures.

   
withDaemonChannel(String channel)   Le canal de démon APM est une connexion de socket entre le traceur et le démon. Le format de cette valeur de propriété est <hôte>:<port>. Lorsque le démon est démarré avec cet ensemble de propriétés, il accepte la connexion de socket et écoute les données sur le canal indiqué. Lorsque le traceur est démarré avec cet ensemble, l'adresse de téléchargement de données est ignorée et les données sont uniquement envoyées au démon à l'aide de ce canal de socket. com.oracle.apm.agent.daemon.channel com_oracle_apm_agent_daemon_channel
build()   Lancez l'instance de traceur APM.    

Autres propriétés

Les propriétés peuvent être définies en tant que propriétés système Java, en tant que variables d'environnement ou à l'aide de la méthode de générateur Property().

Propriété système Java Variable d'environnement Valeur par défaut Description
com.oracle.apm.agent.daemon.channel com.oracle.apm.agent.daemon.channel   Le canal de démon APM est une connexion de socket entre le traceur et le démon. Le format de cette valeur de propriété est <hôte>:<port>. Lorsque le démon est démarré avec cet ensemble, il accepte la connexion de socket et écoute les données sur le canal indiqué. Lorsque le traceur est démarré avec cet ensemble, l'adresse de téléchargement de données est ignorée et les données sont uniquement envoyées au démon à l'aide de ce canal de socket.
com.oracle.apm.agent.data.upload.proxy.url com_oracle_apm_agent_data_upload_proxy_url   URL du serveur proxy pour la connexion au serveur Oracle APM. Seul le proxy HTTP est pris en charge.
com.oracle.apm.agent.log.filesize.mb com_oracle_apm_agent_log_filesize_mb 20mb Taille du fichier journal. Vous pouvez définir la taille des fichiers journaux à l'aide de cette propriété. La valeur par défaut est 20, c'est-à-dire que la taille d'un seul fichier journal correspond à 20 Mo.
com.oracle.apm.agent.log.rotation.files.count com_oracle_apm_agent_log_rotation_files_count 2 Nombre de fichiers pouvant être créés pour stocker les journaux avec un mécanisme de remplacement. Par exemple : si 2 est indiquée comme valeur de cette propriété, les journaux sont stockés dans le premier fichier jusqu'à atteindre la limite de taille de fichier. Une fois cette limite atteinte, un fichier est créé et prend le relais pour stocker les journaux. Lorsque la limite de taille est atteinte dans le second fichier, le contenu du premier fichier est supprimé et la journalisation démarre dans ce dernier. Les fichiers sont nommés de manière cohérente avec un suffixe numérique. Par exemple, ApmTracer.log et ApmTracer1.log. La valeur par défaut est 2, c'est-à-dire que 2 fichiers sont utilisés pour stocker les journaux.
com.oracle.apm.agent.logging.level com_oracle_apm_agent_logging_level INFO Les niveaux de journalisation sont les suivants : SEVERE, WARNING, INFO, DEBUG. Ils sont classés du plus petit au plus grand nombre d'entrées écrites dans ApmTracer.log.
com.oracle.apm.agent.tracer.propagation.type com_oracle_apm_agent_tracer_propagation_type B3

Le traceur APM ajoutera et lira des en-têtes HTTP pour connecter les étendues dans les appels HTTP. Différents types de format d'en-tête de propagation peuvent être utilisés pour cela. Si vous utilisez également d'autres types de traceur, tels que Zipkin ou Jaeger, vous devrez peut-être ajuster ce paramètre à des fins de compatibilité.

  • B3 : format par défaut utilisé par le traceur Zipkin. Le traceur APM utilisera ce format par défaut.

  • Header names: X-B3-TraceId, X-B3-SpanId, X-B3-ParentSpanId, X-B3-Sampled.

    Notez que la casse d'en-tête unique (b3) n'est actuellement pas prise en charge.

  • Jaeger : format par défaut utilisé par le traceur Jaeger. Noms d'en-tête : uber-trace-id

  • APM : ancien format utilisé par le traceur APM. Noms d'en-tête : X-ORACLE-APM-SPAN-ID, X-ORACLE-APM-TRACE-ID

  • W3C : format de contexte de trace de W3C. Noms d'en-tête : traceparent, tracestate