Skip to content

Cilium Service Mesh Observability Quiz

This quiz tests your understanding of Hubble, metrics collection, service maps, Golden Signals monitoring, and OpenTelemetry integration.

Quiz Questions

1. Which is NOT a main component of Hubble?

A. Hubble Observer B. Hubble Relay C. Hubble Router D. Hubble UI

Show Answer

Answer: C. Hubble Router

Explanation: The main components of Hubble are Hubble Observer (embedded in Cilium Agent), Hubble Relay (cluster-wide flow aggregation), Hubble UI (visualization dashboard), and Hubble CLI (command-line interface). Hubble Router is not an existing component.

2. What command filters and observes only HTTP traffic in Hubble CLI?

A. hubble observe --type http B. hubble observe --protocol http C. hubble observe --filter http D. hubble observe --layer http

Show Answer

Answer: B. hubble observe --protocol http

Explanation: The hubble observe --protocol http command filters only HTTP protocol traffic. Other protocols (tcp, dns, etc.) can be filtered in the same way.

3. What setting needs to be enabled in values.yaml to collect Hubble metrics in Prometheus?

A. hubble.prometheus.enabled: true B. hubble.metrics.enabled C. hubble.export.prometheus: true D. prometheus.hubble: true

Show Answer

Answer: B. hubble.metrics.enabled

Explanation: To enable Hubble metrics, specify the metric types to collect (dns, drop, tcp, flow, http, etc.) as a list under hubble.metrics.enabled. Also, setting serviceMonitor.enabled: true allows Prometheus Operator to automatically scrape.

4. Which is NOT one of the four Golden Signals for monitoring?

A. Latency B. Traffic C. Availability D. Saturation

Show Answer

Answer: C. Availability

Explanation: The four Golden Signals defined by Google SRE are Latency, Traffic, Errors, and Saturation. Availability is not included in Golden Signals and is measured indirectly through the Errors metric.

5. What is the correct command to observe traffic denied by policies in Hubble?

A. hubble observe --denied B. hubble observe --verdict DROPPED C. hubble observe --blocked D. hubble observe --policy-denied

Show Answer

Answer: B. hubble observe --verdict DROPPED

Explanation: The --verdict DROPPED option filters traffic denied by network policies. Conversely, --verdict FORWARDED shows allowed traffic.

6. Which function is used in PromQL queries to measure HTTP P99 latency?

A. avg() B. histogram_quantile() C. rate() D. sum()

Show Answer

Answer: B. histogram_quantile()

Explanation: Percentile metrics like P99 latency use the histogram_quantile() function. Example: histogram_quantile(0.99, rate(hubble_http_request_duration_seconds_bucket[5m])). Here, 0.99 means the 99th percentile.

7. Which is NOT a main feature provided by Hubble UI?

A. Service Map B. Flow Timeline C. Auto Scaling D. Namespace Filter

Show Answer

Answer: C. Auto Scaling

Explanation: Hubble UI provides service maps, flow timeline, namespace filter, verdict filter, and L7 details for individual flows. Auto scaling is a workload management feature, not an observability feature.

8. What is the correct form of a PromQL query to calculate HTTP error rate in Cilium?

A. hubble_http_errors_total / hubble_http_requests_total B. sum(rate(hubble_http_responses_total{status=~"5.."}[5m])) / sum(rate(hubble_http_responses_total[5m])) C. count(hubble_http_errors) / count(hubble_http_requests) D. hubble_http_error_rate

Show Answer

Answer: B. sum(rate(hubble_http_responses_total{status=~"5.."}[5m])) / sum(rate(hubble_http_responses_total[5m]))

Explanation: HTTP error rate is calculated by dividing the count of 5xx responses by the total response count. The rate() function calculates per-second rates, and the status label filter (status=~"5..") selects only server errors.

9. What option is used to observe only traffic destined for a specific service in Hubble?

A. --destination-service B. --to-service C. --target-service D. --svc

Show Answer

Answer: B. --to-service

Explanation: The hubble observe --to-service <service-name> command filters traffic destined for a specific service. Conversely, --from-service filters traffic originating from a specific service.

10. What metric monitors connection tracking table utilization in Cilium?

A. cilium_ct_usage B. cilium_datapath_conntrack_active C. cilium_connections_total D. cilium_ct_table_size

Show Answer

Answer: B. cilium_datapath_conntrack_active

Explanation: The cilium_datapath_conntrack_active metric represents the current number of active connections. It can be used with cilium_datapath_conntrack_max to calculate connection tracking table utilization.

11. What option is used to receive Hubble output in JSON format?

A. --format json B. -o json C. --json D. --output-type json

Show Answer

Answer: B. -o json

Explanation: The hubble observe -o json command outputs in JSON format. This is useful for piping to tools like jq for additional processing.

12. What protocol is used when integrating OpenTelemetry Collector with Hubble?

A. HTTP REST API B. OTLP (OpenTelemetry Protocol) C. Prometheus Remote Write D. StatsD

Show Answer

Answer: B. OTLP (OpenTelemetry Protocol)

Explanation: Hubble can export flow data to OpenTelemetry Collector using OpenTelemetry Protocol (OTLP). This allows routing data to various backends like Jaeger, Prometheus, Loki, etc.