- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
AWS Payload Extraction captures request and response data exchanged between your application and AWS services. This feature attaches the extracted information as tags to your traces, enabling you to view the data in dashboards and use it for alerting.
The following AWS services are supported:
The following tracer versions and AWS SDK packages are supported:
Language | Version | Instrumented AWS SDK Packages |
---|---|---|
Node.js | 5.25.0+ or 4.49.0+ | @aws-sdk/* (AWS SDK v3) |
Java | 1.42.1+ | aws-sdk-v2 |
Python | 2.17.0+ | botocore (including boto3 ) |
AWS Payload Extraction extracts key-value pairs from hierarchical request and response bodies, converting them into dot-separated tags. For example:
Input JSON:
{
"Message": {
"foo.bar": "baz",
"Arr": ["a", "b"]
}
}
Generated tags:
aws.request.body.Message.foo\.bar: baz
aws.request.body.Message.Arr.0: a
aws.request.body.Message.Arr.1: b
The tracers are configured to match JSON data nested inside JSON documents, which is a common pattern with SQS payloads.
To enable AWS Payload Extraction, set these environment variables:
# Parse requests
DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING=all
# Parse responses
DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING=all
You can choose to parse:
The value all
indicates that the entire body is used to generate tags. See Protect sensitive information for more configuration options.
It’s expected that many of these payloads contain personally identifiable information (PII).
To protect sensitive information, the tracers replace common PII fields with 'redacted'
(such as phone numbers in SNS). Note: You can’t disable the default redactions.
You can specify additional fields to redact using JSONPath syntax in the environment variables. For example:
DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING=$.Metadata.UserId,$.Attributes.0.Pass
This example:
UserId
field within the Metadata
objectPass
field in the first element of the Attributes
arrayControl the maximum depth of payload extraction with:
DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_DEPTH=10
The default value is 10
. Nodes beyond this depth are ignored during tag generation. The main reason to modify this value is to adjust performance.
Setting these variables to an empty string or omitting them disables the feature:
DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING=""
DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING=""
Each tracer implementation provides additional configuration options specific to that language.
The following services are supported:
The Node.js tracer applies redaction rules on a per-service basis. For example:
$.Endpoint
field is redacted only for SNS service requests.The following services are supported:
To enable tag extraction for additional services, use this environment variable:
# Default values
DD_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES=s3,sns,sqs,kinesis,eventbridge
Add services by appending to the comma-separated list. For example, to add support for AWS Amplify:
DD_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES=s3,sns,sqs,kinesis,eventbridge,amplify
Service names are case-sensitive and use lowercase. To find valid service names:
boto3.client()
call.Control the maximum number of extracted tags with:
# Default value
DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_TAGS=758
The following services are supported:
To enable tag extraction for additional services, use this environment variable:
# Default values
DD_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES=ApiGateway,ApiGatewayV2,EventBridge,Sqs,Sns,S3,Kinesis
Service names are case-sensitive and use PascalCase. To find a service name:
aws_service
field.For example:
Sso.GetRoleCredentials
.aws_service
field shows Sso
.Sso
in your configuration.Control the maximum number of extracted tags with:
DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_TAGS=758