Add cache usage, total capacity to prometheus metrics (#11026)

master
Poorna Krishnamoorthy 4 years ago committed by GitHub
parent 934bed47fa
commit f3beb1236a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      cmd/disk-cache-stats.go
  2. 4
      cmd/disk-cache.go
  3. 20
      cmd/metrics.go
  4. 2
      docs/metrics/prometheus/README.md

@ -23,6 +23,10 @@ import (
// CacheDiskStats represents cache disk statistics // CacheDiskStats represents cache disk statistics
// such as current disk usage and available. // such as current disk usage and available.
type CacheDiskStats struct { type CacheDiskStats struct {
// used cache size
UsageSize uint64
// total cache disk capacity
TotalCapacity uint64
// indicates if usage is high or low, if high value is '1', if low its '0' // indicates if usage is high or low, if high value is '1', if low its '0'
UsageState int32 UsageState int32
// indicates the current usage percentage of this cache disk // indicates the current usage percentage of this cache disk

@ -781,6 +781,10 @@ func newServerCacheObjects(ctx context.Context, config cache.Config) (CacheObjec
dcache := c.cache[i] dcache := c.cache[i]
cacheDiskStats[i] = CacheDiskStats{} cacheDiskStats[i] = CacheDiskStats{}
if dcache != nil { if dcache != nil {
info, err := getDiskInfo(dcache.dir)
logger.LogIf(ctx, err)
cacheDiskStats[i].UsageSize = info.Used
cacheDiskStats[i].TotalCapacity = info.Total
cacheDiskStats[i].Dir = dcache.stats.Dir cacheDiskStats[i].Dir = dcache.stats.Dir
atomic.StoreInt32(&cacheDiskStats[i].UsageState, atomic.LoadInt32(&dcache.stats.UsageState)) atomic.StoreInt32(&cacheDiskStats[i].UsageState, atomic.LoadInt32(&dcache.stats.UsageState))
atomic.StoreUint64(&cacheDiskStats[i].UsagePercent, atomic.LoadUint64(&dcache.stats.UsagePercent)) atomic.StoreUint64(&cacheDiskStats[i].UsagePercent, atomic.LoadUint64(&dcache.stats.UsagePercent))

@ -280,6 +280,26 @@ func cacheMetricsPrometheus(ch chan<- prometheus.Metric) {
float64(cdStats.UsageState), float64(cdStats.UsageState),
cdStats.Dir, cdStats.Dir,
) )
ch <- prometheus.MustNewConstMetric(
prometheus.NewDesc(
prometheus.BuildFQName("cache", "usage", "size"),
"Indicates current cache usage in bytes",
[]string{"disk"}, nil),
prometheus.GaugeValue,
float64(cdStats.UsageSize),
cdStats.Dir,
)
ch <- prometheus.MustNewConstMetric(
prometheus.NewDesc(
prometheus.BuildFQName("cache", "total", "size"),
"Indicates total size of cache disk",
[]string{"disk"}, nil),
prometheus.GaugeValue,
float64(cdStats.TotalCapacity),
cdStats.Dir,
)
} }
} }

@ -198,6 +198,8 @@ MinIO Gateway instances enabled with Disk-Caching expose caching related metrics
| `cache_data_served` | Total number of bytes served from cache | | `cache_data_served` | Total number of bytes served from cache |
#### Per disk cache metrics #### Per disk cache metrics
| `cache_usage_size` | Total cache usage in bytes |
| `cache_total_capacity` | Total size of cache disk |
| `cache_usage_percent` | Total percentage cache usage | | `cache_usage_percent` | Total percentage cache usage |
| `cache_usage_state` | Indicates cache usage is high or low, relative to current cache 'quota' settings | | `cache_usage_state` | Indicates cache usage is high or low, relative to current cache 'quota' settings |

Loading…
Cancel
Save