* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
57 KiB
Monitoring & Observability Guide (മലയാളം)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
ചുരുക്കത്തിൽ: ബിൽറ്റ്-ഇൻ ആരോഗ്യ നിരീക്ഷണം, പ്രൊവൈഡർ ഓട്ടോപൈലറ്റ്, ക്വാട്ട ട്രാക്കിംഗ്, ഒബ്സർവബിലിറ്റി ഹുക്കുകൾ എന്നിവയോടെയാണ് OmniRoute ലഭ്യമാകുന്നത്. ഡാഷ്ബോർഡ്, അലേർട്ടുകൾ, ട്രബിൾഷൂട്ടിംഗ് എന്നിവ ഈ ഗൈഡിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്നു.
സ്രോതസ്സുകൾ:
src/lib/monitoring/observability.ts— ഒബ്സർവബിലിറ്റി സ്നാപ്പ്ഷോട്ട്src/lib/monitoring/comboHealthAutopilot.ts— കോംബോ ഹെൽത്ത് ഓട്ടോപൈലറ്റ്src/lib/monitoring/providerHealthAutopilot.ts— പ്രൊവൈഡർ ഓട്ടോപൈലറ്റ്src/lib/monitoring/providerHealthMatrix.ts— പ്രൊവൈഡർ ഹെൽത്ത് മാട്രിക്സ്src/lib/localHealthCheck.ts— ലോക്കൽ ഹെൽത്ത് പരിശോധനsrc/lib/tokenHealthCheck.ts— ടോക്കൺ പുതുക്കലിന്റെ ആരോഗ്യംsrc/lib/proxyHealth.ts— പ്രോക്സി ഹെൽത്ത് കാഷ് (PROXY_GUIDE.md-ൽ ഉൾപ്പെടുത്തിയിരിക്കുന്നു)
അവലോകനം
OmniRoute-ന് നിരീക്ഷണത്തിന്റെ 3 ലെയറുകൾ ഉണ്ട്:
┌──────────────────────────────────────────────────────────────┐
│ ലെയർ 1: സിസ്റ്റം ഹെൽത്ത് (സെർവർ തലം) │
│ ├─ localHealthCheck.ts — DB, പോർട്ടുകൾ, നേറ്റീവ് ഡിപെൻഡൻസികൾ │
│ ├─ db/healthCheck.ts — സമഗ്രത, FK, അനാഥ ആർട്ടിഫാക്റ്റുകൾ │
│ └─ ഡാഷ്ബോർഡ്: /dashboard/health │
├──────────────────────────────────────────────────────────────┤
│ ലെയർ 2: പ്രൊവൈഡർ ഹെൽത്ത് (ഓരോ പ്രൊവൈഡറിനുമുള്ള പ്രതിരോധശേഷി) │
│ ├─ providerHealthAutopilot.ts — സർക്യൂട്ട് ബ്രേക്കർ, കൂൾഡൗണുകൾ │
│ ├─ providerHealthMatrix.ts — പ്രൊവൈഡർ/മോഡൽ അനുസരിച്ചുള്ള ഹെൽത്ത് സ്കോറുകൾ │
│ └─ ഡാഷ്ബോർഡ്: /dashboard/providers │
├──────────────────────────────────────────────────────────────┤
│ ലെയർ 3: ലൈവ് ഒബ്സർവബിലിറ്റി (റൺടൈം സ്നാപ്പ്ഷോട്ടുകൾ) │
│ ├─ observability.ts — സർക്യൂട്ട് ബ്രേക്കറുകൾ, സെഷനുകൾ, ക്വാട്ട │
│ ├─ tokenHealthCheck.ts — OAuth ടോക്കൺ പുതുക്കലിന്റെ ആരോഗ്യം │
│ └─ MCP ടൂളുകൾ: omniroute_get_health, omniroute_get_session_snapshot │
└──────────────────────────────────────────────────────────────┘
ഡാഷ്ബോർഡ് പേജുകൾ
/dashboard/health (സിസ്റ്റം ഹെൽത്ത്)
ഉയർന്ന തലത്തിലുള്ള ഹെൽത്ത് ഡാഷ്ബോർഡ് ഇനിപ്പറയുന്നവ കാണിക്കുന്നു:
| വിഭാഗം | കാണിക്കുന്നത് |
|---|---|
| സെർവർ നില | പ്രവർത്തനസമയം, പതിപ്പ്, പോർട്ട്, സജീവ കണക്ഷനുകൾ |
| ഡാറ്റാബേസ് | കണക്ഷൻ, സമഗ്രത, WAL വലുപ്പം, സമീപകാല മൈഗ്രേഷനുകൾ |
| പ്രൊവൈഡർ സംഗ്രഹം | സജീവ എണ്ണം, ആരോഗ്യകരമായവയുടെ എണ്ണം, തുറന്ന ബ്രേക്കറുകളുടെ എണ്ണം |
| ക്വാട്ട മോണിറ്ററുകൾ | സജീവ സെഷനുകൾ, അലേർട്ടിംഗ്, തീർന്നവ |
| സമീപകാല പിശകുകൾ | സ്റ്റാക്ക് ട്രേസുകളോടുകൂടിയ അവസാന 10 പിശകുകൾ |
| റിസോഴ്സ് ഉപയോഗം | മെമ്മറി, CPU, ഹീപ്പ് പ്രഷർ ഇൻഡിക്കേറ്റർ |
/dashboard/providers (പ്രൊവൈഡർ ഹെൽത്ത്)
ഓരോ പ്രൊവൈഡറിനുമുള്ള ഡാഷ്ബോർഡ്:
| കോളം | വിവരണം |
|---|---|
| പ്രൊവൈഡർ | പ്രൊവൈഡർ ID + പ്രദർശന നാമം |
| ആരോഗ്യം | പച്ച/മഞ്ഞ/ചുവപ്പ് നില |
| സർക്യൂട്ട് | തുറന്ന/അടച്ച/പകുതി തുറന്ന അവസ്ഥ |
| കണക്ഷനുകൾ | കണക്ഷനുകളുടെ എണ്ണം, അവസാന പുതുക്കൽ |
| മോഡലുകൾ | ലഭ്യമായ മോഡലുകൾ, ഓരോ മോഡലിന്റെയും ആരോഗ്യം |
| ചെലവ് | ഇന്നത്തെ ചെലവ്, 7 ദിവസത്തെ പ്രവണത |
| പിശകുകൾ | കഴിഞ്ഞ 24 മണിക്കൂറിലെ പിശകുകളുടെ എണ്ണം, പ്രധാന പിശക് ക്ലാസ് |
കൂടുതൽ വിവരങ്ങൾ കാണാൻ ഒരു പ്രൊവൈഡറിൽ ക്ലിക്ക് ചെയ്യുക:
- ലേറ്റൻസി വിഭജനത്തോടുകൂടിയ സമീപകാല അഭ്യർത്ഥനകൾ
- ഓരോ കണക്ഷനുമുള്ള ഹെൽത്ത് സ്കോറുകൾ
- ഓരോ മോഡലിനുമുള്ള ലോക്കൗട്ടുകൾ
- ഓട്ടോപൈലറ്റ് ശുപാർശകൾ
/dashboard/quota (ക്വാട്ട ട്രാക്കിംഗ്)
ഓരോ API കീക്കും:
- നിലവിലെ ഉപയോഗവും പരിധിയും (പ്രോഗ്രസ് ബാർ)
- ക്വാട്ട പ്രവണത (30 ദിവസത്തെ ചാർട്ട്)
- അടുത്ത റീസെറ്റ് സമയം
- അലേർട്ട് ചരിത്രം
/dashboard/combos (കോംബോ ഹെൽത്ത്)
ഓരോ കോംബോയ്ക്കും:
- സ്ട്രാറ്റജി + ടാർഗെറ്റുകൾ
- ഓരോ ടാർഗെറ്റിന്റെയും ആരോഗ്യം
- സമീപകാല ഫാൾബാക്ക് ഇവന്റുകൾ
- വിജയനിരക്ക് (24 മണിക്കൂർ, 7 ദിവസം, 30 ദിവസം)
ആരോഗ്യ പരിശോധന API
OmniRoute രണ്ട് HTTP ആരോഗ്യ എൻഡ്പോയിന്റുകൾ നൽകുന്നു. ഓർക്കസ്ട്രേറ്ററുകൾക്കായി ഇവ പരസ്പരം മാറ്റി ഉപയോഗിക്കാവുന്നതല്ല.
| പാത്ത് | ഉദ്ദേശ്യം | ഭാരം | ഉപയോഗിക്കേണ്ടത് |
|---|---|---|---|
GET /healthz |
ലൈഫ്സൈക്കിൾ ലൈവ്നസ്/റെഡിനസ് (ok / starting / stopping) |
നിസ്സാരം (ഫേസ് ഫ്ലാഗ് മാത്രം) | Kubernetes readiness; HTTP ഉപയോഗിക്കേണ്ടതുണ്ടെങ്കിൽ സോഫ്റ്റ് liveness |
GET /api/monitoring/health |
സമഗ്രമായ സിസ്റ്റം + പ്രൊവൈഡർ സംഗ്രഹം (DB, ഹീപ്പ്, കാറ്റലോഗ് എണ്ണങ്ങൾ, …) | ഭാരമേറിയത് (സിങ്ക്രണസ് DB / മോണിറ്ററിംഗ് പ്രവർത്തനം) | ഡാഷ്ബോർഡുകൾ, ബ്ലാക്ക്ബോക്സ് സമഗ്ര പരിശോധനകൾ, Docker-ന്റെ ബിൽറ്റ്-ഇൻ ഹെൽത്ത് ചെക്ക് |
കുറിപ്പ്: പ്രൊവൈഡർ ആരോഗ്യ മാട്രിസുകൾ, ഓട്ടോപൈലറ്റ് പ്രശ്നങ്ങൾ, ക്വോട്ട മോണിറ്ററുകൾ, ടോക്കൺ ആരോഗ്യം,
/api/monitoring/health-നപ്പുറമുള്ള ലേറ്റൻസി വിശദാംശങ്ങൾ എന്നിവ MCP ടൂൾobservability_snapshotവഴിയോ ഡാഷ്ബോർഡ് പേജുകൾ വഴിയോ ലഭ്യമാണ് — അവയ്ക്കായി പ്രത്യേക REST റൂട്ടുകളൊന്നുമില്ല.
അഭ്യർത്ഥനകൾ കൈകാര്യം ചെയ്യുന്ന അതേ Node ഇവന്റ് ലൂപ്പിലാണ് രണ്ട് റൂട്ടുകളും പ്രവർത്തിക്കുന്നത്. CPU-ബൗണ്ട് പാത്തിന് (വലിയ GET /v1/models കാറ്റലോഗ് പ്രവർത്തനം, ദൈർഘ്യമേറിയ കോൺടെക്സ്റ്റ് കംപ്രഷൻ / ടോക്കൺ എണ്ണൽ) /healthz ഉൾപ്പെടെ എല്ലാ HTTP ഹാൻഡ്ലറുകളെയും വൈകിപ്പിക്കാൻ കഴിയും. ഇവന്റ് ലൂപ്പ് തിരക്കിലാണ് ≠ പ്രോസസ് പ്രവർത്തനരഹിതമാണ്. അമിതമായി വിഭവങ്ങൾ ഉപയോഗിക്കുന്ന ഭാഗം പരിഹരിക്കുന്നതിനാണ് മുൻഗണന നൽകേണ്ടത്; പ്രോബ് ട്യൂണിങ് തെറ്റായ കില്ലുകൾ കുറയ്ക്കുക മാത്രമേ ചെയ്യൂ.
ലഘുവായ ഓർക്കസ്ട്രേറ്റർ പ്രോബ്
GET /healthz
# അല്ലെങ്കിൽ HEAD /healthz
- സെർവർ ലൈഫ്സൈക്കിൾ ഫേസ് തയ്യാറായിരിക്കുമ്പോൾ 200 + ബോഡി
ok - ബൂട്ട് അല്ലെങ്കിൽ ഷട്ട്ഡൗൺ സമയത്ത് 503 +
starting/stopping - ഇംപ്ലിമെന്റേഷൻ:
src/app/healthz/route.ts(DB പിങ് ഇല്ല)
സിസ്റ്റം ആരോഗ്യം (സമഗ്രം)
GET /api/monitoring/health
പ്രതികരണം:
{
"status": "healthy",
"version": "3.8.16",
"uptime": 123456,
"checks": {
"database": { "status": "pass", "latency_ms": 2 },
"writeable": { "status": "pass" },
"integrity": { "status": "pass", "result": "ok" },
"foreign_keys": { "status": "pass", "violations": 0 },
"heap_pressure": { "status": "pass", "usage_mb": 142, "threshold_mb": 512 },
"active_sessions": 12,
"providers": {
"total": 7,
"healthy": 6,
"degraded": 1,
"down": 0
}
}
}
credentialHealth: പ്രോബ്-കാഷ് vs SQLite test_status
GET /api/monitoring/health → credentialHealth എന്നത് provider_connections.test_status-ന്റെ തത്സമയ ഡംപ് അല്ല, മറിച്ച് ഇൻ-മെമ്മറി പ്രോബ്-കാഷ്
ഗേജ് ആണ്. #12532-ന് ശേഷം അഭ്യർത്ഥന പാത്ത് getCachedCredentialHealthSummary() മാത്രം
വായിക്കുന്നു; പശ്ചാത്തല പ്രോബുകൾ ഇവന്റ് ലൂപ്പിന് പുറത്തുനിന്ന് കാഷ് പുതുക്കുന്നു.
| ലെയർ | എവിടെ | അതിന്റെ അർത്ഥം |
|---|---|---|
| പ്രോബ്-കാഷ് ഗേജ് | credentialHealth.total / healthy / failed / unknown / stale |
പ്രോസസ് മെമ്മറിയിൽ ഇപ്പോഴും സൂക്ഷിച്ചിരിക്കുന്ന ഏറ്റവും ഒടുവിലത്തെ ക്രെഡൻഷ്യൽ-ഹെൽത്ത് പ്രോബ് ഫലങ്ങൾ. source എല്ലായ്പ്പോഴും probe-cache ആയിരിക്കും. |
| പരാജയപ്പെട്ട കണക്ഷന്റെ വിശദാംശം | credentialHealth.failedConnections |
failed > 0 ആകുമ്പോൾ മാത്രം ഉണ്ടായിരിക്കും. status=error ഉള്ള കാഷ് റോകളുടെ പരിമിതപ്പെടുത്തിയ പട്ടിക (connectionId, status, സാനിറ്റൈസ് ചെയ്ത lastError / lastErrorType). പട്ടിക പരിമിതപ്പെടുത്തിയിട്ടുണ്ടെങ്കിൽ failedOmitted സജ്ജമാക്കും. |
| SQLite സ്റ്റിക്കി സ്റ്റാറ്റസ് | credentialHealth.staleDbNonOkCount |
നിലനിൽക്കുന്ന test_status, അറിയപ്പെടുന്ന non-ok മൂല്യമായ (error, expired, credits_exhausted, banned, deactivated, unavailable) സജീവ (is_active=1) കണക്ഷൻ റോകളുടെ എണ്ണം. |
രണ്ട് ലെയറുകളും ഉദ്ദേശ്യപൂർവം വ്യത്യസ്തമായിരിക്കാം:
- ഗേജ്
failed=0ആയിരിക്കുമ്പോൾstaleDbNonOkCount>0— ഏറ്റവും പുതിയ പ്രോബ്-കാഷ് സ്നാപ്പ്ഷോട്ട്status=errorആയി എണ്ണാത്ത ഒരു സ്റ്റിക്കിtest_status(ഉദാഹരണത്തിന്expiredഅല്ലെങ്കിൽcredits_exhausted) ഇപ്പോഴും SQLite-ൽ ഉണ്ട്. - ഗേജ്
failed>0ആയിരിക്കുമ്പോൾ SQLite ആരോഗ്യകരമായി കാണപ്പെടുന്നു — സമീപകാല പ്രോബ് പരാജയപ്പെട്ട് കാഷ് ചെയ്തിരിക്കുന്നു; DB റോ ഇതുവരെ അപ്ഡേറ്റ് ചെയ്തിട്ടില്ല, അല്ലെങ്കിൽ പിന്നീട് മായ്ച്ചിരിക്കുന്നു.
ഈ എൻഡ്പോയിന്റ് സ്ക്രേപ്പ് ചെയ്യുമ്പോൾ provider_connections.test_status മാത്രം അടിസ്ഥാനമാക്കി അലേർട്ട് ചെയ്യരുത്.
തത്സമയ പ്രോബ് പരാജയങ്ങൾക്ക് failed + failedConnections ഉപയോഗിക്കുക; നിലനിൽക്കുന്ന
സ്റ്റിക്കി-സ്റ്റാറ്റസ് എണ്ണം ആവശ്യമുള്ളപ്പോൾ staleDbNonOkCount ഉപയോഗിക്കുക.
Kubernetes പ്രോബ് ശുപാർശകൾ
OmniRoute ഒരു ഒറ്റ Node പ്രോസസ് ആണ് (ഒരു ഇവന്റ് ലൂപ്പ്). സ്റ്റോക്ക് Docker HEALTHCHECK ലഘുവായ /healthz-നെയാണ് ലക്ഷ്യമിടുന്നത്. kubelet ലൈവ്നസ് ഇടവേളകൾക്ക് /api/monitoring/health വളരെ ഭാരമേറിയതാണ്.
| പ്രോബ് | ശുപാർശ ചെയ്യുന്ന ലക്ഷ്യം | കുറിപ്പുകൾ |
|---|---|---|
| സ്റ്റാർട്ടപ്പ് | ദീർഘമായ failureThreshold (അല്ലെങ്കിൽ വലിയ startPeriod) ഉള്ള HTTP GET /healthz |
കോൾഡ് സ്റ്റാർട്ട് + SQLite മൈഗ്രേഷൻ ഏതാനും സെക്കൻഡുകൾ കവിഞ്ഞേക്കാം |
| റെഡിനസ് | HTTP GET /healthz |
ലൈഫ്സൈക്കിൾ ok / starting / stopping (200, 503 എന്നിവ). ലൂപ്പ് CPU-ബ്ലോക്ക് ചെയ്യപ്പെട്ടാൽ ഇപ്പോഴും നില മാറിക്കൊണ്ടിരിക്കും. പ്രതികരണത്തിന് ഒന്നിലധികം സെക്കൻഡ് എടുക്കുന്ന 200 ആരോഗ്യകരമല്ല (#10303) — 3-ബൈറ്റ് ഹാൻഡ്ലർ പ്രവർത്തിക്കുന്നതിന് മുമ്പ് ഇവന്റ് ലൂപ്പിന് പ്രവർത്തനസമയം ലഭിച്ചിരുന്നില്ല എന്നാണ് അതിനർത്ഥം |
| ലൈവ്നസ് | HTTP GET /livez, അല്ലെങ്കിൽ പ്രധാന സേവന പോർട്ടിലെ TCP (PORT, ഡിഫോൾട്ട് 20128) |
/livez പ്രോസസ് പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് മാത്രം പരിശോധിക്കുന്നു (ഹാൻഡ്ലർ പ്രവർത്തിച്ചാൽ എല്ലായ്പ്പോഴും 200). ഇതും ഇവന്റ് ലൂപ്പ് പങ്കിടുന്നു — തിരക്കിലായത് ≠ പ്രവർത്തനരഹിതമായത്, കൂടാതെ TCP-യെക്കാൾ മെച്ചമായി ഇവന്റ്-ലൂപ്പ് പ്രവർത്തനതടസ്സം (#10303) ഇത് കണ്ടെത്തുന്നില്ല. കാറ്റലോഗ്/കംപ്രഷൻ ലോഡിൽ HTTP പ്രോബുകൾ ടൈംഔട്ട് ആകുന്നുവെങ്കിൽ TCP തിരഞ്ഞെടുക്കുക; ഏത് രീതിയിലായാലും ചെറിയ ഇവന്റ്-ലൂപ്പ് തടസ്സങ്ങൾ കാരണം പോഡ് നിർത്തരുത് |
| ഡീപ് ഹെൽത്ത് | ഒരു ബാഹ്യ ചെക്കറിൽ നിന്നുള്ള GET /api/monitoring/health |
kubelet livenessProbe / കർശനമായ readinessProbe എന്നിവയ്ക്കുള്ളതല്ല |
ഉദാഹരണ ഘടന (നിങ്ങളുടെ കോൾഡ്-സ്റ്റാർട്ട്, കംപ്രഷൻ ലോഡ് എന്നിവയ്ക്ക് അനുസരിച്ച് ത്രെഷോൾഡുകൾ ക്രമീകരിക്കുക):
ports:
- name: http
containerPort: 20128
startupProbe:
httpGet:
path: /healthz
port: http
failureThreshold: 30
periodSeconds: 5
readinessProbe:
httpGet:
path: /healthz
port: http
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 6
livenessProbe:
httpGet:
path: /livez
port: http
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 6
# ഇവന്റ്-ലൂപ്പ് തടസ്സപ്പെടുമ്പോൾ HTTP /livez ഇപ്പോഴും ടൈംഔട്ട് ആയേക്കാം. TCP ആണ്
# കൂടുതൽ സുരക്ഷിതമായ ബദൽ:
# tcpSocket:
# port: http
kubelet ലൈവ്നസ് /api/monitoring/health-ലേക്ക് ചൂണ്ടിക്കാണിക്കരുത്. ആ പാത്ത് യഥാർത്ഥ DB/മോണിറ്ററിംഗ് പ്രവർത്തനങ്ങൾ നിർവഹിക്കുന്നതിനാൽ ലോഡിൽ തെറ്റായ പോസിറ്റീവ് ഫലമുണ്ടാകും.
ബന്ധപ്പെട്ടവ: #10052 (ഇവന്റ് ലൂപ്പ് തിരക്കിലായിരിക്കുമ്പോഴുള്ള പ്രോബുകൾ), #9685 / #10055 (കാറ്റലോഗ് പ്രൈസിംഗ് അമിതമായി വിഭവങ്ങൾ ഉപയോഗിക്കുന്നത്), #10117 (കംപ്രഷൻ ടോക്കൺ-കൗണ്ടിംഗ് അമിതമായി വിഭവങ്ങൾ ഉപയോഗിക്കുന്നത്).
ഐച്ഛിക റിക്വസ്റ്റ്-പാത്ത് പ്രവർത്തനം (മെമ്മറി, സ്കില്ലുകൾ, ടോക്കൺ പുതുക്കൽ)
മെമ്മറി എക്സ്ട്രാക്ഷൻ, സ്കിൽ ഇൻജക്ഷൻ, OAuth ടോക്കൺ പുതുക്കൽ എന്നിവ /healthz-നൊപ്പം പ്രധാന Node ഇവന്റ് ലൂപ്പ് പങ്കിടുന്നു. അവ ഡാഷ്ബോർഡ്-ടോഗിൾ സവിശേഷതകളാണ് (memoryEnabled, skillsEnabled), വർക്കർ പൂൾ അല്ല. പരിസ്ഥിതി — ഇവന്റ്-ലൂപ്പ് ചെലവ് കാണുക.
പ്രൊവൈഡർ ഹെൽത്ത്
REST എൻഡ്പോയിന്റ് ഇല്ല. പ്രൊവൈഡർ ഹെൽത്ത് ഡാറ്റ MCP ടൂൾ
observability_snapshotവഴിയോ ഡാഷ്ബോർഡിലെ/dashboard/providersപേജ് വഴിയോ ലഭ്യമാണ്.
പ്രൊവൈഡർ വിശദാംശങ്ങൾ
REST എൻഡ്പോയിന്റ് ഇല്ല. ഓരോ പ്രൊവൈഡറിന്റെയും വിശദാംശങ്ങൾ ഡാഷ്ബോർഡിലെ
/dashboard/providersപേജിൽ ലഭ്യമാണ്.
പ്രൊവൈഡർ ഹെൽത്ത് ഓട്ടോപൈലറ്റ്
providerHealthAutopilot.ts മൊഡ്യൂൾ ഇനിപ്പറയുന്ന കാര്യങ്ങൾ ചെയ്യുന്ന ഒരു സ്വയം സുഖപ്പെടുന്ന സിസ്റ്റമാണ്:
- പ്രൊവൈഡറിലെ പ്രശ്നങ്ങൾ കണ്ടെത്തുന്നു (സർക്യൂട്ട് തുറന്നിരിക്കുക, കൂൾഡൗണുകൾ, ലോക്കൗട്ടുകൾ, ക്വോട്ട മുന്നറിയിപ്പുകൾ)
- അവ പരിഹരിക്കുന്നതിനുള്ള ശുപാർശചെയ്ത നടപടികൾ സൃഷ്ടിക്കുന്നു
- കുറഞ്ഞ അപകടസാധ്യതയുള്ള നടപടികൾ വേണമെങ്കിൽ സ്വയമേവ നടപ്പിലാക്കുന്നു
കണ്ടെത്തുന്ന പ്രശ്ന തരങ്ങൾ
| പ്രശ്ന തരം | തീവ്രത | ഉദാഹരണ സാഹചര്യം |
|---|---|---|
provider_circuit_open |
ഗുരുതരം | 5 പരാജയങ്ങൾക്കുശേഷം സർക്യൂട്ട് ബ്രേക്കർ തുറന്നിരിക്കുന്നു |
provider_circuit_half_open |
മുന്നറിയിപ്പ് | സർക്യൂട്ട് വീണ്ടെടുക്കൽ പരിശോധിക്കുന്നു |
connection_cooldown |
മുന്നറിയിപ്പ് | 429-നുശേഷം കണക്ഷൻ കൂൾഡൗണിലാണ് |
stale_connection_error |
മുന്നറിയിപ്പ് | അവസാന റിഫ്രഷ് 30+ മിനിറ്റ് മുമ്പ് പരാജയപ്പെട്ടു |
terminal_connection_error |
ഗുരുതരം | OAuth പിൻവലിച്ചു, കീ അസാധുവാണ് |
inactive_connection |
വിവരം | ക്രമീകരണങ്ങളിൽ കണക്ഷൻ പ്രവർത്തനരഹിതമാക്കി |
model_lockout |
മുന്നറിയിപ്പ് | നിർദ്ദിഷ്ട മോഡൽ ക്വാറന്റൈനിലാണ് |
quota_monitor_warning |
മുന്നറിയിപ്പ് | ക്വോട്ട ഉപയോഗം 80%+ ആണ് |
സൃഷ്ടിക്കുന്ന നടപടി തരങ്ങൾ
| നടപടി | അപകടസാധ്യത | വിവരണം |
|---|---|---|
clear_provider_breaker |
മധ്യമം | സർക്യൂട്ട് ബ്രേക്കർ അടഞ്ഞ നിലയിലേക്ക് പുനഃസജ്ജമാക്കുക |
clear_connection_cooldown |
കുറവ് | ഒരു കണക്ഷനിൽനിന്ന് കൂൾഡൗൺ നീക്കംചെയ്യുക |
clear_stale_connection_error |
കുറവ് | കാലഹരണപ്പെട്ട പിശക് ഫ്ലാഗ് മായ്ക്കുക |
clear_model_lockout |
കുറവ് | ക്വാറന്റൈനിലുള്ള മോഡൽ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക |
reactivate_connection |
മധ്യമം | പ്രവർത്തനരഹിതമാക്കിയ കണക്ഷൻ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക |
deactivate_connection |
ഉയർന്നത് | പ്രശ്നകരമായ കണക്ഷൻ പ്രവർത്തനരഹിതമാക്കുക |
API
REST എൻഡ്പോയിന്റ് ഇല്ല. ഓട്ടോപൈലറ്റ് പ്രശ്നങ്ങൾ MCP ടൂൾ
observability_snapshotവഴിയോ ഡാഷ്ബോർഡിലൂടെയോ ലഭ്യമാണ്. ഓട്ടോപൈലറ്റ് ആന്തരികമായി പ്രവർത്തിക്കുന്നു; അതിന്റെ പെരുമാറ്റം പരിസ്ഥിതി വേരിയബിളുകൾ വഴിയല്ല, ക്രമീകരണ DB-യിലെ (ഓരോ കണക്ഷനിലുമുള്ളautopilotModeഫീൽഡ്) ക്രമീകരണങ്ങളിലൂടെയാണ് നിർണ്ണയിക്കുന്നത് — ഓട്ടോപൈലറ്റ്-മോഡ് env var-നായിgrep -rnപ്രവർത്തിപ്പിച്ചാൽ ഫലങ്ങളൊന്നും ലഭിക്കില്ല.
ഓട്ടോപൈലറ്റ് മോഡ്
ഓട്ടോപൈലറ്റ് സ്ഥിരസ്ഥിതിയായി മാനുവൽ മോഡിലാണ് പ്രവർത്തിക്കുന്നത് — ഇത് പ്രശ്നങ്ങൾ കണ്ടെത്തുകയും ശുപാർശചെയ്ത നടപടികൾ സൃഷ്ടിക്കുകയും ചെയ്യുന്നു, എന്നാൽ അവ സ്വയമേവ പ്രയോഗിക്കുന്നില്ല. ഡാഷ്ബോർഡ് വഴി നടപടികൾ പ്രയോഗിക്കാം.
കോമ്പോ ഹെൽത്ത് ഓട്ടോപൈലറ്റ്
comboHealthAutopilot.ts എന്നത് പ്രൊവൈഡർ ഓട്ടോപൈലറ്റിന്റെ കോമ്പോ-നിർദ്ദിഷ്ട പതിപ്പാണ്. ഇത്:
- അനാരോഗ്യകരമായ കോമ്പോകൾ കണ്ടെത്തുന്നു
- ടാർഗെറ്റുകളുടെ ക്രമം മാറ്റാൻ ശുപാർശചെയ്യുന്നു
- തകരാറിലായ ടാർഗെറ്റുകൾ പ്രവർത്തനരഹിതമാക്കാൻ നിർദ്ദേശിക്കുന്നു
- N പരാജയങ്ങൾക്കുശേഷം പ്രവർത്തനരഹിതമായ ടാർഗെറ്റുകൾ സ്വയമേവ നീക്കംചെയ്യുന്നു
കോമ്പോ പ്രശ്നങ്ങളുടെ ഉദാഹരണങ്ങൾ
കോമ്പോ "always-on" (മുൻഗണനാ തന്ത്രം)
├─ ടാർഗെറ്റ് 1: openai/gpt-5 (ആരോഗ്യകരം)
├─ ടാർഗെറ്റ് 2: anthropic/claude-opus-4-6 (⚠️ 14:00 വരെ മോഡൽ ലോക്കൗട്ട്)
└─ ടാർഗെറ്റ് 3: kiro/claude-sonnet-4-5 (ആരോഗ്യകരം)
ശുപാർശചെയ്ത നടപടി: ക്രമം മാറ്റുക — ലോക്കൗട്ട് അവസാനിക്കുന്നതുവരെ kiro-യെ anthropic-ന് മുകളിലേക്ക് നീക്കുക
ക്വോട്ട മോണിറ്ററുകൾ
സബ്സ്ക്രിപ്ഷൻ പ്രൊവൈഡറുകൾക്കായി (Claude Code, Codex, GitHub Copilot) observability.ts ഓരോ സെഷനുമുള്ള ക്വോട്ട മോണിറ്ററുകൾ ലഭ്യമാക്കുന്നു:
interface QuotaMonitorSnapshot {
sessionId: string;
provider: string;
accountId: string;
status: "starting" | "idle" | "healthy" | "warning" | "exhausted" | "error";
lastQuotaPercent: number | null; // 0-100
lastQuotaUsed: number | null;
lastQuotaTotal: number | null;
lastResetAt: string | null;
nextPollAt: string | null;
totalPolls: number;
totalAlerts: number;
consecutiveFailures: number;
}
സ്റ്റാറ്റസുകളുടെ അർത്ഥം
| സ്റ്റാറ്റസ് | എപ്പോൾ | UI നടപടി |
|---|---|---|
starting |
പ്രാരംഭ പോളിംഗ് പുരോഗമിക്കുന്നു | സ്പിന്നർ |
idle |
സമീപകാല പ്രവർത്തനമൊന്നുമില്ല | ഡാഷ്ബോർഡിൽനിന്ന് മറയ്ക്കുന്നു |
healthy |
ക്വോട്ടയിൽ > 50% ശേഷിക്കുന്നു | പച്ച ബിന്ദു |
warning |
ക്വോട്ടയിൽ < 50% ശേഷിക്കുന്നു | മഞ്ഞ മുന്നറിയിപ്പ് |
exhausted |
ക്വോട്ട = 0% | ചുവന്ന ബ്ലോക്ക്, അടുത്ത പ്രൊവൈഡറിലേക്ക് റൂട്ട് ചെയ്യുക |
error |
പോളിംഗ് പരാജയപ്പെട്ടു | ചുവന്ന ബിന്ദു, ഉടൻ വീണ്ടും ശ്രമിക്കുക |
API
REST എൻഡ്പോയിന്റ് ഇല്ല. ക്വോട്ട മോണിറ്റർ ഡാറ്റ MCP ടൂൾ
observability_snapshotവഴിയോ ഡാഷ്ബോർഡിലൂടെയോ ലഭ്യമാണ്.
നിരീക്ഷണക്ഷമതാ സ്നാപ്പ്ഷോട്ട്
MCP ടൂൾ observability_snapshot, AI ഏജന്റുകൾക്കായി ഒരു സമ്പൂർണ്ണ സിസ്റ്റം സ്നാപ്പ്ഷോട്ട് നൽകുന്നു:
{
"circuitBreakers": [
{
"name": "openai",
"state": "closed",
"failureCount": 0,
"lastFailureTime": null,
"retryAfterMs": null
}
],
"sessions": [
{
"sessionId": "sess-123",
"createdAt": 1234567890,
"lastActive": 1234567999,
"requestCount": 42,
"connectionId": "conn-456",
"ageMs": 109
}
],
"quotaMonitors": {/* മുകളിൽ കാണുക */},
"uptime": 12345,
"version": "3.8.16"
}
റൂട്ടിംഗ് തീരുമാനങ്ങൾ എടുക്കാൻ ഏജന്റുകൾ ഇത് ഉപയോഗിക്കുന്നു — ഉദാഹരണത്തിന്, "openai-യുടെ സർക്യൂട്ട് തുറന്നിരിക്കുകയാണെങ്കിൽ, ആദ്യം anthropic-ലേക്ക് റൂട്ട് ചെയ്യുക".
ടോക്കൺ ആരോഗ്യ പരിശോധന
OAuth പ്രൊവൈഡറുകൾക്ക് (Claude Code, GitHub Copilot, Cursor) ആനുകാലിക ടോക്കൺ പുതുക്കൽ ആവശ്യമാണ്. src/lib/tokenHealthCheck.ts ഒരു പശ്ചാത്തല ഷെഡ്യൂളർ പ്രവർത്തിപ്പിക്കുന്നു:
- സ്വീപ്പ് ടിക്ക്: ഓരോ 60 സെക്കൻഡിലും (
src/lib/tokenHealthCheck.ts:30-ലെTICK_MS = 60 * 1000സ്വീപ്പ്) - ഓരോ കണക്ഷനുമുള്ള ആരോഗ്യ പരിശോധനാ ഇടവേള: ഡിഫോൾട്ടായി 60 മിനിറ്റ് (
DEFAULT_HEALTH_CHECK_INTERVAL_MIN = 60); ക്രമീകരണ DB വഴി കോൺഫിഗർ ചെയ്യാം - 401 ലഭിക്കുമ്പോഴുള്ള മുൻകരുതൽ പുതുക്കൽ: ഓരോ കണക്ഷനുമുള്ള ഇന്റർസെപ്റ്റർ കൈകാര്യം ചെയ്യുന്നു
ടോക്കൺ ആരോഗ്യനില
interface TokenHealth {
connectionId: string;
provider: string;
status: "valid" | "expiring_soon" | "expired" | "refresh_failed";
expiresAt: string;
lastRefresh: string;
nextRefresh: string;
consecutiveFailures: number;
}
കോൺഫിഗറേഷൻ
ടോക്കൺ ആരോഗ്യ പരിശോധനാ കോൺഫിഗറേഷൻ tokenHealthCheck.ts ആന്തരികമായി കൈകാര്യം ചെയ്യുന്നു.
ടോക്കൺ ആരോഗ്യം
REST എൻഡ്പോയിന്റ് ഇല്ല. ടോക്കൺ ആരോഗ്യ ഡാറ്റ ഡാഷ്ബോർഡ് വഴിയോ MCP ടൂൾ
observability_snapshotവഴിയോ ലഭ്യമാണ്.
അലേർട്ടിംഗ്
ബിൽറ്റ്-ഇൻ ചാനലുകൾ
OmniRoute 3 അലേർട്ട് ചാനലുകൾ പിന്തുണയ്ക്കുന്നു:
| ചാനൽ | സജ്ജീകരണം | ഉപയോഗ സാഹചര്യം |
|---|---|---|
| ഡാഷ്ബോർഡ് ബാനർ | എപ്പോഴും ഓൺ | ആപ്പിനുള്ളിലെ അറിയിപ്പുകൾ |
| വെബ്ഹുക്ക് | URL കോൺഫിഗർ ചെയ്യുക | Slack, Discord, PagerDuty |
| ലോഗ് | ഡിഫോൾട്ട് | ബാഹ്യ ലോഗ് സമാഹരണത്തിനായി |
വെബ്ഹുക്ക് കോൺഫിഗറേഷൻ
കുറിപ്പ്: വെബ്ഹുക്ക് അലേർട്ടിംഗ് കോൺഫിഗറേഷൻ ഡാഷ്ബോർഡിലെ Settings പേജ് വഴി കൈകാര്യം ചെയ്യുന്നു. വെബ്ഹുക്ക് URL, ഇവന്റ് ഫിൽട്ടറിംഗ്, പേലോഡ് കസ്റ്റമൈസേഷൻ എന്നിവയ്ക്കായി Settings UI കാണുക.
അലേർട്ട് തരങ്ങൾ
| അലേർട്ട് | എപ്പോൾ | ഡിഫോൾട്ട് തീവ്രത |
|---|---|---|
provider_circuit_open |
സർക്യൂട്ട് തുറക്കുമ്പോൾ | നിർണായകം |
provider_circuit_half_open |
സർക്യൂട്ട് വീണ്ടെടുക്കൽ പരീക്ഷിക്കുമ്പോൾ | വിവരം |
quota_warning |
ക്വാട്ട 80%+ ആകുമ്പോൾ | മുന്നറിയിപ്പ് |
quota_exhausted |
ക്വാട്ട 100% ആകുമ്പോൾ | നിർണായകം |
token_refresh_failed |
തുടർച്ചയായ 3+ പുതുക്കൽ പരാജയങ്ങൾ ഉണ്ടാകുമ്പോൾ | മുന്നറിയിപ്പ് |
token_expired |
ടോക്കൺ കാലഹരണപ്പെട്ടതിന് ശേഷം | നിർണായകം |
combo_target_unhealthy |
കോംബോ ടാർഗറ്റ് 1h+ കൂൾഡൗണിലായിരിക്കുമ്പോൾ | മുന്നറിയിപ്പ് |
db_integrity_warning |
FK ലംഘനങ്ങൾ > 0 ആയിരിക്കുമ്പോൾ | മുന്നറിയിപ്പ് |
heap_pressure |
ഹീപ് ഉപയോഗം പരിധിയുടെ > 80% ആകുമ്പോൾ | മുന്നറിയിപ്പ് |
പ്രകടന മെട്രിക്കുകൾ
ട്രാക്ക് ചെയ്യുന്ന മെട്രിക്കുകൾ
| മെട്രിക് | തരം | ഉറവിടം |
|---|---|---|
request_count |
കൗണ്ടർ | services/usage.ts |
request_latency_ms |
ഹിസ്റ്റോഗ്രാം | services/usage.ts |
tokens_consumed |
കൗണ്ടർ | services/usage.ts |
cost_usd |
കൗണ്ടർ | services/usage.ts |
provider_errors |
കൗണ്ടർ | services/errorClassifier.ts |
circuit_state_changes |
കൗണ്ടർ | services/resilience.ts |
cache_hits |
കൗണ്ടർ | services/signatureCache.ts |
compression_savings |
ഹിസ്റ്റോഗ്രാം | services/compression/stats.ts |
quota_used |
ഗേജ് | services/quotaMonitor.ts |
memory_used_mb |
ഗേജ് | observability.ts |
ലേറ്റൻസി പെർസെന്റൈലുകൾ (p50/p95/p99)
REST എൻഡ്പോയിന്റ് ഇല്ല. ലേറ്റൻസി പെർസെന്റൈൽ ഡാറ്റ ഡാഷ്ബോർഡിലെ
/dashboard/healthപേജിൽ ലഭ്യമാണ്. Prometheus/OpenTelemetry എക്സ്പോർട്ട് v3.9-നായി ആസൂത്രണം ചെയ്തിരിക്കുന്നു.
Prometheus / OpenTelemetry എക്സ്പോർട്ട് (ഘട്ടം 2)
v3.9-നായി ആസൂത്രണം ചെയ്തിരിക്കുന്നത്: Prometheus, OpenTelemetry, Datadog എന്നിവയിലേക്കുള്ള നേറ്റീവ് എക്സ്പോർട്ട്.
നിലവിൽ, ഏതെങ്കിലും HTTP-അധിഷ്ഠിത മോണിറ്ററിംഗ് സിസ്റ്റം (Prometheus blackbox exporter, Datadog HTTP check മുതലായവ) ഉപയോഗിച്ച് /api/monitoring/health സ്ക്രേപ്പ് ചെയ്യുക.
അലേർട്ടിംഗ് പാചകക്കുറിപ്പുകൾ
Slack
കുറിപ്പ്: ഡാഷ്ബോർഡിലെ Settings പേജ് വഴിയാണ് വെബ്ഹുക്ക് അലേർട്ടിംഗ് കോൺഫിഗർ ചെയ്യുന്നത് — ഇതിനായി പ്രത്യേക വെബ്ഹുക്ക് എൻവയോൺമെന്റ് വേരിയബിളുകൾ ഇല്ല (
grep -rnപൂജ്യം ഫലങ്ങളാണ് നൽകുന്നത്). വെബ്ഹുക്ക് URL, ഇവന്റ് ഫിൽട്ടറിംഗ്, പേലോഡ് ഇഷ്ടാനുസൃതമാക്കൽ എന്നിവയ്ക്കായി Settings UI കാണുക.
Discord
വെബ്ഹുക്ക് അലേർട്ടിംഗ് Slack-ന്റെ അതേ Settings UI പ്രവാഹം ഉപയോഗിക്കുന്നു. Discord അതേ JSON പേലോഡ് ഘടന സ്വീകരിക്കുന്നു.
PagerDuty
വെബ്ഹുക്ക് അലേർട്ടിംഗ് അതേ Settings UI പ്രവാഹം ഉപയോഗിക്കുന്നു. PagerDuty Events API v2 റൂട്ടിംഗ് കീകൾ Settings UI-യിൽ കോൺഫിഗർ ചെയ്യുന്നു.
ഇഷ്ടാനുസൃത വെബ്ഹുക്ക് (JSON)
JSON ബോഡിയോടുകൂടിയ POST സ്വീകരിക്കുന്ന ഏത് HTTP എൻഡ്പോയിന്റും പ്രവർത്തിക്കും. Settings UI-യിൽ URL കോൺഫിഗർ ചെയ്യുക.
ഡാഷ്ബോർഡ് കോൺഫിഗറേഷൻ
Health ഡാഷ്ബോർഡ് ഇഷ്ടാനുസൃതമാക്കുക
ഒരു ~/.omniroute/dashboard.json സൃഷ്ടിക്കുക:
{
"health": {
"sections": ["server_status", "database", "providers", "quota_monitors", "recent_errors"],
"refresh_interval_ms": 5000
}
}
ഒരു പ്രൊവൈഡറെ മുകളിൽ പിൻ ചെയ്യുക
{
"health": {
"pinned_providers": ["openai", "anthropic"]
}
}
പ്രശ്നപരിഹാരം
"പ്രൊവൈഡർ ആരോഗ്യകരമാണെന്ന് പറയുന്നു, പക്ഷേ അഭ്യർത്ഥനകൾ പരാജയപ്പെടുന്നു"
- autopilot പ്രശ്നങ്ങൾ പരിശോധിക്കുക — ഒരു മോഡൽ ലോക്ക് ഔട്ട് ആയിരിക്കാം
- നിർദ്ദിഷ്ട പിശക് ക്ലാസിനായി സമീപകാല പിശകുകൾ നോക്കുക
- പ്രൊവൈഡർ കാർഡിലെ കണക്ഷൻ ടെസ്റ്റ് പരീക്ഷിക്കുക
- പ്രൊവൈഡർ അപ്സ്ട്രീമിൽ റേറ്റ്-ലിമിറ്റ് ചെയ്യപ്പെട്ടിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുക (ലോക്കലായി ദൃശ്യമല്ല)
"ക്വോട്ട ആരോഗ്യകരമാണെന്ന് പറയുന്നു, പക്ഷേ എനിക്ക് 429-കൾ കാണുന്നു"
- 429 എന്നത് നിങ്ങൾ ക്വോട്ട ഉപയോഗിച്ചുതീർത്തതായി പ്രൊവൈഡർ പറയുന്നു എന്നാണ് അർത്ഥം
- OmniRoute-ന്റെ ക്വോട്ട ട്രാക്കിംഗ് കാലഹരണപ്പെട്ടത് ആയിരിക്കാം — പ്രൊവൈഡറുടെ അപ്സ്ട്രീം വിവരമാണ് ആധികാരികം
- ആന്തരിക ക്വോട്ട മോണിറ്റർ വഴി ക്വോട്ട ഡാറ്റ സ്വയമേവ പുതുക്കപ്പെടുന്നു
"എല്ലാ ടാർഗറ്റുകളും ആരോഗ്യകരമായി കാണപ്പെടുന്നുണ്ടെങ്കിലും Combo പരാജയപ്പെടുന്നു"
- ടാർഗറ്റ് ക്രമീകരണ പ്രശ്നങ്ങൾക്കായി combo health ഡാഷ്ബോർഡ് പരിശോധിക്കുക
- fallback ഇവന്റുകൾ നോക്കുക — combo വളരെ വേഗത്തിൽ എല്ലാ ഓപ്ഷനുകളും ഉപയോഗിച്ചുതീർക്കുന്നുണ്ടാകാം
- strategy നിങ്ങളുടെ ഉപയോഗ സാഹചര്യവുമായി പൊരുത്തപ്പെടുന്നുവെന്ന് ഉറപ്പാക്കുക (priority vs round-robin vs auto)
"ഡാറ്റാബേസ് ഹെൽത്ത് ചെക്ക് പരാജയപ്പെടുന്നു"
sqlite3 ~/.omniroute/storage.sqlite "PRAGMA integrity_check;"പ്രവർത്തിപ്പിക്കുക- "ok" ആണെങ്കിൽ — തെറ്റായ മുന്നറിയിപ്പാണ്; ഹെൽത്ത് ചെക്ക് ആവശ്യത്തിലധികം കർശനമാണ്
- മറ്റെന്തെങ്കിലും ആണെങ്കിൽ — OmniRoute നിർത്തുക, തുടർന്ന് ദുരന്ത വീണ്ടെടുക്കൽ ഗൈഡ് പിന്തുടരുക
"മെമ്മറി ഹീപ്പ് സമ്മർദ്ദം ഗുരുതരമാണ്"
# നിലവിലെ ഹീപ്പ് പരിശോധിക്കുക
node -e "console.log(process.memoryUsage())"
# മാനുവൽ GC ട്രിഗർ ചെയ്യുക (--expose-gc ആണെങ്കിൽ)
node --expose-gc -e "global.gc(); console.log(process.memoryUsage())"
# ഒരേസമയം കൈകാര്യം ചെയ്യുന്ന അഭ്യർത്ഥനകളുടെ എണ്ണം കുറയ്ക്കുക (ഒരു env var വഴിയല്ല, ഡാഷ്ബോർഡിലെ Settings പേജ് വഴി സജ്ജീകരിക്കുക)
# `MAX_CONCURRENT_REQUESTS` env var ഇല്ല — Settings → Concurrency എന്നതിൽ ഇത് കോൺഫിഗർ ചെയ്യുക.
ഇതും കാണുക
- USAGE_QUOTA_GUIDE.md — ഉപയോഗവും ചെലവും ട്രാക്കുചെയ്യൽ
- DATABASE_GUIDE.md — DB സ്കീമ + ആരോഗ്യനില
- PROXY_GUIDE.md — പ്രോക്സി ആരോഗ്യനില (പ്രത്യേക കാഷ്)
- ARCHITECTURE.md — സിസ്റ്റം ആർക്കിടെക്ചർ
- RESILIENCE_GUIDE.md — സർക്യൂട്ട് ബ്രേക്കറിന്റെ വിശദാംശങ്ങൾ
- ഉറവിടം:
src/lib/monitoring/(4 ഫയലുകൾ, 2121 LOC)