docs: add OpenTelemetry Demo quickstart page - #432
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 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. 🚀 New features to boost your workflow:
|
baba6e6 to
21f9f3c
Compare
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>
21f9f3c to
02041e3
Compare
ps48
left a comment
There was a problem hiding this comment.
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:
- 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 usepromqlcode 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])))
- Feature-flag scenario names —
paymentFailure/cartFailureare the standard flags, but the set drifts across demo releases; confirm the exact names atlocalhost:8080/featureforDEMO_VERSION=2.2.0.
| ### 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. | ||
|
|
||
|  |
There was a problem hiding this comment.
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.
| ### 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. | |
|  | |
| ### 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. | |
|  | |
| 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. | |
|  | |
| 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. | |
|  | |
| 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. | |
|  | |
| 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. | |
|  | |
| See [Discover Metrics](/docs/investigate/discover-metrics/) for Explore and Query modes and the PromQL builder. |
…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>
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>
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_VERSIONvariable in.envrather 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.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.