Artifacts は、アカウント全体のリポジトリアクティビティ、エラー、操作時間を調べられる分析を公開しています。
Artifacts のメトリクスは、Cloudflare の GraphQL Analytics API から利用できます。どのリポジトリが最も忙しく、どこでエラーが集中し、操作にどれくらい時間がかかるかといった問いに答えられます。
Artifacts は現在、artifactsEventsAdaptiveGroups GraphQL データセットをエクスポートしています。
| メトリクス | GraphQL フィールド | 説明 |
|---|---|---|
| 操作数 | count |
クエリフィルターに一致する Artifacts イベントの総数です。成功した操作とエラーの両方を含みます。 |
| 合計所要時間 | sum.durationMs |
一致する Artifacts 操作の処理にかかった合計時間(ミリ秒)です。 |
| 平均所要時間 | avg.durationMs |
一致する操作 1 件あたりの平均時間(ミリ秒)です。 |
| 所要時間 p25 | quantiles.durationMsP25 |
操作所要時間の 25 パーセンタイル(ミリ秒)です。 |
| 所要時間 p50 | quantiles.durationMsP50 |
操作所要時間の中央値(ミリ秒)です。 |
| 所要時間 p75 | quantiles.durationMsP75 |
操作所要時間の 75 パーセンタイル(ミリ秒)です。 |
| 所要時間 p90 | quantiles.durationMsP90 |
操作所要時間の 90 パーセンタイル(ミリ秒)です。 |
| 所要時間 p95 | quantiles.durationMsP95 |
操作所要時間の 95 パーセンタイル(ミリ秒)です。 |
| 所要時間 p99 | quantiles.durationMsP99 |
操作所要時間の 99 パーセンタイル(ミリ秒)です。 |
| 所要時間 p999 | quantiles.durationMsP999 |
操作所要時間の 99.9 パーセンタイル(ミリ秒)です。 |
メトリクスは過去 31 日分を照会できます。クエリには、Cloudflare のアカウント ID を指定する accountTag フィルターが必要です。
結果のフィルターまたはグループ化には、次のディメンションを使います。
| ディメンション | 説明 |
|---|---|
repository |
namespace/name 形式の完全修飾リポジトリパスです。 |
repositoryNamespace |
リポジトリを含むネームスペースです。 |
repositoryName |
ネームスペース内のリポジトリ名です。 |
eventKind |
イベントの上位カテゴリです。成功した操作は action、失敗は error です。 |
eventType |
具体的な操作またはエラータイプです。 |
errorMessage |
失敗した操作のエラーメッセージです。 |
date |
イベントの暦日です。 |
datetime |
イベントの正確なタイムスタンプです。 |
datetimeMinute |
分単位に切り捨てたイベント時刻です。 |
datetimeFiveMinutes |
5 分ウィンドウに切り捨てたイベント時刻です。 |
datetimeFifteenMinutes |
15 分ウィンドウに切り捨てたイベント時刻です。 |
datetimeHour |
時間単位に切り捨てたイベント時刻です。 |
datetimeSixHours |
6 時間ウィンドウに切り捨てたイベント時刻です。 |
Artifacts は現在、eventType に次の値を出力します。
| イベントタイプ | 種類 | 説明 |
|---|---|---|
create |
action |
リポジトリが作成されました。 |
fork |
action |
リポジトリがフォークされました。 |
push |
action |
クライアントがリポジトリにデータをプッシュしました。 |
pull |
action |
クライアントがリポジトリからデータを取得またはクローンしました。 |
delete |
action |
リポジトリが削除されました。 |
storageLimitReached |
error |
操作がストレージ上限の条件に達しました。 |
serverError |
error |
リクエスト処理中にサービスが失敗しました。 |
clientError |
error |
クライアントが無効または未対応のリクエストを送りました。 |
rateLimited |
error |
リクエストがレート制限で拒否されました。 |
Artifacts の分析は、GraphQL Analytics API で照会できます。このページの例は、すべて artifactsEventsAdaptiveGroups データセットを使います。
このクエリは、ある期間における 1 つのネームスペース内で、最も忙しいリポジトリを調べます。平均操作時間も返すので、アクティビティとレイテンシを並べて比較できます。
query ArtifactsOperationsByRepo(
$accountTag: String!
$datetimeStart: Time
$datetimeEnd: Time
$repositoryNamespace: String!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
artifactsEventsAdaptiveGroups(
limit: 100
filter: {
datetime_geq: $datetimeStart
datetime_leq: $datetimeEnd
repositoryNamespace: $repositoryNamespace
eventKind: "action"
}
orderBy: [count_DESC]
) {
count
avg {
durationMs
}
dimensions {
repositoryName
}
}
}
}
}このクエリは、エラー件数でリポジトリを並べます。どのリポジトリが最も失敗しやすく、どのエラータイプが多いかを把握しやすくなります。
query ArtifactsErrorsByRepo(
$accountTag: String!
$datetimeStart: Time
$datetimeEnd: Time
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
artifactsEventsAdaptiveGroups(
limit: 100
filter: {
datetime_geq: $datetimeStart
datetime_leq: $datetimeEnd
eventKind: "error"
}
orderBy: [count_DESC]
) {
count
dimensions {
repository
eventType
}
}
}
}
}このクエリは、ある期間に最も多くプッシュされたリポジトリを確認します。アカウント全体で書き込みが多いリポジトリを特定するのに役立ちます。
query ArtifactsPushesByRepo(
$accountTag: String!
$datetimeStart: Time
$datetimeEnd: Time
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
artifactsEventsAdaptiveGroups(
limit: 100
filter: {
datetime_geq: $datetimeStart
datetime_leq: $datetimeEnd
eventKind: "action"
eventType: "push"
}
orderBy: [count_DESC]
) {
count
dimensions {
repository
}
}
}
}
}