13.2. メトリクスの概要
Red Hat Quay には、一般的なレジストリーの使用、アップロード、ダウンロード、ガベージコレクション、および認証についてのメトリクスなど、レジストリーの監視に役立つメトリクスが同梱されています。
13.2.1. 一般レジストリーの統計
一般的なレジストリー統計で、どの程度レジストリーが拡大しているかが分かります。
メトリクス名 | 説明 |
---|---|
quay_user_rows | データベースのユーザー数 |
quay_robot_rows | データベースのロボットアカウントの数 |
quay_org_rows | データベースの組織数 |
quay_repository_rows | データベースのリポジトリー数 |
quay_security_scanning_unscanned_images_remaining_total | 最新のセキュリティースキャナーによってスキャンされないイメージの数 |
メトリクスの出力サンプル
# HELP quay_user_rows number of users in the database # TYPE quay_user_rows gauge quay_user_rows{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="65",process_name="globalpromstats.py"} 3 # HELP quay_robot_rows number of robot accounts in the database # TYPE quay_robot_rows gauge quay_robot_rows{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="65",process_name="globalpromstats.py"} 2 # HELP quay_org_rows number of organizations in the database # TYPE quay_org_rows gauge quay_org_rows{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="65",process_name="globalpromstats.py"} 2 # HELP quay_repository_rows number of repositories in the database # TYPE quay_repository_rows gauge quay_repository_rows{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="65",process_name="globalpromstats.py"} 4 # HELP quay_security_scanning_unscanned_images_remaining number of images that are not scanned by the latest security scanner # TYPE quay_security_scanning_unscanned_images_remaining gauge quay_security_scanning_unscanned_images_remaining{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 5
13.2.2. キューアイテム
キューアイテム メトリクスでは、作業管理用に Quay が使用する複数のキューに関する情報が分かります。
メトリクス名 | 説明 |
---|---|
quay_queue_items_available | 特定のキュー内のアイテム数 |
quay_queue_items_locked | 実行中のアイテム数 |
quay_queue_items_available_unlocked | 処理を待機しているアイテム数 |
メトリックラベル
QUEUE_NAME: キューの名前。以下のいずれかになります。
- exportactionlogs: アクションログをエクスポートするためのキューに追加されている要求。これらのログは処理され、ストレージに配置されます。その後、リンクがメールを介して要求元に送信されます。
- namespacegc: キューに追加されてガベージコレクションされる namespace
- notification: リポジトリー通知が送信されるキュー
- repositorygc: ガベージコレクションを行うレポジトリーでキューに追加されているもの
- secscanv4: Clair V4 に固有の通知キュー
- dockerfilebuild: Quay docker ビルドのキュー
- imagestoragereplication: 複数のストレージで複製されるようにキューに追加されている Blob
- chunk_cleanup: 削除する必要があり、キューに追加されている Blog セグメント。これは、一部のストレージ実装 (Swift など) でのみ使用されます。
たとえば、キューラベルの repositorygc には、リポジトリーのガべージコレクションワーカーによって削除対象としてマークされたリポジトリーが含まれます。repositorygc の queue_name ラベル付きのメトリクスの場合は、以下のようになります。
- quay_queue_items_locked は、現在削除されているリポジトリーの数です。
- quay_queue_items_available_unlocked は、ワーカーが処理するのを待機するリポジトリーの数です。
メトリクスの出力サンプル
# HELP quay_queue_items_available number of queue items that have not expired # TYPE quay_queue_items_available gauge quay_queue_items_available{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="63",process_name="exportactionlogsworker.py",queue_name="exportactionlogs"} 0 ... # HELP quay_queue_items_available_unlocked number of queue items that have not expired and are not locked # TYPE quay_queue_items_available_unlocked gauge quay_queue_items_available_unlocked{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="63",process_name="exportactionlogsworker.py",queue_name="exportactionlogs"} 0 ... # HELP quay_queue_items_locked number of queue items that have been acquired # TYPE quay_queue_items_locked gauge quay_queue_items_locked{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="63",process_name="exportactionlogsworker.py",queue_name="exportactionlogs"} 0
13.2.3. ガベージコレクションメトリクス
これらのメトリクスは、ガベージコレクション (gc) から削除されたリソースの数を示します。ここでは、gc ワーカーが実行した回数と、削除された namespace、リポジトリー、および Blob の数が示されます。
メトリクス名 | 説明 |
---|---|
quay_gc_iterations_total | GCWorker による反復の数 |
quay_gc_namespaces_purged_total | NamespaceGCWorker によってパージされる namespace 数 |
quay_gc_repos_purged_total | RepositoryGCWorker または NamespaceGCWorker がパージするリポジトリーの数 |
quay_gc_storage_blobs_deleted_total | 削除されたストレージ Blob の数 |
メトリクスの出力サンプル
# TYPE quay_gc_iterations_created gauge quay_gc_iterations_created{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 1.6317823190189714e+09 ... # HELP quay_gc_iterations_total number of iterations by the GCWorker # TYPE quay_gc_iterations_total counter quay_gc_iterations_total{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 0 ... # TYPE quay_gc_namespaces_purged_created gauge quay_gc_namespaces_purged_created{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 1.6317823190189433e+09 ... # HELP quay_gc_namespaces_purged_total number of namespaces purged by the NamespaceGCWorker # TYPE quay_gc_namespaces_purged_total counter quay_gc_namespaces_purged_total{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 0 .... # TYPE quay_gc_repos_purged_created gauge quay_gc_repos_purged_created{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 1.631782319018925e+09 ... # HELP quay_gc_repos_purged_total number of repositories purged by the RepositoryGCWorker or NamespaceGCWorker # TYPE quay_gc_repos_purged_total counter quay_gc_repos_purged_total{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 0 ... # TYPE quay_gc_storage_blobs_deleted_created gauge quay_gc_storage_blobs_deleted_created{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 1.6317823190189059e+09 ... # HELP quay_gc_storage_blobs_deleted_total number of storage blobs deleted # TYPE quay_gc_storage_blobs_deleted_total counter quay_gc_storage_blobs_deleted_total{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 0 ...
13.2.3.1. マルチパートアップロードメトリクス
マルチパートアップロードメトリクスは、ストレージへの Blob アップロードの数 (S3、Raddos、GoogleCloudStorage、RHOCS) を表示します。これらは、Quay が Blob をストレージに正しくアップロードできない場合の問題を特定するのに役立ちます。
メトリクス名 | 説明 |
---|---|
quay_multipart_uploads_started_total | 起動した Quay ストレージへのマルチパートアップロードの数 |
quay_multipart_uploads_completed_total | 完了した Quay ストレージへのマルチパートアップロードの数 |
メトリクスの出力サンプル
# TYPE quay_multipart_uploads_completed_created gauge quay_multipart_uploads_completed_created{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 1.6317823308284895e+09 ... # HELP quay_multipart_uploads_completed_total number of multipart uploads to Quay storage that completed # TYPE quay_multipart_uploads_completed_total counter quay_multipart_uploads_completed_total{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 0 # TYPE quay_multipart_uploads_started_created gauge quay_multipart_uploads_started_created{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 1.6317823308284352e+09 ... # HELP quay_multipart_uploads_started_total number of multipart uploads to Quay storage that started # TYPE quay_multipart_uploads_started_total counter quay_multipart_uploads_started_total{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="208",process_name="secscan:application"} 0 ...
13.2.4. イメージのプッシュ/プルのメトリクス
イメージのプッシュおよびプルに関連する数多くのメトリクスを利用できます。
13.2.4.1. イメージプルの合計
メトリクス名 | 説明 |
---|---|
quay_registry_image_pulls_total | レジストリーからダウンロードされたイメージの数 |
メトリックラベル
- プロトコル: 使用するレジストリープロトコル (常に v2 に指定する)
- ref: -tag マニフェストのプルに使用する ref
- status: 要求の http 戻りコード
13.2.4.2. プルしたイメージ (バイト)
メトリクス名 | 説明 |
---|---|
quay_registry_image_pulled_estimated_bytes_total | レジストリーからダウンロードされたバイト数 |
メトリックラベル
- プロトコル: 使用するレジストリープロトコル (常に v2 に指定する)
13.2.4.3. イメージのプッシュ合計
メトリクス名 | 説明 |
---|---|
quay_registry_image_pushes_total | レジストリーからアップロードされたイメージの数 |
メトリックラベル
- protocol: 使用するレジストリープロトコル (常に v2 に指定する)
- pstatus: 要求の http 戻りコード
- pmedia_type: アップロードしたマニフェストタイプ
13.2.4.4. プッシュされたイメージバイト
メトリクス名 | 説明 |
---|---|
quay_registry_image_pushed_bytes_total | レジストリーにアップロードされたバイト数 |
メトリクスの出力サンプル
# HELP quay_registry_image_pushed_bytes_total number of bytes pushed to the registry # TYPE quay_registry_image_pushed_bytes_total counter quay_registry_image_pushed_bytes_total{host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="221",process_name="registry:application"} 0 ...
13.2.5. 認証メトリクス
認証メトリクスでは、タイプ別にラベルが付けられた認証要求の数と、成功したかどうかが分かります。たとえば、このメトリックを使用して、失敗した Basic 認証要求を監視できます。
メトリクス名 | 説明 |
---|---|
quay_authentication_attempts_total | レジストリーおよび API 全体で認証を試行する回数 |
メトリックラベル
auth_kind: 使用される認証のタイプ。以下が含まれます。
- basic
- oauth
- credentials
- success: true または false
メトリクスの出力サンプル
# TYPE quay_authentication_attempts_created gauge quay_authentication_attempts_created{auth_kind="basic",host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="221",process_name="registry:application",success="True"} 1.6317843039374158e+09 ... # HELP quay_authentication_attempts_total number of authentication attempts across the registry and API # TYPE quay_authentication_attempts_total counter quay_authentication_attempts_total{auth_kind="basic",host="example-registry-quay-app-6df87f7b66-9tfn6",instance="",job="quay",pid="221",process_name="registry:application",success="True"} 2 ...