diff options
Diffstat (limited to 'zuul/merger/server.py')
-rw-r--r-- | zuul/merger/server.py | 12 |
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): |