Skip to content

Commit 7b9e52c

Browse files
authored
Merge pull request #50 from xlab-uiuc/trace-improve
Task desc && tool result adjustment
2 parents 8f2eb4d + b86a686 commit 7b9e52c

File tree

17 files changed

+4
-27
lines changed

17 files changed

+4
-27
lines changed

aiopslab/observer/trace_api.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -211,9 +211,9 @@ def extract_traces(
211211
)
212212
for trace in traces:
213213
for span in trace["spans"]:
214-
span[
214+
span["serviceName"] = trace["processes"][span["processID"]][
215215
"serviceName"
216-
] = service # Directly associate service name with each span
216+
]
217217
all_traces.append(trace) # Collect the trace with service name included
218218
self.cleanup()
219219
print("Cleanup completed.")
@@ -251,7 +251,7 @@ def process_traces(self, traces) -> pd.DataFrame:
251251
operation_name_list.append(span["operationName"])
252252
start_time_list.append(span["startTime"])
253253
duration_list.append(span["duration"])
254-
254+
255255
has_error = False
256256
response = "Unknown"
257257
for tag in span.get("tags", []):
@@ -261,7 +261,6 @@ def process_traces(self, traces) -> pd.DataFrame:
261261
response = tag["value"]
262262
error_list.append(has_error)
263263
response_list.append(response)
264-
265264

266265
df = pd.DataFrame(
267266
{

aiopslab/orchestrator/problems/ad_service_failure/ad_service_failure.py

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class AdServiceFailureLocalization(AdServiceFailureBaseTask, LocalizationTask):
6161
def __init__(self):
6262
AdServiceFailureBaseTask.__init__(self)
6363
LocalizationTask.__init__(self, self.app)
64-
self.task_desc += "Start by investigating the ad service."
6564

6665
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
6766
print("== Evaluation ==")

aiopslab/orchestrator/problems/ad_service_high_cpu/ad_service_high_cpu.py

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class AdServiceHighCpuLocalization(AdServiceHighCpuBaseTask, LocalizationTask):
6161
def __init__(self):
6262
AdServiceHighCpuBaseTask.__init__(self)
6363
LocalizationTask.__init__(self, self.app)
64-
self.task_desc += "Start by investigating the ad service."
6564

6665
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
6766
print("== Evaluation ==")

aiopslab/orchestrator/problems/ad_service_manual_gc/ad_service_manual_gc.py

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class AdServiceManualGcLocalization(AdServiceManualGcBaseTask, LocalizationTask)
6161
def __init__(self):
6262
AdServiceManualGcBaseTask.__init__(self)
6363
LocalizationTask.__init__(self, self.app)
64-
self.task_desc += "Start by investigating the ad service."
6564

6665
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
6766
print("== Evaluation ==")

aiopslab/orchestrator/problems/assign_non_existent_node/assign_non_existent_node_social_net.py

-3
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ class AssignNonExistentNodeSocialNetLocalization(
9393
def __init__(self):
9494
AssignNonExistentNodeSocialNetBaseTask.__init__(self)
9595
LocalizationTask.__init__(self, self.app)
96-
self.task_desc += "Start by investigating the `compost-post-service` pod"
9796

9897
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
9998
print("== Evaluation ==")
@@ -137,7 +136,6 @@ class AssignNonExistentNodeSocialNetAnalysis(
137136
def __init__(self):
138137
AssignNonExistentNodeSocialNetBaseTask.__init__(self)
139138
AnalysisTask.__init__(self, self.app)
140-
self.task_desc += "Start by investigating the `compost-post-service` pod"
141139

142140
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
143141
print("== Evaluation ==")
@@ -179,7 +177,6 @@ class AssignNonExistentNodeSocialNetMitigation(
179177
def __init__(self):
180178
AssignNonExistentNodeSocialNetBaseTask.__init__(self)
181179
MitigationTask.__init__(self, self.app)
182-
self.task_desc += "Start by investigating the `compost-post-service` pod"
183180

184181
def eval(self, soln: Any, trace: list[SessionItem], duration: float) -> dict:
185182
print("== Evaluation ==")

aiopslab/orchestrator/problems/auth_miss_mongodb/auth_miss_mongodb.py

-3
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ class MongoDBAuthMissingLocalization(MongoDBAuthMissingBaseTask, LocalizationTas
8686
def __init__(self):
8787
MongoDBAuthMissingBaseTask.__init__(self)
8888
LocalizationTask.__init__(self, self.app)
89-
self.task_desc += "Start by investigating the `compose-post-service` pod"
9089

9190
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
9291
print("== Evaluation ==")
@@ -128,7 +127,6 @@ class MongoDBAuthMissingAnalysis(MongoDBAuthMissingBaseTask, AnalysisTask):
128127
def __init__(self):
129128
MongoDBAuthMissingBaseTask.__init__(self)
130129
AnalysisTask.__init__(self, self.app)
131-
self.task_desc += "Start by investigating the `compose-post-service` pod"
132130

133131
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
134132
print("== Evaluation ==")
@@ -169,7 +167,6 @@ class MongoDBAuthMissingMitigation(MongoDBAuthMissingBaseTask, MitigationTask):
169167
def __init__(self):
170168
MongoDBAuthMissingBaseTask.__init__(self)
171169
MitigationTask.__init__(self, self.app)
172-
self.task_desc += "Start by investigating the `compose-post-service` pod"
173170

174171
# TODO: this migigate eval should be a bit different.
175172
# The error will not be on the container/pod level but the app level,

aiopslab/orchestrator/problems/cart_service_failure/cart_service_failure.py

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class CartServiceFailureLocalization(CartServiceFailureBaseTask, LocalizationTas
6161
def __init__(self):
6262
CartServiceFailureBaseTask.__init__(self)
6363
LocalizationTask.__init__(self, self.app)
64-
self.task_desc += "Start by investigating the cart service."
6564

6665
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
6766
print("== Evaluation ==")

aiopslab/orchestrator/problems/image_slow_load/image_slow_load.py

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class ImageSlowLoadLocalization(ImageSlowLoadBaseTask, LocalizationTask):
6161
def __init__(self):
6262
ImageSlowLoadBaseTask.__init__(self)
6363
LocalizationTask.__init__(self, self.app)
64-
self.task_desc += "Start by investigating the frontend service."
6564

6665
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
6766
print("== Evaluation ==")

aiopslab/orchestrator/problems/k8s_target_port_misconfig/target_port.py

-3
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ class K8STargetPortMisconfigLocalization(
8888
def __init__(self, faulty_service: str = "user-service"):
8989
K8STargetPortMisconfigBaseTask.__init__(self, faulty_service=faulty_service)
9090
LocalizationTask.__init__(self, self.app)
91-
self.task_desc += "Start by investigating the `compose-post-service` pod"
9291

9392
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
9493
print("== Evaluation ==")
@@ -133,7 +132,6 @@ class K8STargetPortMisconfigAnalysis(K8STargetPortMisconfigBaseTask, AnalysisTas
133132
def __init__(self, faulty_service: str = "user-service"):
134133
K8STargetPortMisconfigBaseTask.__init__(self, faulty_service=faulty_service)
135134
AnalysisTask.__init__(self, self.app)
136-
self.task_desc += "Start by investigating the `compose-post-service` pod"
137135

138136
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
139137
print("== Evaluation ==")
@@ -167,7 +165,6 @@ class K8STargetPortMisconfigMitigation(K8STargetPortMisconfigBaseTask, Mitigatio
167165
def __init__(self, faulty_service: str = "user-service"):
168166
K8STargetPortMisconfigBaseTask.__init__(self, faulty_service=faulty_service)
169167
MitigationTask.__init__(self, self.app)
170-
self.task_desc += "Start by investigating the `compose-post-service` pod"
171168

172169
def eval(self, soln: Any, trace: list[SessionItem], duration: float) -> dict:
173170
print("== Evaluation ==")

aiopslab/orchestrator/problems/kafka_queue_problems/kafka_queue_problems.py

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class KafkaQueueProblemsLocalization(KafkaQueueProblemsBaseTask, LocalizationTas
6161
def __init__(self):
6262
KafkaQueueProblemsBaseTask.__init__(self)
6363
LocalizationTask.__init__(self, self.app)
64-
self.task_desc += "Start by investigating the kafka service."
6564

6665
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
6766
print("== Evaluation ==")

aiopslab/orchestrator/problems/loadgenerator_flood_homepage/loadgenerator_flood_homepage.py

-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ class LoadGeneratorFloodHomepageLocalization(
6666
def __init__(self):
6767
LoadGeneratorFloodHomepageBaseTask.__init__(self)
6868
LocalizationTask.__init__(self, self.app)
69-
self.task_desc += "Start by investigating the frontend service."
7069

7170
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
7271
print("== Evaluation ==")

aiopslab/orchestrator/problems/payment_service_failure/payment_service_failure.py

-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ class PaymentServiceFailureLocalization(
6363
def __init__(self):
6464
PaymentServiceFailureBaseTask.__init__(self)
6565
LocalizationTask.__init__(self, self.app)
66-
self.task_desc += "Start by investigating the payment service."
6766

6867
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
6968
print("== Evaluation ==")

aiopslab/orchestrator/problems/payment_service_unreachable/payment_service_unreachable.py

-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ class PaymentServiceUnreachableLocalization(
6565
def __init__(self):
6666
PaymentServiceUnreachableBaseTask.__init__(self)
6767
LocalizationTask.__init__(self, self.app)
68-
self.task_desc += "Start by investigating the payment service."
6968

7069
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
7170
print("== Evaluation ==")

aiopslab/orchestrator/problems/product_catalog_failure/product_catalog_failure.py

-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ class ProductCatalogServiceFailureLocalization(
6565
def __init__(self):
6666
ProductCatalogServiceFailureBaseTask.__init__(self)
6767
LocalizationTask.__init__(self, self.app)
68-
self.task_desc += "Start by investigating the product catalog service."
6968

7069
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
7170
print("== Evaluation ==")

aiopslab/orchestrator/problems/recommendation_service_cache_failure/recommendation_service_cache_failure.py

-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ class RecommendationServiceCacheFailureLocalization(
6767
def __init__(self):
6868
RecommendationServiceCacheFailureBaseTask.__init__(self)
6969
LocalizationTask.__init__(self, self.app)
70-
self.task_desc += "Start by investigating the reccomendation service."
7170

7271
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
7372
print("== Evaluation ==")

aiopslab/orchestrator/problems/scale_pod/scale_pod_social_net.py

-3
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ class ScalePodSocialNetLocalization(ScalePodSocialNetBaseTask, LocalizationTask)
9292
def __init__(self):
9393
ScalePodSocialNetBaseTask.__init__(self)
9494
LocalizationTask.__init__(self, self.app)
95-
self.task_desc += "Start by investigating the `compost-post-service` pod"
9695

9796
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
9897
print("== Evaluation ==")
@@ -134,7 +133,6 @@ class ScalePodSocialNetAnalysis(ScalePodSocialNetBaseTask, AnalysisTask):
134133
def __init__(self):
135134
ScalePodSocialNetBaseTask.__init__(self)
136135
AnalysisTask.__init__(self, self.app)
137-
self.task_desc += "Start by investigating the `compost-post-service` pod"
138136

139137
def eval(self, soln: Any, trace: list[SessionItem], duration: float):
140138
print("== Evaluation ==")
@@ -174,7 +172,6 @@ class ScalePodSocialNetMitigation(ScalePodSocialNetBaseTask, MitigationTask):
174172
def __init__(self):
175173
ScalePodSocialNetBaseTask.__init__(self)
176174
MitigationTask.__init__(self, self.app)
177-
self.task_desc += "Start by investigating the `compost-post-service` pod"
178175

179176
def eval(self, soln: Any, trace: list[SessionItem], duration: float) -> dict:
180177
print("== Evaluation ==")

aiopslab/orchestrator/tasks/localization.py

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def __init__(self, app: Application):
3131
The service you are working with today is described below:
3232
{app_summary}
3333
34+
You are requested to identify the service(s) where the root cause of the fault lies.
3435
You will begin by analyzing the service's state and telemetry, and then submit one of two possible solutions:
3536
1. list[str]: list of faulty components (i.e., service names)
3637
2. str: `None` if no faults were detected

0 commit comments

Comments
 (0)