Skip to content

benjaminpetit/OrleansDashboard

 
 

Repository files navigation

Orleans Dashboard

Build status

This project is alpha quality, and is published to collect community feedback.

An admin dashboard for Microsoft Orleans.

Installation

Using the Package Manager Console:

PM> Install-Package OrleansDashboard

Then add this bootstrap provider to your Orleans silo configuration:

<?xml version="1.0" encoding="utf-8"?>
<OrleansConfiguration xmlns="urn:orleans">
  <Globals>
    <BootstrapProviders>
      <Provider Type="OrleansDashboard.Dashboard" Name="Dashboard" />
    </BootstrapProviders>
    ...

...or use programmatic configuration:

var siloHost = new SiloHost(...);
siloHost.InitializeOrleansSilo();
siloHost.Config.Globals.RegisterDashboard(); // port, username and password can also be supplied
siloHost.StartOrleansSilo();

Start the silo, and open this url in your browser: http://localhost:8080

Configuring the Dashboard

The dashboard supports the following attributes in the configuration:

  • Port : Set the the number for the dashboard to listen on.
  • Username : Set a username for accessing the dashboard (basic auth).
  • Password : Set a password for accessing the dashboard (basic auth).
<BootstrapProviders>
    <Provider Type="OrleansDashboard.Dashboard" Name="Dashboard" Port="1234" Username="my_username" Password="my_password" />
</BootstrapProviders>

Using the Dashboard

Once your silos are running, you can connect to any of them using your web browser: http://silo-address:8080/

If you've started the dashboard on an alternative port, you'll need to specify that instead.

The dashboard will also relay trace information over http. You can view this in the dashboard, or from the terminal: curl http://silo-address:8080/Trace

Building the UI

The user interface is react.js, using browserify to compose the javascript delivered to the browser. The HTML and JS files are embedded resources within the dashboard DLL.

To build the UI, you must have node.js installed, and browserify:

$ npm install browserify -g

To build the index.min.js file, follow these steps.

$ cd App
$ npm install
$ browserify -t babelify index.jsx --outfile ../OrleansDashboard/index.min.js

Todo

  • Find a workaround to the Windows namespace reservations
  • Consider additional data sources
  • Consider allowing activation / garbage collection from the UI
  • Allow custom counters to be registered?
  • Improve the UI.
  • Consider collecting historical values for more of the counters
  • Consider a simple username/password (basic auth) for authentication

About

📊 An admin dashboard for Microsoft Orleans

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 95.0%
  • C# 4.6%
  • Other 0.4%