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 には、リポジトリーのガべージコレクションワーカーによって削除対象としてマークされたリポジトリーが含まれます。repositorygcqueue_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
...