2个不稳定版本
0.3.0 | 2023年3月30日 |
---|---|
0.2.0 | 2016年3月19日 |
11 in #performance-monitoring
38KB
819 代码行(不含注释)
抗体会
抗体会旨在成为一个轻量级的数据收集工具。
它的基本思想是从您的PC收集数据。然后您可以简单地让它写入文件或将指标发送到influxdb服务器!
可能的应用
- 电池使用
- 分析您自己的PC使用情况(当您的PC不空闲时,哪些程序处于焦点?)
- 听音乐花费的时间
- 您能想到的任何东西!
命名
抗体会这个名字在德语中是抗体的意思。想法是它在后台,容易被遗忘,但仍然忙碌且有用。
配置文件
配置文件是一个简单的toml文件,在程序启动时读取。它允许您指定应监控您计算机的哪些方面以及间隔。
带有所有选项的示例配置
[general]
# shell used for Items with type = "shell"
shell = "/usr/bin/bash"
[[output]]
# writes data to files in the directory /tmp/antikoerper
type = "file"
base_path = "/tmp/antikoerper"
# always write the raw, "undigested" result
always_write_raw = true
[[output]]
type = "influxdb"
# all other options for influxdb are optional/have defaults
url = "https://127.0.0.1:8086"
database = "antikoerper"
username = "someuser"
password = "somepassword"
# write raw results in influxdb if no metrics could be parsed
use_raw_as_fallback = false
# write raw results in influxdb
always_write_raw = false
[[items]]
key = "os.battery"
interval = 60
input.type = "command"
input.path = "acpi"
# digest.type = "raw" # no digest
[[items]]
key = "os.usage"
interval = 1
input.type = "file"
input.path = "/proc/loadavg"
digest.type = "regex"
digest.regex = '(?P<load1m>\d+\.\d\d)\s(?P<load5m>\d+\.\d\d)\s(?P<load15m>\d+\.\d\d)'
[[items]]
key = "os.memory"
interval = 60
env = { LANG = "C" }
input.type = "shell"
input.script = "free | grep 'Mem:'"
digest.type = "regex"
digest.regex = '.*\s+(?P<total>\d+)\s+(?P<used>\d+)\s+(?P<free>\d+)\s+(?P<shared>\d+)\s+(?P<cache>\d+)\s+(?P<avail>\d+)"'
[[items]]
key = "workstation.os.procs"
interval = 30
input.type = "command"
input.path = "check_procs"
digest.type = "monitoring-plugin"
部分 general
shell
,默认shell是/bin/sh
。如果您想使用另一个,请在此处指定。
部分/列表 output
type = "file"
,将数据写入以下base_path
下的文件。type = "influxdb"
,将数据写入正在运行的influxdb服务器。
多个可能的,可以将数据发送到文件和influxdb服务器,如果需要,可以发送多个。
部分/列表 items
每个项目都需要以下键
key
,程序将返回的值的键。interval
,两次“运行”之间的间隔env
,一个用于设置输入type
的环境变量的表。input
,使用type
,可以是"file"
或"shell"
或"command"
。"file"
取一个path
"shell"
取一个script
"command"
取一个path
,以及可选的args
数组
digest
与type
的值可以是以下之一:"raw"
(默认值),"regex"
或"monitoring-plugin"
。"regex"
接受一个正则表达式字符串(建议使用''
来避免转义)"monitoring-plugin"
可能不适用于所有监控插件的输出
输出
项目 key
是由项目创建的所有指标的基础名。键的扩展如下
- 如果写入原始值,则使用
.raw
digest.type = "raw"
:- 如果可以解析 f64 值,则使用
.parsed
- 如果可以解析 f64 值,则使用
digest.type = "regex"
:- 对于提供的正则表达式中的每个命名捕获组(
(?P<name>...)
),使用.<named-capture-group>
- 对于提供的正则表达式中的每个命名捕获组(
digest.type = "monitoring-plugin"
:- 对于监控插件的性能指标输出中的每个标签,使用
.<label>
- 如果监控插件的性能指标输出提供了这些,则使用
.<label>.warn
或.crit
或.min
或.max
- 对于监控插件的性能指标输出中的每个标签,使用
许可协议
本程序是免费软件:您可以在自由软件基金会发布的 GNU 通用公共许可证的条款和条件下重新分发和/或修改它,无论是许可证的第 3 版,还是(根据您的选择)任何较新版本。
本程序的分发是希望它将是有用的,但没有任何保证;甚至没有关于适销性或特定用途的适用性的暗示保证。有关详细信息,请参阅 GNU 通用公共许可证。
您应该已收到一份 GNU 通用公共许可证的副本。如果没有,请参阅 http://www.gnu.org/licenses/。
版权所有 (C) 2016 Marcel Müller (neikos at neikos.email)
依赖项
~9–18MB
~224K SLoC