#monitoring #performance-monitoring #performance #light-weight

app antikoerper

一个轻量级且易于使用的本地监控应用程序

2个不稳定版本

0.3.0 2023年3月30日
0.2.0 2016年3月19日

11 in #performance-monitoring

GPL-3.0 许可证

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 数组
  • digesttype 的值可以是以下之一:"raw"(默认值),"regex""monitoring-plugin"
    • "regex" 接受一个正则表达式字符串(建议使用 '' 来避免转义)
    • "monitoring-plugin" 可能不适用于所有监控插件的输出

输出

项目 key 是由项目创建的所有指标的基础名。键的扩展如下

  • 如果写入原始值,则使用 .raw
  • digest.type = "raw":
    • 如果可以解析 f64 值,则使用 .parsed
  • 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