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

下一節


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM