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 等搜索引擎的技术支持工作,服务国内私有化部署的客户。

相关推荐
严同学正在努力16 小时前
从备份到恢复:我用 30 分钟恢复了误删的核心业务表
android·java·数据库·ai
#六脉神剑17 小时前
myBuilder新版本(8月,Office文件预览、Oracle数据库支持)
数据库·oracle·开发平台·数字化工具·mybuilder
花青泽17 小时前
5-数据库-SQL注入-联合查询-AND/OR绕过-day13
数据库·sql
踏着七彩祥云的小丑17 小时前
忘记Redis是否安装过时查看
数据库·redis·缓存
Nontee18 小时前
设计模式:模板方法与策略,从“每个字都认识“到能说清它们在干嘛
java·数据库·设计模式
眞bilibili19 小时前
带团队后的日常思考(十七)
数据库
laboratory agent开发19 小时前
智能体多工具串联执行中途失败,部分写入的数据如何回滚
运维·服务器·数据库
段一凡-华北理工大学20 小时前
AI推动工业智能化转型~系列文章07:分类与诊断算法体系:故障识别的完整工具箱
数据库·人工智能·算法·机器学习·分类·数据挖掘·高炉炼铁智能化
DBA_G20 小时前
南大通用GBase HD数据平台讲解
数据库
foolishlee20 小时前
Neon wal日志处理流程
数据库