Python应用接入skywalking实现apm监控
目录
Python应用接入skywalking实现apm监控
附录:对于想要实现此功能的朋友,自行本地搭建一个简单的python环境,写两个简单的增删改查的例子即可,对于该功能的实现,首先要去官网了解下当前python-agent所支持的库,本文就对mysql和redis两个组件实现apm监控做个概述。python-agent当前支持库如下 :
一:安装依赖
python环境搭建好之后,安装相应的依赖即可:
pip3 install "apache-skywalking"
pip3 install pymysql
pip3 install redis
python项目操作mysql数据库,需要pymysql这个第三方的包,所以安装它之后即可对mysql数据库进行操作,本地环境简要目录如下
二:接口埋点
对于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 这个文件中加入埋点即可,目前我个人也只是测试这两个组件