Skip to content

Add OrleansDashboard from OrleansContrib#9751

Merged
ReubenBond merged 2 commits intodotnet:mainfrom
ReubenBond:feature/dashboard/1
Nov 12, 2025
Merged

Add OrleansDashboard from OrleansContrib#9751
ReubenBond merged 2 commits intodotnet:mainfrom
ReubenBond:feature/dashboard/1

Conversation

@ReubenBond
Copy link
Copy Markdown
Member

@ReubenBond ReubenBond commented Nov 4, 2025

This PR incorporates the OrleansDashboard project from https://github.com/OrleansContrib/OrleansDashboard, created by @richorama.

As part of the PR, I renamed the package to conform to the norms for dotnet/orleans, which meant renaming the namespace to Orleans.Dashboard, with the resulting package name being Microsoft.Orleans.Dashboard.

My intention is to maintain, modernize, and further integrate and promote the dashboard as a development tool for developers working with Orleans.

For some context, this was initially discussed on Discord (join link):
image

cc @richorama

image

@ReubenBond ReubenBond marked this pull request as draft November 4, 2025 23:16
@richorama
Copy link
Copy Markdown
Contributor

I'm so happy to see this happen :¬)

@JorgeCandeias
Copy link
Copy Markdown
Contributor

Wow this is outstanding.

@ReubenBond ReubenBond marked this pull request as ready for review November 11, 2025 19:40
Copilot AI review requested due to automatic review settings November 11, 2025 19:40
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR integrates the OrleansDashboard project from OrleansContrib into the dotnet/orleans repository. The dashboard is renamed to conform with Orleans naming conventions (Orleans.Dashboard namespace, Microsoft.Orleans.Dashboard package) and includes comprehensive test coverage, benchmark tests, and a modernized frontend built with React and Vite.

Key Changes:

  • Added complete dashboard implementation with real-time monitoring capabilities for grains, silos, and cluster statistics
  • Included unit tests, integration tests, and benchmark tests for dashboard functionality
  • Integrated modern frontend using React, TypeScript, and Vite build system

Reviewed Changes

Copilot reviewed 138 out of 143 changed files in this pull request and generated no comments.

Show a summary per file
File Description
test/Orleans.Dashboard.Tests/Orleans.Dashboard.UnitTests/TypeFormatterTests.cs Unit tests for type name formatting functionality
test/Orleans.Dashboard.Tests/Orleans.Dashboard.UnitTests/TraceHistoryTests.cs Tests for trace history storage and querying
test/Orleans.Dashboard.Tests/Orleans.Dashboard.UnitTests/RingBufferTests.cs Tests for ring buffer data structure
test/Orleans.Dashboard.Tests/Orleans.Dashboard.UnitTests/GrainStateTests.cs Integration tests for grain state retrieval
test/Orleans.Dashboard.Tests/Orleans.Dashboard.TestGrains/*.cs Test grain implementations for dashboard testing
test/Benchmarks/Dashboard/*.cs Performance benchmarks for dashboard operations
src/Orleans.Runtime/Catalog/StatelessWorkerGrainContext.cs Fixed worker deactivation to use proper deactivation pattern
src/Dashboard/Orleans.Dashboard/*.cs Core dashboard implementation files
src/Dashboard/Orleans.Dashboard.App/src/* Frontend React application files
Comments suppressed due to low confidence (4)

src/Dashboard/Orleans.Dashboard.App/src/silos/silo.tsx:1

  • Corrected spelling of 'recieved' to 'received'.
    src/Dashboard/Orleans.Dashboard/Implementation/GrainProfilerFilter.cs:1
  • Empty conditional block should be removed or include a comment explaining why it's intentionally empty.
    src/Dashboard/Orleans.Dashboard/Metrics/History/GrainTraceEntryEqualityComparer.cs:1
  • Incorrect null check: should check obj.Method != null instead of obj.Grain != null on line 58.
    src/Dashboard/Orleans.Dashboard/Metrics/History/GrainTraceEntryEqualityComparer.cs:1
  • Incorrect null check: should check obj.SiloAddress != null instead of obj.Grain != null on line 63.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Copilot reviewed 136 out of 141 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (4)

src/Dashboard/Orleans.Dashboard/Implementation/GrainProfilerFilter.cs:1

  • Empty conditional block should be removed. This appears to be leftover debug or development code that serves no purpose.
    src/Dashboard/Orleans.Dashboard/Metrics/History/GrainTraceEntryEqualityComparer.cs:1
  • The null check is for obj.Grain but the hash calculation uses obj.Method. This should check obj.Method != null instead.
    src/Dashboard/Orleans.Dashboard/Metrics/History/GrainTraceEntryEqualityComparer.cs:1
  • The null check is for obj.Grain but the hash calculation uses obj.SiloAddress. This should check obj.SiloAddress != null instead.
    src/Dashboard/Orleans.Dashboard.App/src/silos/silo.tsx:1
  • Corrected spelling of 'recieved' to 'received'.

@ReubenBond
Copy link
Copy Markdown
Member Author

Any objections to merging?

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Copilot reviewed 136 out of 141 changed files in this pull request and generated 6 comments.

@ReubenBond ReubenBond enabled auto-merge November 12, 2025 22:41
@ReubenBond ReubenBond added this pull request to the merge queue Nov 12, 2025
Merged via the queue into dotnet:main with commit ce4618b Nov 12, 2025
29 checks passed
@ReubenBond ReubenBond deleted the feature/dashboard/1 branch November 12, 2025 23:33
ReubenBond added a commit that referenced this pull request Nov 13, 2025
* Add OrleansDashboard from OrleansContrib

* PR feedback
@github-actions github-actions bot locked and limited conversation to collaborators Dec 13, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants