Orleans解决并发之痛(六):Dashboard

作者: BeckJin | 来源:发表于2017-11-03 20:55 被阅读412次

    Orleans Dashboard 是来自 OrleansContrib 提供的一个Orleans 报表工具。通过 Orleans Dashboard 我们能很方便的监控 Silos 状态、Grains 分布情况、异常率、吞吐量、平均响应时间等,这样我们就能了解集群的运行平稳性,也能排除错误和性能瓶颈。

    初始项目的代码根据之前的案例 Demo-OrleansCluster 稍微做了调整,Orleans Dashboard 的使用方法还是比较简单的。

    1. Nuget安装OrleansDashboard:

      Install-Package OrleansDashboard
      
    2. 修改配置文件 OrleansConfiguration.xml,Globals节点下添加BootstrapProviders节点:

      <Globals>
           ......
           <BootstrapProviders>
               <Provider Type="OrleansDashboard.Dashboard" Name="Dashboard" />
           </BootstrapProviders>
       </Globals>
      

    完成以上工作就可以启动Silo了。

    Silo启动成功后,Orleans Dashboard 默认访问地址是 localhost:8080。如果你想修改端口或者添加安全验证,可以根据配置参数来调整 Configuring the Dashboard

    注意:启动过程中可能会出现下面这个错误:

    System.AggregateException: 发生一个或多个错误。 ---> System.DllNotFoundException: 无法加载 DLL“libuv”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

    在 OrleansDashboard 的 issues下已有人提到,可以关注一下 :https://github.com/OrleansContrib/OrleansDashboard/issues/62

    我暂时采用的方案是: 将 \packages\Libuv.1.10.0\runtimes\win-x86\native\libuv.dll) 复制到 bin\Debug\ 下,重新启动就可以跑起来了。

    Overview

    在 Orleans Dashboard 概述中可以了解到当前集群激活的Grains数量、Silos数量、错误率、吞吐量、平均响应时间及整体的性能情况。

    Overview

    Grains

    Grains模块统计出当前所有激活的Grains以及Grains的数量变量趋势,我们可以通过点击每个Grain详情查看更详细信息,详情下包括Grain下的所有方法的调用情况及当前Grain归属的Silo:

    Grain

    Silos

    Silos模块概述和Grains类似,报表会呈现当前集群Silo的健康状态,通过Silo的详情我们可以了解到:

    1. 当前服务器的CPU、内存、Grain是使用情况;
    2. Silo性能分析;
    3. 消息的发送和接收状况和Silo的一些属性;
    4. 分布着哪些Grains;
    Silo.png

    本文是使用一个Silo实例来实现,如果是集群,可以参考 Demo-OrleansCluster 。Silo的配置文件内加上OrleansDashboard的配置即可。如果是同一台机器,注意端口号分别指定一下。

    在Client端添加测试代码,直接粗暴点来个死循环:

    var random = new Random();
    while (true)
    {
        var grainId = random.Next();
        var grain = GrainClient.GrainFactory.GetGrain<IPersonGrain>("beck" + grainId);
        grain.SayHelloAsync().Wait();
    }
    

    测试结果:

    PersonGrain
    Silo

    参考链接:

    相关文章

      网友评论

        本文标题:Orleans解决并发之痛(六):Dashboard

        本文链接:https://www.haomeiwen.com/subject/mwgukxtx.html