summaryrefslogtreecommitdiff
path: root/zuul/scheduler.py
diff options
context:
space:
mode:
Diffstat (limited to 'zuul/scheduler.py')
-rw-r--r--zuul/scheduler.py31
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):