1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2024-12-04 09:43:23 +02:00
opentelemetry-go/api
ET 9a2484c373 Implement support for NonAbsolute Measurement MaxSumCount (#335)
* Add tests for nonabsolute and varying sign values

* Implement support for NonAbsolute Measurement MaxSumCount

Previously, the MaxSumCount aggregator failed to work correctly with
negative numbers (e.g. MeasureKind Alternate()==true).

* Pass NumberKind to MaxSumCount New() function

Allows it to set the initial state (current.max) to the correct value
based on the NumberKind.

* Revert extraneous local change

* Pass full descriptor to msc New()

This is analagous to the DDSketch New() constructor

* Remember to run make precommit first

* Add tests for empty checkpoint of MaxSumCount aggregator

An empty checkpoint should have Sum() == 0, Count() == 0 and Max()
still equal to the numberKind.Minimum()

* Return ErrEmptyDataSet if no value set by the aggregator

Remove TODO from stdout exporter to ensure that if a maxsumcount or
ddsketch aggregator returns ErrEmptyDataSet from Max(), then the
entire record will be skipped by the exporter.

Added tests to ensure the exporter doesn't send any updates for
EmptyDataSet checkpoints - for both ddsketch and maxsumcount.

* Relayout Aggreggator struct to ensure int64s are 8-byte aligned

On 32-bit architectures, Go only guarantees that primitive
values are aligned to a 4 byte boundary. Atomic operations on 32-bit
machines require 8-byte alignment.

See https://github.com/golang/go/issues/599

* Addressing PR comments

The use of Minimum() for the default uninitialized Maximum value means
that in the unlikely condition that every recorded value for a measure
is equal to the same NumberKind.Minimum(), then the aggregator's Max()
will return ErrEmptyDataSet

* Fix PR merge issue
2019-11-25 09:51:49 -08:00
..
core Implement support for NonAbsolute Measurement MaxSumCount (#335) 2019-11-25 09:51:49 -08:00
distributedcontext api/distributedcontext: add Map unit tests (#270) 2019-11-02 14:46:13 -07:00
key Namespace import path under "/otel" (#274) 2019-11-01 11:40:29 -07:00
metric Namespace import path under "/otel" (#274) 2019-11-01 11:40:29 -07:00
propagation Namespace import path under "/otel" (#274) 2019-11-01 11:40:29 -07:00
testharness Namespace import path under "/otel" (#274) 2019-11-01 11:40:29 -07:00
trace Rename GetTracer to Tracer (#347) 2019-11-25 09:46:07 -08:00
unit Namespace import path under "/otel" (#274) 2019-11-01 11:40:29 -07:00