-
Notifications
You must be signed in to change notification settings - Fork 179
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #273 from slok/slok/add-crd-helm-chart
- Loading branch information
Showing
3 changed files
with
274 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
269 changes: 269 additions & 0 deletions
269
deploy/kubernetes/helm/sloth/crds/sloth.slok.dev_prometheusservicelevels.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,269 @@ | ||
|
||
--- | ||
apiVersion: apiextensions.k8s.io/v1 | ||
kind: CustomResourceDefinition | ||
metadata: | ||
annotations: | ||
controller-gen.kubebuilder.io/version: (devel) | ||
creationTimestamp: null | ||
name: prometheusservicelevels.sloth.slok.dev | ||
spec: | ||
group: sloth.slok.dev | ||
names: | ||
categories: | ||
- slo | ||
- slos | ||
- sli | ||
- slis | ||
kind: PrometheusServiceLevel | ||
listKind: PrometheusServiceLevelList | ||
plural: prometheusservicelevels | ||
shortNames: | ||
- psl | ||
- pslo | ||
singular: prometheusservicelevel | ||
scope: Namespaced | ||
versions: | ||
- additionalPrinterColumns: | ||
- jsonPath: .spec.service | ||
name: SERVICE | ||
type: string | ||
- jsonPath: .status.processedSLOs | ||
name: DESIRED SLOs | ||
type: integer | ||
- jsonPath: .status.promOpRulesGeneratedSLOs | ||
name: READY SLOs | ||
type: integer | ||
- jsonPath: .status.promOpRulesGenerated | ||
name: GEN OK | ||
type: boolean | ||
- jsonPath: .status.lastPromOpRulesSuccessfulGenerated | ||
name: GEN AGE | ||
type: date | ||
- jsonPath: .metadata.creationTimestamp | ||
name: AGE | ||
type: date | ||
name: v1 | ||
schema: | ||
openAPIV3Schema: | ||
description: PrometheusServiceLevel is the expected service quality level | ||
using Prometheus as the backend used by Sloth. | ||
properties: | ||
apiVersion: | ||
description: 'APIVersion defines the versioned schema of this representation | ||
of an object. Servers should convert recognized schemas to the latest | ||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||
type: string | ||
kind: | ||
description: 'Kind is a string value representing the REST resource this | ||
object represents. Servers may infer this from the endpoint the client | ||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||
type: string | ||
metadata: | ||
type: object | ||
spec: | ||
description: ServiceLevelSpec is the spec for a PrometheusServiceLevel. | ||
properties: | ||
labels: | ||
additionalProperties: | ||
type: string | ||
description: Labels are the Prometheus labels that will have all the | ||
recording and alerting rules generated for the service SLOs. | ||
type: object | ||
service: | ||
description: Service is the application of the SLOs. | ||
type: string | ||
slos: | ||
description: SLOs are the SLOs of the service. | ||
items: | ||
description: SLO is the configuration/declaration of the service | ||
level objective of a service. | ||
properties: | ||
alerting: | ||
description: Alerting is the configuration with all the things | ||
related with the SLO alerts. | ||
properties: | ||
annotations: | ||
additionalProperties: | ||
type: string | ||
description: Annotations are the Prometheus annotations | ||
that will have all the alerts generated by this SLO. | ||
type: object | ||
labels: | ||
additionalProperties: | ||
type: string | ||
description: Labels are the Prometheus labels that will | ||
have all the alerts generated by this SLO. | ||
type: object | ||
name: | ||
description: Name is the name used by the alerts generated | ||
for this SLO. | ||
type: string | ||
pageAlert: | ||
description: Page alert refers to the critical alert (check | ||
multiwindow-multiburn alerts). | ||
properties: | ||
annotations: | ||
additionalProperties: | ||
type: string | ||
description: Annotations are the Prometheus annotations | ||
for the specific alert. | ||
type: object | ||
disable: | ||
description: Disable disables the alert and makes Sloth | ||
not generating this alert. This can be helpful for | ||
example to disable ticket(warning) alerts. | ||
type: boolean | ||
labels: | ||
additionalProperties: | ||
type: string | ||
description: Labels are the Prometheus labels for the | ||
specific alert. For example can be useful to route | ||
the Page alert to specific Slack channel. | ||
type: object | ||
type: object | ||
ticketAlert: | ||
description: TicketAlert alert refers to the warning alert | ||
(check multiwindow-multiburn alerts). | ||
properties: | ||
annotations: | ||
additionalProperties: | ||
type: string | ||
description: Annotations are the Prometheus annotations | ||
for the specific alert. | ||
type: object | ||
disable: | ||
description: Disable disables the alert and makes Sloth | ||
not generating this alert. This can be helpful for | ||
example to disable ticket(warning) alerts. | ||
type: boolean | ||
labels: | ||
additionalProperties: | ||
type: string | ||
description: Labels are the Prometheus labels for the | ||
specific alert. For example can be useful to route | ||
the Page alert to specific Slack channel. | ||
type: object | ||
type: object | ||
type: object | ||
description: | ||
description: Description is the description of the SLO. | ||
type: string | ||
labels: | ||
additionalProperties: | ||
type: string | ||
description: Labels are the Prometheus labels that will have | ||
all the recording and alerting rules for this specific SLO. | ||
These labels are merged with the previous level labels. | ||
type: object | ||
name: | ||
description: Name is the name of the SLO. | ||
maxLength: 128 | ||
type: string | ||
objective: | ||
description: Objective is target of the SLO the percentage (0, | ||
100] (e.g 99.9). | ||
type: number | ||
sli: | ||
description: SLI is the indicator (service level indicator) | ||
for this specific SLO. | ||
properties: | ||
events: | ||
description: Events is the events SLI type. | ||
properties: | ||
errorQuery: | ||
description: ErrorQuery is a Prometheus query that will | ||
get the number/count of events that we consider that | ||
are bad for the SLO (e.g "http 5xx", "latency > 250ms"...). | ||
Requires the usage of `{{.window}}` template variable. | ||
type: string | ||
totalQuery: | ||
description: TotalQuery is a Prometheus query that will | ||
get the total number/count of events for the SLO (e.g | ||
"all http requests"...). Requires the usage of `{{.window}}` | ||
template variable. | ||
type: string | ||
required: | ||
- errorQuery | ||
- totalQuery | ||
type: object | ||
plugin: | ||
description: Plugin is the pluggable SLI type. | ||
properties: | ||
id: | ||
description: Name is the name of the plugin that needs | ||
to load. | ||
type: string | ||
options: | ||
additionalProperties: | ||
type: string | ||
description: Options are the options used for the plugin. | ||
type: object | ||
required: | ||
- id | ||
type: object | ||
raw: | ||
description: Raw is the raw SLI type. | ||
properties: | ||
errorRatioQuery: | ||
description: ErrorRatioQuery is a Prometheus query that | ||
will get the raw error ratio (0-1) for the SLO. | ||
type: string | ||
required: | ||
- errorRatioQuery | ||
type: object | ||
type: object | ||
required: | ||
- alerting | ||
- name | ||
- objective | ||
- sli | ||
type: object | ||
minItems: 1 | ||
type: array | ||
required: | ||
- service | ||
type: object | ||
status: | ||
properties: | ||
lastPromOpRulesSuccessfulGenerated: | ||
description: LastPromOpRulesGeneration tells the last atemp made for | ||
a successful SLO rules generate. | ||
format: date-time | ||
type: string | ||
observedGeneration: | ||
description: ObservedGeneration tells the generation was acted on, | ||
normally this is required to stop an infinite loop when the status | ||
is updated because it sends a watch updated event to the watchers | ||
of the K8s object. | ||
format: int64 | ||
type: integer | ||
processedSLOs: | ||
description: ProcessedSLOs tells how many SLOs haven been processed | ||
for Prometheus operator. | ||
type: integer | ||
promOpRulesGenerated: | ||
description: PromOpRulesGenerated tells if the rules for prometheus | ||
operator CRD have been generated. | ||
type: boolean | ||
promOpRulesGeneratedSLOs: | ||
description: PromOpRulesGeneratedSLOs tells how many SLOs have been | ||
processed and generated for Prometheus operator successfully. | ||
type: integer | ||
required: | ||
- observedGeneration | ||
- processedSLOs | ||
- promOpRulesGenerated | ||
- promOpRulesGeneratedSLOs | ||
type: object | ||
type: object | ||
served: true | ||
storage: true | ||
subresources: | ||
status: {} | ||
status: | ||
acceptedNames: | ||
kind: "" | ||
plural: "" | ||
conditions: [] | ||
storedVersions: [] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters