Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dasbor Orleans adalah alat pemantauan berbasis web terintegrasi yang menyediakan visibilitas real-time ke dalam kluster Orleans Anda. Ini memungkinkan Anda untuk memantau kesehatan silo, aktivasi biji-bijian, panggilan metode, pengingat, dan metrik sistem tanpa memerlukan infrastruktur pemantauan eksternal.
Untuk Orleans 10.0, gunakan paket dasbor resmi: Microsoft.Orleans.Dashboard dan Microsoft.Orleans.Dashboard.Abstractions.
Penting
Fitur ini tersedia dimulai dengan Orleans 10.0. Saat ini dalam pratinjau dan dapat berubah dalam rilis mendatang.
Features
Orleans Dasbor menyediakan kemampuan berikut:
- Gambaran umum kluster: Lihat semua silo di kluster dengan status, waktu aktif, dan pemanfaatan sumber dayanya.
- Pemantauan biji-bijian: Melacak aktivasi biji-bijian, panggilan metode, dan metrik performa per jenis butir.
- Profil metode: Menganalisis frekuensi panggilan metode secara rinci, ketertundaan, dan tingkat kesalahan.
- Manajemen pengingat: Telusuri dan pantau semua pengingat terdaftar di seluruh kluster.
- Streaming log langsung: Menampilkan keluaran log secara real-time dari cluster.
- Detail silo: Periksa properti silo individu, penghitung, dan distribusi biji-bijian.
- Inspeksi status biji-bijian: Lihat status instans butir individual saat ini.
Installation
Dasbor Orleans didistribusikan dalam dua paket NuGet.
| Package | Description |
|---|---|
| Microsoft.Orleans. Dashboard | Paket dashboard utama dengan endpoint UI dan API |
| Microsoft.Orleans. Dashboard.Abstractions | Abstraksi untuk integrasi papan kendali (misalnya, NoProfilingAttribute) |
Penyiapan Awal
Untuk menambahkan Orleans Dasbor ke aplikasi Anda, hubungi AddDashboard() penyusun silo Anda dan MapOrleansDashboard() untuk memetakan titik akhir dasbor:
using Orleans.Dashboard;
var builder = WebApplication.CreateBuilder(args);
// Configure Orleans with the dashboard
builder.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();
siloBuilder.AddMemoryGrainStorageAsDefault();
// Add the dashboard services
siloBuilder.AddDashboard();
});
var app = builder.Build();
// Map dashboard endpoints at the root path
app.MapOrleansDashboard();
app.Run();
Setelah memulai aplikasi Anda, navigasikan ke http://localhost:5000/ (atau URL anda yang dikonfigurasi) untuk mengakses dasbor.
Awalan rute kustom
Anda dapat menghosting dasbor di jalur kustom dengan menentukan awalan rute:
// Map dashboard endpoints at /dashboard
app.MapOrleansDashboard(routePrefix: "/dashboard");
Dengan konfigurasi ini, akses dasbor di http://localhost:5000/dashboard/.
Konfigurasi
Pilihan Dasbor
Konfigurasikan perilaku dasbor menggunakan DashboardOptions:
siloBuilder.AddDashboard(options =>
{
// Disable the live log streaming endpoint
options.HideTrace = true;
// Set the counter update interval (minimum 1000ms)
options.CounterUpdateIntervalMs = 2000;
// Set the history buffer length for metrics
options.HistoryLength = 200;
});
| Option | Tipe | Bawaan | Description |
|---|---|---|---|
HideTrace |
bool |
false |
Saat true, menonaktifkan titik akhir streaming log langsung. |
CounterUpdateIntervalMs |
int |
1000 |
Milidetik antara sampel penghitung. Harus >= 1000. |
HistoryLength |
int |
100 |
Jumlah poin data historis yang akan dipertahankan untuk metrik. |
Opsi profiler butir
Profiler butir mengumpulkan data performa tingkat metode. Konfigurasikan menggunakan GrainProfilerOptions:
builder.Services.Configure<GrainProfilerOptions>(options =>
{
// Always collect profiling data, even when dashboard is inactive
options.TraceAlways = true;
// Time after which profiling stops if dashboard is inactive
options.DeactivationTime = TimeSpan.FromMinutes(5);
});
| Option | Tipe | Bawaan | Description |
|---|---|---|---|
TraceAlways |
bool |
false |
Ketika true, data pemprofilan terus dikumpulkan bahkan ketika dashboard tidak sedang diakses. |
DeactivationTime |
TimeSpan | 1 menit | Jangka waktu tidak aktif setelah pemantauan profil secara otomatis dihentikan. Hanya berlaku ketika TraceAlways adalah false. |
Mengecualikan biji-bijian dari pembuatan profil
[NoProfiling] Gunakan atribut untuk mengecualikan biji-bijian tertentu dari pembuatan profil performa:
using Orleans.Dashboard;
[NoProfiling]
public class HighFrequencyGrain : Grain, IHighFrequencyGrain
{
// This grain won't be included in profiling data
}
Pola penyebaran
Dihosting bersama dengan silo (disarankan)
Pola penyebaran paling sederhana adalah menghosting dasbor langsung pada silo Anda Orleans. Ini adalah pendekatan yang direkomendasikan untuk sebagian besar skenario:
using Orleans.Dashboard;
var builder = WebApplication.CreateBuilder(args);
builder.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();
siloBuilder.UseInMemoryReminderService();
siloBuilder.AddMemoryGrainStorageAsDefault();
siloBuilder.AddDashboard();
});
var app = builder.Build();
app.MapOrleansDashboard();
app.Run();
Host dasbor yang terpisah
Untuk skenario di mana Anda ingin menjalankan dasbor secara terpisah dari silo Anda (misalnya, untuk menyediakan titik akhir pemantauan khusus), Anda dapat menghosting dasbor pada Orleans klien:
using Orleans.Configuration;
using Orleans.Dashboard;
using System.Net;
// Start the silo host
var siloHostBuilder = Host.CreateApplicationBuilder(args);
siloHostBuilder.UseOrleans(builder =>
{
builder.UseDevelopmentClustering(options =>
options.PrimarySiloEndpoint = new IPEndPoint(IPAddress.Loopback, 11111));
builder.UseInMemoryReminderService();
builder.AddMemoryGrainStorageAsDefault();
builder.ConfigureEndpoints(IPAddress.Loopback, 11111, 30000);
// Dashboard must also be added to silos
builder.AddDashboard();
});
using var siloHost = siloHostBuilder.Build();
await siloHost.StartAsync();
// Create a separate web application for the dashboard
var dashboardBuilder = WebApplication.CreateBuilder(args);
// Configure Orleans client
dashboardBuilder.UseOrleansClient(clientBuilder =>
{
clientBuilder.UseStaticClustering(options =>
options.Gateways.Add(new IPEndPoint(IPAddress.Loopback, 30000).ToGatewayUri()));
// Add dashboard services to the client
clientBuilder.AddDashboard();
});
var dashboardApp = dashboardBuilder.Build();
// Map dashboard endpoints on the client
dashboardApp.MapOrleansDashboard();
await dashboardApp.RunAsync();
await siloHost.StopAsync();
Penting
Saat menggunakan host dasbor terpisah, Anda harus tetap memanggil AddDashboard() pada pembangun silo. Silo memerlukan layanan dasbor untuk mengumpulkan dan menyediakan data metrik.
Authorization
Titik akhir dasbor mendukung otorisasi ASP.NET Core.
RequireAuthorization() Gunakan metode ekstensi untuk melindungi akses:
// Require authentication for dashboard access
app.MapOrleansDashboard()
.RequireAuthorization();
Anda juga dapat menerapkan kebijakan otorisasi tertentu:
// Configure authorization
builder.Services.AddAuthorization(options =>
{
options.AddPolicy("DashboardAccess", policy =>
policy.RequireRole("Admin", "Operator"));
});
builder.Services.AddAuthentication(/* your auth configuration */);
var app = builder.Build();
app.UseAuthentication();
app.UseAuthorization();
// Apply the policy to dashboard endpoints
app.MapOrleansDashboard()
.RequireAuthorization("DashboardAccess");
Troubleshooting
Dasbor memperlihatkan pesan "konektivitas hilang"
Kesalahan ini terjadi ketika dasbor tidak dapat berkomunikasi dengan Orleans kluster. Penyebab umum:
- Silo belum berjalan: Pastikan silo Anda Orleans berjalan sebelum mengakses dashboard.
- Masalah jaringan: Verifikasi konektivitas jaringan antara host dasbor dan silo.
- Kesalahan konfigurasi kluster: Periksa apakah pengklusteran dikonfigurasi dengan benar.
Data pembuatan profil tidak muncul
Jika data pembuatan profil metode biji-bijian kosong:
- Melakukan panggilan grain: Profiling hanya menampilkan data setelah metode grain dipanggil.
-
Centang
TraceAlways: Secara default, pembuatan profil berhenti setelah 1 menit tidak aktif dasbor. AturTraceAlways = trueuntuk pembuatan profil berkelanjutan. -
Periksa
[NoProfiling]: Pastikan butir tidak memiliki atribut[NoProfiling].
Titik akhir pelacakan langsung dinonaktifkan
Jika titik akhir /Trace mengembalikan 403 Forbidden:
- Periksa apakah
DashboardOptions.HideTracetidak diatur ketrue.
Lihat juga
Orleans Dasbor adalah alat pemantauan bawaan yang diperkenalkan dalam Orleans 10.0. Untuk Orleans 9.0, 8.0, dan 7.0, gunakan paket dasbor komunitas tidak resmi:
- OrleansDashboard (komunitas): Paket dasbor yang dikelola komunitas untuk Orleans versi yang lebih lama dari 10.0.
- Integrasi OpenTelemetry: Fitur pengamatan bawaan tersedia di Orleans 7.0 dan yang lebih baru. Lihat Pengamatan di Orleans.
Orleans Dasbor adalah alat pemantauan bawaan yang diperkenalkan dalam Orleans 10.0. Untuk Orleans 3.x, gunakan paket dasbor komunitas tidak resmi:
- OrleansDashboard (komunitas): Paket dasbor yang dikelola komunitas untuk Orleans versi yang lebih lama dari 10.0.