蚊章汇 - Keyur Paralkar
type: channel
link: https://linuxcn.bwsl.wang/author/1759/
description: Keyur Paralkar
items: 在不到 30 分钟内构建一个树莓派监控仪表盘

在不到 30 分钟内构建一个树莓派监控仪表盘
type: item
date: 2023-07-10T18:29:00+08:00
description: 使用 Python 制作一个 API 来监控你的树莓派硬件，并使用 Appsmith 建立一个仪表盘。如果你想知道你的树莓派的性能如何，那么你可能需要一个树莓派的仪表盘。在本文中，我将演示如何快速构建一个按需监控仪表盘，以实时查看你的树莓派的 CPU 性能、内存和磁盘使用情况，并根据需要随时添加更多视图和操作。如果你已经使用 Appsmith，你还可以直接导入 示例应用程序 并开始使用。AppsmithAppsmith 是一个开源的 低代码 应用构建工具，帮助开发人员轻松快速地构建内部应用，如仪表盘和管理面板。它是一个用于仪表盘的很好选择，并减少了传统编码方法所需的时间和复杂性。在此示例的仪表盘中，我显示以下统计信息：CPU占用百分比频率或时钟速度计数温度内存占用百分比可用内存百分比总内存空闲内存磁盘磁盘使用百分比绝对磁盘空间使用量可用磁盘空间总磁盘空间创建一个端点你需要一种从树莓派获取这些数据并传递给 Appsmith 的方法。psutil 是一个用于监控和分析的 Python 库，而 Flask-RESTful 是一个创建 REST API 的 Flask 扩展。Appsmith 每隔几秒钟调用 REST API 以自动刷新数据，并以 JSON 对象作为响应，其中包含所有所需的统计信息，如下所示：{ "cpu_count": 4, "cpu_freq": [ 600.0, 600.0, 1200.0 ], "cpu_mem_avail": 463953920, "cpu_mem_free": 115789824, "cpu_mem_total": 971063296, "cpu_mem_used": 436252672, "cpu_percent": 1.8, "disk_usage_free": 24678121472, "disk_usage_percent": 17.7, "disk_usage_total": 31307206656, "disk_usage_used": 5292728320, "sensor_temperatures": 52.616 } 1、设置 REST API如果你的树莓派尚未安装 Python，请在树莓派上打开终端并运行此安装命令：$ sudo apt install python3 现在为你的开发设置一个 Python 虚拟环境：$ python -m venv PiData 接下来，激活该环境。你必须在重新启动树莓派后执行此操作。$ source PiData/bin/activate $ cd PiData 为了安装 Flask、Flask-RESTful 和以后需要的依赖项，请在你的 Python 虚拟环境中创建一个名为 requirements.txt 的文件，并将以下内容添加到其中：flask flask-restful gunicorn 保存文件，然后使用 pip 一次性安装它们。你必须在重新启动树莓派后执行此操作。(PyData)$ python -m pip install -r requirements.txt 接下来，创建一个名为 pi_stats.py 的文件来存放使用 psutil 检索树莓派系统统计信息的逻辑。将以下代码粘贴到 pi_stats.py 文件中：from flask import Flask from flask_restful import Resource, Api import psutil app = Flask(__name__) api = Api(app) class PiData(Resource): def get(self): return "RPI Stat dashboard" api.add_resource(PiData, '/get-stats') if __name__ == '__main__': app.run(debug=True) 这段代码的作用如下：使用 app = Flask(name) 来定义嵌套 API 对象的应用程序。使用 Flask-RESTful 的 API 方法 来定义 API 对象。在 Flask-RESTful 中将 PiData 定义为具体的 Resource 类 ，以公开每个支持的 HTTP 方法。使用 api.add_resource(PiData, '/get-stats') 将资源 PiData 附加到 API 对象 api。每当你访问 URL /get-stats 时，将返回 PiData 作为响应。2、使用 psutil 读取统计信息要从你的树莓派获取统计信息，你可以使用 psutil 提供的这些内置函数：cpu_percentage、cpu_count、cpu_freq …