システムとヘルス
稼働状態(liveness)、準備状態(readiness)、メトリクス、OpenAPIドキュメント、サーバーの機能。
このグループの操作と、それぞれのアクセスルール、再試行ルール、パラメーター、レスポンスです。すべてのリクエストにはキーを付けます:Authorization: Bearer <key>(「認証」を参照)。
操作
詳細なレディネスの確認
GET HEAD /health/ready
アクセス: 有効なキーまたはセッション · 再試行: 再試行しても安全(読み取り)
データベースとストレージが応答するとreadyを返します。あわせて、このノードのrole(apiまたはreader)、現在書き込みを受け付けるかどうか(読み取りゲートウェイ、およびディスクの空き容量が予約分まで減っている間はwritableがfalse)、読み取りゲートウェイの共有ダウンロードスロット、アップロードとダウンロードの受け入れ状況と帯域幅の集計カウンターを返します。サーバーがドレイン中、または依存先が利用できない間は、Retry-After付きで503を返します。リクエスト予算には含まれません。キーを持たないロードバランサーにはgetReadinessStatusを使用してください。
レスポンス 200
| フィールド | 型 | 必須 | ルール |
|---|---|---|---|
role | string | はい | 次のいずれか:api, reader |
sharedDownloads | object | はい | nullも可 |
sharedDownloads.slot | integer | はい | 0以上 |
sharedDownloads.slots | integer | はい | 0以上 |
sharedDownloads.active | boolean | はい | — |
sharedDownloads.leaseSeconds | integer | はい | 0以上 |
status | string | はい | 次のいずれか:ready |
writable | boolean | はい | — |
replication | object | いいえ | nullも可 |
replication.copies | integer | はい | 0~16 |
replication.required | integer | はい | 1~16 |
replication.singleCopyUntil | string (date-time) | はい | nullも可 |
replication.node | string | いいえ | 63文字以内 |
replication.profile | string | いいえ | 次のいずれか:ha-2, ha-3 |
replication.peers | objectの配列 | いいえ | 16個以内の要素 |
replication.peers[].name | string | はい | 63文字以内 |
replication.peers[].connected | boolean | はい | — |
replication.peers[].disk | string | はい | 24文字以内 |
replication.peers[].complete | boolean | はい | — |
replication.peers[].witness | boolean | はい | — |
transfers | object | はい | — |
transfers.uploads | object | はい | — |
transfers.uploads.admission | object | はい | — |
transfers.uploads.bandwidth | object | はい | — |
transfers.uploads.sessions | object | いいえ | — |
transfers.downloads | object | はい | — |
transfers.downloads.admission | object | はい | — |
transfers.downloads.bandwidth | object | はい | — |
transfers.downloads.sessions | object | いいえ | — |
レスポンス: 200, 400, 401, 403, 404, 409, 422, 503, 507
例
curl -X GET "$ARKVORY_URL/health/ready" \
-H "Authorization: Bearer $ARKVORY_TOKEN"サーバーの機能と制限の取得
GET HEAD /api/v1/capabilities
アクセス: 有効なキーまたはセッション · 再試行: 再試行しても安全(読み取り)
APIバージョン、ゲートウェイのロール、機能フラグ(たとえばselfRegistrationやmirrorFeed)、およびクライアントが合わせるべき制限を返します。制限には、最大オブジェクトサイズ(maxObjectBytes、10進数の文字列)、マルチパートのセグメントの最小サイズと最大サイズ、パート数の上限、ページサイズの上限が含まれます。クライアントの起動時に一度読み取ってください。リソースの一覧は含まれません。
レスポンス 200
| フィールド | 型 | 必須 | ルール |
|---|---|---|---|
apiVersions | stringの配列 | はい | — |
gatewayRole | string | はい | 次のいずれか:api, reader |
features | booleanのマップ | はい | — |
limits | object | はい | — |
limits.maxObjectBytes | string | いいえ | 10進数字で表した整数(文字列として送信) |
limits.partBytes | integer | いいえ | マルチパートの最小セグメント。 |
limits.maxPartBytes | integer | いいえ | — |
limits.maxParts | integer | いいえ | — |
limits.maxPageSize | integer | いいえ | — |
レスポンス: 200, 400, 401, 403, 404, 409, 422, 503, 507
例
curl -X GET "$ARKVORY_URL/api/v1/capabilities" \
-H "Authorization: Bearer $ARKVORY_TOKEN"ロードバランサー向けのレディネス確認
GET HEAD /health/status
アクセス: 誰でも(キー不要) · 再試行: 再試行しても安全(読み取り)
キーは不要で、詳細は返しません。200と{"status":"ready"}を返すか、unavailableまたはdrainingを伴う503とRetry-Afterを返します。依存先の確認は共有され、1秒間キャッシュされるため、頻繁なプローブでもデータベースに負荷がかかりません。また、このプローブはリクエスト予算に含まれません。
レスポンス 200
| フィールド | 型 | 必須 | ルール |
|---|---|---|---|
status | string | はい | 次のいずれか:ready, unavailable, draining |
レスポンス: 200, 400, 403, 503
例
curl -X GET "$ARKVORY_URL/health/status"プロセスの生存確認
GET HEAD /health/live
アクセス: 誰でも(キー不要) · 再試行: 再試行しても安全(読み取り)
プロセスがHTTPに応答している間、200と{"status":"ok"}を返します。依存先は確認しないため、再起動するかどうかの判断にはこちらを、トラフィックを流すかどうかの判断にはgetReadinessStatusを使用してください。
レスポンス 200
| フィールド | 型 | 必須 | ルール |
|---|---|---|---|
status | string | はい | 次のいずれか:ok |
レスポンス: 200, 400, 403, 503
例
curl -X GET "$ARKVORY_URL/health/live"OpenAPIドキュメントの取得
GET HEAD /api/v1/openapi.json
アクセス: 有効なキーまたはセッション · 再試行: 再試行しても安全(読み取り)
このデプロイメントのOpenAPI 3.0ドキュメントを返します。各オペレーションのアクセス、リトライ、ゲートウェイのルールを記述するx-arkvory-*拡張が含まれます。surface(discovery、identity、catalog、transfers、administration、operations)を指定すると、その領域のみを返します。未知のクエリパラメーターや重複したクエリパラメーターは400になります。ドキュメントはどの呼び出し元に対しても同じで、権限を与えるものではありません。この認証情報で呼び出せるオペレーションを調べるには、listVisibleOperationsを使用してください。
パラメーター
| 名前 | 場所 | 型 | 必須 | ルール |
|---|---|---|---|---|
surface | クエリ | string | いいえ | 次のいずれか:discovery, identity, catalog, transfers, administration, operations; Documentation view only; not filtered by caller permissions. |
レスポンス 200
| フィールド | 型 | 必須 | ルール |
|---|---|---|---|
openapi | string | はい | 次のいずれか:3.0.3 |
info | object | はい | — |
paths | object | はい | — |
レスポンス: 200, 400, 401, 403, 404, 409, 422, 503, 507
例
curl -X GET "$ARKVORY_URL/api/v1/openapi.json" \
-H "Authorization: Bearer $ARKVORY_TOKEN"Prometheusメトリクスの取得
GET HEAD /health/metrics
アクセス: 有効なキーまたはセッション · 再試行: 再試行しても安全(読み取り)
スクレイパー向けに、プロセスのメトリクスをPrometheusテキスト形式(text/plain; version=0.0.4)で返します。カウンターとヒストグラムはこのプロセスに属し、再起動後はゼロから始まります(arkvory_process_start_time_secondsを参照)。ラベルはルートテンプレート、メソッド、ステータスクラス、転送方向に限られ、アーティファクト、キー、アカウントの名前が現れることはありません。スクレイプはリクエスト予算に含まれません。
レスポンス: 200, 400, 401, 403, 404, 409, 422, 503, 507
例
curl -X GET "$ARKVORY_URL/health/metrics" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-o fileこの認証情報で呼び出せるオペレーションの一覧表示
GET HEAD /api/v1/operations
アクセス: 有効なキーまたはセッション · 再試行: 再試行しても安全(読み取り)
この認証情報で呼び出せるこのゲートウェイのオペレーションを、operationId順に列挙します。各項目には、領域(surface)、リトライルール、必要なアクション、および呼び出し時にのみ確認されるconditions(resource-stateやupload-ownerなど)が含まれます。repositoryを指定するとそのリポジトリのオペレーションも含まれ(存在しない、またはアクセスできないリポジトリは404)、surfaceを指定すると一覧を1つの領域に絞り込みます。ページにはlimit件(1〜100、既定は50)が含まれ、続きはafterにnextを設定して取得します。結果は参考情報です。メニューの構築には利用できますが、実際のリクエストはすべて改めて認可され、読み取りゲートウェイは変更を伴うメソッドを一覧に含めません。
パラメーター
| 名前 | 場所 | 型 | 必須 | ルール |
|---|---|---|---|---|
repository | クエリ | string | いいえ | ^[a-z0-9][a-z0-9_-]{0,63}$に一致 |
surface | クエリ | string | いいえ | 次のいずれか:discovery, identity, catalog, transfers, administration, operations |
after | クエリ | string | いいえ | ^[A-Za-z][A-Za-z0-9]{0,95}$に一致 |
limit | クエリ | integer | いいえ | 1~100; 既定値:50 |
レスポンス 200
| フィールド | 型 | 必須 | ルール |
|---|---|---|---|
apiVersion | string | はい | 次のいずれか:v1 |
documentVersion | string | はい | ^\d+\.\d+\.\d+$に一致 |
gatewayRole | string | はい | 次のいずれか:api, reader |
repository | string | はい | ^[a-z0-9][a-z0-9_-]{0,63}$に一致; nullも可 |
advisory | boolean | はい | 次のいずれか:true |
items | objectの配列 | はい | 100個以内の要素 |
items[].operationId | string | はい | ^[A-Za-z][A-Za-z0-9]{0,95}$に一致 |
items[].method | string | はい | 次のいずれか:get, head, post, put, patch, delete |
items[].path | string | はい | ^/に一致; 512文字以内 |
items[].summary | string | はい | 1024文字以内 |
items[].surface | string | はい | 次のいずれか:discovery, identity, catalog, transfers, administration, operations |
items[].visibility | string | はい | 次のいずれか:public, authenticated, self, repository, owned-resource, delegated, bootstrap, administrator |
items[].retry | string | はい | 次のいずれか:read, never-automatic, idempotent, idempotency-key, compare-and-swap, reconcile-upload, reconcile-job |
items[].requiredActions | stringの配列 | はい | 33個以内の要素; 要素の重複なし; 各要素:次のいずれか:repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read, service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read, backup.read, backup.manage |
items[].conditions | stringの配列 | はい | 6個以内の要素; 要素の重複なし; 各要素:次のいずれか:resource-state, upload-owner, job-owner, reference-owner, delegation-target-and-ceiling, own-key |
next | string | はい | ^[A-Za-z][A-Za-z0-9]{0,95}$に一致; nullも可 |
レスポンス: 200, 400, 401, 403, 404, 409, 422, 503, 507
例
curl -X GET "$ARKVORY_URL/api/v1/operations" \
-H "Authorization: Bearer $ARKVORY_TOKEN"