|
26 | 26 | from notebook._tz import utcnow, isoformat |
27 | 27 | from ipython_genutils.py3compat import getcwd |
28 | 28 |
|
| 29 | +from notebook.prometheus.metrics import KERNEL_CURRENTLY_RUNNING_TOTAL |
| 30 | + |
29 | 31 |
|
30 | 32 | class MappingKernelManager(MultiKernelManager): |
31 | 33 | """A KernelManager that handles notebook mapping and HTTP error handling""" |
@@ -168,6 +170,13 @@ def start_kernel(self, kernel_id=None, path=None, **kwargs): |
168 | 170 | lambda : self._handle_kernel_died(kernel_id), |
169 | 171 | 'dead', |
170 | 172 | ) |
| 173 | + |
| 174 | + # Increase the metric of number of kernels running |
| 175 | + # for the relevant kernel type by 1 |
| 176 | + KERNEL_CURRENTLY_RUNNING_TOTAL.labels( |
| 177 | + type=self._kernels[kernel_id].kernel_name |
| 178 | + ).inc() |
| 179 | + |
171 | 180 | else: |
172 | 181 | self._check_kernel_id(kernel_id) |
173 | 182 | self.log.info("Using existing kernel: %s" % kernel_id) |
@@ -278,6 +287,13 @@ def shutdown_kernel(self, kernel_id, now=False): |
278 | 287 | self.stop_buffering(kernel_id) |
279 | 288 | self._kernel_connections.pop(kernel_id, None) |
280 | 289 | self.last_kernel_activity = utcnow() |
| 290 | + |
| 291 | + # Decrease the metric of number of kernels |
| 292 | + # running for the relevant kernel type by 1 |
| 293 | + KERNEL_CURRENTLY_RUNNING_TOTAL.labels( |
| 294 | + type=self._kernels[kernel_id].kernel_name |
| 295 | + ).dec() |
| 296 | + |
281 | 297 | return super(MappingKernelManager, self).shutdown_kernel(kernel_id, now=now) |
282 | 298 |
|
283 | 299 | def restart_kernel(self, kernel_id): |
|
0 commit comments