Skip to content
This repository has been archived by the owner on Oct 17, 2018. It is now read-only.

Commit

Permalink
Export the transformation functions
Browse files Browse the repository at this point in the history
  • Loading branch information
xichen2020 committed Jun 14, 2018
1 parent b21bc67 commit e36fd11
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 15 deletions.
6 changes: 3 additions & 3 deletions aggregation/type_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,11 @@ func (t *transformFnType) UnmarshalYAML(unmarshal func(interface{}) error) error
func (t transformFnType) TransformFn() (TypeStringTransformFn, error) {
switch t {
case noopTransformType:
return noopTransformFn, nil
return NoOpTransform, nil
case emptyTransformType:
return emptyTransformFn, nil
return EmptyTransform, nil
case suffixTransformType:
return suffixTransformFn, nil
return SuffixTransform, nil
default:
return nil, fmt.Errorf("invalid type string transform function type: %s", string(t))
}
Expand Down
18 changes: 12 additions & 6 deletions aggregation/types_options.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,9 +168,9 @@ func NewTypesOptions() TypesOptions {
defaultGaugeAggregationTypes: defaultDefaultGaugeAggregationTypes,
defaultTimerAggregationTypes: defaultDefaultTimerAggregationTypes,
quantileTypeStringFn: defaultQuantileTypeStringFn,
counterTypeStringTransformFn: noopTransformFn,
timerTypeStringTransformFn: noopTransformFn,
gaugeTypeStringTransformFn: noopTransformFn,
counterTypeStringTransformFn: NoOpTransform,
timerTypeStringTransformFn: NoOpTransform,
gaugeTypeStringTransformFn: NoOpTransform,
}
o.initPools()
o.computeAllDerived()
Expand Down Expand Up @@ -364,6 +364,12 @@ func defaultQuantileTypeStringFn(quantile float64) []byte {
return []byte("p" + str)
}

func noopTransformFn(b []byte) []byte { return b }
func emptyTransformFn(b []byte) []byte { return nil }
func suffixTransformFn(b []byte) []byte { return append([]byte("."), b...) }
// NoOpTransform returns the input byte slice as is.
func NoOpTransform(b []byte) []byte { return b }

// EmptyTransform transforms the input byte slice to an empty byte slice.
func EmptyTransform(b []byte) []byte { return nil }

// SuffixTransform transforms the input byte slice to a suffix by prepending
// a dot at the beginning.
func SuffixTransform(b []byte) []byte { return append([]byte("."), b...) }
12 changes: 6 additions & 6 deletions aggregation/types_options_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ func TestOptionsSetTimerQuantileTypeStringFn(t *testing.T) {
}

func TestOptionSetCounterTypeStringTranformFn(t *testing.T) {
o := NewTypesOptions().SetCounterTypeStringTransformFn(emptyTransformFn)
o := NewTypesOptions().SetCounterTypeStringTransformFn(EmptyTransform)
require.Equal(t, []byte(nil), o.TypeStringForCounter(Last))
require.Equal(t, []byte(nil), o.TypeStringForCounter(Min))
require.Equal(t, []byte(nil), o.TypeStringForCounter(Max))
Expand All @@ -92,7 +92,7 @@ func TestOptionSetCounterTypeStringTranformFn(t *testing.T) {
}

func TestOptionSetTimerTypeStringTranformFn(t *testing.T) {
o := NewTypesOptions().SetTimerTypeStringTransformFn(suffixTransformFn)
o := NewTypesOptions().SetTimerTypeStringTransformFn(SuffixTransform)
require.Equal(t, []byte(".last"), o.TypeStringForTimer(Last))
require.Equal(t, []byte(".lower"), o.TypeStringForTimer(Min))
require.Equal(t, []byte(".upper"), o.TypeStringForTimer(Max))
Expand All @@ -108,7 +108,7 @@ func TestOptionSetTimerTypeStringTranformFn(t *testing.T) {
}

func TestOptionSetGaugeTypeStringTranformFn(t *testing.T) {
o := NewTypesOptions().SetGaugeTypeStringTransformFn(emptyTransformFn)
o := NewTypesOptions().SetGaugeTypeStringTransformFn(EmptyTransform)
require.Equal(t, []byte(nil), o.TypeStringForGauge(Last))
require.Equal(t, []byte(nil), o.TypeStringForGauge(Min))
require.Equal(t, []byte(nil), o.TypeStringForGauge(Max))
Expand All @@ -122,9 +122,9 @@ func TestOptionSetGaugeTypeStringTranformFn(t *testing.T) {

func TestOptionSetAllTypeStringTranformFns(t *testing.T) {
o := NewTypesOptions().
SetCounterTypeStringTransformFn(emptyTransformFn).
SetTimerTypeStringTransformFn(suffixTransformFn).
SetGaugeTypeStringTransformFn(emptyTransformFn)
SetCounterTypeStringTransformFn(EmptyTransform).
SetTimerTypeStringTransformFn(SuffixTransform).
SetGaugeTypeStringTransformFn(EmptyTransform)

require.Equal(t, []byte(nil), o.TypeStringForCounter(Last))
require.Equal(t, []byte(nil), o.TypeStringForCounter(Min))
Expand Down

0 comments on commit e36fd11

Please sign in to comment.