diff options
Diffstat (limited to 'zuul/scheduler.py')
-rw-r--r-- | zuul/scheduler.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/zuul/scheduler.py b/zuul/scheduler.py index dfc922cf1..9548cb6d2 100644 --- a/zuul/scheduler.py +++ b/zuul/scheduler.py @@ -42,6 +42,7 @@ from zuul.lib.monitoring import MonitoringServer from zuul.lib.queue import NamedQueue from zuul.lib.times import Times from zuul.lib.statsd import get_statsd, normalize_statsd_name +from zuul.lib import tracing import zuul.lib.queue import zuul.lib.repl from zuul import nodepool @@ -190,6 +191,7 @@ class Scheduler(threading.Thread): self.daemon = True self.wait_for_init = wait_for_init self.hostname = socket.getfqdn() + self.tracing = tracing.Tracing(config) self.primed_event = threading.Event() # Wake up the main run loop self.wake_event = threading.Event() @@ -383,7 +385,10 @@ class Scheduler(threading.Thread): self.log.debug("Stopping monitoring server") self.monitoring_server.stop() self.monitoring_server.join() + self.log.debug("Disconnecting from ZooKeeper") self.zk_client.disconnect() + self.log.debug("Stopping tracing") + self.tracing.stop() def runCommand(self): while self._command_running: @@ -2704,6 +2709,14 @@ class Scheduler(threading.Thread): build.result = result + attributes = { + "uuid": build.uuid, + "job": build.job.name, + "buildset_uuid": build.build_set.item.current_build_set.uuid, + "zuul_event_id": build.build_set.item.event.zuul_event_id, + } + tracing.endSavedSpan(build.span_info, attributes=attributes) + self._reportBuildStats(build) self._cleanupCompletedBuild(build) @@ -2741,12 +2754,30 @@ class Scheduler(threading.Thread): build_set = self._getBuildSetFromPipeline(event, pipeline) if not build_set: return + + tracing.endSavedSpan( + event.span_info, + attributes={ + "uuid": event.request_uuid, + "buildset_uuid": build_set.uuid, + "zuul_event_id": build_set.item.event.zuul_event_id, + } + ) pipeline.manager.onMergeCompleted(event, build_set) def _doFilesChangesCompletedEvent(self, event, pipeline): build_set = self._getBuildSetFromPipeline(event, pipeline) if not build_set: return + + tracing.endSavedSpan( + event.span_info, + attributes={ + "uuid": event.request_uuid, + "buildset_uuid": build_set.uuid, + "zuul_event_id": build_set.item.event.zuul_event_id, + } + ) pipeline.manager.onFilesChangesCompleted(event, build_set) def _doNodesProvisionedEvent(self, event, pipeline): |