Skip to content

Commit

Permalink
delete redundant snakecase (#498)
Browse files Browse the repository at this point in the history
  • Loading branch information
kongfei605 committed May 8, 2023
1 parent 5a74765 commit 2f2cb2a
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 55 deletions.
5 changes: 3 additions & 2 deletions inputs/aliyun/cloud.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
internalTypes "flashcat.cloud/categraf/inputs/aliyun/internal/types"
"flashcat.cloud/categraf/pkg/cache"
"flashcat.cloud/categraf/pkg/limiter"
"flashcat.cloud/categraf/pkg/stringx"
"flashcat.cloud/categraf/types"
)

Expand Down Expand Up @@ -312,7 +313,7 @@ func (ins *Instance) sendMetrics(metric internalTypes.Metric, wg *sync.WaitGroup
for _, point := range points {
if point.Value != nil {
tags := ins.makeLabels(point)
mName := fmt.Sprintf("%s_%s", manager.SnakeCase(point.Namespace), manager.SnakeCase(point.MetricName))
mName := fmt.Sprintf("%s_%s", stringx.SnakeCase(point.Namespace), stringx.SnakeCase(point.MetricName))
slist.PushFront(types.NewSample(inputName, mName, *point.Value, tags, map[string]string{"namespace": metric.Namespace, "metric_name": metric.MetricName}).SetTime(point.GetMetricTime()))
}
}
Expand All @@ -331,7 +332,7 @@ func (ins *Instance) makeLabels(point internalTypes.Point, labels ...map[string]
}
addLabel := func(instance interface{}) {
if meta, ok := instance.(*cms20190101.DescribeMonitoringAgentHostsResponseBodyHostsHost); ok {
result["ident"] = manager.SnakeCase(*meta.HostName)
result["ident"] = stringx.SnakeCase(*meta.HostName)
}
}
if instance, ok := ins.metaCache.Get(ins.client.EcsKey(point.InstanceID)); ok {
Expand Down
9 changes: 5 additions & 4 deletions inputs/aliyun/internal/manager/cms.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/alibabacloud-go/tea/tea"

"flashcat.cloud/categraf/inputs/aliyun/internal/types"
"flashcat.cloud/categraf/pkg/stringx"
)

const (
Expand Down Expand Up @@ -92,23 +93,23 @@ func (m *Manager) dataPointConverter(metricName, ns, datapoints string) ([]types
r.Timestamp = point.Timestamp

if point.Val != nil {
r.MetricName = fmt.Sprintf("%s_%s", SnakeCase(metricName), "value")
r.MetricName = fmt.Sprintf("%s_%s", stringx.SnakeCase(metricName), "value")
r.Value = tea.Float64(*point.Val)
result = append(result, r)
}
if point.Max != nil {
r.MetricName = fmt.Sprintf("%s_%s", SnakeCase(metricName), "maximum")
r.MetricName = fmt.Sprintf("%s_%s", stringx.SnakeCase(metricName), "maximum")
r.Value = tea.Float64(*point.Max)
result = append(result, r)
}
if point.Min != nil {
r.MetricName = fmt.Sprintf("%s_%s", SnakeCase(metricName), "minimum")
r.MetricName = fmt.Sprintf("%s_%s", stringx.SnakeCase(metricName), "minimum")
r.Value = tea.Float64(*point.Min)
result = append(result, r)
}

if point.Avg != nil {
r.MetricName = fmt.Sprintf("%s_%s", SnakeCase(metricName), "average")
r.MetricName = fmt.Sprintf("%s_%s", stringx.SnakeCase(metricName), "average")
r.Value = tea.Float64(*point.Avg)
result = append(result, r)
}
Expand Down
22 changes: 0 additions & 22 deletions inputs/aliyun/internal/manager/manager.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package manager

import (
"unicode"

cms20190101 "github.com/alibabacloud-go/cms-20190101/v8/client"
cms2021101 "github.com/alibabacloud-go/cms-export-20211101/v2/client"
)
Expand Down Expand Up @@ -47,23 +45,3 @@ func New(opts ...Option) (*Manager, error) {
}
return m, nil
}

func SnakeCase(in string) string {
runes := []rune(in)
length := len(runes)

var out []rune
for i := 0; i < length; i++ {
if runes[i] == '.' {
continue
}
if i > 0 && unicode.IsUpper(runes[i]) && ((i+1 < length && unicode.IsLower(runes[i+1])) || unicode.IsLower(runes[i-1])) {
if runes[i-1] != '_' {
out = append(out, '_')
}
}
out = append(out, unicode.ToLower(runes[i]))
}

return string(out)
}
19 changes: 2 additions & 17 deletions inputs/cloudwatch/cloudwatch.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"strings"
"sync"
"time"
"unicode"

"github.com/aws/aws-sdk-go-v2/aws"
cwClient "github.com/aws/aws-sdk-go-v2/service/cloudwatch"
Expand All @@ -24,6 +23,7 @@ import (
"flashcat.cloud/categraf/pkg/filter"
"flashcat.cloud/categraf/pkg/limiter"
internalProxy "flashcat.cloud/categraf/pkg/proxy"
"flashcat.cloud/categraf/pkg/stringx"
internalTypes "flashcat.cloud/categraf/types"
internalMetric "flashcat.cloud/categraf/types/metric"
)
Expand Down Expand Up @@ -567,7 +567,7 @@ func sanitizeMeasurement(namespace string) string {
}

func snakeCase(s string) string {
s = SnakeCase(s)
s = stringx.SnakeCase(s)
s = strings.ReplaceAll(s, " ", "_")
s = strings.ReplaceAll(s, "__", "_")
return s
Expand Down Expand Up @@ -626,18 +626,3 @@ func isSelected(name string, metric types.Metric, dimensions []*Dimension) bool
}
return true
}

func SnakeCase(in string) string {
runes := []rune(in)
length := len(runes)

var out []rune
for i := 0; i < length; i++ {
if i > 0 && unicode.IsUpper(runes[i]) && ((i+1 < length && unicode.IsLower(runes[i+1])) || unicode.IsLower(runes[i-1])) {
out = append(out, '_')
}
out = append(out, unicode.ToLower(runes[i]))
}

return string(out)
}
4 changes: 3 additions & 1 deletion inputs/nvidia_smi/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"fmt"
"log"
"strings"

"flashcat.cloud/categraf/pkg/stringx"
)

func buildQFieldToMetricInfoMap(qFieldtoRFieldMap map[qField]rField) map[qField]MetricInfo {
Expand Down Expand Up @@ -35,7 +37,7 @@ func buildMetricInfo(rField rField) MetricInfo {
multiplier = 0.01
}

metricName := toSnakeCase(strings.ReplaceAll(suffixTransformed, ".", "_"))
metricName := stringx.SnakeCase(strings.ReplaceAll(suffixTransformed, ".", "_"))

return MetricInfo{
metricName: metricName,
Expand Down
10 changes: 1 addition & 9 deletions inputs/nvidia_smi/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,9 @@ const (
)

var (
matchFirstCap = regexp.MustCompile("(.)([A-Z][a-z]+)")
matchAllCap = regexp.MustCompile("([a-z0-9])([A-Z])")
matchAllCap = regexp.MustCompile("([a-z0-9])([A-Z])")
)

func toSnakeCase(str string) string {
snake := matchFirstCap.ReplaceAllString(str, "${1}_${2}")
snake = matchAllCap.ReplaceAllString(snake, "${1}_${2}")

return strings.ToLower(snake)
}

func hexToDecimal(hex string) (float64, error) {
s := hex
s = strings.ReplaceAll(s, "0x", "")
Expand Down
25 changes: 25 additions & 0 deletions pkg/stringx/strx.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package stringx

import (
"unicode"
)

func SnakeCase(in string) string {
runes := []rune(in)
length := len(runes)

var out []rune
for i := 0; i < length; i++ {
if runes[i] == '.' {
continue
}
if i > 0 && unicode.IsUpper(runes[i]) && ((i+1 < length && unicode.IsLower(runes[i+1])) || unicode.IsLower(runes[i-1])) {
if runes[i-1] != '_' {
out = append(out, '_')
}
}
out = append(out, unicode.ToLower(runes[i]))
}

return string(out)
}

0 comments on commit 2f2cb2a

Please sign in to comment.