Skip to main content

VOGAMOS(火山气体监测系统)数据采集服务库

项目描述

tlr

概述

tlr是一个作为 VOGAMOS(火山气体监测系统)数据采集服务的软件包。它侦听来自 telnet 服务器的数据,解析数据,并将其存储到数据库服务器。

部署指南

从 GitLab 存储库服务器克隆项目:

git clone https://gitlab.com/bpptkg/tlr.git

然后,将目录更改为 tlr 根目录:

cd tlr/

首先,安装 Python 虚拟环境、pip 和 MySQL 库:

sudo apt install python-virtualenv python3-pip python3-dev libmysqlclient-dev

制作Python虚拟环境并激活虚拟环境:

virtualenv -p python3 venv
source venv/bin/activate

安装所有软件包要求:

pip install -r requirements.txt

然后,从.env.example文件中复制项目设置:

cp .env.example .env

设置一些重要的设置,包括DATABASE_ENGINETELNET_HOSTTELNET_PORTTELNET_TIMEOUTSENTRY_DSN。如果在生产环境中使用,请不要忘记设置DEBUG 为。False

如果数据库表尚未迁移,您可以通过执行以下命令来运行数据库迁移:

./bin/migrate

安装Supervisord。我们将使用它来监控脚本守护进程:

sudo apt install supervisor

supervisor/从目录复制 Supervisord tlr 配置:

sudo cp supervisor/tlr.conf /etc/supervisor/conf.d/

/etc/supervisor/conf.d/tlr.conf根据您的需要编辑:

[program:tlr]
directory=/path/to/tlr
command=bash -c "source /path/to/tlr/venv/bin/activate && /path/to/tlr/run.py"
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/tlr.log
stderr_logfile=/var/log/supervisor/tlr_error.log
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8

[group:tlr]
programs:tlr

在上面的配置中,我们使用命令启动服务:

bash -c "source /path/to/tlr/venv/bin/activate && /path/to/tlr/run.py"

它将在 Python 虚拟环境中启动服务,并确保我们只有一个进程在运行。

重新阅读并更新 Supervisord 配置:

sudo supervisorctl reread
sudo supervisorctl update

您可以通过运行以下命令查看 Supervisord 状态:

sudo supervisorctl status

最后,监视您的数据库是否已存储数据。

监控错误

如果发生任何错误,您可以从日志文件 storage/logs/tlr.log(如果您使用 custom ,日志目录可能不同 LOGGING_ROOT)、Supervisord 日志 ( /var/log/supervisor/tlr_error.log) 或Sentry Web 界面中看到错误。

从 Supervisord 查看错误日志基本上可以很好地调试与系统相关的错误。除此之外,建议从 Sentry web 查看以跟踪应用程序级别的错误。

应用代码更新

ssh首先,通过或任何其他方式接入部署服务器。然后,从 GitLab 存储库中提取更新:

cd /path/to/tlr/
git pull

重启 tlr 服务:

sudo supervisorctl restart tlr

如果您曾经在 中修改 tlr 配置/etc/supervisor/conf.d/tlr.conf,则必须重新阅读并更新服务:

sudo supervisorctl reread
sudo supervisorctl update

开发者参考

克隆项目并创建 Python 虚拟环境后,安装所有开发包要求:

pip install -r dev-requirements.txt

在将您的更改提交到我们的 GitLab 存储库之前,请在 tests/目录中编写单元测试。pytest您可以通过运行命令运行所有单元测试以查看您的测试是否通过:

pytest

主脚本入口点是run.py. 您可以通过执行以下命令来运行脚本:

python run.py

请注意,您必须在 Python 虚拟环境中运行脚本。

安装 tlr 库

如果你想访问 tlr API,你可以从 PyPI 安装包:

pip install -U tlr

例子:

from tlr.parser import T1Parser
from tlr.utils import force_str

# Data from telner server
bytes_data = b'T#01 56.92,\r\nT#03 88.10,90.62,90.42,29.68,14.39\r\n \r\n C \xfc'

# Decode raw data to ordinary string format
str_data = force_str(bytes_data, errors='backslashreplace')

# Create a parser object
data_parser = T1Parser()

# Parse the data
cleaned_data = data_parser.parse_as_dict(str_data)

# Print cleaned data
print(cleaned_data)

输出:

[{'temperature': 56.92}]

贡献

请参阅CONTRIBUTING.md以了解如何为该项目做出贡献。

支持

该项目由 Indra Rudianto 维护。如果您对此项目有任何疑问,可以通过indrarudianto.official@gmail.com与他联系。

执照

通过为项目做出贡献,您同意您的贡献将根据其 MIT 许可获得许可。有关详细信息,请参阅 许可证

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

tlr-2.1.0.tar.gz (24.2 kB 查看哈希

已上传 source