Commit Graph
73 Commits
Author SHA1 Message Date
0e2fdfc682 Support cumulative, delta, and pass-through exporters (#840)
* Update Process()

* Checkpoint

* Add subtractor; fix test

* Fix all simple integrator tests

* Build the rest (checkpoint)

* Pass all but Prometheus tests

* Precommit pass

* Add aggregation.Kind argument to ExportKindFor

* Remove Subtractor support

* Remove dead test code

* Restore the Subtractor code

* Fix the tests

* Comments

* Add tests for MetricKind

* Add ChangeSign test

* Test ExportKind

* New file

* Rename ChangeSign

* Remove a TODO, add a TODO

* Remove Stateful remnants

* Typo

* Typo

* Test an invalid export kind

* Comments

* Lint

* Apply suggestions from code review

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2020-06-22 22:59:51 -07:00
4e4271791f Add export timestamps; distinguish Accumulation vs. Record (#835)
* Introduce Accumulation

* Refactor export structs

* FTB exporters

* Test timestamps

* Test no-start case

* From feedback

* Apply suggestions from code review

(Thanks @MrAlias!)

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Comments in sdk/metric/integrator/test

* Fix build

* Comments and feedback

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2020-06-18 10:16:33 -07:00
9925ebe517 Single-state Aggregator and test refactor (#812)
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2020-06-13 00:55:01 -07:00
Joshua MacDonaldandGitHub 9401bd9cda Remove Context arguments from Aggregator.Checkpoint and Integrator.Process (#803)
* Typo

* Swap order of ddsketch.New for consistency w/ histogram.New

* Remove Integrator.Process ctx argument

* Remove Aggregator.Checkpoint ctx argument

* Revert bugfix
2020-06-09 11:00:50 -07:00
Joshua MacDonaldandGitHub 86a10268b8 Minor cleanups in sdk/metric/aggregator (#781)
* Typo

* Swap order of ddsketch.New for consistency w/ histogram.New
2020-05-30 20:16:40 -07:00
Joshua MacDonaldandGitHub b17a7845df Rename Register* to New* (#761) 2020-05-21 15:42:14 -07:00
Joshua MacDonaldandGitHub 5461669733 Add a pull controller, use it for Prometheus (#751)
* Checkpoint new pull controller

* Tests pass

* Fix example

* Example fix

* Add a test

* Comment

* address MrAlias's feedback
2020-05-20 10:27:26 -07:00
Joshua MacDonaldandGitHub 15e8edd498 Add the UpDownSumObserver instrument (#750)
* Add the UpDownSumObserver instrument

* Precommit

* Downcase error message
2020-05-20 10:19:51 -07:00
Joshua MacDonaldandGitHub 1fab21ddbf Support use of synchronous instruments in async callbacks (#725)
* Support use of synchronous instruments in async callbacks

* Add a test
2020-05-19 21:33:10 -07:00
Joshua MacDonaldandGitHub c5f2252c48 Add the SumObserver instrument (#747)
* Add the SumObserver instrument

* Lint
2020-05-19 11:49:24 -07:00
Joshua MacDonaldandGitHub 0a333cade1 Add the UpDownCounter instrument (#745)
* Add UpDownCounter to the API

* Add an SDK test

* Comment fix
2020-05-19 10:00:22 -07:00
Joshua MacDonaldandGitHub 055e9c54e1 Disable parts of batch_span_processor test as flakes (#743)
* Name the BSP tests

* Add a drain wait group; use the stop wait group to avoid leaking a goroutine

* Lint & comments

* Fix

* Use defer/recover

* Restore the Add/Done...

* Restore the Add/Done...

* Consolidate select stmts

* Disable the test

* Lint

* Use better recover
2020-05-19 09:36:33 -07:00
Joshua MacDonaldandGitHub 21d094af43 Refactor the api/metrics push controller; add CheckpointSet synchronization (#737)
* Checkpoint

* Finish tests

* Checkpoint

* Checkpoint (builds)

* Checkpoint + RWMutex interface

* Comments

* Remove commitLock

* Apply feedback
2020-05-18 18:37:41 -07:00
Joshua MacDonaldandGitHub 69da3056f2 Move Resource into the metric export Record (#739)
* Checkpoint

* Tests pass
2020-05-18 17:44:28 -07:00
Joshua MacDonaldandGitHub ee3c9ed1a5 Rename Observer to ValueObserver (#734)
* Observer -> ValueObserver

* Move wrappers into async.go
2020-05-18 11:03:43 -07:00
Joshua MacDonaldandGitHub 76baa9cc7a Remove the push controller named Meter map (#738)
* Remove the push controller named Meter map

* Checkpoint

* Remove Provider impls

* Add a test

* Expose Provider() getter instead of implementing the interface
2020-05-18 10:48:58 -07:00
Joshua MacDonaldandGitHub 2dee67652a Histogram aggregator initial state (fix #735) (#736)
* Add a test

* Add comments and description options

* Another test

* Undo buffer re-use

* Mod tidy

* Precommit

* Again

* Copyright

* Undo rename
2020-05-18 09:44:33 -07:00
Joshua MacDonaldandGitHub 6bc14ffd2c Replace Measure instrument by ValueRecorder instrument (#732)
* Measure->Value recorder and cleanups re: measure

* More edits

* More edits

* Feedback
2020-05-15 22:11:12 -07:00
Joshua MacDonaldandGitHub f1112a4fbb Rearrange api/metric code layout (#724)
* Refactor api.go

* Refactor more

* Finish

* More

* Rename

* More rename

* Split observer.go common into async.go; rename common.go sync.go

* Move types a bit
2020-05-14 13:10:48 -07:00
Joshua MacDonaldandGitHub fefdf59a0b Batch Observer callback support (#717)
* api/metric changes from jmacd:jmacd/batch_obs_2

* Add an SDK test

* Use a single collector method

* Two fixes

* Comments; embed AsyncRunner

* Comments

* Comment fix

* More comments

* Renaming for clarity

* Renaming for clarity (fix)

* Lint
2020-05-13 16:27:52 -07:00
Joshua MacDonaldandGitHub 587cde3352 Remove NewKey and update doc comment (#721)
* Update doc comment

* Remove NewKey

* NewKey->Key
2020-05-13 16:21:23 -07:00
88100f0fc7 Add evantorrie as an approver (#713)
* Update CODEOWNERS

* Add Evan Torrie to CONTRIBUTING

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2020-05-12 11:52:58 -07:00
Joshua MacDonaldandGitHub 32ddc16e1b Make Meter a struct, simplify the global Meter (#709)
* Tests pass

* Precommit pass

* More lint

* Remove a few interfaces

* Final edits

* Fix comments

* Indentation

* registry->unique

* Comments
2020-05-11 20:29:06 -07:00
Joshua MacDonaldandGitHub 64afb05e53 Metric SDK renames to align with draft SDK spec (#710)
* Replace batcher w/ integrator; rename ungrouped to simple

* SDK -> Accumulator

* Cleamup

* Address feedback
2020-05-11 10:23:06 -07:00
Joshua MacDonaldandGitHub bb2dcff242 Merge branch 'master' into increase-circleci-size 2020-04-30 13:06:22 -07:00
4c9a29d2d7 Add a key benchmark, use reflection in key.Infer() (#679)
* Add a key benchmark, optimize SDK SetAttribute

* Use reflect in key.Infer

* Move to separate benchmark file; remove pointer test; remove dead comment

* Run go mod tidy

* Add license header

* Use the reflect scalar accessors

Co-authored-by: Liz Fong-Jones <lizf@honeycomb.io>
2020-04-30 13:06:00 -07:00
Joshua MacDonaldandGitHub d7b3c3d7e7 Fix and test uses of global.Meter with RecordBatch() (#680)
* Test use of global.Meter.RecordBatch

* Avoid new dep
2020-04-29 16:13:55 -07:00
Joshua MacDonaldandGitHub 3008c1bf02 Pass Resources through the metrics export pipeline (#659) 2020-04-24 09:44:21 -07:00
Joshua MacDonaldandGitHub cd1be0e698 Use the label.Set.Equivalent value instead of an encoding in the batcher (#658) 2020-04-24 09:32:49 -07:00
Joshua MacDonaldandGitHub 0bb12d9b1b New api/label package, common label set impl (#651)
* New label set API

* Checkpoint

* Remove label.Labels interface

* Fix trace

* Remove label storage

* Restore metric_test.go

* Tidy tests

* More comments

* More comments

* Same changes as 654

* Checkpoint

* Fix batch labels

* Avoid Resource.Attributes() where possible

* Update comments and restore order in resource.go

* From feedback

* From feedback

* Move iterator_test & feedback

* Strenghten the label.Set test

* Feedback on typos

* Fix the set test per @krnowak

* Nit
2020-04-23 12:10:58 -07:00
Joshua MacDonaldandGitHub acb350b8f3 Support JSON marshal of Resources (#654)
* Support JSON marshal of Resources

* Add a test

* Another test

* Fix arch bug

* Fix other test
2020-04-22 14:32:58 -07:00
Joshua MacDonaldandGitHub 395440db10 Checkpoint only after Update; Keep records in the sync.Map longer (#647)
* Add a test

* Benchmark

* Ensure records can persist across intervals

* Remove dead code

* Address feedback, refactor & eliminate race
2020-04-21 20:23:15 -07:00
Joshua MacDonaldandGitHub e554562513 Do not cache reflect.ValueOf() in metrics Labels (#649)
* Benchmark label iterator

* Remove cachedValue, a minor optimization
2020-04-20 20:29:46 -07:00
Joshua MacDonaldandGitHub a8f7b3247b Remove WithKeys() option, defaultkeys batcher (#639) 2020-04-14 16:07:11 -07:00
Joshua MacDonaldandGitHub 1e8e72b530 Process the queue until no data but respect max batch size (#599) 2020-03-27 16:21:20 -07:00
e8546e3bc5 Remove Labelset (#595)
* Remove LabelSet frmo api/metric

* SDK tests pass

* Restore benchmarks

* All tests pass

* Remove all mentions of LabelSet

* Test RecordBatch

* Batch test

* Improves benchmark (some)

* Move the benchmark to match HEAD

* Align labels for GOARCH=386

* Add alignment test

* Disable the stress test fo GOARCH=386

* Fix bug

* Move atomic fields into their own file

* Add a TODO

* Comments

* Remove metric.Labels(...)

* FTB

Co-authored-by: Liz Fong-Jones <lizf@honeycomb.io>
2020-03-27 14:06:48 -07:00
Joshua MacDonaldandGitHub cfe74cf91f Add a RecordBatch benchmark (#594) 2020-03-25 08:57:40 -07:00
Joshua MacDonaldandGitHub 4c69dd3234 Remove dogstatsd and statsd support (#591) 2020-03-24 11:00:59 -07:00
Joshua MacDonaldandGitHub 06f833e2ae Unique instrument checking (#580)
* Add skeleton uniqueness checker

* Fix the build w/ new code in place

* Add sync tests

* More test

* Implement global uniqueness checking

* Set the library name

* Ensure ordered global initialization

* Use proper require statement for errors

* Comment

* Apply feedback fixes

* Comment and rename from feedback
2020-03-24 10:54:08 -07:00
d8682c1999 Refactor the SDK helpers, create MeterImpl (#560)
* Create MeterImpl interface

* Checkpoint w/ sdk.go building

* Checkpoint working on global

* api/global builds (test fails)

* Test fix

* All tests pass

* Comments

* Add two tests

* Comments and uncomment tests

* Precommit part 1

* Still working on tests

* Lint

* Add a test and a TODO

* Cleanup

* Lint

* Interface()->Implementation()

* Apply some feedback

* From feedback

* (A)Synchronous -> (A)Sync

* Add a missing comment

* Apply suggestions from code review

Co-Authored-By: Krzesimir Nowak <qdlacz@gmail.com>

* Rename a variable

Co-authored-by: Krzesimir Nowak <qdlacz@gmail.com>
2020-03-19 12:02:46 -07:00
Joshua MacDonaldandGitHub 23e65ac79d Remove metric options; rename "counter" aggregator to "sum" (#541)
* Remove options (mostly)

* Rename counter aggregator to 'sum'

* Fix prometheus test

* Rewordings from feedback
2020-03-11 20:21:34 -07:00
Joshua MacDonaldandGitHub 4047c0877a Introduce metric constructor errors, MeterMust wrapper (#529)
* Update api for Must constructors, with SDK helpers

* Update for Must constructors, leaving TODOs about global errors

* Add tests

* Move Must methods into metric.Must

* Apply the feedback

* Remove interfaces

* Remove more interfaces

* Again...

* Remove a sentence about a dead inteface
2020-03-11 11:57:57 -07:00
Joshua MacDonaldandGitHub ae9033e01f Use a variable-size array to represent ordered labels in maps (#523)
* Use an array key to label encoding in the SDK

* Comment

* Precommit

* Comment

* Comment

* Feedback from krnowak

* Do not overwrite the Key

* Add the value test requested

* Add a comment
2020-03-11 09:11:27 -07:00
9674c81cb7 Drop the gauge instrument (#537)
* drop gauge instrument

* Restore the benchmark and stress test for lastvalue aggregator, but remove monotonic last-value support

* Rename gauge->lastvalue and remove remaining uses of the word 'gauge'

Co-authored-by: Krzesimir Nowak <krzesimir@kinvolk.io>
2020-03-10 16:00:37 -07:00
Joshua MacDonaldandGitHub 3bf3927eb5 Add status message parameter (#524)
* Add status message parameter

* Cleanups around use of codes.OK

* Update for status message
2020-03-07 10:38:59 -08:00
Joshua MacDonaldandGitHub 148c9ce5ba Make the default label encoding unique (#508)
* Make the default label encoding unique

* More tests

* Cleanup
2020-03-04 14:19:25 -08:00
dd781560d4 Rename handle to bound instrument (@sircelsius) (#400)
* Rename metric Handle to Bound Instrument

* Rename metric Handle to Bound Instrument

* Rename metric Handle to Bound Instrument

* chore(meter): renamed from *BoundInstrument to Bound*, renamed AcquireBoundInstrument to Bind

* chore(meter): renamed Release to Unbind

* Self feedback in doc.go

* Rename confusing method name

Co-authored-by: Marc Bramaud <sircelsius@users.noreply.github.com>
2019-12-27 16:30:19 -08:00
Joshua MacDonaldandGitHub 1414d363de Global meter forwarding implementation (#392)
* Initial skeleton

* Revert noop provider removal

* Checkpoint

* Checkpoint

* Implement Bound instrument and LabelSet

* Add test

* Add a benchmark

* Add a release test

* Document LabelSetDelegator

* Lint and comments

* Add a second Meter test; fix typo; add a panic

* Add a test for the builtin SDK

* Address feedback
2019-12-23 23:03:04 -08:00
Joshua MacDonaldandrghetia 11f67cea8e Comments in the metrics SDK (#399)
* Comments from walkthrough

* Update
2019-12-23 16:38:35 -08:00
Joshua MacDonaldandGitHub 799a4180bd Fix race conditions in push_test.go (#340)
* Fix race conditions in push_test.go

* Add circle race test
2019-11-22 10:48:53 -08:00
Joshua MacDonaldandGitHub b9706b20f9 Dogstatsd metrics exporter (#326)
* Add MetricAggregator.Merge() implementations

* Update from feedback

* Type

* Ckpt

* Ckpt

* Add push controller

* Ckpt

* Add aggregator interfaces, stdout encoder

* Modify basic main.go

* Main is working

* Batch stdout output

* Sum udpate

* Rename stdout

* Add stateless/stateful Batcher options

* Undo a for-loop in the example, remove a done TODO

* Update imports

* Add note

* Rename defaultkeys

* Support variable label encoder to speed OpenMetrics/Statsd export

* Lint

* Checkpoint

* Checkpoint

* Doc

* Precommit/lint

* Simplify Aggregator API

* Record->Identifier

* Remove export.Record a.k.a. Identifier

* Checkpoint

* Propagate errors to the SDK, remove a bunch of 'TODO warn'

* Checkpoint

* Introduce export.Labels

* Comments in export/metric.go

* Comment

* More merge

* More doc

* Complete example

* Lint fixes

* Add a testable example

* Lint

* Dogstats

* Let Export return an error

* Checkpoint

* add a basic stdout exporter test

* Add measure test; fix aggregator APIs

* Use JSON numbers, not strings

* Test stdout exporter error

* Add a test for the call to RangeTest

* Add error handler API to improve correctness test; return errors from RecordOne

* Undo the previous -- do not expose errors

* Add simple selector variations, test

* Repair examples

* Test push controller error handling

* Add SDK label encoder tests

* Add a defaultkeys batcher test

* Add an ungrouped batcher test

* Lint new tests

* Respond to krnowak's feedback

* Checkpoint

* Funciontal example using unixgram

* Tidy the example

* Add a packet-split test

* More tests

* Undo comment

* Use concrete receivers for export records and labels, since the constructors return structs not pointers

* Bug fix for stateful batchers; clone an aggregator for long term storage

* Remove TODO addressed in #318

* Add errors to all aggregator interfaces

* Handle ErrNoLastValue case in stdout exporter

* Move aggregator API into sdk/export/metric/aggregator

* Update all aggregator exported-method comments

* Document the aggregator APIs

* More aggregator comments

* Add multiple updates to the ungrouped test

* Fixes for feedback from Gustavo and Liz

* Producer->CheckpointSet; add FinishedCollection

* Process takes an export.Record

* ReadCheckpoint->CheckpointSet

* EncodeLabels->Encode

* Format a better inconsistent type error; add more aggregator API tests

* More RangeTest test coverage

* Make benbjohnson/clock a test-only dependency

* Handle ErrNoLastValue in stress_test

* Update comments; use a pipe vs a unix socket in the example test

* Update test

* Spelling

* Typo fix

* Rename DefaultLabelEncoder to NewDefaultLabelEncoder for clarity

* Rename DefaultLabelEncoder to NewDefaultLabelEncoder for clarity

* Test different adapters; add ForceEncode to statsd label encoder
2019-11-21 20:46:05 -08:00
Joshua MacDonaldandGitHub dfae2acc6c Fix the defaultkeys metrics batcher (#333) 2019-11-19 13:25:24 -08:00
Joshua MacDonaldandrghetia 9878f3b700 Metrics stdout export pipeline (#265)
* Add MetricAggregator.Merge() implementations

* Update from feedback

* Type

* Ckpt

* Ckpt

* Add push controller

* Ckpt

* Add aggregator interfaces, stdout encoder

* Modify basic main.go

* Main is working

* Batch stdout output

* Sum udpate

* Rename stdout

* Add stateless/stateful Batcher options

* Undo a for-loop in the example, remove a done TODO

* Update imports

* Add note

* Rename defaultkeys

* Support variable label encoder to speed OpenMetrics/Statsd export

* Lint

* Doc

* Precommit/lint

* Simplify Aggregator API

* Record->Identifier

* Remove export.Record a.k.a. Identifier

* Checkpoint

* Propagate errors to the SDK, remove a bunch of 'TODO warn'

* Checkpoint

* Introduce export.Labels

* Comments in export/metric.go

* Comment

* More merge

* More doc

* Complete example

* Lint fixes

* Add a testable example

* Lint

* Let Export return an error

* add a basic stdout exporter test

* Add measure test; fix aggregator APIs

* Use JSON numbers, not strings

* Test stdout exporter error

* Add a test for the call to RangeTest

* Add error handler API to improve correctness test; return errors from RecordOne

* Undo the previous -- do not expose errors

* Add simple selector variations, test

* Repair examples

* Test push controller error handling

* Add SDK label encoder tests

* Add a defaultkeys batcher test

* Add an ungrouped batcher test

* Lint new tests

* Respond to krnowak's feedback

* Undo comment

* Use concrete receivers for export records and labels, since the constructors return structs not pointers

* Bug fix for stateful batchers; clone an aggregator for long term storage

* Remove TODO addressed in #318

* Add errors to all aggregator interfaces

* Handle ErrNoLastValue case in stdout exporter

* Move aggregator API into sdk/export/metric/aggregator

* Update all aggregator exported-method comments

* Document the aggregator APIs

* More aggregator comments

* Add multiple updates to the ungrouped test

* Fixes for feedback from Gustavo and Liz

* Producer->CheckpointSet; add FinishedCollection

* Process takes an export.Record

* ReadCheckpoint->CheckpointSet

* EncodeLabels->Encode

* Format a better inconsistent type error; add more aggregator API tests

* More RangeTest test coverage

* Make benbjohnson/clock a test-only dependency

* Handle ErrNoLastValue in stress_test
2019-11-15 13:01:20 -08:00
Joshua MacDonaldandrghetia ee87858c09 Avoid one memory allocation in LabelSet construction (#318) 2019-11-14 13:13:42 -08:00
Joshua MacDonaldandrghetia 769a03ac97 Use a formula for tolerance in sampling tests (#298) 2019-11-08 11:11:59 -08:00
Joshua MacDonaldandGitHub 2546646050 Fix metric SDK race condition (#293)
* Initial fix

* benchmark acquire

* Rename handle benchmarks
2019-11-06 10:54:36 -08:00
Joshua MacDonaldandGitHub 68bd627ac2 Move export types into trace and metric-specific subdirs (#289) 2019-11-05 13:08:55 -08:00
Joshua MacDonaldandGitHub 1bfa1aa429 Change SpanKind type an integer type (#288)
* Change SpanKind to an integer

* Take suggestion

* Use the helper from the bridge
2019-11-04 16:05:43 -08:00
Joshua MacDonaldandGitHub 9040d824ae Add array aggregation for raw measure metrics, improve testing (#282)
* Array aggregator part 1

* Improve median testing

* More testing

* More testing

* Update other dist tests

* Add to the benchmark

* Move errors into aggregator package, use from ddsketch; update Max/Min/Quantile to return errors for array/ddsketch/maxsumcount

* Lint

* Test non-absolute ddsketch

* Lint

* Comment

* Add note
2019-11-04 14:24:01 -08:00
Joshua MacDonaldandrghetia 8862436993 Support named Meters, use global package (#258)
* Support named Meters, use global package

* Comments/typos fixed
2019-10-30 23:35:02 -07:00
Joshua MacDonaldandGitHub 915775e348 Add MetricAggregator.Merge() implementations (#253)
* Add MetricAggregator.Merge() implementations

* Update from feedback

* Type
2019-10-30 22:15:27 -07:00
Joshua MacDonaldandGitHub de6715fca3 Remove the distributedctx.Mutator (#252)
* Remove the distributedctx.Mutator

* Remove unused field

* Update examples
2019-10-30 13:21:13 -07:00
Joshua MacDonaldandGitHub 88dafbbb16 Remove NewZeroNumber in favor of Number(0) (#255) 2019-10-30 11:22:14 -07:00
Joshua MacDonaldandGitHub 320c62a780 Remove BYTES values, as they are are not thread safe (#249)
* Remove BYTES values, as they are mutable

* Remove more BYTES
2019-10-30 10:20:53 -07:00
Joshua MacDonaldandGitHub 937f4ff8b0 Metrics SDK work-in-progress (#172)
Introduce the new SDK, four aggregators, and an export interface.
2019-10-29 13:27:22 -07:00
Joshua MacDonaldandGitHub 1191a07836 Observer metric has not been specified (#222) 2019-10-17 15:35:42 -07:00
Joshua MacDonaldandGitHub 0025ffcc71 Remove the experimental SDK (#221)
* Remove the experimental SDK

* Remove the experimental SDK from README.md

* Remove the experimental SDK from Makefile
2019-10-17 14:21:50 -07:00
Joshua MacDonaldandrghetia be8fb0b4e2 Golang metrics prototype (#100)
* initial metrics work

* rename cumulative to counter

* rename bidirectional to nonmonotonic

* rename unidirectional to monotonic

* rename nonnegative to signed

this changes the default semantics a bit - before the change measure
could record negative values by default, now it can't.

The specification draft currently specifies both NonNegative and
Signed, but I think it's a mistake.

* rename instrument to descriptor

* license

* rework measurement values

* make measurement value a tagged union

* simplify to one kind of metrics

* add observers

* change some interfaces to match the spec

* keep integral measurement separate from floating ones

* remove duplicated measurement type

* add checking for options

* reorder some fields and functions

* rename a function

to avoid confusion between the Handle type and the Measure type

* drop disabled field from descriptor

* add back typed API for metrics

* make metric options type safe

* merge alternatives into a single bool

* make value kind name less stuttery

* fix observation callback prototype

* drop context parameter from NewHandle

* drop useless parameter names

* make descriptor an opaque struct

* use a store helper

* handle comment fixes

* reword Alternate comment

* drop the "any value" metrics

* make measurement value simpler

* document value stuff

* add tests for values

* docs

* do not panic if there is no span ID in the event
2019-10-08 15:45:49 -07:00
Joshua MacDonaldandGitHub a3ae50d8bc Remove experimental/streaming globals, add streaming example (#135)
* Remove globals from exp/streaming

* basic example

* Build the streaming example

* Update README.md for running streaming example

* Remove observer package

* Move observer to exporter

* Fix

* Re-run make circle-ci
2019-09-23 14:39:10 -07:00
Joshua MacDonaldandrghetia b26d6675ed Restore the experimental/streaming SDK implementation (#55)
* Fix streaming - part 1

* Eliminate span{} state

* Eliminate trace/ dir

* Avoid missing AddEvent helpers
2019-07-17 13:59:53 -07:00
Joshua MacDonaldandrghetia 961121698b Eliminate Scope/ScopeID, separate API from SDK for metrics/stats (#48)
* Move scope.Active to trace.CurrentSpan

* Remove scope / does not build

* Global tracer

* Checkpoint

* Checkpoint

* Add key/key.go for key.New

* Comments

* Remove more EventID and ScopeID

* Use Handle to describe static objects

* TODOs

* Remove empty file

* Remove singletons

* Update TODOs

* TODO about map update

* Make stats package option aliases (like key has)

* Rename experimental/streaming

* streaming SDK builds w/ many TODOs

* Get the examples building

* Tidy up metric API / add interface check

* Remove logic from the registry; this is now a placeholder
2019-07-11 15:28:38 -07:00
Joshua MacDonaldandrghetia 74eda41032 Add jmacd as a code owner (#42) 2019-07-02 14:03:36 -07:00
Joshua MacDonaldandrghetia e17f4468a6 Golang opentelemetry-go draft API (incomplete) (#9)
* Work in progress from https://github.com/lightstep/opentelemetry-golang-prototype

* Renames

* Rename

* Finish rename

* Rename packages

* README
2019-06-14 11:37:05 -07:00