Todos os produtos
Search
Central de documentação

Managed Service for OpenTelemetry:Relate dados de aplicações Java com o agente do SkyWalking

Última atualização: Jul 05, 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 passa a monitorá-la. É 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 ficam armazenados no diretório /plugins. Para ativar um novo plugin, adicione-o a esse diretório antes da inicialização. Para desativar um plugin, remova-o desse 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 serviço estiver implantado no Alibaba Cloud e residir na região selecionada, recomendamos 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.

Obter um endpoint

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

  2. Na página Integration Center, clique em SkyWalking na seção Server-side Applications.

  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 serviço estiver implantado no Alibaba Cloud e residir na região selecionada, recomendamos definir este parâmetro como Alibaba Cloud VPC Network. Caso contrário, defina este parâmetro como Public Network.

    image.png

Contexto

O SkyWalking é uma ferramenta popular de Monitoramento de Desempenho de Aplicações (APM), projetada para aplicações baseadas em 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 no 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 serviço 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 do 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 conteúdo à primeira linha do arquivo tomcat/bin/catalina.sh:

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

    Windows Tomcat 7 / Tomcat 8

    Adicione o seguinte conteúdo à primeira linha do arquivo 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 oferece suporte a 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 serviço exibido na interface do SkyWalking. Corresponde a Application na v5.x e a Service na v6.x. Defina um nome exclusivo para cada serviço. Todas as instâncias de um serviço 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 rastreamento 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 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 de 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 do 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 definições de configuração são aplicadas com a seguinte precedência, da maior para a menor: 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 com suporte oficial

Todos os plugins com suporte oficial 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 serviços

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: Um componente do 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 do 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 rastreamento personalizado.

Perguntas frequentes

P: Por que minha aplicação não aparece depois que o Agente do 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 do 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.