目录

Python应用接入skywalking实现apm监控

Python应用接入skywalking实现apm监控

附录:对于想要实现此功能的朋友,自行本地搭建一个简单的python环境,写两个简单的增删改查的例子即可,对于该功能的实现,首先要去官网了解下当前python-agent所支持的库,本文就对mysql和redis两个组件实现apm监控做个概述。python-agent当前支持库如下

https://i-blog.csdnimg.cn/blog_migrate/b84c828d2e6c453ec0ce6a6fb1d8f753.png

一:安装依赖

python环境搭建好之后,安装相应的依赖即可:

pip3 install "apache-skywalking"
pip3 install pymysql
pip3 install redis

python项目操作mysql数据库,需要pymysql这个第三方的包,所以安装它之后即可对mysql数据库进行操作,本地环境简要目录如下

https://i-blog.csdnimg.cn/blog_migrate/3fedfcf034aaacc2704174a3d17935e4.png

二:接口埋点

对于pymysql组件来说,只需要在pymysql包下的_init_.py这个文件中设置埋点即可:

import sys
from skywalking import agent, config
config.init(
    collector_address = "10.114.126.48:11800",
    service_name = "python-agent",
    service_instance = "python-agent"
)
agent.start()

from .constants import FIELD*TYPE
from .err import (
Warning,
Error,
InterfaceError,
DataError,
DatabaseError,
OperationalError,
IntegrityError,
InternalError,
NotSupportedError,
ProgrammingError,
MySQLError,
)

同理:对于操作 redis 来说,只需要在 redis 包下的_init*.py 这个文件中加入埋点即可

import sys
from skywalking import agent, config
config.init(
collector_address = "10.114.126.48:11800",
service_name = "python-agent",
service_instance = "python-agent"
)
agent.start()

if sys.version*info >= (3, 8):
from importlib import metadata
else:
import importlib_metadata as metadata

对于不同组件来说,埋点的规则估计就是在各组件对应包目录下的_init*.py 这个文件中加入埋点即可,目前我个人也只是测试这两个组件

三:效果图如下

https://i-blog.csdnimg.cn/blog_migrate/faa8bd8fccedf2354d38c8e5a77e3fed.png