简介

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();

配置Dashboard

Dashboard支持以下配置属性:

  • 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)

然后修改 ProgramSiloHostBuilder 的配置,添加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的,我还没测试,等以后有空了再来补上

Dashboard API

Dashboard提供了一些可以调用的HTTP API,感兴趣的可以去 OrleansDashboard 看看

本文代码范例

GitHub仓库

便捷路由

目录Orleans[NET Core 3.1] 学习笔记(一).NET环境下的分布式应用程序

上一节Orleans[NET Core 3.1] 学习笔记(四)( 2 )获取Grain的方式

下一节

最新文章

  1. 运用TensorFlow处理简单的NLP问题
  2. 【小白的CFD之旅】11 敲门实例【续】
  3. WEB安全性测试
  4. 滑动返回类库SwipeBackLayout的使用问题,解决返回黑屏,和看到桌面
  5. css 兼容
  6. Ubuntu14.04LTS安装记录(办公室联想台式机)
  7. synthesize(合成) keyword in IOS
  8. shutdown,init,halt,poweroff,reboot的区别和联系, pkill -kill -t tty7注销
  9. .NET设计模式(2):单件模式(Singleton Pattern)
  10. PHP安全编程:HTTP请求欺骗(转)
  11. Probability theory
  12. xBIM 多个IFC文件合并
  13. [HNOI 2014]江南乐
  14. Gitlab管理网页老是500错误?增加物理内存,增加cpu吧
  15. Linux命令_sed
  16. 用JS制作《飞机大作战》游戏_第2讲(四大界面之间的跳转与玩家飞机的移动)-陈远波
  17. OA系统权限管理设计方案【转】
  18. jmm 和线程安全
  19. 3.纯 CSS 创作一个容器厚条纹边框特效
  20. Python错误和异常概念(总)

热门文章

  1. robotframework,移动端(小程序)自动化,通过屏幕坐标点击对应按钮的方法
  2. MAVEN报错Cannot access alimaven / idea data注解不好使
  3. 记一次阿里云LVM扩容与 LVM 相关知识学习
  4. H5新增特性
  5. Spring Cache 抽象(缓存抽象) Redis 缓存
  6. 最大似然估计、n阶矩、协方差(矩阵)、(多元)高斯分布 学习摘要
  7. Magicodes.IE在Docker中使用
  8. 文件(file 类)
  9. js变量和函数提升
  10. CVE-2019-0199:Apache Tomcat DDOS