1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2026-06-03 18:35:08 +02:00
Commit Graph

826 Commits

Author SHA1 Message Date
Tyler Yahn 3e1d85ee23 Merge branch 'master' into master 2020-05-18 11:15:50 -07:00
Joshua MacDonald ee3c9ed1a5 Rename Observer to ValueObserver (#734)
* Observer -> ValueObserver

* Move wrappers into async.go
2020-05-18 11:03:43 -07:00
Joshua MacDonald 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 MacDonald 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
Vladimir Mihailenco 4408b6e328 Remove buggy enqueueWait 2020-05-16 10:19:46 +03:00
Joshua MacDonald 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
Tyler Yahn 1d554f34c1 Add standard package contain all semantic conventions 2020-05-15 12:42:13 -07:00
Tyler Yahn 55bbf51459 Switch to kv.Key types 2020-05-15 11:44:17 -07:00
Tyler Yahn f7f3fc3918 Remove redundant "Key" from const names 2020-05-15 11:38:02 -07:00
Tyler Yahn 4eecaf5391 Update resourcekey package doc 2020-05-15 11:35:44 -07:00
Tyler Yahn 7c209b5c8c Rename resourcekeys to singular resourcekey 2020-05-15 11:33:14 -07:00
Vladimir Mihailenco b2285e0c71 Fix timer.Stop 2020-05-15 14:01:43 +03:00
Vladimir Mihailenco 28571207b7 Add a comment 2020-05-15 11:54:56 +03:00
Vladimir Mihailenco 88d9ad0ba8 Add ref to #174 2020-05-15 11:54:56 +03:00
Vladimir Mihailenco 8885bc404d Move IsSampled check 2020-05-15 11:54:56 +03:00
Vladimir Mihailenco 774889cbfa Add proper enqueue sync 2020-05-15 11:54:56 +03:00
Vladimir Mihailenco ab19dddd0f Update tests 2020-05-15 11:54:56 +03:00
Vladimir Mihailenco 891d16dd15 Replace Ticker with Timer since Ticker does not Reset yet 2020-05-15 11:54:56 +03:00
Vladimir Mihailenco 2719c0ac16 Rewrite processQueue for better batching 2020-05-15 11:54:56 +03:00
Tyler Yahn ce266f9656 Prepare for releasing v0.5.0 2020-05-13 17:11:23 -07:00
Joshua MacDonald 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 MacDonald 587cde3352 Remove NewKey and update doc comment (#721)
* Update doc comment

* Remove NewKey

* NewKey->Key
2020-05-13 16:21:23 -07:00
Chen Yixiao 1301b6f3e4 Move core and key to kv package (#720)
* Move core to kv

* Move kv.Value to kv.value.Value

* Move key to kv
2020-05-13 16:06:03 -07:00
Joshua MacDonald 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
Chen Yixiao f0855b7d08 Move Number to api/metric package (#706)
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-05-10 23:44:42 -07:00
tensorchen 2ffbd869d7 Rename TraceFlagsSampled, TraceFlagsUnused 2020-05-06 01:41:54 +08:00
tensorchen bae2298a36 Rename trace.TraceID & trace.TraceIDFromHex 2020-05-03 13:48:38 +08:00
tensorchen c6c155de6f Move SpanContext from core package into trace 2020-05-02 20:17:11 +08:00
ET 34bd998963 Remove internal StateLocker implementation (#688)
Fixes #657

With the changes in #667 and #669 to use a plain-old-mutex for
concurrent access of Histogram and MinMaxSumCount aggregators,
the StateLocker implementation is no longer used in the project.

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-30 14:15:04 -07:00
Joshua MacDonald 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
ET e4ec924b25 Reimplement histogram using mutex instead of stateLocker (#669)
* Reimplement histogram using mutex instead of stateLocker

Move existing implementation to histogram_statelocker.go. Implement
benchmarks for single thread and parallel histogram updates comparing
mutex version to stateLocker version

* Drop statelocker implementation and alignment tests, benchmarks

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-29 10:08:58 -07:00
ET bd16ce0cfa Switch MinMaxSumCount to a mutex lock instead of StateLocker (#667)
* Switch MinMaxSumCount to a mutex lock instead of StateLocker

With multiple values being modified for each Update(), a single mutex
lock and non-atomic operations ends up being faster than making each
value update into an atomic operation.

* Remove StateLocker implementation and comparison benchmarks

* Remove field offset tests. No longer required with no atomics.

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-28 18:27:13 -07:00
Liz Fong-Jones ee30252752 add SetAttribute(string,interface{}) (#674) 2020-04-28 14:24:47 -07:00
Rahul Patel 1de7f68bfc Prepare for releasing v0.4.3 (#664) 2020-04-24 15:24:00 -07:00
Joshua MacDonald 3008c1bf02 Pass Resources through the metrics export pipeline (#659) 2020-04-24 09:44:21 -07:00
Joshua MacDonald cd1be0e698 Use the label.Set.Equivalent value instead of an encoding in the batcher (#658) 2020-04-24 09:32:49 -07:00
Joshua MacDonald 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 MacDonald 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
Krzesimir Nowak 927d9155ae Increase the visibility of the api/key package (#650)
* Point to the convenience functions in api/key package

This is to increase the visibility of the api/key package through the
api/core package, otherwise developers often tend to miss the api/key
package altogether and write `core.Key(name).TYPE(value)` and complain
at the verbosity of such a construction. The api/key package would
allow them to write `key.TYPE(name, value)`.

* Use the api/key package where applicable

This transforms all the uses of `core.Key(name).TYPE(value)` to
`key.TYPE(name, value)`. This also should help increasing the
visibility of the api/key package for developers reading the otel-go
code.

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-21 20:26:51 -07:00
Joshua MacDonald 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 MacDonald 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
Shouri Piratla 669d4b3a6c TraceID and SpanID implementations for Stringer Interface (#642)
* TraceID and SpanID implementations for Stringer Interface

* Hex encode while stringifying

* Modify format specifiers wherever SpanID is used

* comment changes

* Remove TraceIdString() and SpanIdString()

* Comments Fixes
2020-04-16 15:42:48 -07:00
Joshua MacDonald a8f7b3247b Remove WithKeys() option, defaultkeys batcher (#639) 2020-04-14 16:07:11 -07:00
Tyler Yahn 8e97011ea8 Update Resource (#613)
* Update Resource

When looking at grouping telemetry in an exporter based on the Resource
it is ideal if a map can be make with the key being represented by a
Resource. However, given the Resource is not hashable, this is not
possible.

This add a `String` method that can be used as a map key during
grouping. Additionally, this means the Resource now implements the
`Stringer` interface providing human-readable info when prited.

The internal structure of the Resource is changed. A static slice
containing all key-values in a sorted order replaces the existing map.
Additionally a set of keys is added to accommodate lookup during
`Merge`. Also, the string representation is kept in an internal field so
as to save processing for the `String` method (all fields are assumed to
be static after creation).

The `Attributes` method now returns a sorted slice of the associated
key-values.

The `Merge` method has been updated to support the changed structure of
the Resource.

New tests are added to validate the `String` method.

* Update comment

* Change loop into returned append

* Update key-value less func

Keys are unique in this package, treat them that way.

* Remove unnecessary allocation on empty attributes

* Update `Merge` method

Remove incomplete sorting of merged slices. Instead use the `sort`
package.

Add tests to catch sorting failure identified.

* Apply suggestions from code review

Co-Authored-By: ET <evantorrie@users.noreply.github.com>

* Escape Resource string representation

To ensure uniqueness of the string representation, the key-value content
needs to be escaped.

* Switch to an eager evaluation for the `String` method

* Refactor `Merge` method

Leave optimization to the future and simplify the merge.

* Add AttributeIterator

Include a method for a user of the Resource to iterate over the related
attributes without needed to copy the attributes.

* Fix ineffectual

* Fix lint

* Add licenses

* keys -> keySet for Resource

Co-authored-by: ET <evantorrie@users.noreply.github.com>
Co-authored-by: Rahul Patel <rahulpa@google.com>
2020-04-07 12:15:36 -07:00
ET 367635b740 Create a new recorder rather than reuse one for same labels (#610)
Co-authored-by: Rahul Patel <rahulpa@google.com>
2020-04-02 16:51:37 -07:00
Oncilla 8ef02a61aa prometheus: add histogram support to exporter (#601)
This PR adds histogram support to the prometheus exporter.

- Adds a new aggregator selector that returns a histogram for `MeasureKind`.
  The selector can be constructed using `simple.NewWithHistogramMeasure`
- Adds support for histogram aggregators in prometheus collect method.

With this PR, the default selector is changed to use histograms.

In order to support the prometheus histogram, the `aggregator.Histogram`
interface is extended with the `Sum` method.

fixes #487

Co-authored-by: Rahul Patel <rahulpa@google.com>
2020-04-01 14:36:37 -07:00
Rahul Patel 857e80c270 Prepare for releasing v0.4.2 (#608) 2020-03-31 12:57:37 -07:00
Liz Fong-Jones 02b6be15e0 Pre release v0.4.1 (#605)
* fix release script for ubuntu

* Prepare for releasing v0.4.1
2020-03-31 13:02:15 -04:00
Joshua MacDonald 1e8e72b530 Process the queue until no data but respect max batch size (#599) 2020-03-27 16:21:20 -07:00
Joshua MacDonald 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