1

我正在研究 scollector,我想为不同的收集器设置特定的频率。

例如:

  • 每 5 分钟从磁盘使用情况中获取信息
  • 每分钟记忆中的信息
  • iostat 每 30 秒
  • 等等...

这是我制作的 conf.toml 的一部分:

FullHost = true
Freq = 60
DisableSelf = true

[[iostat]]
  Filter = "iostat"
  Freq = 30

[[memory]]
  Filter = "memory"
  Freq = 60

但我得到一些错误

./scollector -conf="perso.toml" -p
2016/04/19 14:40:45 fatal: main.go:297: extra keys in perso.toml: [iostat iostat.Freq memory memory.Freq]

似乎我无法将频率相乘。

我应该怎么做才能得到我想要的?

谢谢你们

4

3 回答 3

0

根据scollector 文档,Freq 是一个全局设置,因此不可能为每个收集器设置不同的频率。外部收集器例外,它可以放在以所需频率(以秒为单位)命名的文件夹中。

于 2016-04-20T12:10:44.703 回答
0

Freq 确实是全局设置,并且通常将间隔设置为它。尽管一些收集器将间隔覆盖为不同的值,例如 elasticsearch-indices 每 15 分钟运行一次,因为需要提取大量数据。

要更改它

  • (最佳)hack scollector 代码来读取 freq 参数并将其传递给每个收集器
  • (第二好)提交一个 github 问题
  • (最后的手段)您可以只更改特定收集器中的间隔 scollector 代码并重新编译 scollector
于 2016-04-20T12:43:35.733 回答
0

好吧,我们可能会发现一些东西。我们创建了代表多个频率(0、30、60、120...)的不同文件夹,并且在每个文件夹中,我们编写了我们需要的外部收集器。

'/etc/collectors/0',
'/etc/collectors/15',
'/etc/collectors/30',
'/etc/collectors/60',
'/etc/collectors/120',
'/etc/collectors/300',
'/etc/collectors/600'

在 conf.toml 中:

ColDir = "/etc/scollector/collectors"

如果我们想要内部收集器,我们必须重写它们:(

于 2016-04-20T14:31:58.933 回答