问题标签 [graphite-carbon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1808 浏览

graphite - 石墨 + statsd,缺少统计数据?

我们使用 statsd 作为聚合器,在 60 秒后转发到石墨。

我可以看到石墨填充“stats.timers”桶。但并非所有预期的。

在石墨机器上:

查看 statsd 源代码(https://github.com/etsy/statsd/blob/master/lib/process_metrics.js),我希望每次发生的事情都会出现以下指标(每个都作为自己的存储桶)。

资源:

任何人都知道为什么对于某些人我只得到“count_ps”而对于其他人我得到“upper”。石墨是否需要一些时间来处理其内部统计队列?

statsd 日志说大约 500 numstats / min 被发送:

任何帮助高度赞赏

干杯马塞尔

0 投票
1 回答
940 浏览

graphite - 碳继电器无法正常工作

我已经设置了 2 个真正的服务器。

一个 Statsite(StatsD 的替代品)位于一个“Graphite Stack”(Carbon 和 Graphite Webapp)前面。

通过 UDP 从 Statsite 正确收集指标。我只是每 10 秒将它们转发到碳缓存(碳中继的 TCP 端口 2013)。

在我的 Carbon 服务器上,3 个 carbon 缓存实例(a、b 和 c)在一个 carbon 中继(一致散列)后面运行。

我有 3 个缓存:[a, b, c] 部分,都在不同的端口上监听。中继部分,在目的地配置键中获得了这 3 个缓存实例。我已经通过 python 脚本启动了每个碳缓存,带有选项 --instance=[a, b, c] 并且我还使用自己的 python 脚本启动了 carbon-relay。我什至可以在中继日志中看到所有 3 个实例都已连接。

但是在我的 Graphite Webapp 中,我可以看到carbon.agents.XXXXX-[a, b, c].metricsCount所有 3 个实例的计数率都相同。

我想念 carbon relay 的 metrics 文件夹carbon.relay.XXXX.metricsCount

我做的一切正确吗???

0 投票
0 回答
486 浏览

graphite - 缩放石墨

在过去的几个小时里,我一直在尝试让石墨扩展,由于某种原因,碳中继似乎没有将数据传递到我的碳缓存端点。如果我在每台主机上运行 carbon-cache 并通过这些端口发送数据,一切都按预期工作,有什么想法吗?

打折显而易见:

  • 我可以在相关端口上的主机之间进行 ssh

碳.conf

中继规则.conf

在我做的每台主机上:

/opt/graphite/bin/carbon-cache.py 启动 /opt/graphite/bin/carbon-relay.py 启动

将数据单独发送到每台主机上的 2013 端口可以正常工作,这意味着所有内容都在 Whisper 目录下创建。

如果我将相同的数据发送到端口 2003,我会在 carbon-relay 服务的 listener.log 中看到以下内容,但是我在该服务器的 carbon-cache 日志中什么也看不到:

任何帮助将非常感激。

0 投票
3 回答
3169 浏览

graphite - 如何让 Graphite 简单地计算计数器,而不是对它们进行计时

我正在使用 Graphite 和 Collectd 来监控我的服务器。特别是,我使用tail插件来计算失败的 SSH 登录。我正在使用一个计数器来衡量这个指标,所以希望看到 1、2、3、0 等......作为数据点。但是,我看到的是 0.1、0.2、0.3、0 等……在我看来,Graphite 正在提供每秒计数。我这样说是因为我的保留策略是每 10 秒一个数据点,持续两个小时。所以每 10 秒 1 次登录失败 = 每秒 0.1 次。我在图表中查看这个。它看起来像这样:

图片

此外,当我扩展到下一个保留级别时,数字会相应调整:因此显示为 0.1 的 1 次登录失败现在显示为远低于此值:0.017 或其他值。

我不认为这与使用的聚合方法有关:即使是最好的数据也是关闭的。如何让 Graphite 将此指标视为纯粹的原始计数器?

这是我的 storage-schemas.conf(保留策略):

这是我对 collectd tail 插件的配置:

这是我对 write_graphite 插件的配置(将数据发送到石墨):

我尝试设置StoreRates falsewrite_graphite 插件,但这不起作用。它确实改变了行为:当我执行一次失败的 SSH 登录时,该指标显示为 1。但是,它并没有回落到 0。当我再执行两次失败的登录时,该指标弹出到 3。

同样有趣的是:我还加载了用户插件,它只显示登录的用户数量,它工作得很好:当我 SSH 进入时显示 1,当我再次 SSH 进入时显示 2,当我退出一个 SSH 时返回 1。对于 StoreRates 的两种设置。所以看起来我想要的东西是可能的。也许不是尾插件。

StoreRates false在这些图中可以看到SSH 登录以及登录用户的正确行为:

图片

有任何想法吗?谢谢,

0 投票
1 回答
1798 浏览

apache - 石墨不在ui中显示rrd文件

安装 Graphite 后,将在/opt/graphite目录中创建以下文件夹结构

在此处输入图像描述

在 rrd 文件夹位置下,我已经复制了所有 rrd 文件

输出是

当我进入石墨网络服务器时,它什么也没有显示,这是在 rrd 位置加载存档 rrd 数据的正确方法吗

我已经重新启动了 carbon 和 apache httpd 服务器,但是 UI 仍然没有显示这些数据的指标,我在做什么错了?

0 投票
1 回答
1215 浏览

replication - 跨数据中心的碳中继复制

我最近从一位同事那里“继承”了碳/石墨设置,我必须重新设计。当前设置是:

  • 数据中心 1 (DC1):2 个服务器(server-DC1-1 和 server-DC1-2),带有 1 个 carbon-relay 和 4 个 carbon 缓存
  • 数据中心 2 (DC2):2 个服务器(server-DC2-1 和 server-DC2-2),带有 1 个 carbon-relay 和 4 个 carbon 缓存

所有 4 个 carbon-relay 都配置了 REPLICATION_FACTOR 为 2、一致的散列和所有carbon-caches ( 2(DCs) * 2(Servers) * 4(Caches) )。这导致某些指标仅存在于一台服务器上(它们可能被散列到同一台服务器上的不同缓存中)。对于超过 100 万个指标,这个问题影响了大约 8% 的指标。

我想做的是具有冗余的多层设置,以便我在数据中心和数据中心内部镜像所有指标,我使用一致的哈希将指标均匀分布在 2 台服务器上。

为此,我需要(主要)继电器配置方面的帮助。这是我想到的图片:

http://i.imgur.com/dtjGlhn.png

客户端会将其数据发送到各自数据中心中的tier1relay(“负载平衡”将发生在客户端,因此例如,主机名中具有偶数的所有客户端将发送到tier1relay-DC1-1和具有奇数的客户端号码将发送到tier1relay-DC1-2)。

tier2relay使用一致的哈希数据中心中的数据均匀地分布在 2 台服务器上。例如,tier2relay-DC1-1的“伪”配置如下所示:

  • RELAY_METHOD = 一致散列
  • DESTINATIONS = server-DC1-1:cache-DC1-1-a, server-DC1-1:cache-DC1-1-b, (...), server-DC1-2:cache-DC1-2-d

我想知道的:我如何告诉tier1relay-DC1-1tier1relay-DC1-2他们应该将所有指标发送到 DC1 和 DC2 中的tier2relay s(在 DC 之间复制指标)执行某种“ tier2relay-DC1-1tier2relay-DC1-2之间的负载平衡” 。


另一方面:如果我使用一致的散列,我也想知道碳中继内部会发生什么,但是一个或多个目的地无法访问(服务器关闭) - 指标是否再次被散列(针对可访问的缓存)或他们会暂时放弃吗?(或者从不同的角度问同样的问题:当中继接收到一个指标时,它是根据所有已配置目的地的列表还是根据当前可用的目的地对指标进行散列处理?)

0 投票
1 回答
251 浏览

apache-spark - Graphite,从不同的主机收集具有相似名称的指标

我已经安装了 Graphite+Carbon 来从多个主机收集指标。这些主机发送 Apache Spark 和 Java 指标。我无法区分 Graphite 端不同主机的指标。正确的方法应该是什么?我想按主机对指标进行分组。

石墨

“Master”位于远程主机上,“workers”位于三个远程主机上,我无法区分传入的号码。不明白将主机行列式添加到指标中的正确方法是什么。

0 投票
1 回答
2058 浏览

graphite - 石墨——如何将数据发送到时间戳超过一年的碳

我正在使用石墨来存储和绘制数据,并且我想将数据点发送到超过一年的碳守护进程(第一个数据点来自 2013 年 12 月 12 日,最后一个是 2015 年 1 月 12 日)但耳语似乎没有能够(至少,不是当前的设置)接受超过 24 小时的值。

每当我将超过一年的指标发送到 carbon(使用纯文本协议)时,它都会简单地丢弃它们。我可以说出来,因为当我在 *.wsp 文件上运行 Whisper-fetch.py​​ 时,它会显示过去 24 小时的时间戳,所有这些时间戳都不包含任何数据。但是,如果我使用当前时间戳(或过去 24 小时内的任何时间戳)发送相同的数据(使用相同的协议),它会保留该值并在我对 *.wsp 文件运行 Whisper-fetch.py​​ 时出现。

我没有任何聚合规则设置,因为我只对原始数据点感兴趣,并且我的保留设置如下:

我知道这将每分钟存储数据点 2 年,但它无法接受过去的数据点。

是否有适当的保留来存储在过去 24 小时之前具有时间戳的历史数据?或者 *.config 文件中是否有允许在最后 24 小时之前导入数据的设置?还是这个“特征”是耳语/碳的限制?

更新

我应该提一下,我发送的指标采用以下格式:

"pos.amps (data here) (unix timestamp here)"

我尝试了一些不同的保留策略,包括使用旧格式:

表示每 120 秒收集 1 个数据点并存储 500 个数据点,但我仍然没有运气。我在这里( https://serverfault.com/questions/593157/graphite-shows-none-for-all-data-points-even-though-i-send-it-data )读到耳语有某种查询期设置为默认 24 小时。那是我想改变的价值,但我不知道在哪里改变它!

0 投票
1 回答
452 浏览

python - Configure statsd to work with Graphite

So, I want to install statsd and use client python-statsd to collect some data for my Graphite that is successfully installed on my system. I followed this tutorial, but still have no statsd subdirectory in my Graphite folderonly carbon subfolder

So what might be wrong and how I can check statsd working? (my python-statsd client doesn't show any error messages)

0 投票
3 回答
9123 浏览

python - 石墨/碳导入错误:没有模块命名字段

我几乎可以按照这里的所有说明进行操作

但是当我到达

不知道为什么我会收到这个错误?

我也尝试了这些说明,它大约挂在同一个地方

https://www.digitalocean.com/community/tutorials/how-to-keep-effective-historical-logs-with-graphite-carbon-and-collectd-on-centos-7

如果我回显 PYTHONPATH,我会得到

所以我然后创建

与内容

我创建了一个新的 shell,现在 echo 看起来是正确的

现在我跑

ImportError:无法导入设置'graphite.settings'(它在sys.path上吗?):没有名为graphite.settings的模块