访问 LNT 外部数据:REST API¶
LNT 提供 REST API 来访问存储在 LNT 数据库中的数据。
端点¶
API 端点位于顶层 api 路径下,并具有相同的数据库和测试套件布局。例如
http://lnt.llvm.org/db_default/v4/nts/machine/1330
Maps to:
http://lnt.llvm.org/api/db_default/v4/nts/machines/1330
“machines” 端点允许访问所有机器,以及为其收集的属性和运行。“runs” 端点将获取运行和样本数据。“samples” 端点允许一次性从多个运行中批量导出样本。
端点 |
描述 |
/machines/ |
列出此测试套件中的所有机器。 |
/machines/id |
获取机器 id 的所有运行信息和机器字段。 |
/runs/id |
获取一个运行 id 的所有运行信息和样本数据。 |
/orders/id |
获取订单 id 的所有订单信息。 |
/samples?runid=1&runid=2 |
检索运行 ID 列表的所有样本数据。运行 ID 应作为 args 传递。将在 samples 部分中返回样本数据,作为字典列表,每个指标类型都有一个键。不发送空样本。 |
/samples/id |
获取样本 id 的所有非空样本信息。 |
/schema |
返回测试套件 schema。 |
/fields |
返回此测试套件中的所有字段。 |
/tests |
返回此测试套件中的所有测试。 |
/graph_for_sample/id/f_name |
重定向到包含 ID 为 id 的样本和字段 f_name 的图形。这可以用于基于运行 API 返回的样本数据生成图形链接。传递到此端点的任何参数都将附加到图形 URL,以控制图形的格式等。请注意,此端点不在 /api/ 下,但与图形 URL 位置匹配。 |
写入操作¶
“machines”、“orders” 和 “runs” 端点也支持 DELETE http 方法。用户必须包含一个名为 “AuthToken” 的 http 标头,该标头在 LNT 实例配置中设置了 API 身份验证令牌。
API 身份验证令牌可以通过将 api_auth_token 添加到实例的 lnt.cfg 配置文件中来设置。
# API Auth Token
api_auth_token = "SomeSecret"
示例
curl --request DELETE --header "AuthToken: SomeSecret" http://localhost:8000/api/db_default/v4/nts/runs/1
访问 LNT 外部数据:Tableau Web 数据连接器¶
Tableau Analytics 是一个流行的数据分析平台。LNT 内置了 Tableau Web 数据连接器 (WDC),以便轻松将 LNT 数据导入 Tableau。
在 Tableau 中,创建一个 Web 数据连接器类型的新数据源。当提示输入 URL 时,使用标准数据库和套件 url,后跟 /tableau。
示例
# WDC for a public server
https://lnt.llvm.org/db_default/v4/nts/tableau
# WDC for a local instance
http://localhost:5000/db_default/v4/nts/tableau
# WDC for a different database and suite
http://localhost:5000/db_my_perf/v4/size/tableau
WDC 导出为机器集合提交的所有数据。WDC 将提示输入机器正则表达式。该 regexp 与此数据库/套件中的机器名称匹配。您可以在类似 <base>/db_default/v4/nts/machine/ 的 url 中看到这些机器名称。
正则表达式是 JavaScript 正则表达式。
正则表达式将取决于您的机器名称。一些假设示例,机器名称格式为 clang-arch-branch
.* # All machines.
clang-.* # All clang machines.
clang-arm(64|32)-branch # Arm64 and Arm32
clang-arm64-.* # All the branches.
然后,WDC 将填充所选机器的所有数据。
注意:为了提高性能,WDC 具有增量支持。下载结果后,它们应该快速刷新并获取新结果。
您可以与一个 LNT 服务器建立多个 WDC 连接。