TimeGenerated 字段未采用提供的日期

TimeGenerated field not taking provided date

我正在编写自定义日志以进行日志分析。

基于以下link:

https://docs.microsoft.com/en-us/azure/azure-monitor/logs/data-collector-api#create-a-request

我应该能够在请求 header 中使用一个名为:time-generated-field 的字段,文档说:“如果您指定一个字段,其内容将用于 TimeGenerated。如果您不要指定这个字段,TimeGenerated的默认值是消息被摄取的时间。消息字段的内容应该遵循ISO 8601格式YYYY-MM-DDThh:mm:ssZ

我正在传递以下值:2021-11-11T19:52:45Z(作为字符串,因为您不能将其作为日期时间传递 object)但问题是当我查看日志分析时工作区,TimeGenerated 字段是这个(今天的日期):2021-12-01T18:41:04.529Z,这是事件被摄取的日期时间,所以基本上,它没有占用我传递的真实事件生成时间 2021-11-11T19:52:45Z header.

我是不是做错了什么?

任何帮助将不胜感激,我运行没有想法。

原来我看错了文档,没有意识到time-generated-field不是你传入的参数,而是JSON数据体中的属性您要发送到日志分析工作区。

可以这样引用(这是第一种方式的例子):

def post_data(customer_id, shared_key, body, log_type):
    method = 'POST'
    #The string "raised" assigned to the TimeStampField variable below 
    #is an actual property in the JSON object that I am sending to log 
    #analytics, it contains the datetime in the expected format.
    TimeStampField = "raised" 
    content_type = 'application/json'
    resource = '/api/logs'
    rfc1123date = datetime.datetime.utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT')
    content_length = len(body)
    signature = build_signature(customer_id, shared_key, rfc1123date, content_length, method, content_type, resource)
    uri = 'https://' + customer_id + '.ods.opinsights.azure.com' + resource + '?api-version=2016-04-01'
    headers = {
        'content-type': content_type,
        'Authorization': signature,
        'Log-Type': log_type,
        'x-ms-date': rfc1123date,
        'time-generated-field': TimeStampField
    }

肯定会创建一个拉取请求来修改这里的措辞: https://docs.microsoft.com/en-us/azure/azure-monitor/logs/data-collector-api#create-a-request 因为我感觉不是很直观