Ctrl K
ComunidadGuías…

constructor/redis.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 redis(instance *model.Instance, queryName string, m *model.MetricValues) {
	if instance == nil {
		return
	}
	if instance.Redis == nil {
		instance.Redis = model.NewRedis()
	}
	switch queryName {
	case "redis_up":
		instance.Redis.Up = merge(instance.Redis.Up, m.Values, timeseries.Any)
	case "redis_scrape_error":
		instance.Redis.Error.Update(m.Values, m.Labels["err"])
	case "redis_instance_info":
		instance.Redis.Version.Update(m.Values, m.Labels["redis_version"])
		role := m.Labels["role"]
		switch role {
		case "master":
			role = "primary"
		case "slave":
			role = "replica"
		}
		instance.Redis.Role.Update(m.Values, role)
		instance.UpdateClusterRole(role, m.Values)
	case "redis_commands_duration_seconds_total":
		instance.Redis.CallsTime[m.Labels["cmd"]] = merge(instance.Redis.CallsTime[m.Labels["cmd"]], m.Values, timeseries.Any)
	case "redis_commands_total":
		instance.Redis.Calls[m.Labels["cmd"]] = merge(instance.Redis.Calls[m.Labels["cmd"]], m.Values, timeseries.Any)
	case "redis_db_keys":
		instance.Redis.Keys[m.Labels["db"]] = merge(instance.Redis.Keys[m.Labels["db"]], m.Values, timeseries.Any)
	case "redis_db_keys_expiring":
		instance.Redis.KeysExpiring[m.Labels["db"]] = merge(instance.Redis.KeysExpiring[m.Labels["db"]], m.Values, timeseries.Any)
	}
}