| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package util
- import (
- "hash/fnv"
- "strings"
- )
- var (
- KB = 1024
- MB = 1024 * KB
- GB = 1024 * MB
- )
- func Hash(s []string) uint64 {
- h := fnv.New64a()
- for _, v := range s {
- h.Write([]byte(v))
- }
- return h.Sum64()
- }
- func MetricNameFor(metric string, labels []string, values []string) string {
- var sb strings.Builder
- sb.WriteString(metric)
- sb.WriteRune('{')
- for i := 0; i < len(labels); i++ {
- sb.WriteRune('"')
- sb.WriteString(labels[i])
- sb.WriteString(`"="`)
- sb.WriteString(values[i])
- sb.WriteRune('"')
- if i < len(labels)-1 {
- sb.WriteRune(',')
- }
- }
- sb.WriteRune('}')
- return sb.String()
- }
- func ToMap(labels []string, values []string) map[string]string {
- min := len(labels)
- if len(values) < min {
- min = len(values)
- }
- m := make(map[string]string, min)
- for i := 0; i < min; i++ {
- m[labels[i]] = values[i]
- }
- return m
- }
- func Ptr[T any](v T) *T {
- return &v
- }
|