簡介 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)
然後修改 Program
中 SiloHostBuilder
的配置,添加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 看看
本文代碼範例
便捷路由
目錄 : Orleans[NET Core 3.1] 學習筆記(一).NET環境下的分散式應用程式
上一節 : Orleans[NET Core 3.1] 學習筆記(四)( 2 )獲取Grain的方式
下一節 :