Tous les produits
Search
Centre de documentation

Managed Service for OpenTelemetry:Rapportez les données d'application Java avec l'agent SkyWalking

Dernière mise à jour :Sep 10, 2026

Après avoir instrumenté votre application à l'aide de SkyWalking et rapporté les données de trace vers Managed Service for OpenTelemetry, Managed Service for OpenTelemetry commence à surveiller votre application. Vous pouvez consulter diverses données de surveillance, telles que la topologie des applications, les traces, les transactions anormales, les transactions lentes et l'analyse SQL. Cette rubrique décrit comment utiliser l'agent Java SkyWalking pour l'instrumentation automatique et fournit des informations sur ses attributs configurables.

Prérequis

  • Ouvrez la page de téléchargement de SkyWalking et téléchargez SkyWalking 6.X.X ou une version ultérieure (la dernière version stable est recommandée). Placez le dossier agent extrait dans un répertoire accessible au processus Java.

  • Tous les plugins sont stockés dans le répertoire /plugins. Pour activer un nouveau plugin, ajoutez-le à ce répertoire avant le démarrage. Pour désactiver un plugin, supprimez-le de ce répertoire. Par défaut, les fichiers journaux sont écrits dans le répertoire /logs.

Avertissement

Les fichiers journaux, les plugins et les fichiers de configuration se trouvent dans le dossier de l'agent. Ne modifiez pas la structure des répertoires.

Obtenir un endpoint

New console

  1. Connectez-vous à la console Managed Service for OpenTelemetry. Dans le volet de navigation de gauche, cliquez sur Integration Center.

  2. Sur la page Integration Center, cliquez sur la carte SkyWalking dans la section Open Source Frameworks.

  3. Dans le panneau SkyWalking, cliquez sur l'onglet Start Integration, puis sélectionnez la région dans laquelle vous souhaitez rapporter les données.

    Remarque

    Lorsque vous accédez à une région pour la première fois, les ressources y sont automatiquement initialisées.

  4. Configurez le paramètre Connection Type et copiez un endpoint.

    Si votre service est déployé sur Alibaba Cloud et réside dans la région que vous avez sélectionnée, nous vous recommandons de définir ce paramètre sur Alibaba Cloud VPC Network. Sinon, définissez ce paramètre sur Public Network.

    image.png

Old console

  1. Connectez-vous à la console Managed Service for OpenTelemetry.

  2. Dans le volet de navigation de gauche, cliquez sur Cluster Configurations. Sur la page qui s'affiche, cliquez sur l'onglet Access point information.

  3. Dans la barre de navigation supérieure, sélectionnez la région dans laquelle vous souhaitez rapporter les données. Dans la section Cluster Information, activez l'option Show Token.

  4. Définissez le paramètre Client sur SkyWalking.

    Dans la colonne Related Information du tableau, copiez un endpoint.

    SkyWalking接入点信息

    Remarque

    Si votre application est déployée dans un environnement de production Alibaba Cloud, utilisez un endpoint VPC. Sinon, utilisez un endpoint public.

Contexte

SkyWalking est un outil populaire de surveillance des performances des applications (APM) conçu pour les applications construites sur des architectures microservices, Cloud Native et conteneurisées (Docker, Kubernetes et Mesos). Au cœur de SkyWalking se trouve un système de traçage distribué.

Pour utiliser SkyWalking afin de rapporter les données de votre application Java vers la console Managed Service for OpenTelemetry, vous devez d'abord instrumenter l'application. SkyWalking prend en charge l'instrumentation automatique pour des frameworks tels que Dubbo, gRPC, JDBC, OkHttp, Spring, Tomcat, Struts et Jedis, ainsi que l'instrumentation manuelle avec OpenTracing. Cette rubrique décrit la méthode d'instrumentation automatique.

Démo

Référentiel de code : Démo SkyWalking

Instrumentez une application Java avec SkyWalking

  1. Téléchargez l'agent Java SkyWalking.

  2. Configurez les informations de connexion et de service dans le fichier de configuration de l'agent Java SkyWalking.

    collector.backend_service=<endpoint> // Replace with the endpoint obtained from the prerequisites.
    agent.authentication=<token> // Replace with the authentication token obtained from the prerequisites.
    agent.service_name=<service-name> // Replace with your actual service name.
  3. Spécifiez le chemin vers l'agent SkyWalking en fonction de l'environnement d'exécution de votre application.

    Remarque

    Dans les exemples suivants, remplacez <skywalking-agent-path> par le chemin absolu vers skywalking-agent.jar dans le dossier de l'agent.

    Linux Tomcat 7 / Tomcat 8

    Ajoutez ce qui suit à la première ligne de tomcat/bin/catalina.sh :

    CATALINA_OPTS="$CATALINA_OPTS -javaagent:<skywalking-agent-path>"; export CATALINA_OPTS

    Windows Tomcat 7 / Tomcat 8

    Ajoutez ce qui suit à la première ligne de tomcat/bin/catalina.bat :

    set "CATALINA_OPTS=-javaagent:<skywalking-agent-path>"

    JAR or Spring Boot

    Ajoutez le paramètre -javaagent à la commande de démarrage de votre application.

    Important

    Le paramètre -javaagent doit apparaître avant le paramètre -jar.

    java -javaagent:<skywalking-agent-path> -jar yourApp.jar

    Jetty

    Ajoutez les lignes suivantes au fichier de configuration {JETTY_HOME}/start.ini :

    --exec
    -javaagent:<skywalking-agent-path>
  4. Redémarrez votre application.

Attributs configurables de l'agent Java

L'agent Java SkyWalking prend en charge un large éventail d'attributs configurables par l'utilisateur. Pour obtenir la liste complète des attributs, consultez le fichier config/agent.config dans la démo d'exemple.

Attributs clés

Les attributs suivants sont basés sur apache-skywalking-java-agent-8.16.0.

Afficher les attributs de l'agent

Paramètre

Description

Valeur par défaut

agent.namespace

Spécifie le namespace pour isoler les en-têtes lors de la propagation inter-processus. S'il est défini, le format de l'en-tête est HeaderName:Namespace.

Non défini

agent.service_name

Le nom du service affiché dans l'interface utilisateur de SkyWalking. Cela correspond à Application dans la v5.x et à Service dans la v6.x. Définissez un nom unique pour chaque service. Toutes les instances d'un service doivent partager le même nom.

Your_ApplicationName

agent.sample_n_per_3_secs

Définit le nombre de traces à échantillonner toutes les 3 secondes. Une valeur inférieure ou égale à 0 désactive l'échantillonnage.

Non défini

agent.authentication

La nécessité d'une authentification dépend de la configuration du backend. Vous pouvez afficher le jeton sur l'endpoint du serveur. La plupart des cas d'utilisation nécessitent une extension d'authentification sur le backend. Actuellement, seule l'authentification de base est implémentée.

Non défini

agent.span_limit_per_segment

Le nombre maximal de spans dans un seul segment. SkyWalking utilise ce paramètre pour estimer l'utilisation de la mémoire de l'application.

Non défini

agent.ignore_suffix

Si le nom de l'opération de la première span correspond à une entrée de cette liste, l'agent ignore le segment.

Non défini

agent.is_open_debugging_class

Si la valeur est true, SkyWalking enregistre tous les fichiers de classe instrumentés dans le répertoire /debugging. L'équipe SkyWalking peut demander ces fichiers pour résoudre les problèmes de compatibilité.

Non défini

agent.cause_exception_depth

La profondeur de la chaîne de causes de l'exception à enregistrer.

5

agent.force_reconnection_period

L'intervalle, en tant que multiple de grpc_channel_check_interval, pour forcer une reconnexion gRPC.

1

agent.operation_name_threshold

Définit la longueur maximale recommandée pour un nom d'opération. La limite absolue est de 190.

150

agent.keep_tracing

Si la valeur est true, l'agent continue de tracer même si le backend n'est pas disponible.

false

osinfo.ipv4_list_size

Le nombre maximal d'adresses IPv4 à rapporter.

10

collector.grpc_channel_check_interval

L'intervalle, en secondes, pour vérifier l'état du canal gRPC.

30

collector.backend_service

L'adresse du backend qui reçoit les données de trace SkyWalking.

127.0.0.1:11800

collector.heartbeat_period

L'intervalle, en secondes, auquel l'agent envoie des signaux de présence (heartbeats).

30

collector.grpc_upstream_timeout

Le délai d'expiration, en secondes, pour l'envoi des données en amont par le client gRPC.

30

collector.get_profile_task_interval

L'intervalle, en secondes, auquel le profileur récupère la liste des tâches de profilage.

20

logging.level

Le niveau de journalisation de l'agent.

DEBUG

logging.file_name

Le nom du fichier journal.

skywalking-api.log

logging.output

La destination de la sortie des journaux. Définissez sur FILE pour journaliser dans un fichier ou sur CONSOLE pour journaliser sur la sortie standard.

FILE

logging.dir

Le répertoire des journaux. Si vide, les journaux sont écrits dans stdout.

""

logging.pattern

Le modèle de format des journaux. Les spécificateurs de conversion suivants sont pris en charge :

  • %level : Le niveau de journalisation.

  • %timestamp : L'heure actuelle au format yyyy-MM-dd HH:mm:ss:SSS.

  • %thread : Le nom du thread actuel.

  • %msg : Le message du journal.

  • %class : Le nom simple de la classe cible.

  • %throwable : La trace de pile de l'exception journalisée.

  • %agent_name : La valeur de agent.service_name.

%level %timestamp %thread %class : %msg %throwable

logging.max_file_size

La taille maximale d'un fichier journal. Lorsqu'un fichier journal dépasse cette taille, l'agent l'archive et en crée un nouveau.

300 1024 1024

logging.max_history_files

Le nombre maximal de fichiers journaux archivés à conserver. Une valeur inférieure ou égale à 0 signifie que tous les fichiers archivés sont conservés.

-1

Méthodes de configuration

Propriétés système

Utilisez le préfixe -Dskywalking. suivi du nom de l'attribut issu du fichier agent.config. Par exemple :

# Configure agent.service_name using a system property
java -javaagent:/path/to/skywalking-agent.jar -Dskywalking.agent.service_name=<your_service_name> -jar your-project.jar

Options de l'agent

Ajoutez les attributs au chemin de l'agent dans les arguments JVM.

# Syntax
-javaagent:/path/to/skywalking-agent.jar=[key1]=[value1],[key2]=[value2]
# Example
java -javaagent:/path/to/skywalking-agent.jar=agent.service_name=<your-service-name>,agent.authentication=<your-token> -jar your-project.jar

Variables d'environnement

L'agent SkyWalking lit automatiquement les variables d'environnement. Vous pouvez trouver la variable d'environnement correspondante pour chaque attribut dans le fichier config/agent.config. Par exemple, la variable d'environnement pour agent.service_name est SW_AGENT_NAME.

agent.service_name=${SW_AGENT_NAME:default_name}
# Set the environment variable
export SW_AGENT_NAME=<your_service_name>

Priorité

Les paramètres de configuration sont appliqués selon la priorité suivante, de la plus élevée à la plus faible : options de l'agent, propriétés système, variables d'environnement et fichier de configuration.

Plug-ins de l'agent Java

L'agent Java SkyWalking prend en charge une variété de middlewares, de frameworks et de bibliothèques. Tous les plug-ins pris en charge sont disponibles dans le dossier /plugins de l'application de démonstration.

Activation des plug-ins

Tous les plug-ins présents dans le dossier /plugins sont actifs par défaut. Pour désactiver un plug-in, supprimez son fichier JAR du dossier /plugins.

Plug-ins officiellement pris en charge

Tous les plug-ins officiellement pris en charge se trouvent dans le dossier /plugins.

Plug-ins optionnels

Les plug-ins optionnels résident dans le dossier optional-plugins du package de l'agent ou dans un dépôt tiers. Pour activer un plug-in optionnel, déplacez son fichier JAR vers le dossier /plugins.

optional-plugins/
  apm-customize-enhance-plugin-8.16.0.jar
  apm-ehcache-2.x-plugin-8.16.0.jar
  apm-fastjson-1.x-plugin-8.16.0.jar
  apm-gson-2.x-plugin-8.16.0.jar
  apm-guava-cache-plugin-8.16.0.jar
  apm-jackson-2.x-plugin-8.16.0.jar
  apm-kotlin-coroutine-plugin-8.16.0.jar
  apm-mybatis-3.x-plugin-8.16.0.jar
  apm-quartz-scheduler-2.x-plugin-8.16.0.jar
  apm-resttemplate-6.x-plugin-8.16.0.jar
  apm-sentinel-1.x-plugin-8.16.0.jar
  apm-shenyu-2.4.x-plugin-8.16.0.jar
  apm-spring-annotation-plugin-8.16.0.jar
  apm-spring-cloud-gateway-2.0.x-plugin-8.16.0.jar
  apm-spring-cloud-gateway-2.1.x-plugin-8.16.0.jar
  apm-spring-cloud-gateway-3.x-plugin-8.16.0.jar
  apm-spring-tx-plugin-8.16.0.jar
  apm-spring-webflux-5.x-plugin-8.16.0.jar
  apm-springmvc-annotation-6.x-plugin-8.16.0.jar
  apm-trace-ignore-plugin-8.16.0.jar
  apm-zookeeper-3.4.x-plugin-8.16.0.jar
  trace-sampler-cpu-policy-plugin-8.16.0.jar

Plug-ins Bootstrap

En raison de risques potentiels pour la stabilité, tous les plug-ins bootstrap sont optionnels. Ils se trouvent dans le dossier bootstrap-plugins. Pour activer un plug-in bootstrap, déplacez son fichier JAR vers le dossier /plugins.

bootstrap-plugins/
  apm-jdk-forkjoinpool-plugin-8.16.0.jar
  apm-jdk-http-plugin-8.16.0.jar
  apm-jdk-threading-plugin-8.16.0.jar
  apm-jdk-threadpool-plugin-8.16.0.jar

Plug-ins pris en charge

Certains plug-ins sont disponibles uniquement via un dépôt tiers en raison d'impacts potentiels sur les performances ou de limitations d'utilisation. Pour plus d'informations, consultez le dépôt SkyAPM Java Plugin Extension.

Développer pour afficher la liste des plug-ins

Framework

Version du plug-in

Serveur HTTP

Tomcat 7

Tomcat 8

Tomcat 9

Spring Boot Web 4.x

Spring MVC 3.x, 4.x, 5.x avec Servlet 3.x

Nutz Web Framework 1.x

Struts2 MVC 2.3.x - 2,5.x

Resin 3

Resin 4

Jetty Server 9

Spring WebFlux 5.x

Undertow 2.0.0.Final - 2.0.13.Final

RESTEasy 3.1.0.Final - 3.7.0.Final

Play Framework 2.6.x - 2,8.x

Light4J Microservices Framework 1.6.x - 2.x

Netty SocketIO 1.x

Client HTTP

Feign 9.x

Netflix Spring Cloud Feign 1.1.x, 1,2.x, 1,3.x

OkHttp 3.x

Apache httpcomponent HttpClient 4.2, 4,3

Spring RestTemplate 4.x

Jetty Client 9

Apache httpcomponent AsyncClient 4.x

Passerelle HTTP

Spring Cloud Gateway 2.1.x.RELEASE

JDBC

Pilote MySQL 5.x, 6.x, 8.x

Pilote Oracle

Pilote H2 1.3.x - 1,4.x

Sharding-JDBC 1.5.x

ShardingSphere 3.0.0

ShardingSphere 3.0.0, 4.0.0-RC1

Pilote PostgreSQL 8.x, 9.x, 42.x

Pilote MariaDB 2.x, 1,8

Framework RPC

Dubbo 2.5.4 - 2.6.0

Dubbox 2.8.4

Apache Dubbo 2.7.0

Motan 0.2.x - 1.1.0

gRPC 1.x

Apache ServiceComb Java Chassis 0.1 - 0,5, 1,0.x

SOFARPC 5.4.0

Armeria 0.63.0 - 0.98.0

Apache Avro 1.7.0 - 1.8.x

Finagle 6.25.0 - 20.1.0

File d'attente de messages

RocketMQ 4.x

Kafka 0.11.0.0 - 1.0

ActiveMQ 5.x

RabbitMQ 5.x

Pulsar 2.2.x - 2,4.x

NoSQL

Redis

Jedis 2.x

Client Redisson 3.5.2+

Lettuce 5.x

MongoDB

Pilote MongoDB Java 2.13 - 2,14, 3,3+

Client Memcached

Spymemcached 2.x

Xmemcached 2.x

Elasticsearch

transport-client 5.2.x - 5.6.x

transport-client 6.7.1 - 6.8.4

rest-high-level-client 6.7.1 - 6.8.4

SolrJ 7.0.0 - 7.7.1

SolrJ 7.x

Cassandra 3.x

cassandra-java-driver 3.7.0 - 3.7.2

Découverte de services

Netflix Eureka

Coordination distribuée

ZooKeeper 3.4.x (à l'exclusion de 3.4.4)

Écosystème Spring

Annotations Spring Bean (@Bean, @Service, @Component, @Repository) 3.x et 4.x

Spring Core Async SuccessCallback/FailureCallback/ListenableFutureCallback 4.x

Hystrix : latence et tolérance aux pannes pour les systèmes distribués 1.4.20 - 1.5.12

Planificateur

Elastic-Job 2.x

Support communautaire OpenTracing

Canal 1.0.25 - 1.1.2 : Composant Alibaba pour l'abonnement incrémentiel aux binlogs MySQL

JSON

GSON 2.8.x

Écosystème Vert.x

Vert.x Eventbus 3.2+

Vert.x Web 3.x

Framework de planification de threads

Spring @Async 4.x et 5.x

Cache

Ehcache 2.x

Kotlin

Coroutine 1.0.1 - 1.3.x

Développement de plug-ins

Pour développer un plug-in personnalisé pour l'agent Java SkyWalking, reportez-vous à la documentation officielle.

Managed Service for OpenTelemetry prend en charge le rapport de traces. Consultez la documentation officielle pour obtenir des détails sur le développement d'un plug-in de trace personnalisé.

FAQ

Q : Pourquoi mon application n'apparaît-elle pas après la connexion de l'agent SkyWalking au serveur ?

R : Ce problème survient lorsque les données de traçage distribué ne sont pas rapportées. Pour le vérifier, examinez le fichier {chemin de l'agent skywalking}/logs/skywalking-api.log. Si les données sont correctement rapportées, vous verrez un journal DEBUG de l'agent SkyWalking similaire à celui ci-dessous. Le message clé, TraceSegmentServiceClient : 1 trace segments have been sent to collector., confirme que les données de traçage distribué ont été envoyées avec succès au collecteur.

DEBUG 2020-03-09 17:18:16:356 SkywalkingAgent-5-ServiceAndEndpointRegisterClient-0 ServiceAndEndpointRegisterClient : ServiceAndEndpointRegisterClient running, status:CONNECTED.
DEBUG 2020-03-09 17:18:19:357 SkywalkingAgent-5-ServiceAndEndpointRegisterClient-0 ServiceAndEndpointRegisterClient : ServiceAndEndpointRegisterClient running, status:CONNECTED.
DEBUG 2020-03-09 17:18:21:301 DataCarrier.DEFAULT.Consumer.0.Thread TraceSegmentServiceClient : 1 trace segments have been sent to collector.
DEBUG 2020-03-09 17:18:22:353 SkywalkingAgent-2-GRPCChannelManager-0 GRPCChannelManager : Selected collector grpc service running, reconnect:false.
DEBUG 2020-03-09 17:18:22:357 SkywalkingAgent-5-ServiceAndEndpointRegisterClient-0 ServiceAndEndpointRegisterClient : ServiceAndEndpointRegisterClient running, status:CONNECTED.
DEBUG 2020-03-09 17:18:25:356 SkywalkingAgent-5-ServiceAndEndpointRegisterClient-0 ServiceAndEndpointRegisterClient : ServiceAndEndpointRegisterClient running, status:CONNECTED.

Si aucun rapport de données n'a lieu, les causes possibles incluent un échantillonnage activé, des filtres configurés ou une absence de requêtes générant des traces distribuées.

Q : ARMS prend-il en charge SkyWalking Java Agent 9.x ou les versions ultérieures ? Comment résoudre les problèmes de compatibilité dans un environnement JDK 21 ?

R : ARMS prend en charge la connexion aux agents open source SkyWalking. Toutefois, la compatibilité de versions spécifiques de l'agent Java SkyWalking (telles que skywalking-java-agent:9.2.0 ou skywalking-java-agent:9.6.0) avec les versions JDK est déterminée par la communauté open source. Pour confirmer la compatibilité des versions, consultez la documentation officielle de SkyWalking.

Si vous exécutez JDK 21 et rencontrez l'erreur Unsupported class file major version 65, la cause réside dans le fait que les anciennes versions de l'agent (comme la 8.7.0) dépendent d'une version de Byte-buddy qui ne prend pas en charge Java 21 (version majeure du fichier de classe 65). Pour résoudre ce problème, utilisez l'une des méthodes suivantes :

  • Mettez à niveau votre agent Java SkyWalking vers la version 8.16.0 ou ultérieure. Cette version intègre une release de Byte-buddy compatible avec Java 21.

  • Rétrogradez le JDK de votre application vers une version prise en charge par votre agent actuel.

Si vous avez besoin d'une prise en charge stable pour les versions JDK supérieures, nous vous recommandons d'utiliser plutôt l'agent de surveillance d'applications propriétaire ARMS.

Q : L'agent SkyWalking a-t-il un impact significatif sur l'utilisation du disque local du Pod ?

R : L'agent SkyWalking a un impact minimal sur le disque local du Pod. L'agent écrit uniquement temporairement des journaux dans le stockage local (chemins par défaut : ArmsAgent/log ou le répertoire /logs dans le dossier de l'agent). Il ne stocke pas de manière persistante les données de trace. La consommation principale de ressources de l'agent SkyWalking concerne le CPU et la mémoire, et non le disque. Les fichiers journaux sont conservés pendant une courte période et sont automatiquement nettoyés par le système. Par conséquent, l'impact de l'agent SkyWalking sur l'utilisation du disque local du Pod est négligeable.