标签: graphite

即使我向它发送数据,Graphite 对所有数据点都显示“无”

我已经通过 Puppet ( https://forge.puppetlabs.com/dwerder/graphite ) 和 nginx 和 PostgresSQL安装了 Graphite 。当我手动发送数据时,它会创建指标,但它的所有数据点都是“无”(也称为空)。如果我运行 Graphite 附带的 example-client.py,也会发生这种情况。

echo "jakub.test 42 $(date +%s)" | nc 0.0.0.0 2003 # Carbon listens at 2003
# A minute or so later:
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | head -n1
Sun May  4 12:19:00 2014    None
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | tail -n1
Mon May  5 12:09:00 2014    None
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | grep -v None | wc -l
0
Run Code Online (Sandbox Code Playgroud)

和:

$ python /opt/graphite/examples/example-client.py 
# Wait until it …
Run Code Online (Sandbox Code Playgroud)

monitoring graphite

8
推荐指数
1
解决办法
1万
查看次数

如何更改 Y 轴上的 grafana 测量单位?

我正在通过 collectd 从服务器收集数据并将其存储在石墨中。我想使用 grafana 仪表板。我正在尝试为内存插件创建可视化。在石墨中,我看到的数据以 Mb 为单位,但在 Grafana 图中,我在 Y 轴上看到了奇怪的“Mib”或“Bil”。如何更改 grafana 测量单位?

monitoring memory graph collectd graphite

8
推荐指数
1
解决办法
3万
查看次数

使用 statsd 的好处?

所以过去几天我一直在玩石墨,我可以看到那里的潜力以及它为何如此强大。

我的主要问题是为什么我应该像 esty 一样在它前面使用 statsd 而其他很多人都这样做?截至目前,我没有看到在石墨前面放置另一个堆栈的大好处。

我希望有人可以清除它

https://github.com/etsy/statsd

monitoring graphite

7
推荐指数
1
解决办法
1223
查看次数

如果文件不存在,如何告诉 Puppet 仅使用 Pip 进行安装

我正在使用 Puppet 使用 pip 安装一些 Python 包。我使用的是 Puppet 2.7,所以我的包声明看起来像这样:

package { "carbon": 
    require => Class["graphite::prereqs::install"],
    ensure  => latest,
    provider => pip,
}
Run Code Online (Sandbox Code Playgroud)

问题是这个包和graphite-web包似乎都有一个错误,可以使用 pip 多次安装相同的版本。所以如果我sudo pip install carbon多次输入,pip 每次都会安装它。我相信这是软件包的错误。

这个错误似乎也让 Puppet 感到困惑,因为每次我配置我的系统carbongraphite-web重新安装时。

因此,我想知道是否有办法解决这个明显的打包错误。我尝试了以下方法:

package { "carbon": 
    require => Class["graphite::prereqs::install"],
    ensure  => latest,
    provider => pip,
    creates => "/opt/graphite/bin/carbon-cache.py",
}
Run Code Online (Sandbox Code Playgroud)

...但我不能使用创建。有没有另一种方法可以告诉包声明在安装包之前查找文件?

python puppet pip graphite

6
推荐指数
1
解决办法
1万
查看次数

安全石墨安装

我想我在这里误解了一些东西。我已经使用 Docker (sitespeedio/graphite) 安装了 Graphite,并为 Web 面板设置了基本身份验证。我打开了端口 2003 的防火墙以从其他服务器获取数据点,并且运行良好。

但是没有身份验证/授权。甚至我用来发送一些测试的 python lib 也不允许设置密码、令牌或其他身份验证机制。

如何保护我的 Graphite 安装?

authentication graphite

6
推荐指数
1
解决办法
3728
查看次数

虚拟机 CPU 使用率为 100%

我们的指标框上的 CPU 使用率间歇性地为 100%,导致:
渲染 Grafana 仪表板时出现“内部服务器错误”

在我们的机器上运行的唯一应用程序是带有 3 个子容器的 Docker

  • 管理员
  • 石墨

  • 格拉法纳

机器规格
操作系统版本 Ubuntu 16.04 LTS
版本 16.04 (xenial)
内核版本 4.4.0-103-generic
Docker 版本 17.09.0-ce
CPU 4 核
内存 4096 MB
内存预留无限制
网络适​​配器管理

存储
驱动overlay2
Backing Filesystem extfs
Supports d_type true
Native Overlay Diff true

内存交换限制为 2.00GB

以下是来自 cAdvisor 的片段:

在此处输入图片说明

kworker 和 ksoftirqd 进程不断地将状态从“D”更改为“R”到“S”

机器规格是否适合此设置?
如何使 CPU 使用率达到“正常”水平?

编辑

将内存从 4GB 增加到 8GB 后,它按预期工作了几天,但随着时间的推移,CPU 使用率增加了:
在此处输入图片说明

monitoring virtual-machines graphite docker

6
推荐指数
1
解决办法
1426
查看次数

Graphite SNMP 计数器转换

我正在使用石墨版本 0.9.10 来读取ifHCInOctetsand ifHCOutOctets,我正在使用和插件进行轮询;我使用的是5.1.0 版。collectd snmpgraphite_writecollectd

数据毫无问题地到达石墨;但是,我想以每秒位数表示。为了测试我的统计数据是否正确,我开始了 CD iso 下载并观察了下载速率……它在 1.0Mbps 和 2.0Mbps 之间变化。

常识告诉您,您需要将八位字节计数器乘以 8 才能得到位;但是,似乎我需要除以 8 才能正确显示石墨。

当我乘以 0.125 比例因子时scale(scaleToSeconds(nonNegativeDerivative(<SERIES>), 60),0.125),公式正确转换为每秒位数,我看到 1Mpbs 和 2Mbps 之间的数字......

正确比例 - 0.125

当我乘以 8.0 比例因子时scale(scaleToSeconds(nonNegativeDerivative(<SERIES>), 60),8),结果显然是错误的……图表峰值为 120Mbps。我知道这是错误的,因为这是一个具有 5M 上限的住宅电缆调制解调器。

错误的比例

问题:如果我将八位字节发送到石墨,为什么会scale(<foo>, 8)产生不正确的结果?


/opt/collectd/etc/collectd.conf

LoadPlugin syslog 
LoadPlugin cpu
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin network
LoadPlugin snmp
LoadPlugin write_graphite

<Plugin snmp>
   <Data "std_traffic">
       Type "if_octets"
       Table true
       Instance "IF-MIB::ifName"
       Values "IF-MIB::ifHCInOctets" "IF-MIB::ifHCOutOctets"
   </Data> …
Run Code Online (Sandbox Code Playgroud)

networking snmp collectd graphite

4
推荐指数
1
解决办法
2万
查看次数

Statsd、Graphite 和图表

我已经设置了 Graphite 和 statsd,两者都运行良好。我正在使用graphite/examples 中的example-client.py 来测量负载值,这没问题。
我开始用 statsd 做测试,起初看起来还可以,因为它生成了一些图表,但现在看起来不太好。

首先,这是我的storage-schema.conf

priority = 100
pattern = .*
retentions = 1m:395d
Run Code Online (Sandbox Code Playgroud)

我正在使用此命令将数据发送到 statsd:

echo 'ssh.invalid_users:1|c'| nc -w 1 -u localhost 8126
Run Code Online (Sandbox Code Playgroud)

它执行,我在 Graphite Web 界面中单击 Update Graph,它生成一条线,再次点击 Update 并且该线消失。像this1this2
如果我执行以前的命令5次,图线将达到2和它实际上将保存。再次运行相同的命令两次,图形线到达 2 并消失。
我找不到我配置错误的内容。

预期用途是这样的:

tail -n 0 -f /var/log/auth.log|grep --line-buffered "Invalid user" | while read line; do echo "ssh.invalid_users:1|c" | nc -w 1 -u localhost 8126; done
Run Code Online (Sandbox Code Playgroud)

编辑:
在一个全新的系统上,我使用最新版本的石墨、碳、nodejs、statsd 重新安装,它的作用相同。
尾随 /opt/graphite/storage/log/carbon-cache/carbon-cache-a/query.log 时,我得到:
cache query …

graphite statsd

4
推荐指数
1
解决办法
2891
查看次数

如果请求的时间超过 30 分钟,Graphite 数据将消失

这是 CentOS 6.5 上一个相当新的 Graphite 安装。它通过 AMQP (RabbitMQ) 从 Sensu 接收指标。

作为概念验证,我有一个负载平均监视器每 60 秒向 sensu/graphite 报告数据。我可以看到数据到达 Graphite 的监听器日志。

如果我选择一些数据进行绘图,我只能看到我的经期在“过去 30 分钟”内的数据。(然后只有当我将线模式设置为“连接线”时它才可见,因为点消失了。)

如果我将时间段设置为“查看过去 31 分钟”,则所有数据都会从图表中消失。

我试过使用 storage-schemas.conf 但没有对这种行为做出任何明显的改变。

如果我超过 30 分钟,数据是否会以某种方式被丢弃、过滤掉?我要检查什么?

这是 storage-schemas.conf:

[load_averages]
pattern = \.load_avg\.
retentions = 10s:14d,1m:90d
Run Code Online (Sandbox Code Playgroud)

graphite

3
推荐指数
1
解决办法
1134
查看次数