APM(三):监控 Python 服务链

上一篇我们通过 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 上查看服务的信息是否采集到。

相关推荐
微三云 - 廖会灵 (私域系统开发)1 小时前
存量社区破局:当物业困局遇上消费返物业费,重构社区商业新生态
大数据·人工智能·重构
guo_wen_qiang2 小时前
mac中docker desktop服务端开启远程访问
运维·服务器·macos·docker
小五传输3 小时前
消防总队信创改造实践:国产文件传输服务器解决文件传输难题
大数据·运维·安全
云飞云共享云桌面3 小时前
医疗器械设备研发:多人同时操作 SolidWorks,怎样依靠单台服务器替代多工作站
运维·服务器·网络·数据库·制造
T型码农要学习3 小时前
开源项目5|FileBrowser:免费在线文件管理器!随时随地管控服务器文件
运维·服务器·人工智能·开源
朱 欢 庆4 小时前
云服务器附件备份到本机内网服务器
运维·服务器·前端·经验分享
flyinsono4 小时前
连锁宠物医院怎么管?杏聆荟系统实现多店高效协同
大数据·宠物
Sylvia33.4 小时前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
梦想不只是梦与想4 小时前
Web 服务器网关协议:ASGI 和 WSGI
服务器·python·fastapi
Sayai4 小时前
Elasticsearch 9 安装验证实战:start-local 一键部署 + Docker 手动安装踩坑指南
大数据·elasticsearch·docker