Skip to content

Commit c323052

Browse files
periklisJéssica Lins
and
Jéssica Lins
authored
Add logs rules client api (observatorium#385)
Co-authored-by: Jéssica Lins <[email protected]>
1 parent d8e52fc commit c323052

File tree

8 files changed

+1274
-120
lines changed

8 files changed

+1274
-120
lines changed

Diff for: client/client.gen.go

+1,008-118
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: client/models/models.gen.go

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: client/models/models.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ components:
101101
evaluationTime:
102102
type: number
103103
example: 0.002900887
104+
lastError:
105+
type: string
104106
lastEvaluation:
105107
type: string
106108
example: "2022-02-20T15:32:12.759781322Z"
@@ -157,6 +159,8 @@ components:
157159
evaluationTime:
158160
type: number
159161
example: 0.002900887
162+
lastError:
163+
type: string
160164
lastEvaluation:
161165
type: string
162166
example: "2022-02-20T15:32:12.759781322Z"

Diff for: client/parameters/parameters.gen.go

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: client/parameters/parameters.yaml

+14
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,17 @@ components:
7474
description: Query partial response (Thanos)
7575
schema:
7676
type: boolean
77+
logRulesNamespace:
78+
in: path
79+
name: namespace
80+
description: namespace of the log rule group
81+
required: true
82+
schema:
83+
type: string
84+
logRulesGroup:
85+
in: path
86+
name: group
87+
description: group of the log rule
88+
required: true
89+
schema:
90+
type: string

Diff for: client/responses/responses.gen.go

+24
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: client/responses/responses.yaml

+48-1
Original file line numberDiff line numberDiff line change
@@ -280,4 +280,51 @@ components:
280280
type: array
281281
items:
282282
type: object
283-
$ref: "../models/models.yaml#/components/schemas/TailLogs"
283+
$ref: "../models/models.yaml#/components/schemas/TailLogs"
284+
AllLogRulesResponse:
285+
type: object
286+
LogRulesNamespaceResponse:
287+
type: object
288+
required:
289+
- groups
290+
properties:
291+
groups:
292+
type: array
293+
items:
294+
type: object
295+
$ref: "../models/models.yaml#/components/schemas/RuleGroup"
296+
LogRulesGroupResponse:
297+
type: object
298+
required:
299+
- name
300+
- rules
301+
properties:
302+
name:
303+
type: string
304+
interval:
305+
type: string
306+
rules:
307+
type: array
308+
items:
309+
type: object
310+
$ref: "../models/models.yaml#/components/schemas/RulesRaw"
311+
LogRulesPrometheusResponse:
312+
type: object
313+
required:
314+
- status
315+
- data
316+
properties:
317+
error:
318+
type: string
319+
errorType:
320+
type: string
321+
warnings:
322+
type: array
323+
items:
324+
type: string
325+
status:
326+
type: string
327+
example: "success"
328+
data:
329+
type: object
330+
$ref: "../models/models.yaml#/components/schemas/Rules"

Diff for: client/spec.yaml

+168-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ x-tagGroups:
3131
- logs/labelsv1
3232
- logs/labelvaluesv1
3333
- logs/queryv1
34+
- logs/rulesrawv1
35+
- logs/rulesv1
3436
- logs/seriesv1
3537
- logs/tailV1
3638

@@ -495,4 +497,169 @@ paths:
495497
description: Bad request
496498
"5XX":
497499
description: Server side error while tailing logs
498-
500+
/api/logs/v1/{tenant}/loki/api/v1/rules:
501+
parameters:
502+
- $ref: ./parameters/parameters.yaml#/components/parameters/tenant
503+
get:
504+
tags:
505+
- logs/rulesrawv1
506+
summary: Get all logs rules for a tenant in YAML form
507+
operationId: getAllLogsRules
508+
description: |
509+
You can get all logs rules for a tenant in YAML form for all known namespaces and groups.
510+
responses:
511+
"2XX":
512+
description: All logs rules for a tenant
513+
content:
514+
application/yaml:
515+
schema:
516+
$ref: "./responses/responses.yaml#/components/schemas/AllLogRulesResponse"
517+
"4XX":
518+
description: Bad request
519+
"5XX":
520+
description: Server side error
521+
/api/logs/v1/{tenant}/loki/api/v1/rules/{namespace}:
522+
parameters:
523+
- $ref: ./parameters/parameters.yaml#/components/parameters/tenant
524+
- $ref: ./parameters/parameters.yaml#/components/parameters/logRulesNamespace
525+
get:
526+
tags:
527+
- logs/rulesrawv1
528+
summary: Get all logs rules in a namespace for a tenant in YAML form
529+
operationId: getLogsRules
530+
description: |
531+
You can get all logs rules in a namespace for a tenant.
532+
responses:
533+
"2XX":
534+
description: All rule groups in a namespace for a tenant
535+
content:
536+
application/yaml:
537+
schema:
538+
$ref: "./responses/responses.yaml#/components/schemas/LogRulesNamespaceResponse"
539+
"4XX":
540+
description: Bad request
541+
"5XX":
542+
description: Server side error
543+
post:
544+
tags:
545+
- logs/rulesrawv1
546+
summary: Set logs rule groups in a namespace for a tenant
547+
operationId: setLogsRules
548+
description: |
549+
You can create and update rule groups in a namespace for a tenant.
550+
requestBody:
551+
content:
552+
application/yaml:
553+
schema:
554+
type: object
555+
properties:
556+
name:
557+
type: string
558+
interval:
559+
type: string
560+
rules[]:
561+
type: array
562+
items:
563+
anyOf:
564+
- $ref: "./models/models.yaml#/components/schemas/RecordingRule"
565+
- $ref: "./models/models.yaml#/components/schemas/AlertingRule"
566+
responses:
567+
"2XX":
568+
description: Successfully created and/or updated rule groups in a namespace for a tenant
569+
"4XX":
570+
description: Bad request
571+
"5XX":
572+
description: Server side error
573+
delete:
574+
tags:
575+
- logs/rulesrawv1
576+
summary: Delete logs rules groups in a namespace for a tenant
577+
operationId: deleteLogsRules
578+
description: |
579+
You can delete all the rule groups in a namespace (including the namespace itself).
580+
responses:
581+
"202":
582+
description: Successfully deleted all rule groups in a namespace including the namespace itself
583+
"4XX":
584+
description: Bad request
585+
"5XX":
586+
description: Server side error
587+
/api/logs/v1/{tenant}/loki/api/v1/rules/{namespace}/{group}:
588+
parameters:
589+
- $ref: ./parameters/parameters.yaml#/components/parameters/tenant
590+
- $ref: ./parameters/parameters.yaml#/components/parameters/logRulesNamespace
591+
- $ref: ./parameters/parameters.yaml#/components/parameters/logRulesGroup
592+
get:
593+
tags:
594+
- logs/rulesrawv1
595+
summary: Get the logs Rule group in a namespace for a tenant in YAML form
596+
operationId: getLogsRulesGroup
597+
description: |
598+
You get the logs Rule group in a namespace for a tenant
599+
responses:
600+
"2XX":
601+
description: rule group for a tenant
602+
content:
603+
application/yaml:
604+
schema:
605+
$ref: "./responses/responses.yaml#/components/schemas/LogRulesGroupResponse"
606+
"4XX":
607+
description: Bad request
608+
"5XX":
609+
description: Server side error
610+
delete:
611+
tags:
612+
- logs/rulesrawv1
613+
summary: Delete a logs rule group in a namespace for a tenant
614+
operationId: deleteLogsRulesGroup
615+
description: |
616+
You delete a rule group by namespace and group name for a tenant.
617+
responses:
618+
"202":
619+
description: Successfully deleted a rule group in a namespace for a tenant
620+
"4XX":
621+
description: Bad request
622+
"5XX":
623+
description: Server side error
624+
/api/logs/v1/{tenant}/prometheus/api/v1/rules:
625+
parameters:
626+
- $ref: ./parameters/parameters.yaml#/components/parameters/tenant
627+
get:
628+
tags:
629+
- logs/rulesv1
630+
summary: Prometheus-compatible rules endpoint to list alerting and recording rules that are currently loaded for a tenant in JSON form
631+
operationId: getLogsPromRules
632+
description: |
633+
Prometheus-compatible rules endpoint to list alerting and recording rules that are currently loaded for a tenant.
634+
responses:
635+
"2XX":
636+
description: All rules for a tenant
637+
content:
638+
application/json:
639+
schema:
640+
$ref: "./responses/responses.yaml#/components/schemas/LogRulesPrometheusResponse"
641+
"4XX":
642+
description: Bad request
643+
"5XX":
644+
description: Server side error
645+
/api/logs/v1/{tenant}/prometheus/api/v1/alerts:
646+
parameters:
647+
- $ref: ./parameters/parameters.yaml#/components/parameters/tenant
648+
get:
649+
tags:
650+
- logs/rulesv1
651+
summary: Prometheus-compatible rules endpoint to list all active alerts for a tenant in JSON form
652+
operationId: getLogsPromAlerts
653+
description: |
654+
Prometheus-compatible rules endpoint to list all active alerts for a tenant.
655+
responses:
656+
"2XX":
657+
description: All active alerts for a tenant
658+
content:
659+
application/json:
660+
schema:
661+
$ref: "./responses/responses.yaml#/components/schemas/LogRulesPrometheusResponse"
662+
"4XX":
663+
description: Bad request
664+
"5XX":
665+
description: Server side error

0 commit comments

Comments
 (0)