add /usage-metrics endpoint definition

This commit is contained in:
Sebastien Blot 2024-02-02 10:08:34 +01:00 committed by marco
parent dd71f0a866
commit d1f62263ef

View file

@ -684,6 +684,36 @@ paths:
$ref: "#/definitions/ErrorResponse"
security:
- JWTAuthorizer: []
/usage-metrics:
post:
description: Post usage metrics from a LP or a bouncer
summary: Send usage metrics
tags:
- bouncers
- watchers
operationId: usage-metrics
produces:
- application/json
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/AllMetrics'
description: 'All metrics'
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/SuccessResponse'
headers: {}
'400':
description: "400 response"
schema:
$ref: "#/definitions/ErrorResponse"
security:
- APIKeyAuthorizer: []
- JWTAuthorizer: []
definitions:
WatcherRegistrationRequest:
title: WatcherRegistrationRequest
@ -994,6 +1024,128 @@ definitions:
type: string
value:
type: string
RemediationComponentsMetrics:
title: RemediationComponentsMetrics
type: array
maxItems: 1
items:
allOf:
- $ref: '#/definitions/BaseMetrics'
- type: object
properties:
type:
type: string
description: type of the remediation component
LogProcessorsMetrics:
title: LogProcessorsMetrics
type: array
maxItems: 1
items:
allOf:
- $ref: '#/definitions/BaseMetrics'
- type: object
properties:
console_options:
$ref: '#/definitions/ConsoleOptions'
datasources:
type: object
description: Number of datasources per type
additionalProperties:
type: integer
AllMetrics:
title: AllMetrics
type: object
properties:
remediation_components:
type: array
items:
$ref: '#/definitions/RemediationComponentsMetrics'
description: remediation components metrics
log_processors:
type: array
items:
$ref: '#/definitions/LogProcessorsMetrics'
description: log processors metrics
BaseMetrics:
title: BaseMetrics
type: object
properties:
version:
type: string
description: version of the remediation component
meta:
type: object
$ref: '#/definitions/MetricsMeta'
description: metrics meta
os:
type: object
$ref: '#/definitions/OSversion'
description: OS information
metrics:
type: array
items:
$ref: '#/definitions/MetricsDetailItem'
description: metrics details
feature_flags:
type: array
items:
type: string
description: feature flags (expected to be empty for remediation components)
required:
- version
- os
- meta
OSversion:
title: OSversion
type: object
properties:
name:
type: string
description: name of the OS
version:
type: string
description: version of the OS
MetricsDetailItem:
title: MetricsDetailItem
type: object
properties:
name:
type: string
description: name of the metric
value:
type: number
description: value of the metric
unit:
type: string
description: unit of the metric
labels:
$ref: '#/definitions/MetricsLabels'
description: labels of the metric
MetricsMeta:
title: MetricsMeta
type: object
properties:
window_size_seconds:
type: integer
description: Size, in seconds, of the window used to compute the metric
utc_startup_timestamp:
type: number
description: UTC timestamp of the startup of the software
utc_now_timestamp:
type: number
description: UTC timestamp of the current time
MetricsLabels:
title: MetricsLabels
type: object
additionalProperties:
type: string
description: label of the metric
ConsoleOptions:
title: ConsoleOptions
type: array
items:
type: string
description: enabled console options
ErrorResponse:
type: "object"
required:
@ -1007,6 +1159,16 @@ definitions:
description: "more detail on individual errors"
title: "error response"
description: "error response return by the API"
SuccessResponse:
type: "object"
required:
- "message"
properties:
message:
type: "string"
description: "message"
title: "success response"
description: "success response return by the API"
tags:
- name: bouncers
description: 'Operations about decisions : bans, captcha, rate-limit etc.'