TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 549 subscribers
Post #245 104
استفاده از کتابخانه‌های Health Check موجود 📚

قبل از اینکه برای همه چیز یک health check سفارشی پیاده‌سازی کنید، ابتدا باید ببینید آیا از قبل کتابخانه موجودی وجود دارد یا نه.
در ریپازیتوری AspNetCore.Diagnostics.HealthChecks می‌توانید مجموعه وسیعی از پکیج‌های health check برای سرویس‌ها و کتابخانه‌های پرکاربرد را پیدا کنید.

در اینجا فقط چند مثال آمده است:
SQL Server -
AspNetCore.HealthChecks.SqlServer

Postgres -
AspNetCore.HealthChecks.Npgsql

Redis -
AspNetCore.HealthChecks.Redis

RabbitMQ -
AspNetCore.HealthChecks.RabbitMQ

در اینجا نحوه افزودن health checks برای PostgreSQL و RabbitMQ آمده است:
builder.Services.AddHealthChecks()
.AddCheck<SqlHealthCheck>("custom-sql", HealthStatus.Unhealthy);
.AddNpgSql(pgConnectionString)
.AddRabbitMQ(rabbitConnectionString)


فرمت‌دهی پاسخ Health Checks 🎨

به‌طور پیش‌فرض، endpointی که وضعیت health check شما را برمی‌گرداند، یک مقدار رشته‌ای را که نماینده یک HealthStatus است، برمی‌گرداند.
این عملی نیست اگر چندین health check پیکربندی کرده باشید، زیرا می‌خواهید وضعیت سلامت را به صورت جداگانه برای هر سرویس مشاهده کنید.
بدتر از آن، اگر یکی از سرویس‌ها در حال شکست باشد، کل پاسخ Unhealthy برمی‌گرداند و شما نمی‌دانید چه چیزی باعث مشکل شده است.

شما می‌توانید این مشکل را با ارائه یک ResponseWriter حل کنید، و یک نمونه موجود در کتابخانه AspNetCore.HealthChecks.UI.Client وجود دارد.
پکیج NuGet را نصب کنید:
Install-Package AspNetCore.HealthChecks.UI.Client

و باید فراخوانی به MapHealthChecks را کمی به‌روز کنید تا از ResponseWriter این کتابخانه استفاده کند:
app.MapHealthChecks(
"/health",
new HealthCheckOptions
{
ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
});

پس از این تغییرات، پاسخ از endpoint health check به این شکل خواهد بود:
{
"status": "Unhealthy",
"totalDuration": "00:00:00.3285211",
"entries": {
"npgsql": { "status": "Healthy", ... },
"rabbitmq": { "status": "Healthy", ... },
"custom-sql": { "status": "Unhealthy", ... }
}
}


نکات پایانی 📝

مانیتورینگ اپلیکیشن برای ردیابی در دسترس بودن، استفاده از منابع و تغییرات عملکرد در اپلیکیشن شما مهم است.
مانیتور کردن سلامت اپلیکیشن‌های ASP.NET Core شما با ارائه health checks برای سرویس‌هایتان آسان است.
شما می‌توانید تصمیم بگیرید health checks سفارشی را پیاده‌سازی کنید، اما ابتدا در نظر بگیرید که آیا راه‌حل‌های موجود وجود دارد یا نه.
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →