同時実行性の監視使用状況 API
- トピック:
- 同時実行モニタリング
API の概要
同時実行性モニタリング使用状況(CMU)は、WOLAP (Web ベース オンライン分析処理)プロジェクトとして実装されている。 CMU は、データウェアハウスに基づく汎用のビジネスレポート web API です。 これは、一般的な OLAP 操作を RESTfully で実行できる HTTP クエリ言語として機能します。
CMU API は、基礎となる OLAP キューブの階層ビューを提供します。 URL パスセグメントとしてマッピングされたディメンション階層内の各リソース ディメンション)は、現在の選択対象の(集計) 指標を含むレポートを生成します。 各リソースは、親リソース(ロールアップの場合)とそのサブリソース(ドリルダウンの場合)を指します。 スライスとダイシングは、ディメンションを特定の値や範囲にピン留めするクエリ文字列パラメーターによって実現されます。
REST API は、ディメンションパス、提供されたフィルターおよび選択された指標に従って、リクエストで指定された期間内に使用可能なデータを提供します(提供されていない場合はデフォルト値にフォールバックします)。 時間範囲は、時間ディメンション(年、月、日、時間、分、秒)を含まないレポートには適用されません。
エンドポイント URL のルートパスは、使用可能なドリルダウンオプションへのリンクと共に、1 つのレコード内の全体的な集計指標を返します。 API のバージョンは、エンドポイント URI パスの末尾のセグメントとしてマッピングされます。 例えば、https://mgmt.auth.adobe.com/cmu/v2 は、クライアントが WOLAP バージョン 2 にアクセスすることを意味します。
使用可能な URL パスは、応答に含まれるリンクを介して検出できます。 有効な URL パスは、(事前に)集計指標を保持する基になるドリルダウンツリー内のパスをマッピングするために保持されます。 /dimension1/dimension2/dimension3 という形式のパスは、これら 3 つのディメンションの事前集計を反映します(SQL 句 GROUP BY dimension1、dimension2、dimension3 に相当)。 このような事前集計が存在せず、システムがその場で計算できない場合、API は 404 Not Found 応答を返します。
ドリルダウン・ツリー
次のドリルダウンツリーは、CMU 2.0 で使用可能なディメンション(リソース)を示しています。
CM テナントが利用できるDimension
https://mgmt.auth.adobe.com/cmu/v2
API エンドポイントへの GET
は、次を含む表現を返します。
-
使用可能なルート・ドリルダウン・パスへのリンク:
<link rel="drill-down" href="/cmu/v2/dimensionA"/> <link rel="drill-down" href="/cmu/v2/dimensionB"/>
-
すべての指標の概要(集計値)(デフォルトの間隔。クエリ文字列パラメーターは提供されていないので、以下を参照)。
ドリルダウンパスの後(ステップごとの手順):/dimensionA/year/month/day/dimensionX 次の応答を取得します:
- 「dimensionY」および「dimensionZ」ドリルダウンオプションへのリンク
- dimensionX の各値の日次集計を含むレポート
フィルター
日時次元を除き、現在のプロジェクションで使用可能な次元(次元パス)は、その名前をクエリー文字列パラメータとして使用してフィルタできます。
次のフィルタリングオプションを使用できます。
- 次に等しい フィルターは、ディメンション名をクエリ文字列内の特定の値に設定することで提供されます。
- IN フィルターは、同じ dimension-name パラメーターを、異なる値で複数回追加することで指定できます。dimension=value1&dimension=value2
- 次に等しくない フィルターには「!」を使用する必要があります ディメンション名の後の記号が「!=' "operator": ディメンション!=値
- NOT IN フィルターには「!='演算子を複数回使用します(set: ディメンションの各値に 1 回ずつ)。=value1&dimension!=値 2&…
また、クエリ文字列には、ディメンション名に特別な使用法があります。ディメンション名が値のないクエリ文字列パラメーターとして使用される場合、レポートにそのディメンションを含むプロジェクションを返すように API に指示されます。
CMU クエリの例:
/dimension1?dimension3
次のクエリ文字列パラメーターには、API 用に予約された意味があります(そのため、ディメンション名として使用できません。そうでない場合、そのようなディメンションにはフィルタリングはできません)。
CMU API 予約クエリ文字列パラメーター:
現在利用可能な HTTP メソッドはGETのみです。 OPTIONS/HEAD方式のサポートは、今後のバージョンで提供される可能性があります。
CMU API ステータスコード
データ形式
データは次の形式で使用できます。
- JSON (デフォルト)
- XML
- CSV
- HTML(デモ用)
クライアントは次のコンテンツ ネゴシエーション戦略を使用できます(優先順位はリスト内の位置によって決まります。最初のものです)。
- URL パスの最後のセグメントに追加される「ファイル拡張子」。例:/cmu/v2/tenant/year/month/day.xml URL にクエリ文字列が含まれる場合、拡張子は疑問符の前にする必要があります:
/cmu/v2/tenant/year/month/day.csv?mvpd=SomeMVPD
- 形式クエリ文字列パラメーター:例:
/cmu/report?format=json
- 標準の HTTP Accept ヘッダー:例:
Accept: application/xml
「extension」とクエリパラメーターの両方で、次の値がサポートされています。
- xml
- json
- csv
- html
戦略のいずれかでメディアタイプが指定されていない場合、API はデフォルトで JSON コンテンツを生成します。
ハイパーテキストアプリケーション言語(HAL)
JSON および XML の場合、ペイロードは、次に示すように HAL としてエンコードされます:http://stateless.co/hal_specification.html
。
実際のレポート(「report」と呼ばれるネストされたタグ/プロパティ)は、選択または適用可能なすべてのディメンションと指標を含んだレコードの実際のリストと、次のようにエンコードされた値で構成されます。
JSON
"report": [
{
"dimension1": "d1",
...
"metric1": "m1",
...
}, {
...
}
]
XML
<report>
<record dimension1="d1" ... metric1="m1" ... />
...
</report>
XML および JSON 形式の場合、レコード内のフィールド(ディメンションと指標)の順序は未指定ですが、一貫性があります(順序はすべてのレコードで同じになります)。 ただし、クライアントは、レコード内のフィールドの特定の順序に依存してはいけません。
リソースリンク(JSON の「self」 rel および XML の「href」リソース属性)には、現在のパスと、インラインレポートに使用されるクエリ文字列が含まれます。 クエリ文字列は、暗黙的なパラメーターと明示的なパラメーターをすべて表示するので、ペイロードは、使用される時間間隔や暗黙的なフィルター(ある場合)などを明示的に示します。 リソース内の残りのリンクには、現在のデータをドリルダウンするために追跡できるすべての使用可能なセグメントが含まれます。 ロールアップ用のリンクも提供され、親パス(存在する場合)を指します。 ドリルダウン/ロールアップリンクの href
値には、URL パスのみが含まれます(クエリ文字列は含まれないので、必要に応じてクライアントが追加する必要があります)。 現在のリソースによって使用(または暗黙)されるすべてのクエリ文字列パラメーターが「ロールアップ」リンクまたは「ドリルダウン」リンクに適用できるわけではありません(例えば、フィルターはサブリソースまたはスーパーリソースには適用されない場合があります)。
例(clients という指標が 1 つあり、year/month/day/...
に事前集計があるとします)。
-
https://mgmt.auth.adobe.com/cmu/v2/year/month.xml
<resource href="/cmu/v2/year/month?start=2012-07-20T00:00:00&end=2012-08-20T14:35:21"> <links> <link rel="roll-up" href="/cmu/v2/year"/> <link rel="drill-down" href="/cmu/v2/year/month/day"/> </links> <report> <record month="6" year="2012" clients="205"/> <record month="7" year="2012" clients="466"/> </report> </resource>
-
https://mgmt.auth.adobe.com/cmu/v2/year/month.json
{ "_links" : { "self" : { "href" : "/cmu/v2/year/month?start=2012-07-20T00:00:00&end=2012-08-20T14:35:21" }, "roll-up" : { "href" : "/cmu/v2/year" }, "drill-down" : { "href" : "/cmu/v2/year/month/day" } }, "report" : [ { "month" : "6", "year" : "2012", "clients" : "205" }, { "month" : "7", "year" : "2012", "clients" : "466" } ] }
CSV
CSV データ形式では、リンクや他のメタデータ(ヘッダー行を除く)はインラインで提供されず、代わりに、選択メタデータが、次のパターンに従ってファイル名で提供されます。
report__<start-date>_<end-date>_<filter-values,...>.csv
CSV にはヘッダー行が含まれ、レポートデータは後続の行として含まれます。 ヘッダー行には、すべてのディメンションと、すべての指標が続きます。 レポートデータの並べ替え順序は、ディメンションの順序に反映されます。 したがって、データが D1 で並べ替えられ、次に D2 で並べ替えられた場合、CSV ヘッダーは D1, D2, ...metrics....
のようになります。
ヘッダー行のフィールドの順序は、テーブルデータの並べ替え順を反映しています。
例:https://mgmt.auth.adobe.com/cmu/v2/year/month.csvは、次の内容を含む report__2012-07-20_2012-08-20_1000.csv
という名前のファイルを生成します。
データの鮮度
リクエストには Last-Modified ヘッダーが含まれていますが、本文のレポートが最後に更新された時刻は 反映されません。 一般レポートは、次のルールを使用して、定期的に計算されています。
- 時間の精度が 年 または 月 の場合、レポートは 2 日ごとに更新されます
- 時間の精度が 日 の場合、レポートは 3 時間ごとに更新されます
- 時間の精度が 時間 の場合、レポートは 1 時間ごとに更新されます
- 時間の精度が 分 の場合、レポートは毎分更新されます
アクティビティレベル および 同時実行レベル レポートは、時間の精度に関係なく、毎日更新されます。
GZIP 圧縮
Adobeでは、CMU レポートを取得するクライアントで gzip サポートを有効にすることを強くお勧めします。 これにより、応答のサイズが大幅に削減され、応答時間が短縮されます。 (CMU データの圧縮率は 20~30 の範囲である。)
クライアントで gzip 圧縮を有効にするには、次のように Accept-Encoding: ヘッダーを設定します。
Accept-Encoding: gzip, deflate