1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-06 02:15:48 +03:00

Add latency graph command (#2359)

* add latency graph command

* fix coding style

* Clean code

* use "enable-debug-command" is redis 7+ only

* Update LATENCY_GRAPH.spec.ts

Co-authored-by: Leibale Eidelman <me@leibale.com>
This commit is contained in:
Ananda
2023-01-18 18:55:38 +01:00
committed by GitHub
parent fad23973a5
commit 63511e5b9b
3 changed files with 61 additions and 1 deletions

View File

@@ -81,6 +81,8 @@ import * as HELLO from '../commands/HELLO';
import * as INFO from '../commands/INFO';
import * as KEYS from '../commands/KEYS';
import * as LASTSAVE from '../commands/LASTSAVE';
import * as LATENCY_DOCTOR from '../commands/LATENCY_DOCTOR';
import * as LATENCY_GRAPH from '../commands/LATENCY_GRAPH';
import * as LOLWUT from '../commands/LOLWUT';
import * as MEMORY_DOCTOR from '../commands/MEMORY_DOCTOR';
import * as MEMORY_MALLOC_STATS from '../commands/MEMORY_MALLOC-STATS';
@@ -113,7 +115,6 @@ import * as SWAPDB from '../commands/SWAPDB';
import * as TIME from '../commands/TIME';
import * as UNWATCH from '../commands/UNWATCH';
import * as WAIT from '../commands/WAIT';
import * as LATENCY_DOCTOR from '../commands/LATENCY_DOCTOR';
export default {
...CLUSTER_COMMANDS,
@@ -283,6 +284,8 @@ export default {
lastSave: LASTSAVE,
LATENCY_DOCTOR,
latencyDoctor: LATENCY_DOCTOR,
LATENCY_GRAPH,
latencyGraph: LATENCY_GRAPH,
LOLWUT,
lolwut: LOLWUT,
MEMORY_DOCTOR,

View File

@@ -0,0 +1,32 @@
import { strict as assert } from 'assert';
import testUtils, { GLOBAL } from '../test-utils';
import { transformArguments } from './LATENCY_GRAPH';
describe('LATENCY GRAPH', () => {
it('transformArguments', () => {
assert.deepEqual(
transformArguments('command'),
[
'LATENCY',
'GRAPH',
'command'
]
);
});
testUtils.testWithClient('client.latencyGraph', async client => {
await Promise.all([
client.configSet('latency-monitor-threshold', '1'),
client.sendCommand(['DEBUG', 'SLEEP', '0.001'])
]);
assert.equal(
typeof await client.latencyGraph('command'),
'string'
);
}, {
serverArguments: testUtils.isVersionGreaterThan([7]) ?
['--enable-debug-command', 'yes'] :
GLOBAL.SERVERS.OPEN.serverArguments
});
});

View File

@@ -0,0 +1,25 @@
import { RedisCommandArguments } from '.';
export type EventType =
'active-defrag-cycle'
| 'aof-fsync-always'
| 'aof-stat'
| 'aof-rewrite-diff-write'
| 'aof-rename'
| 'aof-write'
| 'aof-write-active-child'
| 'aof-write-alone'
| 'aof-write-pending-fsync'
| 'command'
| 'expire-cycle'
| 'eviction-cycle'
| 'eviction-del'
| 'fast-command'
| 'fork'
| 'rdb-unlink-temp-file';
export function transformArguments(event: EventType): RedisCommandArguments {
return ['LATENCY', 'GRAPH', event];
}
export declare function transformReply(): string;