mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-02-11 13:38:37 +02:00
Eliminate Uint64NumberKind from API (#864)
fixes #851 This includes all of the associated methods, such as AsUint64, AsUint64Atomic, AsUint64Ptr, CoerceToUint64, SetUint64 SetUint64Atomic, SwapUint64, SwapUint64Atomic, AddUint64, AddUint64Atomic, CompamreAndSwapUint64, CompareUint64 Only significant change as a result was converting the histogram aggregator's `count` state field into an int64 from a `metric.Number`. Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
This commit is contained in:
parent
665c0de552
commit
a8faf8cacc
@ -32,9 +32,6 @@ const (
|
|||||||
Int64NumberKind NumberKind = iota
|
Int64NumberKind NumberKind = iota
|
||||||
// Float64NumberKind means that the Number stores float64.
|
// Float64NumberKind means that the Number stores float64.
|
||||||
Float64NumberKind
|
Float64NumberKind
|
||||||
// Uint64NumberKind means that the Number stores uint64.
|
|
||||||
// TODO: This can be removed, it's not used.
|
|
||||||
Uint64NumberKind
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Zero returns a zero value for a given NumberKind
|
// Zero returns a zero value for a given NumberKind
|
||||||
@ -44,8 +41,6 @@ func (k NumberKind) Zero() Number {
|
|||||||
return NewInt64Number(0)
|
return NewInt64Number(0)
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
return NewFloat64Number(0.)
|
return NewFloat64Number(0.)
|
||||||
case Uint64NumberKind:
|
|
||||||
return NewUint64Number(0)
|
|
||||||
default:
|
default:
|
||||||
return Number(0)
|
return Number(0)
|
||||||
}
|
}
|
||||||
@ -59,8 +54,6 @@ func (k NumberKind) Minimum() Number {
|
|||||||
return NewInt64Number(math.MinInt64)
|
return NewInt64Number(math.MinInt64)
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
return NewFloat64Number(-1. * math.MaxFloat64)
|
return NewFloat64Number(-1. * math.MaxFloat64)
|
||||||
case Uint64NumberKind:
|
|
||||||
return NewUint64Number(0)
|
|
||||||
default:
|
default:
|
||||||
return Number(0)
|
return Number(0)
|
||||||
}
|
}
|
||||||
@ -74,8 +67,6 @@ func (k NumberKind) Maximum() Number {
|
|||||||
return NewInt64Number(math.MaxInt64)
|
return NewInt64Number(math.MaxInt64)
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
return NewFloat64Number(math.MaxFloat64)
|
return NewFloat64Number(math.MaxFloat64)
|
||||||
case Uint64NumberKind:
|
|
||||||
return NewUint64Number(math.MaxUint64)
|
|
||||||
default:
|
default:
|
||||||
return Number(0)
|
return Number(0)
|
||||||
}
|
}
|
||||||
@ -103,11 +94,6 @@ func NewFloat64Number(f float64) Number {
|
|||||||
return NewNumberFromRaw(internal.Float64ToRaw(f))
|
return NewNumberFromRaw(internal.Float64ToRaw(f))
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewInt64Number creates an integral Number.
|
|
||||||
func NewUint64Number(u uint64) Number {
|
|
||||||
return NewNumberFromRaw(internal.Uint64ToRaw(u))
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewNumberSignChange returns a number with the same magnitude and
|
// NewNumberSignChange returns a number with the same magnitude and
|
||||||
// the opposite sign. `kind` must describe the kind of number in `nn`.
|
// the opposite sign. `kind` must describe the kind of number in `nn`.
|
||||||
//
|
//
|
||||||
@ -147,12 +133,6 @@ func (n *Number) AsFloat64() float64 {
|
|||||||
return internal.RawToFloat64(n.AsRaw())
|
return internal.RawToFloat64(n.AsRaw())
|
||||||
}
|
}
|
||||||
|
|
||||||
// AsUint64 assumes that the value contains an uint64 and returns it
|
|
||||||
// as such.
|
|
||||||
func (n *Number) AsUint64() uint64 {
|
|
||||||
return internal.RawToUint64(n.AsRaw())
|
|
||||||
}
|
|
||||||
|
|
||||||
// - as x atomic
|
// - as x atomic
|
||||||
|
|
||||||
// AsNumberAtomic gets the Number atomically.
|
// AsNumberAtomic gets the Number atomically.
|
||||||
@ -178,12 +158,6 @@ func (n *Number) AsFloat64Atomic() float64 {
|
|||||||
return internal.RawToFloat64(n.AsRawAtomic())
|
return internal.RawToFloat64(n.AsRawAtomic())
|
||||||
}
|
}
|
||||||
|
|
||||||
// AsUint64Atomic assumes that the number contains a uint64 and
|
|
||||||
// returns it as such atomically.
|
|
||||||
func (n *Number) AsUint64Atomic() uint64 {
|
|
||||||
return atomic.LoadUint64(n.AsUint64Ptr())
|
|
||||||
}
|
|
||||||
|
|
||||||
// - as x ptr
|
// - as x ptr
|
||||||
|
|
||||||
// AsRawPtr gets the pointer to the raw, uninterpreted raw
|
// AsRawPtr gets the pointer to the raw, uninterpreted raw
|
||||||
@ -204,12 +178,6 @@ func (n *Number) AsFloat64Ptr() *float64 {
|
|||||||
return internal.RawPtrToFloat64Ptr(n.AsRawPtr())
|
return internal.RawPtrToFloat64Ptr(n.AsRawPtr())
|
||||||
}
|
}
|
||||||
|
|
||||||
// AsUint64Ptr assumes that the number contains a uint64 and returns a
|
|
||||||
// pointer to it.
|
|
||||||
func (n *Number) AsUint64Ptr() *uint64 {
|
|
||||||
return internal.RawPtrToUint64Ptr(n.AsRawPtr())
|
|
||||||
}
|
|
||||||
|
|
||||||
// - coerce
|
// - coerce
|
||||||
|
|
||||||
// CoerceToInt64 casts the number to int64. May result in
|
// CoerceToInt64 casts the number to int64. May result in
|
||||||
@ -220,8 +188,6 @@ func (n *Number) CoerceToInt64(kind NumberKind) int64 {
|
|||||||
return n.AsInt64()
|
return n.AsInt64()
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
return int64(n.AsFloat64())
|
return int64(n.AsFloat64())
|
||||||
case Uint64NumberKind:
|
|
||||||
return int64(n.AsUint64())
|
|
||||||
default:
|
default:
|
||||||
// you get what you deserve
|
// you get what you deserve
|
||||||
return 0
|
return 0
|
||||||
@ -236,24 +202,6 @@ func (n *Number) CoerceToFloat64(kind NumberKind) float64 {
|
|||||||
return float64(n.AsInt64())
|
return float64(n.AsInt64())
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
return n.AsFloat64()
|
return n.AsFloat64()
|
||||||
case Uint64NumberKind:
|
|
||||||
return float64(n.AsUint64())
|
|
||||||
default:
|
|
||||||
// you get what you deserve
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CoerceToUint64 casts the number to uint64. May result in
|
|
||||||
// data/precision loss.
|
|
||||||
func (n *Number) CoerceToUint64(kind NumberKind) uint64 {
|
|
||||||
switch kind {
|
|
||||||
case Int64NumberKind:
|
|
||||||
return uint64(n.AsInt64())
|
|
||||||
case Float64NumberKind:
|
|
||||||
return uint64(n.AsFloat64())
|
|
||||||
case Uint64NumberKind:
|
|
||||||
return n.AsUint64()
|
|
||||||
default:
|
default:
|
||||||
// you get what you deserve
|
// you get what you deserve
|
||||||
return 0
|
return 0
|
||||||
@ -286,12 +234,6 @@ func (n *Number) SetFloat64(f float64) {
|
|||||||
*n.AsFloat64Ptr() = f
|
*n.AsFloat64Ptr() = f
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetUint64 assumes that the number contains a uint64 and sets it to
|
|
||||||
// the passed value.
|
|
||||||
func (n *Number) SetUint64(u uint64) {
|
|
||||||
*n.AsUint64Ptr() = u
|
|
||||||
}
|
|
||||||
|
|
||||||
// - set atomic
|
// - set atomic
|
||||||
|
|
||||||
// SetNumberAtomic sets the number to the passed number
|
// SetNumberAtomic sets the number to the passed number
|
||||||
@ -319,12 +261,6 @@ func (n *Number) SetFloat64Atomic(f float64) {
|
|||||||
atomic.StoreUint64(n.AsRawPtr(), internal.Float64ToRaw(f))
|
atomic.StoreUint64(n.AsRawPtr(), internal.Float64ToRaw(f))
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetUint64Atomic assumes that the number contains a uint64 and sets
|
|
||||||
// it to the passed value atomically.
|
|
||||||
func (n *Number) SetUint64Atomic(u uint64) {
|
|
||||||
atomic.StoreUint64(n.AsUint64Ptr(), u)
|
|
||||||
}
|
|
||||||
|
|
||||||
// - swap
|
// - swap
|
||||||
|
|
||||||
// SwapNumber sets the number to the passed number and returns the old
|
// SwapNumber sets the number to the passed number and returns the old
|
||||||
@ -361,14 +297,6 @@ func (n *Number) SwapFloat64(f float64) float64 {
|
|||||||
return old
|
return old
|
||||||
}
|
}
|
||||||
|
|
||||||
// SwapUint64 assumes that the number contains an uint64, sets it to
|
|
||||||
// the passed value and returns the old uint64 value.
|
|
||||||
func (n *Number) SwapUint64(u uint64) uint64 {
|
|
||||||
old := n.AsUint64()
|
|
||||||
n.SetUint64(u)
|
|
||||||
return old
|
|
||||||
}
|
|
||||||
|
|
||||||
// - swap atomic
|
// - swap atomic
|
||||||
|
|
||||||
// SwapNumberAtomic sets the number to the passed number and returns
|
// SwapNumberAtomic sets the number to the passed number and returns
|
||||||
@ -398,12 +326,6 @@ func (n *Number) SwapFloat64Atomic(f float64) float64 {
|
|||||||
return internal.RawToFloat64(atomic.SwapUint64(n.AsRawPtr(), internal.Float64ToRaw(f)))
|
return internal.RawToFloat64(atomic.SwapUint64(n.AsRawPtr(), internal.Float64ToRaw(f)))
|
||||||
}
|
}
|
||||||
|
|
||||||
// SwapUint64Atomic assumes that the number contains an uint64, sets
|
|
||||||
// it to the passed value and returns the old uint64 value atomically.
|
|
||||||
func (n *Number) SwapUint64Atomic(u uint64) uint64 {
|
|
||||||
return atomic.SwapUint64(n.AsUint64Ptr(), u)
|
|
||||||
}
|
|
||||||
|
|
||||||
// - add
|
// - add
|
||||||
|
|
||||||
// AddNumber assumes that this and the passed number are of the passed
|
// AddNumber assumes that this and the passed number are of the passed
|
||||||
@ -414,8 +336,6 @@ func (n *Number) AddNumber(kind NumberKind, nn Number) {
|
|||||||
n.AddInt64(nn.AsInt64())
|
n.AddInt64(nn.AsInt64())
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
n.AddFloat64(nn.AsFloat64())
|
n.AddFloat64(nn.AsFloat64())
|
||||||
case Uint64NumberKind:
|
|
||||||
n.AddUint64(nn.AsUint64())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -437,12 +357,6 @@ func (n *Number) AddFloat64(f float64) {
|
|||||||
*n.AsFloat64Ptr() += f
|
*n.AsFloat64Ptr() += f
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddUint64 assumes that the number contains a uint64 and adds the
|
|
||||||
// passed uint64 to it.
|
|
||||||
func (n *Number) AddUint64(u uint64) {
|
|
||||||
*n.AsUint64Ptr() += u
|
|
||||||
}
|
|
||||||
|
|
||||||
// - add atomic
|
// - add atomic
|
||||||
|
|
||||||
// AddNumberAtomic assumes that this and the passed number are of the
|
// AddNumberAtomic assumes that this and the passed number are of the
|
||||||
@ -453,8 +367,6 @@ func (n *Number) AddNumberAtomic(kind NumberKind, nn Number) {
|
|||||||
n.AddInt64Atomic(nn.AsInt64())
|
n.AddInt64Atomic(nn.AsInt64())
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
n.AddFloat64Atomic(nn.AsFloat64())
|
n.AddFloat64Atomic(nn.AsFloat64())
|
||||||
case Uint64NumberKind:
|
|
||||||
n.AddUint64Atomic(nn.AsUint64())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,12 +394,6 @@ func (n *Number) AddFloat64Atomic(f float64) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddUint64Atomic assumes that the number contains a uint64 and
|
|
||||||
// atomically adds the passed uint64 to it.
|
|
||||||
func (n *Number) AddUint64Atomic(u uint64) {
|
|
||||||
atomic.AddUint64(n.AsUint64Ptr(), u)
|
|
||||||
}
|
|
||||||
|
|
||||||
// - compare and swap (atomic only)
|
// - compare and swap (atomic only)
|
||||||
|
|
||||||
// CompareAndSwapNumber does the atomic CAS operation on this
|
// CompareAndSwapNumber does the atomic CAS operation on this
|
||||||
@ -516,12 +422,6 @@ func (n *Number) CompareAndSwapFloat64(of, nf float64) bool {
|
|||||||
return atomic.CompareAndSwapUint64(n.AsRawPtr(), internal.Float64ToRaw(of), internal.Float64ToRaw(nf))
|
return atomic.CompareAndSwapUint64(n.AsRawPtr(), internal.Float64ToRaw(of), internal.Float64ToRaw(nf))
|
||||||
}
|
}
|
||||||
|
|
||||||
// CompareAndSwapUint64 assumes that this number contains a uint64 and
|
|
||||||
// does the atomic CAS operation on it.
|
|
||||||
func (n *Number) CompareAndSwapUint64(ou, nu uint64) bool {
|
|
||||||
return atomic.CompareAndSwapUint64(n.AsUint64Ptr(), ou, nu)
|
|
||||||
}
|
|
||||||
|
|
||||||
// - compare
|
// - compare
|
||||||
|
|
||||||
// CompareNumber compares two Numbers given their kind. Both numbers
|
// CompareNumber compares two Numbers given their kind. Both numbers
|
||||||
@ -535,8 +435,6 @@ func (n *Number) CompareNumber(kind NumberKind, nn Number) int {
|
|||||||
return n.CompareInt64(nn.AsInt64())
|
return n.CompareInt64(nn.AsInt64())
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
return n.CompareFloat64(nn.AsFloat64())
|
return n.CompareFloat64(nn.AsFloat64())
|
||||||
case Uint64NumberKind:
|
|
||||||
return n.CompareUint64(nn.AsUint64())
|
|
||||||
default:
|
default:
|
||||||
// you get what you deserve
|
// you get what you deserve
|
||||||
return 0
|
return 0
|
||||||
@ -581,21 +479,6 @@ func (n *Number) CompareFloat64(f float64) int {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// CompareUint64 assumes that the Number contains an uint64 and performs
|
|
||||||
// a comparison between the value and the other value. It returns the
|
|
||||||
// typical result of the compare function: -1 if the value is less
|
|
||||||
// than the other, 0 if both are equal, 1 if the value is greater than
|
|
||||||
// the other.
|
|
||||||
func (n *Number) CompareUint64(u uint64) int {
|
|
||||||
this := n.AsUint64()
|
|
||||||
if this < u {
|
|
||||||
return -1
|
|
||||||
} else if this > u {
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
// - relations to zero
|
// - relations to zero
|
||||||
|
|
||||||
// IsPositive returns true if the actual value is greater than zero.
|
// IsPositive returns true if the actual value is greater than zero.
|
||||||
@ -624,8 +507,6 @@ func (n *Number) Emit(kind NumberKind) string {
|
|||||||
return fmt.Sprintf("%d", n.AsInt64())
|
return fmt.Sprintf("%d", n.AsInt64())
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
return fmt.Sprintf("%f", n.AsFloat64())
|
return fmt.Sprintf("%f", n.AsFloat64())
|
||||||
case Uint64NumberKind:
|
|
||||||
return fmt.Sprintf("%d", n.AsUint64())
|
|
||||||
default:
|
default:
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
@ -639,8 +520,6 @@ func (n *Number) AsInterface(kind NumberKind) interface{} {
|
|||||||
return n.AsInt64()
|
return n.AsInt64()
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
return n.AsFloat64()
|
return n.AsFloat64()
|
||||||
case Uint64NumberKind:
|
|
||||||
return n.AsUint64()
|
|
||||||
default:
|
default:
|
||||||
return math.NaN()
|
return math.NaN()
|
||||||
}
|
}
|
||||||
@ -654,8 +533,6 @@ func (n *Number) compareWithZero(kind NumberKind) int {
|
|||||||
return n.CompareInt64(0)
|
return n.CompareInt64(0)
|
||||||
case Float64NumberKind:
|
case Float64NumberKind:
|
||||||
return n.CompareFloat64(0.)
|
return n.CompareFloat64(0.)
|
||||||
case Uint64NumberKind:
|
|
||||||
return n.CompareUint64(0)
|
|
||||||
default:
|
default:
|
||||||
// you get what you deserve
|
// you get what you deserve
|
||||||
return 0
|
return 0
|
||||||
|
@ -156,9 +156,8 @@ func TestNumberZero(t *testing.T) {
|
|||||||
zero := Number(0)
|
zero := Number(0)
|
||||||
zerof := NewFloat64Number(0)
|
zerof := NewFloat64Number(0)
|
||||||
zeroi := NewInt64Number(0)
|
zeroi := NewInt64Number(0)
|
||||||
zerou := NewUint64Number(0)
|
|
||||||
|
|
||||||
if zero != zerof || zero != zeroi || zero != zerou {
|
if zero != zerof || zero != zeroi {
|
||||||
t.Errorf("Invalid zero representations")
|
t.Errorf("Invalid zero representations")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -166,10 +165,8 @@ func TestNumberZero(t *testing.T) {
|
|||||||
func TestNumberAsInterface(t *testing.T) {
|
func TestNumberAsInterface(t *testing.T) {
|
||||||
i64 := NewInt64Number(10)
|
i64 := NewInt64Number(10)
|
||||||
f64 := NewFloat64Number(11.11)
|
f64 := NewFloat64Number(11.11)
|
||||||
u64 := NewUint64Number(100)
|
|
||||||
require.Equal(t, int64(10), (&i64).AsInterface(Int64NumberKind).(int64))
|
require.Equal(t, int64(10), (&i64).AsInterface(Int64NumberKind).(int64))
|
||||||
require.Equal(t, 11.11, (&f64).AsInterface(Float64NumberKind).(float64))
|
require.Equal(t, 11.11, (&f64).AsInterface(Float64NumberKind).(float64))
|
||||||
require.Equal(t, uint64(100), (&u64).AsInterface(Uint64NumberKind).(uint64))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNumberSignChange(t *testing.T) {
|
func TestNumberSignChange(t *testing.T) {
|
||||||
|
@ -10,12 +10,11 @@ func _() {
|
|||||||
var x [1]struct{}
|
var x [1]struct{}
|
||||||
_ = x[Int64NumberKind-0]
|
_ = x[Int64NumberKind-0]
|
||||||
_ = x[Float64NumberKind-1]
|
_ = x[Float64NumberKind-1]
|
||||||
_ = x[Uint64NumberKind-2]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const _NumberKind_name = "Int64NumberKindFloat64NumberKindUint64NumberKind"
|
const _NumberKind_name = "Int64NumberKindFloat64NumberKind"
|
||||||
|
|
||||||
var _NumberKind_index = [...]uint8{0, 15, 32, 48}
|
var _NumberKind_index = [...]uint8{0, 15, 32}
|
||||||
|
|
||||||
func (i NumberKind) String() string {
|
func (i NumberKind) String() string {
|
||||||
if i < 0 || i >= NumberKind(len(_NumberKind_index)-1) {
|
if i < 0 || i >= NumberKind(len(_NumberKind_index)-1) {
|
||||||
|
@ -263,7 +263,7 @@ func sum(record export.Record, a aggregation.Sum) (*metricpb.Metric, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch n := desc.NumberKind(); n {
|
switch n := desc.NumberKind(); n {
|
||||||
case metric.Int64NumberKind, metric.Uint64NumberKind:
|
case metric.Int64NumberKind:
|
||||||
m.MetricDescriptor.Type = metricpb.MetricDescriptor_COUNTER_INT64
|
m.MetricDescriptor.Type = metricpb.MetricDescriptor_COUNTER_INT64
|
||||||
m.Int64DataPoints = []*metricpb.Int64DataPoint{
|
m.Int64DataPoints = []*metricpb.Int64DataPoint{
|
||||||
{
|
{
|
||||||
|
@ -283,8 +283,6 @@ func TestValuerecorderMetricGroupingExport(t *testing.T) {
|
|||||||
}
|
}
|
||||||
runMetricExportTests(t, []record{r, r}, expected)
|
runMetricExportTests(t, []record{r, r}, expected)
|
||||||
//changing the number kind should make no difference.
|
//changing the number kind should make no difference.
|
||||||
r.nKind = metric.Uint64NumberKind
|
|
||||||
runMetricExportTests(t, []record{r, r}, expected)
|
|
||||||
r.nKind = metric.Float64NumberKind
|
r.nKind = metric.Float64NumberKind
|
||||||
runMetricExportTests(t, []record{r, r}, expected)
|
runMetricExportTests(t, []record{r, r}, expected)
|
||||||
}
|
}
|
||||||
@ -330,60 +328,6 @@ func TestCountInt64MetricGroupingExport(t *testing.T) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCountUint64MetricGroupingExport(t *testing.T) {
|
|
||||||
r := record{
|
|
||||||
"uint64-count",
|
|
||||||
metric.CounterKind,
|
|
||||||
metric.Uint64NumberKind,
|
|
||||||
nil,
|
|
||||||
nil,
|
|
||||||
append(baseKeyValues, cpuKey.Int(1)),
|
|
||||||
}
|
|
||||||
runMetricExportTests(
|
|
||||||
t,
|
|
||||||
[]record{r, r},
|
|
||||||
[]metricpb.ResourceMetrics{
|
|
||||||
{
|
|
||||||
Resource: nil,
|
|
||||||
InstrumentationLibraryMetrics: []*metricpb.InstrumentationLibraryMetrics{
|
|
||||||
{
|
|
||||||
Metrics: []*metricpb.Metric{
|
|
||||||
{
|
|
||||||
MetricDescriptor: &metricpb.MetricDescriptor{
|
|
||||||
Name: "uint64-count",
|
|
||||||
Type: metricpb.MetricDescriptor_COUNTER_INT64,
|
|
||||||
Labels: []*commonpb.StringKeyValue{
|
|
||||||
{
|
|
||||||
Key: "CPU",
|
|
||||||
Value: "1",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Key: "host",
|
|
||||||
Value: "test.com",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Int64DataPoints: []*metricpb.Int64DataPoint{
|
|
||||||
{
|
|
||||||
Value: 11,
|
|
||||||
StartTimeUnixNano: startTime(),
|
|
||||||
TimeUnixNano: pointTime(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Value: 11,
|
|
||||||
StartTimeUnixNano: startTime(),
|
|
||||||
TimeUnixNano: pointTime(),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestCountFloat64MetricGroupingExport(t *testing.T) {
|
func TestCountFloat64MetricGroupingExport(t *testing.T) {
|
||||||
r := record{
|
r := record{
|
||||||
"float64-count",
|
"float64-count",
|
||||||
@ -729,9 +673,6 @@ func runMetricExportTest(t *testing.T, exp *Exporter, rs []record, expected []me
|
|||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
switch r.nKind {
|
switch r.nKind {
|
||||||
case metric.Uint64NumberKind:
|
|
||||||
require.NoError(t, agg.Update(ctx, metric.NewUint64Number(1), &desc))
|
|
||||||
require.NoError(t, agg.Update(ctx, metric.NewUint64Number(10), &desc))
|
|
||||||
case metric.Int64NumberKind:
|
case metric.Int64NumberKind:
|
||||||
require.NoError(t, agg.Update(ctx, metric.NewInt64Number(1), &desc))
|
require.NoError(t, agg.Update(ctx, metric.NewInt64Number(1), &desc))
|
||||||
require.NoError(t, agg.Update(ctx, metric.NewInt64Number(10), &desc))
|
require.NoError(t, agg.Update(ctx, metric.NewInt64Number(10), &desc))
|
||||||
|
@ -45,8 +45,8 @@ type (
|
|||||||
// the less than equal bucket count for the pre-determined boundaries.
|
// the less than equal bucket count for the pre-determined boundaries.
|
||||||
state struct {
|
state struct {
|
||||||
bucketCounts []float64
|
bucketCounts []float64
|
||||||
count metric.Number
|
|
||||||
sum metric.Number
|
sum metric.Number
|
||||||
|
count int64
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ func (c *Aggregator) Sum() (metric.Number, error) {
|
|||||||
|
|
||||||
// Count returns the number of values in the checkpoint.
|
// Count returns the number of values in the checkpoint.
|
||||||
func (c *Aggregator) Count() (int64, error) {
|
func (c *Aggregator) Count() (int64, error) {
|
||||||
return int64(c.state.count), nil
|
return c.state.count, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Histogram returns the count of events in pre-determined buckets.
|
// Histogram returns the count of events in pre-determined buckets.
|
||||||
@ -160,7 +160,7 @@ func (c *Aggregator) Update(_ context.Context, number metric.Number, desc *metri
|
|||||||
c.lock.Lock()
|
c.lock.Lock()
|
||||||
defer c.lock.Unlock()
|
defer c.lock.Unlock()
|
||||||
|
|
||||||
c.state.count.AddInt64(1)
|
c.state.count++
|
||||||
c.state.sum.AddNumber(kind, number)
|
c.state.sum.AddNumber(kind, number)
|
||||||
c.state.bucketCounts[bucketID]++
|
c.state.bucketCounts[bucketID]++
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ func (c *Aggregator) Merge(oa export.Aggregator, desc *metric.Descriptor) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.state.sum.AddNumber(desc.NumberKind(), o.state.sum)
|
c.state.sum.AddNumber(desc.NumberKind(), o.state.sum)
|
||||||
c.state.count.AddNumber(metric.Uint64NumberKind, o.state.count)
|
c.state.count += o.state.count
|
||||||
|
|
||||||
for i := 0; i < len(c.state.bucketCounts); i++ {
|
for i := 0; i < len(c.state.bucketCounts); i++ {
|
||||||
c.state.bucketCounts[i] += o.state.bucketCounts[i]
|
c.state.bucketCounts[i] += o.state.bucketCounts[i]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user