mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 00:25:46 -06:00
55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
package cloudmonitoring
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/grafana/grafana-plugin-sdk-go/data"
|
|
"github.com/grafana/grafana/pkg/tsdb/intervalv2"
|
|
)
|
|
|
|
func reverse(s string) string {
|
|
chars := []rune(s)
|
|
for i, j := 0, len(chars)-1; i < j; i, j = i+1, j-1 {
|
|
chars[i], chars[j] = chars[j], chars[i]
|
|
}
|
|
return string(chars)
|
|
}
|
|
|
|
func toSnakeCase(str string) string {
|
|
return strings.ToLower(matchAllCap.ReplaceAllString(str, "${1}_${2}"))
|
|
}
|
|
|
|
func containsLabel(labels []string, newLabel string) bool {
|
|
for _, val := range labels {
|
|
if val == newLabel {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func addInterval(period string, field *data.Field) error {
|
|
period = strings.TrimPrefix(period, "+")
|
|
p, err := intervalv2.ParseIntervalStringToTimeDuration(period)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if err == nil {
|
|
if field.Config != nil {
|
|
field.Config.Interval = float64(p.Milliseconds())
|
|
} else {
|
|
field.SetConfig(&data.FieldConfig{
|
|
Interval: float64(p.Milliseconds()),
|
|
})
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func toString(v interface{}) string {
|
|
if v == nil {
|
|
return ""
|
|
}
|
|
return v.(string)
|
|
}
|