APM(二):监控 Python 服务

上一篇我们已经安装好了 Skywalking 和 Easysearch,这次我们来写个简单的 Python 服务,并把它的服务调用信息发送给 Skywalking,通过 Skywalking 的 Web UI 进行展示。

启动后端服务

先启动好后端服务,包括 Skywalking 和 Easysearch。启动完成后能通过 Web UI 访问 Skywalking。

构建 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

依赖关系展示如下:

设置环境变量

为了让服务能成功把相关信息发送到 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 端口。

我们通过浏览器访问下。

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

可以看到服务 A 的调用信息都已经被记录到 Skywalking 中了。

作者:杨帆,极限科技(INFINI Labs)高级解决方案架构师、《老杨玩搜索》栏目 B 站 UP 主,拥有十余年金融行业服务工作经验,熟悉 Linux、数据库、网络等领域。目前主要从事 Easysearch、Elasticsearch 等搜索引擎的技术支持工作,服务国内私有化部署的客户。

相关推荐
川川菜鸟2 小时前
谷歌安全告警(Chrome 红页)完整处理指南
数据库·chrome·安全
DemonAvenger2 小时前
Redis缓存穿透、击穿与雪崩:从问题剖析到实战解决方案
数据库·redis·性能优化
whn19772 小时前
达梦数据库的整体负载变化查看
java·开发语言·数据库
倔强的石头_2 小时前
性能飙升!KingbaseES V9R2C13 Windows安装与优化特性深度实测
数据库
梦里不知身是客112 小时前
Doris 中主键模型的读时合并模式
数据库·sql·linq
GanGuaGua2 小时前
MySQL:复合查询
数据库·mysql·oracle
gugugu.3 小时前
MySQL事务深度解析:从ACID到MVCC的实现原理
数据库·mysql·oracle
DechinPhy3 小时前
使用Python免费合并PDF文件
开发语言·数据库·python·mysql·pdf
杨了个杨89823 小时前
PostgreSQL 完全备份与还原
数据库·postgresql