Todos los productos
Search
Centro de documentos

Managed Service for OpenTelemetry:Reporte de datos de aplicaciones Java con el agente de SkyWalking

Última actualización: Sep 17, 2026

Después de instrumentar su aplicación con SkyWalking y reportar los datos de trazas a Managed Service for OpenTelemetry, Managed Service for OpenTelemetry comienza a monitorear la aplicación. Puede consultar diversos datos de monitoreo, como la topología de la aplicación, las trazas, las transacciones anómalas, las transacciones lentas y el análisis de SQL. Este tema describe cómo usar el agente de Java de SkyWalking para la instrumentación automática y proporciona información sobre sus atributos configurables.

Requisitos previos

  • Abra la página de descargas de SkyWalking y descargue SkyWalking 6.X.X o una versión posterior (se recomienda la versión estable más reciente). Coloque la carpeta agent extraída en un directorio al que el proceso de Java pueda acceder.

  • Todos los plugins se almacenan en el directorio /plugins. Para habilitar un plugin nuevo, agréguelo a este directorio antes del inicio. Para deshabilitar un plugin, elimínelo de este directorio. De forma predeterminada, los archivos de registro se escriben en el directorio /logs.

Aviso

Los archivos de registro, los plugins y los archivos de configuración se encuentran en la carpeta del agente. No modifique la estructura de directorios.

Obtener un endpoint

Nueva consola

  1. Inicie sesión en la consola de Managed Service for OpenTelemetry. En el panel de navegación izquierdo, haga clic en Integration Center.

  2. En la página Integration Center, haga clic en la tarjeta SkyWalking dentro de la sección Open Source Frameworks.

  3. En el panel SkyWalking, haga clic en la pestaña Start Integration y seleccione la región en la que desea reportar los datos.

    Nota

    Cuando accede a una región por primera vez, los recursos se inicializan automáticamente en ella.

  4. Configure el parámetro Connection Type y copie un endpoint.

    Si su servicio está desplegado en Alibaba Cloud y reside en la región que seleccionó, se recomienda establecer este parámetro en Alibaba Cloud VPC Network. De lo contrario, establézcalo en Public Network.

    image.png

Consola anterior

  1. Inicie sesión en la consola de Managed Service for OpenTelemetry.

  2. En el panel de navegación izquierdo, haga clic en Cluster Configurations. En la página que aparece, haga clic en la pestaña Access point information.

  3. En la barra de navegación superior, seleccione la región en la que desea reportar los datos. En la sección Cluster Information, habilite Show Token.

  4. Establezca el parámetro Client en SkyWalking.

    En la columna Related Information de la tabla, copie un endpoint.

    SkyWalking接入点信息

    Nota

    Si su aplicación está desplegada en un entorno de producción de Alibaba Cloud, use un endpoint de VPC. De lo contrario, use un endpoint público.

Contexto

SkyWalking es una herramienta popular de monitoreo del rendimiento de aplicaciones (APM) diseñada para aplicaciones construidas sobre arquitecturas de microservicios, nativas de la nube y contenerizadas (docker, Kubernetes y Mesos). En esencia, SkyWalking es un sistema de trazas distribuidas.

Para usar SkyWalking y reportar datos de su aplicación Java a la consola de Managed Service for OpenTelemetry, primero debe instrumentar la aplicación. SkyWalking admite tanto la instrumentación automática para frameworks como Dubbo, gRPC, JDBC, OkHttp, Spring, Tomcat, Struts y Jedis, como la instrumentación manual con OpenTracing. Este tema describe el método de instrumentación automática.

Demostración

Repositorio de código: Demostración de SkyWalking

Instrumentar una aplicación Java con SkyWalking

  1. Descargue el agente de Java de SkyWalking.

  2. Configure la conexión y la información del servicio en el archivo de configuración del agente de Java de 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. Especifique la ruta al agente de SkyWalking según el entorno de ejecución de su aplicación.

    Nota

    En los siguientes ejemplos, reemplace <skywalking-agent-path> con la ruta absoluta al archivo skywalking-agent.jar dentro de la carpeta del agente.

    Linux Tomcat 7 / Tomcat 8

    Agregue lo siguiente en la primera línea de tomcat/bin/catalina.sh:

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

    Windows Tomcat 7 / Tomcat 8

    Agregue lo siguiente en la primera línea de tomcat/bin/catalina.bat:

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

    JAR o Spring Boot

    Agregue el parámetro -javaagent al comando de inicio de su aplicación.

    Importante

    El parámetro -javaagent debe aparecer antes del parámetro -jar.

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

    Jetty

    Agregue las siguientes líneas al archivo de configuración {JETTY_HOME}/start.ini:

    --exec
    -javaagent:<skywalking-agent-path>
  4. Reinicie su aplicación.

Atributos configurables del agente de Java

El agente de Java de SkyWalking admite una amplia variedad de atributos que el usuario puede configurar. Para ver la lista completa de atributos, consulte el archivo config/agent.config en la demostración de ejemplo.

Atributos clave

Los siguientes atributos corresponden a apache-skywalking-java-agent-8.16.0.

Consultar los atributos del agente

Parámetro

Descripción

Valor predeterminado

agent.namespace

Especifica el espacio de nombres para aislar los encabezados durante la propagación entre procesos. Si se configura, el formato del encabezado es HeaderName:Namespace.

No establecido

agent.service_name

El nombre del servicio que se muestra en la interfaz de SkyWalking. Corresponde a Application en la versión 5.x y a Service en la versión 6.x. Establezca un nombre único para cada servicio. Todas las instancias de un servicio deben compartir el mismo nombre.

Your_ApplicationName

agent.sample_n_per_3_secs

Establece la cantidad de trazas que se muestrean cada 3 segundos. Un valor de 0 o menor deshabilita el muestreo.

No establecido

agent.authentication

La necesidad de autenticación depende de la configuración del backend. Puede consultar el token en el endpoint del servidor. La mayoría de los casos de uso requieren una extensión de autenticación en el backend. Actualmente, solo se implementa la autenticación básica.

No establecido

agent.span_limit_per_segment

El número máximo de spans en un solo segmento. SkyWalking usa esta configuración para estimar el uso de memoria de la aplicación.

No establecido

agent.ignore_suffix

Si el nombre de operación del primer span coincide con alguna entrada de esta lista, el agente descarta el segmento.

No establecido

agent.is_open_debugging_class

Si es true, SkyWalking guarda todos los archivos de clase instrumentados en el directorio /debugging. El equipo de SkyWalking podría solicitar estos archivos para solucionar problemas de compatibilidad.

No establecido

agent.cause_exception_depth

La profundidad de la cadena de causas de la excepción que se registra.

5

agent.force_reconnection_period

El intervalo, como múltiplo de grpc_channel_check_interval, para forzar una reconexión de gRPC.

1

agent.operation_name_threshold

Establece la longitud máxima recomendada para un nombre de operación. El límite estricto es 190.

150

agent.keep_tracing

Si es true, el agente continúa generando trazas incluso cuando el backend no está disponible.

false

osinfo.ipv4_list_size

El número máximo de direcciones IPv4 que se reportan.

10

collector.grpc_channel_check_interval

El intervalo, en segundos, para comprobar el estado del canal de gRPC.

30

collector.backend_service

La dirección del backend que recibe los datos de trazas de SkyWalking.

127.0.0.1:11800

collector.heartbeat_period

El intervalo, en segundos, con el que el agente envía latidos.

30

collector.grpc_upstream_timeout

El tiempo de espera, en segundos, para que el cliente de gRPC envíe datos hacia upstream.

30

collector.get_profile_task_interval

El intervalo, en segundos, con el que el generador de perfiles obtiene la lista de tareas de perfilado.

20

logging.level

El nivel de registro del agente.

DEBUG

logging.file_name

El nombre del archivo de registro.

skywalking-api.log

logging.output

El destino de la salida de los registros. Establézcalo en FILE para registrar en un archivo o en CONSOLE para registrar en la salida estándar.

FILE

logging.dir

El directorio de registros. Si está vacío, los registros se escriben en stdout.

""

logging.pattern

El patrón de formato de los registros. Se admiten los siguientes especificadores de conversión:

  • %level: el nivel de registro.

  • %timestamp: la hora actual en formato yyyy-MM-dd HH:mm:ss:SSS.

  • %thread: el nombre del hilo actual.

  • %msg: el mensaje de registro.

  • %class: el nombre simple de la clase de destino.

  • %throwable: el seguimiento de pila de la excepción registrada.

  • %agent_name: el valor de agent.service_name.

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

logging.max_file_size

El tamaño máximo de un archivo de registro. Cuando un archivo supera este tamaño, el agente lo archiva y crea uno nuevo.

300 1024 1024

logging.max_history_files

El número máximo de archivos de registro archivados que se conservan. Un valor de 0 o menor indica que se conservan todos los archivos archivados.

-1

Métodos de configuración

Propiedades del sistema

Use el prefijo -Dskywalking. seguido del nombre del atributo del archivo agent.config. Por ejemplo:

# 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

Opciones del agente

Anexe los atributos a la ruta del agente en los argumentos de la 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 de entorno

El agente de SkyWalking lee automáticamente las variables de entorno. Puede encontrar la variable de entorno correspondiente a cada atributo en el archivo config/agent.config. Por ejemplo, la variable de entorno para agent.service_name es SW_AGENT_NAME.

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

Precedencia

Las opciones de configuración se aplican con la siguiente precedencia, de mayor a menor: opciones del agente, propiedades del sistema, variables de entorno y archivo de configuración.

Plugins del agente Java

El agente Java de SkyWalking es compatible con diversos tipos de middleware, frameworks y bibliotecas. Todos los plugins compatibles están disponibles en la carpeta /plugins de la aplicación de demostración.

Activar plugins

Todos los plugins de la carpeta /plugins están activos. Para deshabilitar un plugin, elimine su archivo JAR de la carpeta /plugins.

Plugins con soporte oficial

Todos los plugins con soporte oficial se encuentran en la carpeta /plugins.

Plugins opcionales

Los plugins opcionales se ubican en la carpeta optional-plugins del paquete del agente o en un repositorio de terceros. Para activar un plugin opcional, mueva su archivo JAR a la carpeta /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

Plugins de arranque (bootstrap)

Debido a posibles riesgos de estabilidad, todos los plugins de arranque son opcionales. Se encuentran en la carpeta bootstrap-plugins. Para activar uno de estos plugins, mueva su archivo JAR a la carpeta /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

Plugins compatibles

Algunos plugins solo están disponibles en un repositorio de terceros debido a posibles impactos en el rendimiento o limitaciones de uso. Para obtener más información, consulte el repositorio de extensiones de plugins Java de SkyAPM.

Expanda para consultar la lista de plugins

Framework

Versión del plugin

Servidor HTTP

Tomcat 7

Tomcat 8

Tomcat 9

Spring Boot Web 4.x

Spring MVC 3.x, 4.x, 5.x con 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

Cliente 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

Puerta de enlace HTTP

Spring Cloud Gateway 2.1.x.RELEASE

JDBC

MySQL Driver 5.x, 6.x, 8.x

Oracle Driver

H2 Driver 1.3.x - 1.4.x

Sharding-JDBC 1.5.x

ShardingSphere 3.0.0

ShardingSphere 3.0.0, 4.0.0-RC1

PostgreSQL Driver 8.x, 9.x, 42.x

MariaDB Driver 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

Cola de mensajes

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

Redisson client 3.5.2+

Lettuce 5.x

MongoDB

MongoDB Java Driver 2.13 - 2.14, 3.3+

Cliente 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

Descubrimiento de servicios

Netflix Eureka

Coordinación distribuida

ZooKeeper 3.4.x (excepto 3.4.4)

Ecosistema Spring

Anotaciones Spring Bean (@Bean, @Service, @Component, @Repository) 3.x y 4.x

Spring Core Async SuccessCallback/FailureCallback/ListenableFutureCallback 4.x

Hystrix: latencia y tolerancia a fallos para sistemas distribuidos 1.4.20 - 1.5.12

Programador

Elastic-Job 2.x

Compatibilidad con la comunidad OpenTracing

Canal 1.0.25 - 1.1.2: componente de Alibaba para la suscripción incremental a binlogs de MySQL

JSON

GSON 2.8.x

Ecosistema Vert.x

Vert.x Eventbus 3.2+

Vert.x Web 3.x

Framework de programación de hilos

Spring @Async 4.x y 5.x

Caché

Ehcache 2.x

Kotlin

Coroutine 1.0.1 - 1.3.x

Desarrollo de plugins

Para desarrollar un plugin personalizado del agente Java de SkyWalking, consulte la documentación oficial.

Managed Service for OpenTelemetry admite el reporte de trazas. Consulte la documentación oficial para conocer los detalles sobre cómo desarrollar un plugin de trazas personalizado.

Preguntas frecuentes

P: ¿Por qué mi aplicación no aparece después de que el agente de SkyWalking se conecta al servidor?

R: Este problema ocurre cuando no se reportan los datos de trazabilidad distribuida. Para comprobarlo, revise el archivo {skywalking agent path}/logs/skywalking-api.log. Si los datos se están reportando, verá un registro DEBUG del agente de SkyWalking similar al siguiente. El mensaje clave, TraceSegmentServiceClient : 1 trace segments have been sent to collector., confirma que los datos de trazabilidad distribuida se enviaron correctamente al colector.

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 no se están reportando datos, las causas posibles incluyen el muestreo habilitado, filtros configurados o la falta de solicitudes que generen trazas distribuidas.

P: ¿ARMS es compatible con el agente Java de SkyWalking 9.x o versiones posteriores? ¿Cómo resuelvo problemas de compatibilidad en un entorno JDK 21?

R: ARMS admite la conexión con agentes de código abierto de SkyWalking. Sin embargo, la compatibilidad de versiones específicas del agente Java de SkyWalking (como skywalking-java-agent:9.2.0 o skywalking-java-agent:9.6.0) con las versiones de JDK la determina la comunidad de código abierto. Para confirmar la compatibilidad de versiones, consulte la documentación oficial de SkyWalking.

Si ejecuta JDK 21 y encuentra el error Unsupported class file major version 65, la causa es que las versiones anteriores del agente (como la 8.7.0) dependen de una versión de Byte-buddy que no es compatible con Java 21 (versión principal 65 del archivo de clase). Para resolver este problema, utilice uno de los siguientes métodos:

  • Actualice su agente Java de SkyWalking a la versión 8.16.0 o posterior. Esta versión incluye una versión de Byte-buddy compatible con Java 21.

  • Cambie el JDK de su aplicación a una versión anterior que sea compatible con su agente actual.

Si necesita compatibilidad estable con versiones superiores de JDK, se recomienda utilizar el agente propietario de monitoreo de aplicaciones de ARMS.

P: ¿El agente de SkyWalking tiene un impacto significativo en el uso del disco local del Pod?

R: El agente de SkyWalking tiene un impacto mínimo en el disco local del Pod. El agente solo escribe registros temporalmente en el almacenamiento local (rutas predeterminadas: ArmsAgent/log o el directorio /logs dentro de la carpeta del agente). No almacena datos de trazas de forma persistente. El consumo principal de recursos del agente de SkyWalking es de CPU y memoria, no de disco. Los archivos de registro se conservan durante un periodo breve y el sistema los limpia automáticamente. Por lo tanto, el impacto del agente de SkyWalking en el uso del disco local del Pod es insignificante.