Instancier le traceur APM

Pour ajouter la prise en charge de la fonction de traçage à votre application, procédez comme suit :

Note

Pour la configuration Helidon, ignorez ces étapes et reportez-vous à Utiliser le traceur APM dans Helidon.
  1. Importez les classes de traceur Opentracing et de traceur APM en procédant de la façon suivante :

    import io.opentracing.Tracer;
    import com.oracle.apm.tracer.ApmTracer;
  2. Le traceur APM peut être instancié dans le style générateur. Le constructeur d'ApmTracer.Builder comporte 2 paramètres : tracerName et serviceName.

    • tracerName : Nom de ce traceur. Il peut s'agir de n'importe quel nom de type chaîne, sauf une chaîne nulle.
    • serviceName : Nom du service sur lequel porte ce traceur. Il peut s'agir de n'importe quelle chaîne, sauf une chaîne nulle.
    Tracer tracer = new ApmTracer.Builder(String tracerName, String serviceName)            
            .<configuration methods>            
            .build();

Avant d'appeler la méthode build() pour créer l'instance de traceur APM, cette dernière peut être configurée 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 et des variables d'environnement Java.

Méthodes de configuration

Méthode Valeur par défaut Description Propriété de système Java équivalente Variable d'environnement équivalente
withDataUploadEndpoint(String endpoint)   Définir le point d'extrémité de chargement des données APM requis pour la communication avec Oracle APM Cloud. com.oracle.apm.agent.data.upload.endpoint com_oracle_apm_agent_data_upload_endpoint
withDataUploadKey(String dataKey)   Définir la clé de chargement des données APM requise pour la communication avec Oracle APM Cloud. 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éfinir les marqueurs statiques à inclure dans tous les intervalles de traçage.    
withLogDirectory(String directory) ./apm-tracer-log Indiquer le chemin d'accès complet du répertoire de journalisation dans lequel tous les journaux du traceur APM sont écrits. Si cette valeur n'est pas définie, le répertoire de journalisation par défaut, apm-tracer-log, est créé dans le répertoire de travail de la machine virtuelle Java. com.oracle.apm.agent.log.directory com_oracle_apm_agent_log_directory

withProperty(String key, String value)

withProperties(Map<String, String> properties)

 

Définir une ou plusieurs propriétés de traceur APM. Des propriétés peuvent ainsi être définies par programmation au moment du démarrage du traceur APM. Toutes les propriétés peuvent également être définies au moyen des propriétés système Java ou des variables d'environnement.

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

   
withMicrosecondAccurateTimestamp(boolean microsecondAccuracy) false Régler tous les horodatages à la précision des microsecondes lorsque cela est vrai. La valeur par défaut est la précision en millisecondes.    
withCollectMetrics(boolean collectMetrics) true

Définir le traceur APM pour qu'il collecte les mesures du serveur et les transmette à OCI APM Cloud. La valeur par défaut est Vrai.

L'utilisateur peut accéder à toutes les mesures de serveur collectées à partir du service de télémétrie d'OCI.

Voir Collecter des mesures pour plus de détails sur les mesures de serveur collectées.

   
withCollectResources(boolean collectResources) true

Définir le traceur APM pour qu'il collecte les ressources du serveur et les transmette à OCI APM Cloud.

Toutes les ressources collectées sont utilisées en tant que dimension aux fins d'interrogation des données.

Voir Collecter des mesures pour plus de détails sur les mesures de serveur collectées.

   
withDaemonChannel(String channel)   Le canal de démon APM est une connexion de connecteur logiciel entre le traceur et le démon. Le format de cette valeur de propriété est <hôte> :<port>. Si cette propriété est définie lorsque le démon est démarré, il accepte la connexion de connecteur logiciel et écoute les données sur ce canal. Si cette propriété est définie lorsque le traceur démarré, le point d'extrémité de chargement des données est ignoré et les données sont envoyées uniquement au démon à l'aide de ce canal à connecteur logiciel. com.oracle.apm.agent.daemon.channel com_oracle_apm_agent_daemon_channel
build()   Instancier l'instance de traceur APM.    

Autres propriétés

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

Propriété de 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 connecteur logiciel entre le traceur et le démon. Le format de cette valeur de propriété est <hôte> :<port>. Si cette propriété est définie lorsque le démon est démarré, il accepte la connexion de connecteur logiciel et écoute les données sur ce canal. Si cette propriété est définie lorsque le traceur démarré, le point d'extrémité de chargement des données est ignoré et les données sont envoyées uniquement au démon à l'aide de ce canal à connecteur logiciel.
com.oracle.apm.agent.data.upload.proxy.url com_oracle_apm_agent_data_upload_proxy_url   URL du serveur mandataire pour la connexion au serveur Oracle APM. Seul un mandataire HTTP est pris en charge.
com.oracle.apm.agent.log.filesize.mb com_oracle_apm_agent_log_filesize_mb 20 Mo Taille du fichier journal. Vous pouvez indiquer la taille du fichier journal à l'aide de cette propriété. La valeur par défaut est "20", c'est-à-dire que 20 Mo sera la taille d'un fichier journal.
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 substitution. Exemple : Si nous spécifions "2" comme valeur de cette propriété, les journaux seront stockés dans le premier fichier jusqu'à ce que la taille limite du fichier soit atteinte. Une fois la limite de taille de fichier atteinte, un nouveau fichier est créé et il continue de stocker les journaux. Une fois la taille limite du deuxième fichier atteinte, le premier fichier est supprimé et la journalisation se poursuit dans le premier fichier. Les fichiers seront nommés de manière appropriée 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 seront utilisés pour stocker les journaux.
com.oracle.apm.agent.logging.level com_oracle_apm_agent_logging_level INFO Le niveau de journal peut être SEVERE, WARNING, INFO, DEBUG dans l'ordre des entrées les moins nombreuses aux plus nombreuses écrites dans ApmTracer.log.
com.oracle.apm.agent.tracer.propagation.type com_oracle_apm_agent_tracer_propagation_type B3

Le traceur APM ajoutera des en-têtes HTTP et les lira pour connecter les intervalles sur les appels HTTP. Différents types de format d'en-tête de propagation peuvent être utilisés à cette fin. Si vous utilisez également d'autres types de traceur, tels que Zipkin ou Jaeger, il peut être nécessaire d'ajuster ce paramètre pour qu'ils fonctionnent ensemble.

  • B3 : Format par défaut utilisé par le traceur Zipkin. Le traceur APM utilise celui-ci par défaut.

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

    Notez que le cas d'en-tête unique (b3) n'est pas pris en charge actuellement.

  • 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