APM(三):监控 Python 服务链
本文介绍了如何通过Skywalking监控两个相互调用的Python Flask服务。在完成Skywalking后端服务启动后,编写了一个BService服务,该服务会调用之前创建的AService。文章详细说明了BService的代码实现、依赖安装、环境变量配置(指定Skywalking收集器地址和服务名称)以及启动过程。最后通过浏览器访问BService验证调用链路的监控效果,并检查Skywa
上一篇我们通过 Skywalking 监控了一个单体的 Python Flask 服务,并在 Skywalking 的 Web UI 中进行展示。这次我们再写一个服务 BService,调用上次创建的 AService,看看在 Skywalking 中的效果如何。
启动后端服务
先启动好后端服务,包括 Skywalking 和 Easysearch。启动完成后能通过 Web UI 访问 Skywalking。

构建 Python 服务 BService
我们编写一个简单的 BService 服务程序,只要访问 localhost:8082/b 就会调用 AService 并返回相关信息。
from flask import Flask
import requests
app = Flask(__name__)
SERVICE_A_URL = 'http://localhost:8081/a'
@app.route('/b', methods=['GET'])
def call_service_a():
response = requests.get(SERVICE_A_URL)
if response.status_code == 200:
return f"Hello, I'am Server B and {response.text} from Service A'
else:
return 'Error calling Service A'
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8082)
运行前,要安装好依赖。
pip3 install flask
pip3 install apache-skywalking
pip3 install requests
设置环境变量
为了让服务能成功把相关信息发送到 Skywalking 后端,启动前我们还要设置两个环境变量告诉服务程序该往哪里发送信息。
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=localhost:11800
export SW_AGENT_NAME=BService-python
启动 Python 程序
一切准备妥当后,运行我们的服务程序。
sw-python run python3 BService.py
程序启动后会监听 8082 端口。

我们通过浏览器访问下 BService,它调用了 AService。

在 Skywalking 的 Web UI 上查看服务的信息是否采集到。



火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)