Based on the DOP-C02 exam guideReport an error
Week 11 centered on tracing, one of observability's three pillars, threading through the telemetry pipeline that standardizes it (ADOT) to the backends where data flows (OpenSearch·AMP·AMG). Today we reconstruct five days of concepts not as scattered facts but as one unified decision framework. The exam doesn't ask "what is X-Ray." It asks "why is the trace broken here," "what sampling configuration solves this cost problem," "what tool combo fits this multi-cloud requirement." Today's goal is practicing those judgments.
1. Distributed tracing stands on context propagation. X-Ray's Trace/Segment/Subsegment descends from Google Dapper's (2010) trace-span model, and all magic hinges on propagating Trace ID across process boundaries. In multi-SDK environments, the first trace breakage cause is nearly always propagation header mismatch (X-Amzn-Trace-Id vs W3C traceparent).
2. Everything in tracing balances cardinality and cost. Annotations are indexed (searchable, 50 limit, low-cardinality), Metadata non-indexed (detailed). Sampling uses Reservoir (low-traffic guarantee) + FixedRate (excess ratio) for visibility and cost simultaneous. High-cardinality is trace and metric's enemy, logs' (inverted-index) friend.
3. Standardization unlocks vendor lock-in. ADOT (OpenTelemetry) separates instrumentation from backend (Dependency Inversion), code instruments once, backends switch via exporter config. Collector's receiver-processor-exporter pipeline does fan-out·transform·routing in one place.
4. Storage choice is a data nature question. Arbitrary text search → inverted index (OpenSearch), numeric time-series aggregate → TSDB (Prometheus/AMP). They're fundamentally different, unseparable.
5. Visualization is decoupled from backend. AMG (Grafana) is neutral layer unifying heterogeneous data sources in single dashboard, EKS observability standard stack is ADOT + AMP + AMG.
💡 Related theory: The meta-principle piercing Week 11 is separation of concerns. Tracing divides into instrumentation (code) · collection (Daemon/Collector) · storage (backend) · visualization (Grafana) as separate layers. This separation lets each layer swap or extend independently — swap SDK, backend stays same; swap backend, dashboard stays same. The whole observability architecture is the 4-layer pipeline ("instrumentation-transmission-storage-visualization") that OTel implements, fundamentally different from monolithic observability tools (one vendor bundling everything).
🔍 Going deeper: The "three pillars" of observability (metrics·logs·traces) are criticized. Handling three signals separately makes humans match correlations. More modern: "derive three signals from one wide event" (like Week 10's EMF and canonical log line). OTel integrating logs·metrics·traces into one OTLP and sharing common trace ID and resource reflects this direction. Why the exam naturally asks "drill from trace to metric to log" — signals must bind by common identifier for fast incident investigation. Seeing weaving instead of pillars is the mature view.
Real-world tool selection flow:
Q1. What signal?
├─ Trace → X-Ray (AWS simple) or ADOT (multi-backend)
├─ Metric (numeric time-series) → CloudWatch (AWS) or AMP (Prometheus ecosystem)
└─ Log (text search) → CloudWatch Logs / OpenSearch (full-text)
Q2. Vendor-neutral·multi-cloud needed?
├─ Yes → OpenTelemetry/ADOT + Prometheus/Grafana
└─ No (AWS only) → X-Ray + CloudWatch
Q3. Single dashboard across multiple backends?
└─ Yes → AMG (Grafana) for data source unification
Q4. Cost/visibility balance?
└─ Reservoir (critical path guarantee) + FixedRate (noise ratio) + Priority split
Keep this tree in mind, scenario keywords ("multi-cloud", "Prometheus", "full-text search", "code-change-free", "trace breaks") directly map to answers.
📚 Case study: An organization started with X-Ray, later decided to standardize observability on Datadog, but every microservice had X-Ray SDK buried deep, migration estimated months. If they'd instrumented with OpenTelemetry initially, it would be one exporter config line (awsxray → datadog). Lesson: small early decision to instrument to standard (OTel) determines huge future migration cost. Lock-in cost isn't invoiced at lock-in time, but at escape time.
🎯 Comprehensive scenario: "Global e-commerce runs AWS EKS and on-premises K8s together. (a) Payment path trace can't lose a single trace, health checks excluded from tracing, (b) future tracing tool swappable, (c) Pod metrics via PromQL, application logs full-text searchable, (d) AWS·on-premises viewed in one dashboard with company SSO. Full design?"
Instrumentation (Day 1·3): All services instrumented OpenTelemetry (or auto-instrumentation) for vendor-neutrality → future tool change is exporter config only. Propagator set W3C + X-Ray compatible to prevent trace breaks.
Collection (Day 3): EKS has ADOT Collector 2-tier (DaemonSet collect + gateway tail-sample). Agent Prometheus-scrapes and receives OTLP, gateway keeps "error·high-latency trace 100%" via tail-sampling.
Sampling (Day 2): Payment (
/checkout/*) low Priority + large Reservoir + Rate 1.0 (full), health checks Reservoir 0 + Rate 0 (exclude), rest Default 5%.Storage (Day 4): Metrics → AMP (remote_write, PromQL), logs → OpenSearch (Subscription→Firehose, inverted-index full-text), traces → X-Ray (or future other backend).
Visualization (Day 4): AMG connects AMP, OpenSearch, X-Ray, CloudWatch + on-premises Prometheus as data sources, IAM Identity Center SSO. PromQL shared for AWS·on-premises single dashboard.
This one problem spans Week 11 — standard instrumentation, per-path differential sampling, nature-based storage, neutral visualization.
Click a choice to reveal the answer and explanation.
Question 1
Order service (X-Ray SDK) and new Payment service (OpenTelemetry) run together. On Service Map, order→payment trace splits in two. Most likely root cause and fix?
Question 2
"Payment traces 100% collection, health checks completely exclude, rest 5% for cost" in X-Ray sampling?
Question 3
"Error traces and p99-slow traces 100% kept, normal 1% only"?
Question 4
Collect EKS Pod metrics (Prometheus format), query PromQL, managed operation?
Question 5
"Billions-line application log, full-text search specific error message" — backend and standard ingestion path?
Question 6
Lambda Active Tracing on, but no DynamoDB·HTTP subsegment inside function. Root?
Question 7
Downstream fault rate rose from normal 0.1% but under fixed 5% threshold, no CloudWatch alert. Catch "absolute low but abnormal relative" early degradation?
Question 8
Migrate tracing Jaeger→X-Ray, validate both tools in parallel during transition?
Question 9
Reservoir 10, service runs 100 instances. Actual reservoir collection volume?
Question 10
Prometheus/AMP most common operational incident and ephemeral job (Lambda·batch) metric loss workaround?
Question 11
AWS (EKS) and on-premises K8s metrics in one dashboard, company SSO?
Question 12
EC2 app traces to X-Ray standard path, Lambda different why?
Incident Response Automation — EventBridge, SSM Automation, Chatbot, Incident Manager
Week 11's observability (how to see anomalies) leads to the next question — how to respond automatically after detecting anomalies. X-Ray Insights·CloudWatch Anomaly Detection signal, EventBridge receives, SSM Automation auto-remedies, Incident Manager coordinates on-call, Chatbot weaves ChatOps — the automation chain from detection through response in Week 12.
💪 Week 11 complete — wove observability's tracing·telemetry·backend into one decision system. From Dapper's trace model through OTel standardization, inverted-index and TSDB's two worlds, to Grafana's neutral visualization. Next: wiring these signals into automated incident response.