Questions tagged «graphite»

石墨是高度可扩展的实时图形系统。作为用户,您编写了一个应用程序,该应用程序收集您对制图感兴趣的数字时间序列数据,然后将其发送到Graphite的处理后端carbon,后者将数据存储在Graphite的专用数据库中。然后可以通过石墨的网络界面将数据可视化。

2
OpenTSDB和Graphite有什么区别?
据我所知,主要区别如下: OpenTSDB不会随着时间的推移而恶化数据,这与Graphite不同,在Graphite中,数据库的大小是预先确定的。 OpenTSDB可以每秒存储指标,而Graphite的间隔是分钟(我不确定,Graphite文档显示的保留策略每分钟存储一次指标,但是我不知道这是否是我们最小的时间单位可以玩) 我想就使用哪种工具存储指标做出明智的决定,我是否错过了这两个系统中的其他差异?它们的性能/可扩展性如何? 奖励问题:我还应该查看其他时间序列系统吗?

1
statsd和石墨的高度可用,可通过网络访问和可扩展的部署
我想设置statsd / graphite,以便我可以记录在HTML设备上运行的JS应用程序(即不在封闭的LAN环境中,并且可能包含大量我不直接控制的传入数据)。 我的约束: 入口点必须使用HTTP:这是通过简单的HTTP-to-UDP-statsd代理(例如github上的httpstatsd)解决的 必须抵抗单个服务器的故障(以对抗墨菲定律:) 必须水平可扩展:网络规模,宝贝!:) 架构应尽可能简单(且便宜) 我的服务器是虚拟机 数据文件将存储在Filer设备上(带有NFS) 我可以使用tcp / udp硬件负载平衡器 简而言之,数据路径:[客户端]-(http)-> [http2statsd]-(udp)-> [statsd]-(tcp)-> [石墨]-(nfs)-> [文件管理器] 到目前为止,我的发现: 缩放http2statsd部分很容易(无状态守护程序) 缩放statsd部分似乎并不简单(我想对于诸如sum,avg,min,max ...之类的汇总数据,我最终会在石墨中得到不连贯的值)。除非HTTP守护程序进行一致的哈希处理以分片密钥。也许是个主意...(但接着是HA的问题) 缩放石墨零件可以通过分片(使用碳中继)来完成(但这也不能解决HA问题)。显然,几个耳语实例不应该写入相同的NFS文件。 扩展文件管理器部分不是问题的一部分(但是IO越少越好:) 缩放Web应用程序似乎很明显(尽管我尚未测试),因为它们仅读取共享的NFS数据 因此,我想知道是否有人可以共享可靠的statsd / graphite部署经验和最佳实践?

4
访问wsgi石墨脚本时拒绝客户端
我正在尝试在Mac OS X 10.7 Lion上设置石墨,我已经设置了apache通过WSGI调用python石墨脚本,但是当我尝试访问它时,我从apache中获取了禁止信息,并且在错误日志中。 "client denied by server configuration: /opt/graphite/webapp/graphite.wsgi" 我检查了httpd.conf中是否允许脚本位置以及文件的权限,但是它们似乎正确。我需要做什么才能获得访问权限。下面是httpd.conf,几乎是石墨示例。 <IfModule !wsgi_module.c> LoadModule wsgi_module modules/mod_wsgi.so </IfModule> WSGISocketPrefix /usr/local/apache/run/wigs <VirtualHost _default_:*> ServerName graphite DocumentRoot "/opt/graphite/webapp" ErrorLog /opt/graphite/storage/log/webapp/error.log CustomLog /opt/graphite/storage/log/webapp/access.log common WSGIDaemonProcess graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120 WSGIProcessGroup graphite WSGIApplicationGroup %{GLOBAL} WSGIImportScript /opt/graphite/conf/graphite.wsgi process-group=graphite application-group=%{GLOBAL} # XXX You will need …


5
如何删除石墨耳语中的计数器?
我有一个柜台,stats.message.foo想将其移至stats.messages.foo。 我已经更新了代码以填充新计数器,但是旧计数器仍然存在。 我读过所有要从石墨中删除统计信息的工作,就是删除磁盘上的相应耳语文件,但是似乎在删除后的几秒钟内wsp它就会重新生成(没有数据)。 如果要重命名存储数据的密钥,这很麻烦,因为我需要记住哪个密钥是正确的密钥。 有人知道如何永久删除旧计数器吗?
14 graphite  statsd 

4
tcpdump提高udp性能
我正在运行一组负载测试以确定以下设置的性能: Node.js test suite (client) --> StatsD (server) --> Graphite (server) 简而言之,node.js测试套件每隔x秒就会向另一台服务器上的StatsD实例发送一定数量的指标。然后,StatsD每秒将指标刷新到位于同一服务器上的Graphite实例。然后,我查看测试套件实际发送了多少度量,以及Graphite收到了多少度量,以确定测试套件与Graphite之间的数据包丢失。 但是我注意到有时我会有非常大的丢包率(注意它是通过UDP协议发送的),范围从20%到50%。因此,当我开始查看这些数据包的丢弃位置时,发现StatsD可能是一些性能问题。因此,我开始记录系统各个部分的指标,以跟踪发生此下降的位置。这就是事情变得奇怪的地方。 我正在使用tcpdump创建一个捕获文件,在测试运行完成后检查该文件。但是每当我在运行tcpdump的情况下运行测试时,几乎都不存在数据包丢失的情况!看起来tcpdump某种程度上提高了我的测试性能,但我不知道为什么以及如何做到这一点。我正在运行以下命令来在服务器和客户端上记录tcpdump消息: tcpdump -i any -n port 8125 -w test.cap 在一个特定的测试案例中,我正在发送40000个指标/秒。运行tcpdump时的测试的数据包丢失率约为4%,而没有进行测试的数据包丢失率约为20% 这两个系统均通过以下设置作为Xen VM运行: 英特尔至强E5-2630 v2 @ 2.60GHz 2GB RAM Ubuntu 14.04 x86_64 我已经检查过的潜在原因: 增加UDP缓冲区的接收/发送大小。 影响测试的CPU负载。(客户端和服务器端的最大负载为40-50%) 在特定接口而不是“ any”上运行tcpdump。 使用'-p'运行tcpdump以禁用混杂模式。 仅在服务器上运行tcpdump。这导致发生20%的数据包丢失,并且似乎不影响测试。 仅在客户端上运行tcpdump。这样可以提高性能。 将netdev_max_backlog和netdev_budget增加到2 ^ 32-1。这没什么区别。 在每个nic上尝试了混杂模式的所有可能设置(服务器打开和客户端关闭,服务器关闭和客户端打开,都打开,都关闭)。这没什么区别。

2
Ext4的用法和性能
我有一堆运行Carbon和Graphite的机器,需要扩展以增加存储量,但是我不确定是否需要扩展或扩展。 该集群当前包括: 1个中继节点:接收所有指标并转发到相关的存储节点 6个存储节点:容纳所有Whisper DB文件 问题是,当磁盘使用率接近80%时,性能似乎会下降。群集写入IOPS从近乎恒定的13k下降到更混乱的约7k的平均值,而IOwait时间的平均值为54%。 我浏览了我们的配置库,自4月初以来没有任何更改,因此这不是配置更改的结果。 问题:增加磁盘大小是否会使IO性能重新得到控制,还是需要添加更多存储节点? 注意:这里没有SSD,只有很多主轴。 相关图: 统计资料: e2freefrag: [root@graphite-storage-01 ~]# e2freefrag /dev/vda3 Device: /dev/vda3 Blocksize: 4096 bytes Total blocks: 9961176 Free blocks: 4781849 (48.0%) Min. free extent: 4 KB Max. free extent: 81308 KB Avg. free extent: 284 KB Num. free extent: 19071 HISTOGRAM OF FREE …

2
计算直到磁盘已满的天数
我们使用石墨来跟踪一段时间内磁盘利用率的历史记录。我们的警报系统会查看石墨中的数据,以在可用空间低于一定数量的块时向我们发出警报。 我想获得更智能的警报-我真正关心的是“我必须花多长时间才能对可用空间做些什么?”,例如,如果趋势表明在7天内我将用完磁盘空格,然后发出警告,如果少于2天,则引发错误。 使用衍生工具和Holt Winters Confidence乐队,Graphite的标准仪表板界面可以非常智能,但是到目前为止,我还没有找到将其转换为可操作指标的方法。我也可以通过其他方式处理数字(只需从石墨中提取原始数字并运行脚本即可)。 一个复杂的问题是,该图并不平滑-添加和删除文件,但是随着时间的推移,总体趋势是磁盘空间使用量增加,因此也许需要查看本地最小值(如果查看“无磁盘”指标) )并在槽之间绘制趋势。 有人这样做吗?

3
在Linux Ubuntu上加载平均怪异度
在过去的几天里,我一直在试图了解我们的基础架构中正在发生的怪异现象,但是我无法弄清它的怪异之处,因此我求助于您一些提示。 我一直在Graphite中注意到,load_avg的峰值大约每2小时就会以致命的规律性发生-并非完全是2个小时,但非常规律。我要附上我从Graphite拍摄的截图 我一直在进行调查-这种规律性使我想到这是某种cron工作或类似的工作,但是这些服务器上没有cronjob运行-实际上,这些是在Rackspace云中运行的VM。我正在寻找的是某种可能会导致这些问题以及如何进行进一步调查的迹象。 服务器相当空闲-这是一个暂存环境,因此几乎没有流量传入/它们上应该没有负载。这些都是4个虚拟核心VM。我可以确定的是,我们大约每10秒就会采集一堆Graphite样本,但是如果这是造成负载的原因,那么我希望它会一直很高,而不是每两小时在不同的服务器中发生一次波动。 任何帮助如何对此进行调查将不胜感激! 这是来自sar的app01数据-这是上图中的第一个蓝色尖峰-我无法从数据中得出任何结论。同样不是每半小时(不是每2小时)就会发生一次字节写入高峰,这是由于厨师客户端每30分钟运行一次。即使我已经做到了,但我仍将尝试收集更多数据,但无论如何也无法得出任何结论。 加载 09:55:01 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 10:05:01 PM 0 125 1.28 1.26 0.86 0 10:15:01 PM 0 125 0.71 1.08 0.98 0 10:25:01 PM 0 125 4.10 3.59 2.23 0 10:35:01 PM 0 125 0.43 0.94 1.46 3 10:45:01 PM 0 …

2
即使我发送数据,石墨对所有数据点也显示“无”
我已经使用Nginx和PostgresSQL 通过Puppet(https://forge.puppetlabs.com/dwerder/graphite)安装了Graphite 。当我手动发送数据时,它将创建度量标准,但其所有数据点均为“无”(也称为null)。如果我运行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 $ …

2
石墨停止随机收集数据
我们有一个Graphite服务器,可以通过collected,statsd,JMXTrans收集数据。几天以来,我们的数据经常出现漏洞。挖掘我们仍然拥有的数据,我们可以看到碳缓存的大小有所增加(从50K增加到4M)。我们看不到收集的指标数量增加(metricsReceived稳定在30万左右)。我们的查询数量平均从1000个增加到1500个。 奇怪的是,当高速缓存大小增加时,cpuUsage从100%(我们有4个CPU)略微降低到50%。 再次奇怪的是,如果从磁盘读取八位位组,则数量会增加,而写入八位位组的数量会减少。 我们将carbon配置为大多数使用默认值: MAX_CACHE_SIZE = inf MAX_UPDATES_PER_SECOND = 5000 MAX_CREATES_PER_MINUTE = 2000 显然,我们的系统已经发生了某些变化,但是我们不知道是什么,也不知道如何找到原因。 有什么帮助吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.