You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grafana按15分钟间隔展示双日期折线图异常求助

解决Grafana Simple JSON + MongoDB 15分钟间隔折线图异常问题

你的核心问题出在MongoDB聚合查询的时间桶处理逻辑和Grafana数据格式适配这两个关键点上,我来一步步帮你梳理修复方案:

1. 先修正你的MongoDB聚合查询

现有查询虽然尝试计算15分钟时间桶,但存在两个致命问题:

  • 没有关联Grafana面板的时间范围参数,会返回全量历史数据,直接导致时间轴混乱
  • 分组后的_id是毫秒级数值,没有转换成Grafana能正确识别的标准时间格式,折线图无法映射到正确的时间刻度

这里是修正后的聚合查询,我加入了时间过滤、标准化时间桶、排序和字段适配:

db.getCollection('users').aggregate([
  // 第一步:过滤Grafana传入的时间范围(需在Simple JSON插件中开启时间参数传递)
  {
    "$match": {
      "date": {
        "$gte": new Date({{start}}),  // {{start}}是Grafana自动传入的起始时间戳(毫秒)
        "$lte": new Date({{end}})    // {{end}}是Grafana自动传入的结束时间戳
      }
    }
  },
  // 第二步:正确计算15分钟时间桶(将日期向下取整到最近的15分钟)
  {
    "$group": {
      "_id": {
        "$toDate": {
          "$subtract": [
            {"$toLong": "$date"},
            {"$mod": [{"$toLong": "$date"}, 1000 * 60 * 15]}
          ]
        }
      },
      "count": {"$sum": 1}
    }
  },
  // 第三步:按时间桶升序排序,确保Grafana拿到有序的数据
  {
    "$sort": {"_id": 1}
  },
  // 第四步:重命名字段,适配Grafana Simple JSON的预期格式
  {
    "$project": {
      "time": {"$toLong": "$_id"},  // 转为毫秒时间戳,Grafana默认识别该格式
      "value": "$count",
      "_id": 0
    }
  }
])

2. Grafana Simple JSON插件的关键配置

你需要确保数据源和面板配置正确联动:

  • 在Grafana的查询编辑器中,开启Time range选项,让插件自动把当前面板的时间范围(start/end)作为参数传入MongoDB查询
  • 验证返回的数据结构是否符合Grafana要求:一个数组,每个元素包含time(毫秒时间戳)和value(计数)字段,示例如下:
    [
      {"time": 1690000000000, "value": 5},
      {"time": 1690000900000, "value": 12},
      ...
    ]
    

3. 常见异常排查点

如果调整后仍有问题,可以检查这几个地方:

  • 确认MongoDB中的date字段是Date类型,而非字符串或其他类型,否则时间计算会完全出错
  • 检查Grafana面板的时间轴设置,确保Interval选项设置为15m,和你的时间桶间隔保持一致
  • 如果某些15分钟桶没有数据导致折线图断点,可在$sort阶段后添加$fill(MongoDB 5.0+支持)补0:
    {
      "$fill": {
        "output": {"count": 0},
        "partitionByFields": [],
        "sortBy": {"_id": 1},
        "range": {"step": 1000 * 60 * 15}
      }
    }
    

这样调整后,你的折线图应该就能正确展示15分钟间隔的用户计数了。

内容的提问来源于stack exchange,提问作者Behrooz Valikhani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 10:52:37