وثائق أصول Core

توثيق محرك حالة العالم الحتمي ومراجع API.

وثائق بوابة القرار

الصحة والقياسات

تقوم خدمات Asset Core بتوفير نقاط نهاية صحية للمراقبة ومقاييس Prometheus للرصد. تم تصميم هذه الإشارات لإظهار الجاهزية، والحداثة، والتأخير حتى يتمكن المشغلون من اكتشاف المشكلات قبل أن تؤثر على المستخدمين.

نظرة عامة

توفر كل من عمليات الكتابة والقراءة للدايمون:

  • نقطة النهاية الصحية: حالة JSON لموازني الأحمال والمراقبة
  • نقطة نهاية القياسات: قياسات بتنسيق Prometheus للوحة المعلومات والتنبيهات (معطلة بشكل افتراضي، تُقدم على مستمع مخصص)

الهيكل

نقاط النهاية الصحية

DaemonEndpointDescription
WriteGET /v1/write/healthالحالة، النسخة، ومدة التشغيل
ReadGET /v1/read/healthالجاهزية بالإضافة إلى الحداثة لمساحة الأسماء (يستخدم x-assetcore-namespace عند عدم التكوين)

نقاط نهاية القياسات

DaemonEndpointFormat
WriteGET /v1/write/metricsنص Prometheus (على مستمع المقاييس)
ReadGET /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_shaSHA لالتزام 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"