Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Orleans Pano, kümenize Orleans gerçek zamanlı görünürlük sağlayan yerleşik bir web tabanlı izleme aracıdır. Dış izleme altyapısı gerektirmeden silo sistem durumunu, tahıl etkinleştirmelerini, yöntem çağrılarını, anımsatıcıları ve sistem ölçümlerini izlemenizi sağlar.
Önemli
Bu özellik 10.0'dan Orleans itibaren kullanılabilir. Şu anda önizleme aşamasındadır ve gelecek sürümlerde değişebilir.
Özellikler
Orleans Pano aşağıdaki özellikleri sağlar:
- Kümeye genel bakış: Durum, çalışma süresi ve kaynak kullanımıyla kümedeki tüm siloları görüntüleyin.
- Tane izleme: Tane etkinleştirmeleri, yöntem çağrılarını ve tane türü başına performans ölçümlerini izleyin.
- Yöntem profili oluşturma: Tahıl yöntemi çağrı sıklığını, gecikme süresini ve hata oranlarını analiz edin.
- Anımsatıcı yönetimi: Küme genelindeki tüm kayıtlı anımsatıcılara göz atın ve bunları izleyin.
- Canlı günlük akışı: Kümeden gerçek zamanlı günlük verisini görüntüleyin.
- Silo ayrıntıları: Tek tek silo özelliklerini, sayaçlarını ve tane dağılımlarını inceleyin.
- Tahıl durumu incelemesi: Tek tek tane örneklerinin geçerli durumunu görüntüleyin.
Kurulum
Orleans Panosu iki ayrı NuGet paketi halinde dağıtılır.
| Package | Description |
|---|---|
| Microsoft..Orleans. Pano | Kullanıcı arabirimi ve API uç noktalarıyla ana pano paketi |
| Microsoft.Orleans.Dashboard.Abstractions | Gösterge paneli entegrasyonu için soyutlamalar (örn. NoProfilingAttribute) |
Temel kurulum
Pano'yu Orleans uygulamanıza eklemek için, pano uç noktalarını eşlemek üzere silo oluşturucunuzda AddDashboard() çağrısını ve MapOrleansDashboard() çağrısını yapın.
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();
Uygulamanızı başlattıktan sonra panoya erişmek için http://localhost:5000/ (veya yapılandırılan URL'nize) gidin.
Özelleştirilmiş rota ön eki
Bir yol ön eki belirterek panoyu özel bir yolda barındırabilirsiniz:
// Map dashboard endpoints at /dashboard
app.MapOrleansDashboard(routePrefix: "/dashboard");
Bu yapılandırmayla, http://localhost:5000/dashboard/ konumundaki panoya erişim sağlayın.
Konfigürasyon
Pano seçenekleri
DashboardOptions kullanarak pano davranışını yapılandırın.
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;
});
| Seçenek | Türü | Varsayılan | Description |
|---|---|---|---|
HideTrace |
bool |
false |
true olduğunda, canlı günlük akışı uç noktasını devre dışı bırakır. |
CounterUpdateIntervalMs |
int |
1000 |
Sayaç örnekleri arasındaki milisaniye süresi. = 1000 olmalıdır >. |
HistoryLength |
int |
100 |
Ölçümler için korunacak geçmiş veri noktalarının sayısı. |
Grain profiler (profil oluşturucu) seçenekleri
Tanecik profil oluşturucu metot seviyesi performans verilerini toplar. kullanarak GrainProfilerOptions yapılandırın:
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);
});
| Seçenek | Türü | Varsayılan | Description |
|---|---|---|---|
TraceAlways |
bool |
false |
true olduğunda, pano sorgulanmıyor olsa bile profil verileri sürekli toplanır. |
DeactivationTime |
TimeSpan | 1 dakika | Profil oluşturmanın otomatik olarak durduğu etkinlik dışı kalma süresi. Yalnızca TraceAlwaysfalse olduğunda geçerlidir. |
Taneleri profil oluşturmadan dışlama
[NoProfiling] Belirli dilimleri performans profili oluşturmanın dışında tutmak için özniteliğini kullanın:
using Orleans.Dashboard;
[NoProfiling]
public class HighFrequencyGrain : Grain, IHighFrequencyGrain
{
// This grain won't be included in profiling data
}
Dağıtım desenleri
Silo ile ortak barındırma (önerilen)
En basit dağıtım düzeni, kontrol panosunu doğrudan silonuzla Orleans barındırılmasıdır. Çoğu senaryo için önerilen yaklaşım budur:
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();
Ayrı gösterge paneli sunucusu
Panoyu silolarınızdan ayrı olarak çalıştırmak istediğiniz senaryolar için (örneğin, ayrılmış bir izleme uç noktası sağlamak için), panoyu bir Orleans istemcide barındırabilirsiniz:
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();
Önemli
Ayrı bir pano konağı kullanırken silo oluşturucusunu aramaya AddDashboard() devam etmeniz gerekir. Siloların ölçüm verilerini toplamak ve sağlamak için pano hizmetlerine ihtiyacı vardır.
Authorization
Pano uç noktaları ASP.NET Core yetkilendirmesini destekler.
RequireAuthorization() Erişimi korumak için uzantı yöntemini kullanın:
// Require authentication for dashboard access
app.MapOrleansDashboard()
.RequireAuthorization();
Ayrıca belirli yetkilendirme ilkelerini de uygulayabilirsiniz:
// 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");
Sorun giderme
Panoda "bağlantı kesildi" iletisi gösterildi
Bu hata, pano küme ile iletişim kuramadığında Orleans meydana gelir. Yaygın nedenler:
- Silo başlatılmamış: Panoya erişmeden önce silonuzun Orleans çalıştığından emin olun.
- Ağ sorunları: Pano konağı ile silolar arasındaki ağ bağlantısını doğrulayın.
- Küme yanlış yapılandırması: Kümelemenin düzgün yapılandırıldığından emin olun.
Profil oluşturma verileri görünmüyor
Tahıl yöntemi profilleme verileri boşsa:
- Grain çağrıları yapın: Profil oluşturma yalnızca grain yöntemleri çağrıldıktan sonra verileri gösterir.
-
Kontrol edin
TraceAlways: Profil oluşturma varsayılan olarak panonun 1 dakika etkinlik dışı kalma durumundan sonra durdurulur. Sürekli profil oluşturma için ayarlaTraceAlways = true. -
Kontrol
[NoProfiling]: Tahılın özellik ile[NoProfiling]işaretlenmediğinden emin olun.
Canlı izleme uç noktası devre dışı bırakıldı
/Trace Uç nokta 403 Yasak değerini döndürürse:
-
DashboardOptions.HideTrace'ıntrueolarak ayarlanmadığından emin olun.
Ayrıca bakınız
Dashboard, Orleans 10.0'da tanıtılan yerleşik bir izleme aracıdır. Önceki sürümler için şunları kullanmayı göz önünde bulundurun:
- OrleansDashboard (topluluk tarafından korunmakta olan pano):3.x ile 8.x arasını kapsar.
- OpenTelemetry tümleştirmesi: 7.0 ve sonraki sürümlerde Orleans kullanılabilen yerleşik gözlemlenebilirlik işlevleri. Bkz Orleans içindeki gözlemlenebilirlik.