mirror of
https://git.sync.wtf/troed/oc-ls-stats.git
synced 2026-08-31 09:43:38 +03:00
add debug logging to extractProviderUrls and pollMetrics
This commit is contained in:
@@ -123,23 +123,32 @@ function stripBaseUrlPath(baseURL: string): string {
|
||||
}
|
||||
|
||||
function extractProviderUrls(config: unknown): string[] {
|
||||
if (!config || typeof config !== "object") return []
|
||||
if (!config || typeof config !== "object") { debug("extractProviderUrls: config is null/undefined or not object"); return [] }
|
||||
const obj = config as Record<string, unknown>
|
||||
const provider = obj.provider
|
||||
if (!provider || typeof provider !== "object") return []
|
||||
if (!provider || typeof provider !== "object") { debug("extractProviderUrls: no provider in config"); return [] }
|
||||
|
||||
const urls: string[] = []
|
||||
let total = 0
|
||||
let matched = 0
|
||||
for (const [key, val] of Object.entries(provider as Record<string, unknown>)) {
|
||||
total++
|
||||
if (val && typeof val === "object") {
|
||||
const opts = (val as Record<string, unknown>).options
|
||||
if (opts && typeof opts === "object") {
|
||||
const baseURL = (opts as Record<string, unknown>).baseURL || (opts as Record<string, unknown>).base_url
|
||||
debug(`extractProviderUrls: provider="${key}" baseURL=${baseURL}`)
|
||||
if (typeof baseURL === "string" && key.toLowerCase().includes("llama") && !key.toLowerCase().includes("ollama")) {
|
||||
urls.push(stripBaseUrlPath(baseURL))
|
||||
matched++
|
||||
debug(`extractProviderUrls: MATCH provider="${key}" -> ${urls[urls.length-1]}`)
|
||||
} else {
|
||||
debug(`extractProviderUrls: SKIP provider="${key}" (llama=${key.toLowerCase().includes("llama")} ollama=${key.toLowerCase().includes("ollama")})`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
debug(`extractProviderUrls: total=${total} matched=${matched} urls=${JSON.stringify(urls)}`)
|
||||
return urls
|
||||
}
|
||||
|
||||
@@ -304,9 +313,13 @@ const tui: TuiPlugin = async (api) => {
|
||||
const prevProcessingSlotIds = new Set(Object.keys(tracker.prevNdBySlot).map(Number))
|
||||
const currProcessingSlotIds = new Set<number>()
|
||||
|
||||
debug(`pollMetrics: urls=${JSON.stringify(llamaServerUrls)} model=${model}`)
|
||||
for (const baseUrl of llamaServerUrls) {
|
||||
debug(`pollMetrics: polling ${baseUrl}`)
|
||||
const slots = await fetchSlots(baseUrl, model)
|
||||
debug(`pollMetrics: ${baseUrl} response=${JSON.stringify(slots)?.slice(0, 500)}`)
|
||||
const slotList = Array.isArray(slots) ? slots : slots ? Object.values(slots) : []
|
||||
debug(`pollMetrics: ${baseUrl} slotList.length=${slotList.length}`)
|
||||
if (slotList.length === 0) {
|
||||
tracker.failure = "n/a"
|
||||
bump()
|
||||
@@ -509,11 +522,13 @@ const tui: TuiPlugin = async (api) => {
|
||||
|
||||
try {
|
||||
const configUrls = await loadConfigUrls(api)
|
||||
debug(`init: configUrls=${JSON.stringify(configUrls)} fallback=${JSON.stringify(["http://localhost:8080"])}`)
|
||||
llamaServerUrls = configUrls.length > 0 ? configUrls : ["http://localhost:8080"]
|
||||
} catch (e) {
|
||||
console.error("[oc-ls-stats] loadConfigUrls error:", e)
|
||||
llamaServerUrls = ["http://localhost:8080"]
|
||||
}
|
||||
debug(`init: final llamaServerUrls=${JSON.stringify(llamaServerUrls)}`)
|
||||
|
||||
api.slots.register({
|
||||
slots: {
|
||||
|
||||
Reference in New Issue
Block a user