是否可以在 Google Artifact Registry 中跟踪 docker pull 的数量?

Nat*_*lin 7 google-cloud-platform gcloud google-artifact-registry

我想测量从我的 GCP 项目中的 Google Artifact 注册表存储库下载 Docker 映像的次数。

这可能吗?

Daz*_*kin 8

有趣的问题。

我认为这也会有用。

我认为没有任何监控指标(没有列出artifactregistry资源类型,也没有列出指标)

但是,您可以使用ArtifactRegistry 审核日志,并且需要显式启用数据访问日志,请参阅例如Docker-GetManifest

在此输入图像描述

注意我不确定这是否可以从gcloud.

监视开发人员工具,我了解到审核日志是使用AuditConfig's 在项目策略中配置的。我仍然不知道这个功能是否可以通过gcloud(任何人?)使用,但显然,您可以直接使用 API 调用来实现这些更改,例如projects.setIamPolicy

gcloud projects get-iam-policy ${PROJECT}
auditConfigs:
- auditLogConfigs:
  - logType: DATA_READ
  - logType: DATA_WRITE
  service: artifactregistry.googleapis.com
bindings:
- members:
  - user:me
  role: roles/owner
etag: BwXanQS_YWg=
Run Code Online (Sandbox Code Playgroud)

然后,从存储库中提取一些内容并查询日志:

PROJECT=[[YOUR-PROJECT]]
REGION=[[YOUR-REGION]]
REPO=[[YOUR-REPO]]

FILTER="
logName=\"projects/${PROJECT}/logs/cloudaudit.googleapis.com%2Fdata_access\"
protoPayload.methodName=\"Docker-GetManifest\"
"

gcloud logging read "${FILTER}" \
--project=${PROJECT} \
--format="value(timestamp,protoPayload.methodName)"
Run Code Online (Sandbox Code Playgroud)

产量:

2022-03-20T01:57:16.537400441Z  Docker-GetManifest
Run Code Online (Sandbox Code Playgroud)

您也应该能够为这些创建基于日志的指标。