问题标签 [statsd]

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 投票
0 回答
245 浏览

node.js - 即使我每秒钟按下一次,Statsd 仪表值也保持不变

我正在使用 node-statsd npm 包从我的主 node.js 应用程序推送 statsd 通知。

1)我的主要问题是,有时,仪表值会在 X 分钟内保持不变(例如截图)

即使我每秒钟推动一次,仪表值也保持不变

我知道如果我不调用 .gauge,之前的值将保留在图表中,但我有一个 setInterval 每秒推送我的 qps 值,而这永远不会相同。

2)我的第二个问题是,当我使用 SET 而不是 GAUGE 时,qps 值看起来很奇怪(比如从 0 到 30),即使我设置了一个像 100、200 ...

1)这是统计数据、网络还是仪表问题?

2)我真的不知道为什么......

0 投票
1 回答
1397 浏览

ruby-on-rails - How to analyze memcache key hit rate with graphite?

I have a Rails app which uses caching extensively and I want to know cache hit rate for different places in the app. Low hit rate places obviously need attention. But measure first!

To obtain real data I use graphite + statsd combo and a custom Dalli instrumentation employing statsd-instrument gem. All keys in the app are in form ['place', details...], so I get following metrics in graphite:

  • stats.cache.place1.hits
  • stats.cache.place1.misses
  • stats.cache.place2.hits
  • stats.cache.place2.misses
  • etc.

Now I want to show all hit rates. I was able to come up with following formula for one place:

It works quite well, but there are several dozen places and I'd hate to duplicate it, not to mention that new places can appear.

This is a question for you, Graphite experts: is there a way to show hit rates for all places? I've seen group* functions in the docs, but they confuse me.

Ideally I want to segment my places into 4 categories:

  • High hit rate, many requests. Caching is doing good job.
  • Low hit rate, many requests. Needs attention.
  • High hit rate, few requests. Is caching needed at all?
  • Low hit rate, few requests. Definitely remove caching.

I'd be really grateful for any ideas how to use graphite for such analysis (I can request data in JSON format and do my own math, but I suspect there must be a simpler way).

0 投票
1 回答
1708 浏览

python - 了解 Graphite 及其工作原理?

我打算使用 Graphite 来监控各种服务。我试图了解 Graphite 如何工作的架构。以下是我的理解:

  1. Whisper:这会将数据以时间序列的形式存储到数据库中。数据库可以是任何示例 sqlite、Mysql Db2 等?

  2. Carbon:监听然后发送到耳语保存在数据库中的度量数据?那么这是否意味着我可以用任何编程语言编写一个程序来将度量数据发送到 carbon ?我需要什么参数才能连接到 carbon 并发送数据?

  3. Graphite-webapp: Graphite-webapp 是否通过耳语读取存储在数据库中的时间序列数据?它会自己创建图形/图表吗?还是我们需要用python编程来显示图形?我们如何创建将显示图表的 KPI 仪表板?

我所做的只是阅读文档,有人可以帮助我了解 Graphite 的架构吗?我可以使用哪些工具/框架?我更像是 Java/PHP/NODEJS 开发人员,因此尽量避免使用 python:),教程或示例示例将是完美的。

我将以下格式的数据保存为平面文件,我需要将其发送到石墨以显示图表。

0 投票
1 回答
147 浏览

metrics - Graphite 为度量添加新的分辨率

鉴于我有一个指标(stats.counters.PROD.FailedBuildMessages)并且我想扩展它的分辨率(stats.counters.PROD.FailedBuildMessages.1、stats.counters.PROD.FailedBuildMessages.2、stats.counters.PROD.FailedBuildMessages。 3 etc')但我不想丢失我以前的数据并尽可能地使用它,我该如何覆盖数据?似乎一旦我将子计数器添加到 FailedBuildMessages 节点,它就会丢失数据。

有办法吗?

0 投票
1 回答
1072 浏览

ubuntu-14.04 - Ubuntu 14.04 问题上的 Statsd 安装。安装后无法启动服务

我是运行 ubuntu 的相对新手,但我一直遵循 Justin Ellingwood 的精彩教程,了解如何在 Ubuntu 14.04 上运行石墨和 statsd 设置。(https://www.digitalocean.com/community/tutorials/how-to-configure-statsd-to-collect-arbitrary-stats-for-graphite-on-ubuntu-14-04

我已经按照 tute 完成了 statsd 的安装,但是我无法启动服务!每当我运行 sudo service statsd start 它会说它成功并给它一个进程号,但随后我运行 sudo service statsd status 命令它显示状态 statsd 停止/等待。有谁知道我可以做些什么来追踪这个问题?

0 投票
1 回答
110 浏览

php - 远程托管 StatsD 是否存在性能损失?

我正在设置 StatsD/Graphite 来监控我的基于 PHP 的 Web 应用程序。Graphite 安装在远程服务器上,并将聚合来自 2 个不同服务器的数据。对于 StatsD,我可以将它安装在安装 Graphite 的同一台服务器上,或者我可以安装在 Web 应用程序服务器所在的服务器上。

当 Web 应用程序和 StatsD 服务器位于不同的主机上时,Web 应用程序是否存在性能损失?

0 投票
1 回答
234 浏览

statsd - 使用 StatsD 保存多个值

我需要像(timestamp, event_name, event_value1, event_value2, event_value3, ...)StatsD 一样保存数据集。我需要它来跟踪我正在开发的网络应用程序中的自定义事件。

官方 StatsD 自述文件指出 StatsD 期望指标以以下格式发送:

有没有办法推送多个值,或者有什么解决方法可以做到这一点?
我们目前使用 Graphite 作为后端服务,但可以更改它以添加此功能。

0 投票
1 回答
426 浏览

ruby - statsd 中的 td-agent 输出

我正在尝试使用 fluentd 将 mongo 指标发送到 statsd,但我遇到了一些问题。

这是我的conf:

我看到了 mongo 日志,并且 td-agent 正在收集指标,但问题是,显然,td-agent 没有将指标发送到 statsd。通过运行确认它: sudo tcpdump -nn -i any udp and src host <your_ip>

有人解决过这个问题吗?

我的另一个疑问是如何在 conf 中配置“statsdkey”参数?

0 投票
1 回答
2951 浏览

node.js - 使用 statsd 发送指标问题

我使用以下说明在 Graphite 服务器上安装和配置 StatsD:

https://www.digitalocean.com/community/tutorials/how-to-configure-statsd-to-collect-arbitrary-stats-for-graphite-on-ubuntu-14-04

现在我有一个运行 StatsD 的服务器,当我测试从命令行发送它们时,我没有看到 /var/log/statsd/statsd.log 下记录的指标。这是我看到的:

日志停留在“numStats:3”的最后一个条目,即使我不断在命令行输入不同的指标。

以下是我输入的指标示例:

有趣的是,我在 /var/log/statsd/stderr.log 下看到了这个:

这是我的 localConfig.js 文件的样子:

任何人都能够阐明问题所在吗?

谢谢!

0 投票
1 回答
6578 浏览

monitoring - 如果过去 60 分钟的交易少于 x,如何使用 Graphite 在 Seyren 中发出警报?

我正在使用 Graphite+Statsd(带有 Python 客户端)从 webapp 收集自定义指标:成功交易的计数器。假设计数器是stats.transactions.count,它也有一个可用的速率/每秒指标stats.transactions.rate

我还将Seyren设置为监控+警报系统,并成功从 Graphite 中提取指标。现在我想在过去 60 分钟内成功交易的数量小于某个最小值时在 Seyren 中设置警报

我应该使用哪个指标和 Graphite 函数?我尝试过,summarize(metric, '1h')但是当 Graphite 开始聚合起始小时的指标时,这会给我一个警报。

请注意,如果这有帮助,Seyren 还允许指定 Graphitefromuntil参数。