Ctrl K
ComunidadGuías…

constructor/memcached.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package constructor

import (
	"github.com/coroot/coroot/model"
	"github.com/coroot/coroot/timeseries"
)

func memcached(instance *model.Instance, queryName string, m *model.MetricValues) {
	if instance == nil {
		return
	}
	if instance.Memcached == nil {
		instance.Memcached = model.NewMemcached()
	}
	switch queryName {
	case "memcached_up":
		instance.Memcached.Up = merge(instance.Memcached.Up, m.Values, timeseries.Any)
	case "memcached_version":
		instance.Memcached.Version.Update(m.Values, m.Labels["version"])
	case "memcached_limit_bytes":
		instance.Memcached.LimitBytes = merge(instance.Memcached.LimitBytes, m.Values, timeseries.Any)
	case "memcached_items_evicted_total":
		instance.Memcached.EvictedItems = merge(instance.Memcached.EvictedItems, m.Values, timeseries.Any)
	case "memcached_commands_total":
		cmd := m.Labels["command"]
		instance.Memcached.Calls[cmd] = merge(instance.Memcached.Calls[cmd], m.Values, timeseries.NanSum)
		switch m.Labels["status"] {
		case "miss":
			instance.Memcached.Misses = merge(instance.Memcached.Misses, m.Values, timeseries.NanSum)
		case "hit":
			instance.Memcached.Hits = merge(instance.Memcached.Hits, m.Values, timeseries.NanSum)
		}
	}
}