欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Orleans[NET Core 3.1] 学习笔记(四)( 3 )监控Orleans Silo的方式 OrleansDashboard

程序员文章站 2022-06-22 12:13:08
简介 Orleans用起来的确很爽,更爽的是咱们有能监控它的工具。 " OrleansDashboard " 这个工具是一个可视化的Silo监控工具,Silo和Grain的活跃状态一目了然,各个接口的响应速度也可以很清晰的统计到。 安装 使用NuGet引用 然后修改 的配置,添加Dashboard: ......

简介

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 ,输入咱们配置的账号密码后可以看到如下界面:

Orleans[NET Core 3.1] 学习笔记(四)( 3 )监控Orleans Silo的方式 OrleansDashboard

咱们再按照相同的步骤让张三李四王二麻去教室报名,再回头看看dashboard

silo启动了一个:

Orleans[NET Core 3.1] 学习笔记(四)( 3 )监控Orleans Silo的方式 OrleansDashboard

grain激活的情况:

Orleans[NET Core 3.1] 学习笔记(四)( 3 )监控Orleans Silo的方式 OrleansDashboard

student 被激活和调用的情况:

Orleans[NET Core 3.1] 学习笔记(四)( 3 )监控Orleans Silo的方式 OrleansDashboard

舒坦,妈妈再也不用担心我搞不清orleans的运行情况啦

dashboard监控silo寄宿主机的cpu和内存指标

dashboard给我们提供了监控silo寄宿主机的cpu和内存指标功能,但是需要另外配置

监控windows

监控windows需要引用包 microsoft.orleans.orleanstelemetryconsumers.counters

然后修改 silohostbuilder 的配置,添加dashboard:

new silohostbuilder()
  .usedashboard(options => { })
  .useperfcounterenvironmentstatistics()//添加主机cpu和内存监控
  .build();

修改并启动 silo_consoleapp 项目:

Orleans[NET Core 3.1] 学习笔记(四)( 3 )监控Orleans Silo的方式 OrleansDashboard

这里我遇到一个问题,只能看到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的方式

下一节