Skip to content

Commit 70c54d9

Browse files
committed
Addressing Nits Updating README
Took Vishnu's feedback. Updated README Adding `reason` to example ack file Signed-off-by: Joe Talerico aka rook <joe.talerico@gmail.com>
1 parent d04e5ee commit 70c54d9

File tree

3 files changed

+12
-16
lines changed

3 files changed

+12
-16
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,17 +164,20 @@ You can open the match requirement by using the ```--node-count``` option to fin
164164
**_NOTE:_** The ```cmr```, ```--hunter-analyze``` and ```--anomaly-detection``` flags are mutually exclusive. They cannot be used together because they represent different algorithms designed for distinct use cases.
165165

166166
#### Ack known bugs
167-
To ack known regressions, you must provide a yaml file with the timestamp which the regression was identified at.
167+
To ack known regressions, you must provide a yaml file with the uuid and metric which the regression was identified at. Example below
168168

169169
```
170170
---
171171
ack :
172-
- timestamp: 1733490603,
172+
- uuid: "af24e294-93da-4729-a9cc-14acf38454e1",
173173
metric: "etcdCPU_avg"
174+
reason: "started thread with etcd team"
174175
```
175176

176177
ack'ing regressions will ensure Orion doesn't continue to notify users of the same issues.
177178

179+
Engineers should add a `reason` that could link to a JIRA or Slack thread. Or the `reason` could be the changepoint % diff is too low to alert component teams.
180+
178181
### Daemon mode
179182
The core purpose of Daemon mode is to operate Orion as a self-contained server, dedicated to handling incoming requests. By sending a POST request accompanied by a test name of predefined tests, users can trigger change point detection on the provided metadata and metrics. Following the processing, the response is formatted in JSON, providing a structured output for seamless integration and analysis. To trigger daemon mode just use the following commands
180183

ack/ack.yaml renamed to ack/418ack.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@
22
ack :
33
- uuid: "7f7337aa-cee3-4a36-b154-a7c48ed1fb75"
44
metric: "etcdCPU_avg"
5+
reason: "Under our 10% target"
56
- uuid: "22e90f4e-1c79-4d9d-b2f6-b95a7072738c"
67
metric: "kubelet_avg"
8+
reason: "Opened Dialog with node team"
79
- uuid: "22e90f4e-1c79-4d9d-b2f6-b95a7072738c"
810
metric: "ovnCPU_avg"
11+
reason: "OCPBUGS111111"
912
- uuid: "93201652-b496-4594-b1ac-7eb9a32cd609"
1013
metric: "apiserverCPU_avg"
14+
reason: "opened discussion with api team"

pkg/algorithms/edivisive/edivisive.py

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,29 +21,18 @@ def _analyze(self):
2121

2222

2323
# Process if we have ack'ed regression
24-
ackList = []
24+
ackSet = set()
2525
if len(self.options["ack"]) > 1 :
2626
for ack in self.options["ackMap"]["ack"]:
2727
pos = series.find_by_attribute("uuid",ack["uuid"])
28-
ackList.append(
29-
{"pos" : pos[0],
30-
"metric" : ack["metric"]})
28+
ackSet.add(str(pos[0]) + "_" + ack["metric"])
3129

3230
# filter by direction
3331
for metric, changepoint_list in change_points_by_metric.items():
3432
for i in range(len(changepoint_list)-1, -1, -1):
35-
if ((self.metrics_config[metric]["direction"] == 1 and changepoint_list[i].stats.mean_1 > changepoint_list[i].stats.mean_2) or
36-
(self.metrics_config[metric]["direction"] == -1 and changepoint_list[i].stats.mean_1 < changepoint_list[i].stats.mean_2) ):
33+
if ((self.metrics_config[metric]["direction"] == 1 and changepoint_list[i].stats.mean_1 > changepoint_list[i].stats.mean_2) or (self.metrics_config[metric]["direction"] == -1 and changepoint_list[i].stats.mean_1 < changepoint_list[i].stats.mean_2) or (str(changepoint_list[i].index) + "_" + changepoint_list[i].metric in ackSet)):
3734
del changepoint_list[i]
3835

39-
# Filter ack'ed changes
40-
for metric, changepoint_list in change_points_by_metric.items():
41-
for i in range(len(changepoint_list)-1, -1, -1):
42-
for acked in ackList:
43-
if len(changepoint_list) > 0 :
44-
if (changepoint_list[i].index == acked["pos"] and changepoint_list[i].metric == acked["metric"]):
45-
del changepoint_list[i]
46-
4736
if [val for li in change_points_by_metric.values() for val in li]:
4837
self.regression_flag=True
4938
return series, change_points_by_metric

0 commit comments

Comments
 (0)