Rewrite the recommendation service in Spring Boot 4 - #3966
Rewrite the recommendation service in Spring Boot 4#3966adityareddy-dev wants to merge 1 commit into
Conversation
- Replace the Python recommendation service with a Java service built on Spring Boot 4.1 and Spring gRPC. - Telemetry comes from Micrometer instead of the Java agent. - gRPC server and client spans through the auto-configured observation interceptors, the get_product_list span and its demo.* attributes through Micrometer Tracing, the demo.recommendation.requests counter through the MeterRegistry, and logs through the OpenTelemetry Logback appender. - All three signals go to the collector over OTLP/HTTP, configured from the standard OTEL_* environment variables that Spring Boot maps itself. - The gRPC contract, the recommendationCacheFailure feature flag behaviour and the telemetry schema are unchanged. Refs open-telemetry#1368 Assisted-by: Claude Code
|
Welcome, contributor! Thank you for your contribution to opentelemetry-demo. Important reminders:
|
|
Ready for review. The helm chart change is open as a draft at open-telemetry/opentelemetry-helm-charts#2398, to be merged only after a demo release with this service. The docs page for opentelemetry.io I will send separately. |
|
I have some doubts. Demo already have 2 java services. I do not think that we should rewrite additional one to this langauge. |
@Kielek we have 4 services in Python. We currently have only Ad that is Java Java. With this new service we can introduce some other ways to instrument Java code, as we have on the docs: https://opentelemetry.io/docs/languages/java/instrumentation/#instrumentation-categories |
Changes
recommendationCacheFailurebehaviour, same attribute and metric names from the telemetry schema.get_product_listspan and itsdemo.*attributes through Micrometer Tracing, the counter through theMeterRegistry, logs through the OpenTelemetry Logback appender, all exported over OTLP/HTTP from the standardOTEL_*environment variables that Spring Boot maps itself.rpc.method,rpc.service,grpc.status_code) rather than the OTel semconv set, and there are nootel_sdk_*self-observability metrics, so the service drops off that dashboard. The cache-leak memory growth shows on a new "JVM services (Memory)" panel in the demo dashboard.test/telemetrypasses for the service. Docs page and helm chart env (collector HTTP port, Python variables removed) are follow-ups.Merge Requirements
For new features contributions, please make sure you have completed the following
essential items:
CHANGELOG.mdupdated to document new feature additionsMaintainers will not merge until the above have been completed. If you're unsure
which docs need to be changed ping the
@open-telemetry/demo-approvers.