Skip to content

Commit ccdfbf5

Browse files
committed
adds custom config to show/hide host usage info
1 parent e6f707b commit ccdfbf5

File tree

3 files changed

+60
-50
lines changed

3 files changed

+60
-50
lines changed

jupyter_resource_usage/api.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ async def get(self, matched_part=None, *args, **kwargs):
106106
)
107107
return
108108

109+
config = self.settings["jupyter_resource_usage_display_config"]
110+
109111
kernel_id = matched_part
110112
km = self.kernel_manager
111113
lkm = km.pinned_superclass.get_kernel(km, kernel_id)
@@ -114,7 +116,6 @@ async def get(self, matched_part=None, *args, **kwargs):
114116

115117
control_channel = client.control_channel
116118
usage_request = session.msg("usage_request", {})
117-
118119
control_channel.send(usage_request)
119120
poller = zmq.asyncio.Poller()
120121
control_socket = control_channel.socket
@@ -137,6 +138,7 @@ async def get(self, matched_part=None, *args, **kwargs):
137138
res = await res
138139
if res:
139140
res["kernel_id"] = kernel_id
141+
res["content"].update({"host_usage_flag": config.show_host_usage})
140142
out = json.dumps(res, default=date_default)
141143
client.stop_channels()
142144
self.write(out)

jupyter_resource_usage/config.py

+7
Original file line numberDiff line numberDiff line change
@@ -129,3 +129,10 @@ def _cpu_limit_default(self):
129129
Set to False in order to disable reporting of Prometheus style metrics.
130130
""",
131131
).tag(config=True)
132+
133+
show_host_usage = Bool(
134+
default_value=True,
135+
help="""
136+
Set to True in order to show host cpu and host virtual memory info.
137+
""",
138+
).tag(config=True)

packages/labextension/src/widget.tsx

+50-49
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ type Usage = {
1919
pid: number;
2020
host_cpu_percent: number;
2121
cpu_count: number;
22+
host_usage_flag: boolean;
2223
host_virtual_memory: {
2324
active: number;
2425
available: number;
@@ -302,56 +303,56 @@ const KernelUsage = (props: {
302303
{formatForDisplay(usage.kernel_memory)}
303304
</div>
304305
<hr className="jp-KernelUsage-section-separator"></hr>
305-
<h4 className="jp-KernelUsage-section-separator">
306-
{props.trans.__('Host CPU')}
307-
</h4>
308-
{usage.host_cpu_percent && (
309-
<div className="jp-KernelUsage-separator">
310-
{props.trans._n(
311-
'%2%% used on %1 CPU',
312-
'%2%% used on %1 CPUs',
313-
usage.cpu_count,
314-
usage.host_cpu_percent.toFixed(1)
306+
{usage?.host_usage_flag ? (
307+
<>
308+
<h4 className="jp-KernelUsage-section-separator">
309+
{props.trans.__('Host CPU')}
310+
</h4>
311+
{usage.host_cpu_percent && (
312+
<div className="jp-KernelUsage-separator">
313+
{props.trans._n(
314+
'%2%% used on %1 CPU',
315+
'%2%% used on %1 CPUs',
316+
usage.cpu_count,
317+
usage.host_cpu_percent.toFixed(1)
318+
)}
319+
</div>
315320
)}
316-
</div>
317-
)}
318-
<h4 className="jp-KernelUsage-section-separator">
319-
{props.trans.__('Host Virtual Memory')}
320-
</h4>
321-
<div className="jp-KernelUsage-separator">
322-
{props.trans.__('Active:')}{' '}
323-
{formatForDisplay(usage.host_virtual_memory.active)}
324-
</div>
325-
<div className="jp-KernelUsage-separator">
326-
{props.trans.__('Available:')}{' '}
327-
{formatForDisplay(usage.host_virtual_memory.available)}
328-
</div>
329-
<div className="jp-KernelUsage-separator">
330-
{props.trans.__('Free:')}{' '}
331-
{formatForDisplay(usage.host_virtual_memory.free)}
332-
</div>
333-
<div className="jp-KernelUsage-separator">
334-
{props.trans.__('Inactive:')}{' '}
335-
{formatForDisplay(usage.host_virtual_memory.inactive)}
336-
</div>
337-
{usage.host_virtual_memory.percent && (
338-
<div className="jp-KernelUsage-separator">
339-
{props.trans.__('Percent used:')}{' '}
340-
{usage.host_virtual_memory.percent.toFixed(1)}%
341-
</div>
342-
)}
343-
<div className="jp-KernelUsage-separator">
344-
{props.trans.__('Total:')}{' '}
345-
{formatForDisplay(usage.host_virtual_memory.total)}
346-
</div>
347-
<div className="jp-KernelUsage-separator">
348-
{props.trans.__('Used:')}{' '}
349-
{formatForDisplay(usage.host_virtual_memory.used)}
350-
</div>
351-
<div className="jp-KernelUsage-separator">
352-
{props.trans.__('Wired:')}{' '}
353-
{formatForDisplay(usage.host_virtual_memory.wired)}
354-
</div>
321+
<h4 className="jp-KernelUsage-section-separator">
322+
{props.trans.__('Host Virtual Memory')}
323+
</h4>
324+
<div className="jp-KernelUsage-separator">
325+
{props.trans.__('Active:')}{' '}
326+
{formatForDisplay(usage.host_virtual_memory.active)}
327+
</div>
328+
<div className="jp-KernelUsage-separator">
329+
{props.trans.__('Available:')}{' '}
330+
{formatForDisplay(usage.host_virtual_memory.available)}
331+
</div>
332+
<div className="jp-KernelUsage-separator">
333+
{props.trans.__('Free:')}{' '}
334+
{formatForDisplay(usage.host_virtual_memory.free)}
335+
</div>
336+
<div className="jp-KernelUsage-separator">
337+
{props.trans.__('Inactive:')}{' '}
338+
{formatForDisplay(usage.host_virtual_memory.inactive)}
339+
</div>
340+
{usage.host_virtual_memory.percent && (
341+
<div className="jp-KernelUsage-separator">
342+
{props.trans.__('Percent used:')}{' '}
343+
{usage.host_virtual_memory.percent.toFixed(1)}%
344+
</div>
345+
)}
346+
<div className="jp-KernelUsage-separator">
347+
{props.trans.__('Total:')}{' '}
348+
{formatForDisplay(usage.host_virtual_memory.total)}
349+
</div>
350+
<div className="jp-KernelUsage-separator">
351+
{props.trans.__('Wired:')}{' '}
352+
{formatForDisplay(usage.host_virtual_memory.wired)}
353+
</div>
354+
</>
355+
) : null}
355356
</>
356357
) : blankStateReason?.reason === 'loading' ? (
357358
<div className="jp-KernelUsage-separator">

0 commit comments

Comments
 (0)