This commit is contained in:
zino
2025-08-13 16:28:13 +02:00
parent 4d65c6e386
commit 5787568ced

View File

@@ -4,102 +4,34 @@ counter registry_pull_blob_seconds_total by repo, user, node
counter registry_push_upload_bytes_total by repo, user, node counter registry_push_upload_bytes_total by repo, user, node
counter registry_push_upload_seconds_total by repo, user, node counter registry_push_upload_seconds_total by repo, user, node
hidden text method /"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"GET".*"path":"\/v2\/(?P<repo>.+?)\/blobs\/sha256:[a-f0-9]+".*"status":(?P<status>\d+).*"body_bytes_sent":(?P<body>\d+).*"request_time":(?P<rt>[0-9.]+)/ {
hidden text path registry_pull_blob_bytes_total[$repo][$user][$node] += $body
hidden text node registry_pull_blob_seconds_total[$repo][$user][$node] += $rt
hidden text user registry_requests_total["GET"]["pull_blob"][$status][$repo][$user][$node]++
hidden text status_s
hidden text up_range
hidden text upload_uuid
hidden text digest
hidden text repo
hidden int status
hidden int body_bytes_sent
hidden int uploaded_bytes
hidden float request_time
/"method":"([A-Z]+)"/ {
method = $1
} }
/"path":"([^"]+)"/ { /"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"PATCH".*"path":"\/v2\/(?P<repo>.+?)\/blobs\/uploads\/[a-f0-9-]+".*"upstream_range":"(?P<start>\d+)-(?P<end>\d+)".*"status":(?P<status>\d+).*"request_time":(?P<rt>[0-9.]+)/ {
path = $1 registry_push_upload_bytes_total[$repo][$user][$node] += int($end) + 1
registry_push_upload_seconds_total[$repo][$user][$node] += $rt
registry_requests_total["PATCH"]["push_upload"][$status][$repo][$user][$node]++
} }
/"remote_address":"([^"]*)"/ { /"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"POST".*"path":"\/v2\/(?P<repo>.+?)\/blobs\/uploads\/".*"status":(?P<status>\d+)/ {
node = $1 registry_requests_total["POST"]["push_start"][$status][$repo][$user][$node]++
} }
/"remote_user":"([^"]*)"/ { /"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"PUT".*"path":"\/v2\/(?P<repo>.+?)\/blobs\/uploads\/[a-f0-9-]+".*"status":(?P<status>\d+)/ {
user = $1 registry_requests_total["PUT"]["push_commit"][$status][$repo][$user][$node]++
} }
/"status":([0-9]{3})/ { /"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"GET".*"path":"\/v2\/(?P<repo>.+?)\/manifests\/[^"]+".*"status":(?P<status>\d+)/ {
status = $1 registry_requests_total["GET"]["pull_manifest"][$status][$repo][$user][$node]++
status_s = $1
} }
/"request_time":([0-9.]+)/ { /"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"PUT".*"path":"\/v2\/(?P<repo>.+?)\/manifests\/[^"]+".*"status":(?P<status>\d+)/ {
request_time = $1 registry_requests_total["PUT"]["push_manifest"][$status][$repo][$user][$node]++
} }
/"body_bytes_sent":([0-9]+)/ { /"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"path":"\/v2\/".*"method":"(?P<m>\w+)".*"status":(?P<status>\d+)/ {
body_bytes_sent = $1 registry_requests_total[$m]["v2_root"][$status]["none"][$user][$node]++
}
/"upstream_range":"([^"]*)"/ {
up_range = $1
}
/"docker_upload_uuid":"([^"]*)"/ {
upload_uuid = $1
}
/"docker_content_digest":"([^"]*)"/ {
digest = $1
}
/"path":"\/v2\/(.+?)\/(blobs|manifests|tags|_catalog)/ {
repo = $1
}
/"upstream_range":"([0-9]+)-([0-9]+)"/ {
uploaded_bytes = int($2) + 1
}
/"method":"GET".*"\/v2\/.+\/blobs\/sha256:[a-f0-9]+"/ {
registry_pull_blob_bytes_total[repo][user][node] += body_bytes_sent
registry_pull_blob_seconds_total[repo][user][node] += request_time
registry_requests_total[method]["pull_blob"][status_s][repo][user][node]++
}
/"method":"PATCH".*"\/v2\/.+\/blobs\/uploads\/[a-f0-9-]+"/ {
uploaded_bytes > 0 {
registry_push_upload_bytes_total[repo][user][node] += uploaded_bytes
}
registry_push_upload_seconds_total[repo][user][node] += request_time
registry_requests_total[method]["push_upload"][status_s][repo][user][node]++
uploaded_bytes = 0
}
/"method":"POST".*"\/v2\/.+\/blobs\/uploads\/"/ {
registry_requests_total[method]["push_start"][status_s][repo][user][node]++
}
/"method":"PUT".*"\/v2\/.+\/blobs\/uploads\/[a-f0-9-]+"/ {
registry_requests_total[method]["push_commit"][status_s][repo][user][node]++
}
/"method":"GET".*"\/v2\/.+\/manifests\/[^"]+"/ {
registry_requests_total[method]["pull_manifest"][status_s][repo][user][node]++
}
/"method":"PUT".*"\/v2\/.+\/manifests\/[^"]+"/ {
registry_requests_total[method]["push_manifest"][status_s][repo][user][node]++
}
/"path":"\/v2\/"/ {
registry_requests_total[method]["v2_root"][status_s]["none"][user][node]++
} }