2

使用 Keen IO 上的每日间隔,与仅查看一天的计数相比,我的计数减少了一天。为什么它们不同?我在 Keen IO Explorer 中运行这个查询。

例如我的查询是

count 'subscriptions'
timeframe 'last_7_days'
interval 'daily'

折线图显示 2017 年 6 月 6 日的计数为 87。

然后我运行这个计数一天:

count 'subscriptions'
timeframe start '2017-06-06T:00:00.000Z'
timeframe end '2017-06-07T00:00:00.000Z'

计数显示 06/05/2017 的值。为什么它们不同?

4

1 回答 1

3

这与浏览器对数据的时间范围/时区表示有关。更改timezone查询参数以匹配浏览器的时区,您应该会看到折线图上的日期标签的行为与您预期的一样。

折线图使用浏览器的时区来决定如何描绘日期和绘制图表,而单次计数只是显示从 API 返回的结果。这就是您在同一天获得“不同结果”的方式。

未来的故障排除提示:您可以检查查询结果的原始 JSON 以查看从 API 返回的内容。

以下是间隔 7 天的计数的查询结果。您可以看到查询中使用的确切日期时间和时区。

{
  "result": [
    {
      "value": 70,
      "timeframe": {
        "start": "2017-05-31T07:00:00.000Z",
        "end": "2017-06-01T07:00:00.000Z"
      }
    },
    {
      "value": 106,
      "timeframe": {
        "start": "2017-06-01T07:00:00.000Z",
        "end": "2017-06-02T07:00:00.000Z"
      }
    },
    {
      "value": 141,
      "timeframe": {
        "start": "2017-06-02T07:00:00.000Z",
        "end": "2017-06-03T07:00:00.000Z"
      }
    },
    {
      "value": 63,
      "timeframe": {
        "start": "2017-06-03T07:00:00.000Z",
        "end": "2017-06-04T07:00:00.000Z"
      }
    },
    {
      "value": 55,
      "timeframe": {
        "start": "2017-06-04T07:00:00.000Z",
        "end": "2017-06-05T07:00:00.000Z"
      }
    },
    {
      "value": 64,
      "timeframe": {
        "start": "2017-06-05T07:00:00.000Z",
        "end": "2017-06-06T07:00:00.000Z"
      }
    },
    {
      "value": 50,
      "timeframe": {
        "start": "2017-06-06T07:00:00.000Z",
        "end": "2017-06-07T07:00:00.000Z"
      }
    }
  ]
}

您还可以使用资源管理器中的“嵌入”按钮来查看编译查询时使用的确切代码。

例如

  var query = new Keen.Query("count", {
    event_collection: "create_organization",
    interval: "daily",
    timeframe: "this_7_days",
    timezone: "US/Pacific"
  });
于 2017-06-07T16:51:57.640 回答