@@ -33,32 +33,30 @@ func Scale[K any](value ottl.Getter[K], multiplier float64) (ottl.ExprFunc[K], e
33
33
if err != nil {
34
34
return nil , err
35
35
}
36
- if floatVal , ok := get .( float64 ); ok {
37
- return floatVal * multiplier , nil
38
- }
39
- if intVal , ok := get .(int64 ); ok {
40
- return multiplier * ( float64 ( intVal )), nil
41
- }
42
- if datapoints , ok := get .( pmetric.NumberDataPointSlice ); ok {
36
+
37
+ switch get .( type ) {
38
+ case float64 :
39
+ return get .(float64 ) * multiplier , nil
40
+ case int64 :
41
+ return float64 ( get .( int64 )) * multiplier , nil
42
+ case pmetric.NumberDataPointSlice :
43
43
scaledMetric := pmetric .NewNumberDataPointSlice ()
44
- datapoints .CopyTo (scaledMetric )
44
+ get .(pmetric. NumberDataPointSlice ) .CopyTo (scaledMetric )
45
45
scaleMetric (scaledMetric , multiplier )
46
46
return scaledMetric , nil
47
- }
48
- if datapoints , ok := get .(pmetric.HistogramDataPointSlice ); ok {
47
+ case pmetric.HistogramDataPointSlice :
49
48
scaledMetric := pmetric .NewHistogramDataPointSlice ()
50
- datapoints .CopyTo (scaledMetric )
49
+ get .(pmetric. HistogramDataPointSlice ) .CopyTo (scaledMetric )
51
50
scaleHistogram (scaledMetric , multiplier )
52
51
return scaledMetric , nil
53
- }
54
- if datapoints , ok := get .(pmetric.ExponentialHistogramDataPointSlice ); ok {
52
+ case pmetric.ExponentialHistogramDataPointSlice :
55
53
scaledMetric := pmetric .NewExponentialHistogramDataPointSlice ()
56
- datapoints .CopyTo (scaledMetric )
54
+ get .(pmetric. ExponentialHistogramDataPointSlice ) .CopyTo (scaledMetric )
57
55
scaleExponentialHistogram (scaledMetric , multiplier )
58
56
return scaledMetric , nil
57
+ default :
58
+ return nil , errors .New ("unsupported data type" )
59
59
}
60
-
61
- return nil , errors .New ("unsupported data type" )
62
60
}, nil
63
61
}
64
62
0 commit comments