الصحة والقياسات
تقوم خدمات Asset Core بتوفير نقاط نهاية صحية للمراقبة ومقاييس Prometheus للرصد. تم تصميم هذه الإشارات لإظهار الجاهزية، والحداثة، والتأخير حتى يتمكن المشغلون من اكتشاف المشكلات قبل أن تؤثر على المستخدمين.
نظرة عامة
توفر كل من عمليات الكتابة والقراءة للدايمون:
- نقطة النهاية الصحية: حالة JSON لموازني الأحمال والمراقبة
- نقطة نهاية القياسات: قياسات بتنسيق Prometheus للوحة المعلومات والتنبيهات (معطلة بشكل افتراضي، تُقدم على مستمع مخصص)
الهيكل
نقاط النهاية الصحية
| Daemon | Endpoint | Description |
|---|---|---|
| Write | GET /v1/write/health | الحالة، النسخة، ومدة التشغيل |
| Read | GET /v1/read/health | الجاهزية بالإضافة إلى الحداثة لمساحة الأسماء (يستخدم x-assetcore-namespace عند عدم التكوين) |
نقاط نهاية القياسات
| Daemon | Endpoint | Format |
|---|---|---|
| Write | GET /v1/write/metrics | نص Prometheus (على مستمع المقاييس) |
| Read | GET /v1/read/metrics | نص Prometheus (على مستمع المقاييس) |
المقاييس معطلة بشكل افتراضي. قم بتمكينها في daemon-write ([logging] metrics_enabled) و daemon-read ([observability] metrics_enabled)، وحدد قيم metrics_address مميزة، واسمح اختياريًا بإدراج الجهات الفاعلة في القائمة البيضاء لـ /v1/write/metrics و /v1/read/metrics. خطط لجمع البيانات من هذه النقاط النهائية مبكرًا في الإنتاج حتى تتمكن من رؤية اتجاهات تأخر الانتعاش.
حقول
استجابة الصحة
{
"status": "ready",
"freshness": {
"namespace": 1,
"world_seq": 128,
"commit_log_world_seq": 130,
"lag": 2,
"lag_ms": 250
}
}
| الحقل | الوصف |
|---|---|
status | قراءة: starting, ready, degraded; كتابة: healthy |
version | سلسلة إصدار daemon للكتابة فقط |
api_version | سلسلة إصدار API للكتابة فقط |
build_git_sha | SHA لالتزام Git للكتابة فقط عند توفره |
uptime_secs | ثواني للكتابة فقط منذ بدء العملية |
freshness | بيانات التعريف الخاصة بالانتعاش للقراءة فقط للنطاق |
المقاييس الرئيسية
اكتب daemon
| المقياس | النوع | الوصف |
|---|---|---|
ingress_requests_total | عداد | إجمالي طلبات الدخول حسب المسار/النتيجة |
ingress_request_duration_seconds | هيستوجرام | زمن استجابة طلبات الدخول |
commit_duration_seconds | هيستوجرام | زمن الالتزام من البداية إلى النهاية |
ingress_queue_depth | مقياس | العناصر المنتظرة في الطابور |
ingress_inflight | مقياس | الطلبات قيد المعالجة |
commit_log_end_seq | مقياس | أحدث تسلسل تم الالتزام به |
commit_log_driver_lag_events | مقياس | تأخير سائق سجل الالتزام في الأحداث |
اقرأ daemon
| المقياس | النوع | الوصف |
|---|---|---|
http_requests_total | عداد | إجمالي طلبات HTTP حسب المسار/النتيجة |
http_request_duration_seconds | هيستوجرام | زمن استجابة طلبات HTTP |
read_checkpoint_seq | مقياس | التسلسل المطبق |
read_commit_log_end_seq | مقياس | تسلسل سجل الالتزام الملاحظ |
freshness_lag_events | مقياس | الأحداث المتأخرة عن سجل الالتزام |
freshness_lag_ms | مقياس | المللي ثانية المتأخرة عن سجل الالتزام |
snapshot_publish_duration_seconds | هيستوجرام | زمن نشر اللقطة |
أمثلة
تحقق من صحة الكتابة
curl -H "Authorization: Bearer $ASSETCORE_ADMIN_TOKEN" \
http://localhost:8080/v1/write/health | jq .
تحقق من حداثة القراءة
curl -H "Authorization: Bearer $ASSETCORE_READ_TOKEN" \
http://localhost:8081/v1/read/namespaces/5001/freshness | jq .
مقاييس السحب
أضف إلى تكوين Prometheus الخاص بك:
scrape_configs:
- job_name: 'assetcore-write'
static_configs:
- targets: ['localhost:9100']
metrics_path: '/v1/write/metrics'
- job_name: 'assetcore-read'
static_configs:
- targets: ['localhost:9101']
metrics_path: '/v1/read/metrics'
استعلامات بروميثيوس المثال
معدل الطلب:
rate(ingress_requests_total[5m])
زمن الاستجابة P99:
histogram_quantile(0.99, rate(ingress_request_duration_seconds_bucket[5m]))
قراءة تأخير الـ daemon:
freshness_lag_events
معدل الخطأ:
rate(http_requests_total{outcome!="success"}[5m])
تنبيهات المثال
groups:
- name: assetcore
rules:
- alert: HighReadLag
expr: freshness_lag_events > 100
for: 5m
labels:
severity: warning
annotations:
summary: "Read daemon is behind commit log"
- alert: WriteQueueFull
expr: ingress_queue_depth > 900
for: 1m
labels:
severity: critical
annotations:
summary: "Write queue approaching capacity"
المراجع ذات الصلة
- أساسيات النشر - تشغيل العمليات الخلفية
- الانتعاش وإعادة التشغيل - فهم التأخير
- HTTP API - مرجع نقطة النهاية