Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Relate dados de aplicações Python com o SkyWalking

Última atualização: Aug 27, 2026

Após instrumentar sua aplicação com o SkyWalking e relatar dados de rastreamento distribuído para o Managed Service for OpenTelemetry, o Managed Service for OpenTelemetry passa a monitorá-la. Em seguida, visualize diversos dados de monitoramento, como topologia da aplicação, traces, transações com falha, transações lentas e análise de SQL. Este tópico descreve como usar o SkyWalking Python Agent para ativar a instrumentação automática e relatar dados da aplicação.

Pré-requisitos

  • Baixe o agente Python do Apache SkyWalking. Recomendamos o uso da versão mais recente.

  • Adicione o agente Python do SkyWalking ao seu projeto Python.

  • 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 service 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-o como Public Network.

      image.png

Informações de fundo

O SkyWalking é uma ferramenta popular de monitoramento de desempenho de aplicações (APM) de código aberto para arquiteturas de microsserviços, cloud-native e baseadas em contêineres, incluindo docker, Kubernetes e Mesos. Em sua essência, o SkyWalking é um sistema de rastreamento distribuído.

O skywalking-python é a biblioteca oficial de agentes Python para o SkyWalking. Integre o skywalking-python para monitorar aplicações Python. Ele oferece suporte à instrumentação automática para diversas bibliotecas de terceiros, como Kafka, HTTP, AIOHTTP, Redis e WebSockets.

Bibliotecas de terceiros suportadas

Biblioteca

Versão do Python - versão da biblioteca

Nome do plugin

aiohttp

Python ≥ 3,7 - 3.7.*

sw_aiohttp

aioredis

Python ≥ 3,7 - 2.0.*

sw_aioredis

aiormq

Python ≥ 3,7 - 6,3, 6,4

sw_aiormq

amqp

Python ≥ 3,7 - 2.6.1

sw_amqp

asyncpg

Python ≥ 3,7 - 0.25.0

sw_asyncpg

bottle

Python ≥ 3,7 - 0.12.23

sw_bottle

celery

Python ≥ 3,7 - 5,1

sw_celery

confluent_kafka

Python ≥ 3,7 - 1.5.0, 1.7.0, 1.8.2

sw_confluent_kafka

django

Python ≥ 3,7 - 3,2

sw_django

elasticsearch

Python ≥ 3,7 - 7,13, 7,14, 7,15

sw_elasticsearch

hug

Python ≥ 3,11 - Não suportado

Python ≥ 3,10 - 2.5, 2.6

Python ≥ 3,7 - 2.4.1, 2.5, 2.6

sw_falcon

fastapi

Python ≥ 3,7 - 0,89., 0,88.

sw_fastapi

flask

Python ≥ 3,7 - 2,0

sw_flask

happybase

Python ≥ 3,7 - 1.2.0

sw_happybase

http_server

Python ≥ 3,7 - *

sw_http_server

werkzeug

Python ≥ 3,7 - 1.0.1, 2,0

sw_http_server

httpx

Python ≥ 3,7 - 0,23., 0,22.

sw_httpx

kafka-python

Python ≥ 3,7 - 2,0

sw_kafka

loguru

Python ≥ 3,7 - 0.6.0, 0.7.0

sw_loguru

mysqlclient

Python ≥ 3,7 - 2.1.*

sw_mysqlclient

neo4j

Python ≥ 3,7 - 5.*

sw_neo4j

psycopg[binary]

Python ≥ 3,11 - 3.1.*

Python ≥ 3,7 - 3.0.18, 3.1.*

sw_psycopg

psycopg2-binary

Python ≥ 3,10 - Não suportado

Python ≥ 3,7 - 2,9

sw_psycopg2

pymongo

Python ≥ 3,7 - 3.11.*

sw_pymongo

pymysql

Python ≥ 3,7 - 1,0

sw_pymysql

pyramid

Python ≥ 3,7 - 1,10, 2,0

sw_pyramid

pika

Python ≥ 3,7 - 1,2

sw_rabbitmq

redis

Python ≥ 3,7 - 3.5.*, 4.5.1

sw_redis

requests

Python ≥ 3,7 - 2,26, 2,25

sw_requests

sanic

Python ≥ 3,10 - Não suportado

Python ≥ 3,7 - 20,12

sw_sanic

tornado

Python ≥ 3,7 - 6,0, 6,1

sw_tornado

urllib3

Python ≥ 3,7 - 1,26, 1,25

sw_urllib3

urllib_request

Python ≥ 3,7 - *

sw_urllib_request

websockets

Python ≥ 3,7 - 10,3, 10,4

sw_websockets

Aplicação de exemplo

Repositório da aplicação de exemplo: SkyWalking Demo

Esta demonstração é um exemplo simples baseado em Flask que encaminha requisições e interage com um banco de dados MySQL. O agente do SkyWalking monitora a aplicação e relata os dados.

Ativar instrumentação automática para uma aplicação Python

Configure os parâmetros do SkyWalking Python Agent nos arquivos do seu projeto Python ou como variáveis de ambiente.

Configure parameters in code

Modifique os parâmetros config.init no arquivo do seu projeto Python. Na aplicação de exemplo, os arquivos correspondentes são proxy/TestProxy.py e controller/TestController.py.

from skywalking import config
config.init(ConfigurationName = ConfigurationValue)

Configure parameters as environment variables

Adicione o conteúdo abaixo ao seu arquivo de variáveis de ambiente e reinicie a aplicação para que as alterações entrem em vigor.

export SW_AGENT_ConfigurationName=ConfigurationValue
Nota

Para ambientes de contêiner docker, configure as variáveis de ambiente na opção environment do arquivo docker-compose.yaml.

  1. Configure o endpoint e o token.

    1. Importe o SkyWalking no seu arquivo Python.

      from skywalking import agent, config
    2. Configure o endpoint e o token de autenticação.

      Substitua <endpoint> e <auth-token> pelo endpoint e token de autenticação obtidos na seção de pré-requisitos.

      config.init(agent_collector_backend_services='<endpoint>',
                  agent_authentication='<auth-token>')
  2. Configure um nome de service como identificador da aplicação.

    config.init(agent_name='<service name>')
  3. Configure o protocolo de relato de dados. O único protocolo suportado é gRPC.

    ### The only available reporting protocol is 'grpc'.
    config.init(agent_protocol='<protocol>')
  4. Configure outros parâmetros opcionais conforme necessário. Para mais informações, consulte a documentação oficial do Apache SkyWalking.

  5. Reinicie a aplicação.

Perguntas frequentes

  • Como proceder se o erro Method not found: skywalking.v3.LogReportService/collect ocorrer ao relatar dados via gRPC?

    grpc._channel._InactiveRpcError: &lt;_InactiveRpcError of RPC that terminated with:
        status = StatusCode.UNIMPLEMENTED
        details = &quot;Method not found: skywalking.v3.LogReportService/collect&quot;
        debug_error_string = &quot;UNKNOWN:Error received from peer  {grpc_message:&quot;Method not found: skywalking.v3.LogReportService/collect&quot;, grpc_status:12, created_time:&quot;2023-07-05T15:58:00&quot;}&quot;
    &gt;

    Defina agent_log_reporter_active como False na chamada config.init.

    config.init(agent_log_reporter_active=False)
  • Como proceder se o erro Method not found: skywalking.v3.MeterReportService/collect ocorrer ao relatar dados via gRPC?

    grpc._channel._InactiveRpcError: &lt;_InactiveRpcError of RPC that terminated with:
            status = StatusCode.UNIMPLEMENTED
            details = &quot;Method not found: skywalking.v3.MeterReportService/collect&quot;
            debug_error_string = &quot;UNKNOWN:Error received from peer  {grpc_message:&quot;Method not found: skywalking.v3.MeterReportService/collect&quot;, grpc_status:12, created_time:&quot;2023-07-05T16:00:00+08:00&quot;}&quot;
    &gt;

    O console não suporta o relato de dados de metric. Na chamada config.init, defina agent_meter_reporter_active como False.

    config.init(agent_meter_reporter_active=False)

Referências

Site oficial do Apache SkyWalking