수집 → 샘플링 → 저장 → 리전 간 상관 → 비용 → 부하 테스트 → SLO → 출시 준비
노드 로컬에서 받아 trace ID 기준으로 Gateway에 분배합니다.
X-Ray OTLP endpoint는 Transaction Search 활성화가 전제입니다. us-west-2 Gateway는 region과 endpoint만 바꿉니다.
| 항목 | 2026-10-15 기준 |
|---|---|
| 수집 경로 | OTLP endpoint, SigV4 (service: xray) |
| 저장 위치 | CloudWatch Logs aws/spans log group |
| 검색 | 모든 span을 attribute로 검색, trace 최대 10,000 span |
| 인덱싱 | 수집 span의 1%는 trace summary로 무료 인덱싱 |
| 수집 요금 | $0.35/GB (첫 10 TB, us-east-1 list price) |
| 항목 | 내용 |
|---|---|
| 저장 | S3에 Parquet 블록 (storage.trace.backend: s3) |
| 쓰기 경로 | 3.0에서 ingester 제거, block-builder와 live-store |
| 배포 모드 | monolithic은 Kafka 불필요, microservices는 Kafka 호환 큐 |
| 질의 | TraceQL, 구조 연산자 >>, >, ~ |
| service graph | metrics-generator service_graphs, 기본 비활성 |
| 질문 | Transaction Search | Tempo |
|---|---|---|
| 운영 부담 | 관리형 | 클러스터 직접 운영 |
| 샘플링 | 100% 수집 후 일부 인덱싱 | tail sampling 결과만 저장 |
| AWS 연계 | Application Signals, SLO | Grafana 생태계 |
| 비용 성격 | GB당 수집 요금 | S3 + 컴퓨트 |
X-Ray SDK와 daemon은 2026-02-25부터 maintenance mode입니다. 보안 수정만 릴리스되며 X-Ray 서비스 자체는 계속 지원됩니다. 신규 계측은 OpenTelemetry(ADOT SDK 또는 upstream SDK)로 시작합니다.
RedisCluster 계열 client로 교체MaxConns 기본값은 max(4, NumCPU)입니다. 작은 Pod에서는 4개라 고부하에서 대기열이 생깁니다.pool_max_conns를 부하 테스트로 정하고 명시maxPoolSize 기본 100입니다. Pod 수 × 100이 DocumentDB 연결 한도를 넘지 않는지 계산합니다.DefaultMaxIdleConnsPerHost는 2입니다. 내부 API 호출이 많으면 연결을 계속 새로 맺습니다.MaxIdleConnsPerHost 상향vus: 300, duration: '4h'로 4시간 유지합니다. 지표 대신 추세를 봅니다.
| 관찰 대상 | 누수 신호 |
|---|---|
| Pod 메모리 | 시간에 비례해 증가 |
| DB 연결 수 | pool 한도에 수렴 후 대기 |
| goroutine, thread | 반환되지 않고 누적 |
| tail sampling 메모리 | num_traces 도달 후 drop |