diff --git a/nbresuse/__init__.py b/nbresuse/__init__.py index f25bc29..64e6b70 100644 --- a/nbresuse/__init__.py +++ b/nbresuse/__init__.py @@ -35,9 +35,16 @@ def load_jupyter_server_extension(nbapp): resuseconfig = ResourceUseDisplay(parent=nbapp) nbapp.web_app.settings["nbresuse_display_config"] = resuseconfig base_url = nbapp.web_app.settings["base_url"] + + if not resuseconfig.disable_legacy_endpoint: + nbapp.web_app.add_handlers( + ".*", [(url_path_join(base_url, "/metrics"), ApiHandler)] + ) + nbapp.web_app.add_handlers( - ".*", [(url_path_join(base_url, "/metrics"), ApiHandler)] + ".*", [(url_path_join(base_url, "/api/metrics/v1"), ApiHandler)] ) + callback = ioloop.PeriodicCallback( PrometheusHandler(PSUtilMetricsLoader(nbapp)), 1000 ) diff --git a/nbresuse/config.py b/nbresuse/config.py index ec88565..295c296 100644 --- a/nbresuse/config.py +++ b/nbresuse/config.py @@ -37,6 +37,16 @@ class ResourceUseDisplay(Configurable): Holds server-side configuration for nbresuse """ + disable_legacy_endpoint = Bool( + True, + help=""" + Disable legacy /metrics endpoint + + This prevents nbresuse from shadowing the prometheus /metrics endpoint. + """, + config=True, + ) + process_memory_metrics = List( trait=PSUtilMetric(), default_value=[{"name": "memory_info", "attribute": "rss"}], diff --git a/nbresuse/static/main.js b/nbresuse/static/main.js index 581a775..8c0cfcb 100644 --- a/nbresuse/static/main.js +++ b/nbresuse/static/main.js @@ -34,7 +34,7 @@ define([ return; } $.getJSON({ - url: utils.get_body_data('baseUrl') + 'metrics', + url: utils.get_body_data('baseUrl') + 'api/metrics/v1', success: function (data) { totalMemoryUsage = humanFileSize(data['rss']); diff --git a/setup.py b/setup.py index a792250..09b7b9d 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ setuptools.setup( name="nbresuse", - version="0.3.6", + version="0.4.0", url="https://github.com/yuvipanda/nbresuse", author="Yuvi Panda", description="Simple Jupyter extension to show how much resources (RAM) your notebook is using",