easybill/serverdensity_udp_metric_client

UDP-Agent 客户端 https://github.com/easybill/serverdensity-udp-agent

0.6.6 2024-01-31 09:26 UTC

README

安装

该项目为 Linux & Mac x86, aarch64 构建每个发布版本。您可以从发布标签下载这些预构建的二进制文件。

其他平台

对于其他平台,您需要自己编译这个库

  1. 安装 Rust 和 Cargo
  2. 克隆此仓库
  3. 运行 cargo b --release --bin=openmetrics_udpserver
  4. 可执行文件位于 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);

数据格式

必须使用以下数据格式将数据发送到服务器

  1. u16: 指标类型的表示(见下表)
  2. i32: 数据计数
  3. 指标的 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