opensearch-project / opensearch-project/observability-stack

Upgrade OpenTelemetry Demo to 3.0.0 across all deployment modes

Open
#433 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

untriaged
Dominant language
JavaScript
Stars
41
Forks
39
Avg merge
2d 11h
Merged PRs (30d)
10

Description

Summary

OpenTelemetry Demo latest version 3.0.0 changes the core service set, load generator, and several service configs. This repository vendors the demo across three deployment modes; all three need to move to 3.0.0 as per upstream issue: open-telemetry/opentelemetry-demo#3720

Scope

  • 1. Docker Compose (docker-compose.otel-demo.yml, .env, vendored config under docker-compose/opentelemetry-demo/, docker-compose/opensearch-dashboards/init/, docker-compose/prometheus/rules-otel-demo/)
  • 2. Kubernetes / Helm (charts/observability-stack, the opentelemetry-demo subchart, and the charts/observability-stack/files dashboard and alert-rule copies)
  • 3. AWS CDK and CLI installer (aws/cdk, aws/cli-installer)

Tasks

Docker Compose
  • Bump IMAGE_VERSION/DEMO_VERSION to 3.0.0 and the flagd/postgres/valkey image pins to the 3.0 set.
  • Drop services removed from the 3.0 core demo: accounting, fraud-detection, kafka, llm, product-reviews. Add telemetry-docs.
  • Replace the Locust load generator with k6 (LOAD_GENERATOR_VUS, K6_TARGET_URL).
  • Rename postgresql to astronomy-db; update init.sql to provision astronomy_db with astronomy_user/monitoring_user.
  • Mount the new product-catalog/otel-config.yml.
  • Refresh demo.flagd.json to the 3.0 flag set.
  • Set the frontend-proxy backend env vars (see Notes).
Kubernetes / Helm
  • Bump the opentelemetry-demo subchart (currently 0.40.8) to the release that ships demo 3.0.0.
  • Update the charts/observability-stack/files astronomy dashboards and otel-demo alert rules to the 3.0 service set, in lockstep with the subchart bump. These feed the init-dashboards and cortex-rules configmaps, so shipping them ahead of the subchart bump leaves the Helm path half-updated.
  • Set the frontend-proxy backend env vars in the subchart values.
AWS CDK / CLI
  • Propagate the 3.0.0 image version and service-set changes through aws/cdk and aws/cli-installer.
  • Set the frontend-proxy backend env vars in the CDK/CLI-rendered deployment.

Notes (verified on Docker Compose)

  • frontend-proxy backend vars: the 3.0.0 frontend-proxy image's envoy bootstrap defines STRICT_DNS clusters for chatbot, firepit, and opamp-server. A deployment that omits those services must still set CHATBOT_HOST/CHATBOT_PORT, FIREPIT_HOST/FIREPIT_PORT, and OPAMP_SERVER_HOST/OPAMP_SERVER_UI_PORT (upstream 3.0.0 defaults). Without them the socket addresses are empty, envoy proto validation fails, and the proxy crash-loops, which also blocks any service depending on frontend-proxy being healthy (for example the load generator). Template rendering (docker compose config) does not catch this, because the addresses are assembled inside the image at boot.
  • Dashboards: remove the product-reviews panels from the astronomy-shop dashboard; drop fraud-detection and product-reviews from the service-telemetry dashboard variable list. Repoint the product-catalog throughput panel from the removed npgsql (.NET) counters to the Go client metric db_client_operation_duration_seconds_count.
  • Alert rules: drop product-reviews and accounting from the otel-demo alert-rule service matchers.
  • Validation: the Docker Compose 3.0.0 deployment brought up all core demo services plus the stack collector healthy, with traces, metrics, and logs flowing under k6 load.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with docker-compose.otel-demo.yml and the vendored files under docker-compose/opentelemetry-demo/, then compare the charts/observability-stack subchart and files with the OpenTelemetry Demo 3.0.0 service set. Trace the corresponding entry points in aws/cdk and aws/cli-installer, and validate Compose health, telemetry flow, dashboards, alert rules, and the rendered deployment in each mode.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, docker, docker-compose, helm, javascript, kubernetes
Domain
cloud, devops, infrastructure, observability
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.