mirror of https://github.com/grafana/grafana.git
Chore: Use @types/chance types (#66569)
This commit is contained in:
parent
7bc31ab04b
commit
a438576a6d
|
|
@ -120,6 +120,7 @@
|
||||||
"@testing-library/user-event": "14.4.3",
|
"@testing-library/user-event": "14.4.3",
|
||||||
"@types/angular": "1.8.4",
|
"@types/angular": "1.8.4",
|
||||||
"@types/angular-route": "1.7.2",
|
"@types/angular-route": "1.7.2",
|
||||||
|
"@types/chance": "^1.1.3",
|
||||||
"@types/common-tags": "^1.8.0",
|
"@types/common-tags": "^1.8.0",
|
||||||
"@types/d3": "7.4.0",
|
"@types/d3": "7.4.0",
|
||||||
"@types/d3-force": "^3.0.0",
|
"@types/d3-force": "^3.0.0",
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
declare module 'chance';
|
|
||||||
|
|
@ -14,11 +14,62 @@
|
||||||
|
|
||||||
import Chance from 'chance';
|
import Chance from 'chance';
|
||||||
|
|
||||||
import { TraceSpanData, TraceProcess } from 'app/features/explore/TraceView/components/types/trace';
|
import {
|
||||||
|
TraceSpanData,
|
||||||
|
TraceProcess,
|
||||||
|
TraceKeyValuePair,
|
||||||
|
TraceResponse,
|
||||||
|
} from 'app/features/explore/TraceView/components/types/trace';
|
||||||
|
|
||||||
import { getSpanId } from '../selectors/span';
|
import { getSpanId } from '../selectors/span';
|
||||||
|
|
||||||
const chance = new Chance();
|
interface Process extends TraceProcess {
|
||||||
|
processID: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ChanceSpanOptions {
|
||||||
|
traceID?: string;
|
||||||
|
processes?: Record<string, unknown>;
|
||||||
|
traceStartTime?: number;
|
||||||
|
traceEndTime?: number;
|
||||||
|
operations?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ChanceTraceOptions {
|
||||||
|
numberOfSpans?: number;
|
||||||
|
numberOfProcesses?: number;
|
||||||
|
maxDepth?: number;
|
||||||
|
spansPerLevel?: number | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ChanceTracesOptions {
|
||||||
|
numberOfTraces?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ChanceProcessOptions {
|
||||||
|
services?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ChanceProcessesOptions {
|
||||||
|
numberOfProcesses?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ChanceMixins {
|
||||||
|
tag(): TraceKeyValuePair;
|
||||||
|
tags(): TraceKeyValuePair[];
|
||||||
|
|
||||||
|
span(options: ChanceSpanOptions): TraceSpanData;
|
||||||
|
|
||||||
|
trace(options: ChanceTraceOptions): TraceResponse;
|
||||||
|
traces(options: ChanceTracesOptions): TraceResponse[];
|
||||||
|
|
||||||
|
process(options: ChanceProcessOptions): Process;
|
||||||
|
processes(options: ChanceProcessesOptions): Process[];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Difficult to extend Chance interface with our mixins, so we just steam roll them in instead
|
||||||
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
||||||
|
const chance = new Chance() as Chance.Chance & ChanceMixins;
|
||||||
|
|
||||||
export const SERVICE_LIST = ['serviceA', 'serviceB', 'serviceC', 'serviceD', 'serviceE', 'serviceF'];
|
export const SERVICE_LIST = ['serviceA', 'serviceB', 'serviceC', 'serviceD', 'serviceE', 'serviceF'];
|
||||||
export const OPERATIONS_LIST = [
|
export const OPERATIONS_LIST = [
|
||||||
|
|
@ -32,10 +83,6 @@ export const OPERATIONS_LIST = [
|
||||||
'MongoDB::update',
|
'MongoDB::update',
|
||||||
];
|
];
|
||||||
|
|
||||||
type Process = TraceProcess & {
|
|
||||||
processID: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
function setupParentSpan(spans: TraceSpanData[], parentSpanValues: TraceSpanData) {
|
function setupParentSpan(spans: TraceSpanData[], parentSpanValues: TraceSpanData) {
|
||||||
Object.assign(spans[0], parentSpanValues);
|
Object.assign(spans[0], parentSpanValues);
|
||||||
return spans;
|
return spans;
|
||||||
|
|
@ -55,7 +102,7 @@ function getParentSpanId(span: TraceSpanData, levels: string[][]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this simulates the hierarchy created by CHILD_OF tags */
|
/* this simulates the hierarchy created by CHILD_OF tags */
|
||||||
function attachReferences(spans: TraceSpanData[], depth: number, spansPerLevel: null) {
|
function attachReferences(spans: TraceSpanData[], depth: number, spansPerLevel: number | null) {
|
||||||
let levels: string[][] = [[getSpanId(spans[0])]];
|
let levels: string[][] = [[getSpanId(spans[0])]];
|
||||||
|
|
||||||
const duplicateLevelFilter = (currentLevels: string[][]) => (span: TraceSpanData) =>
|
const duplicateLevelFilter = (currentLevels: string[][]) => (span: TraceSpanData) =>
|
||||||
|
|
@ -81,7 +128,7 @@ function attachReferences(spans: TraceSpanData[], depth: number, spansPerLevel:
|
||||||
...span,
|
...span,
|
||||||
references: [
|
references: [
|
||||||
{
|
{
|
||||||
refType: 'CHILD_OF',
|
refType: 'CHILD_OF' as const,
|
||||||
traceID: span.traceID,
|
traceID: span.traceID,
|
||||||
spanID: parentSpanId,
|
spanID: parentSpanId,
|
||||||
},
|
},
|
||||||
|
|
@ -104,7 +151,7 @@ export default chance.mixin({
|
||||||
numberOfProcesses = chance.integer({ min: 1, max: 10 }),
|
numberOfProcesses = chance.integer({ min: 1, max: 10 }),
|
||||||
maxDepth = chance.integer({ min: 1, max: 10 }),
|
maxDepth = chance.integer({ min: 1, max: 10 }),
|
||||||
spansPerLevel = null,
|
spansPerLevel = null,
|
||||||
}) {
|
}: ChanceTraceOptions) {
|
||||||
const traceID = chance.guid();
|
const traceID = chance.guid();
|
||||||
const duration: number = chance.integer({ min: 10000, max: 5000000 });
|
const duration: number = chance.integer({ min: 10000, max: 5000000 });
|
||||||
const timestamp = (new Date().getTime() - chance.integer({ min: 0, max: 1000 }) * 1000) * 1000;
|
const timestamp = (new Date().getTime() - chance.integer({ min: 0, max: 1000 }) * 1000) * 1000;
|
||||||
|
|
@ -129,6 +176,7 @@ export default chance.mixin({
|
||||||
processes,
|
processes,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
tag() {
|
tag() {
|
||||||
return {
|
return {
|
||||||
key: 'http.url',
|
key: 'http.url',
|
||||||
|
|
@ -136,13 +184,14 @@ export default chance.mixin({
|
||||||
value: `/v2/${chance.pickone(['alpha', 'beta', 'gamma'])}/${chance.guid()}`,
|
value: `/v2/${chance.pickone(['alpha', 'beta', 'gamma'])}/${chance.guid()}`,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
span({
|
span({
|
||||||
traceID = chance.guid(),
|
traceID = chance.guid(),
|
||||||
processes = {},
|
processes = {},
|
||||||
traceStartTime = 0,
|
traceStartTime = 0,
|
||||||
traceEndTime = 0,
|
traceEndTime = 0,
|
||||||
operations = OPERATIONS_LIST,
|
operations = OPERATIONS_LIST,
|
||||||
}) {
|
}: ChanceSpanOptions) {
|
||||||
// Set default values for trace start/end time.
|
// Set default values for trace start/end time.
|
||||||
traceStartTime = traceStartTime || chance.timestamp() * 1000 * 1000;
|
traceStartTime = traceStartTime || chance.timestamp() * 1000 * 1000;
|
||||||
traceEndTime = traceEndTime || traceStartTime + 100000;
|
traceEndTime = traceEndTime || traceStartTime + 100000;
|
||||||
|
|
@ -167,20 +216,24 @@ export default chance.mixin({
|
||||||
logs: [],
|
logs: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
process({ services = SERVICE_LIST }) {
|
|
||||||
|
process({ services = SERVICE_LIST }: ChanceProcessOptions) {
|
||||||
return {
|
return {
|
||||||
processID: chance.guid(),
|
processID: chance.guid(),
|
||||||
serviceName: chance.pickone(services),
|
serviceName: chance.pickone(services),
|
||||||
tags: chance.tags(),
|
tags: chance.tags(),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
traces({ numberOfTraces = chance.integer({ min: 5, max: 15 }) }) {
|
|
||||||
|
traces({ numberOfTraces = chance.integer({ min: 5, max: 15 }) }: ChanceTracesOptions) {
|
||||||
return chance.n(chance.trace, numberOfTraces, {});
|
return chance.n(chance.trace, numberOfTraces, {});
|
||||||
},
|
},
|
||||||
|
|
||||||
tags() {
|
tags() {
|
||||||
return chance.n(chance.tag, chance.integer({ min: 1, max: 10 }), {});
|
return chance.n(chance.tag, chance.integer({ min: 1, max: 10 }), {});
|
||||||
},
|
},
|
||||||
processes({ numberOfProcesses = chance.integer({ min: 1, max: 25 }) }) {
|
|
||||||
|
processes({ numberOfProcesses = chance.integer({ min: 1, max: 25 }) }: ChanceProcessesOptions) {
|
||||||
return chance.n(chance.process, numberOfProcesses, {});
|
return chance.n(chance.process, numberOfProcesses, {});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -8942,6 +8942,13 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/chance@npm:^1.1.3":
|
||||||
|
version: 1.1.3
|
||||||
|
resolution: "@types/chance@npm:1.1.3"
|
||||||
|
checksum: df2be43fab359e5fa734fb91aa1c4c15108310be0e4990d00203805a63f9b2182da74eaabc8859b742e150d970decf27a773fcc6cbf28fb5b372c9b1bd7e9b89
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@types/chrome-remote-interface@npm:0.31.9":
|
"@types/chrome-remote-interface@npm:0.31.9":
|
||||||
version: 0.31.9
|
version: 0.31.9
|
||||||
resolution: "@types/chrome-remote-interface@npm:0.31.9"
|
resolution: "@types/chrome-remote-interface@npm:0.31.9"
|
||||||
|
|
@ -20182,6 +20189,7 @@ __metadata:
|
||||||
"@testing-library/user-event": 14.4.3
|
"@testing-library/user-event": 14.4.3
|
||||||
"@types/angular": 1.8.4
|
"@types/angular": 1.8.4
|
||||||
"@types/angular-route": 1.7.2
|
"@types/angular-route": 1.7.2
|
||||||
|
"@types/chance": ^1.1.3
|
||||||
"@types/common-tags": ^1.8.0
|
"@types/common-tags": ^1.8.0
|
||||||
"@types/d3": 7.4.0
|
"@types/d3": 7.4.0
|
||||||
"@types/d3-force": ^3.0.0
|
"@types/d3-force": ^3.0.0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue