简介Orleans用起来的确很爽,更爽的是咱们有能监控它的工具。 OrleansDashboard 这个工具是一个可视化的Silo监控工具,Silo和Grain的活跃状态一目了然,各个接口的响应速度也可以很清晰的统计到。 安装使用NuGet引用 OrleansDashboard 然后修改 SiloHostBuilder 的配置,添加Dashboard: new SiloHostBuilder()
.UseDashboard(options => { })
.Build();
启动Silo,然后在浏览器中打开以下URL:http://localhost:8080 请注意,Dashboard会注册其服务和Grain, ConfigureApplicationParts 从而禁用在Orleans自动发现Grain的功能。要自动发现原始项目的Grain,请将配置更改为: new SiloHostBuilder()
.ConfigureApplicationParts(parts => parts.AddFromApplicationBaseDirectory())
.UseDashboard(options => { })
.Build();
配置DashboardDashboard支持以下配置属性: Username :设置用于访问Dashboard的用户名(基本身份验证)。
Password :设置用于访问Dashboard的密码(基本身份验证)。
Host :将Web服务器绑定到的主机名(默认为*)。
Port :设置Dashboard可视化页面访问的端口(默认为8080)。
HostSelf :将Dashboard设置为托管自己的http服务器(默认为true)。
CounterUpdateIntervalMs :采样计数器之间的更新间隔(以毫秒为单位)(默认为1000)。
new SiloHostBuilder()
.UseDashboard(options => {
options.Username = "USERNAME";
options.Password = "PASSWORD";
options.Host = "*";
options.Port = 8080;
options.HostSelf = true;
options.CounterUpdateIntervalMs = 1000;
})
.Build();
我还注意到官网上有这么一句话,如果遇到性能上的坑,可以尝试一下: 在使用仪表板时如果注意到性能下降。建议您尝试增大CounterUpdateIntervalMS到10000
使用Dashboard咱们还是使用 上一节 的例子 修改 Silo_ConsoleApp 项目,使用NuGet引用 OrleansDashboard (3.0.8) 然后修改 Program 中 SiloHostBuilder 的配置,添加Dashboard: [...]
.UseDashboard(options => {
options.Username = "admin";
options.Password = "123";
options.Host = "*";
options.Port = 8080;
options.HostSelf = true;
options.CounterUpdateIntervalMs = 1000;
})//注册Dashboard,具体信息见:https://github.com/OrleansContrib/OrleansDashboard
[...]
启动 Silo_ConsoleApp ,然后我们打开 http://localhost:8080 ,输入咱们配置的账号密码后可以看到如下界面: 
咱们再按照相同的步骤让张三李四王二麻去教室报名,再回头看看Dashboard Silo启动了一个: 
Grain激活的情况: 
Student 被激活和调用的情况:

舒坦,妈妈再也不用担心我搞不清Orleans的运行情况啦 Dashboard监控Silo寄宿主机的CPU和内存指标Dashboard给我们提供了监控Silo寄宿主机的CPU和内存指标功能,但是需要另外配置 监控windows监控windows需要引用包 Microsoft.Orleans.OrleansTelemetryConsumers.Counters 然后修改 SiloHostBuilder 的配置,添加Dashboard: new SiloHostBuilder()
.UseDashboard(options => { })
.UsePerfCounterEnvironmentStatistics()//添加主机CPU和内存监控
.Build();
修改并启动 Silo_ConsoleApp 项目: 
这里我遇到一个问题,只能看到CPU,看不到内存,一直也没找到相关的文档和解决方案,百思不得其解,如果有幸有大佬看到这篇文章,还请指点迷津 监控Linux监控Linux需要添加库 Microsoft.Orleans.OrleansTelemetryConsumers.Linux 然后使用: new SiloHostBuilder()
.UseDashboard(options => { })
.UseLinuxEnvironmentStatistics()
.Build();
关于Linux的,我还没测试,等以后有空了再来补上
|