feat(alerting): add Telegram callback ingress sensor
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
This commit is contained in:
@@ -339,6 +339,11 @@ async def lifespan(_app: FastAPI) -> AsyncGenerator[None, None]:
|
||||
# OpenClaw (192.168.0.188) 是唯一的 Polling 實例
|
||||
# AWOOOI API 只負責發送訊息,不接收
|
||||
telegram_gw = get_telegram_gateway()
|
||||
callback_receipt_loaded = await telegram_gw.refresh_callback_ingress_receipt()
|
||||
logger.info(
|
||||
"telegram_callback_ingress_receipt_bootstrap",
|
||||
durable_receipt_loaded=callback_receipt_loaded,
|
||||
)
|
||||
if settings.TELEGRAM_ENABLE_POLLING:
|
||||
await telegram_gw.start_long_polling()
|
||||
logger.info("telegram_long_polling_started")
|
||||
@@ -1400,6 +1405,16 @@ app.include_router(
|
||||
@app.get("/metrics", include_in_schema=False)
|
||||
async def prometheus_metrics() -> Response:
|
||||
"""Prometheus metrics endpoint for alerting"""
|
||||
# Callback ingress receipts are shared in Redis while API metrics are
|
||||
# process-local. Refresh before every scrape so a NodePort that alternates
|
||||
# across replicas cannot expose stale/false-green transport evidence.
|
||||
try:
|
||||
await get_telegram_gateway().refresh_callback_ingress_receipt()
|
||||
except Exception as exc:
|
||||
logger.warning(
|
||||
"prometheus_metrics_telegram_callback_receipt_error",
|
||||
error_type=type(exc).__name__,
|
||||
)
|
||||
# 2026-05-19 Codex — T85 Alert Chain DB evidence refresh.
|
||||
# record_alert_chain_success() 是 process-local gauge;部署後第一個 scrape
|
||||
# 可能尚未收到新 webhook,導致 smoke test 誤判 metric 不存在。
|
||||
|
||||
Reference in New Issue
Block a user