Skip to main content
Challenges

Open Source Challenges

Each adventure focuses on one open source technology, with challenges at different difficulty levels. Pick your adventure, work through real-world scenarios hands-on, and share what you learn with the community.

Filtered Challenges

9 challenges · OpenTelemetry

Beginner

Stand up the Lab

  • How an OpenFeature client and provider work together: the SDK is provider-agnostic and the flagd provider plugs in via dependency only
  • What remote provider means in practice: the SDK calls a separate flag service (flagd) over gRPC, not parsing flags.json itself
  • What flags.json looks like for flagd (state, variants, defaultVariant)
Challenge
Blind by Design
Intermediate

Outcome by Cohort

  • How OpenFeature's transaction-context propagation works in a thread-per-request server, and why a ThreadLocalTransactionContextPropagator is the right primitive for Servlet-based apps
  • The difference between request-scoped context (the subject's species) and global evaluation context (the trial's country), and when each is the right tool
  • How hooks let you attach cross-cutting behaviour, audit logging today and OpenTelemetry tracing tomorrow, without modifying every flag evaluation call site
Challenge
Blind by Design
Expert

Read the Chart

  • How the OpenFeature OpenTelemetry hooks (TracesHook and MetricsHook) join flag evaluations to the rest of an application's telemetry without a separate ingestion path
  • How to author your own Hook: a tiny class that copies merged-eval-context attributes onto the active OTel span, closing the loop between why a flag resolved the way it did and what the operator sees in Tempo
  • How fractional rollout in flagd buckets users by targetingKey (same key, same bucket, every request) and how to read that bucketing off a dashboard
Challenge
Blind by Design
Beginner

Calibrating the Lens

  • Instrument Python AI apps with OpenLLMetry
  • Analyze traces in Jaeger
Challenge
The AI Observatory
Intermediate

The Distracted Pilot

  • Instrument RAG pipelines with OpenLLMetry
  • Create custom OpenTelemetry metrics in Python
  • Write PromQL queries & recording rules in Prometheus
Challenge
The AI Observatory
Expert

The Noise Filter

  • OpenTelemetry GenAI semantic conventions
  • Tail sampling in the OTel Collector
Challenge
The AI Observatory
Beginner

Broken Echoes

  • Debug GitOps flows with Argo CD
  • ApplicationSet templating & pitfalls
  • Environment isolation & namespaces
Challenge
Echoes Lost in Orbit
Intermediate

The Silent Canary

  • Progressive delivery with Argo Rollouts
  • Canary deployments & automated analysis
  • Write PromQL queries for health validation
Challenge
Echoes Lost in Orbit
Expert

Hyperspace Operations & Transport

  • Configure OpenTelemetry Collector pipelines
  • Spanmetrics connector (traces to metrics)
  • Detect idle canaries with traffic validation
Challenge
Echoes Lost in Orbit

Challenge Builders

Adventures don't build themselves. A heartfelt thank you to everyone who has put in the time and care to create them.

Katharina Sick (opens in new tab)

DevRel at Dynatrace and co-organizer of Cloud Native Linz. Passionate about building user-friendly Cloud Native and Kubernetes solutions, with a background in mobile and backend development. Found in tech and sports communities, inline skating rinks, and quiz nights across Europe.

adventures created

Simon Schrottner (opens in new tab)

CNCF Ambassador and maintainer of OpenFeature and JUnit Pioneer. Helps teams release faster and with more confidence through open standards, feature flagging, and the communities that make both possible. A familiar face at KubeCon EU, Devoxx, ContainerDays, and meetups across Europe.

adventures created

Start Curious.Break Things.Learn Together.Glow Brighter.

You bring your questions, your fixes, your ideas. We bring the challenges, the tooling, and the practitioners who care about the same problems you do.

Every spark starts with one person. Like Nyx, our firefly, together we brighten the whole open source ecosystem.

That's OffOn. always On. always Open. always Learning.