X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6d868844fae9f52455b2e1954382bf9e4bb66c22..6fa7f9fbcf20aa866eed0618bd09e1ce2e109baa:/services/keep-web/metrics.go diff --git a/services/keep-web/metrics.go b/services/keep-web/metrics.go index fe27ba5ea6..b989988dd5 100644 --- a/services/keep-web/metrics.go +++ b/services/keep-web/metrics.go @@ -32,8 +32,8 @@ func newMetrics(reg *prometheus.Registry) *metrics { mDownloadBackendSpeed: prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: "arvados", Subsystem: "keepweb", - Name: "download_limiting_backend_speed", - Help: "Limiting backend speed (bytes per second) when serving file downloads, bucketed by transfer size range", + Name: "download_apparent_backend_speed", + Help: "Apparent download speed from the backend (bytes per second) when serving file downloads, bucketed by transfer size range (see https://dev.arvados.org/projects/arvados/wiki/WebDAV_performance_metrics for explanation)", Buckets: []float64{10_000, 1_000_000, 10_000_000, 100_000_000, 1_000_000_000, math.Inf(+1)}, }, []string{"size_range"}), mUploadSpeed: prometheus.NewHistogramVec(prometheus.HistogramOpts{ @@ -93,11 +93,11 @@ func (m *metrics) track(handler http.Handler, w http.ResponseWriter, r *http.Req // transfer). func sizeRange(size int64) string { switch { - case size <= 1_000_000: + case size < 1_000_000: return "0" - case size <= 10_000_000: + case size < 10_000_000: return "1M" - case size <= 100_000_000: + case size < 100_000_000: return "10M" default: return "100M" @@ -117,6 +117,7 @@ type downloadTracker struct { func newDownloadTracker(w http.ResponseWriter) *downloadTracker { return &downloadTracker{ResponseWriter: w, t0: time.Now()} } + func (dt *downloadTracker) Write(p []byte) (int, error) { if dt.lastByte.IsZero() { dt.backendWait += time.Since(dt.t0)