Files
kopia/internal/cache/cache_metrics.go
Jarek Kowalski 4e705726fe Implemented caching for server connections (#845)
* cache: refactored reusable portion of cache into separate package

* repo: plumbed through caching for remote repository clients

* repo: plumb through cache in the unit tests

* cache: ensure we only allow absolute cache paths, fixed cache path resolution for remote repositories
2021-03-01 06:15:39 -08:00

74 lines
1.8 KiB
Go

package cache
import (
"go.opencensus.io/stats"
"go.opencensus.io/stats/view"
)
// cache metrics.
var (
MetricHitCount = stats.Int64(
"kopia/content/cache/hit_count",
"Number of time content was retrieved from the cache",
stats.UnitDimensionless,
)
MetricHitBytes = stats.Int64(
"kopia/content/cache/hit_bytes",
"Number of bytes retrieved from the cache",
stats.UnitBytes,
)
MetricMissCount = stats.Int64(
"kopia/content/cache/miss_count",
"Number of time content was not found in the cache and fetched from the storage",
stats.UnitDimensionless,
)
MetricMalformedCacheDataCount = stats.Int64(
"kopia/content/cache/malformed",
"Number of times malformed content was read from the cache",
stats.UnitDimensionless,
)
MetricMissBytes = stats.Int64(
"kopia/content/cache/missed_bytes",
"Number of bytes retrieved from the underlying storage",
stats.UnitBytes,
)
MetricMissErrors = stats.Int64(
"kopia/content/cache/miss_error_count",
"Number of time content could not be found in the underlying storage",
stats.UnitDimensionless,
)
MetricStoreErrors = stats.Int64(
"kopia/content/cache/store_error_count",
"Number of time content could not be saved in the cache",
stats.UnitDimensionless,
)
)
func simpleAggregation(m stats.Measure, agg *view.Aggregation) *view.View {
return &view.View{
Name: m.Name(),
Aggregation: agg,
Description: m.Description(),
Measure: m,
}
}
func init() {
if err := view.Register(
simpleAggregation(MetricHitCount, view.Count()),
simpleAggregation(MetricHitBytes, view.Sum()),
simpleAggregation(MetricMissCount, view.Count()),
simpleAggregation(MetricMissBytes, view.Sum()),
simpleAggregation(MetricMissErrors, view.Count()),
simpleAggregation(MetricStoreErrors, view.Count()),
); err != nil {
panic("unable to register opencensus views: " + err.Error())
}
}