--- title: "APM(二):监控 Python 服务" date: 2025-12-12 lastmod: 2025-12-12 description: "本文实战演示了利用 Skywalking 与 Easysearch 监控 python 服务调用的解决方案。" tags: ["Easysearch", "APM", "Skywalking"] summary: "上一篇我们已经安装好了 Skywalking 和 Easysearch,这次我们来写个简单的 Python 服务,并把它的服务调用信息发送给 Skywalking,通过 Skywalking 的 Web UI 进行展示。 启动后端服务 # 先启动好后端服务,包括 Skywalking 和 Easysearch。启动完成后能通过 Web UI 访问 Skywalking。 构建 Python 服务 # 我们编写一个简单的 Flask 服务程序,只要访问 localhost:8081/a 就会返回 “Hello, I’m Service A!” 信息。 from flask import Flask app = Flask(__name__) @app.route('/a', methods=['GET']) def service_b(): return "Hello, I'm Service A!" if __name__ == '__main__': app.run(host='0.0.0.0', port=8081) 运行前,要安装好依赖。 pip3 install flask pip3 install apache-skywalking 依赖关系展示如下: 设置环境变量 # 为了让服务能成功把相关信息发送到 Skywalking 后端,启动前我们还要设置两个环境变量告诉服务程序该往哪里发送信息。" --- [上一篇](https://infinilabs.cn/blog/2025/integrating-skywalking-with-easysearch/)我们已经安装好了 Skywalking 和 Easysearch,这次我们来写个简单的 Python 服务,并把它的服务调用信息发送给 Skywalking,通过 Skywalking 的 Web UI 进行展示。 ## 启动后端服务 先启动好后端服务,包括 Skywalking 和 Easysearch。启动完成后能通过 Web UI 访问 Skywalking。 {{% load-img "/img/blog/2025/integrating-skywalking-with-easysearch-part2/1.png" "" %}} ## 构建 Python 服务 我们编写一个简单的 Flask 服务程序,只要访问 localhost:8081/a 就会返回 "Hello, I'm Service A!" 信息。 ```plain from flask import Flask app = Flask(__name__) @app.route('/a', methods=['GET']) def service_b(): return "Hello, I'm Service A!" if __name__ == '__main__': app.run(host='0.0.0.0', port=8081) ``` 运行前,要安装好依赖。 ```plain pip3 install flask pip3 install apache-skywalking ``` 依赖关系展示如下: {{% load-img "/img/blog/2025/integrating-skywalking-with-easysearch-part2/2.png" "" %}} ## 设置环境变量 为了让服务能成功把相关信息发送到 Skywalking 后端,启动前我们还要设置两个环境变量告诉服务程序该往哪里发送信息。 ```plain export SW_AGENT_COLLECTOR_BACKEND_SERVICES=localhost:11800 export SW_AGENT_NAME=AService-python ``` ## 启动 Python 程序 一切准备妥当后,运行我们的服务程序。 ```plain sw-python run python3 AService.py ``` 程序启动后会监听 8081 端口。 {{% load-img "/img/blog/2025/integrating-skywalking-with-easysearch-part2/3.png" "" %}} 我们通过浏览器访问下。 {{% load-img "/img/blog/2025/integrating-skywalking-with-easysearch-part2/4.png" "" %}} 在 Skywalking 的 Web UI 上查看服务的信息是否采集到。 {{% load-img "/img/blog/2025/integrating-skywalking-with-easysearch-part2/5.png" "" %}} {{% load-img "/img/blog/2025/integrating-skywalking-with-easysearch-part2/6.png" "" %}} {{% load-img "/img/blog/2025/integrating-skywalking-with-easysearch-part2/7.png" "" %}} {{% load-img "/img/blog/2025/integrating-skywalking-with-easysearch-part2/8.png" "" %}} 可以看到服务 A 的调用信息都已经被记录到 Skywalking 中了。 {{% load-img "/img/blog/banner/about_yangf.png" "" %}}