amazon-web-services - 如何通过命令行检查 Jupyter 活动笔记本
问题描述
我有一个运行 Jupyterhub 版本 0.8.1+ 的 AWS EMR,我想检查是否有任何活动的笔记本正在运行任何代码。我尝试了以下命令,但它们似乎没有输出我在此处查找的内容,因为用户服务器始终在运行,并且笔记本可以在不执行任何代码的情况下运行。
# only lists running servers and jovyan is always running.
sudo docker exec jupyterhub jupyter notebook list
# No useful information outputted
curl -k -i -H "Accept: application/json" "https://localhost:9443/api/sessions"
# always lists processes regardless of running notebooks
ps aux | grep ipykernel
# The last_activity only updates when a user creates a new file or folder in the ui.
curl -k https://localhost:9443/hub/api/users/$user -H "Authorization: token $admin_token" | jq -r .last_activity
curl -k https://localhost:9443/hub/api/users -H "Authorization: token $admin_token" | jq -r .last_activity
我正在关注这个 AWS 博客,以在终止集群之前检查整个 EMR 是否空闲,但他们似乎从未完全实施过 jupyter 检查。 https://aws.amazon.com/blogs/big-data/optimize-amazon-emr-costs-with-idle-checks-and-automatic-resource-termination-using-advanced-amazon-cloudwatch-metrics-and- aws-lambda/ 引用的大部分文件都可以在 Github 中找到https://github.com/septian-putra/emr-monitoring
解决方案
要查看笔记本是否因“忙”而处于“空闲”状态,您可以curl -ks https://localhost:9443/user/jovyan/api/kernels -H "Authorization: token ${admin_token}"
使用此命令运行,您只需将其放入带有 a 的简单 if 语句grep -q
中,以获得真假空闲值。
if [ $(curl -ks https://localhost:9443/user/jovyan/api/kernels -H "Authorization: token ${admin_token}" | grep -q "busy") ]; then
JUPYTER_BUSY_NOTEBOOKS=1
else
JUPYTER_BUSY_NOTEBOOKS=0
fi
(curl -ks 用于静默输出并忽略 ssl。jovyan 是我的管理员用户)
文档 https://jupyter-kernel-gateway.readthedocs.io/en/latest/websocket-mode.html#http-resources /api/sessions 也可能有用。
推荐阅读
- java - Double.parseDouble 如何使我的应用程序崩溃?
- c# - 各种类如何只使用日志文件类的一个实例
- ajax - Laravel 发布 - 419 未知状态
- java - 如何使用fabric8 java客户端API在Kubernetes中执行滚动更新和部署回滚?
- swift - 无法调用非函数类型“UITableView?”的值 在 UITapGestureRecognizer 方法中
- powerapps - powerapps 中的日历事件
- python - 给定开始和停止时间,检查服务是否应该开启
- python - 如何根据标题行将数据帧拆分为多个数据帧
- autodesk-forge - 在 Forge Viewer 中限制轨道运动
- pyspark - 使用 spark -redshift 连接器将 spark 连接到 redshift 时出现问题