From 5787568ced58dd3d08f7a0eff6a00ba70fe1c1c4 Mon Sep 17 00:00:00 2001 From: zino Date: Wed, 13 Aug 2025 16:28:13 +0200 Subject: [PATCH] m --- progs/registry.mtail | 104 ++++++++----------------------------------- 1 file changed, 18 insertions(+), 86 deletions(-) diff --git a/progs/registry.mtail b/progs/registry.mtail index 61ebdbe..6f6c510 100644 --- a/progs/registry.mtail +++ b/progs/registry.mtail @@ -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_seconds_total by repo, user, node -hidden text method -hidden text path -hidden text node -hidden text user -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 +/"remote_address":"(?P[^"]*)".*"remote_user":"(?P[^"]*)".*"method":"GET".*"path":"\/v2\/(?P.+?)\/blobs\/sha256:[a-f0-9]+".*"status":(?P\d+).*"body_bytes_sent":(?P\d+).*"request_time":(?P[0-9.]+)/ { + registry_pull_blob_bytes_total[$repo][$user][$node] += $body + registry_pull_blob_seconds_total[$repo][$user][$node] += $rt + registry_requests_total["GET"]["pull_blob"][$status][$repo][$user][$node]++ } -/"path":"([^"]+)"/ { - path = $1 +/"remote_address":"(?P[^"]*)".*"remote_user":"(?P[^"]*)".*"method":"PATCH".*"path":"\/v2\/(?P.+?)\/blobs\/uploads\/[a-f0-9-]+".*"upstream_range":"(?P\d+)-(?P\d+)".*"status":(?P\d+).*"request_time":(?P[0-9.]+)/ { + 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":"([^"]*)"/ { - node = $1 +/"remote_address":"(?P[^"]*)".*"remote_user":"(?P[^"]*)".*"method":"POST".*"path":"\/v2\/(?P.+?)\/blobs\/uploads\/".*"status":(?P\d+)/ { + registry_requests_total["POST"]["push_start"][$status][$repo][$user][$node]++ } -/"remote_user":"([^"]*)"/ { - user = $1 +/"remote_address":"(?P[^"]*)".*"remote_user":"(?P[^"]*)".*"method":"PUT".*"path":"\/v2\/(?P.+?)\/blobs\/uploads\/[a-f0-9-]+".*"status":(?P\d+)/ { + registry_requests_total["PUT"]["push_commit"][$status][$repo][$user][$node]++ } -/"status":([0-9]{3})/ { - status = $1 - status_s = $1 +/"remote_address":"(?P[^"]*)".*"remote_user":"(?P[^"]*)".*"method":"GET".*"path":"\/v2\/(?P.+?)\/manifests\/[^"]+".*"status":(?P\d+)/ { + registry_requests_total["GET"]["pull_manifest"][$status][$repo][$user][$node]++ } -/"request_time":([0-9.]+)/ { - request_time = $1 +/"remote_address":"(?P[^"]*)".*"remote_user":"(?P[^"]*)".*"method":"PUT".*"path":"\/v2\/(?P.+?)\/manifests\/[^"]+".*"status":(?P\d+)/ { + registry_requests_total["PUT"]["push_manifest"][$status][$repo][$user][$node]++ } -/"body_bytes_sent":([0-9]+)/ { - body_bytes_sent = $1 -} - -/"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]++ +/"remote_address":"(?P[^"]*)".*"remote_user":"(?P[^"]*)".*"path":"\/v2\/".*"method":"(?P\w+)".*"status":(?P\d+)/ { + registry_requests_total[$m]["v2_root"][$status]["none"][$user][$node]++ }