easybill / serverdensity_udp_metric_client
UDP-Agent 客户端 https://github.com/easybill/serverdensity-udp-agent
0.6.6
2024-01-31 09:26 UTC
Requires
- php: >=7.0
README
安装
该项目为 Linux & Mac x86, aarch64 构建每个发布版本。您可以从发布标签下载这些预构建的二进制文件。
其他平台
对于其他平台,您需要自己编译这个库
- 安装 Rust 和 Cargo
- 克隆此仓库
- 运行
cargo b --release --bin=openmetrics_udpserver
- 可执行文件位于
target/release/openmetrics_udpserver
发送指标
UDP-服务器将收集发送的指标,并使用 openmetrics-text 编码通过 http 端点提供。对于 Min、Average & Peak 指标类型的发送值仅为单个值(如果接收到的值在收集之前重复两次,则旧值将被覆盖)。Sum 指标类型将累加所有接收到的值,直到发生收集 - 然后计数器重置为 0。
从性能角度来看,您可以每秒发送数千条消息。
PHP
我们提供了一个小的 PHP 客户端
composer require easybill/serverdensity_udp_metric_client
<?php $client = new ServerdensityUDPAgent(); $client->sendSum('[METRIC_GROUP].[METRIC]', 1);
数据格式
必须使用以下数据格式将数据发送到服务器
- u16: 指标类型的表示(见下表)
- i32: 数据计数
- 指标的 utf-8 编码名称
所有数字都必须使用大端字节顺序进行编码。
指标类型
安装 + 监督器
# replace the download link for the required platform
wget https://github.com/easybill/openmetrics-udp-agent/releases/latest/download/openmetrics_udpserver_linux_x86_64
chmod +x sopenmetrics_udpserver
mv openmetrics_udpserver /usr/local/bin/
现在您可以测试服务器是否启动
./openmetrics_udpserver
打开 /etc/supervisor/conf.d/openmetrics_udpserver.conf
并添加
[program:openmetrics_udpserver]
command=openmetrics_udpserver
user=sd-agent
process_name=%(program_name)s
numprocs=1
directory=/tmp
autostart=true
autorestart=true
startsecs=0
startretries=10
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s_error.log
stopsignal=QUIT
检查新进程的更新
supervisorctl status openmetrics_udpserver
更新 udp 服务器
wget https://github.com/easybill/openmetrics-udp-agent/releases/latest/download/openmetrics_udpserver_linux_x86_64 chmod +x openmetrics_udpserver supervisorctl stop openmetrics_udpserver rm /usr/local/bin/openmetrics_udpserver mv openmetrics_udpserver /usr/local/bin/ supervisorctl start openmetrics_udpserver supervisorctl status openmetrics_udpserver