summaryrefslogtreecommitdiff
path: root/zuul/merger/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'zuul/merger/server.py')
-rw-r--r--zuul/merger/server.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/zuul/merger/server.py b/zuul/merger/server.py
index fe5b938a1..fec3df5e0 100644
--- a/zuul/merger/server.py
+++ b/zuul/merger/server.py
@@ -28,6 +28,7 @@ from kazoo.exceptions import NoNodeError
from zuul.lib import commandsocket
from zuul.lib.config import get_default
from zuul.lib.logutil import get_annotated_logger
+from zuul.lib import tracing
from zuul.merger import merger
from zuul.merger.merger import nullcontext
from zuul.model import (
@@ -94,6 +95,7 @@ class BaseMergeServer(metaclass=ABCMeta):
self.config = config
+ self.tracing = tracing.Tracing(self.config)
self.zk_client = ZooKeeperClient.fromConfig(self.config)
self.zk_client.connect()
@@ -180,6 +182,7 @@ class BaseMergeServer(metaclass=ABCMeta):
self._merger_running = False
self.merger_loop_wake_event.set()
self.zk_client.disconnect()
+ self.tracing.stop()
def join(self):
self.merger_loop_wake_event.set()
@@ -204,7 +207,11 @@ class BaseMergeServer(metaclass=ABCMeta):
for merge_request in self.merger_api.next():
if not self._merger_running:
break
- self._runMergeJob(merge_request)
+
+ with tracing.startSpanInContext(
+ merge_request.span_context, "MergerJob",
+ attributes={"merger": self.hostname}):
+ self._runMergeJob(merge_request)
except Exception:
self.log.exception("Error in merge thread:")
time.sleep(5)
@@ -411,9 +418,11 @@ class BaseMergeServer(metaclass=ABCMeta):
)
if merge_request.job_type == MergeRequest.FILES_CHANGES:
event = FilesChangesCompletedEvent(
+ merge_request.uuid,
merge_request.build_set_uuid,
files,
elapsed_time,
+ merge_request.span_info,
)
else:
event = MergeCompletedEvent(
@@ -427,6 +436,7 @@ class BaseMergeServer(metaclass=ABCMeta):
item_in_branches,
errors,
elapsed_time,
+ merge_request.span_info,
)
def put_complete_event(log, merge_request, event):