APM(三):监控 Python 服务链
上一篇 我们通过 Skywalking 坚控了一个单体的 Python Flask 服务,并在 Skywalking 的 Web UI 中进行展示。这次我们再写一个服务 BService,调用上次创建的 AService,看看在 Skywalking 中的效果如何。
先启动好后端服务,包括 Skywalking 和 Easysearch。启动完成后能通过 Web UI 访问 Skywalking。

我们编写一个简单的 BService 服务程序,只要访问 localhost:8082/b 就会调用 AService 并返回相关信息。
from flask import Flaskimport requestsapp = 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 flaskpip3 install apache-skywalkingpip3 install requests为了让服务能成功把相关信息发送到 Skywalking 后端,启动前我们还要设置两个环境变量告诉服务程序该往哪里发送信息。
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=localhost:11800export SW_AGENT_NAME=BService-python一切准备妥当后,运行我们的服务程序。
sw-python run python3 BService.py程序启动后会 8082 端口。

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

在 Skywalking 的 Web UI 上查看服务的信息是否采集到。
服务调用频率、成功率、延时等。

我们之前直接调用过 ASERvice,这次我们调用了 BService,BService 调用了 AService,所以 BService 的调用信息中会包含 AService 的调用信息。
调用链详情。
-
10.13
C#中Invoke、begininvoke、InvokeRequired三者之间的区别实用指南
-
10.13
Codex下载与本地部署实践:从零搭建你的AI编程助手实用指南
-
10.13
OpenClaw飞书渠道ACP功能启动的实现方式步骤实用指南
-
10.13
C# async Task返回值的使用小结实用指南
-
10.13
认识 DeepSeek Harness(DSH):Agent、Harness 与“一切皆插件“实用指南
-
10.13
C# 索引器(Indexer)超全笔记实用指南
推荐专题
热门阅读
-
-
-
-
- 火影忍者木叶高手鸣人技能是什么
- 08.11
-
-
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏