ATP - متریکهای Prometheus پیامرسانی (GET /api/messaging/metrics/)
Endpoint
GET /api/messaging/metrics/
هدف آزمون
دریافت exposition متنی Prometheus برای outbox، inbox و draft lock metrics.
شرایط آزمون
- سرویس core-api در حال اجرا باشد
- PostgreSQL در دسترس باشد (برای شمارش outbox)
فرآیند آزمون
- ارسال GET به
/api/messaging/metrics/ - بررسی Content-Type=text/plain; version=0.0.4
- بررسی وجود gauge/counterهای outbox و messaging
- عدم وجود label با cardinality بالا (workspace/case/event id)
معرفی ویژگی
endpoint observability برای scrape توسط Prometheus. شامل متریکهای messaging و draft lock است.
- بدون auth
- فرمت: Prometheus text exposition 0.0.4
- labels: bounded cardinality — بدون workspace_id یا case_id
- مکمل
/api/messaging/health/برای alerting
سناریوی آزمون
سناریو 1: مسیر موفق
- ارسال
GET /api/messaging/metrics/ - دریافت پاسخ موفق
- بررسی ساختار پاسخ
سناریو 2: خطا - درخواست نامعتبر
- ارسال درخواست با داده یا شناسه نامعتبر
- دریافت کد خطای 4xx
- بررسی پیام خطای استاندارد API
سناریو 3: خطا — متد پشتیبانینشده
- ارسال متدی غیر از GET به همان مسیر
- دریافت کد 405 Method Not Allowed
سناریو 4: خطا — درخواست نامعتبر
- ارسال بدنه یا query نامعتبر
- دریافت کد 400
- بررسی پیام خطای validation
قالب API
| مولفه | نوع | نوع داده | اجباری | توضیحات |
|---|---|---|---|---|
| — | — | — | — | بدون پارامتر ورودی |
Swagger
get:
summary: متریکهای Prometheus پیامرسانی
responses:
200:
description: عملیات موفق
401:
description: احراز هویت نامعتبر یا ناقص
نمونه ورودی
curl -X GET "http://localhost:8000/api/messaging/metrics/"
نمونه خروجی
# HELP patent_genie_outbox_pending_total Pending outbox events
# TYPE patent_genie_outbox_pending_total gauge
patent_genie_outbox_pending_total 0
Status Codes
- 200: متریکهای Prometheus
نتیجه مورد انتظار
پاسخ text/plain با خطوط # HELP / # TYPE و مقادیر gauge/counter.
روال صحتسنجی
- بررسی Content-Type
- بررسی عدم وجود credential در پاسخ
- بررسی scrape موفق در Prometheus (در صورت deploy)
توضیحات
- مرجع: infra/observability/MESSAGING_RUNBOOK.md
- health JSON در
/api/messaging/health/؛ metrics در این endpoint