Skip to content

Commit fbf8f22

Browse files
deliahuvishalbollu
authored andcommitted
Post latency metrics whether or not tracker is configured (#774)
1 parent 936f109 commit fbf8f22

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

pkg/workloads/cortex/lib/type/api.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,21 @@ def upload_class(self, class_name):
6464
def metric_dimensions(self):
6565
return [{"Name": "APIName", "Value": self.name}, {"Name": "APIID", "Value": self.id}]
6666

67-
def post_request_metrics(self, status_code, start_time, prediction_value=None):
68-
metrics_list = []
69-
metrics_list.append(self.status_code_metric(status_code))
67+
def post_latency_metrics(self, status_code, start_time):
68+
metrics = [self.status_code_metric(status_code), self.latency_metric(start_time)]
69+
self.post_metrics(metrics)
7070

71+
def post_tracker_metrics(self, prediction_value=None):
7172
if prediction_value is not None:
72-
metrics_list.append(self.prediction_metrics(prediction_value))
73-
74-
metrics_list.append(self.latency_metric(start_time))
73+
metrics = [self.prediction_metrics(prediction_value)]
74+
self.post_metrics(metrics)
7575

76+
def post_metrics(self, metrics):
7677
try:
7778
if self.statsd is None:
7879
raise CortexException("statsd client not initialized") # unexpected
7980

80-
for metric in metrics_list:
81+
for metric in metrics:
8182
tags = ["{}:{}".format(dim["Name"], dim["Value"]) for dim in metric["Dimensions"]]
8283
if metric.get("Unit") == "Count":
8384
self.statsd.increment(metric["MetricName"], value=metric["Value"], tags=tags)

pkg/workloads/cortex/serve/serve.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,11 @@ def after_request(response):
120120
prediction = g.prediction
121121

122122
try:
123+
api.post_latency_metrics(response.status_code, g.start_time)
124+
123125
if api.tracker is not None:
124126
predicted_value = api.tracker.extract_predicted_value(prediction)
125-
api.post_request_metrics(response.status_code, g.start_time, predicted_value)
127+
api.post_tracker_metrics(predicted_value)
126128
if predicted_value is not None and predicted_value not in local_cache["class_set"]:
127129
api.upload_class(predicted_value)
128130
local_cache["class_set"].add(predicted_value)

0 commit comments

Comments
 (0)