FnordMetric:我的Toplist Gauges消失了

fie*_*edl 26 metrics ruby-on-rails

我想做什么

我通过rails gem上ruby使用FnordMetric Classic,如Railscasts#378所示.fnordmetric

我想有一个我的"热门页面"列表,其中页面是我的网络应用程序的一种内容.

问题

无论使用的版本,在生产和开发中,我所谓的toplist仪表的内容都在不断消失.

这可以在下面的屏幕截图中看到,其中"热门页面Toplist Gauge" 的列表" Top Keys "是空的,其中应该填充最多访问的页面.

截图 -  toplist gauge是空的,但它不应该

一些观察

  • 例如,当我触发事件时,访问受监控应用程序上的页面时,访问的页面将显示在fnordmetric toplist量表中.但几分钟后,它就消失了.
  • 我试图增加存储持续时间设置,没有效果.
  • 从屏幕截图中可以看出,样本数不为零(为2.00).因此,数据必须位于数据库中,但不会显示.

源代码

这是创建此规范的源代码的相关部分:

 # script/fnordmetric_app.rb
 require 'fnordmetric'

 FnordMetric.namespace :my_web_app do
   toplist_gauge :popular_pages, title: "Popular Pages"
   event :show_page do
     observe :popular_pages, data[:title]
   end
   # ...
 end

 FnordMetric::Web.new(port: 4242, use: middleware)
 FnordMetric::Worker.new
 FnordMetric.run
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

Dor*_*ian 1

也许title您发送的数据的属性为空?

您还可以检查数据是否为 ​​redis redis-cli(我会使用该MONITOR命令)。

此外,FordMetrics 现已停产,现在是一个名为 Clip 的图表库:

项目名称怎么了?

该项目于 2011 年启动,最初称为“FnordMetric”。8 年前的第一个版本除了图表代码之外还包括用于存储和转换数据的工具。随着时间的推移,数据处理部分被删除,只留下绘图代码。然而,结果是,大多数对项目名称的搜索查询都会返回过时的信息,导致普遍令人困惑和陈旧的感觉。最好的解决方案似乎是重命名该项目,因此将其重命名为“clip”。

现在我会手动将其写入数据库而不是redis:

  • 有一个events包含kind(string) 和data(jsonb)的表
  • 在 a 上products#show,使用 kind:product_show和数据创建一个事件product.attributes,就像 Ryan Bates 在 Railscast 中所做的那样
  • 在您的管理界面中执行如下查询:
Event
  .where(kind: "product_show")
  .group("data->>'id'")
  .select("count(*) as count, array_agg(data->>'title')[1] as title)
Run Code Online (Sandbox Code Playgroud)
  • 渲染这些产品