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 URL | string | 是 | 无 | Grafana 在公共主机上的地址,可带任意路径前缀:https://grafana.example.com 或 https://example.com/grafana。私有、回环或保留地址会返回 invalid_request(退出码 8),并且 Grafana 必须不经重定向直接响应。 |
--token-file FILE | string | 是 | 无 | 从此文件读取服务账号令牌,或用 - 从标准输入读取(绝不作为参数传入);文件中只包含令牌。 |
--name NAME | string | 否 | 主机名 | 1 到 80 个字符。 |
--org-id N | integer | 否 | 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 URL | string | 是 | 无 | Tableau Server 的 https 地址,或您的 Tableau Cloud pod 的地址,例如 https://10ay.online.tableau.com(是 pod,而不是 online.tableau.com)。 |
--site SITE | string | 否 | Tableau Server 的默认站点 | 站点的内容 URL,即视图地址中 /site/ 或 /t/ 之后的部分。 |
--client-id ID | string | 是 | 无 | 已连接应用的 Client ID。 |
--secret-id ID | string | 是 | 无 | 为已连接应用生成的密钥的 Secret ID。 |
--username USER | string | 是 | 无 | 屏幕视图以其身份显示的 Tableau 用户(在 Tableau Cloud 上为电子邮件地址)。 |
--secret-file FILE | string | 是 | 无 | 从此文件读取密钥的值,或用 - 从标准输入读取(绝不作为参数传入);文件中只包含密钥值,不包含 Secret ID。 |
--name NAME | string | 否 | 主机名 | 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 ID | string | 没有 --connection-id | 无 | 您的 Microsoft Entra 目录(租户)ID,或其域名,例如 contoso.onmicrosoft.com;不能是 common、organizations 或 consumers。需与 --client-id 和 --secret-file 一起使用。 |
--client-id ID | string | 没有 --connection-id | 无 | 应用注册的应用程序(客户端)ID。 |
--secret-file FILE | string | 没有 --connection-id | 无 | 从此文件读取客户端密钥的值,或用 - 从标准输入读取(绝不作为参数传入);文件中只包含密钥值,不包含密钥 ID。 |
--connection-id ID | string | 没有 --tenant-id | 无 | 通过此项目中 own_app 模式的 Microsoft 连接(pcn_…)登录,以代替 --tenant-id、--client-id 和 --secret-file。screenrig_app 连接会被拒绝。不能与它们一起使用。 |
--name NAME | string | 否 | Power BI | 1 到 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 MODE | string | 是 | 无 | auto 用 --username 和密码填写 --login-url 上的表单。steps 运行 --steps 脚本。none 不进行任何登录,因此页面使用 --cookies-file 的 Cookie 集显示,并且不接受 --login-url、--username、--password-file、--totp-file 或 --steps。 |
--login-url URL | string | 使用 auto 或 steps 时 | 无 | 网站登录页面的 https 地址,位于公共主机上。密码只会在该页面和脚本的 goto 步骤中输入,绝不会输入到视图的地址中。 |
--username USER | string | 配合 auto | 无 | 服务账号的用户名,steps 脚本将其读取为 {{username}}。 |
--password-file FILE | string | 配合 auto | 无 | 从此文件读取服务账号的密码,或用 - 从标准输入读取(绝不作为参数传入):允许包含空格,末尾的换行符会被去掉。 |
--totp-file FILE | string | 否 | 无 | 从此文件或 - 读取网站为账号的身份验证器应用显示的 base32 密钥(16 到 128 个字符),或其 otpauth://totp 地址:由服务器计算验证码。 |
--steps FILE | string | 配合 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 FILE | string | 否 | 无 | 从已登录浏览器导出的 Cookie 集:Cookie 的 JSON 数组(Cookie 扩展的导出内容),或带有 cookies 数组的对象(Playwright 的存储状态),来自文件或 -;最多 100 个。只发送 name、value、domain、path、expires、httpOnly、secure 和 sameSite。 |
--name NAME | string | 否 | 登录主机,或在使用 --login-mode none 时为 Web page | 1 到 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 listdata.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 NAME | string | 否 | 未更改 | 重命名连接。 |
--url URL | string | 否 | 未更改 | Grafana 的新地址,或 Tableau 服务器或 pod 的新地址。 |
--org-id N | integer | 否 | 未更改 | 令牌所属的 Grafana 组织。 |
--tenant-id ID | string | 否 | 未更改 | Power BI 连接的 Microsoft Entra 租户。 |
--client-id ID | string | 否 | 未更改 | Power BI 连接的应用程序(客户端)ID,或 Tableau 已连接应用的 Client ID。 |
--site SITE | string | 否 | 未更改 | Tableau 连接的站点内容 URL。不适用于 --default-site。 |
--default-site | boolean | 否 | 关闭 | Tableau Server:登录默认站点。不适用于 --site。 |
--secret-id ID | string | 否 | 未更改 | Tableau 已连接应用的 Secret ID。 |
--username USER | string | 否 | 未更改 | 屏幕视图以其身份显示的 Tableau 用户,或 Web 连接的服务账号。 |
--token-file FILE | string | 否 | 未更改 | Grafana:从此文件读取服务账号令牌,或用 - 从标准输入读取;它会替换已存储的令牌。--token-file、--secret-file、--password-file 和 --clear-password 最多只能使用一个。 |
--secret-file FILE | string | 否 | 未更改 | Power BI 或 Tableau:从此文件读取密钥值,或用 - 从标准输入读取;它会替换已存储的密钥。 |
--login-mode MODE | string | 否 | 未更改 | Web:登录方式,auto、steps 或 none。 |
--login-url URL | string | 否 | 未更改 | Web:网站登录页面的 https 地址。新的来源需要在同一命令中提供 --password-file,因此已存储的密码绝不会被发送到您没有为其提供密码的页面。 |
--password-file FILE | string | 否 | 未更改 | Web:从此文件读取服务账号的密码,或用 - 从标准输入读取;它会替换已存储的密码。 |
--clear-password | boolean | 否 | 关闭 | Web:移除已存储的密码。 |
--totp-file FILE | string | 否 | 未更改 | Web:从此文件读取身份验证器密钥,或用 - 从标准输入读取;它会替换已存储的密钥。不适用于 --clear-totp。 |
--clear-totp | boolean | 否 | 关闭 | Web:移除已存储的身份验证器密钥。不适用于 --totp-file。 |
--steps FILE | string | 否 | 未更改 | Web:替换登录脚本,最多 30 个步骤的 JSON 数组,来自文件或 -。 |
--cookies-file FILE | string | 否 | 未更改 | Web:用从已登录浏览器导出的 Cookie 集替换现有的 Cookie 集,来自文件或 -(bi connection create web 接受的格式)。不适用于 --clear-cookies。 |
--clear-cookies | boolean | 否 | 关闭 | Web:移除已存储的 Cookie 集。不适用于 --cookies-file。 |
--expect-rev REVISION | integer | 否 | 无 | 除非连接处于此修订版本(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_01EXAMPLECONNECTION0000Grafana: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 TEXT | string | 否 | 无 | 仅名称匹配的仪表板、工作区、报表或视图,最多 200 个字符。 |
--dashboard UID | string | 否 | 无 | Grafana:改为列出此仪表板的面板。不适用于 --workspace。 |
--workspace ID | string | 否 | 无 | 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 salesdata.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 REVISION | integer | 否 | 无 | 除非连接处于此修订版本(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 ID | string | 没有 --public-url | 无 | 要显示其内容的连接(bic_…)。 |
--url URL | string | 一个目标 | 无 | 连接的 Grafana 主机上的仪表板地址、Power BI 报表地址、Tableau 视图地址,对于 Web 连接则是公共主机上页面的 https 地址。目标的其余部分从中读取,因此它不接受 --panel、--from、--to、--var、--theme、--timezone、--page 或 --all-pages 中的任何一个。 |
--dashboard UID | string | 一个目标 | 无 | Grafana:仪表板的 uid,即其地址中 /d/ 之后的部分。 |
--workspace ID | string | 一个目标 | 无 | Power BI:工作区 ID,配合 --report。 |
--report ID | string | 配合 --workspace | 无 | Power BI:报表 ID,配合 --workspace。 |
--view WORKBOOK/VIEW | string | 一个目标 | 无 | Tableau:视图,即其地址中 /views/ 之后的名称(bi connection browse 会列出它们)。 |
--public-url URL | string | 一个目标 | 无 | Grafana 公开仪表板链接、Power BI Publish to web 链接或 Tableau Public 可视化地址。它不需要连接,直接从其主机实时播放。仅可单独提供,或与 --name、--refresh、--fit、--rotate-sheets 和 --rotate 一起提供。 |
--name NAME | string | 否 | 来自目标 | 1 到 80 个字符。 |
--refresh DURATION | string | 否 | 5m | Grafana:图像重新绘制的频率,30s 到 24h。Web:页面重新绘制的频率,60s 到 24h。Power BI 和 Tableau:报表或视图刷新其数据的频率,60s 到 24h,或 0 表示不刷新。请给出时长,例如 30s、5m 或 1h,或秒数。 |
--fit FIT | string | 否 | contain | Grafana 和 Web:图像填充屏幕的方式,contain、cover 或 fill。 |
--rotate DURATION | string | 否 | 无 | Power BI:每个页面的显示时长,10s 到 1h;使用两个或更多 --page 或使用 --all-pages 时必需。Tableau:每个工作表的显示时长;使用 --rotate-sheets 时必需。 |
--page NAME | string | 否 | 无 | Power BI:要显示的页面,按名称或显示名称指定。1 到 200 个字符。可重复;页面按此顺序显示。 |
--all-pages | boolean | 否 | 关闭 | Power BI:轮换显示每个可见页面,配合 --rotate。 |
--rotate-sheets | boolean | 否 | 关闭 | Tableau:轮换工作簿已发布的工作表,配合 --rotate。 |
--panel ID | string | 否 | 整个仪表板 | Grafana:只显示这一个面板,而不是整个仪表板。为整数,与地址中的 viewPanel 相同。 |
--from TIME | string | 否 | 无 | Grafana:时间范围的开始,例如 now-6h、now/d 或毫秒级 epoch 时间戳。 |
--to TIME | string | 否 | 无 | Grafana:时间范围的结束,例如 now、now/d 或毫秒级 epoch 时间戳。 |
--var NAME=VALUE | string | 否 | 无 | Grafana:一个仪表板变量。NAME 可带 var- 前缀,值最多 200 个字符。可重复。 |
--theme THEME | string | 否 | dark | Grafana 主题,dark 或 light。 |
--timezone ZONE | string | 否 | 无 | Grafana:仪表板的时区,例如 Europe/Paris、utc 或 browser。 |
--wait-for CSS | string | 否 | 无 | Web:一个 CSS 选择器,指向页面就绪且仅在已登录时才显示的元素。捕获会等待该元素,若它始终没有出现,则以 bi_web_timeout 失败。 |
--wait-ms MS | integer | 否 | 无 | Web:页面就绪后等待的毫秒数,用于较晚出现的图表,0 到 10000。 |
--clip CSS | string | 否 | 整个页面 | 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 listdata.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 NAME | string | 否 | 未更改 | 重命名视图。 |
--url URL | string | 否 | 未更改 | 仪表板、报表或 Tableau 视图的地址,或 Web 视图的页面地址;会替换整个目标。不能与其他目标选项一起使用。 |
--dashboard UID | string | 否 | 未更改 | Grafana:显示此仪表板;会替换整个目标。 |
--workspace ID | string | 否 | 未更改 | Power BI:显示此工作区的一份报表,配合 --report;会替换整个目标。 |
--report ID | string | 否 | 未更改 | Power BI:显示此报表,位于 --workspace 指定的工作区或当前工作区。 |
--view WORKBOOK/VIEW | string | 否 | 未更改 | Tableau:显示此视图;会替换整个目标。 |
--public-url URL | string | 否 | 未更改 | 公开链接;会替换整个目标。 |
--rotate-sheets | boolean | 否 | 关闭 | Tableau:轮换工作簿已发布的工作表,配合 --rotate。 |
--page NAME | string | 否 | 未更改 | Power BI:要显示的页面,按名称或显示名称指定。可重复;会替换当前页面。 |
--all-pages | boolean | 否 | 关闭 | Power BI:轮换显示每个可见页面。 |
--rotate DURATION | string | 否 | 未更改 | Power BI:每个页面的显示时长,10s 到 1h,或 0 表示只显示一个页面。Tableau:每个工作表的显示时长,或 0 表示停止轮换。 |
--panel ID | string | 否 | 未更改 | Grafana:只显示这一个面板。 |
--from TIME | string | 否 | 未更改 | Grafana:时间范围的开始。 |
--to TIME | string | 否 | 未更改 | Grafana:时间范围的结束。 |
--var NAME=VALUE | string | 否 | 未更改 | Grafana:设置一个仪表板变量。可重复;它只设置一个变量,其他变量保持不变。 |
--theme THEME | string | 否 | 未更改 | Grafana 主题,dark 或 light。 |
--timezone ZONE | string | 否 | 未更改 | Grafana:仪表板的时区。 |
--refresh DURATION | string | 否 | 未更改 | 图像重新绘制或报表刷新的频率:Grafana 为 30s 到 24h;Web 为 60s 到 24h;Power BI 和 Tableau 为 60s 到 24h,或 0 表示不刷新。 |
--fit FIT | string | 否 | 未更改 | Grafana 和 Web:图像填充屏幕的方式,contain、cover 或 fill。 |
--wait-for CSS | string | 否 | 未更改 | Web:页面就绪且已登录时显示的元素。不适用于 --clear-wait-for。 |
--clear-wait-for | boolean | 否 | 关闭 | Web:不再等待元素。不适用于 --wait-for。 |
--wait-ms MS | integer | 否 | 未更改 | Web:页面就绪后等待的毫秒数,0 到 10000;0 会移除等待。 |
--clip CSS | string | 否 | 未更改 | Web:要绘制的页面部分。不适用于 --clear-clip。 |
--clear-clip | boolean | 否 | 关闭 | Web:重新绘制整个页面。不适用于 --clip。 |
--expect-rev REVISION | integer | 否 | 无 | 除非视图处于此修订版本(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 FILE | string | 否 | 无 | Grafana 或 Web:把渲染的 PNG 保存到此处,而不是运行检查。Power BI 或 Tableau 视图以及公开链接没有可保存的渲染图(not_found)。 |
--width PIXELS | integer | 否 | 1920 | 保存图像的宽度,1 到 10000。需要 --output。 |
--height PIXELS | integer | 否 | 1080 | 保存图像的高度,1 到 10000。需要 --output。 |
screenrig bi view test biv_01EXAMPLEVIEW0000000000
screenrig bi view test biv_01EXAMPLEVIEW0000000000 --output lobby.png --width 1920 --height 1080Grafana:连接视图会真正渲染,不经过共享缓存,也不改动视图的状态。当 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 REVISION | integer | 否 | 无 | 除非视图处于此修订版本(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。