This commit is contained in:
zino
2025-08-14 19:29:31 +02:00
parent 8568c37b70
commit 44ab671c62

View File

@@ -6,23 +6,33 @@ counter registry_push_session_speed_mbps by repo, user, node
gauge push_session_bytes by repo, user, node gauge push_session_bytes by repo, user, node
gauge push_session_start by repo, user, node gauge push_session_start by repo, user, node
/"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"GET".*"path":"\/v2\/(?P<repo>.+?)\/blobs\/sha256:[a-f0-9]+".*"body_bytes_sent":(?P<body>\d+).*"request_time":(?P<rt>[0-9.]+)/ { /"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"GET".*"path":"\/v2\/(?P<repo>.+?)\/blobs\/sha256:[a-f0-9]+".*"body_bytes_sent":(?P<body>\d+).*"request_time":(?P<rt>[0-9.]+)"/
{
registry_pull_blob_bytes_total[$repo][$user][$node] += $body registry_pull_blob_bytes_total[$repo][$user][$node] += $body
registry_pull_blob_seconds_total[$repo][$user][$node] += $rt registry_pull_blob_seconds_total[$repo][$user][$node] += $rt
registry_requests_total["pull_blob"][$repo][$node]++ registry_requests_total["pull_blob"][$repo][$node]++
} }
/"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+)".*"request_time":(?P<rt>[0-9.]+)/ { /"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"POST".*"path":"\/v2\/(?P<repo>.+?)\/blobs\/uploads\/".*"status":202/
bytes = int($end) - int($start) + 1 {
registry_push_upload_bytes_total[$repo][$user][$node] += bytes
push_session_bytes[$repo][$user][$node] += bytes
if push_session_start[$repo][$user][$node] == 0 { if push_session_start[$repo][$user][$node] == 0 {
push_session_start[$repo][$user][$node] = time() push_session_start[$repo][$user][$node] = time()
} }
registry_requests_total["push_upload"][$repo][$node]++ registry_requests_total["push_upload"][$repo][$node]++
} }
/"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"PATCH".*"path":"\/v2\/(?P<repo>.+?)\/blobs\/uploads\/[a-f0-9-]+".*"request_length":(?P<req>\d+)/ { /"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+)".*"request_time":(?P<rt>[0-9.]+)"/
{
registry_push_upload_bytes_total[$repo][$user][$node] += int($end) - int($start) + 1
push_session_bytes[$repo][$user][$node] += int($end) - int($start) + 1
if push_session_start[$repo][$user][$node] == 0 {
push_session_start[$repo][$user][$node] = time()
}
registry_requests_total["push_upload"][$repo][$node]++
}
/"remote_address":"(?P<node>[^"]*)".*"remote_user":"(?P<user>[^"]*)".*"method":"PATCH".*"path":"\/v2\/(?P<repo>.+?)\/blobs\/uploads\/[a-f0-9-]+".*"upstream_range":"".*"request_length":(?P<req>\d+)/
{
registry_push_upload_bytes_total[$repo][$user][$node] += $req registry_push_upload_bytes_total[$repo][$user][$node] += $req
push_session_bytes[$repo][$user][$node] += $req push_session_bytes[$repo][$user][$node] += $req
if push_session_start[$repo][$user][$node] == 0 { if push_session_start[$repo][$user][$node] == 0 {
@@ -31,20 +41,22 @@ gauge push_session_start by repo, user, node
registry_requests_total["push_upload"][$repo][$node]++ registry_requests_total["push_upload"][$repo][$node]++
} }
/"remote_address":"(?P<node>[^"]*)".*"method":"PUT".*"path":"\/v2\/(?P<repo>.+?)\/manifests\/[^"]+"/ { /"remote_address":"(?P<node>[^"]*)".*"method":"PUT".*"path":"\/v2\/(?P<repo>.+?)\/manifests\/[^"]+"/
{
registry_requests_total["push_manifest"][$repo][$node]++ registry_requests_total["push_manifest"][$repo][$node]++
duration = time() - push_session_start[$repo][$user][$node] if push_session_start[$repo][$user][$node] > 0 && push_session_bytes[$repo][$user][$node] > 0 && time() - push_session_start[$repo][$user][$node] > 0 {
if duration > 0 && push_session_bytes[$repo][$user][$node] > 0 { registry_push_session_speed_mbps[$repo][$user][$node] = (push_session_bytes[$repo][$user][$node] * 8) / (time() - push_session_start[$repo][$user][$node]) / 1000000
registry_push_session_speed_mbps[$repo][$user][$node] = (push_session_bytes[$repo][$user][$node] * 8) / duration / 1000000
} }
push_session_bytes[$repo][$user][$node] = 0 push_session_bytes[$repo][$user][$node] = 0
push_session_start[$repo][$user][$node] = 0 push_session_start[$repo][$user][$node] = 0
} }
/"remote_address":"(?P<node>[^"]*)".*"method":"GET".*"path":"\/v2\/(?P<repo>.+?)\/manifests\/[^"]+"/ { /"remote_address":"(?P<node>[^"]*)".*"method":"GET".*"path":"\/v2\/(?P<repo>.+?)\/manifests\/[^"]+"/
{
registry_requests_total["pull_manifest"][$repo][$node]++ registry_requests_total["pull_manifest"][$repo][$node]++
} }
/"remote_address":"(?P<node>[^"]*)".*"path":"\/v2\/".*"method":"\w+"/ { /"remote_address":"(?P<node>[^"]*)".*"path":"\/v2\/".*"method":"\w+"/
{
registry_requests_total["v2_root"]["none"][$node]++ registry_requests_total["v2_root"]["none"][$node]++
} }