Application Insights POST time属性

时间:2017-06-13 16:06:01

标签: azure azure-application-insights

我尝试将数据从Arduino发布到Application Insights。现在,有效负载需要time属性,如下所示:

{
    "time": "2017-06-02T07:55:29.585Z",
    "iKey": "61c75aec-xxxx-xxxx-xxxx-xxxxxxxxx",
    "name": "Microsoft.ApplicationInsights.61c75aecae11483ba126665023ea73be.Event",
    "tags": {
        "ai.device.id": "Arduino Uno",
        ...blah...
}

这个小东西没有实时时钟,所以我的时间戳会非常狡猾。我试图省略该属性,但App Insights API抱怨并且不会获取数据 -

"message": "109: Field 'time' on type 'Envelope' is required
but missing or empty. Expected: string, Actual: undefined"

发送空time属性也不会删除它。

这里是否有解决方法告诉App Insights在收到的有效负载上使用自己的时间戳?

3 个答案:

答案 0 :(得分:0)

目前,是的,时间戳是必需的,没有针对特定应用洞察的良好解决方法。目前,您必须在允许的AI时间窗口内使用一些有效日期(现在 - 48小时前)。

如果您的时钟不可靠并且您希望所有事件都保持一个设备的相对顺序,您可以随时选择一个起始时间戳,并确保所有后续事件的时间晚于第一个事件(a第一个时间戳+一些偏移?)然后,如果确切的时间不是,那么至少事件序列是可靠的。

它已在内部提升,可能会这样做。如果我得到任何进一步的细节,我将更新这个帖子。

答案 1 :(得分:0)

此外,如果您可以发送任何时间让AI接受它(2天前或1前进),您可以在Google Analytics查询中使用ingestion_time()方法。像this

一样

requests | extend delta = (ingestion_time() - timestamp) / 1s | summarize avg(delta), percentile(delta, 99) by bin(timestamp, 10m) | render areachart kind=unstacked

答案 2 :(得分:0)

我在当前日期前一天插入了它,它开始为我工作。