Skip to content

[demo] Update demo docs to match opentelemetry-demo main (removed/added services, k6, collector renames) #10962

Description

@mwimpelberg28

Summary

The OpenTelemetry Demo documentation under content/en/docs/demo/ has drifted from the
current opentelemetry-demo main
branch. This is a meta/tracking issue enumerating each needed update, grouped by theme.
File paths are relative to content/en/docs/demo/. Linked PRs are in opentelemetry-demo.

Happy to split any group into its own issue/PR — this is a checklist to coordinate the work.

1. Remove deleted services (product-reviews, llm) — — #10963

product-reviews and llm were removed from the demo
(open-telemetry/opentelemetry-demo#3568, open-telemetry/opentelemetry-demo#3587,
open-telemetry/opentelemetry-demo#3599) but the docs still reference them.

  • Delete services/product-reviews.md (entire page is for the removed service)
  • architecture.md — remove llm and product-reviews nodes and all their edges from the graph TD service diagram
  • _index.md — remove Product Reviews from the Python row of the Language Feature Reference table, and from the Service Documentation list
  • services/_index.md — remove the product-reviews table row
  • feature-flags/_index.md — remove the llmInaccurateResponse and llmRateLimitError flags (mock LLM service is gone)
  • telemetry-features/metric-coverage.md, trace-coverage.md, log-coverage.md — remove the Product Reviews rows
  • telemetry-features/manual-span-attributes.md — remove the "Product Reviews" section and app.product_reviews.* attributes
  • sample-configurations/tail-sampling-service-criticality.md — remove product-reviews from the medium-criticality tier

2. Add docs for new services — see #10574

New services added but undocumented: Agent/MCP/Chatbot
(open-telemetry/opentelemetry-demo#3455), OpAMP server
(open-telemetry/opentelemetry-demo#3566), telemetry-docs
(open-telemetry/opentelemetry-demo#2794).

  • Create services/agent.md — Python 3.14, FastAPI + Uvicorn, LangChain/LangGraph ReAct agent, POST /prompt, port 8010, instrumented with the Traceloop SDK + OTLP; built-in tools vs MCP tool mode
  • Create services/chatbot.md — Python 3.14, Gradio chat UI, forwards to the agent, port 7860, served at /chatbot/, OTLP/gRPC traces
  • Create services/mcp.md — Python 3.14, FastMCP server exposing shop tools over the Model Context Protocol at /mcp, port 8011, Traceloop SDK + httpx instrumentation
  • Create services/opamp-server.md — Go reference OpAMP server (opamp-go); Collector opampextension reports health/config; UI at /opamp/
  • Create services/telemetry-docs.md — Weaver + MkDocs + nginx-otel; hosts the telemetry-schema docs at /telemetry/, port 8000
  • architecture.md — add agent, mcp, chatbot nodes and edges (frontend-proxy → chatbot → agent → mcp → frontend, agent → product-catalog, plus the LLM dependency); optionally add opamp-server and telemetry-docs
  • _index.md — add the new Python services to the Language Feature Reference table and the Service Documentation list
  • services/_index.md — add table rows for the 5 new services

3. Load generator: Locust → k6 — done in #10969

The load generator was rewritten from Locust to k6
(open-telemetry/opentelemetry-demo#3564).

  • Rewrite services/load-generator.md for k6 + the xk6-otel extension — script.js structure, weighted traffic mix, flagd-driven VUs (loadGeneratorTraffic/loadGeneratorVUs), optional headless-browser scenario, and K6_OTEL_* / LOAD_GENERATOR_VUS env vars. Update cSpell:ignore (drop locustfile/urllib)
  • architecture.md — intro prose "a load generator which uses Locust" → k6
  • services/_index.md — load-generator language Python/LocustJavaScript/k6
  • telemetry-features/_index.md — replace Locust references with k6; note k6 has no proxied web UI
  • screenshots/index.md — remove or replace the Locust "Load Generator UI" section/image (k6 has no web UI)

4. Collector exporter renames (Collector v0.145.0)

OTLP exporters were renamed (otlpotlp_grpc/jaeger, otlphttp/prometheus
otlp_http/prometheus) and span metrics is now the span_metrics connector
(open-telemetry/opentelemetry-demo#2942).

  • docker-deployment.md — in the "bring your own backend" snippet, spanmetricsspan_metrics (pipeline + note); update the collector-config description from merging "two files" to the current four-file layering (otelcol-config.yml + -full + -observability + -extras)
  • kubernetes-deployment.md — same spanmetricsspan_metrics in the BYO-backend snippet and note
  • sample-configurations/tail-sampling-service-criticality.mdexporters: [otlp, debug, spanmetrics][otlp_grpc/jaeger, debug, span_metrics]

5. docker-deployment.md — broken/outdated commands

Compose files are now compose.*.yaml; several referenced files/targets no longer exist.

  • Minimal mode: docker compose -f docker-compose.minimal.yml ... → the layered compose.yaml + compose.observability.yaml + compose.extras.yaml (make start-minimal)
  • Full demo: clarify that a bare docker compose up loads only core compose.yaml; make start layers compose.full.yaml + compose.observability.yaml + compose.extras.yaml
  • Minimal-mode exclusion list: drop flagd-ui (now in core compose.yaml); excluded set is accounting, fraud-detection, kafka
  • Trace-based testing section: make run-tracetesting, docker-compose-tests.yml, and the traceBasedTests service no longer exist (now compose.tests.yaml with frontendTests); Tracetest UI appears removed — remove or update
  • Add the agent/AI stack (make start-agentic / compose.agent.yaml, Chatbot UI at /chatbot/) and the profiling stack (make start-profiling / compose.profiling.yaml, /profiles/); add the telemetry-docs URL /telemetry/ to the verify-URLs list

6. Additional drift found

  • feature-flags/_index.md — flag names largely mismatch current src/flagd/demo.flagd.json (e.g. adServiceFailureadFailure, recommendationServiceCacheFailurerecommendationCacheFailure, paymentServiceFailurepaymentFailure, adServiceManualGcadManualGc, adServiceHighCpuadHighCpu, cartServiceFailurecartFailure); add loadGeneratorTraffic/loadGeneratorVUs; remove emailMemoryLeak/loadgeneratorFloodHomepage
  • telemetry-features/ coverage matrices (metric/trace/log) — add rows for agent, chatbot, mcp (and optionally opamp-server, telemetry-docs)
  • services/_index.md — add rows for image-provider, kafka, frontend-proxy (they have doc pages but no table row)
  • Document the KAFKA_TOPIC env var (default orders, used by checkout/accounting/fraud-detection) — Add KAFKA_TOPIC environment variable opentelemetry-demo#3665

Not doc-relevant (code-only fixes, listed for completeness): checkout nanos divisor,
currency VERSION/IPV6_ENABLED guards, react-native device.id, flagd-ui Tailwind/LiveView
fixes. No docs changes needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions