Công nghệ - 19/06/2025 03:05:09
Code xong chạy được là chưa đủ – phải biết khi nào nó "chết" nữa chứ 😅
Bạn đang triển khai ứng dụng trên Kubernetes, Docker hay môi trường production nào? Và bạn từng "toát mồ hôi" vì service chết mà không ai báo?
Khi xây dựng hệ thống phân tán, đặc biệt là các ứng dụng chạy trên container và orchestrator như Kubernetes, Healthchecks là thành phần không thể thiếu để đảm bảo dịch vụ luôn sẵn sàng, ổn định và dễ giám sát.
Mục đích của Healthcheck giúp phát hiện sớm sự cố và đảm bảo hệ thống vận hành ổn định. .NET cung cấp tính năng healthcheck, cho phép kiểm tra trạng thái API, database, external service và xuất kết quả qua các endpoint như /health, /healthz...
HealthChecks.UI hỗ trợ gửi cảnh báo tự động qua webhook khi phát hiện dịch vụ không ổn định. Bạn có thể cấu hình webhook để gửi thông báo đến Slack, Microsoft Teams, email, hoặc bất kỳ endpoint nào hỗ trợ HTTP.
Cấu hình cơ bản trong appsettings.json:
{
"HealthChecksUI": {
"HealthChecks": [
{
"Name": "HTTP-Api-Basic",
"Uri": "http://localhost:5000/health"
}
],
"Webhooks": [
{
"Name": "Slack Notification", // Gọi tới Slack hoặc Teams
"Uri": "https://hooks.slack.com/services/your/slack/webhook",
"Payload": "{\"text\": \"Service [[LIVENESS]] is DOWN: [[FAILURE]]\"}",
"RestoredPayload": "{\"text\": \"Service [[LIVENESS]] is UP again!\"}"
}
],
"EvaluationTimeInSeconds": 10,
"MinimumSecondsBetweenFailureNotifications": 60
}
}
Lưu ý: Có thể cấu hình webhook bằng code để kiểm soát nâng cao hơn, ví dụ chỉ gửi cảnh báo trong giờ làm việc hoặc tuỳ biến message theo trạng thái dịch vụ
Nếu bạn sử dụng Prometheus để scrape endpoint healthcheck, có thể cấu hình cảnh báo qua Alertmanager để gửi email, Slack, PagerDuty...
Cấu hình Prometheus scrape endpoint:
scrape_configs:
- job_name: 'dotnet-health'
metrics_path: /health
static_configs:
- targets: ['your-dotnet-service:5000']
Tạo alert rule trong Prometheus:
groups:
- name: dotnet-health-alerts
rules:
- alert: DotNetServiceDown
expr: up{job="dotnet-health"} == 0
for: 2m
labels:
severity: critical
annotations:
summary: "Dịch vụ .NET không phản hồi healthcheck"
description: "Service {{ $labels.instance }} down trong 2 phút"
Cấu hình Alertmanager gửi thông báo:
receivers:
- name: 'slack-notifications'
slack_configs:
- send_resolved: true
channel: '#alerts'
api_url: 'https://hooks.slack.com/services/your/slack/webhook'
route:
receiver: 'slack-notifications'
Có thể mở rộng gửi qua email, webhook, hoặc các hệ thống cảnh báo khác
Kết hợp healthcheck với công cụ giám sát hiện đại giúp phát hiện sự cố sớm, tối ưu vận hành, tăng độ tin cậy hệ thống. Hãy lựa chọn giải pháp phù hợp với quy mô hệ thống, hạ tầng hiện có để hệ thống luôn ổn định, hiệu quả.
Tài liệu tham khảo
/Son Do - I share real-world lessons, team building & developer growth.
#dotnetcore #healthcheck #observability #devlife #backenddeveloper #alertsystem #wecommit100xshare #1percentbetter
Công nghệ - 19/08/2025 21:13:07
Tìm hiểu cách xây dựng hệ thống phát hiện ngôn ngữ ký hiệu theo thời gian thực bằng AI, sử dụng DETR để tăng cường khả năng tiếp cận và đổi mới. Kết nối lời nói và cử chỉ.
Công nghệ - 18/08/2025 13:38:25
Tối ưu hóa các hệ thống RAG bằng cách tận dụng siêu dữ liệu để truy xuất thông tin chính xác và nhanh chóng hơn, giải quyết các thách thức về dữ liệu dư thừa hoặc lỗi thời với công cụ LangExtract nguồn mở. Khám phá cách LangExtract sử dụng các mô hình ngôn ngữ tiên tiến để trích xuất và cấu trúc siêu dữ liệu, tạo ra một quy trình truy xuất hợp lý và hiệu quả.
Công nghệ - 01/08/2025 07:00:00
Gỡ lỗi LLM rất quan trọng vì quy trình làm việc của chúng phức tạp và liên quan đến nhiều phần như chuỗi, lời nhắc, API, công cụ, trình truy xuất, v.v.
Công nghệ - 16/07/2025 13:41:17
Công nghệ - 27/06/2025 03:15:44
Công nghệ - 11/12/2025 15:05:29
[Góc chuyện nghề] bán account game để đi học nghệ - bạn dám không?
Làm nghề 20 năm, gặp nhiều sinh viên, nhưng chiều qua tôi khá bất ngờ với một cậu em tên Quang. Em Quang muốn theo nghề BA và mong muốn lương 20 triệu sau khi làm việc 1.5 năm tới 2 năm trong nghề.
Công nghệ - 22/09/2025 08:59:20
Dừng ngay việc dùng DateTime.Now trong APIs, đó là ổ lỗi tiềm ẩn trong hệ thống của bạn
⏱️ Tôi từng nghĩ DateTime.Now là một thứ vô hại, đơn giản và tiện lợi, cho đến khi gặp những vấn đề về múi giờ. Những lỗi "tưởng chừng nhỏ" này lại chính là nguồn cơn của sự thất vọng và tốn kém thời gian cho nhiều đội ngũ phát triển.
Công nghệ - 14/03/2025 04:30:32