func (r *Reporter) Count(name string, value int64, tags metrics.Tags) (err error) {
	defer func() {
		if r := recover(); r != nil {
			err = ErrPrometheusPanic
		}
	}()
	counter := r.metrics.getCounter(r.stripUnsupportedCharacters(name), r.listTagKeys(tags))
	metric, err := counter.GetMetricWith(r.convertTags(tags))
	if err != nil {
		return err
	}
	metric.Add(float64(value))
	return err
}
Count is a counter with key/value tags:
New values are added to any previous one (eg "number of hits")
package prometheus
import (
	"errors"
	"time"
	"github.com/micro/micro/v3/service/metrics"
)
var ErrPrometheusPanic = errors.New("The Prometheus client panicked. Did you do something like change the tag cardinality or the type of a metric?")