* Split metric inst config
Instead of having the same configuration for both the Synchronous and
Asynchronous instruments, use specific options for both.
* Use Async/Sync opt for appropriate inst
* Update noop inst providers
* Update internal global impl
* Update sdk
* Remove unused method for callbackOption
* Test instrument configuration
* Lint imports
* Add changes to changelog
* Refactor callbacks and further split opts
Define callbacks to return the value observed. Because of the different
types returned for different observables, the callbacks and options are
move to the sync/async packages.
* Update noop impl
* Fix example_test.go
* Fix internal impl
* Update Callbacks
Return observations for distinct attr sets.
* Refactor common code in sdk/metric inst provider
* Update examples and prom exporter
* Generalize callback
* Update changelog
* Add unit tests for callback
* Add meter tests for cbacks on creation
* Rename Observations to Measurements
* Update Callback to accept an Observer
* Update SDK impl
* Move conf to instrument pkg
* Apply suggestions from code review
* docs(metric): document public interfaces with versioning policy
* docs(metric): remove versioning policy warning from interfaces without public method(s)
* Update API docs
Update the async instrument docs for the counters types to explain that
the value recorded is assumed by implementations to be the cumulative
sum.
* Refactor precomputed delta sum aggregation
Report the delta Aggregation while supporting cumulative Aggregate
values.
* Add changes to changelog
* Update Asynchronous API docs
Clarify the Counter and UpDownCounter Observe values are the exact
counter value, not increments to the previous measurements.
* Add the pre-computed sum Aggregator
* Test the PreComputedSum
* Use the PrecomputedSum for async counters
* Add changes to changelog
* Ignore false-positive lint error
* Split NewPrecomputedSum into delta/cumulative vers
* Empty All of the metrics dir
* Add instrument api with documentation
* Add a NoOp implementation.
* Updated to the new config standard
* Address PR comments
* This change moves components to sdk/metrics
The Moved components are:
- metric/metrictest
- metric/number
- metric/internal/registry
- metric/sdkapi
* The SDK changes necessary to satasify the new api
* This fixes the remaing tests.
* Update changelog
* refactor the Noop meter and instruments into one package.
* Renamed pkg.Instruments to pkg.InstrumentProvider
Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>