Mulesoft项目中无需安装Datadog Agent发送追踪数据的方法
不依赖Datadog Agent发送MuleSoft追踪数据到Datadog
你可以直接使用Datadog的Trace API v2端点发送追踪数据,完全不需要安装Agent,具体操作如下:
核心可用端点
针对不同区域选择对应端点:
- 美国站点:
https://api.datadoghq.com/api/v2/traces - 欧盟站点:
https://api.datadoghq.eu/api/v2/traces
操作步骤
适配追踪数据格式
你用DataWeave生成的跨度数据需要转换为Datadog Trace API v2要求的结构,核心必填字段包括:trace_id:全局唯一的追踪ID(64位整数的字符串形式)span_id:当前跨度的唯一ID(64位整数的字符串形式)name:跨度的操作名称(如api.process-request)resource:关联的资源路径(如/api/v1/users)service:你的MuleSoft服务名称(如user-management-api)start:跨度开始时间(纳秒级时间戳)duration:跨度持续时长(纳秒级数值)
还可以添加env(环境标识)、version(服务版本)等标签字段,方便后续筛选分析。
配置请求认证
请求必须携带DD-API-KEY请求头,值为你的Datadog平台API密钥,无需Agent专属密钥。在MuleSoft中发送请求
使用HTTP请求组件,设置请求方法为POST,目标URL选对应区域的Trace API端点,请求头添加DD-API-KEY: <你的API密钥>,请求体通过DataWeave将现有跨度数据转换为符合格式的JSON。
DataWeave转换示例
%dw 2.0 output application/json --- { data: [ { trace_id: vars.rootTraceId as String, span_id: vars.currentSpanId as String, name: "order-api.process-request", resource: "/api/v1/orders/create", service: "mule-order-api", start: vars.spanStartTime * 1000000, // 毫秒转纳秒 duration: vars.spanDurationMs * 1000000, type: "web", meta: { "env": "staging", "version": "1.2.0", "http.method": "POST" }, metrics: { "http.status_code": 201 } } // 可添加更多跨度对象到data数组实现批量发送 ] }
注意事项
- 追踪ID和跨度ID必须是64位整数的字符串,不能超过16个十六进制字符或十进制64位数值。
- 时间相关字段必须用纳秒级数值,否则会导致时间显示异常。
- 批量发送多个跨度可以减少请求频次,提升效率。
内容的提问来源于stack exchange,提问作者Zyoumir
相关产品推荐
相关产品推荐

