Skip to content

Commit

Permalink
Merge pull request jupyter-server#344 from yuvipanda/prometheus-auth
Browse files Browse the repository at this point in the history
Allow toggling auth for prometheus metrics
  • Loading branch information
Zsailer authored Dec 1, 2020
2 parents 5b3c146 + 6cfdfda commit eb80c15
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
6 changes: 4 additions & 2 deletions jupyter_server/base/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -845,10 +845,12 @@ def get(self):

class PrometheusMetricsHandler(JupyterHandler):
"""
Return prometheus metrics for this Jupyter server
Return prometheus metrics for this notebook server
"""
@web.authenticated
def get(self):
if self.settings['authenticate_prometheus'] and not self.logged_in:
raise web.HTTPError(403)

self.set_header('Content-Type', prometheus_client.CONTENT_TYPE_LATEST)
self.write(prometheus_client.generate_latest(prometheus_client.REGISTRY))

Expand Down
9 changes: 9 additions & 0 deletions jupyter_server/serverapp.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@ def init_settings(self, jupyter_app, kernel_manager, contents_manager,
disable_check_xsrf=jupyter_app.disable_check_xsrf,
allow_remote_access=jupyter_app.allow_remote_access,
local_hostnames=jupyter_app.local_hostnames,
authenticate_prometheus=jupyter_app.authenticate_prometheus,

# managers
kernel_manager=kernel_manager,
Expand Down Expand Up @@ -1199,6 +1200,14 @@ def _update_server_extensions(self, change):
is not available.
"""))

authenticate_prometheus = Bool(
True,
help=""""
Require authentication to access prometheus metrics.
""",
config=True
)

def parse_command_line(self, argv=None):

super(ServerApp, self).parse_command_line(argv)
Expand Down

0 comments on commit eb80c15

Please sign in to comment.