add per-collector tick timing logs (debug, >5ms threshold)
This commit is contained in:
@@ -442,6 +442,7 @@ export class MetricsCollector extends EventEmitter {
|
||||
}
|
||||
|
||||
_tick() {
|
||||
const t0 = performance.now()
|
||||
try {
|
||||
const ts = Date.now()
|
||||
const dtSec = this.lastTs ? (ts - this.lastTs) / 1000 : this.intervalMs / 1000
|
||||
@@ -507,14 +508,19 @@ export class MetricsCollector extends EventEmitter {
|
||||
} catch (err) {
|
||||
log.error('Collector tick failed', { error: err.message })
|
||||
}
|
||||
const dur = performance.now() - t0
|
||||
if (dur > 15) log.debug('tick', { collector: 'main', durMs: Math.round(dur * 10) / 10 })
|
||||
}
|
||||
|
||||
_safeCollect(name, fn) {
|
||||
const t0 = performance.now()
|
||||
try {
|
||||
fn()
|
||||
} catch (err) {
|
||||
log.warn(`Collector ${name} failed`, { error: err.message })
|
||||
}
|
||||
const dur = performance.now() - t0
|
||||
if (dur > 5) log.debug(`collect:${name}`, { durMs: Math.round(dur * 10) / 10 })
|
||||
}
|
||||
|
||||
_collectCpuFallback(batch, ts, dtSec) {
|
||||
|
||||
@@ -244,6 +244,7 @@ export class CgroupsCollector extends EventEmitter {
|
||||
}
|
||||
|
||||
async _tick() {
|
||||
const t0 = performance.now()
|
||||
try {
|
||||
await this._refreshNames()
|
||||
} catch {
|
||||
@@ -383,6 +384,8 @@ export class CgroupsCollector extends EventEmitter {
|
||||
}
|
||||
|
||||
if (batch.length) this.emit('samples', batch)
|
||||
const dur = performance.now() - t0
|
||||
if (dur > 10) log.debug('tick', { collector: 'cgroups', durMs: Math.round(dur * 10) / 10 })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -142,6 +142,7 @@ export class FsStatsCollector extends CollectorPlugin {
|
||||
}
|
||||
|
||||
async collect() {
|
||||
const t0 = performance.now()
|
||||
const rows = collectFsStatsData()
|
||||
if (!rows.length) return []
|
||||
const ts = Date.now()
|
||||
@@ -157,6 +158,8 @@ export class FsStatsCollector extends CollectorPlugin {
|
||||
values: { write_kb: row.write_kb, read_kb: row.read_kb },
|
||||
})
|
||||
}
|
||||
const dur = performance.now() - t0
|
||||
if (dur > 5) log.debug('tick', { collector: 'fs-stats', durMs: Math.round(dur * 10) / 10 })
|
||||
return batch
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,6 +240,7 @@ export class ProcessCollector extends EventEmitter {
|
||||
}
|
||||
|
||||
_tick() {
|
||||
const t0 = performance.now()
|
||||
try {
|
||||
const procs = listProcStats()
|
||||
if (!procs) return
|
||||
@@ -381,6 +382,8 @@ export class ProcessCollector extends EventEmitter {
|
||||
} catch (err) {
|
||||
log.warn('Process tick failed', { error: err.message })
|
||||
}
|
||||
const dur = performance.now() - t0
|
||||
if (dur > 10) log.debug('tick', { collector: 'processes', durMs: Math.round(dur * 10) / 10 })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -230,6 +230,7 @@ export class SensorsCollector extends EventEmitter {
|
||||
}
|
||||
|
||||
_tick() {
|
||||
const t0 = performance.now()
|
||||
const ts = Date.now()
|
||||
const samples = sampleSensors()
|
||||
if (!samples.length) return
|
||||
@@ -240,6 +241,8 @@ export class SensorsCollector extends EventEmitter {
|
||||
values: s.values,
|
||||
}))
|
||||
this.emit('samples', batch)
|
||||
const dur = performance.now() - t0
|
||||
if (dur > 5) log.debug('tick', { collector: 'sensors', durMs: Math.round(dur * 10) / 10 })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -122,6 +122,7 @@ export class SocketsCollector extends EventEmitter {
|
||||
}
|
||||
|
||||
_tick() {
|
||||
const t0 = performance.now()
|
||||
const ts = Date.now()
|
||||
const v4 = countTcp('/proc/net/tcp')
|
||||
const v6 = countTcp('/proc/net/tcp6')
|
||||
@@ -140,6 +141,8 @@ export class SocketsCollector extends EventEmitter {
|
||||
},
|
||||
},
|
||||
])
|
||||
const dur = performance.now() - t0
|
||||
if (dur > 5) log.debug('tick', { collector: 'sockets', durMs: Math.round(dur * 10) / 10 })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user