2

假设我有一系列请求时间,并且我想对它们进行评分,并且我有 2 个阈值,4 秒和 12 秒。在 4s 或更少时间内完成的请求获得 +1,在 4s 和 12s 之间完成的请求获得 +0,超过 12s 获得 -1。我想总结分数,然后将它们除以计时总数。我怎样才能在 Librato 中做到这一点?

4

1 回答 1

4

目前 Librato 不提供 Apdex 分数,但有一些方法可以概览请求时间。

一种简单的方法是使用 map() 函数构建复合度量。这将允许您按主机划分指标请求时间,并可视化每分钟的请求率:

map({source:"*"},
  rate(s("query-api.rails.request.time", "&", { period: "60", function: "sum" }))
)

如果您想要一个大数字图表来提供总体请求时间的一般概念(如 Apdex 分数提供的那样),那么您可以使用以下复合指标来显示报告时间低于 400 毫秒的主机百分比:

scale(
  divide([
  sum(
      map({source:"*"},
          divide([
              filter(s("query-api.rails.request.time", "&", { period:"60", function:"mean" }), {lt: "400", function: "mean"}),
              filter(s("query-api.rails.request.time", "&", { period:"60", function:"mean" }), {lt: "400", function: "mean"})
          ])
      )
  ),
  sum(
      map({source:"*"},
          divide([
              s("query-api.rails.request.time", "&", { period:"60", function:"mean" }),
              s("query-api.rails.request.time", "&", { period:"60", function:"mean" })
          ])
      )
  )
]),
{factor:"100"})

这两个示例都使用query-api.rails.request.time来自librato-rails的指标,但您可以将此指标替换为任何报告请求时间的指标(例如前端收集器librato-client)。

于 2016-10-07T15:46:46.260 回答