zoukankan      html  css  js  c++  java
  • Orleans[NET Core 3.1] 学习笔记(四)( 3 )监控Orleans Silo的方式 OrleansDashboard

    简介

    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的方式

    下一节

  • 相关阅读:
    驱动开发环境安装
    FireMonkey下的异形窗体拖动(句柄转换)
    Microsoft Win32 Programmer's Reference.chm
    Qt 访问网络的 HttpClient(封装QNetworkAccessManager,且有服务端)
    JBPM4 安装和配置
    DDD:谈谈数据模型、领域模型、视图模型和命令模型
    多个文件目录下Makefile的写法
    .NET程序集1
    Ajax初步理解
    Kemaswill 机器学习 数据挖掘 推荐系统 Ranking SVM 简介
  • 原文地址:https://www.cnblogs.com/amber-L/p/12205865.html
Copyright © 2011-2022 走看看