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 上查看服务的信息是否采集到。

相关推荐
全栈陈序员37 分钟前
【Git】从入门到精通(五)—— git add:将文件加入暂存区
大数据·git·elasticsearch
benchmark_cc38 分钟前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
维克兜率天1 小时前
【维克】趋势型CTA:期货市场的“追涨杀跌“
人工智能·python
翊众建站2 小时前
用 JSON-LD 给企业官网做结构化数据:LocalBusiness 与 FAQPage 实践笔记
人工智能·搜索引擎·json
Zenova EdgeOS2 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
KKKlucifer2 小时前
国内数据安全服务的产品智能化转型:大模型赋能下的技术能力重构分析
大数据·数据库·重构
取名真是2 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
vibecode2 小时前
网站服务器失去响应怎么解决?我把连接超时和读超时这两段计时拆开跑了一遍
运维·服务器
梦想不只是梦与想2 小时前
PyTorch、CPU、GPU、CUDA
人工智能·pytorch·python·深度学习·机器学习·cuda
数字融合2 小时前
透明化视频孪生危化安全管控解决方案
人工智能·python·安全