如何自定义Datadog日志时间戳?提交202但日志未显示
问题分析与解决步骤
- 修正时间戳格式:Datadog API v2要求
timestamp为毫秒级Unix时间戳,你传入的1678965326是秒级格式,需要乘以1000改为1678965326000。秒级时间戳会被识别为超早期日志,默认时间范围下无法显示。 - 调整日志查询范围:如果暂时不想修改时间戳,可在Datadog日志页面手动扩大时间范围(比如选择「过去3年」),验证日志是否被正确接收但处于历史区间。
- 清理字段冲突:你同时在
ddtags和顶层字段中重复定义了trace_id,可能引发解析异常,建议保留顶层的trace_id和span_id,删除ddtags里的trace_id:2023097799433737367。 - 核对区域API端点:若你的Datadog账号属于非美国区域(如欧盟),需使用对应区域的 ingestion 端点,比如欧盟区域为
https://http-intake.logs.datadoghq.eu/api/v2/logs,端点错误会导致日志被丢弃但返回202响应。 - 测试修正后的请求:调整后的curl示例:
curl -X POST "https://http-intake.logs.datadoghq.com/api/v2/logs" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: xxxxxxxxxxxxxxxxxxxxxxxxx" \ -d @- << EOF { "ddsource": "dotnet", "ddtags": "env:stg,version:5.1", "hostname": "Test Machine Leo", "message": "Teste Leo", "service": "srp_complementar-oracle", "trace_id": "2023097799433737367", "timestamp": 1678965326000, "span_id": "1234" } EOF
- 确认平台状态:检查Datadog状态页,确保日志 ingestion 服务无故障,偶尔平台侧问题会导致日志延迟显示。
内容的提问来源于stack exchange,提问作者Leonardo
相关产品推荐
相关产品推荐

