mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-31 00:16:47 +01:00
4ce78ccecd
### What Adds a quick and dirty description to requestPerSeconds and segmentedRequestPerSecondsSchema so the enterprise /rps endpoint has better API docs. --------- Co-authored-by: Simon Hornby <liquidwicked64@gmail.com>
90 lines
4.0 KiB
TypeScript
90 lines
4.0 KiB
TypeScript
import { FromSchema } from 'json-schema-to-ts';
|
|
|
|
export const requestsPerSecondSchema = {
|
|
$id: '#/components/schemas/requestsPerSecondSchema',
|
|
type: 'object',
|
|
description:
|
|
'Statistics for usage of Unleash, formatted so it can easily be used in a graph',
|
|
properties: {
|
|
status: {
|
|
type: 'string',
|
|
description:
|
|
'Whether the query against prometheus succeeded or failed',
|
|
enum: ['success', 'failure'],
|
|
example: 'success',
|
|
},
|
|
data: {
|
|
type: 'object',
|
|
description: 'The query result from prometheus',
|
|
properties: {
|
|
resultType: {
|
|
type: 'string',
|
|
description: 'Prometheus compatible result type.',
|
|
enum: ['matrix', 'vector', 'scalar', 'string'],
|
|
example: 'vector',
|
|
},
|
|
result: {
|
|
description:
|
|
'An array of values per metric. Each one represents a line in the graph labeled by its metric name',
|
|
type: 'array',
|
|
items: {
|
|
type: 'object',
|
|
description:
|
|
'A representation of a single metric to build a line in a graph',
|
|
properties: {
|
|
metric: {
|
|
description:
|
|
'A key value set representing the metric',
|
|
type: 'object',
|
|
properties: {
|
|
appName: {
|
|
description:
|
|
'Name of the application this metric relates to',
|
|
type: 'string',
|
|
example: 'mySdk',
|
|
},
|
|
endpoint: {
|
|
description:
|
|
'Which endpoint has been accessed',
|
|
type: 'string',
|
|
example: '/api/frontend',
|
|
},
|
|
},
|
|
},
|
|
values: {
|
|
description:
|
|
'An array of arrays. Each element of the array is an array of size 2 consisting of the 2 axis for the graph: in position zero the x axis represented as a number and position one the y axis represented as string',
|
|
type: 'array',
|
|
items: {
|
|
type: 'array',
|
|
description:
|
|
'Either the x axis represented as a number or the y axis represented as a string',
|
|
items: {
|
|
anyOf: [
|
|
{
|
|
type: 'string',
|
|
description:
|
|
'An identifier for the line in the graph',
|
|
},
|
|
{
|
|
type: 'number',
|
|
description:
|
|
'The number of requests at this point in time',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
components: {},
|
|
} as const;
|
|
|
|
export type RequestsPerSecondSchema = FromSchema<
|
|
typeof requestsPerSecondSchema
|
|
>;
|