fix: 自检加第4项——gateway实际LLM推理检测(发ok→5tok)
This commit is contained in:
@@ -172,7 +172,33 @@ def main():
|
|||||||
alerts.append(f"🔴 XMPP bridge检测失败: {e}")
|
alerts.append(f"🔴 XMPP bridge检测失败: {e}")
|
||||||
state[bridge_key] = {"last_alerted": datetime.now().timestamp()}
|
state[bridge_key] = {"last_alerted": datetime.now().timestamp()}
|
||||||
|
|
||||||
# ── 检查4:price_monitor数据新鲜度(直接查DB,不依赖job记录)─
|
# ── 检查4:gateway LLM推理是否正常(发真实请求测响应时间) ─
|
||||||
|
gateway_key = "gateway_down"
|
||||||
|
try:
|
||||||
|
import urllib.request, json, time
|
||||||
|
payload = json.dumps({
|
||||||
|
"model": "position-analyst",
|
||||||
|
"messages": [{"role": "user", "content": "ok"}],
|
||||||
|
"max_tokens": 5
|
||||||
|
}).encode()
|
||||||
|
req = urllib.request.Request("http://127.0.0.1:8643/v1/chat/completions",
|
||||||
|
data=payload,
|
||||||
|
headers={"Authorization": "Bearer hermes123", "Content-Type": "application/json"})
|
||||||
|
t0 = time.time()
|
||||||
|
resp = urllib.request.urlopen(req, timeout=30)
|
||||||
|
elapsed = time.time() - t0
|
||||||
|
data = json.loads(resp.read())
|
||||||
|
usage = data.get("usage", {})
|
||||||
|
tok = usage.get("total_tokens", 0)
|
||||||
|
if elapsed > 25 and is_new_alert(gateway_key, state):
|
||||||
|
alerts.append(f"🔴 gateway响应慢: {elapsed:.0f}s ({tok}tok)")
|
||||||
|
state[gateway_key] = {"last_alerted": datetime.now().timestamp()}
|
||||||
|
except Exception as e:
|
||||||
|
if is_new_alert(gateway_key, state):
|
||||||
|
alerts.append(f"🔴 gateway推理失败: {e}")
|
||||||
|
state[gateway_key] = {"last_alerted": datetime.now().timestamp()}
|
||||||
|
|
||||||
|
# ── 检查5:price_monitor数据新鲜度(直接查DB,不依赖job记录)─
|
||||||
price_key = "price_stale"
|
price_key = "price_stale"
|
||||||
try:
|
try:
|
||||||
import sqlite3
|
import sqlite3
|
||||||
|
|||||||
Reference in New Issue
Block a user