文档

BI 仪表板 CLI 命令

连接 Grafana、Tableau、Power BI 或网页仪表板,然后浏览、创建、测试其视图并显示在屏幕上。

这里的每个命令都按 CLI 参考所述运行:全局标志、JSON 输出、退出代码、修订和重试。

BI 连接

BI 连接是项目对其拥有的、显示仪表板的系统的访问权限:Grafana 为其地址和服务账号令牌,Power BI 为 Microsoft Entra 应用(服务主体)及其客户端密钥,Tableau 为已连接应用和一个用户,网页则为在登录后显示仪表板的网站的服务账号,或已登录浏览器的 Cookie。连接 ID 以 bic_ 开头。密钥在服务器上加密封存,不会再次显示:读取时显示 secret {set, hint},其中 hint 是 12 位或更长密钥的最后四个字符。连接属于单个项目。bi connection list、show 和 browse 需要 Read 访问权限,其他所有命令都需要 Manage 访问权限。不含 BI 仪表板的套餐在创建连接或视图以及更改连接或视图时返回 feature_not_in_plan(退出码 8),更换凭据除外;定价列出各套餐。

在文件中提供密钥:Grafana 用 --token-file,Power BI 和 Tableau 用 --secret-file,网页用 --password-file、--totp-file 和 --cookies-file。每个选项都可用 - 表示标准输入,绝不作为参数传入,Web 连接的 --steps 脚本也是如此;一个命令中最多只有一个选项读取标准输入。

视图通过显示其 embed_url 的 iframe 图元,播放连接的一个仪表板、报表或页面;bi view create --connection-id ID 会创建视图。显示需要登录的仪表板介绍 Web 连接的完整流程,API 参考涵盖每一种类型。

bi connection create grafana#

添加 Grafana 连接:其地址和服务账号令牌。

bi connection create grafana --url URL --token-file FILE [--name NAME] [--org-id N]
参数类型必填默认备注
--url URLstring是无Grafana 在公共主机上的地址,可带任意路径前缀:https://grafana.example.com 或 https://example.com/grafana。私有、回环或保留地址会返回 invalid_request(退出码 8),并且 Grafana 必须不经重定向直接响应。
--token-file FILEstring是无从此文件读取服务账号令牌,或用 - 从标准输入读取(绝不作为参数传入);文件中只包含令牌。
--name NAMEstring否主机名1 到 80 个字符。
--org-id Ninteger否1令牌所属的 Grafana 组织:从 1 开始的整数。
screenrig bi connection create grafana --url https://grafana.example.com --token-file token.txt
screenrig bi connection create grafana --url https://example.com/grafana --token-file - --name "Ops Grafana" --org-id 2

在 Grafana 中,安装 Grafana Image Renderer 插件或远程渲染服务(它把仪表板绘制成图像;没有它就无法渲染任何内容),然后创建具有 Viewer 角色的服务账号并添加令牌。接着运行 bi connection test。

bi connection create tableau#

添加 Tableau 连接:已连接应用(直接信任)、屏幕视图以其身份显示的用户,以及该应用的密钥值。

bi connection create tableau --url URL --client-id ID --secret-id ID --username USER
    --secret-file FILE [--site SITE] [--name NAME]
参数类型必填默认备注
--url URLstring是无Tableau Server 的 https 地址,或您的 Tableau Cloud pod 的地址,例如 https://10ay.online.tableau.com(是 pod,而不是 online.tableau.com)。
--site SITEstring否Tableau Server 的默认站点站点的内容 URL,即视图地址中 /site/ 或 /t/ 之后的部分。
--client-id IDstring是无已连接应用的 Client ID。
--secret-id IDstring是无为已连接应用生成的密钥的 Secret ID。
--username USERstring是无屏幕视图以其身份显示的 Tableau 用户(在 Tableau Cloud 上为电子邮件地址)。
--secret-file FILEstring是无从此文件读取密钥的值,或用 - 从标准输入读取(绝不作为参数传入);文件中只包含密钥值,不包含 Secret ID。
--name NAMEstring否主机名1 到 80 个字符。
screenrig bi connection create tableau --url https://10ay.online.tableau.com --site lobby --client-id 11111111-2222-3333-4444-555555555555 --secret-id 66666666-7777-8888-9999-000000000000 --username screens@example.com --secret-file secret.txt

在 Tableau 中一次性设置:在 Settings 的 Connected Apps 下,创建一个 Direct trust 已连接应用,复制其 Client ID,生成密钥并复制 Secret ID 和密钥值,然后启用该应用和密钥。选择或创建屏幕以其身份显示视图的 Tableau 用户,并且只授予它屏幕所显示视图的访问权限:任何持有屏幕票据的人都可以嵌入该用户能看到的任何视图。然后运行 bi connection show ID,并把其 embed_origin 的主机输入到已连接应用的域名允许列表中。它需要 Tableau Cloud 或 Tableau Server 2023.3 或更高版本;屏幕必须能够访问 Tableau 主机,其浏览器必须接受来自该主机的第三方 Cookie。接着运行 bi connection test,再运行 bi connection browse 查找视图。

bi connection create powerbi#

添加 Power BI 连接:Microsoft Entra 应用(服务主体)及其客户端密钥,或此项目的 Microsoft 连接。

bi connection create powerbi
    (--tenant-id ID --client-id ID --secret-file FILE | --connection-id ID) [--name NAME]
参数类型必填默认备注
--tenant-id IDstring没有 --connection-id无您的 Microsoft Entra 目录(租户)ID,或其域名,例如 contoso.onmicrosoft.com;不能是 common、organizations 或 consumers。需与 --client-id 和 --secret-file 一起使用。
--client-id IDstring没有 --connection-id无应用注册的应用程序(客户端)ID。
--secret-file FILEstring没有 --connection-id无从此文件读取客户端密钥的值,或用 - 从标准输入读取(绝不作为参数传入);文件中只包含密钥值,不包含密钥 ID。
--connection-id IDstring没有 --tenant-id无通过此项目中 own_app 模式的 Microsoft 连接(pcn_…)登录,以代替 --tenant-id、--client-id 和 --secret-file。screenrig_app 连接会被拒绝。不能与它们一起使用。
--name NAMEstring否Power BI1 到 80 个字符。
screenrig bi connection create powerbi --tenant-id 11111111-2222-3333-4444-555555555555 --client-id aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee --secret-file secret.txt
screenrig bi connection create powerbi --connection-id pcn_01EXAMPLECONNECTION0000 --name "Contoso Power BI"

一次性设置。在 Microsoft Entra 中创建应用注册(单租户、无重定向 URI、无 API 权限)和客户端密钥。Power BI 管理员在管理门户的租户设置下,启用开发者设置 Embed content in apps 和 Service principals can call Fabric public APIs,范围为整个组织或包含该应用的安全组。把应用以 Member 或 Admin 角色添加到您要显示的每个工作区;Member 是最低的访问级别。用于生产嵌入时,工作区必须位于 Fabric (F)、Power BI Embedded (A) 或 Premium (P/EM) 容量上。仅限商业云。接着运行 bi connection test,再运行 bi connection browse 查找工作区和报表。

bi connection create web#

添加 Web 连接:在登录后显示仪表板的网站的服务账号,或已登录浏览器的 Cookie。

bi connection create web --login-mode auto|steps|none [--login-url URL] [--username USER]
    [--password-file FILE] [--totp-file FILE] [--steps FILE] [--cookies-file FILE] [--name NAME]
参数类型必填默认备注
--login-mode MODEstring是无auto 用 --username 和密码填写 --login-url 上的表单。steps 运行 --steps 脚本。none 不进行任何登录,因此页面使用 --cookies-file 的 Cookie 集显示,并且不接受 --login-url、--username、--password-file、--totp-file 或 --steps。
--login-url URLstring使用 auto 或 steps 时无网站登录页面的 https 地址,位于公共主机上。密码只会在该页面和脚本的 goto 步骤中输入,绝不会输入到视图的地址中。
--username USERstring配合 auto无服务账号的用户名,steps 脚本将其读取为 {{username}}。
--password-file FILEstring配合 auto无从此文件读取服务账号的密码,或用 - 从标准输入读取(绝不作为参数传入):允许包含空格,末尾的换行符会被去掉。
--totp-file FILEstring否无从此文件或 - 读取网站为账号的身份验证器应用显示的 base32 密钥(16 到 128 个字符),或其 otpauth://totp 地址:由服务器计算验证码。
--steps FILEstring配合 steps无登录脚本,最多 30 个步骤的 JSON 数组,来自文件或 -。操作:goto(url)、fill(selector、value)、click 和 wait_for(selector)、press(value,例如 Enter,可选 selector)以及 wait_ms(ms,1 到 10000)。值可以包含 {{username}}、{{password}} 和 {{otp}},但绝不能包含密钥本身。不适用于 auto。
--cookies-file FILEstring否无从已登录浏览器导出的 Cookie 集:Cookie 的 JSON 数组(Cookie 扩展的导出内容),或带有 cookies 数组的对象(Playwright 的存储状态),来自文件或 -;最多 100 个。只发送 name、value、domain、path、expires、httpOnly、secure 和 sameSite。
--name NAMEstring否登录主机,或在使用 --login-mode none 时为 Web page1 到 80 个字符。
screenrig bi connection create web --login-mode auto --login-url https://login.example.com/signin --username screens@example.com --password-file password.txt --name "Ops dashboard"
screenrig bi connection create web --login-mode steps --login-url https://login.example.com/signin --username screens@example.com --password-file password.txt --steps steps.json
screenrig bi connection create web --login-mode none --cookies-file cookies.json --name "Signed-in jar"

密码、密钥和 Cookie 会加密封存,不会再次显示:data.secret 和 data.totp_secret 说明它们是否已设置,data.session 说明登录所处的状态(idle、active、login_needed、paused、stopped 或 expired)。请使用只读服务账号。被拒绝的登录会等待 5 分钟,之后依次为 15、60 和 120 分钟,连续第五次被拒绝会使连接停止,直到其凭据或登录设置发生更改。在手机上批准登录、检查设备或显示 CAPTCHA 的网站无法用脚本登录:请使用 Cookie 集。没有页面渲染器的服务器会返回 bi_web_unavailable(退出码 5)。接着运行 bi connection test。

bi connection list#

列出此项目的 BI 连接,并显示其类型、屏蔽后的密钥和最近一次测试。

bi connection list

无参数。

screenrig bi connection list

data.items 包含项目的所有连接;不会返回任何密钥。

bi connection show#

查看一个连接及其最近一次测试。

bi connection show <id>
参数类型必填默认备注
<id>string是无连接(bic_…)。
screenrig bi connection show bic_01EXAMPLECONNECTION0000

响应包含 kind、config(Grafana 为 url 和 org_id;Power BI 为 tenant_id 和 client_id,Microsoft 连接登录时为 connection_id;Tableau 为 url、site、client_id、secret_id 和 username;Web 连接为 login_mode、login_url、username 和 steps)、secret {set, hint}、embed_origin(项目的嵌入主机,已连接应用的域名允许列表中会列出它)和 last_test。Web 连接还包含 totp_secret {set} 和 session:其 state、cookies 计数以及 cookies_updated_at、last_login_at、login_failures 和 retry_at。

bi connection update#

更改连接的名称、地址、组织、租户、应用、站点、用户、密钥,对于 Web 连接,还可更改其登录和 Cookie。

bi connection update <id> [--name NAME] [--url URL] [--org-id N] [--tenant-id ID] [--client-id ID]
    [--site SITE | --default-site] [--secret-id ID] [--username USER]
    [--token-file FILE | --secret-file FILE | --password-file FILE | --clear-password]
    [--login-mode auto|steps|none] [--login-url URL] [--totp-file FILE | --clear-totp]
    [--steps FILE] [--cookies-file FILE | --clear-cookies] [--expect-rev REVISION]
参数类型必填默认备注
<id>string是无连接(bic_…)。
--name NAMEstring否未更改重命名连接。
--url URLstring否未更改Grafana 的新地址,或 Tableau 服务器或 pod 的新地址。
--org-id Ninteger否未更改令牌所属的 Grafana 组织。
--tenant-id IDstring否未更改Power BI 连接的 Microsoft Entra 租户。
--client-id IDstring否未更改Power BI 连接的应用程序(客户端)ID,或 Tableau 已连接应用的 Client ID。
--site SITEstring否未更改Tableau 连接的站点内容 URL。不适用于 --default-site。
--default-siteboolean否关闭Tableau Server:登录默认站点。不适用于 --site。
--secret-id IDstring否未更改Tableau 已连接应用的 Secret ID。
--username USERstring否未更改屏幕视图以其身份显示的 Tableau 用户,或 Web 连接的服务账号。
--token-file FILEstring否未更改Grafana:从此文件读取服务账号令牌,或用 - 从标准输入读取;它会替换已存储的令牌。--token-file、--secret-file、--password-file 和 --clear-password 最多只能使用一个。
--secret-file FILEstring否未更改Power BI 或 Tableau:从此文件读取密钥值,或用 - 从标准输入读取;它会替换已存储的密钥。
--login-mode MODEstring否未更改Web:登录方式,auto、steps 或 none。
--login-url URLstring否未更改Web:网站登录页面的 https 地址。新的来源需要在同一命令中提供 --password-file,因此已存储的密码绝不会被发送到您没有为其提供密码的页面。
--password-file FILEstring否未更改Web:从此文件读取服务账号的密码,或用 - 从标准输入读取;它会替换已存储的密码。
--clear-passwordboolean否关闭Web:移除已存储的密码。
--totp-file FILEstring否未更改Web:从此文件读取身份验证器密钥,或用 - 从标准输入读取;它会替换已存储的密钥。不适用于 --clear-totp。
--clear-totpboolean否关闭Web:移除已存储的身份验证器密钥。不适用于 --totp-file。
--steps FILEstring否未更改Web:替换登录脚本,最多 30 个步骤的 JSON 数组,来自文件或 -。
--cookies-file FILEstring否未更改Web:用从已登录浏览器导出的 Cookie 集替换现有的 Cookie 集,来自文件或 -(bi connection create web 接受的格式)。不适用于 --clear-cookies。
--clear-cookiesboolean否关闭Web:移除已存储的 Cookie 集。不适用于 --cookies-file。
--expect-rev REVISIONinteger否无除非连接处于此修订版本(revision_conflict,退出码 6),否则拒绝更改。
screenrig bi connection update bic_01EXAMPLECONNECTION0000 --token-file new-token.txt
screenrig bi connection update bic_01EXAMPLECONNECTION0000 --password-file new-password.txt
screenrig bi connection update bic_01EXAMPLECONNECTION0000 --clear-totp --clear-cookies
screenrig bi connection update bic_01EXAMPLECONNECTION0000 --url https://grafana.example.com --token-file new-token.txt --name "Ops Grafana" --expect-rev 2

至少需要一项更改,省略的密钥会保留。更改为另一个主机、协议或端口上的新地址时,需要在同一命令中提供 --token-file(Grafana)或 --secret-file(Tableau):已存储的密钥只会发送到保存它时所对应的地址。新的地址、组织、租户、应用、站点、用户或密钥会清除 last_test,并作废为该连接的视图缓存的所有渲染结果:请重新测试。更改凭据或登录设置会解除 Web 会话的停止状态。

bi connection test#

检查凭据:Grafana 的令牌和 Image Renderer、Power BI 的应用及其工作区、Tableau 的登录,或 Web 连接的登录。

bi connection test <id>
参数类型必填默认备注
<id>string是无连接(bic_…)。
screenrig bi connection test bic_01EXAMPLECONNECTION0000

Grafana:token(Grafana 接受它)和 image_renderer(列出了该插件;没有它的 Grafana 只会发出警告,因为远程渲染服务不会显示为插件)。Power BI:token(Microsoft Entra 为该应用签发了令牌)和 workspaces(应用可见的工作区;一个都没有则失败,拒绝时会指明开发者租户设置和应用在工作区中的 Member 或 Admin 角色)。Tableau:以连接用户的身份使用内容读取令牌进行 signin,随后登出。Web:login 以服务账号登录并绘制其登录页面;不登录任何内容的 Web 连接没有可测试的登录,因此返回警告,由 bi view test 检查其 Cookie。拒绝是一次带有服务商自身响应的失败检查,结果存储为 last_test。该测试不判定 Tableau 的域名允许列表、容量、行级安全或仪表板的权限:bi view test 会真正检查一个视图。

bi connection browse#

列出连接可显示的内容:Grafana 仪表板和面板、Power BI 工作区和报表,或 Tableau 视图。

bi connection browse <id> [--query TEXT] [--dashboard UID] [--workspace ID]
参数类型必填默认备注
<id>string是无连接(bic_…)。
--query TEXTstring否无仅名称匹配的仪表板、工作区、报表或视图,最多 200 个字符。
--dashboard UIDstring否无Grafana:改为列出此仪表板的面板。不适用于 --workspace。
--workspace IDstring否无Power BI:改为列出此工作区的报表,按其 GUID 指定。不适用于 --dashboard。
screenrig bi connection browse bic_01EXAMPLECONNECTION0000 --query lobby
screenrig bi connection browse bic_01EXAMPLECONNECTION0000 --dashboard abc123
screenrig bi connection browse bic_01EXAMPLECONNECTION0000 --workspace f089354e-8366-4e18-aea3-4cb4a3a50b48 --query sales

data.items 列出:对于 Grafana,令牌可显示的每个仪表板的 uid、title、folder 和 tags,带 --dashboard 时则列出其面板的 id、title 和 type(行已展平,因此折叠行内的面板也会列出);对于 Power BI,应用可见的每个工作区的 id 和 name,带 --workspace 时则列出其报表的 id、name 和 embed_url;对于 Tableau,连接用户可见的每个视图的 path(形如 Workbook/View)和 name。将这些值用于 bi view create。Web 连接不列出任何内容:每个 Web 视图使用其页面的地址。

bi connection delete#

删除没有任何视图使用的连接。

bi connection delete <id> [--expect-rev REVISION]
参数类型必填默认备注
<id>string是无连接(bic_…)。
--expect-rev REVISIONinteger否无除非连接处于此修订版本(revision_conflict,退出码 6),否则拒绝删除。
screenrig bi connection delete bic_01EXAMPLECONNECTION0000

只要有视图使用它,响应就是 resource_conflict(退出码 5),并指明它们:请先删除这些视图。响应为 data.id 和 data.deleted true。

BI 视图

视图是 Grafana 连接的一个仪表板或面板、Power BI 工作区的一份报表、Tableau 站点的一个视图、Web 连接的一个页面,或不需要连接的公开链接:Grafana 公开仪表板、Power BI Publish to web 链接或 Tableau Public 可视化。视图 ID 以 biv_ 开头,视图只在其所属项目的屏幕上播放。

把视图的 embed_url 放入 iframe 图元,并将 content_fit 设为 fill,然后照常发布:播放列表不包含任何凭据。Grafana 和 Web 视图由服务器按 --refresh 的间隔绘制成图像,并由所有相同尺寸的屏幕共享,因此十块大堂屏幕只产生一次渲染,屏幕从不与该系统通信;捕获失败时,最后一张正常的图像会保留在屏幕上。Power BI 报表和 Tableau 视图使用由服务器生成并续期的仅查看令牌嵌入,屏幕从不持有密钥。只有在屏幕的清单指明该视图时,才会绘制图片。

读取需要 Read 访问权限,所有更改都需要 Manage 访问权限。每个目标选项属于一种连接类型,bi connection browse ID 会列出可使用的值。

bi view create#

添加连接的仪表板、面板、报表或 Tableau 视图,或公开链接的视图。

bi view create (--connection-id ID (--url URL | --dashboard UID | --workspace ID --report ID | --view WORKBOOK/VIEW)
    | --public-url URL) [--name NAME] [--refresh DURATION] [--fit contain|cover|fill] [--rotate DURATION]
    [--panel ID] [--from TIME] [--to TIME] [--var NAME=VALUE]... [--theme dark|light] [--timezone ZONE]
    [--page NAME]... [--all-pages] [--rotate-sheets] [--wait-for CSS] [--wait-ms MS] [--clip CSS]
参数类型必填默认备注
--connection-id IDstring没有 --public-url无要显示其内容的连接(bic_…)。
--url URLstring一个目标无连接的 Grafana 主机上的仪表板地址、Power BI 报表地址、Tableau 视图地址,对于 Web 连接则是公共主机上页面的 https 地址。目标的其余部分从中读取,因此它不接受 --panel、--from、--to、--var、--theme、--timezone、--page 或 --all-pages 中的任何一个。
--dashboard UIDstring一个目标无Grafana:仪表板的 uid,即其地址中 /d/ 之后的部分。
--workspace IDstring一个目标无Power BI:工作区 ID,配合 --report。
--report IDstring配合 --workspace无Power BI:报表 ID,配合 --workspace。
--view WORKBOOK/VIEWstring一个目标无Tableau:视图,即其地址中 /views/ 之后的名称(bi connection browse 会列出它们)。
--public-url URLstring一个目标无Grafana 公开仪表板链接、Power BI Publish to web 链接或 Tableau Public 可视化地址。它不需要连接,直接从其主机实时播放。仅可单独提供,或与 --name、--refresh、--fit、--rotate-sheets 和 --rotate 一起提供。
--name NAMEstring否来自目标1 到 80 个字符。
--refresh DURATIONstring否5mGrafana:图像重新绘制的频率,30s 到 24h。Web:页面重新绘制的频率,60s 到 24h。Power BI 和 Tableau:报表或视图刷新其数据的频率,60s 到 24h,或 0 表示不刷新。请给出时长,例如 30s、5m 或 1h,或秒数。
--fit FITstring否containGrafana 和 Web:图像填充屏幕的方式,contain、cover 或 fill。
--rotate DURATIONstring否无Power BI:每个页面的显示时长,10s 到 1h;使用两个或更多 --page 或使用 --all-pages 时必需。Tableau:每个工作表的显示时长;使用 --rotate-sheets 时必需。
--page NAMEstring否无Power BI:要显示的页面,按名称或显示名称指定。1 到 200 个字符。可重复;页面按此顺序显示。
--all-pagesboolean否关闭Power BI:轮换显示每个可见页面,配合 --rotate。
--rotate-sheetsboolean否关闭Tableau:轮换工作簿已发布的工作表,配合 --rotate。
--panel IDstring否整个仪表板Grafana:只显示这一个面板,而不是整个仪表板。为整数,与地址中的 viewPanel 相同。
--from TIMEstring否无Grafana:时间范围的开始,例如 now-6h、now/d 或毫秒级 epoch 时间戳。
--to TIMEstring否无Grafana:时间范围的结束,例如 now、now/d 或毫秒级 epoch 时间戳。
--var NAME=VALUEstring否无Grafana:一个仪表板变量。NAME 可带 var- 前缀,值最多 200 个字符。可重复。
--theme THEMEstring否darkGrafana 主题,dark 或 light。
--timezone ZONEstring否无Grafana:仪表板的时区,例如 Europe/Paris、utc 或 browser。
--wait-for CSSstring否无Web:一个 CSS 选择器,指向页面就绪且仅在已登录时才显示的元素。捕获会等待该元素,若它始终没有出现,则以 bi_web_timeout 失败。
--wait-ms MSinteger否无Web:页面就绪后等待的毫秒数,用于较晚出现的图表,0 到 10000。
--clip CSSstring否整个页面Web:要绘制的页面部分的 CSS 选择器。
screenrig bi view create --connection-id bic_01EXAMPLECONNECTION0000 --url 'https://grafana.example.com/d/abc123/lobby?orgId=1&viewPanel=4' --refresh 5m
screenrig bi view create --connection-id bic_01EXAMPLECONNECTION0000 --dashboard abc123 --panel 4 --from now-6h --to now --var host=web1 --theme light --name "Web CPU"
screenrig bi view create --public-url https://grafana.example.com/public-dashboards/TOKEN --name "Public status"
screenrig bi view create --connection-id bic_01EXAMPLECONNECTION0000 --workspace f089354e-8366-4e18-aea3-4cb4a3a50b48 --report 5b218778-e7a5-4d73-8187-f10824047715 --page Overview --page Detail --rotate 30s --name "Sales rotation"
screenrig bi view create --connection-id bic_01EXAMPLECONNECTION0000 --view Sales/Overview --rotate-sheets --rotate 30s --refresh 0 --name "Sales sheets"
screenrig bi view create --connection-id bic_01EXAMPLECONNECTION0000 --url https://app.example.com/dashboards/42 --refresh 5m --wait-for '#dashboard.loaded' --wait-ms 1500 --clip '#chart-grid'

恰好给出一个目标:--url、--dashboard、--workspace 配合 --report、--view 或 --public-url。响应包含 data.embed_url。接着运行 bi view test。

Grafana:--url 会从地址中读取 orgId、viewPanel 或 panelId、from、to、var-*、theme 和 timezone。图像通过 Grafana 的渲染服务绘制,并由所有相同尺寸的屏幕共享;Grafana 不可用时,屏幕会保留最后一张图像,并在角落显示渲染时间。公开仪表板链接直接从 Grafana 实时播放,Grafana 必须允许嵌入(在其设置中为 allow_embedding = true):bi view test 会检查这一点。

Power BI:--url 接受从 Power BI 复制的报表地址 https://app.powerbi.com/groups/WORKSPACE/reports/REPORT,可带可选的 /ReportSection 页面;或者给出 --workspace 和 --report。两个或更多页面需要 --rotate,而 --rotate 需要两个或更多页面或 --all-pages。--refresh 0 适用于会自行更新的 DirectQuery 或自动页面刷新报表。--fit 不适用。Publish to web 链接会向任何持有该链接的人显示报表,并按 Power BI 提供的方式播放,每隔 --refresh 重新加载,不进行页面轮换。

Tableau:--url 接受从 Tableau 复制的视图地址 https://HOST/t/SITE/views/WORKBOOK/VIEW、Tableau Cloud 的 https://HOST/#/site/SITE/views/WORKBOOK/VIEW,或仅 WORKBOOK/VIEW;地址必须位于连接的主机和站点上。--rotate-sheets 和 --rotate 必须同时给出。--fit 不适用。屏幕必须能够访问 Tableau 主机并接受其第三方 Cookie,并且视图的 embed_origin 必须在已连接应用的域名允许列表中。Tableau Public 可视化(--public-url https://public.tableau.com/app/profile/USER/viz/WORKBOOK/VIEW,或其 /views/ 地址)不需要连接,也不需要令牌,--rotate-sheets 对它同样适用。

Web:--url 是页面的地址,--wait-for、--wait-ms 和 --clip 只适用于 Web 视图。捕获失败时,最后一张正常的图像会保留在屏幕上,status.last_error 会说明原因:bi_web_login_failed、bi_web_otp_required、bi_web_session_expired、bi_web_login_paused、bi_web_timeout、bi_web_navigation_failed 或 bi_web_blocked。

bi view list#

列出此项目的 BI 视图,并显示其目标、频率和状态。

bi view list

无参数。

screenrig bi view list

data.items 包含项目的所有视图,每个视图都带有其 embed_url。

bi view show#

查看一个视图,包括其 embed_url 以及它上次在屏幕上的表现。

bi view show <id>
参数类型必填默认备注
<id>string是无视图(biv_…)。
screenrig bi view show biv_01EXAMPLEVIEW0000000000

响应包含 kind、name、connection_id(公开链接没有)、target(Tableau 为 view 和 rotate_sheets)、refresh_s、rotate_s、fit、status、embed_url 和 revision;Web 视图还包含 wait_for、wait_ms 和 clip。status 包含 last_ok_at 和 last_error,带有一个 code 和一个 detail:Grafana 拒绝令牌时为 bi_upstream_refused,无法渲染时为 bi_upstream_unavailable,或为 Web 视图的 bi_web_* 代码之一。

bi view update#

更改视图的名称、目标、频率或适配方式。

bi view update <id> [--name NAME] [--refresh DURATION] [--fit contain|cover|fill] [--rotate DURATION]
    [--url URL | --dashboard UID | --workspace ID | --view WORKBOOK/VIEW | --public-url URL] [--report ID]
    [--page NAME]... [--all-pages] [--rotate-sheets] [--panel ID] [--from TIME] [--to TIME]
    [--var NAME=VALUE]... [--theme dark|light] [--timezone ZONE] [--wait-for CSS | --clear-wait-for]
    [--wait-ms MS] [--clip CSS | --clear-clip] [--expect-rev REVISION]
参数类型必填默认备注
<id>string是无视图(biv_…)。
--name NAMEstring否未更改重命名视图。
--url URLstring否未更改仪表板、报表或 Tableau 视图的地址,或 Web 视图的页面地址;会替换整个目标。不能与其他目标选项一起使用。
--dashboard UIDstring否未更改Grafana:显示此仪表板;会替换整个目标。
--workspace IDstring否未更改Power BI:显示此工作区的一份报表,配合 --report;会替换整个目标。
--report IDstring否未更改Power BI:显示此报表,位于 --workspace 指定的工作区或当前工作区。
--view WORKBOOK/VIEWstring否未更改Tableau:显示此视图;会替换整个目标。
--public-url URLstring否未更改公开链接;会替换整个目标。
--rotate-sheetsboolean否关闭Tableau:轮换工作簿已发布的工作表,配合 --rotate。
--page NAMEstring否未更改Power BI:要显示的页面,按名称或显示名称指定。可重复;会替换当前页面。
--all-pagesboolean否关闭Power BI:轮换显示每个可见页面。
--rotate DURATIONstring否未更改Power BI:每个页面的显示时长,10s 到 1h,或 0 表示只显示一个页面。Tableau:每个工作表的显示时长,或 0 表示停止轮换。
--panel IDstring否未更改Grafana:只显示这一个面板。
--from TIMEstring否未更改Grafana:时间范围的开始。
--to TIMEstring否未更改Grafana:时间范围的结束。
--var NAME=VALUEstring否未更改Grafana:设置一个仪表板变量。可重复;它只设置一个变量,其他变量保持不变。
--theme THEMEstring否未更改Grafana 主题,dark 或 light。
--timezone ZONEstring否未更改Grafana:仪表板的时区。
--refresh DURATIONstring否未更改图像重新绘制或报表刷新的频率:Grafana 为 30s 到 24h;Web 为 60s 到 24h;Power BI 和 Tableau 为 60s 到 24h,或 0 表示不刷新。
--fit FITstring否未更改Grafana 和 Web:图像填充屏幕的方式,contain、cover 或 fill。
--wait-for CSSstring否未更改Web:页面就绪且已登录时显示的元素。不适用于 --clear-wait-for。
--clear-wait-forboolean否关闭Web:不再等待元素。不适用于 --wait-for。
--wait-ms MSinteger否未更改Web:页面就绪后等待的毫秒数,0 到 10000;0 会移除等待。
--clip CSSstring否未更改Web:要绘制的页面部分。不适用于 --clear-clip。
--clear-clipboolean否关闭Web:重新绘制整个页面。不适用于 --clip。
--expect-rev REVISIONinteger否无除非视图处于此修订版本(revision_conflict,退出码 6),否则拒绝更改。
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --wait-for '#dashboard.loaded' --wait-ms 2000
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --clear-wait-for --clear-clip
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --theme light --var host=web2
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --dashboard def456 --panel 2 --expect-rev 3
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --page Overview --page Detail --rotate 45s
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --view Sales/Detail

至少需要一项更改。--url、--dashboard、--workspace 和 --public-url 会替换整个目标,而 --panel、--from、--to、--var、--theme 和 --timezone 更改视图当前的 Grafana 目标,--report、--page 和 --all-pages 更改 Power BI 目标,--view 和 --rotate-sheets 更改 Tableau 目标。--page 会替换页面列表;要清除它,请再次给出 --workspace 和 --report,并加上 --rotate 0。仅 --rotate 0 就能让 Tableau 视图停止轮换其工作表。--url 和 --public-url 除 --rotate-sheets 外不接受其他目标标志,公开链接的视图只有使用 --public-url 才能更改其目标。新的目标会清除状态并作废其缓存的渲染图,屏幕在下一次刷新时会采用该更改,无需重新发布。视图保留其连接和类型。

bi view test#

真正检查视图:Grafana 或 Web 渲染、Power BI 嵌入令牌、Tableau 查找,或公开链接。

bi view test <id> [--output FILE [--width PIXELS] [--height PIXELS]]
参数类型必填默认备注
<id>string是无视图(biv_…)。
--output FILEstring否无Grafana 或 Web:把渲染的 PNG 保存到此处,而不是运行检查。Power BI 或 Tableau 视图以及公开链接没有可保存的渲染图(not_found)。
--width PIXELSinteger否1920保存图像的宽度,1 到 10000。需要 --output。
--height PIXELSinteger否1080保存图像的高度,1 到 10000。需要 --output。
screenrig bi view test biv_01EXAMPLEVIEW0000000000
screenrig bi view test biv_01EXAMPLEVIEW0000000000 --output lobby.png --width 1920 --height 1080

Grafana:连接视图会真正渲染,不经过共享缓存,也不改动视图的状态。当 Grafana 拒绝令牌、没有渲染器或不认识该仪表板时,data.ok 为 false,并附带 Grafana 给出的原因;失败的测试只是数据,退出码为 0。Web:连接视图会在服务器的浏览器中绘制一次(render),不经过共享缓存,绘制失败时会指明原因。发布前请打开保存的 PNG 查看。对于公开链接,测试会获取页面,并检查 Grafana 是否允许视图的嵌入页面以框架方式嵌入它。

Tableau:连接视图以连接用户的身份登录并查找该视图(signin、view);用户看不到的视图,或大小写错误的名称,会使 view 检查失败并指明路径。Tableau Public 视图会向 Tableau Public 询问工作簿是否存在。Power BI:连接视图会读取报表(report),并为它生成真实的仅查看嵌入令牌(embed_token);被拒绝时会显示 Power BI 自己给出的原因,例如带行级安全的数据集、401 或 403(租户设置或工作区角色),或应用看不到的报表。Publish to web 链接会被获取,并读取其嵌入框架相关的响应头。

该测试不判定图片显示的内容、视图所指定的页面、容量或 Tableau 的域名允许列表。data 包含 at、ok 和 checks,每项检查带有 name、ok、可选的 warn 和一个 detail;Grafana 或 Web 渲染还会增加 width、height 和 bytes。使用 --output 时,data 改为包含 id、file、bytes、width 和 height。

bi view delete#

删除视图。

bi view delete <id> [--expect-rev REVISION]
参数类型必填默认备注
<id>string是无视图(biv_…)。
--expect-rev REVISIONinteger否无除非视图处于此修订版本(revision_conflict,退出码 6),否则拒绝删除。
screenrig bi view delete biv_01EXAMPLEVIEW0000000000
screenrig bi view delete biv_01EXAMPLEVIEW0000000000 --expect-rev 3

仍显示该视图 embed_url 的屏幕会返回 not_found,直到其播放列表更改。响应为 data.id 和 data.deleted true。

其他命令组