- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在尝试将 Graphite 用于(近)实时图形网络系统。然而,我们似乎无法以超过 1 秒的更新率加速 Graphite 。最终我们希望有 100 毫秒的更新
通过阅读常见问题解答,它听起来像 Graphite 很快 - 但这要么非常具有误导性,要么我不了解如何加速 Graphite
耳语的计时信息似乎使用 UNIX 时间戳
How scalable is Graphite?
From a CPU perspective, Graphite scales horizontally on both the frontend and the backend, meaning you can simply add more machines to the mix to get more throughput. It is also fault tolerant in the sense that losing a backend machine will cause a minimal amount of data loss (whatever that machine had cached in memory) and will not disrupt the system if you have sufficient capacity remaining to handle the load.
From an I/O perspective, under load Graphite performs lots of tiny I/O operations on lots of different files very rapidly. This is because each distinct metric sent to Graphite is stored in its own database file, similar to how many tools (drraw, Cacti, Centreon, etc) built on top of RRD work. In fact, Graphite originally did use RRD for storage until fundamental limitations arose that required a new storage engine.
High volume (a few thousand distinct metrics updating minutely) pretty much requires a good RAID array. Graphite's backend caches incoming data if the disks cannot keep up with the large number of small write operations that occur (each data point is only a few bytes, but most disks cannot do more than a few thousand I/O operations per second, even if they are tiny). When this occurs, Graphite's database engine, whisper, allows carbon to write multiple data points at once, thus increasing overall throughput only at the cost of keeping excess data cached in memory until it can be written.
How real-time are the graphs?
Very. Even under heavy load, where the number of metrics coming in each time interval is much greater than the rate at which your storage system can perform I/O operations and lots of data points are being cached in the storage pipeline (see previous question for explanation), Graphite still draws real-time graphs. The trick is that when the Graphite webapp receives a request to draw a graph, it simultaneously retrieves data off the disk as well as from the pre-storage cache (which may be distributed if you have multiple backend servers) and combines the two sources of data to create a real-time graph.
from and until must be a time specification conforming to the AT-STYLE time specification described
这里:
http://oss.oetiker.ch/rrdtool/doc/rrdfetch.en.html .
最佳答案
Graphite 将在您的 storage-schemas.conf 中按照最精细的定义精度存储最多一个数据点(接收到的额外数据点将被删除)。 最精确的可能是 1 秒。 例如保留 = 1s :6h,1min:7d,10min:5y
为了实现您的目标,您需要在 Graphite 前面放置一个聚合器。聚合器将接收所有指标并聚合数据,刷新到 Graphite 存储以匹配存储模式。聚合器将对指标执行计算(平均值、总和、平均值等)并将其发送出去。例如在最后一秒内,您平均需要 14 毫秒来处理请求,或者在过去 10 秒内,请求总数为 4234。
因此,虽然您不能以比 1 秒更精细的粒度进行报告,但您可以使用聚合器来捕获 1 秒时间间隔内发生的事情的总和和平均值并报告。
两个常见的选择是 StatsD和 Graphite provided in carbon aggregator.
** StatsD,IMO 是要走的路。它是一个网络守护进程,您单独运行并通过 UDP 发送给它。也就是说,您可以使用 carbon-aggregator.py 执行相同的操作(例如 UDP)。
关于Graphite Graph - 我们更新图表的速度有多快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19116383/
有没有办法简单地显示选定时间段内值的变化?我感兴趣的是最后一个值与初始值相比的偏移量。在一段时间内,这些值可能会高于和低于这些值,这并不是真正相关的(并且在我的情况下是异常(exception))。
我目前正在使用 Ganglia 收集监控指标,我想使用 Graphite 显示包含该数据的图表。我知道这样的集成是可能的,我找到了 article描述应该如何做。我不太确定这种集成是如何工作的,尤其是
我已经在专用的 Ubuntu 服务器上安装了 Graphite,它正确地收集了自己的系统性能数据,例如cpu 使用率 和 load_avg 并将其发送到 Carbon,然后我可以在 Graphite
我们需要收集多个服务器和业务流程上的时间序列信息,并考虑使用 Graphite 。如果我们想显示原始数据似乎很好。但是,如果我们想对这些数据进行 BI 并运行自定义查询怎么办? Graphite 是否
让我们想象一下我在 Graphite 中有这个查询: level1.level2.*.level4.count 我希望我的别名是level is: level3 但我找不到路。 看完graphite
假设我有一个名为 a.b.c.count 的指标.我正在尝试编写一个 python 脚本来读取度量的最新值 a.b.c.count在 Graphite 中。 我浏览了文档并发现我们可以使用 curl
我有一个应用程序,它通过statsd向 Graphite 发布许多统计信息。每当服务接收到一条消息时,其中一个统计信息就会简单地向statsd发送一个统计增量。我需要显示一个图表,显示此统计信息随时间
前段时间我用 nginx 部署了 Graphite ,有厨师,但没有卡住要安装的版本。因此,现在,尝试使用相同的配方进行安装时,由于缺少与版本相关的内容而出现错误。 我需要找到我在其他 CentOS
我们运行 etsy/statsd 节点应用程序,它每 10 秒将统计信息刷新到 carbon/whisper。如果您发送 100 个增量(计数),在前 10 秒内,graphite 会正确显示它们,例
如何将我的指标保存在根级别。当前已保存在统计层次结构下(请参阅 graphite )想要保存在顶层(Graphite)下 最佳答案 将这些设置添加到您的 statsd 配置文件中(可能类似于 /etc
我有一个计数器指标,我将其称为a.metric.count 正常绘制时,这将是一条不断增加的向上线,这没有多大用处。我想要的是显示每小时发生的事件数。 最佳答案 使用derivative函数,如下所述
我想删除 Graphite 的存储耳语数据,但 Graphite 文档中没有任何内容。 我所做的一种方法是手动删除 /opt/graphite...../whispers/stats... 中的文件。
我在网上搜索过,但找不到任何漂亮的 Graphite 模板,这些模板可以放置在 graphtemplates.conf 中,并通过在查询字符串中添加 ?template=[name] 来在图表中使用。
我正在开始检测 Web 应用程序,并使用 StatsD 收集尽可能多的相关指标。例如,以下是我当前使用的高级指标名称的一些示例: http.responseTime http.status.4xx h
在设置 Graphite 时,我不小心将保留期设置为 1800 天而不是 180 天。 '10s:6h,10min:1800d' 据我了解,现在更改保留不会清除旧数据。我不确定如何在不破坏我们拥有的所
我正在使用 Graphite 和 Collectd 来监控我的服务器。特别是,我正在使用 tail插件来计算失败的 SSH 登录。我正在为这个指标使用一个计数器,所以希望看到 1、2、3、0 等...
我正在准备重构一些Graphite指标名称,并希望能够保留历史数据。 .wsp文件是否可以重命名(如果更高级别的组件发生更改,则可以将其移动到新目录中)吗? 示例:group.subgroup1.me
我正在遵循这些说明(https://www.digitalocean.com/community/tutorials/how-to-install-and-use-graphite-on-an-ubu
每次用户连接到我的网站时,我都会发送一条消息。 使用这种格式: "user_login 1 13xxxxxxx" (key value timestamp) 我的问题是 Graphite 给我一个图
我正在玩grafana,我想创建一个面板,在其中比较一台应用服务器的数据与其他服务器的平均值。就像是: apps.machine1.someMetric averageSeries(apps.*.no
我是一名优秀的程序员,十分优秀!