How lftraining/lfs148-code works
This repository is a set of OpenTelemetry learning exercises, not one deployed application. The principal workflow is a Flask request that can retrieve a user and return an HTTP response; the exercises progressively add manual logs, metrics, and traces, while the collector example combines those techniques. Separate exercises cover automatic instrumentation and a Spring Boot/Flask/Thymeleaf example. Source excerpts show the collector’s user-client and telemetry setup; other exercise variants are represented from the file tree. The README gives no further capability detail, and the Java/Flask automatic and action examples were not shown in excerpts.
Main entry points: src/app.py Collector Flask App · src/app.py Traces Flask App · client.py Chaos / Faker Client · metric_utils.py Metric Setup
Components 23
Collector Exercise
- Collector Flask App
exercises/collector/initial/src/app.py - Chaos / Faker Client
exercises/collector/initial/src/client.py - User Model
exercises/collector/initial/src/model/user.py - Log Handler
exercises/collector/initial/src/logging_utils.py - Metric Setup
exercises/collector/initial/src/metric_utils.py - Trace Setup
exercises/collector/initial/src/trace_utils.py - Resource Setup
exercises/collector/initial/src/resource_utils.py
Manual Instrumentation
- Logs Flask App
exercises/manual-instrumentation-logs/solution/src/app.py - Log Handler
exercises/manual-instrumentation-logs/solution/src/logging_utils.py - Metrics Flask App
exercises/manual-instrumentation-metrics/solution/src/app.py - Metric Setup
exercises/manual-instrumentation-metrics/solution/src/metric_utils.py - Resource Setup
exercises/manual-instrumentation-metrics/solution/src/resource_utils.py - Traces Flask App
exercises/manual-instrumentation-traces/solution/src/app.py - Trace Setup
exercises/manual-instrumentation-traces/solution/src/trace_utils.py
Automatic Instrumentation
- Flask UI Exercise
exercises/automatic-instrumentation/initial/todoui-flask/app.py - Flask UI Solution
exercises/automatic-instrumentation/solution/todoui-flask/app.py - Spring Backend Exercise
exercises/automatic-instrumentation/initial/todobackend-springboot/src/main/java/io/novatec/todobackend/TodobackendApplication.java - Spring Backend Solution
exercises/automatic-instrumentation/solution/todobackend-springboot/src/main/java/io/novatec/todobackend/TodobackendApplication.java
OTel In Action
- Flask UI
exercises/otel-in-action/todoui-flask/app.py - Spring Backend
exercises/otel-in-action/todobackend-springboot/src/main/java/io/novatec/todobackend/TodobackendApplication.java - Thymeleaf UI
exercises/otel-in-action/todoui-thymeleaf/src/main/java/io/novatec/todoui/TodouiApplication.java
Other components
- HTTP Caller
- HTTP Service
Connections 17
- HTTP Caller → Collector Flask App: sends request
exercises/collector/initial/src/app.py - Collector Flask App → Chaos / Faker Client: gets user
exercises/collector/initial/src/app.py - Chaos / Faker Client → User Model: creates user
exercises/collector/initial/src/client.py - Collector Flask App → Log Handler: attaches handler
exercises/collector/initial/src/app.py - Collector Flask App → Metric Setup: sets up metrics
exercises/collector/initial/src/app.py - Collector Flask App → Trace Setup: creates tracer
exercises/collector/initial/src/app.py - Collector Flask App → HTTP Service: requests service
exercises/collector/initial/src/app.py - Metric Setup → Resource Setup: creates resource
exercises/collector/initial/src/metric_utils.py - Trace Setup → Resource Setup: creates resource
exercises/collector/initial/src/trace_utils.py - HTTP Caller → Logs Flask App: sends request
exercises/manual-instrumentation-logs/solution/src/app.py - Logs Flask App → Log Handler: attaches handler
exercises/manual-instrumentation-logs/solution/src/app.py - HTTP Caller → Metrics Flask App: sends request
exercises/manual-instrumentation-metrics/solution/src/app.py - Metrics Flask App → Metric Setup: sets up metrics
exercises/manual-instrumentation-metrics/solution/src/app.py - Metric Setup → Resource Setup: creates resource
exercises/manual-instrumentation-metrics/solution/src/metric_utils.py - HTTP Caller → Traces Flask App: sends request
exercises/manual-instrumentation-traces/solution/src/app.py - Traces Flask App → Trace Setup: creates tracer
exercises/manual-instrumentation-traces/solution/src/app.py - Traces Flask App → HTTP Service: requests service
exercises/manual-instrumentation-traces/solution/src/app.py