Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Integrovaný webový monitorovací nástroj Orleans Dashboard poskytuje přehled o vašem Orleans clusteru v reálném čase. Umožňuje monitorovat stav sila, aktivaci zrnitosti, volání metod, připomenutí a systémové metriky bez nutnosti externí monitorovací infrastruktury.
Pro Orleans verzi 10.0 použijte oficiální balíčky řídicích panelů: Microsoft.Orleans.Dashboard a Microsoft.Orleans.Dashboard.Abstractions.
Důležité
Tato funkce je dostupná od Orleans verze 10.0. Je aktuálně ve verzi Preview a může se změnit v budoucích verzích.
Features
Rozhraní Orleans nabízí následující funkce:
- Přehled clusteru: Zobrazte všechna sila v clusteru se stavem, dostupností a využitím prostředků.
- Monitorování zrnin: Sledování aktivací zrnin, volání metod a metrik výkonu pro jednotlivé typy zrnin.
- Profilace metod: Analýza četnosti volání metod, latence a míry chyb.
- Správa připomenutí: Umožňuje procházet a monitorovat všechna registrovaná připomenutí v clusteru.
- Streamování živého protokolu: Umožňuje zobrazit výstup protokolu v reálném čase z clusteru.
- Podrobnosti o silech: Zkontrolujte jednotlivé vlastnosti sila, čítače a rozdělení zrnitosti.
- Kontrola stavu zrnitosti: Umožňuje zobrazit aktuální stav jednotlivých instancí agregace.
Installation
Řídicí panel Orleans se distribuuje ve dvou balíčcích NuGet:
| Package | Description |
|---|---|
| Microsoft.Orleans. Řídicí panel | Hlavní balíček řídicího panelu s uživatelským rozhraním a koncovými body rozhraní API |
| Microsoft.Orleans. Dashboard.Abstractions | Abstrakce pro integraci řídicího panelu (např. NoProfilingAttribute) |
Základní nastavení
Pokud chcete přidat Orleans řídicí panel do aplikace, zavolejte AddDashboard() na vašem silo builderu a použijte MapOrleansDashboard() k namapování koncových bodů řídicího panelu.
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();
Po spuštění aplikace přejděte na http://localhost:5000/ (nebo nakonfigurovanou adresu URL), abyste získali přístup k řídicímu panelu.
Vlastní předpona trasy
Řídicí panel můžete hostovat na vlastní cestě pomocí zadání prefixu trasy.
// Map dashboard endpoints at /dashboard
app.MapOrleansDashboard(routePrefix: "/dashboard");
S touto konfigurací přejděte na řídicí panel na adrese http://localhost:5000/dashboard/.
Konfigurace
Možnosti řídicího panelu
Konfigurace chování řídicího panelu pomocí 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;
});
| Možnost | Typ | Výchozí | Description |
|---|---|---|---|
HideTrace |
bool |
false |
Když true, zakáže koncový bod streamování živého protokolu. |
CounterUpdateIntervalMs |
int |
1000 |
Milisekundy mezi vzorky čítačů Musí být >= 1000. |
HistoryLength |
int |
100 |
Počet historických datových bodů, které se mají udržovat pro metriky |
Možnosti profileru zrnitosti
Tento grain profiler shromažďuje údaje o výkonu na úrovni metody. Nakonfigurujte ho pomocí 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);
});
| Možnost | Typ | Výchozí | Description |
|---|---|---|---|
TraceAlways |
bool |
false |
Pokud truese data profilace průběžně shromažďují i v případě, že řídicí panel není dotazován. |
DeactivationTime |
TimeSpan | 1 minuta | Doba nečinnosti, po které se profilace automaticky zastaví. Platí pouze v případech, kdy TraceAlways je false. |
Vyloučení zrn z profilace
Pomocí atributu [NoProfiling] vyloučíte konkrétní zrnka z profilace výkonu:
using Orleans.Dashboard;
[NoProfiling]
public class HighFrequencyGrain : Grain, IHighFrequencyGrain
{
// This grain won't be included in profiling data
}
Vzory nasazení
Spoluhostování se "silo" (doporučeno)
Nejjednodušším způsobem nasazení je hostování řídicího panelu přímo s vaším Orleans silem. Tento přístup se doporučuje pro většinu scénářů:
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();
Samostatný hostitel řídicího panelu
V situacích, kdy chcete řídicí panel spustit odděleně od sila (například k poskytnutí vyhrazeného koncového Orleans bodu monitorování), můžete řídicí panel hostovat na klientovi:
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();
Důležité
Při použití samostatného hostitele řídicího panelu musíte stále volat AddDashboard() na tvůrci sila. Sila potřebují služby řídicího panelu ke shromažďování a poskytování dat metrik.
Authorization
Koncové body řídicího panelu podporují autorizaci ASP.NET Core. K ochraně přístupu použijte rozšiřující metodu RequireAuthorization().
// Require authentication for dashboard access
app.MapOrleansDashboard()
.RequireAuthorization();
Můžete také použít konkrétní zásady autorizace:
// 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");
Řešení problémů
Na řídicím panelu se zobrazuje zpráva o ztraceném připojení.
K této chybě dochází, když řídicí panel nemůže komunikovat s clusterem Orleans . Běžné příčiny:
- Silo nebylo spuštěno: Ujistěte se, že je vaše Orleans silo spuštěné, než přejdete k řídicímu panelu.
- Problémy se sítí: Ověřte síťové připojení mezi hostitelem řídicího panelu a silo.
- Chybná konfigurace clusteru: Zkontrolujte, jestli je clustering správně nakonfigurovaný.
Nezobrazují se data profilace
Pokud jsou data profilace pro metody zrnitosti prázdná:
- Volání Grain metod: Profilace zobrazuje data pouze po vyvolání grain metod.
-
Kontrola
TraceAlways: Ve výchozím nastavení se profilace zastaví po 1 minutě nečinnosti řídicího panelu. NastavteTraceAlways = truepro průběžnou profilaci. -
Zkontrolujte
[NoProfiling]: Ujistěte se, že zrno není označeno atributem[NoProfiling].
Koncový bod živého trasování je zakázaný.
/Trace Pokud koncový bod vrátí hodnotu 403 Zakázáno:
- Zkontrolujte, že
DashboardOptions.HideTracenení nastaveno natrue.
Viz také
Dashboard Orleans je integrovaný monitorovací nástroj zavedený ve verzi Orleans 10.0. Pro Orleans verze 9.0, 8.0 a 7.0 použijte neoficiální balíček řídicího panelu komunity:
- OrleansDashboard (komunita):: Balíček řídicího panelu udržovaný komunitou pro Orleans verze starší než 10.0.
- Integrace OpenTelemetry: Integrované funkce pozorovatelnosti jsou k dispozici ve Orleans verzi 7.0 a novější. Viz Dohledatelnost v Orleans.
Dashboard Orleans je integrovaný monitorovací nástroj zavedený ve verzi Orleans 10.0. Pro Orleans verzi 3.x použijte neoficiální balíček řídicího panelu komunity:
- OrleansDashboard (komunita):: Balíček řídicího panelu udržovaný komunitou pro Orleans verze starší než 10.0.