MCPcopy
hub / github.com/grafana/dskit / trackError

Method trackError

cache/memcached_client.go:642–674  ·  view source on GitHub ↗
(op string, err error, msg ...interface{})

Source from the content-addressed store, hash-verified

640}
641
642func (c *MemcachedClient) trackError(op string, err error, msg ...interface{}) {
643 severity := level.DebugValue()
644
645 var connErr *memcache.ConnectTimeoutError
646 var netErr net.Error
647 switch {
648 case errors.As(err, &connErr):
649 c.metrics.failures.WithLabelValues(op, reasonConnectTimeout).Inc()
650 case errors.As(err, &netErr):
651 if netErr.Timeout() {
652 c.metrics.failures.WithLabelValues(op, reasonTimeout).Inc()
653 } else {
654 c.metrics.failures.WithLabelValues(op, reasonNetworkError).Inc()
655 }
656 case errors.Is(err, ErrNotStored):
657 c.metrics.failures.WithLabelValues(op, reasonNotStored).Inc()
658 case errors.Is(err, ErrInvalidTTL):
659 c.metrics.failures.WithLabelValues(op, reasonInvalidTTL).Inc()
660 case errors.Is(err, memcache.ErrMalformedKey):
661 c.metrics.failures.WithLabelValues(op, reasonMalformedKey).Inc()
662 case errors.Is(err, memcache.ErrServerError):
663 c.metrics.failures.WithLabelValues(op, reasonServerError).Inc()
664 case errors.Is(err, context.Canceled):
665 c.metrics.failures.WithLabelValues(op, reasonCanceled).Inc()
666 default:
667 c.metrics.failures.WithLabelValues(op, reasonOther).Inc()
668 severity = level.WarnValue() // Log unexpected kinds of errors with higher severity so they're easier to diagnose.
669 }
670
671 logger := log.WithPrefix(c.logger, level.Key(), severity)
672 logger = log.WithSuffix(logger, "err", err)
673 logger.Log(msg...)
674}
675
676func (c *MemcachedClient) getMultiBatched(ctx context.Context, keys []string, opts ...memcache.Option) ([]map[string]*memcache.Item, error) {
677 // Do not batch if the input keys are less than the max batch size.

Callers 6

DeleteMethod · 0.95
incrDecrMethod · 0.95
TouchMethod · 0.95
FlushAllMethod · 0.95
storeOperationMethod · 0.95
getMultiSingleMethod · 0.95

Calls 2

IsMethod · 0.80
LogMethod · 0.45

Tested by

no test coverage detected