Skip to content

Add @osd/apm-topology package for APM service map, trace map and GenAI agent trace visualization#11394

Merged
ps48 merged 18 commits into
opensearch-project:mainfrom
ps48:celestial-package
Mar 4, 2026
Merged

Add @osd/apm-topology package for APM service map, trace map and GenAI agent trace visualization#11394
ps48 merged 18 commits into
opensearch-project:mainfrom
ps48:celestial-package

Conversation

@ps48

@ps48 ps48 commented Feb 26, 2026

Copy link
Copy Markdown
Member

Description

  • Introduces the @osd/apm-topology package — a React component library for rendering interactive APM service topology maps and GenAI agent trace visualizations
  • Built on ReactFlow (@xyflow/react) with automatic Dagre-based hierarchical layout, the library provides 4 node types (CelestialNode, ServiceCardNode, ServiceCircleNode, AgentCardNode), styled edges with flow/pulse animations, health donuts, breadcrumb navigation, minimap, legend, and dark mode support
  • Ships 7 GenAI agent node kinds (Agent, LLM, Tool, Retrieval, Embeddings, Content, Other) with provider icon resolution for OpenAI, Anthropic, AWS Bedrock, Azure, Google Vertex AI, Cohere, Mistral, and Meta
  • Includes an example plugin (apm_topology_example) demonstrating all node types, edge styles, layout directions, and interactive features
  • Comprehensive README with live screenshots, full API reference, architecture diagrams, usage patterns, and an AI agent reference section

Issues Resolved

#9898

Screenshot

apm-topology.mov

Testing the changes

  • yarn start --run-examples → navigate to APM Topology Example app → verify all 4 tabs render correctly (APM Cards, APM Circles, Agent Cards, Features)
  • Verify node click, edge click, hover glow, and selection glow interactions
  • Toggle minimap, SLI/SLO, layout direction (LR/TB), and legend on/off
  • Verify dark mode rendering by switching OSD theme

Changelog

  • feat: Add @osd/apm-topology package for APM service map, trace map and GenAI agent trace visualization

Check List

  • All tests pass
    • yarn test:jest
    • yarn test:jest_integration
  • New functionality includes testing.
  • New functionality has been documented.
  • Update CHANGELOG.md
  • Commits are signed per the DCO using --signoff

ps48 added 4 commits February 25, 2026 23:48
Signed-off-by: ps48 <pshenoy36@gmail.com>
Signed-off-by: ps48 <pshenoy36@gmail.com>
Signed-off-by: ps48 <pshenoy36@gmail.com>
Signed-off-by: ps48 <pshenoy36@gmail.com>
joshuali925
joshuali925 previously approved these changes Mar 2, 2026
ps48 added 5 commits March 2, 2026 17:04
Signed-off-by: ps48 <pshenoy36@gmail.com>
Signed-off-by: ps48 <pshenoy36@gmail.com>
Signed-off-by: ps48 <pshenoy36@gmail.com>
Signed-off-by: ps48 <pshenoy36@gmail.com>
Signed-off-by: ps48 <pshenoy36@gmail.com>
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
@opensearch-project opensearch-project deleted a comment from github-actions Bot Mar 3, 2026
Signed-off-by: ps48 <pshenoy36@gmail.com>
@github-actions

github-actions Bot commented Mar 4, 2026

Copy link
Copy Markdown
Contributor

PR Code Analyzer ❗

AI-powered 'Code-Diff-Analyzer' found issues on commit 332053e.

'Diff too large, requires skip by maintainers after manual review'


Pull Requests Author(s): Please update your Pull Request according to the report above.

Repository Maintainer(s): You can bypass diff analyzer by adding label skip-diff-analyzer after reviewing the changes carefully, then re-run failed actions. To re-enable the analyzer, remove the label, then re-run all actions.


⚠️ Note: The Code-Diff-Analyzer helps protect against potentially harmful code patterns. Please ensure you have thoroughly reviewed the changes beforehand.

Thanks.

Signed-off-by: ps48 <pshenoy36@gmail.com>
@github-actions

github-actions Bot commented Mar 4, 2026

Copy link
Copy Markdown
Contributor

PR Code Analyzer ❗

AI-powered 'Code-Diff-Analyzer' found issues on commit 77e34eb.

'Diff too large, requires skip by maintainers after manual review'


Pull Requests Author(s): Please update your Pull Request according to the report above.

Repository Maintainer(s): You can bypass diff analyzer by adding label skip-diff-analyzer after reviewing the changes carefully, then re-run failed actions. To re-enable the analyzer, remove the label, then re-run all actions.


⚠️ Note: The Code-Diff-Analyzer helps protect against potentially harmful code patterns. Please ensure you have thoroughly reviewed the changes beforehand.

Thanks.

@ps48 ps48 merged commit b4e07aa into opensearch-project:main Mar 4, 2026
105 of 109 checks passed
mengweieric pushed a commit to mengweieric/OpenSearch-Dashboards that referenced this pull request Mar 4, 2026
…I agent trace visualization (opensearch-project#11394)

* Add support for apm topology map

Signed-off-by: ps48 <pshenoy36@gmail.com>

* Add content agent kind, update colors

Signed-off-by: ps48 <pshenoy36@gmail.com>

* update file names to snake case

Signed-off-by: ps48 <pshenoy36@gmail.com>

* Add support for node, edge click types and custom colors

Signed-off-by: ps48 <pshenoy36@gmail.com>

* Changeset file for PR opensearch-project#11394 created/updated

* update transformIgnorePatterns in jest config

Signed-off-by: ps48 <pshenoy36@gmail.com>

* address comments, remove older pascal case files

Signed-off-by: ps48 <pshenoy36@gmail.com>

* remove the pascal files from git index

Signed-off-by: ps48 <pshenoy36@gmail.com>

* ignore generated css

Signed-off-by: ps48 <pshenoy36@gmail.com>

* Fix: Windows CI bootstrap failure caused by rm command

Signed-off-by: ps48 <pshenoy36@gmail.com>

* add osd/i18n optional dependency to pick the language

Signed-off-by: ps48 <pshenoy36@gmail.com>

* update package.json

Signed-off-by: ps48 <pshenoy36@gmail.com>

* update package.json

Signed-off-by: ps48 <pshenoy36@gmail.com>

* remove del cli

Signed-off-by: ps48 <pshenoy36@gmail.com>

* use rimraf

Signed-off-by: ps48 <pshenoy36@gmail.com>

* use rimraf in yarn.lock

Signed-off-by: ps48 <pshenoy36@gmail.com>

* update yarn.lock to use symlink

Signed-off-by: ps48 <pshenoy36@gmail.com>

---------

Signed-off-by: ps48 <pshenoy36@gmail.com>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
markdboyd pushed a commit to cloud-gov/OpenSearch-Dashboards that referenced this pull request Mar 9, 2026
…I agent trace visualization (opensearch-project#11394)

* Add support for apm topology map

Signed-off-by: ps48 <pshenoy36@gmail.com>

* Add content agent kind, update colors

Signed-off-by: ps48 <pshenoy36@gmail.com>

* update file names to snake case

Signed-off-by: ps48 <pshenoy36@gmail.com>

* Add support for node, edge click types and custom colors

Signed-off-by: ps48 <pshenoy36@gmail.com>

* Changeset file for PR opensearch-project#11394 created/updated

* update transformIgnorePatterns in jest config

Signed-off-by: ps48 <pshenoy36@gmail.com>

* address comments, remove older pascal case files

Signed-off-by: ps48 <pshenoy36@gmail.com>

* remove the pascal files from git index

Signed-off-by: ps48 <pshenoy36@gmail.com>

* ignore generated css

Signed-off-by: ps48 <pshenoy36@gmail.com>

* Fix: Windows CI bootstrap failure caused by rm command

Signed-off-by: ps48 <pshenoy36@gmail.com>

* add osd/i18n optional dependency to pick the language

Signed-off-by: ps48 <pshenoy36@gmail.com>

* update package.json

Signed-off-by: ps48 <pshenoy36@gmail.com>

* update package.json

Signed-off-by: ps48 <pshenoy36@gmail.com>

* remove del cli

Signed-off-by: ps48 <pshenoy36@gmail.com>

* use rimraf

Signed-off-by: ps48 <pshenoy36@gmail.com>

* use rimraf in yarn.lock

Signed-off-by: ps48 <pshenoy36@gmail.com>

* update yarn.lock to use symlink

Signed-off-by: ps48 <pshenoy36@gmail.com>

---------

Signed-off-by: ps48 <pshenoy36@gmail.com>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
Signed-off-by: Mark Boyd <mark.boyd@gsa.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants