使用无头浏览器来截图 Grafana 页面实现渲染仪表盘图像的目的。
环境需要 playwright 或者远程 playwright
pip instll playwright py-grafana-render
playwright install
playwright install-dev
在你的代码中引用:
from py_grafana_render import GrafanaRender
# 此处传入 Grafana 服务账户的 Token
gf = GrafanaRender(token="<your-grafana-service-token>", browser="firefox")
gf_ws = GrafanaRender(token="<your-grafana-service-token>", browser="firefox", remote_browser_ws = "ws://<your-host>:port")
# 本地安装了 playwright 浏览器
image_bytes = gf.snapshot(
url="https://<your-domain>/d/<dashboard-uid>?xxx=xxx&kiosk",
file_path="./test.png"
)
参数名 | 必填 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
token | 是 | str | Grafana 服务账户的 Token | |
browser | str | firefox | 使用的无头浏览器,可选值: - chrome - firefox |
参数:
参数名 | 必填 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
url | 是 | str | Grafana 的页面,可以包含查询字符串,不限仪表盘或面板。 | |
width | int | 762 | 截图宽度。 | |
height | int | 300 | 截图高度。若开启自动高度,则仪表盘将使用自动高度。 | |
auto_height | bool | True | 自动获取实际高度,如果无法自动获取,仅会使用默认高度。面板不会自动获取高度。 | |
auto_height_offset | int | 150 | 自动获取的高度,会因为存在顶部筛选器导致误差,使用该值对自动高度进行一定偏移。 | |
hide_class | list | None | 隐藏的样式选择器列表,比如 .css-k3l5qq 是 v11.3.1 的顶部筛选器栏。 | |
filetype | str | png | 可选 png 或 jpeg | |
file_path | str | None | 截图文件保存路径,需要包括文件名的完整路径。可以不传入,获取返回的字节流后自行保存。 |
返回:
- 图片字节流:bytes 当不传入 file_path 时,可以自行存储字节流,比如发送到 s3 存储等。
提示: 若希望全屏,需要自行在 url 中加入 kiosk 查询字符串。