Skip to content

docs: add OpenTelemetry Demo quickstart page - #432

Open
kylehounslow wants to merge 4 commits into
opensearch-project:mainfrom
kylehounslow:docs/otel-demo-quickstart
Open

docs: add OpenTelemetry Demo quickstart page#432
kylehounslow wants to merge 4 commits into
opensearch-project:mainfrom
kylehounslow:docs/otel-demo-quickstart

Conversation

@kylehounslow

@kylehounslow kylehounslow commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Description

Adds a Quickstart page for sending data from the OpenTelemetry Demo (Astronomy Shop) to Observability Stack and exploring the resulting telemetry. It covers enabling the demo on both Docker Compose (INCLUDE_COMPOSE_OTEL_DEMO) and Kubernetes/Helm (opentelemetry-demo.enabled=true), then walks through the auto-provisioned service-telemetry dashboard and the APM Services view. The page also includes an access-point table and a Mermaid data-flow diagram, and is registered under the Quickstart sidebar group.

For Docker Compose, the demo image version is referenced through the DEMO_VERSION variable in .env rather than hardcoded, so the page stays valid across demo releases.

Validation (local astro build + astro preview): site builds (147 pages), the internal-link checker passes (including the /docs/apm/ and /docs/deploy/kubernetes/ links), both screenshots optimize to webp, and the page renders in the Quickstart nav. A PR preview deploy is also available via the docs preview workflow.

image

Issues Resolved

None. Documentation addition.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@codecov

codecov Bot commented Aug 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 55.62%. Comparing base (20c5da9) to head (3295fd4).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #432   +/-   ##
=======================================
  Coverage   55.62%   55.62%           
=======================================
  Files           4        4           
  Lines         169      169           
  Branches       47       47           
=======================================
  Hits           94       94           
  Misses         74       74           
  Partials        1        1           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@kylehounslow
kylehounslow force-pushed the docs/otel-demo-quickstart branch 6 times, most recently from baba6e6 to 21f9f3c Compare August 19, 2026 23:08
Add a Quickstart page for running the OpenTelemetry Demo (Astronomy Shop)
against Observability Stack. Covers enabling the demo compose profile,
starting the stack, and viewing the resulting telemetry, with the
service-telemetry dashboard and APM Services screenshots, an access-point
table, and a data-flow diagram. Register the page in the Quickstart sidebar.

Signed-off-by: Kyle Hounslow <kylhouns@amazon.com>
@kylehounslow
kylehounslow force-pushed the docs/otel-demo-quickstart branch from 21f9f3c to 02041e3 Compare August 19, 2026 23:08

@ps48 ps48 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adds the six-part telemetry showcase you asked for — Dashboards → APM Services → APM Application Map → Logs → Traces (error walkthrough) → Metrics (PromQL) — as inline suggestions, plus one small terminology fix. All UI nav names, query languages (PPL for Logs, PromQL for Metrics), and internal links were verified against the repo.

Four new screenshots to add under docs/starlight-docs/src/content/docs/get-started/quickstart/images/ (build auto-optimizes PNG → webp, same as the existing two):

Filename Capture
astronomy-shop-service-map.png Application Map, nodes colored by fault rate (ideally grouped by telemetry.sdk.language)
astronomy-shop-logs.png Logs page with a PPL query filtered to demo services/severity
astronomy-shop-traces.png Traces page with an errored trace + Trace Details flyout open (capture after toggling a feature-flag fault)
astronomy-shop-metrics.png Metrics page in Query mode with a PromQL expression + chart

Two things to confirm before merge:

  1. PromQL metric names — the queries use http_server_request_duration_seconds_*, which I could not verify against a live deployment; the exact OTLP→Prometheus names depend on each service's instrumentation. Please confirm from Explore mode. Fenced versions if you'd rather use promql code blocks in the file:
sum by (service_name) (rate(http_server_request_duration_seconds_count[5m]))
histogram_quantile(0.99, sum by (service_name, le) (rate(http_server_request_duration_seconds_bucket[5m])))
  1. Feature-flag scenario namespaymentFailure/cartFailure are the standard flags, but the set drifts across demo releases; confirm the exact names at localhost:8080/feature for DEMO_VERSION=2.2.0.

Comment thread docs/starlight-docs/src/content/docs/get-started/quickstart/otel-demo.mdx Outdated
Comment on lines +29 to +34
### Application performance (APM)

Open **Services** under Application performance to see the trace-derived service catalog: P50/P90/P99 latency, throughput, and failure rate per service, top services and dependency paths by fault rate, and SLO health. From any row, jump to that service's spans, logs, or service map.
See [Application Performance Monitoring](/docs/apm/) for service maps, SLOs, and the rest of the APM workflow.

![APM Services view showing top services and dependency paths by fault rate, SLO health summary, and a service catalog with latency, throughput, and failure rate per service.](./images/astronomy-shop-apm-services.png)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This restructures the single APM subsection into the ordered six-part showcase (Services → Application Map → Logs → Traces → Metrics), with a header + screenshot placeholder for each and accurate UI nav paths and links. Verified against the repo: nav is Observability > Application Monitoring; page links /docs/apm/services/, /docs/apm/service-map/, /docs/investigate/discover-logs/, /docs/investigate/discover-traces/, /docs/investigate/discover-metrics/ all resolve.

Note: the two PromQL queries are inline code because GitHub one-click suggestions can't contain fenced ``` blocks. If you prefer fenced promql blocks in the final file, I left the fenced versions in the review summary.

Suggested change
### Application performance (APM)
Open **Services** under Application performance to see the trace-derived service catalog: P50/P90/P99 latency, throughput, and failure rate per service, top services and dependency paths by fault rate, and SLO health. From any row, jump to that service's spans, logs, or service map.
See [Application Performance Monitoring](/docs/apm/) for service maps, SLOs, and the rest of the APM workflow.
![APM Services view showing top services and dependency paths by fault rate, SLO health summary, and a service catalog with latency, throughput, and failure rate per service.](./images/astronomy-shop-apm-services.png)
### 2. Application performance — Services
In OpenSearch Dashboards, go to **Observability** > **Application Monitoring** > **Services** to see the trace-derived service catalog: P50/P90/P99 latency, throughput, and failure rate per service, top services and dependency paths by fault rate, and SLO health. From any row, jump to that service's spans, logs, or service map.
![APM Services view showing top services and dependency paths by fault rate, SLO health summary, and a service catalog with latency, throughput, and failure rate per service.](./images/astronomy-shop-apm-services.png)
See [Services](/docs/apm/services/) for details.
### 3. Application performance — Application Map
Open **Observability** > **Application Monitoring** > **Application Map** for a live topology of the Astronomy Shop. Each node is a service and each edge a dependency; color reflects fault or error rate, so a failing service stands out immediately. Group nodes by `telemetry.sdk.language` to see the demo's polyglot services at a glance, and click any node for a health and metrics side panel.
![APM Application Map showing the Astronomy Shop service topology, with nodes colored by fault rate and edges representing service dependencies.](./images/astronomy-shop-service-map.png)
See [Application Map](/docs/apm/service-map/) for details.
### 4. Logs
Open the **Logs** page to query the demo's structured logs with Piped Processing Language (PPL). Filter by service, severity, or trace ID, then aggregate results into a visualization. For example, break down error logs by service to find the noisiest component.
![Logs page in OpenSearch Dashboards showing Astronomy Shop log records queried with PPL, filtered by service and severity.](./images/astronomy-shop-logs.png)
See [Discover Logs](/docs/investigate/discover-logs/) for the full PPL workflow.
### 5. Traces — investigating errors
Open the **Traces** page to explore distributed traces. To generate a clear failure signal, use the [feature flag UI](http://localhost:8080/feature) to enable a fault scenario (for example, `paymentFailure` or `cartFailure`), wait a minute for traffic to hit it, then filter the trace table for errored spans. Select a span's timestamp to open the **Trace Details** flyout, walk the span waterfall to the failing service, and jump to the related logs from the same flyout.
![Traces page showing an errored distributed trace for the Astronomy Shop, with the Trace Details flyout open on the failing span.](./images/astronomy-shop-traces.png)
See [Discover Traces](/docs/investigate/discover-traces/) for span details, the trace detail page, and related-logs correlation.
### 6. Metrics
Open the **Metrics** page to query the demo's Prometheus metrics with PromQL. Use **Explore** mode to browse and discover metric names by service, then switch to **Query** mode to author expressions — for example, per-service request rate with `sum by (service_name) (rate(http_server_request_duration_seconds_count[5m]))`, or P99 latency with `histogram_quantile(0.99, sum by (service_name, le) (rate(http_server_request_duration_seconds_bucket[5m])))`. Metric names depend on each service's instrumentation, so use **Explore** mode to confirm what's present in your deployment before querying.
![Metrics page in Query mode showing a PromQL expression and the resulting per-service request-rate visualization for the Astronomy Shop.](./images/astronomy-shop-metrics.png)
See [Discover Metrics](/docs/investigate/discover-metrics/) for Explore and Query modes and the PromQL builder.

kylehounslow and others added 2 commits August 19, 2026 17:02
…el-demo.mdx

Co-authored-by: Shenoy Pratik <sgguruda@amazon.com>
Signed-off-by: Kyle Hounslow <7102778+kylehounslow@users.noreply.github.com>
…el-demo.mdx

Co-authored-by: Shenoy Pratik <sgguruda@amazon.com>
Signed-off-by: Kyle Hounslow <7102778+kylehounslow@users.noreply.github.com>
@kylehounslow

Copy link
Copy Markdown
Collaborator Author
  1. PromQL metric names — the queries use http_server_request_duration_seconds_*, which I could not verify against a live deployment; the exact OTLP→Prometheus names depend on each service's instrumentation. Please confirm from Explore mode. Fenced versions if you'd rather use promql code blocks in the file:

You can use live playground to verify against live deployment: https://observability.playground.opensearch.org/w/JvWKe1/app/explore/metrics/#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))&_a=(legacy:(columns:!(_source),interval:auto,isDirty:!f,sort:!()),tab:(logs:(),patterns:(usingRegexPatterns:!f)),ui:(activeTabId:logs,metricsPageMode:explore,showHistogram:!t))&_q=(dataset:(dataSource:(),id:ObservabilityStack_Prometheus,language:PROMQL,signalType:metrics,timeFieldName:Time,title:ObservabilityStack_Prometheus,type:PROMETHEUS),language:PROMQL,query:'')

The section-numbering suggestion only landed on section 1 (the six-part
restructure it belonged to was not applied), leaving an orphaned '1.' with
no siblings. Drop the prefix; numbered showcase to follow up.

Signed-off-by: Kyle Hounslow <kylhouns@amazon.com>
@kylehounslow
kylehounslow requested a review from ps48 August 20, 2026 00:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants