@kubernetes-models/argo-rollouts
Version:
87 lines (86 loc) • 4.4 kB
TypeScript
import { IIoK8sApimachineryPkgUtilIntstrIntOrString } from "@kubernetes-models/apimachinery/util/intstr/IntOrString";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DurationString } from "./DurationString.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1MetricProvider } from "./MetricProvider.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
* Metric defines a metric in which to perform analysis
*/
export interface IMetric {
/**
* ConsecutiveErrorLimit is the maximum number of times the measurement is allowed to error in
* succession, before the metric is considered error (default: 4)
*/
"consecutiveErrorLimit"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
/**
* ConsecutiveSuccessLimit is the number of consecutive times the measurement must succeed for the
* entire metric to be considered Successful (default: 0, which means it's disabled)
*/
"consecutiveSuccessLimit"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
/**
* Count is the number of times to run the measurement. If both interval and count are omitted,
* the effective count is 1. If only interval is specified, metric runs indefinitely.
* If count > 1, interval must be specified.
*/
"count"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
/**
* FailureCondition is an expression which determines if a measurement is considered failed
* If both success and failure conditions are specified, and the measurement does not fall into
* either condition, the measurement is considered Inconclusive
*/
"failureCondition"?: string;
/**
* FailureLimit is the maximum number of times the measurement is allowed to fail, before the
* entire metric is considered Failed (default: 0)
* -1 for making it disabled (when opting to use ConsecutiveSuccessLimit solely)
*/
"failureLimit"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
/**
* InconclusiveLimit is the maximum number of times the measurement is allowed to measure
* Inconclusive, before the entire metric is considered Inconclusive (default: 0)
*/
"inconclusiveLimit"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
/**
* InitialDelay how long the AnalysisRun should wait before starting this metric
*/
"initialDelay"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DurationString;
/**
* Interval defines an interval string (e.g. 30s, 5m, 1h) between each measurement.
* If omitted, will perform a single measurement
*/
"interval"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DurationString;
/**
* Name is the name of the metric
*/
"name": string;
/**
* Provider configuration to the external system to use to verify the analysis
*/
"provider": IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1MetricProvider;
/**
* SuccessCondition is an expression which determines if a measurement is considered successful
* Expression is a goevaluate expression. The keyword `result` is a variable reference to the
* value of measurement. Results can be both structured data or primitive.
* Examples:
* result > 10
* (result.requests_made \* result.requests_succeeded / 100) >= 90
*/
"successCondition"?: string;
}
/**
* Metric defines a metric in which to perform analysis
*/
export declare class Metric extends Model<IMetric> implements IMetric {
"consecutiveErrorLimit"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
"consecutiveSuccessLimit"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
"count"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
"failureCondition"?: string;
"failureLimit"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
"inconclusiveLimit"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
"initialDelay"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DurationString;
"interval"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DurationString;
"name": string;
"provider": IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1MetricProvider;
"successCondition"?: string;
constructor(data?: ModelData<IMetric>);
}
export type { IMetric as IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Metric, Metric as ComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Metric };