我想在Python中尝试使用APM跟踪器
OCI的APM(应用程序性能监控)包含支持OpenTracing的分布式追踪功能。对于Java的Maven项目和Helidon,提供了APM Java追踪器;对于Python,则可以通过使用py_zipkin将追踪数据发送到APM来实现相似的功能。
在这里,我们将尝试在实际的Python应用程序中使用APM的分布式追踪功能。
需要使用APM的用户和权限
由于本次是使用帐户管理者用户进行设置,所以将省略此步骤。但对于普通用户,根据文档授予策略。
新建APM领域

准备执行环境
准备一个可以执行Python的环境,并安装以下软件包(例如,在创建了一个新的OCI VM实例后开始配置)。
sudo yum install python3-devel
sudo pip3 install requests
sudo pip3 install py_zipkin
#サンプルコードをダウンロード
wget https://raw.githubusercontent.com/western24/apm4python/main/apmweather.py
这个示例代码是一个简单的应用程序,它通过访问气象厅的API来获取天气预报数据并进行显示。代码中还嵌入了发送跟踪数据到APM的代码(zipkin_span)。
将样本代码第8行中的红色部分替换为上述复制的APM终点和公钥:
requests.post(’https://APM终点/20200101/观测/公共跨度?数据格式=zipkin&数据版本=2&数据键=公共键’
使用requests.post方法发送请求,请求的目标地址为’https://aaaacxxxxxxx.apm-agt.us-ashburn-1.oci.oraclecloud.com/20200101/observations/public-span?dataFormat=zipkin&dataFormatVersion=2&dataKey=P2HVLPEYDQ3R3366OBCIUFOM42Z4xxxx’。
#アプリケーションの実行 ※130000は東京を示すコード
$ python3 apmweather.py 130000
2021-12-22T11:00:00+09:00 東京地方 晴れ 夜 くもり
如果正确执行,将以无错误消息的方式显示东京的天气预报信息。
通过APM确认跟踪数据

这个应用程序通过简单的描述努力帮助人们了解如何在Python中使用APM跟踪。
代码中的zipkin_span是通过在函数部分添加with语句来实现将该函数定义为SPAN。每个SPAN都会记录其执行时间,因此可以在性能监视和问题定位中有用,例如与微服务API组合使用的应用程序。
虽然有点难以理解,但这里也有使用 Object Storage 和 Kafka 的示例供您参考。