10 OTCA questions with full explanations for every option, free to view on this page.
Fundamentals of Observability
Q1. Which statement best describes an SLI (Service Level Indicator)?
Reveal answer and explanations
AA vendor-specific metric format pushed by an in-process agent library configured per service
Incorrect. SLIs are conceptual measurements, independent of any vendor's metric format.
BA quantitative measurement of service behavior such as latency or error rate
Correct. An SLI is a measured aspect of service behavior such as request latency, availability, or error rate, used as the basis for SLOs.
CA contractual financial penalty triggered when a service is unavailable
Incorrect. Penalties for missed targets are part of SLAs, not SLIs.
DA specialized type of OpenTelemetry exporter for reliability data
Incorrect. SLI is a reliability concept, not an OpenTelemetry component.
Fundamentals of Observability
Q2. Which of the following is the strongest argument for OpenTelemetry's unified data model over the historical "three pillars" framing?
Reveal answer and explanations
ATraces, metrics, and logs share resource attributes and trace context, enabling cross-signal correlation
Correct. By giving all three signals a shared `Resource` and W3C trace context, OpenTelemetry enables joining a metric spike to its log lines and underlying span without the per-tool reconciliation that the pillars framing forced.
BThe unified model eliminates the need for sampling because every signal is captured
Incorrect. Sampling remains a first-class feature in the unified model.
CThe unified model removes the need for backends because OTLP can render dashboards directly
Incorrect. Backends and visualization are out of scope; OpenTelemetry focuses on instrumentation and transport.
DThe unified model reduces network bandwidth by emitting a single combined record per request instead of three
Incorrect. The three signals are still emitted independently; bandwidth savings come from compression, not from collapsing signals.
Fundamentals of Observability
Q3. Why is high cardinality in metrics labels a concern for observability backends?
Reveal answer and explanations
AIt always violates GDPR data protection rules regardless of which user data the labels capture
Incorrect. Cardinality is a cost and scalability problem; GDPR concerns are independent of cardinality.
BIt is forbidden by the OpenTelemetry metrics SDK specification
Incorrect. The specification does not forbid high cardinality; it is a deployment trade-off.
CIt forces metrics to be re-encoded as log records inside OTLP
Incorrect. OTLP supports high-cardinality metrics; encoding does not change with cardinality.
DIt causes a time-series explosion that drives memory and storage costs up
Correct. Each unique combination of label values creates a new time series, so unbounded label values can blow up memory and storage in TSDBs.
Fundamentals of Observability
Q4. A backend rejects records because two services use different keys for the same concept (`http.method` versus `http.request.method`). Which OpenTelemetry concept is designed to prevent this drift?
Reveal answer and explanations
ASpan kinds
Incorrect. Span kinds describe the role of a span, not attribute naming.
BSemantic conventions
Correct. Semantic conventions define standard attribute names (e.g., `http.request.method`) so different producers do not invent overlapping keys; the example reflects the migration from older `http.method` to the stable `http.request.method`.
CSpan links
Incorrect. Span links connect spans; they do not unify attribute keys.
DPeriodic exporting metric reader
Incorrect. The metric reader controls export cadence, not attribute naming.
Fundamentals of Observability
Q5. What does MTTR most commonly stand for in SRE contexts?
Reveal answer and explanations
AMean Time To Recovery (or Repair)
Correct. MTTR is the average time it takes to recover from (or repair) an incident, a key reliability metric that observability aims to reduce.
BMaximum Tolerable Threshold of Requests
Incorrect. This is not a recognized acronym in SRE literature.
CMean Throughput Time Ratio
Incorrect. Throughput-related ratios are not the meaning of MTTR.
DMinimum Time To Release
Incorrect. This is unrelated to the standard MTTR definition.
Fundamentals of Observability
Q6. In the OpenTelemetry log data model, what is the numeric range of the `SeverityNumber` field, and how is severity organized within it?
Reveal answer and explanations
A`0` to `99`, with each integer representing a single distinct severity level defined by the spec
Incorrect. The data model does not allocate one integer per level; it uses banded ranges.
BAn enum-only field with named members; there is no numeric encoding in OTLP
Incorrect. `SeverityNumber` is a numeric field with an associated optional `SeverityText`.
C`0` to `255`, mapping byte-for-byte to the numeric severity used by syslog
Incorrect. The model is not aligned with the syslog severity encoding.
D`1` to `24`, in groups of four (TRACE, DEBUG, INFO, WARN, ERROR, FATAL) with gradations
Correct. `SeverityNumber` ranges from `1` (TRACE) to `24` (FATAL4) in groups of four, so TRACE is `1`-`4`, DEBUG is `5`-`8`, INFO is `9`-`12`, WARN is `13`-`16`, ERROR is `17`-`20`, FATAL is `21`-`24`.
The OpenTelemetry API and SDK
Q7. Which of the following is NOT a defined OpenTelemetry span kind?
Reveal answer and explanations
A`SERVER`
Incorrect. `SERVER` is a defined span kind for the receiving side of synchronous calls.
B`CLIENT`
Incorrect. `CLIENT` is a defined span kind for the calling side of synchronous calls.
C`PRODUCER`
Incorrect. `PRODUCER` is a defined span kind for asynchronous messaging producers.
D`SCHEDULER`
Correct. `SCHEDULER` is not a span kind; the defined kinds are `INTERNAL`, `SERVER`, `CLIENT`, `PRODUCER`, and `CONSUMER`.
The OpenTelemetry API and SDK
Q8. When is `SimpleSpanProcessor` an appropriate choice in production?
Reveal answer and explanations
AWhen you want maximum throughput because each span is exported asynchronously
Incorrect. `SimpleSpanProcessor` is synchronous, which lowers throughput and adds latency on the hot path.
BEssentially never; it exports each span synchronously and blocks the caller
Correct. `SimpleSpanProcessor` exports each span synchronously without batching or queueing, which makes it suitable for tests and debugging but inappropriate for production where it adds latency and amplifies exporter failures.
CWhenever the exporter is OTLP/gRPC because gRPC streams remove the synchronous penalty
Incorrect. The transport does not change the synchronous semantics of the processor itself.
DWhen the application is single-threaded so synchronous export costs are negligible
Incorrect. Even single-threaded apps pay the latency tax on every span finish.
The OpenTelemetry API and SDK
Q9. Why does OpenTelemetry separate the API from the SDK?
Reveal answer and explanations
ATo let library authors instrument code without forcing a specific SDK choice
Correct. The API/SDK split lets library authors emit telemetry against a stable API; the application owner chooses if and how to wire up an SDK at runtime.
BBecause the API and SDK are deliberately written in different languages
Incorrect. The API and SDK are typically published in the same language and ecosystem.
CTo require application owners to install two separate runtime binaries before any telemetry is produced
Incorrect. The split is a code-level architecture, not a packaging requirement for the user.
DBecause the API is proprietary while the SDK is open source software
Incorrect. Both the API and SDK are open source under the OpenTelemetry project.
The OpenTelemetry API and SDK
Q10. A service runs `BatchSpanProcessor` with `maxQueueSize=2048`, `maxExportBatchSize=512`, `scheduledDelayMillis=5000`, `exportTimeoutMillis=30000`. The exporter becomes unresponsive while traffic continues. What happens next?
Reveal answer and explanations
AOnce the queue fills, newly produced spans are dropped and the SDK records lost telemetry
Correct. When in-flight exports stall and the bounded queue (`maxQueueSize`) fills, `BatchSpanProcessor` discards incoming spans rather than blocking the application; this is observable via SDK self-metrics but is otherwise silent.
BEach new span blocks the application until the export succeeds
Incorrect. `BatchSpanProcessor` is asynchronous; it does not block the calling thread when full.
CThe processor automatically falls back to `SimpleSpanProcessor` semantics until the exporter recovers
Incorrect. There is no automatic processor downgrade; the BSP behavior is to drop on backpressure.
DAll in-memory spans are flushed to local disk under `/tmp` until the exporter recovers
Incorrect. The standard SDK does not write spans to local disk; persistent buffering is a Collector queue feature.
These questions are written against the current OTCA curriculum — not scraped exam dumps. The full OTCA library here has 120 questions; the broader platform covers the rest of the Golden Kubestronaut path.