diff --git a/api/services/ocean/cd/schemas/oceanCDRolloutBaseline.yaml b/api/services/ocean/cd/schemas/oceanCDRolloutBaseline.yaml new file mode 100644 index 000000000..c952b5f2e --- /dev/null +++ b/api/services/ocean/cd/schemas/oceanCDRolloutBaseline.yaml @@ -0,0 +1,13 @@ +type: object +title: Ocean CD Verification Baseline +description: Represents object of Verification Baseline +properties: + baselineResult: + type: number + format: double + example: 2.453 + description: describe the baseline metric result + metric: + type: object + $ref: "./oceanCDRolloutBaselineMetric.yaml" + description: describe the baseline metric \ No newline at end of file diff --git a/api/services/ocean/cd/schemas/oceanCDRolloutBaselineMetric.yaml b/api/services/ocean/cd/schemas/oceanCDRolloutBaselineMetric.yaml new file mode 100644 index 000000000..24207edf0 --- /dev/null +++ b/api/services/ocean/cd/schemas/oceanCDRolloutBaselineMetric.yaml @@ -0,0 +1,13 @@ +type: object +title: Ocean CD Verification Baseline Metric +description: Represents object of Verification Baseline Metric +properties: + threshold: + type: string + example: "<" + description: represent the baseline threshold + enum: [ "<", "<=", ">", ">=", "=", "range" ] + provider: + description: represent the baseline provider. + type: object + $ref: "./oceanCDRolloutBaselineMetricProvider.yaml" \ No newline at end of file diff --git a/api/services/ocean/cd/schemas/oceanCDRolloutBaselineMetricProvider.yaml b/api/services/ocean/cd/schemas/oceanCDRolloutBaselineMetricProvider.yaml new file mode 100644 index 000000000..25b68329e --- /dev/null +++ b/api/services/ocean/cd/schemas/oceanCDRolloutBaselineMetricProvider.yaml @@ -0,0 +1,13 @@ +type: object +title: Ocean CD Verification Baseline Metric Provider +description: Represents object of Verification Baseline Metric Provider +properties: + prometheus: + type: object + $ref: "./verificationTemplate/oceanCDVerificationTemplateMetricPrometheus.yaml" + newRelic: + type: object + $ref: "./verificationTemplate/oceanCDVerificationTemplateMetricNewRelic.yaml" + datadog: + type: object + $ref: "./verificationTemplate/oceanCDVerificationTemplateMetricDatadog.yaml" \ No newline at end of file diff --git a/api/services/ocean/cd/schemas/oceanCDRolloutVerificationResult.yaml b/api/services/ocean/cd/schemas/oceanCDRolloutVerificationResult.yaml index 740d8516e..fa3a90645 100644 --- a/api/services/ocean/cd/schemas/oceanCDRolloutVerificationResult.yaml +++ b/api/services/ocean/cd/schemas/oceanCDRolloutVerificationResult.yaml @@ -58,6 +58,10 @@ properties: type: string description: The step where the failure/success comes from example: "1" + baseline: + type: object + description: Describe baseline metric such as metric, threshold and result + $ref: "./oceanCDRolloutBaseline.yaml" providerDetails: type: object description: The chosen for the metric monitoring tool's details diff --git a/api/services/ocean/cd/schemas/verificationTemplate/oceanCDVerificationTemplateMetric.yaml b/api/services/ocean/cd/schemas/verificationTemplate/oceanCDVerificationTemplateMetric.yaml index 70a7b9b30..dcab20c82 100644 --- a/api/services/ocean/cd/schemas/verificationTemplate/oceanCDVerificationTemplateMetric.yaml +++ b/api/services/ocean/cd/schemas/verificationTemplate/oceanCDVerificationTemplateMetric.yaml @@ -43,3 +43,6 @@ properties: provider: type: object $ref: "oceanCDVerificationTemplateMetricProvider.yaml" + baseline: + type: objet + $ref: "oceanCDVerificationTemplateMetricBaseline.yaml" diff --git a/api/services/ocean/cd/schemas/verificationTemplate/oceanCDVerificationTemplateMetricBaseline.yaml b/api/services/ocean/cd/schemas/verificationTemplate/oceanCDVerificationTemplateMetricBaseline.yaml new file mode 100644 index 000000000..0f79a9a5b --- /dev/null +++ b/api/services/ocean/cd/schemas/verificationTemplate/oceanCDVerificationTemplateMetricBaseline.yaml @@ -0,0 +1,22 @@ +type: object +required: + - threshold + - provider +title: Ocean CD Verification Metric Baseline +properties: + threshold: + type: string + enum: ["<", ">", "<=", ">=", "=", "range"] + description: A mathematical expression needed for the comparison + example: ">" + minRange: + type: integer + example: 45 + description: Number in percent we allow the new version’s data result to be under baseline data result + maxRange: + type: integer + example: 55 + description: Number in percent we allow the new version’s data result to be under baseline data result + provider: + type: object + $ref: "oceanCDVerificationTemplateMetricBaselineProvider.yaml" \ No newline at end of file diff --git a/api/services/ocean/cd/schemas/verificationTemplate/oceanCDVerificationTemplateMetricBaselineProvider.yaml b/api/services/ocean/cd/schemas/verificationTemplate/oceanCDVerificationTemplateMetricBaselineProvider.yaml new file mode 100644 index 000000000..9b5c62ec8 --- /dev/null +++ b/api/services/ocean/cd/schemas/verificationTemplate/oceanCDVerificationTemplateMetricBaselineProvider.yaml @@ -0,0 +1,13 @@ +type: object +title: Ocean CD Verification Metric Baseline Provider, only one provider type can be defined and it must be equal to the metric provider +description: The name of the monitoring tool chosen for the metric +properties: + prometheus: + type: object + $ref: "oceanCDVerificationTemplateMetricPrometheus.yaml" + newRelic: + type: object + $ref: "oceanCDVerificationTemplateMetricNewRelic.yaml" + datadog: + type: object + $ref: "oceanCDVerificationTemplateMetricDatadog.yaml"