Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add prometheus metrics #2466

Merged
merged 1 commit into from
Feb 9, 2018
Merged

Conversation

tifayuki
Copy link
Contributor

@tifayuki tifayuki commented Dec 7, 2017

Signed-off-by: tifayuki [email protected]

  1. Add HTTP metrics for APIs and health check
  2. Add blob metrics
  3. Add cache metrics

depends on:
docker/go-metrics#15
docker/go-metrics#16

cc @nandhini915 @manishtomar

@manishtomar
Copy link
Contributor

@tifayuki For simplicity can we split this into 3 separate PRs? I think it will be easier for reviewers and you too :)

@tifayuki
Copy link
Contributor Author

tifayuki commented Dec 7, 2017

@manishtomar
I think it is ok to put the changes in one pr. it is like about 100 lines of code changes. And they also share some codes for prometheus initialization

@stevvooe
Copy link
Collaborator

@tifayuki Are you still working on this?

@tifayuki
Copy link
Contributor Author

@stevvooe
I am waiting for these PR to be merged. And see if we need add more metrics.

return base.setDriverName(base.StorageDriver.Move(ctx, sourcePath, destPath))
start := time.Now()
err := base.setDriverName(base.StorageDriver.Move(ctx, sourcePath, destPath))
prometheus.BlobAction.WithValues("move").UpdateSince(start)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't really a blob action. It is a storage driver action.


var (
// BlobAction is the metrics of blob related operations
BlobAction = storageNamespace.NewLabeledTimer("blob_action", "The number of seconds it takes to get/put blob", "action")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are used for storage actions, not blob actions.


const (
// Namespace is the namespace of prometheus metrics
Namespace = "docker_distribution"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer if this were registry or something like that.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wait, this isn't actually a namespace: define a single namespace here.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or, call it NamespacePrefix to be clear.

@@ -129,6 +129,11 @@ type Configuration struct {
Debug struct {
// Addr specifies the bind address for the debug server.
Addr string `yaml:"addr,omitempty"`
// Prometheus configures the Prometheus telemetry endpoint.
Prometheus struct {
Enabled bool `yaml:"enabled,omitempty"`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Document what this fields do here and in the documentation.

@@ -0,0 +1,28 @@
package prometheus
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to have it be called "prometheus". Just have a single package named metrics.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, rather than defining all the metrics here, just define the namespace here and define the metrics where they are used.

@@ -213,6 +213,9 @@ http:
email: [email protected]
debug:
addr: localhost:5001
prometheus:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There needs to be a section for this.

@@ -213,6 +213,9 @@ http:
email: [email protected]
debug:
addr: localhost:5001
prometheus:
enabled: true
path: /metrics
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a default?

fi, e := base.StorageDriver.Stat(ctx, path)
prometheus.BlobAction.WithValues("state").UpdateSince(start)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stat, not state.

storagedriver "github.com/docker/distribution/registry/storage/driver"
"time"
)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sure to decorate all the operations. Do we have a way to see writer duration? Writer bytes?

str, e := base.StorageDriver.List(ctx, path)
prometheus.BlobAction.WithValues("list").UpdateSince(start)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can these somehow include the name of the driver that is in use? That would be helpful for comparing driver implementations in production.

BlobAction = storageNamespace.NewLabeledTimer("blob_action", "The number of seconds it takes to get/put blob", "action")

// CacheRequestCount is the number of total cache request received/hits/misses
CacheRequestCount = storageNamespace.NewLabeledCounter("cache_request", "The number of cache request received", "type")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cache or something like that is fine. CacheRequest makes me think of counting requests that were cached.

@stevvooe
Copy link
Collaborator

As part of this PR, please provide an output of the metrics so we can ensure the format looks correct.

@codecov
Copy link

codecov bot commented Feb 7, 2018

Codecov Report

Merging #2466 into master will decrease coverage by 9.12%.
The diff coverage is 71.05%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2466      +/-   ##
==========================================
- Coverage   60.81%   51.69%   -9.13%     
==========================================
  Files         129      126       -3     
  Lines       11830    11500     -330     
==========================================
- Hits         7195     5945    -1250     
- Misses       3733     4810    +1077     
+ Partials      902      745     -157
Impacted Files Coverage Δ
configuration/configuration.go 68.33% <ø> (ø) ⬆️
registry/registry.go 3.1% <0%> (-0.07%) ⬇️
registry/storage/driver/base/base.go 78.84% <100%> (+9.61%) ⬆️
...egistry/storage/cache/cachedblobdescriptorstore.go 45.83% <100%> (+3.61%) ⬆️
registry/handlers/app.go 47.79% <28.57%> (-0.34%) ⬇️
registry/storage/driver/gcs/gcs.go 0.4% <0%> (-68.67%) ⬇️
registry/storage/driver/oss/oss.go 0.56% <0%> (-56.9%) ⬇️
registry/storage/driver/s3-goamz/s3.go 0.5% <0%> (-51.14%) ⬇️
registry/storage/driver/s3-aws/s3.go 4.57% <0%> (-50.55%) ⬇️
registry/client/transport/transport.go 69.69% <0%> (-9.1%) ⬇️
... and 22 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1307637...e3c37a4. Read the comment docs.

)

var (
// storageAction is the metrics of blob related operations
storageAction = prometheus.StorageNamespace.NewLabeledTimer("storage_action", "The number of seconds that the storage action takes", "driver", "action")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This stutters: it becomes registry_storage_storage_action. Should just be action here.

@tifayuki
Copy link
Contributor Author

tifayuki commented Feb 8, 2018

sample output with push/pull:

# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 5.0754e-05
go_gc_duration_seconds{quantile="0.25"} 5.4063e-05
go_gc_duration_seconds{quantile="0.5"} 0.000121069
go_gc_duration_seconds{quantile="0.75"} 0.000401152
go_gc_duration_seconds{quantile="1"} 0.001361719
go_gc_duration_seconds_sum 0.003059755
go_gc_duration_seconds_count 11
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 17
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.9.2"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 2.23712e+06
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
go_memstats_alloc_bytes_total 2.2946704e+07
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 1.451838e+06
# HELP go_memstats_frees_total Total number of frees.
# TYPE go_memstats_frees_total counter
go_memstats_frees_total 101460
# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started.
# TYPE go_memstats_gc_cpu_fraction gauge
go_memstats_gc_cpu_fraction -1.0937775936728337e-07
# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
# TYPE go_memstats_gc_sys_bytes gauge
go_memstats_gc_sys_bytes 704512
# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use.
# TYPE go_memstats_heap_alloc_bytes gauge
go_memstats_heap_alloc_bytes 2.23712e+06
# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used.
# TYPE go_memstats_heap_idle_bytes gauge
go_memstats_heap_idle_bytes 1.1288576e+07
# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use.
# TYPE go_memstats_heap_inuse_bytes gauge
go_memstats_heap_inuse_bytes 3.883008e+06
# HELP go_memstats_heap_objects Number of allocated objects.
# TYPE go_memstats_heap_objects gauge
go_memstats_heap_objects 14188
# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS.
# TYPE go_memstats_heap_released_bytes gauge
go_memstats_heap_released_bytes 0
# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system.
# TYPE go_memstats_heap_sys_bytes gauge
go_memstats_heap_sys_bytes 1.5171584e+07
# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection.
# TYPE go_memstats_last_gc_time_seconds gauge
go_memstats_last_gc_time_seconds 1.518048091039826e+09
# HELP go_memstats_lookups_total Total number of pointer lookups.
# TYPE go_memstats_lookups_total counter
go_memstats_lookups_total 304
# HELP go_memstats_mallocs_total Total number of mallocs.
# TYPE go_memstats_mallocs_total counter
go_memstats_mallocs_total 115648
# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures.
# TYPE go_memstats_mcache_inuse_bytes gauge
go_memstats_mcache_inuse_bytes 6944
# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system.
# TYPE go_memstats_mcache_sys_bytes gauge
go_memstats_mcache_sys_bytes 16384
# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures.
# TYPE go_memstats_mspan_inuse_bytes gauge
go_memstats_mspan_inuse_bytes 61712
# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system.
# TYPE go_memstats_mspan_sys_bytes gauge
go_memstats_mspan_sys_bytes 81920
# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place.
# TYPE go_memstats_next_gc_bytes gauge
go_memstats_next_gc_bytes 4.194304e+06
# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations.
# TYPE go_memstats_other_sys_bytes gauge
go_memstats_other_sys_bytes 1.266106e+06
# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator.
# TYPE go_memstats_stack_inuse_bytes gauge
go_memstats_stack_inuse_bytes 557056
# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator.
# TYPE go_memstats_stack_sys_bytes gauge
go_memstats_stack_sys_bytes 557056
# HELP go_memstats_sys_bytes Number of bytes obtained from system.
# TYPE go_memstats_sys_bytes gauge
go_memstats_sys_bytes 1.92494e+07
# HELP go_threads Number of OS threads created.
# TYPE go_threads gauge
go_threads 11
# HELP registry_http_in_flight_requests The in-flight HTTP requests
# TYPE registry_http_in_flight_requests gauge
registry_http_in_flight_requests{handler="base"} 0
registry_http_in_flight_requests{handler="blob"} 0
registry_http_in_flight_requests{handler="blob_upload"} 0
registry_http_in_flight_requests{handler="blob_upload_chunk"} 0
registry_http_in_flight_requests{handler="catalog"} 0
registry_http_in_flight_requests{handler="manifest"} 0
registry_http_in_flight_requests{handler="root"} 0
registry_http_in_flight_requests{handler="tags"} 0
# HELP registry_http_request_duration_seconds The HTTP request latencies in seconds.
# TYPE registry_http_request_duration_seconds histogram
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="0.05"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="0.1"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="0.2"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="0.3"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="0.4"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="0.5"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="0.6"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="0.7"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="0.8"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="0.9"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="1"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="2"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="5"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="10"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="20"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="30"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="40"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="50"} 3
registry_http_request_duration_seconds_bucket{handler="base",method="get",le="+Inf"} 3
registry_http_request_duration_seconds_sum{handler="base",method="get"} 0.012981262
registry_http_request_duration_seconds_count{handler="base",method="get"} 3
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="0.05"} 0
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="0.1"} 0
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="0.2"} 1
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="0.3"} 1
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="0.4"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="0.5"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="0.6"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="0.7"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="0.8"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="0.9"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="1"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="2"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="5"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="10"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="20"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="30"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="40"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="50"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="get",le="+Inf"} 2
registry_http_request_duration_seconds_sum{handler="blob",method="get"} 0.5914947610000001
registry_http_request_duration_seconds_count{handler="blob",method="get"} 2
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="0.05"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="0.1"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="0.2"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="0.3"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="0.4"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="0.5"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="0.6"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="0.7"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="0.8"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="0.9"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="1"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="2"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="5"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="10"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="20"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="30"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="40"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="50"} 4
registry_http_request_duration_seconds_bucket{handler="blob",method="head",le="+Inf"} 4
registry_http_request_duration_seconds_sum{handler="blob",method="head"} 0.105825963
registry_http_request_duration_seconds_count{handler="blob",method="head"} 4
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="0.05"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="0.1"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="0.2"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="0.3"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="0.4"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="0.5"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="0.6"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="0.7"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="0.8"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="0.9"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="1"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="2"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="5"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="10"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="20"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="30"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="40"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="50"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload",method="post",le="+Inf"} 2
registry_http_request_duration_seconds_sum{handler="blob_upload",method="post"} 0.006804427
registry_http_request_duration_seconds_count{handler="blob_upload",method="post"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="0.05"} 1
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="0.1"} 1
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="0.2"} 1
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="0.3"} 1
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="0.4"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="0.5"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="0.6"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="0.7"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="0.8"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="0.9"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="1"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="2"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="5"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="10"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="20"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="30"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="40"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="50"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="patch",le="+Inf"} 2
registry_http_request_duration_seconds_sum{handler="blob_upload_chunk",method="patch"} 0.36913987
registry_http_request_duration_seconds_count{handler="blob_upload_chunk",method="patch"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="0.05"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="0.1"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="0.2"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="0.3"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="0.4"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="0.5"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="0.6"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="0.7"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="0.8"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="0.9"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="1"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="2"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="5"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="10"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="20"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="30"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="40"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="50"} 2
registry_http_request_duration_seconds_bucket{handler="blob_upload_chunk",method="put",le="+Inf"} 2
registry_http_request_duration_seconds_sum{handler="blob_upload_chunk",method="put"} 0.036807007
registry_http_request_duration_seconds_count{handler="blob_upload_chunk",method="put"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="0.05"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="0.1"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="0.2"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="0.3"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="0.4"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="0.5"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="0.6"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="0.7"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="0.8"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="0.9"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="1"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="2"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="5"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="10"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="20"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="30"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="40"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="50"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="get",le="+Inf"} 2
registry_http_request_duration_seconds_sum{handler="manifest",method="get"} 0.053386458
registry_http_request_duration_seconds_count{handler="manifest",method="get"} 2
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="0.05"} 0
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="0.1"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="0.2"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="0.3"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="0.4"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="0.5"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="0.6"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="0.7"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="0.8"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="0.9"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="1"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="2"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="5"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="10"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="20"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="30"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="40"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="50"} 1
registry_http_request_duration_seconds_bucket{handler="manifest",method="put",le="+Inf"} 1
registry_http_request_duration_seconds_sum{handler="manifest",method="put"} 0.058672927
registry_http_request_duration_seconds_count{handler="manifest",method="put"} 1
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="0.05"} 5
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="0.1"} 5
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="0.2"} 6
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="0.3"} 6
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="0.4"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="0.5"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="0.6"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="0.7"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="0.8"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="0.9"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="1"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="2"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="5"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="10"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="20"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="30"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="40"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="50"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="get",le="+Inf"} 7
registry_http_request_duration_seconds_sum{handler="root",method="get"} 0.6632449859999999
registry_http_request_duration_seconds_count{handler="root",method="get"} 7
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="0.05"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="0.1"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="0.2"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="0.3"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="0.4"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="0.5"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="0.6"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="0.7"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="0.8"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="0.9"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="1"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="2"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="5"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="10"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="20"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="30"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="40"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="50"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="head",le="+Inf"} 4
registry_http_request_duration_seconds_sum{handler="root",method="head"} 0.10653965300000001
registry_http_request_duration_seconds_count{handler="root",method="head"} 4
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="0.05"} 1
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="0.1"} 1
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="0.2"} 1
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="0.3"} 1
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="0.4"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="0.5"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="0.6"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="0.7"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="0.8"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="0.9"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="1"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="2"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="5"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="10"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="20"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="30"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="40"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="50"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="patch",le="+Inf"} 2
registry_http_request_duration_seconds_sum{handler="root",method="patch"} 0.369799002
registry_http_request_duration_seconds_count{handler="root",method="patch"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="0.05"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="0.1"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="0.2"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="0.3"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="0.4"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="0.5"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="0.6"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="0.7"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="0.8"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="0.9"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="1"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="2"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="5"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="10"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="20"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="30"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="40"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="50"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="post",le="+Inf"} 2
registry_http_request_duration_seconds_sum{handler="root",method="post"} 0.007169434000000001
registry_http_request_duration_seconds_count{handler="root",method="post"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="0.05"} 2
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="0.1"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="0.2"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="0.3"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="0.4"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="0.5"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="0.6"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="0.7"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="0.8"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="0.9"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="1"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="2"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="5"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="10"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="20"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="30"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="40"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="50"} 3
registry_http_request_duration_seconds_bucket{handler="root",method="put",le="+Inf"} 3
registry_http_request_duration_seconds_sum{handler="root",method="put"} 0.096345771
registry_http_request_duration_seconds_count{handler="root",method="put"} 3
# HELP registry_http_request_size_bytes The HTTP request sizes in bytes.
# TYPE registry_http_request_size_bytes histogram
registry_http_request_size_bytes_bucket{handler="base",le="1024"} 3
registry_http_request_size_bytes_bucket{handler="base",le="2048"} 3
registry_http_request_size_bytes_bucket{handler="base",le="4096"} 3
registry_http_request_size_bytes_bucket{handler="base",le="8192"} 3
registry_http_request_size_bytes_bucket{handler="base",le="16384"} 3
registry_http_request_size_bytes_bucket{handler="base",le="32768"} 3
registry_http_request_size_bytes_bucket{handler="base",le="65536"} 3
registry_http_request_size_bytes_bucket{handler="base",le="131072"} 3
registry_http_request_size_bytes_bucket{handler="base",le="262144"} 3
registry_http_request_size_bytes_bucket{handler="base",le="524288"} 3
registry_http_request_size_bytes_bucket{handler="base",le="1.048576e+06"} 3
registry_http_request_size_bytes_bucket{handler="base",le="2.097152e+06"} 3
registry_http_request_size_bytes_bucket{handler="base",le="4.194304e+06"} 3
registry_http_request_size_bytes_bucket{handler="base",le="8.388608e+06"} 3
registry_http_request_size_bytes_bucket{handler="base",le="1.6777216e+07"} 3
registry_http_request_size_bytes_bucket{handler="base",le="3.3554432e+07"} 3
registry_http_request_size_bytes_bucket{handler="base",le="6.7108864e+07"} 3
registry_http_request_size_bytes_bucket{handler="base",le="1.34217728e+08"} 3
registry_http_request_size_bytes_bucket{handler="base",le="2.68435456e+08"} 3
registry_http_request_size_bytes_bucket{handler="base",le="5.36870912e+08"} 3
registry_http_request_size_bytes_bucket{handler="base",le="1.073741824e+09"} 3
registry_http_request_size_bytes_bucket{handler="base",le="2.147483648e+09"} 3
registry_http_request_size_bytes_bucket{handler="base",le="+Inf"} 3
registry_http_request_size_bytes_sum{handler="base"} 678
registry_http_request_size_bytes_count{handler="base"} 3
registry_http_request_size_bytes_bucket{handler="blob",le="1024"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="2048"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="4096"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="8192"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="16384"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="32768"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="65536"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="131072"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="262144"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="524288"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="1.048576e+06"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="2.097152e+06"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="4.194304e+06"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="8.388608e+06"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="1.6777216e+07"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="3.3554432e+07"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="6.7108864e+07"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="1.34217728e+08"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="2.68435456e+08"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="5.36870912e+08"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="1.073741824e+09"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="2.147483648e+09"} 6
registry_http_request_size_bytes_bucket{handler="blob",le="+Inf"} 6
registry_http_request_size_bytes_sum{handler="blob"} 1796
registry_http_request_size_bytes_count{handler="blob"} 6
registry_http_request_size_bytes_bucket{handler="blob_upload",le="1024"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="2048"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="4096"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="8192"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="16384"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="32768"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="65536"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="131072"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="262144"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="524288"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="1.048576e+06"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="2.097152e+06"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="4.194304e+06"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="8.388608e+06"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="1.6777216e+07"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="3.3554432e+07"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="6.7108864e+07"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="1.34217728e+08"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="2.68435456e+08"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="5.36870912e+08"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="1.073741824e+09"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="2.147483648e+09"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload",le="+Inf"} 2
registry_http_request_size_bytes_sum{handler="blob_upload"} 550
registry_http_request_size_bytes_count{handler="blob_upload"} 2
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="1024"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="2048"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="4096"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="8192"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="16384"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="32768"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="65536"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="131072"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="262144"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="524288"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="1.048576e+06"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="2.097152e+06"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="4.194304e+06"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="8.388608e+06"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="1.6777216e+07"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="3.3554432e+07"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="6.7108864e+07"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="1.34217728e+08"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="2.68435456e+08"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="5.36870912e+08"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="1.073741824e+09"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="2.147483648e+09"} 4
registry_http_request_size_bytes_bucket{handler="blob_upload_chunk",le="+Inf"} 4
registry_http_request_size_bytes_sum{handler="blob_upload_chunk"} 2144
registry_http_request_size_bytes_count{handler="blob_upload_chunk"} 4
registry_http_request_size_bytes_bucket{handler="manifest",le="1024"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="2048"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="4096"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="8192"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="16384"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="32768"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="65536"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="131072"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="262144"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="524288"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="1.048576e+06"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="2.097152e+06"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="4.194304e+06"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="8.388608e+06"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="1.6777216e+07"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="3.3554432e+07"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="6.7108864e+07"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="1.34217728e+08"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="2.68435456e+08"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="5.36870912e+08"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="1.073741824e+09"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="2.147483648e+09"} 3
registry_http_request_size_bytes_bucket{handler="manifest",le="+Inf"} 3
registry_http_request_size_bytes_sum{handler="manifest"} 1734
registry_http_request_size_bytes_count{handler="manifest"} 3
registry_http_request_size_bytes_bucket{handler="root",le="1024"} 18
registry_http_request_size_bytes_bucket{handler="root",le="2048"} 18
registry_http_request_size_bytes_bucket{handler="root",le="4096"} 18
registry_http_request_size_bytes_bucket{handler="root",le="8192"} 18
registry_http_request_size_bytes_bucket{handler="root",le="16384"} 18
registry_http_request_size_bytes_bucket{handler="root",le="32768"} 18
registry_http_request_size_bytes_bucket{handler="root",le="65536"} 18
registry_http_request_size_bytes_bucket{handler="root",le="131072"} 18
registry_http_request_size_bytes_bucket{handler="root",le="262144"} 18
registry_http_request_size_bytes_bucket{handler="root",le="524288"} 18
registry_http_request_size_bytes_bucket{handler="root",le="1.048576e+06"} 18
registry_http_request_size_bytes_bucket{handler="root",le="2.097152e+06"} 18
registry_http_request_size_bytes_bucket{handler="root",le="4.194304e+06"} 18
registry_http_request_size_bytes_bucket{handler="root",le="8.388608e+06"} 18
registry_http_request_size_bytes_bucket{handler="root",le="1.6777216e+07"} 18
registry_http_request_size_bytes_bucket{handler="root",le="3.3554432e+07"} 18
registry_http_request_size_bytes_bucket{handler="root",le="6.7108864e+07"} 18
registry_http_request_size_bytes_bucket{handler="root",le="1.34217728e+08"} 18
registry_http_request_size_bytes_bucket{handler="root",le="2.68435456e+08"} 18
registry_http_request_size_bytes_bucket{handler="root",le="5.36870912e+08"} 18
registry_http_request_size_bytes_bucket{handler="root",le="1.073741824e+09"} 18
registry_http_request_size_bytes_bucket{handler="root",le="2.147483648e+09"} 18
registry_http_request_size_bytes_bucket{handler="root",le="+Inf"} 18
registry_http_request_size_bytes_sum{handler="root"} 6902
registry_http_request_size_bytes_count{handler="root"} 18
# HELP registry_http_requests_total Total number of HTTP requests made.
# TYPE registry_http_requests_total counter
registry_http_requests_total{code="200",handler="base",method="get"} 3
registry_http_requests_total{code="200",handler="blob",method="get"} 2
registry_http_requests_total{code="200",handler="blob",method="head"} 2
registry_http_requests_total{code="200",handler="manifest",method="get"} 1
registry_http_requests_total{code="200",handler="root",method="get"} 6
registry_http_requests_total{code="200",handler="root",method="head"} 2
registry_http_requests_total{code="201",handler="blob_upload_chunk",method="put"} 2
registry_http_requests_total{code="201",handler="manifest",method="put"} 1
registry_http_requests_total{code="201",handler="root",method="put"} 3
registry_http_requests_total{code="202",handler="blob_upload",method="post"} 2
registry_http_requests_total{code="202",handler="blob_upload_chunk",method="patch"} 2
registry_http_requests_total{code="202",handler="root",method="patch"} 2
registry_http_requests_total{code="202",handler="root",method="post"} 2
registry_http_requests_total{code="404",handler="blob",method="head"} 2
registry_http_requests_total{code="404",handler="manifest",method="get"} 1
registry_http_requests_total{code="404",handler="root",method="get"} 1
registry_http_requests_total{code="404",handler="root",method="head"} 2
# HELP registry_http_response_size_bytes The HTTP response sizes in bytes.
# TYPE registry_http_response_size_bytes histogram
registry_http_response_size_bytes_bucket{handler="base",le="1024"} 3
registry_http_response_size_bytes_bucket{handler="base",le="2048"} 3
registry_http_response_size_bytes_bucket{handler="base",le="4096"} 3
registry_http_response_size_bytes_bucket{handler="base",le="8192"} 3
registry_http_response_size_bytes_bucket{handler="base",le="16384"} 3
registry_http_response_size_bytes_bucket{handler="base",le="32768"} 3
registry_http_response_size_bytes_bucket{handler="base",le="65536"} 3
registry_http_response_size_bytes_bucket{handler="base",le="131072"} 3
registry_http_response_size_bytes_bucket{handler="base",le="262144"} 3
registry_http_response_size_bytes_bucket{handler="base",le="524288"} 3
registry_http_response_size_bytes_bucket{handler="base",le="1.048576e+06"} 3
registry_http_response_size_bytes_bucket{handler="base",le="2.097152e+06"} 3
registry_http_response_size_bytes_bucket{handler="base",le="4.194304e+06"} 3
registry_http_response_size_bytes_bucket{handler="base",le="8.388608e+06"} 3
registry_http_response_size_bytes_bucket{handler="base",le="1.6777216e+07"} 3
registry_http_response_size_bytes_bucket{handler="base",le="3.3554432e+07"} 3
registry_http_response_size_bytes_bucket{handler="base",le="6.7108864e+07"} 3
registry_http_response_size_bytes_bucket{handler="base",le="1.34217728e+08"} 3
registry_http_response_size_bytes_bucket{handler="base",le="2.68435456e+08"} 3
registry_http_response_size_bytes_bucket{handler="base",le="5.36870912e+08"} 3
registry_http_response_size_bytes_bucket{handler="base",le="1.073741824e+09"} 3
registry_http_response_size_bytes_bucket{handler="base",le="2.147483648e+09"} 3
registry_http_response_size_bytes_bucket{handler="base",le="+Inf"} 3
registry_http_response_size_bytes_sum{handler="base"} 6
registry_http_response_size_bytes_count{handler="base"} 3
registry_http_response_size_bytes_bucket{handler="blob",le="1024"} 4
registry_http_response_size_bytes_bucket{handler="blob",le="2048"} 5
registry_http_response_size_bytes_bucket{handler="blob",le="4096"} 5
registry_http_response_size_bytes_bucket{handler="blob",le="8192"} 5
registry_http_response_size_bytes_bucket{handler="blob",le="16384"} 5
registry_http_response_size_bytes_bucket{handler="blob",le="32768"} 5
registry_http_response_size_bytes_bucket{handler="blob",le="65536"} 5
registry_http_response_size_bytes_bucket{handler="blob",le="131072"} 5
registry_http_response_size_bytes_bucket{handler="blob",le="262144"} 5
registry_http_response_size_bytes_bucket{handler="blob",le="524288"} 5
registry_http_response_size_bytes_bucket{handler="blob",le="1.048576e+06"} 5
registry_http_response_size_bytes_bucket{handler="blob",le="2.097152e+06"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="4.194304e+06"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="8.388608e+06"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="1.6777216e+07"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="3.3554432e+07"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="6.7108864e+07"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="1.34217728e+08"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="2.68435456e+08"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="5.36870912e+08"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="1.073741824e+09"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="2.147483648e+09"} 6
registry_http_response_size_bytes_bucket{handler="blob",le="+Inf"} 6
registry_http_response_size_bytes_sum{handler="blob"} 2.067363e+06
registry_http_response_size_bytes_count{handler="blob"} 6
registry_http_response_size_bytes_bucket{handler="blob_upload",le="1024"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="2048"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="4096"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="8192"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="16384"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="32768"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="65536"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="131072"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="262144"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="524288"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="1.048576e+06"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="2.097152e+06"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="4.194304e+06"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="8.388608e+06"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="1.6777216e+07"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="3.3554432e+07"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="6.7108864e+07"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="1.34217728e+08"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="2.68435456e+08"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="5.36870912e+08"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="1.073741824e+09"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="2.147483648e+09"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload",le="+Inf"} 2
registry_http_response_size_bytes_sum{handler="blob_upload"} 0
registry_http_response_size_bytes_count{handler="blob_upload"} 2
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="1024"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="2048"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="4096"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="8192"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="16384"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="32768"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="65536"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="131072"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="262144"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="524288"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="1.048576e+06"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="2.097152e+06"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="4.194304e+06"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="8.388608e+06"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="1.6777216e+07"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="3.3554432e+07"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="6.7108864e+07"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="1.34217728e+08"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="2.68435456e+08"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="5.36870912e+08"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="1.073741824e+09"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="2.147483648e+09"} 4
registry_http_response_size_bytes_bucket{handler="blob_upload_chunk",le="+Inf"} 4
registry_http_response_size_bytes_sum{handler="blob_upload_chunk"} 0
registry_http_response_size_bytes_count{handler="blob_upload_chunk"} 4
registry_http_response_size_bytes_bucket{handler="manifest",le="1024"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="2048"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="4096"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="8192"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="16384"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="32768"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="65536"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="131072"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="262144"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="524288"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="1.048576e+06"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="2.097152e+06"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="4.194304e+06"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="8.388608e+06"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="1.6777216e+07"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="3.3554432e+07"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="6.7108864e+07"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="1.34217728e+08"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="2.68435456e+08"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="5.36870912e+08"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="1.073741824e+09"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="2.147483648e+09"} 3
registry_http_response_size_bytes_bucket{handler="manifest",le="+Inf"} 3
registry_http_response_size_bytes_sum{handler="manifest"} 624
registry_http_response_size_bytes_count{handler="manifest"} 3
registry_http_response_size_bytes_bucket{handler="root",le="1024"} 16
registry_http_response_size_bytes_bucket{handler="root",le="2048"} 17
registry_http_response_size_bytes_bucket{handler="root",le="4096"} 17
registry_http_response_size_bytes_bucket{handler="root",le="8192"} 17
registry_http_response_size_bytes_bucket{handler="root",le="16384"} 17
registry_http_response_size_bytes_bucket{handler="root",le="32768"} 17
registry_http_response_size_bytes_bucket{handler="root",le="65536"} 17
registry_http_response_size_bytes_bucket{handler="root",le="131072"} 17
registry_http_response_size_bytes_bucket{handler="root",le="262144"} 17
registry_http_response_size_bytes_bucket{handler="root",le="524288"} 17
registry_http_response_size_bytes_bucket{handler="root",le="1.048576e+06"} 17
registry_http_response_size_bytes_bucket{handler="root",le="2.097152e+06"} 18
registry_http_response_size_bytes_bucket{handler="root",le="4.194304e+06"} 18
registry_http_response_size_bytes_bucket{handler="root",le="8.388608e+06"} 18
registry_http_response_size_bytes_bucket{handler="root",le="1.6777216e+07"} 18
registry_http_response_size_bytes_bucket{handler="root",le="3.3554432e+07"} 18
registry_http_response_size_bytes_bucket{handler="root",le="6.7108864e+07"} 18
registry_http_response_size_bytes_bucket{handler="root",le="1.34217728e+08"} 18
registry_http_response_size_bytes_bucket{handler="root",le="2.68435456e+08"} 18
registry_http_response_size_bytes_bucket{handler="root",le="5.36870912e+08"} 18
registry_http_response_size_bytes_bucket{handler="root",le="1.073741824e+09"} 18
registry_http_response_size_bytes_bucket{handler="root",le="2.147483648e+09"} 18
registry_http_response_size_bytes_bucket{handler="root",le="+Inf"} 18
registry_http_response_size_bytes_sum{handler="root"} 2.067993e+06
registry_http_response_size_bytes_count{handler="root"} 18
# HELP registry_storage_action_seconds The number of seconds that the storage action takes
# TYPE registry_storage_action_seconds histogram
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="0.005"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="0.01"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="0.025"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="0.05"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="0.1"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="0.25"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="0.5"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="1"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="2.5"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="5"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="10"} 2
registry_storage_action_seconds_bucket{action="delete",driver="filesystem",le="+Inf"} 2
registry_storage_action_seconds_sum{action="delete",driver="filesystem"} 0.00326277
registry_storage_action_seconds_count{action="delete",driver="filesystem"} 2
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="0.005"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="0.01"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="0.025"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="0.05"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="0.1"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="0.25"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="0.5"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="1"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="2.5"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="5"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="10"} 25
registry_storage_action_seconds_bucket{action="getcontent",driver="filesystem",le="+Inf"} 25
registry_storage_action_seconds_sum{action="getcontent",driver="filesystem"} 0.004744117999999999
registry_storage_action_seconds_count{action="getcontent",driver="filesystem"} 25
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="0.005"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="0.01"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="0.025"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="0.05"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="0.1"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="0.25"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="0.5"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="1"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="2.5"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="5"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="10"} 2
registry_storage_action_seconds_bucket{action="list",driver="filesystem",le="+Inf"} 2
registry_storage_action_seconds_sum{action="list",driver="filesystem"} 0.000131992
registry_storage_action_seconds_count{action="list",driver="filesystem"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="0.005"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="0.01"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="0.025"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="0.05"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="0.1"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="0.25"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="0.5"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="1"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="2.5"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="5"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="10"} 2
registry_storage_action_seconds_bucket{action="move",driver="filesystem",le="+Inf"} 2
registry_storage_action_seconds_sum{action="move",driver="filesystem"} 0.000862457
registry_storage_action_seconds_count{action="move",driver="filesystem"} 2
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="0.005"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="0.01"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="0.025"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="0.05"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="0.1"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="0.25"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="0.5"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="1"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="2.5"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="5"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="10"} 16
registry_storage_action_seconds_bucket{action="putcontent",driver="filesystem",le="+Inf"} 16
registry_storage_action_seconds_sum{action="putcontent",driver="filesystem"} 0.012353154000000002
registry_storage_action_seconds_count{action="putcontent",driver="filesystem"} 16
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="0.005"} 55
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="0.01"} 55
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="0.025"} 55
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="0.05"} 56
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="0.1"} 56
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="0.25"} 56
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="0.5"} 56
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="1"} 56
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="2.5"} 56
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="5"} 56
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="10"} 56
registry_storage_action_seconds_bucket{action="stat",driver="filesystem",le="+Inf"} 56
registry_storage_action_seconds_sum{action="stat",driver="filesystem"} 0.03036069
registry_storage_action_seconds_count{action="stat",driver="filesystem"} 56
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="0.005"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="0.01"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="0.025"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="0.05"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="0.1"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="0.25"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="0.5"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="1"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="2.5"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="5"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="10"} 4
registry_storage_action_seconds_bucket{action="urlfor",driver="filesystem",le="+Inf"} 4
registry_storage_action_seconds_sum{action="urlfor",driver="filesystem"} 4.3423e-05
registry_storage_action_seconds_count{action="urlfor",driver="filesystem"} 4
# HELP registry_storage_cache_total The number of cache request received
# TYPE registry_storage_cache_total counter
registry_storage_cache_total{type="miss"} 36
registry_storage_cache_total{type="request"} 36

@@ -317,6 +328,11 @@ func alive(path string, handler http.Handler) http.Handler {

handler.ServeHTTP(w, r)
})

httpMetrics := prometheus.RootHTTPNamespace.NewDefaultHttpMetrics("root")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this counter is necessary: it will count for all requests. This can just be rolled up from the other counters.

return base.setDriverName(base.StorageDriver.PutContent(ctx, path, content))
start := time.Now()
err := base.setDriverName(base.StorageDriver.PutContent(ctx, path, content))
storageAction.WithValues(base.Name(), "putcontent").UpdateSince(start)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should use camelcase: PutContent.

@stevvooe
Copy link
Collaborator

stevvooe commented Feb 9, 2018

LGTM

at the first iteration, only the following metrics are collected:

  - HTTP metrics of each API endpoint
  - cache counter for request/hit/miss
  - histogram of storage actions, including:
    GetContent, PutContent, Stat, List, Move, and Delete

Signed-off-by: tifayuki <[email protected]>
@stevvooe stevvooe merged commit 6664ec7 into distribution:master Feb 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants