Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Signaler les données d'application Python avec SkyWalking

Dernière mise à jour :Aug 11, 2026

Une fois votre application instrumentée avec SkyWalking et les données de traçage distribué envoyées à Managed Service for OpenTelemetry, Managed Service for OpenTelemetry commence à surveiller votre application. Vous pouvez alors consulter diverses données de supervision, telles que la topologie des applications, les traces, les transactions en échec, les transactions lentes et l'analyse SQL. Cette rubrique explique comment utiliser l'agent SkyWalking Python pour activer l'instrumentation automatique et envoyer les données d'application.

Prérequis

  • Vous avez téléchargé l'agent Python pour Apache SkyWalking. Nous vous recommandons d'utiliser la dernière version.

  • Vous avez ajouté l'agent Python SkyWalking à votre projet Python.

  • Obtenir un endpoint

    1. Connectez-vous à la console ARMS. 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 Server-side Applications.

    3. Dans le panneau SkyWalking, cliquez sur l'onglet Start Integration, puis sélectionnez la région dans laquelle vous souhaitez envoyer 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 se trouve dans la région sélectionnée, nous vous recommandons de définir ce paramètre sur Alibaba Cloud VPC Network. Sinon, définissez-le sur Public Network.

      image.png

Contexte

SkyWalking est un outil open source populaire de surveillance des performances des applications (APM) pour les architectures basées sur les microservices, le cloud-native et les conteneurs, notamment Docker, Kubernetes et Mesos. Au cœur de SkyWalking se trouve un système de traçage distribué.

skywalking-python est la bibliothèque d'agent Python officielle pour SkyWalking. Vous pouvez intégrer skywalking-python pour superviser les applications Python. Elle prend en charge l'instrumentation automatique de nombreuses bibliothèques tierces, telles que Kafka, HTTP, AIOHTTP, Redis et WebSockets.

Bibliothèques tierces prises en charge

Bibliothèque

Version Python - Version de la bibliothèque

Nom du 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 - Non pris en charge

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 - Non pris en charge

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 - Non pris en charge

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

Exemple d'application

Référentiel de l'exemple d'application : SkyWalking Demo

Cette démo est un exemple simple basé sur Flask qui transfère les requêtes et interagit avec une base de données MySQL. L'agent SkyWalking supervise l'application et envoie les données.

Activer l'instrumentation automatique pour une application Python

Vous pouvez configurer les paramètres de l'agent SkyWalking Python dans les fichiers de votre projet Python ou sous forme de variables d'environnement.

Configurer les paramètres dans le code

Modifiez les paramètres config.init dans le fichier de votre projet Python. Dans l'exemple d'application, les fichiers correspondants sont proxy/TestProxy.py et controller/TestController.py.

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

Configurer les paramètres comme variables d'environnement

Ajoutez le contenu suivant à votre fichier de variables d'environnement, puis redémarrez votre application pour que les modifications prennent effet.

export SW_AGENT_ConfigurationName=ConfigurationValue
Remarque

Pour les environnements de conteneurs Docker, vous pouvez configurer les variables d'environnement dans l'option environment du fichier docker-compose.yaml.

  1. Configurez l'endpoint et le jeton.

    1. Importez SkyWalking dans votre fichier Python.

      from skywalking import agent, config
    2. Configurez l'endpoint et le jeton d'authentification.

      Remplacez <endpoint> et <auth-token> par l'endpoint et le jeton d'authentification obtenus dans la section Prérequis.

      config.init(agent_collector_backend_services='<endpoint>',
                  agent_authentication='<auth-token>')
  2. Configurez un nom de service comme identifiant de l'application.

    config.init(agent_name='<service name>')
  3. Configurez le protocole d'envoi des données. Le seul protocole pris en charge est gRPC.

    ### The only available reporting protocol is 'grpc'.
    config.init(agent_protocol='<protocol>')
  4. Configurez d'autres paramètres facultatifs selon vos besoins. Pour plus d'informations, consultez la documentation officielle Apache SkyWalking.

  5. Redémarrez l'application.

FAQ

  • Que faire si l'erreur Method not found: skywalking.v3.LogReportService/collect se produit lors de l'envoi des données 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;

    Définissez agent_log_reporter_active sur False dans l'appel config.init.

    config.init(agent_log_reporter_active=False)
  • Que faire si l'erreur Method not found: skywalking.v3.MeterReportService/collect se produit lors de l'envoi des données 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;

    La console ne prend pas en charge l'envoi des données metric. Dans l'appel config.init, définissez agent_meter_reporter_active sur False.

    config.init(agent_meter_reporter_active=False)

Références

Site web officiel Apache SkyWalking