Todos os produtos
Search
Central de documentação

Managed Service for OpenTelemetry:Relatar dados de aplicação Java com o agente SkyWalking

Última atualização: Sep 10, 2026

Após instrumentar sua aplicação com o SkyWalking e relatar dados de rastreamento para o Managed Service for OpenTelemetry, o Managed Service for OpenTelemetry inicia o monitoramento da sua aplicação. É possível visualizar diversos dados de monitoramento, como topologia da aplicação, traces, transações anômalas, transações lentas e análise de SQL. Este tópico descreve como usar o SkyWalking Java Agent para instrumentação automática e fornece informações sobre seus atributos configuráveis.

Pré-requisitos

  • Acesse a página de download do SkyWalking e baixe o SkyWalking 6.X.X ou uma versão posterior (recomenda-se a versão estável mais recente). Coloque a pasta agent extraída em um diretório acessível ao processo Java.

  • Todos os plugins estão armazenados no diretório /plugins. Para ativar um novo plugin, adicione-o a este diretório antes da inicialização. Para desativar um plugin, remova-o deste diretório. Por padrão, os arquivos de log são gravados no diretório /logs.

Aviso

Os arquivos de log, plugins e arquivos de configuração estão localizados na pasta do agente. Não altere a estrutura de diretórios.

Obter um endpoint

New console

  1. Faça login no console do Managed Service for OpenTelemetry. No painel de navegação à esquerda, clique em Integration Center.

  2. Na página Integration Center, clique em SkyWalking na seção Open Source Frameworks.

  3. No painel SkyWalking, clique em Start Integration e selecione a região onde deseja relatar os dados.

    Nota

    Ao acessar uma região pela primeira vez, os recursos são inicializados automaticamente nela.

  4. Configure o parâmetro Connection Type e copie um endpoint.

    Se o seu service estiver implantado no Alibaba Cloud e residir na região selecionada, recomenda-se definir este parâmetro como Alibaba Cloud VPC Network. Caso contrário, defina este parâmetro como Public Network.

    image.png

Old console

  1. Faça login no console do Managed Service for OpenTelemetry.

  2. No painel de navegação à esquerda, clique em Cluster Configurations. Na página exibida, clique em Access point information.

  3. Na barra de navegação superior, selecione a região onde deseja relatar os dados. Na seção Cluster Information, ative a opção Show Token.

  4. Defina o parâmetro Client como SkyWalking.

    Na coluna Related Information da tabela, copie um endpoint.

    SkyWalking接入点信息

    Nota

    Se sua aplicação estiver implantada em um ambiente de produção do Alibaba Cloud, use um endpoint de VPC. Caso contrário, use um endpoint público.

Contexto

O SkyWalking é uma ferramenta popular de Monitoramento de Desempenho de Aplicações (APM), projetada para aplicações construídas sobre arquiteturas de microsserviços, Cloud Native e conteinerizadas (docker, Kubernetes e Mesos). Em sua essência, o SkyWalking é um sistema de rastreamento distribuído.

Para usar o SkyWalking para relatar dados da sua aplicação Java ao console do Managed Service for OpenTelemetry, é necessário primeiro instrumentar a aplicação. O SkyWalking suporta tanto a instrumentação automática para frameworks como Dubbo, gRPC, JDBC, OkHttp, Spring, Tomcat, Struts e Jedis, quanto a instrumentação manual com OpenTracing. Este tópico descreve o método de instrumentação automática.

Demonstração

Repositório de código: SkyWalking Demo

Instrumentar uma aplicação Java com o SkyWalking

  1. Baixe o SkyWalking Java Agent.

  2. Configure as informações de conexão e do service no arquivo de configuração do SkyWalking Java Agent.

    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 o caminho para o agente SkyWalking com base no ambiente de execução da sua aplicação.

    Nota

    Nos exemplos a seguir, substitua <skywalking-agent-path> pelo caminho absoluto para skywalking-agent.jar na pasta do agente.

    Linux Tomcat 7 / Tomcat 8

    Adicione o seguinte à primeira linha de tomcat/bin/catalina.sh:

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

    Windows Tomcat 7 / Tomcat 8

    Adicione o seguinte à primeira linha de tomcat/bin/catalina.bat:

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

    JAR or Spring Boot

    Adicione o parâmetro -javaagent ao comando de inicialização da sua aplicação.

    Importante

    O parâmetro -javaagent deve aparecer antes do parâmetro -jar.

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

    Jetty

    Adicione as seguintes linhas ao arquivo de configuração {JETTY_HOME}/start.ini:

    --exec
    -javaagent:<skywalking-agent-path>
  4. Reinicie sua aplicação.

Atributos configuráveis do agente Java

O agente Java do SkyWalking suporta uma ampla variedade de atributos configuráveis pelo usuário. Para obter uma lista completa de atributos, consulte o arquivo config/agent.config na demonstração de exemplo.

Principais atributos

Os atributos a seguir são baseados no apache-skywalking-java-agent-8.16.0.

Visualizar atributos do agente

Parâmetro

Descrição

Padrão

agent.namespace

Define o namespace para isolar cabeçalhos na propagação entre processos. Se definido, o formato do cabeçalho será HeaderName:Namespace.

Não definido

agent.service_name

Nome do service exibido na interface do SkyWalking. Corresponde a Application na v5.x e a Service na v6.x. Defina um nome exclusivo para cada service. Todas as instâncias de um service devem compartilhar o mesmo nome.

Your_ApplicationName

agent.sample_n_per_3_secs

Define o número de traces a serem amostrados a cada 3 segundos. Um valor igual ou inferior a 0 desativa a amostragem.

Não definido

agent.authentication

A necessidade de autenticação depende da configuração do backend. É possível visualizar o token no endpoint do servidor. A maioria dos casos de uso requer uma extensão de autenticação no backend. Atualmente, apenas a autenticação básica está implementada.

Não definido

agent.span_limit_per_segment

Número máximo de spans em um único segmento. O SkyWalking usa essa configuração para estimar o uso de memória da aplicação.

Não definido

agent.ignore_suffix

Se o nome da operação do primeiro span corresponder a uma entrada nesta lista, o agente descarta o segmento.

Não definido

agent.is_open_debugging_class

Se for true, o SkyWalking salva todos os arquivos de classe instrumentados no diretório /debugging. A equipe do SkyWalking pode solicitar esses arquivos para solucionar problemas de compatibilidade.

Não definido

agent.cause_exception_depth

Profundidade da cadeia de causas da exceção a ser registrada.

5

agent.force_reconnection_period

Intervalo, como múltiplo de grpc_channel_check_interval, para forçar uma reconexão gRPC.

1

agent.operation_name_threshold

Define o comprimento máximo recomendado para um nome de operação. O limite rígido é 190.

150

agent.keep_tracing

Se for true, o agente continua o rastreamento mesmo que o backend esteja indisponível.

false

osinfo.ipv4_list_size

Número máximo de endereços IPv4 a serem relatados.

10

collector.grpc_channel_check_interval

Intervalo, em segundos, para verificar o status do canal gRPC.

30

collector.backend_service

Endereço do backend que recebe os dados de trace do SkyWalking.

127.0.0.1:11800

collector.heartbeat_period

Intervalo, em segundos, para o agente enviar heartbeats.

30

collector.grpc_upstream_timeout

Timeout, em segundos, para o cliente gRPC enviar dados ao upstream.

30

collector.get_profile_task_interval

Intervalo, em segundos, para o profiler buscar a lista de tarefas de profiling.

20

logging.level

Nível de log do agente.

DEBUG

logging.file_name

Nome do arquivo de log.

skywalking-api.log

logging.output

Destino da saída de log. Defina como FILE para registrar em arquivo ou CONSOLE para registrar na saída padrão.

FILE

logging.dir

Diretório de log. Se estiver vazio, os logs serão gravados em stdout.

""

logging.pattern

Padrão de formato de log. Os seguintes especificadores de conversão são suportados:

  • %level: O nível do log.

  • %timestamp: A hora atual no formato yyyy-MM-dd HH:mm:ss:SSS.

  • %thread: O nome da thread atual.

  • %msg: A mensagem de log.

  • %class: O nome simples da classe alvo.

  • %throwable: O stack trace da exceção registrada.

  • %agent_name: O valor de agent.service_name.

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

logging.max_file_size

Tamanho máximo de um arquivo de log. Quando um arquivo de log excede esse tamanho, o agente o arquiva e cria um novo.

300 1024 1024

logging.max_history_files

Número máximo de arquivos de log arquivados a serem mantidos. Um valor igual ou inferior a 0 significa que todos os arquivos arquivados são mantidos.

-1

Métodos de configuração

Propriedades do sistema

Use o prefixo -Dskywalking. seguido pelo nome do atributo do arquivo agent.config. Por exemplo:

# 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

Opções do agente

Anexe atributos ao caminho do agente nos argumentos da 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

Variáveis de ambiente

O agente SkyWalking lê variáveis de ambiente automaticamente. É possível encontrar a variável de ambiente correspondente para cada atributo no arquivo config/agent.config. Por exemplo, a variável de ambiente para agent.service_name é SW_AGENT_NAME.

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

Precedência

As configurações são aplicadas com a seguinte precedência, da mais alta para a mais baixa: opções do agente, propriedades do sistema, variáveis de ambiente e arquivo de configuração.

Plugins do agente Java

O agente Java do SkyWalking suporta uma variedade de middlewares, frameworks e bibliotecas. Todos os plugins suportados estão disponíveis na pasta /plugins da aplicação de demonstração.

Ativar plugins

Todos os plugins na pasta /plugins estão ativos. Para desativar um plugin, remova seu arquivo JAR da pasta /plugins.

Plugins oficialmente suportados

Todos os plugins oficialmente suportados estão localizados na pasta /plugins.

Plugins opcionais

Os plugins opcionais residem na pasta optional-plugins do pacote do agente ou em um repositório de terceiros. Para ativar um plugin opcional, mova seu arquivo JAR para a pasta /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 bootstrap

Devido a possíveis riscos de estabilidade, todos os plugins de bootstrap são opcionais. Eles estão localizados na pasta bootstrap-plugins. Para ativar um plugin de bootstrap, mova seu arquivo JAR para a pasta /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 suportados

Alguns plugins estão disponíveis apenas em um repositório de terceiros devido a possíveis impactos no desempenho ou limitações de uso. Para mais informações, consulte o repositório SkyAPM Java Plugin Extension.

Expandir para visualizar a lista de plugins

Framework

Versão do plugin

Servidor http

Tomcat 7

Tomcat 8

Tomcat 9

Spring Boot Web 4.x

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

Gateway 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

Fila de mensagens

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

Descoberta de services

Netflix Eureka

Coordenação distribuída

ZooKeeper 3.4.x (exceto 3.4.4)

Ecossistema Spring

Anotações Spring Bean (@Bean, @Service, @Component, @Repository) 3.x e 4.x

Spring Core Async SuccessCallback/FailureCallback/ListenableFutureCallback 4.x

Hystrix: latência e tolerância a falhas para sistemas distribuídos 1.4.20 - 1.5.12

Agendador

Elastic-Job 2.x

Suporte da comunidade OpenTracing

Canal 1.0.25 - 1.1.2: Componente Alibaba para assinatura incremental de binlogs do MySQL

JSON

GSON 2.8.x

Ecossistema Vert.x

Vert.x Eventbus 3.2+

Vert.x Web 3.x

Framework de agendamento de threads

Spring @Async 4.x e 5.x

Cache

Ehcache 2.x

Kotlin

Coroutine 1.0.1 - 1,3.x

Desenvolvimento de plugins

Para desenvolver um plugin personalizado do agente Java SkyWalking, consulte a documentação oficial.

O Managed Service for OpenTelemetry suporta o relato de traces. Consulte a documentação oficial para obter detalhes sobre o desenvolvimento de um plugin de trace personalizado.

Perguntas frequentes

P: Por que minha aplicação não aparece depois que o Agente SkyWalking se conecta ao servidor?

R: Esse problema ocorre quando os dados de rastreamento distribuído não são relatados. Para verificar isso, consulte o arquivo {skywalking agent path}/logs/skywalking-api.log. Se os dados estiverem sendo relatados, você verá um log DEBUG do Agente SkyWalking semelhante ao abaixo. A mensagem chave, TraceSegmentServiceClient : 1 trace segments have been sent to collector., confirma que os dados de rastreamento distribuído foram enviados com sucesso ao coletor.

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.

Se o relato de dados não estiver ocorrendo, as possíveis causas incluem amostragem ativada, filtros configurados ou falta de solicitações que gerem traces distribuídos.

P: O ARMS suporta o SkyWalking Java Agent 9.x ou versões posteriores? Como resolver problemas de compatibilidade em um ambiente JDK 21?

R: O ARMS suporta a conexão com agentes open-source do SkyWalking. No entanto, a compatibilidade de versões específicas do SkyWalking Java Agent (como skywalking-java-agent:9.2.0 ou skywalking-java-agent:9.6.0) com versões do JDK é determinada pela comunidade open-source. Para confirmar a compatibilidade de versões, consulte a documentação oficial do SkyWalking.

Se você estiver executando o JDK 21 e encontrar o erro Unsupported class file major version 65, a causa é que versões mais antigas do Agente (como 8.7.0) dependem de uma versão do Byte-buddy que não suporta Java 21 (versão principal do arquivo de classe 65). Para resolver esse problema, use um dos seguintes métodos:

  • Atualize seu SkyWalking Java Agent para a versão 8.16.0 ou posterior. Esta versão inclui uma release do Byte-buddy que suporta Java 21.

  • Faça o downgrade do JDK da sua aplicação para uma versão suportada pelo seu Agente atual.

Se precisar de suporte estável para versões superiores do JDK, recomendamos o uso do agente proprietário de monitoramento de aplicações do ARMS.

P: O agente SkyWalking tem um impacto significativo no uso do disco local do Pod?

R: O agente SkyWalking tem um impacto mínimo no disco local do Pod. O agente grava logs temporariamente no armazenamento local apenas (caminhos padrão: ArmsAgent/log ou o diretório /logs dentro da pasta do Agente). Ele não armazena dados de trace de forma persistente. O consumo primário de recursos do agente SkyWalking é cpu e memória, não disco. Os arquivos de log são retidos por um curto período e limpos automaticamente pelo sistema. Portanto, o agente SkyWalking tem um impacto insignificante no uso do disco local do Pod.