8.2. API を使用した使用状況ログの表示す
API を使用して、組織またはリポジトリー別にログを表示できます。ログは、集約 (グループ化) したり、より詳細にリスト表示したりすることもできます。ユーザー別、特定の日付範囲別、またはページ別に表示することもできます。
8.2.1. 集約されたログの表示
集約されたログは、組織、リポジトリー、特定のユーザー、または現在のユーザー別に表示できます。結果をフィルタリングするために、performer
、starttime/endtime
、next_page
などのオプションのコマンドを渡すこともできます。
前提条件
- OAuth アクセストークンを作成 した。
-
config.yaml
ファイルでBROWSER_API_CALLS_XHR_ONLY: false
を設定している。
手順
現在のユーザーの集約された (またはグループ化された) ログを返すには、
GET /api/v1/user/aggregatelogs
API エンドポイントを使用します。$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "https://<quay-server.example.com>/api/v1/user/aggregatelogs"
出力例
{"aggregated": [{"kind": "create_tag", "count": 1, "datetime": "Tue, 18 Jun 2024 00:00:00 -0000"}, {"kind": "manifest_label_add", "count": 1, "datetime": "Tue, 18 Jun 2024 00:00:00 -0000"}, {"kind": "push_repo", "count": 2, "datetime": "Tue, 18 Jun 2024 00:00:00 -0000"}, {"kind": "revert_tag", "count": 1, "datetime": "Tue, 18 Jun 2024 00:00:00 -0000"}]}
また、
performer
とstarttime/endtime
クエリーを渡して、特定期間における特定のユーザーの集約されたログを取得することもできます。以下に例を示します。$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "<quay-server.example.com>/api/v1/user/aggregatelogs?performer=<username>&starttime=<MM/DD/YYYY>&endtime=<MM/DD/YYYY>"
集約されたログは、
GET /api/v1/organization/{orgname}/aggregatelogs
を使用して組織別に表示することもできます。以下に例を示します。$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "<quay-server.example.com>/api/v1/organization/{orgname}/aggregatelogs"
集約されたログは、
GET /api/v1/repository/{repository}/aggregatelogs
コマンドを使用してリポジトリー別に表示することもできます。次の例には、starttime/endtime
フィールドが含まれています。$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "<quay-server.example.com>/api/v1/repository/<repository_name>/<namespace>/aggregatelogs?starttime=2024-01-01&endtime=2024-06-18""
8.2.2. 詳細なログの表示
詳細なログは、組織、リポジトリー、特定のユーザー、または現在のユーザー別に表示できます。結果をフィルタリングするために、performer
、starttime/endtime
、next_page
などのオプションのフィールドを渡すこともできます。
手順
ユーザーのログエントリーのリストを返すには、
GET /api/v1/user/logs
API エンドポイントを使用します。以下に例を示します。$ curl -X GET -H "Authorization: Bearer <bearer_token>" -H "Accept: application/json" "<quay-server.example.com>/api/v1/user/logs"
また、
performer
とstartime/endtime
クエリーを渡して、特定期間における特定のユーザーのログを取得することもできます。以下に例を示します。$ curl -X GET -H "Authorization: Bearer <bearer_token>" -H "Accept: application/json" "http://quay-server.example.com/api/v1/user/logs?performer=quayuser&starttime=01/01/2024&endtime=06/18/2024"
出力例
--- {"start_time": "Mon, 01 Jan 2024 00:00:00 -0000", "end_time": "Wed, 19 Jun 2024 00:00:00 -0000", "logs": [{"kind": "revert_tag", "metadata": {"username": "quayuser", "repo": "busybox", "tag": "test-two", "manifest_digest": "sha256:57583a1b9c0a7509d3417387b4f43acf80d08cdcf5266ac87987be3f8f919d5d"}, "ip": "192.168.1.131", "datetime": "Tue, 18 Jun 2024 18:59:13 -0000", "performer": {"kind": "user", "name": "quayuser", "is_robot": false, "avatar": {"name": "quayuser", "hash": "b28d563a6dc76b4431fc7b0524bbff6b810387dac86d9303874871839859c7cc", "color": "#17becf", "kind": "user"}}}, {"kind": "push_repo", "metadata": {"repo": "busybox", "namespace": "quayuser", "user-agent": "containers/5.30.1 (github.com/containers/image)", "tag": "test-two", "username": "quayuser", } ---
指定した組織のログを返すには、
GET /api/v1/organization/{orgname}/logs
エンドポイントを使用します。$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "http://<quay-server.example.com>/api/v1/organization/{orgname}/logs"
指定したリポジトリーのログを返すには、
GET /api/v1/repository/{repository}/logs
エンドポイントを使用します。$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "http://<quay-server.example.com>/api/v1/repository/{repository}/logs"