Skip to content

Observability Fundamentals: OTCA practice questions

Observability is the ability to understand a system from the outside, by asking questions about it without knowing its internals, which is what makes it useful for problems nobody anticipated. For an application to be observable it must emit telemetry, the data a system produces about its own behavior, and OpenTelemetry is a way to instrument code so it does.

By Ibrahim Yesilay · Published · Updated

Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.

What Observability Fundamentals covers in OTCA

Observability is the ability to understand a system from the outside, by asking questions about it without knowing its internals, which is what makes it useful for problems nobody anticipated. For an application to be observable it must emit telemetry, the data a system produces about its own behavior, and OpenTelemetry is a way to instrument code so it does.

OpenTelemetry is an open source framework and toolkit for generating, exporting and collecting telemetry. It is vendor- and tool-agnostic, and it is explicitly not an observability backend: storing and visualizing the data is left to tools such as Jaeger or Prometheus or to commercial products. Its parts are a specification and the OTLP protocol, semantic conventions, an API, language SDKs, instrumentation libraries, zero-code instrumentation, the Collector, and tooling for Kubernetes. It is a Cloud Native Computing Foundation project that came out of the merger of OpenTracing and OpenCensus, two earlier efforts at the same problem.

The documentation lists the signals that OpenTelemetry supports. Traces follow a request's path through an application. Metrics are measurements taken at runtime, aggregated over time, such as an error rate or a request rate. Logs are timestamped records of events. Baggage carries contextual key-value data between signals. Events, a specific kind of log, and profiles, which record code-level resource usage, are listed as still under development.

A trace is made of spans. Each span is one unit of work with a name, start and end times, attributes, events and a status; a root span covers the whole request and child spans show the steps inside it. The span context, holding the trace ID and span ID, is what links spans across services. A span kind describes its role: client and server for synchronous remote calls, producer and consumer for asynchronous work, and internal for work inside one process, which is the default. Status is Unset by default, Error when something failed, and Ok only when someone explicitly marks the operation as successful.

Logs become far more useful when they can be correlated. With an active SDK or automatic instrumentation, log records carry the current trace and span IDs, so a log line leads to the trace it belongs to. Structured logs, which follow a consistent schema with defined fields, are preferred in production because they are easier to parse and analyze than free text, and valid JSON alone does not make a log structured.

Context propagation is what joins work done in different processes into one trace. Context holds the identifiers, and propagation moves them between services, by default using the W3C TraceContext traceparent header. Baggage travels the same way, so it should never contain credentials or personal data. Semantic conventions give common names to operations and attributes across traces, metrics, logs, profiles and resources, so that telemetry means the same thing whichever library produced it.

Observability supports reliability work: a service level indicator measures behavior from the user's point of view, such as page load time, and a service level objective sets the target for it.

Key points

  • OpenTelemetry generates, collects and exports telemetry but does not store or visualize it.
  • Traces, metrics, logs and baggage are supported; events and profiles are still in development.
  • The default propagator uses the W3C TraceContext traceparent header.
  • A span without an explicit kind is internal, and its status starts as Unset.

Three sample questions

10 OTCA questions on Observability Fundamentals, 10 with explanations. How practice works

Question 1

Which of the following is NOT a type of telemetry data collected in OpenTelemetry?
  1. A.Logs
  2. B.Metrics
  3. C.Traces
  4. D.Alerts

Correct answer: D

OpenTelemetry collects **logs, metrics, and traces**. Alerts are generated by monitoring systems like Prometheus, not OpenTelemetry itself.

Question 2

What is the primary purpose of OpenTelemetry?
  1. A.To store logs in a centralized database
  2. B.To provide a vendor-neutral observability framework
  3. C.To replace Kubernetes monitoring tools
  4. D.To send alerts to monitoring dashboards

Correct answer: B

OpenTelemetry is an **open-source, vendor-neutral** observability framework that enables standard telemetry collection.

Question 3

Which statement about semantic conventions in OpenTelemetry is true?
  1. A.They provide standardized naming for telemetry data
  2. B.They are only applicable to traces, not logs or metrics
  3. C.They are optional and have no impact on observability
  4. D.They are automatically generated and cannot be customized

Correct answer: A

Semantic conventions ensure **consistent naming** and structuring of telemetry data across different services.

Practice this topic

Focus mode keeps every question on Observability Fundamentals until you leave it. 10 free guest answers, then a free account; no credit card.

Or open OTCA practice across all topics.

Sources

The explanation above was checked against these official documents.

Frequently asked questions

Is OpenTelemetry a replacement for Prometheus or Jaeger?

No. OpenTelemetry produces, processes and exports telemetry. Backends such as Prometheus or Jaeger, or commercial services, store and visualize it. OpenTelemetry can send data to them.