LNT外部のデータへのアクセス: REST API

LNTは、LNTデータベースに保存されたデータにアクセスするためのREST APIを提供します。

エンドポイント

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

1つの実行idのすべての実行情報とサンプルデータを取得します。

/orders/id

注文idのすべての注文情報を取得します。

/samples?runid=1&runid=2

実行IDのリストのすべてのサンプルデータを取得します。実行IDは引数として渡す必要があります。サンプルデータは、メトリックタイプごとにキーを持つ辞書のリストとして、samplesセクションで返されます。空のサンプルは送信されません。

/samples/id

サンプルidのすべての空でないサンプル情報を取得します。

/schema

テストスイートのスキーマを返します。

/fields

このテストスイートのすべてのフィールドを返します。

/tests

このテストスイートのすべてのテストを返します。

/graph_for_sample/id/f_name

IDがidでフィールドがf_nameのサンプルを含むグラフにリダイレクトします。これは、実行APIによって返されるサンプルデータに基づいてグラフへのリンクを生成するために使用できます。このエンドポイントに渡されるパラメータは、グラフのURLに追加され、グラフのフォーマットなどを制御します。このエンドポイントは/api/の下にはなく、グラフのURLの場所と一致することに注意してください。

書き込み操作

machines、orders、runsエンドポイントは、DELETE httpメソッドもサポートしています。ユーザーは、LNTインスタンス構成でAPI認証トークンが設定されている「AuthToken」というhttpヘッダーを含める必要があります。

API認証トークンは、インスタンスのlnt.cfg構成ファイルにapi_auth_tokenを追加することで設定できます

# 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には、LNTデータをTableauに簡単に取り込むための組み込みTableau Webデータコネクタ(WDC)があります。

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は、マシンの正規表現を要求します。正規表現は、このデータベース/スイート内のマシン名と一致します。それらのマシン名は、<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接続を持つことができます。