diff --git a/pkg/operator/resources/realtimeapi/api.go b/pkg/operator/resources/realtimeapi/api.go index 42823ed863..a322870e8e 100644 --- a/pkg/operator/resources/realtimeapi/api.go +++ b/pkg/operator/resources/realtimeapi/api.go @@ -150,6 +150,11 @@ func RefreshAPI(apiName string, force bool) (string, error) { return "", errors.Wrap(err, "upload api spec") } + // Reupload api spec to the same PredictorID but with the new DeploymentID + if err := config.AWS.UploadJSONToS3(api, config.Cluster.Bucket, api.PredictorKey); err != nil { + return "", errors.Wrap(err, "upload predictor spec") + } + if err := applyK8sDeployment(api, prevDeployment); err != nil { return "", err } diff --git a/pkg/operator/resources/realtimeapi/metrics.go b/pkg/operator/resources/realtimeapi/metrics.go index acf03df83e..4675cffe66 100644 --- a/pkg/operator/resources/realtimeapi/metrics.go +++ b/pkg/operator/resources/realtimeapi/metrics.go @@ -236,6 +236,10 @@ func getAPIDimensions(api *spec.API) []*cloudwatch.Dimension { Name: aws.String("PredictorID"), Value: aws.String(api.PredictorID), }, + { + Name: aws.String("DeploymentID"), + Value: aws.String(api.DeploymentID), + }, } } diff --git a/pkg/workloads/cortex/lib/type/api.py b/pkg/workloads/cortex/lib/type/api.py index 71aa77bcf1..016cbbfabd 100644 --- a/pkg/workloads/cortex/lib/type/api.py +++ b/pkg/workloads/cortex/lib/type/api.py @@ -32,6 +32,7 @@ def __init__(self, provider, storage, model_dir, cache_dir=".", **kwargs): self.provider = provider self.id = kwargs["id"] self.predictor_id = kwargs["predictor_id"] + self.deployment_id = kwargs["deployment_id"] self.key = kwargs["key"] self.metadata_root = kwargs["metadata_root"] self.name = kwargs["name"] @@ -70,6 +71,7 @@ def metric_dimensions_with_id(self): return [ {"Name": "APIName", "Value": self.name}, {"Name": "PredictorID", "Value": self.predictor_id}, + {"Name": "DeploymentID", "Value": self.deployment_id}, ] def metric_dimensions(self):