69 lines
1.7 KiB
TypeScript
69 lines
1.7 KiB
TypeScript
import { i18n } from '../i18n'
|
|
import { sdk } from '../sdk'
|
|
import { uiPort } from '../utils'
|
|
|
|
export const resetLatency = sdk.Action.withoutInput(
|
|
// id
|
|
'reset-latency',
|
|
|
|
// metadata
|
|
async ({ effects }) => ({
|
|
name: i18n('Reset Block Latency'),
|
|
description: i18n(
|
|
'Zeroes the block-update latency counters (avg, last, wasted work, block count). Use this after tuning ZMQ or ckpool to start fresh measurements.',
|
|
),
|
|
warning: null,
|
|
allowedStatuses: 'only-running',
|
|
group: null,
|
|
visibility: 'enabled',
|
|
}),
|
|
|
|
// the execution function
|
|
async ({ effects }) => {
|
|
const ok = await sdk.SubContainer.withTemp(
|
|
effects,
|
|
{ imageId: 'main' },
|
|
null,
|
|
'reset-latency',
|
|
async (sub) => {
|
|
const res = await sub.exec([
|
|
'curl',
|
|
'-sf',
|
|
'--max-time',
|
|
'10',
|
|
'-X',
|
|
'POST',
|
|
`http://127.0.0.1:${uiPort}/api/admin/reset-latency`,
|
|
])
|
|
return res.exitCode === 0
|
|
},
|
|
)
|
|
|
|
if (!ok) {
|
|
return {
|
|
version: '1',
|
|
title: i18n('Reset Block Latency'),
|
|
message: i18n(
|
|
'Failed to reset latency stats — the Kamado API did not respond',
|
|
),
|
|
result: null,
|
|
}
|
|
}
|
|
|
|
return {
|
|
version: '1',
|
|
title: i18n('Reset Block Latency'),
|
|
message: i18n('Block latency stats reset to zero'),
|
|
result: {
|
|
type: 'single',
|
|
value: i18n(
|
|
'All latency counters (count, avg, last, wasted work) have been cleared. New measurements will accumulate from the next block.',
|
|
),
|
|
copyable: false,
|
|
qr: false,
|
|
masked: false,
|
|
},
|
|
}
|
|
},
|
|
)
|