1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2024-12-28 21:09:17 +02:00
Commit Graph

914 Commits

Author SHA1 Message Date
Damien Mathieu
ac5639159f
Call scopeInfoMetrics only once even if it returns an error (#4499) 2023-09-14 09:51:51 +02:00
Aaron Abbott
bcbee2ac1a
Allow '/' character in instrument names (#4501)
* Allow '/' character in instrument names

* Add changelog

* Update CHANGELOG.md

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

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-09-13 09:01:34 -07:00
Tyler Yahn
4242228103
Release v1.18.0/v0.41.0/v0.0.6 (#4489)
* Bump versions

* Prepare stable-v1 for version v1.18.0

* Prepare experimental-metrics for version v0.41.0

* Prepare experimental-schema for version v0.0.6

* Update changelog

* Update CHANGELOG.md

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-09-12 07:54:37 -07:00
Damien Mathieu
ac4fca2260
Use a TB interface in metricdatatest (#4483)
* use testing.TB interface in metricdatatest

* add changelog entry

* use our own TB interface

* Update CHANGELOG.md

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* rename TB to TestingT

* SIG meeting feedback

* ensure *testing.T implements TestingT

* Update sdk/metric/metricdata/metricdatatest/assertion.go

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* change formatting for last testing.TB too

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-09-11 07:26:21 -07:00
Tyler Yahn
9737995cdb
Drop support for Go 1.19 (#4481)
* Drop support for Go 1.19

* Add change to changelog

* Bump all modules to 1.20

* Update exponential_histogram_test.go

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-09-07 12:18:29 -05:00
Rangel Reale
fc70923e53
Ignore value option for metricdatatest (#4447) 2023-09-05 19:00:06 +02:00
David Ashpole
02616a25c6
add WithProducer to the prometheus exporter (#4473) 2023-08-31 11:17:07 -07:00
Tyler Yahn
e0a39b8f7d
Fix bridge/opencensus NewMetricExporter deprecation notice (#4470)
* Fix bridge/opencensus NewMetricExporter dep notice

* Link to NewMetricProducer

* Add PR number to changelog
2023-08-29 15:02:43 -07:00
Tyler Yahn
e528731853
Remove the deprecated internal exporters/otlp* packages (#4469)
* Remove the deprecated otlpmetric/internal pkg

* Remove the deprecated otlp/internal pkg

* Remove the deprecated otlptrace/internal pkg

* Remove the deprecated otlptrace/internal/envconfig pkg

* Remove the deprecated otlptrace/internal/otlpconfig pkg

* Remove the deprecated otlptrace/internal/otlptracetest pkg

* Remove the deprecated otlptrace/internal/retry pkg

* Add changelog entry

* Remove dependabot entries

* Remove versions.yaml entry

* Run go mod tidy

* Remove linter override for removed pkgs

* Run crosslink
2023-08-29 14:08:07 -07:00
Tyler Yahn
d702e92c2b
Remove the deprecated sdk/metric/aggregation package (#4468)
* Remove the deprecated sdk/metric/aggregation package

* Update PR number
2023-08-29 13:19:33 -07:00
Tyler Yahn
537fd53e6e
Remove the deprecated Jaeger exporter and example (#4467)
* Remove the deprecated Jaeger exporter

* Add changelog stub

* Remove the deprecated Jaeger example

* Add changelog stub for example rm

* Add PR number to changelog

* Remove dependabot entries

* Remove versions.yaml entries
2023-08-29 11:13:25 -07:00
Tyler Yahn
3c476ce181
Release v1.17.0/v0.40.0/v0.0.5 (#4464)
* Bump versions.yaml

* Prepare stable-v1 for version v1.17.0

* Prepare experimental-metrics for version v0.40.0

* Prepare experimental-schema for version v0.0.5

* Update changelog

* Update changelog release header
2023-08-28 07:50:03 -07:00
Tyler Yahn
6be116e31e
Add testing support for Go 1.21 (#4463)
* Add testing support for Go 1.21

* Add PR number in changelog
2023-08-27 07:18:34 -07:00
Tyler Yahn
69611bd01a
Switch Stream back to having an AttributeFilter field and add New*Filter functions (#4444)
* Add allow/deny attr filters

* Revert "Replace `Stream.AttributeFilter` with `AllowAttributeKeys` (#4288)"

This reverts commit 1633c74aea.

* Rename new attr filter funcs

Do not include the term "Attribute" in a creation function of the
"attribute" pkg.

* Update the AttributeFilter field documentation

* Add tests for filter creation funcs

* Add change to changelog

* Apply feedback

* Use NewDenyKeysFilter for allow-all and deny-list filters

* Remove links from field docs

These links do not render.

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-08-25 07:39:43 -07:00
Robert Pająk
d78820e905
Deprecate exporters/jaeger (#4423)
* Deprecate exporters/jaeger

* Delete jaeger example

* Remove jaeger exporter from docs

* Remove example from docs

* Update CHANGELOG.md

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

* Revert "Delete jaeger example"

This reverts commit 1a2b47bc9a.

* Revert "Remove example from docs"

This reverts commit 682db01075.

* Add nolint comment

* Remove Jaeger from main README

* Deprecate example/jaeger

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Update go.mod

* Update main.go

* fix lint

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2023-08-15 08:54:50 -07:00
Tyler Yahn
3904523917
Flatten sdk/metric/aggregation into sdk/metric (#4435)
* Deprecate the aggregation pkg

* Decouple the internal/aggregate from aggregation pkg

* Add Aggregation to the metric pkg

* Do not use sdk/metric/aggregation in stdoutmetric exporter

* Update all generated templates

* Update prom exporter

* Fix view example

* Add changes to changelog

* Update CHANGELOG.md

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Rename Sum to AggregationSum

* Fix comments

* Centralize validation of aggregation in pipeline

* Remove validation of agg in manual_reader selector opt

* Fix merge

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-08-14 08:15:15 -07:00
Tyler Yahn
199dc34a09
Support default histogram selection in OTLP exporter (#4437)
* Support default histogram selection in OTLP exporter

* Add changes to changelog
2023-08-14 07:21:04 -07:00
David Ashpole
fe51391dc6
Change metric.Producer to be an Option on Reader (#4346)
* metric.Producer can be passed as an argument to Reader using
WithProducer

* reproduce data race

* revert to atomic.Value
2023-08-11 12:40:39 -07:00
Tyler Yahn
e9014a287c
Increase instrument name maximum length from 63 to 255 characters (#4434) 2023-08-11 09:49:47 +02:00
Robert Pająk
a9552aaffa
sdk/metric: Remove Reader.ForceFlush and ManualReader.ForceFlush (#4375) 2023-08-11 09:22:21 +02:00
Tyler Yahn
319cb3a3be
Deprecate the otlptrace/internal packages (#4425)
* Stop generating otlptrace/internal and deprecate

* Remove the tracetransform templates

They are no longer used.

* Add change stub to changelog

* Add PR number to changelog
2023-08-10 14:25:53 -07:00
Tyler Yahn
10d9038059
Use first-seen instrument name for name conflicts (#4428)
* Add acceptance test

* Return the first-seen for instrument name conflicts

* Add changes to changelog
2023-08-10 09:58:30 -07:00
Tyler Yahn
e3ed198611
Deprecate the otlpmetric/internal package and sub-packages (#4420)
* Deprecate the otlpmetric/internal package and sub-packages

* Add stub to changelog

* Add PR number to changelog stubs

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-08-08 09:19:17 -07:00
Tyler Yahn
25a6f15348
Deprecate the otlp/internal package and all sub-packages (#4421)
* Deprecate the otlp/internal package and all sub-packages

* Add deprecation to changelog

* No lint deprecated pkg use in otlpmetric

* Remove the unused header*.go files from otlptrace

* Use template wrappederror in otlptrace

* Add back removed header.go

* Replace use of WrapTracesError with fmt.Errorf

* Revert otlptrace/internal to main

* Deprecate retry module
2023-08-08 07:45:53 -07:00
Damien Mathieu
10099bb876
Handle 2xx as success for OTLP HTTP trace and metric exporters (#4365)
* handle no content responses for otlpmetric exporter

* handle no content responses for otlptraces http exporter

* add changelog entry

* add a ResponseStatus attribute rather than using error

* accept any status code between 200 and 299

* rename i to code

* switch require to assert

* shutdown the client in defer

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-08-07 10:32:44 -07:00
Jared Jenkins
b221025a4c
sdk/resource: Fix data race with emptyAttributes (#4409)
* Fix ASAN bug with emptyAttributes.

If mutliple instantiations of a Resources struct are happening
in parallel, they can end up modifying the same underlying resource.

* Capture literal

* add test

* remove unwanted change

* Update sdk/resource/resource_test.go

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Update sdk/resource/resource_test.go

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Update sdk/resource/resource_test.go

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Update sdk/resource/resource_test.go

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Add changelog.

* Update CHANGELOG.md

Co-authored-by: Robert Pająk <pellared@hotmail.com>

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-08-07 10:22:48 -07:00
David Ashpole
e1e6b96647
do not append _total if the metric already ends in _total (#4373) 2023-08-07 10:12:57 -07:00
Tyler Yahn
9452b93012
Upgrade all use of semconv to v1.21.0 (#4408)
* Upgrade all use of semconv to v1.21.0

* Add change to changelog

* Add AIX and ZOS OS support

* Upgrade semconv for merged changes

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-08-07 09:30:40 -07:00
Tyler Yahn
d1f33f19b4
Decouple otlp/otlpmetric/otlpmetrichttp from otlp/internal and otlp/otlpmetric/internal using gotmp (#4407)
* Generate otlpmetrichttp/internal with gotmpl

* Use local internal pkg for otlpmetrichttp

* Add changes to changelog

* Fix rendered envconfig_test.go file name
2023-08-07 08:50:30 -07:00
Aaron Clawson
248413d654
Add the Exponential Histogram Aggregator. (#4245)
* Adds Exponential Histograms aggregator

* Added aggregation to the pipeline.

Adjust to new bucket

* Add no allocation if cap is available.

* Expand tests

* Fix lint

* Fix 64 bit math on 386 platform.

* Fix tests to work in go 1.19.
Fix spelling error

* fix codespell

* Add example

* Update sdk/metric/aggregation/aggregation.go

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Update sdk/metric/aggregation/aggregation.go

* Update sdk/metric/aggregation/aggregation.go

* Changelog

* Fix move

* Address feedback from the PR.

* Update expo histo to new aggregator format.

* Fix lint

* Remove Zero Threshold from config of expo histograms

* Remove DefaultExponentialHistogram()

* Refactor GetBin, and address PR Feedback

* Address PR feedback

* Fix comment in wrong location

* Fix misapplied PR feedback

* Fix codespell

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-08-04 11:57:44 -07:00
Tyler Yahn
f67ecb35dc
Decouple otlp/otlpmetric/otlpmetricgrpc from otlp/internal and otlp/otlpmetric/internal using gotmp (#4404)
* Add shared otlpmetric templates

* Generate otlpmetricgrpc/internal with gotmpl

* Use local internal in otlpmetricgrpc

* Add decoupling change to changelog
2023-08-03 17:08:49 -07:00
Tyler Yahn
2e6ca0af0c
Decouple otlp/otlptrace/otlptracegrpc from otlp/internal and otlp/otlptrace/internal using gotmpl (#4400)
* Use template retry pkg in otlpconfig

* Template out all otlptrace internal

* Add envconfig pkg to otlptrace/internal

* Generate otlptrace/internal/otlpconfig

* Revert templatizing otlptracegrpc

* Add changes to changelog

* Add partialsuccess to internal shared

* Use gotmpl to generate otlptracegrpc/internal

* Add changes to changelog
2023-08-03 13:51:45 -07:00
Tyler Yahn
58c9cf65d6
Decouple otlp/otlptrace/otlptracehttp from otlp/internal and otlp/otlptrace/internal using gotmpl (#4401)
* Use template retry pkg in otlpconfig

* Template out all otlptrace internal

* Add envconfig pkg to otlptrace/internal

* Generate otlptrace/internal/otlpconfig

* Revert templatizing otlptracegrpc

* Add changes to changelog

* Fix lint

* Add partialsuccess to internal shared

* Use gotmpl to generate otlptracehttp/internal

* Add change to changelog
2023-08-03 13:34:48 -07:00
Tyler Yahn
4928282877
Decouple otlp/otlptrace/internal from otlp/internal using gotmpl (#4397)
* Add gotmpl

* Add shared retry pkg

* Use template retry pkg in otlpconfig

* Update license-check to look at first 4 lines

* Template out all otlptrace internal

* Add envconfig pkg to otlptrace/internal

* Generate otlptrace/internal/otlpconfig

* Revert templatizing otlptracegrpc

* Add changes to changelog

* Fix lint

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-08-02 12:28:35 -07:00
Tyler Yahn
378e51e365
Do not block Temporality/Aggregation on OTLP metric export (#4395)
* otlpmetricgrpc - no block temp/agg selection with export

* otlpmetrichttp - no block temp/agg selection with export

* Add test Export doesn't block Temporality or Aggregation

* Deprecate internal New and Exporter

* Add changes to changelog

* Apply suggestions from code review
2023-08-02 07:38:04 -07:00
David Ashpole
528a0cb34f
Expand the set of units supported by the prometheus exporter (#4374) 2023-08-02 08:34:28 +02:00
Tyler Yahn
2899fcfdca
Document the Reader and Exporter concurrent safe requirements (#4381) 2023-07-30 22:26:17 +02:00
Tyler Yahn
9418aca877
Use PeriodicReader timeout for ForceFlush (#4377)
* Use PeriodicReader timeout for ForceFlush

Prioritize the user passed context deadline if it has one.

* Update changelog
2023-07-29 07:33:48 -07:00
Robert Pająk
4f0d73cbc2
sdk/trace: Refine context cancellation in batchSpanProcessor.ForceFlush (#4369) 2023-07-27 10:05:52 +02:00
Robert Pająk
830fae8d70
Add semconv/v1.21.0 (#4362)
* Update tooling to point to new repository
* Update changelog
* Remove leftovers
* generate semconv/v1.21.0
2023-07-26 17:09:04 +02:00
Aaron Clawson
d423bd4cf2
Add tests for malformed selectors in readers (#4350) 2023-07-25 11:25:38 +02:00
David Ashpole
c1a644a10c
PeriodicReader.Shutdown now applies the periodic reader's timeout by default (#4356) 2023-07-25 11:00:16 +02:00
Robert Pająk
088ac8e179
Fix panic, deadlock and race in BatchSpanProcessor (#4353) 2023-07-25 10:13:45 +02:00
Tyler Yahn
ab61991465
Log a view suggestion for duplicate instrument conflicts (#4349)
* Log a view suggestion for duplicate instrument conflicts

* Add change to changelog

* Update changelog entry
2023-07-24 07:47:56 -07:00
Aaron Clawson
a5c82bf26e
Add otlpmetric Temporality Preference env var (#4287)
* Add otlp metrics env vars

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-07-20 10:50:12 -05:00
Tyler Yahn
e08359f30c
Detect duplicate instruments for case-insensitive names (#4338)
* Detect dup inst for case-insensitive names

Resolve #3835

Detect duplicate instrument registrations for instruments that have the
same case-insensitive names. Continue to return the instruments with
different names, but log a warning. This is the solution proposed in
https://github.com/open-telemetry/opentelemetry-specification/pull/3606.

* Add changes to changelog

* Reset global logger after test
2023-07-19 10:17:38 -07:00
Tyler Yahn
84b2e54671
Use inst ID for agg cache key (#4337)
* Use inst ID for agg cache key

Resolve #4201

The specification requires the duplicate instrument conflicts to be
identified based on the instrument identifying fields:

- name
- instrument kind
- unit
- description
- language-level features such as the number type (int64 and float64)

Currently, the conflict detection and aggregation caching are done based
on the stream IDs which include an aggregation name, monotonicity, and
temporality instead of the instrument kind.

This changes the conflict detection and aggregation caching to use the
OpenTelemetry specified fields. This is effectively a no-op given there
is a 1-to-1 mapping of aggregation-name/monotonicity/temporality to
instrument kind (they are all resolved based on the instrument kind).

Additionally, this adds a stringer representation of the
`InstrumentKind`. This is needed for the logging of duplicate instrument
conflicts.

* Add changes to changelog
2023-07-19 09:59:07 -07:00
David Ashpole
c197fe9305
Metric SDK: Sum duplicate async observations regardless of filtering (#4289)
* Metric SDK: Remove the distinction between filtered and unfiltered attributes.
2023-07-19 10:52:11 -05:00
Tyler Yahn
f2a9f2f2be
Restrict Meters to only register and collect instruments it created (#4333)
* Add acceptance test

* Update Meter Register and collect only inst from itself

* Add change to changelog

* Fix spelling error

* Update changelog entry wording

* Simplify the partial success code path
2023-07-19 07:31:11 -07:00
Tyler Yahn
f194fb0c6c
Allow histogram for all instruments (#4332)
* Allow histogram for all instruments

Any instrument that can record negative values, do not include a sum in
the produced aggregation (like the specification recommends).

Resolves #4161

* Add changes to changelog

* Fix TestBucketsSum
2023-07-19 07:12:00 -07:00
Matthew Wear
9b0c4d2caf
Fix empty host.id (#4317) 2023-07-18 17:37:20 +02:00
Tyler Yahn
7467923a51
Add info/debug logging to the metric SDK (#4315)
* Add debug logging to the metric SDK

Resolves #3722

* Log MeterProvider and Meter setup at info level

* Add changelog entry

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-07-17 07:57:01 -07:00
Robert Pająk
3e203acae3
Fix changelog entry number for #4306 (#4314) 2023-07-14 21:13:51 +02:00
David Ashpole
03b8c47770
Add WithoutCounterSuffixes option in go.opentelemetry.io/otel/exporters/prometheus to disable addition of _total suffixes (#4306) 2023-07-14 17:52:35 +02:00
Tyler Yahn
55fb2bb57b
Log an error for an empty view criteria (#4307)
* Log an error for an empty view

Resolves #4149

* Add changelog entry
2023-07-12 15:10:40 -07:00
David Ashpole
de26aaa52e
Metric SDK: Do not export non-observed attribute sets for async instruments (#4290)
* drop non-observed attribute sets

* fix test comment

* add documentation for async callbacks dropping unobserved attributes
2023-07-11 07:19:38 -07:00
Tyler Yahn
1633c74aea
Replace Stream.AttributeFilter with AllowAttributeKeys (#4288)
* Replace Stream AttributeFilter with AttributeKeys

* Rename Stream field AttributeKeys to AllowAttributeKeys

Ensure forward compatibility if a deny-list of attribute keys is ever
added.

* Add change to changelog

* Update PR number in changelog

* Update CHANGELOG.md

Co-authored-by: Damien Mathieu <42@dmathieu.com>

---------

Co-authored-by: Damien Mathieu <42@dmathieu.com>
2023-07-08 08:01:47 -07:00
Robert Pająk
7ebfa8abf9
Add otlpmetricgrpc.Expoter and otlpmetrichttp.Exporter (#4272)
* Add otlpmetricgrpc.Expoter and otlpmetrichttp.Exporter

* Update changelog
2023-07-01 07:20:35 -07:00
Robert Pająk
d57569379f
otlpmetric: Fix serialization of time.Time zero values (#4271) 2023-06-30 09:19:59 +02:00
Max Chechel
457029232d
Prometheus exporter: concurrent collect bugfix (#3899)
* Concurrent collect bugfix

* Used sync.Mutex and code cleanup

* Revert "Concurrent collect bugfix"

This reverts commit 1a30f233b6.

* Used sync.Mutex and re-grouped protected members

* Added test and updated changelog

* Updated changelog

* Take care of potential panic in otel.Handle

* Extracted critical section in a separate method and fixed nil scope info

* Lock the whole scope of the func

* Moved otel.Handle out of the critical section

* Fixed calling createScopeInfoMetric twice and updated changelog

* Fixed markdown linter errors

* Added test for nil scopeinfo

* Fix merge artifacts

* Fixed linter errors

* Protect the whole validateMetrics method wity mutex

* Update CHANGELOG.md

* Update exporters/prometheus/exporter.go

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Update CHANGELOG.md

* Document that Collect is concurrent-safe

* Update exporter_test.go

* Update exporters/prometheus/exporter_test.go

* Update exporters/prometheus/exporter.go

Co-authored-by: David Ashpole <dashpole@google.com>

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: David Ashpole <dashpole@google.com>
2023-06-29 13:31:20 +02:00
Tyler Yahn
1b02c9122d
Format log message before logging with logr (#4143)
* Format log message before logging with logr

Fixes #4141

The logr calling convention does not support fmt semantics for message
formatting. Format the message before it is sent to logr for logging.

* Add change to changelog

* Fix lint

Don't shadow the log pkg.

* Replace buflogr with funcr

* Run make

* Update exporters/zipkin/zipkin_test.go

Co-authored-by: Robert Pająk <pellared@hotmail.com>

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-06-26 09:54:35 -07:00
Damien Mathieu
3b124b39d1
Count the Collect duration towards the PeriodicReader timeout, and document the behavior (#4221) 2023-06-26 08:47:39 +02:00
Robert Pająk
6b262b44ac
sdk/metric: Reader factories return structs (#4244) 2023-06-22 09:09:00 +02:00
Aaron Clawson
12138c9444
Add Exponetial Histograms to otlp transforms (#4222) 2023-06-21 20:57:49 +02:00
Aaron Clawson
b757c7083b
Exponential Histogram Datatypes (#4165)
* Adds the Exponential histogram data type.

* Changelog

* Updated comments

* Apply suggestions from code review

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Split Exponential Buckets into it's own type

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-06-14 07:36:13 -07:00
Damien Mathieu
844b107e98
Validate instrument names when creating them (#4210)
* validate instrument names when creating them

* add changelog entry

* remove now invalid instrument name from prometheus test

* fix invalid names in meter_test

* keep returning the instrument even if its name is invalid

* make invalid instrument name a known error

* bring back prometheus invalid instrument name test

* remove warning

* fix lint

* move name validation into the lookup method

* fix lint again

* Revert "move name validation into the lookup method"

This reverts commit ec8ccc5fa0.

* rename ErrInvalidInstrumentName to ErrInstrumentName

* switch to explicit validations, instead of a regexp

* Update CHANGELOG.md

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

* remove double check for empty name

* test validation shortcut with a single character

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2023-06-09 08:32:56 -07:00
Tyler Yahn
ce46eb5f85
Warn instead of Info log instrument conflict (#4202)
* Warn instead of Info log instrument conflict

* Add change to changelog
2023-06-06 15:22:34 -07:00
Damien Mathieu
be82610b44
Return noop meters once the provider has been shutdown (#4154) 2023-06-05 09:51:21 +02:00
Robert Pająk
b4faa3dfdb
semconv: Stop generating httpconv.go, netconv.go, http.go (#4145) 2023-06-05 09:33:03 +02:00
Tyler Yahn
e0852d609c
Release v1.16.0/v0.39.0 -- Stable Metric API (#4100)
* Update versions

* Prepare stable-v1 for version v1.16.0

* Prepare experimental-metrics for version v0.39.0

* Update changelog
2023-05-22 12:06:21 -07:00
Mikhail Mazurskiy
f95bee22b9
Use strings.Cut() instead of string.SplitN() (#4049)
strings.Cut() generates less garbage as it does not allocate the slice to hold parts.
2023-05-17 09:28:44 -07:00
Robert Pająk
8445f21305
Add semconv/v1.20.0 (#4078)
* Add semconv/v1.20.0

* Update changelog

* Change http.flavor to net.protocol.(name|version)

* Update comments in httpconv

* Fix vanity import

* Update CHANGELOG.md

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

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-05-16 11:17:28 -07:00
Robert Pająk
7dea2225a2
sdk/resource: Fix build for BSD OSes (#4077)
* sdk/resource: Fix build for BSD OSes

* Add changelog

* Update header in changelog

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-05-10 07:47:41 -07:00
Tristan Sloughter
b243b6e819
Add semconv/v1.19.0 (#3848)
* Add semconv/v1.19.0

Includes adding semconv/internal/v3/ to support the move of
the semantic convention HTTPUserAgentKey to the new key
UserAgentOriginalKey

* Update CHANGELOG.md

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* format http.go.tmpl using tabs instead of spaces

* update http.go.tmpl to use v3 of semconv/internal

* Generate attribute_group.go

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-05-08 09:02:10 -07:00
Tyler Yahn
4f4edec5e2
Remove the deprecated metric/instrument package (#4055)
* Remove deprecated `metric/instrument`

* Apply suggestions from code review

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-05-08 07:39:50 -07:00
Tyler Yahn
e6839571d2
Release v1.16.0-rc.1/v0.39.0-rc.1 (#4048)
* Bump versions

* Prepare stable-v1 for version v1.16.0-rc.1

* Prepare experimental-metrics for version v0.39.0-rc.1

* Update changelog

* Update CHANGELOG.md
2023-05-03 19:39:01 -07:00
Tyler Yahn
17903bcdb6
Revert "Move global metric back to otel/metric/global for minor release (#3986)" (#4039)
* Revert "Move global metric back to `otel/metric/global` for minor release (#3986)"

This reverts commit 8dba38e02f.

* Add changes to changelog

* Fix versions and go mod tidy

* Run go-mod-tidy
2023-05-02 11:15:39 -07:00
Tyler Yahn
5814858e4e
Revert "Move the metric API back to experimental-metrics (#3987)" (#4038)
* Revert "Move the metric API back to experimental-metrics (#3987)"

This reverts commit 51345570a0.

* Add change to changelog
2023-05-02 11:00:42 -07:00
Tyler Yahn
fc96138629
Release v1.15.1/v0.38.1 (#4046)
* Bump versions

* Prepare stable-v1 for version v1.15.1

* Prepare experimental-metrics for version v0.38.1

* Update changelog
2023-05-02 10:18:20 -07:00
Ashvitha
dde1930477
Remove unused imports in host_id_bsd.go (#4041)
* remove unused imports in host_id_bsd.go

* Add changelog entry

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-05-01 08:07:05 -07:00
Tyler Yahn
8e76ab23b4
Release v1.15.0/v0.38.0 (#4035)
* Bump versions

* Prepare stable-v1 for version v1.15.0

* Prepare experimental-metrics for version v0.38.0

* Fix otlpmetric tests

Check pre 1.0 as well

* Update the chagelog
2023-04-28 07:48:08 -07:00
Tyler Yahn
15d6ba2921
Unify metric API into the one otel/metric package (#4018)
* Move instrument into metric

* Update metric docs to include instrument

* Update package names

* Update all imports of sdk/metric/instrument

* Rename Option to InstrumentOption

* Deprecate otel/metric/instrument

* Add changelog entry
2023-04-27 11:25:48 -07:00
Kaushal Shah
86f325839c
Added methods for SpanID and TraceID on bridgeSpanContext (#3966)
* Added methods for SpanID and TraceID on bridgeSpanContext

* changed test name

* Added entry in changelog, updated readme, added comments on methods and fixed test case

* updated CHANGELOG.md

* promoted all methods from SpanContext to bridgeSpanContext

* fixed readme and removed redudant IsSampled() from bridgeContext

* fixed readme lint

* Apply suggestions from code review

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* addressed code review comment

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-04-25 10:11:03 -07:00
Tyler Yahn
f8fcfda872
Add options to measurement methods (#3971)
* Add options to measurement methods

* Update noop

* Update global impl

* Update SDK impl

* Fix metric API example

* Update prometheus exporter tests

* Update examples

* WithAttributes and WithAttributeSet

* Add changes to changelog

* Accept slice instead of variadic to new conf funcs

* Clarify WithAttributes performance in docs

* Address feedback about WithAttributes comment

* Add changelog entry for WithAttribute{s,Set}

* Remove number scope from measure opts

* Update changelog

* Remove left-over test cases

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-04-18 07:16:06 -07:00
Kaushal Shah
37388599eb
Fixed race condition in OnEnd and added a unit test (#3951)
* Fixed race condition in OnEnd and added a test

* fixed code review comments

* fixed lint

* Update CHANGELOG.md

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Update sdk/trace/simple_span_processor_test.go

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

* Update sdk/trace/simple_span_processor_test.go

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

* Update sdk/trace/simple_span_processor_test.go

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

* fixed panic check

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-04-14 07:23:47 -07:00
Tyler Yahn
8dba38e02f
Move global metric back to otel/metric/global for minor release (#3986)
* Revert "Remove the deprecated `otel/metric/global` pkg (#3829)"

This reverts commit 60f7d42d1e.

* Revert "Support a global MeterProvider in `go.opentelemetry.io/otel` (#3818)"

This reverts commit 813936187e.

* Remove top level metric global

* Add change to changelog
2023-04-13 07:39:39 -07:00
Charlie Le
1b55281859
docs(typos): Run codespell to fix typos (#3980)
* docs(typos): Run codespell to fix typos

There were a lot of typos through the repository, so I ran
[codespell][], a tool for automatically fixing typos, to fix them.

```console
make codespell
```

There's already a tool called [misspell][] that's supposed to take care
of this, but misspell hasn't been updated for 6 years, and it doesn't
seem to be catching any of the typos that codespell can.

[codespell]: https://github.com/codespell-project/codespell
[misspell]: https://github.com/client9/misspell

* Revert and ignore spelling for Consequentially

* Add GH workflow for codespell

* Revert GH Workflow and Makefile for codespell

Per @pellared, since there's no instructions for setting up codespell,
it was suggested that the changes for setting up a workflow and section
in Makefile include instructions for setting up codespell as well.

* Revert spelling on consequently

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-04-11 17:28:13 -07:00
Remy Chantenay
1b97d78324
Add Version func to otlpmetric and otlptrace (#3956)
* Add Version func to otel/exporters/otlp/otlpmetric

* Add Version func to otel/exporters/otlp/otlptrace

* Remove Version func from otel/exporters/otlp/internal

* Update CHANGELOG.md

* Add nolint rule to hostid readFile

* Move GetUserAgentHeader to internal packages

* Update exporters/otlp/otlpmetric/version.go

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

* Update exporters/otlp/otlptrace/version.go

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

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-04-10 14:19:49 -07:00
Luke Stoward
1bc9b56a17
[exporters/otlp/otlpmetric] Wrap upload metrics error to provide additional context (#3974)
* Wrap upload metrics error to provide additional context

* Add PR number to CHANGELOG

* Update CHANGELOG.md

Co-authored-by: Damien Mathieu <42@dmathieu.com>

---------

Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-04-10 07:29:01 -07:00
Gustavo Paiva
1c05d9c0b7
prometheus: add WithNamespace option to prefix metrics (#3970)
* prometheus: add WithNamespace option to prefix metrics

* sanitize namespace, add config test

* Update CHANGELOG.md

Co-authored-by: Robert Pająk <pellared@hotmail.com>

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-04-06 13:44:13 -05:00
Damien Mathieu
02fa1e2a8d
Fix aggregation.Default to properly return the default one (#3967)
* fix aggregation.Default to properly return the default one

* add changelog entry

* default aggregation does not error anymore

* test all instrument kinds
2023-04-05 07:44:48 -07:00
Tyler Yahn
65ebe5e50f
Add embedded private method interfaces in metric API (#3916)
* PoC of embedded private method ifaces

* Rename embed to embedded

* Add an embedded iface for all instruments

* Fix metric/instrument tests

* Fix global and otel

* Fix SDK

* Comment the embedded pkg types

* Update the embedded pkg docs

* Update otel/metric docs about impls

* Update otel/metric type docs on impl

* Update docs in otel/metric/instrument on default

* Add changes to changelog

* Apply suggestions from code review

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Apply feedback on URLs

* Reword based on feedback

* Make it clear we only recommended embedding noop

* Ignore links with godot linter

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-04-03 07:33:19 -07:00
Tyler Yahn
271df1dc01
Add Version func to otel/sdk (#3949)
* Add Version func to otel/sdk

* Update sdk/resource to use sdk version

* Remove unused UserAgent from sdk/internal

* Add changes to changelog

* Update CHANGELOG.md

Co-authored-by: Robert Pająk <pellared@hotmail.com>

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-03-30 12:49:39 -07:00
Tyler Yahn
f4a9d78e7f
Update Histogram Extrema and Sum to be generic (#3870)
* Update Histogram Extrema and Sum to be generic

* Update metric SDK

* Update exporters

* Add changes to changelog
2023-03-29 11:24:25 -07:00
Tyler Yahn
63a0f51c2d
Move metric No-Op to metric/noop (#3941)
* Revert "Revert "Move metric No-Op to metric/noop (#3893)" (#3921)"

This reverts commit 795ad97119.

* Add PR number

* Move example_test back to `otel/metric`

* Update CHANGELOG.md

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Remove redundant panic tests

* Update noop pkg docs

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-03-29 08:05:07 -07:00
Mikhail Mazurskiy
c4940f3b43
TracerProvider allows calling Tracer() while it's shutting down (#3924) 2023-03-27 17:05:44 -07:00
Eduardo Bonzi da Conceição
b73a33c487
Warn on intitialization of Simple SpanProcessor (#3854)
* add warning log about using simpleSpanProcessor in production

* add changelog entry

* fix changelog

* switch to using the new Warn logging function

* revert alignment formatting in changelog

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-03-24 08:29:52 -07:00
Tyler Yahn
7ad0ae4da1
Release v1.15.0-rc.2/v0.38.0-rc.2 (#3923)
* Bump versions

* Prepare stable-v1 for version v1.15.0-rc.2

* Prepare experimental-metrics for version v0.38.0-rc.2

* Update changelog

* Update CHANGELOG.md

Co-authored-by: Robert Pająk <pellared@hotmail.com>

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-03-23 07:47:46 -07:00
Tyler Yahn
795ad97119
Revert "Move metric No-Op to metric/noop (#3893)" (#3921)
* Revert "Move metric No-Op to `metric/noop` (#3893)"

This reverts commit 3c75a44f84.

* Persist removal of NewNoopMeter
2023-03-22 14:41:28 -07:00
Mikhail Mazurskiy
e4cc478c02
TracerProvider doesn't allow to register a SpanProcessor after shutdown (#3845) 2023-03-22 09:47:42 -07:00
Matthew Wear
282a47e3d3
add host.id to resource auto-detection (#3812)
* add platform specific hostIDReaders

* add WithHostID option to Resource

* add changelog entry

* Apply suggestions from code review

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

* linting

* combine platform specific readers and tests

This allows us to run tests for the BSD, Darwin, and Linux readers
on all platforms.

* add todo to use assert.AnError after resource.Detect error handling is updated

* move HostID test utilities to host_id_test

* return assert.AnError from mockHostIDProviderWithError

* use assert.ErrorIs

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

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2023-03-21 14:45:30 -05:00
Sinan Ülker
1eab60f714
Enhance internal logging (#3900)
* Introduce `Warn` function in global package

* Cover log levels with tests

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2023-03-21 14:33:37 -05:00
Tyler Yahn
3c75a44f84
Move metric No-Op to metric/noop (#3893)
* Move metric No-Op to noop pkg

* Remove the unneeded embedded ifaces

* Update CHANGELOG.md

Co-authored-by: Peter Liu <lpfvip2008@gmail.com>

---------

Co-authored-by: Peter Liu <lpfvip2008@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2023-03-21 14:25:23 -05:00
Tyler Yahn
90df52586b
Split metric configuration down to instrument (#3895)
* Split metric configuration down to instrument

* Rename *ObserverOptions to *ObservableOption

* Update option docs with links
2023-03-21 08:16:57 -05:00
Tyler Yahn
b7b53bba40
Remove Synchronous and rename Asynchronous (#3892)
* Remove the Synchronous interface

* Rename Asynchronous to Observable

* Update PR number
2023-03-20 13:26:17 -07:00
Sinan Ülker
7fc24d2b14
Update the metric Export interface to accept a *ResourceMetrics instead of ResourceMetrics (#3853)
* Change the signature of Export method

* Pass tests for otlp exporter

* Pass tests for otlp grpc and http packages

* Update opencensus bridge

* Refactor and pass tests for stdoutmetric package

* Update periodic reader tests

* Update changelog

* Apply suggestions

* Apply suggestions

* Update CHANGELOG.md

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-03-16 10:58:43 -07:00
Tyler Yahn
01b8f15a72
Add Exemplar to metricdata package (#3849)
* Add Exemplar to metricdata pkg

* Update histogram Aggregator

* Update opencensus bridge

* Update prometheus exporter

* Update OTLP exporter

* Update stdoutmetric exporter

* Add changes to changelog

* Update fail tests

* Add tests for IgnoreExemplars

* Fix merge
2023-03-14 07:56:18 -07:00
Tyler Yahn
b62eb2ca88
Pool sortables used to create attribute sets (#3832)
* Pool sortables used to create attribute sets

* Move sync pool to attribute pkg

* Add change to changelog

* Fix comment

* Apply suggestions from code review

Co-authored-by: Peter Liu <lpfvip2008@gmail.com>

* Update sdk/metric/instrument.go

Co-authored-by: Robert Pająk <pellared@hotmail.com>

* Update comment based on feedback

* Apply feedback

---------

Co-authored-by: Peter Liu <lpfvip2008@gmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-03-13 11:19:28 -07:00
Peter Liu
6a95d5770c
New stdoutmetric encoder with ignore timestamp (#3828)
* new stdoutmetric encoder with ignore timestamp

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>

* refactor to avoid using a dedicated encoder

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>

* remove useless encoder code

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>

* dont't change the original data

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>

* Update exporters/stdout/stdoutmetric/exporter.go

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

* complete test data and add changelog entry

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>

* Move changelog entry to unreleased

---------

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <codingalias@gmail.com>
2023-03-09 11:41:47 -08:00
Tyler Yahn
1626ff746f
Wrap errors returned from Detect and New in sdk/resource (#3844)
* Update Detect and New to wrap errors

* Add TestNewWrapedError

Test that New returns an error that can be unwrapped.

* Add changes to changelog

* Clarify and simplify errors
2023-03-08 15:15:27 -08:00
Tyler Yahn
60f7d42d1e
Remove the deprecated otel/metric/global pkg (#3829)
* Remove the deprecated `otel/metric/global` pkg

* Add changelog entry

* Update PR number in changelog

* Fix lint

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-03-07 08:36:19 -08:00
Alan Protasio
3015c86cfd
Avoid creating new references on WithDeferredSetup for every span (#3833)
* Avoid creating new references on WithDeferredSetup call
2023-03-07 07:40:31 -06:00
Tyler Yahn
c869b9171a
Document httpconv and netconv packages as trace providing only trace semantic convention (#3823)
* Document {http,net}conv pkgs as trace semconv

* Fix spelling error
2023-03-02 11:42:46 -08:00
Tyler Yahn
34aacd95ff
Release v1.15.0-rc.1 (#3825)
* Bump module set versions

* Prepare stable-v1 for version v1.15.0-rc.1

* Prepare experimental-metrics for version v0.38.0-rc.1

* Update changelog
2023-03-02 07:43:27 -08:00
Tyler Yahn
813936187e
Support a global MeterProvider in go.opentelemetry.io/otel (#3818)
* Move ErrorHandler impl to internal

To avoid the import cycle, the otel/metric package needs to not import
otel. To achieve this, the error handling implementation is moved to the
otel/internal/global package where both can import the needed
functionality.

* Add global metric to go.opentelemetry.io/otel

* Crosslink and update to global metric in otel

* Add changes to changelog

* Set PR number in changelog

* Add global metric unit tests

* Rename MeterProivder() to GetMeterProivder()

* Add TODO to remove nolint comments
2023-03-01 11:16:03 -08:00
Tyler Yahn
c39e625cdf
Drop compatibility testing for Go 1.18 (#3813)
* Drop support for Go 1.18

* Add changes to changelog

* Add PR number
2023-03-01 09:15:39 -08:00
Tyler Yahn
264becee27
Remove the deprecated metric/unit package (#3814)
* Remove the dep metric/unit package

* Add PR number
2023-02-28 14:14:43 -08:00
Robert Pająk
d0e4a438ef
Handle empty env vars as it they were not set (#3764)
* Handle empty env vars as it they were not set

* Add changelog entry

* Add missing unit test
2023-02-28 12:43:48 -08:00
Tyler Yahn
2e54fbb3fe
Release v1.14.0/v0.37.0/v0.0.4 (#3810)
* Bump mod versions

* Add bridge/opentracing/test to versions.yaml

* Prepare stable-v1 for version v1.14.0

* Prepare experimental-metrics for version v0.37.0

* Prepare experimental-schema for version v0.0.4

* Update changelog
2023-02-27 13:57:23 -08:00
Aaron Clawson
46d7f8dad3
Add Note about dropping go 1.18 (#3771)
* Add Note about dropping go 1.18

* Fix lint

* Apply suggestions from code review

Co-authored-by: Robert Pająk <pellared@hotmail.com>

---------

Co-authored-by: Damien Mathieu <damien.mathieu@elastic.co>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-02-27 11:01:34 -08:00
Tigran Najaryan
071d317394
Fix incorrect "all" and "resource" definition for Schema File (#3777)
The "all" and "resource" sections had incorrect definitions of "attribute_rename"
transform. It was missing the subkey "attribute_map".

This is a bug fix and makes the implementation compliant with the spec:
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/schemas/file_format_v1.1.0.md#resources-section

Related issue: https://github.com/open-telemetry/opentelemetry-specification/issues/3245

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-02-27 08:38:41 -08:00
Tyler Yahn
fe6856e804
Deprecate metric/unit and use a string for units in the metric API/SDK (#3776)
* Replace Unit from metric/unit with string

Deprecate the units package. This package will not be included in the
metric GA.

* Add changes to changelog
2023-02-27 08:10:56 -08:00
Aaron Clawson
17e5d0f549
Do not wrap error if multierror does not have one. (#3772) 2023-02-27 09:10:55 -06:00
Robert Pająk
1d6704c8fc
Support OTEL_METRIC_EXPORT_INTERVAL and OTEL_METRIC_EXPORT_TIMEOUT (#3763)
* Support OTEL_METRIC_EXPORT_INTERVAL and OTEL_METRIC_EXPORT_TIMEOUT

* Fix non-positive duration error log


Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-02-24 09:26:47 -06:00
Pijus Navickas
69d09462db
Implement IsSampled for OpenTelemetry bridgeSpanContext (#3570)
* Add IsSampled to OpenTracing bridge

* Add entry to CHANGELOG

* Add note to the README

* Update CHANGELOG.md

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

* Update bridge/opentracing/README.md

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

* Update bridge/opentracing/README.md

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

* Update bridge/opentracing/README.md

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

* Update bridge/opentracing/README.md

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

* Add PR ID to changelog note

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-02-23 13:11:48 -08:00
Tyler Yahn
99ec432679
Accept scope attributes during Tracer creation (#3739)
* Accept scope attributes during Tracer creation

The OTel specification requires the instrumentation attributes are
accepted by the API for the Tracer. This adds a TracerOption to satisfy
that requirement.
2023-02-21 13:31:37 -06:00
Damien Mathieu
37931d44b9
Allow using OTLP export retrier concurrently (#3756)
* allow using OTLP export retrier concurrently
2023-02-21 11:43:24 -06:00
Tyler Yahn
de94fafd17
Do no silently drop unknown schema data (#3743)
* Do no silently drop unknown schema data

* Add entry to changelog

* Add PR number to changelog

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2023-02-21 08:39:38 -08:00
Tyler Yahn
f78f72d66c
Merge instrument cache to inserter (#3724)
* Merge instrument cache to inserter

The current pipeline resolution path will only add the resolved
aggregators to the pipeline when it creates one (cache miss). It will
not add it if there is a cache hit. This means (since we cache
instruments at the meter level, not the pipeline level) the first reader
in a multiple-reader setup is the only one that will collect data for
that aggregator. All other readers will have a cache hit and nothing is
added to the pipeline. This is causing #3720.

This resolves #3720 by moving the instrument caching into the inserter.
This means aggregators are cached at the reader level, not the meter.

* Rename aggCV to aggVal

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-02-21 08:07:37 -08:00
Aaron Clawson
cc8bdaaad4
Change the Reader.Collect Signature. (#3732)
* Changes the signature of Collect().

This DOES NOT make the SDK reuse memory, but it does enable it to be added.
2023-02-21 09:04:27 -06:00
Tyler Yahn
c5c3c95077
Accept scope attributes during Meter creation (#3738)
* Accept scope attr during Meter creation

* Fix lint

* Add changes to changelog

* Return a Set from InstrumentationAttributes

Likely these attributes will be stored as a Set in the SDK. Don't cause
two conversions because we return a slice here.

* Add config tests

* Fix lint
2023-02-17 10:00:19 -08:00
Tyler Yahn
80f187fd0d
Bump CI default version of Go to 1.20 (#3733)
* Bump CI default version of Go to 1.20

* Use crypto/rand in Jaeger exporter testing

* Use crypto/rand Reader in otlp exporters

* Remove use of dep rand.Seed in prometheus exporter

* Update changelog with public changes

* Quote DEFAULT_GO_VERSION value

* Update .github/workflows/ci.yml

* Update CHANGELOG.md

Co-authored-by: Damien Mathieu <42@dmathieu.com>

---------

Co-authored-by: Damien Mathieu <42@dmathieu.com>
2023-02-16 08:33:12 -08:00
Peter Liu
d68b05fbee
Refactor package internal/attribute to not use generics. (#3725)
* remove generics

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>

* Update internal/attribute/attribute.go

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Update internal/attribute/attribute.go

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Update internal/attribute/attribute.go

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Update internal/attribute/attribute.go

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Update internal/attribute/attribute.go

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Update internal/attribute/attribute.go

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Update internal/attribute/attribute.go

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Update internal/attribute/attribute.go

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* refactor unit test

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>

* add changelog

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>

* update changelog

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>

* Update internal/attribute/attribute.go

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

* replace interface{} with any

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>

---------

Signed-off-by: Peter Liu <lpfvip2008@gmail.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-02-15 10:37:07 -08:00
Yuri Shkuro
68975917e5
[bridge/ot] Fall-back to TextMap carrier when it's not ot.HttpHeaders (#3679)
* [bridge/ot] Fall-back to TextMap carrier when it's not ot.HttpHeaders

Signed-off-by: Yuri Shkuro <github@ysh.us>

* changelog

* go mod tidy

* format

* fix deps

* delint

* simplify

* undo

* Fix changelog

* Move new tests under test/

* go fmt

* delint

Signed-off-by: Yuri Shkuro <github@ysh.us>

---------

Signed-off-by: Yuri Shkuro <github@ysh.us>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-02-14 08:01:55 -08:00
Tyler Yahn
f3b4813f2f
Add semconv/v1.18.0 (#3719)
* Add semconv/v1.18.0

* Add PR number to changelog
2023-02-13 13:51:11 -08:00
Anthony Mirabella
2f3c6df7bb
Add semantic conventions of the event type (#3697)
* Add semantic conventions of the `event` type

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update CHANGELOG

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update CHANGELOG.md

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

---------

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-02-09 12:40:15 -08:00
Tyler Yahn
a7fb378ad9
Add testing for Go 1.20 (#3693)
* Add testing for Go 1.20

* Update PR number in changelog

* Quote 1.20 in ci.yml
2023-02-08 14:08:57 -08:00
Anthony Mirabella
f2fd476f43
Prepare v1.13.0/v0.36.0 release (#3688)
* update versions.yaml for release

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Prepare stable-v1 for version v1.13.0

* Prepare experimental-metrics for version v0.36.0

* Update CHANGELOG

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

---------

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
2023-02-07 14:34:41 -05:00
Tyler Yahn
7b74959132
Remove http.target attr from ServerRequest (#3687)
* Remove http.target attr from ServerRequest

* Update changelog

* Remove trailing space in changelog
2023-02-07 14:12:41 -05:00
Tyler Yahn
0446207a38
Add funcs to semconv to create semantic convention KeyValues (#3675)
* Add semconv KeyValue funcs

* Add changes to changelog

* Variadic slice func parameters

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-02-06 09:41:41 -08:00
Tyler Yahn
aa5122490e
Remove the deprecated instrument packages (#3631)
* Remove the deprecated instrument packages

* Update changelog

* Add PR number
2023-01-31 08:12:39 -08:00
Tyler Yahn
6cb5718eaa
Release v1.12.0/v0.35.0 (#3623)
* Update module versions

* Prepare stable-v1 for version v1.12.0

* Prepare experimental-metrics for version v0.35.0

* Prepare experimental-schema for version v0.0.4

* Update the CHANGELOG

* Undo bump to experimental-schema

Revert to original version as nothing has changed.

* Fix PR number in changelog

* Move change from #3497 into current release
2023-01-29 07:41:22 -08:00
Joshua MacDonald
ec13377b6b
OTLP traces export errors use a consistent error message prefix (#3516)
* OTLP traces export errors use a consistent error message prefix

* use a wrapped error

* update changelog

* merge changelog

* Update CHANGELOG.md

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-01-27 10:42:15 -08:00
Tyler Yahn
7f4d76ab7a
Use Extrema type for Histogram min/max (#3550)
* Use Extrema type for Histogram min/max

* Add case for Extrema in AssertHasAttributes

* Add changes to changelog

* Add NewExtrema

* Add metricdatatest tests

* Use getter for Extrema

* Fix Extrema doc language

* Correct dataset to be one word

* Ensure multiple extrema are tested in a dataset
2023-01-26 10:49:58 -08:00
Tyler Yahn
c0fb8dec4c
Remove the unneeded Observe method from the async instruments (#3586)
* Update RegisterCallback and Callback decls

RegisterCallback accept variadic Asynchronous instruments instead of a
slice.

Callback accept an observation result recorder to ensure instruments
that are observed by a callback.

* Update global impl

* Update noop impl

* Update SDK impl

* Fix prometheus example

* Fix metric API example_test

* Remove unused registerabler

* Rename ObservationRecorder to MultiObserver

* Update Callback documentation about MultiObserver

* Remove the Observe method from async inst

* Revert to iface for Observers

* Fix async inst docs

* Update global async delegate race test

* Restore removed observe doc

* Remove TODO

* Remove stale comment

* Update changelog
2023-01-25 12:58:09 -08:00
Tyler Yahn
c7e2679529
Generate the semconv/v1.17.0 package (#3599)
* Generate semconv/v1.17.0

* Update all semconv use to v1.17

* Add changes to changelog
2023-01-24 08:10:41 -08:00
Tyler Yahn
a1ce7e5f0d
Combine precomputed values of filtered attribute sets (#3549)
* Combine spatially aggregated precomputed vals

Fix #3439

When an attribute filter drops a distinguishing attribute during the
aggregation of a precomputed sum add that value to existing, instead of
just setting the value as an override (current behavior).

* Ignore false positive lint error and test method

* Add fix to changelog

* Handle edge case of exact set after filter

* Fix filter and measure algo for precomp

* Add tests for precomp sums

* Unify precomputedMap

* Adds example from supplimental guide

* Fixes for lint

* Update sdk/metric/meter_example_test.go

* Fix async example test

* Reduce duplicate code in TestAsynchronousExample

* Clarify naming and documentation

* Fix spelling errors

* Add a noop filter to default view

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2023-01-20 09:54:42 -08:00
Tyler Yahn
69b18e62a7
Redesign RegisterCallback API (#3584)
* Update RegisterCallback and Callback declerations

RegisterCallback accepts variadic Asynchronous instruments instead of a
slice.

Callback accepts an observation result recorder to ensure instruments
that are observed by a callback.

* Update global, noop, SDK implementations
* Fix examples
* Add changes to changelog
* Test RegisterCallback for invalid observers
* Test callbacks from foreign sources not collected
* Support registering delegating instruments
2023-01-19 08:18:26 -06:00
Tyler Yahn
f941b3a8df
Restructure RegisterCallback method (#3587)
* Restructure RegisterCallback method

Instead of accepting instruments to register the callback with as a
slice, accept them as variadic arguments.

* Add changes to changelog

* Add PR number to changes
2023-01-13 08:31:14 -08:00
Robert Lin
640a0cd8bc
bridge/opentracing: introduce NewTracerProvider that wraps TracerProvider instead of Tracer (#3116)
* bridge/opentracing: add NewDynamicWrappedTracerProvider for named tracers

* bridge/opentelmeetry: cache created Tracers, add tests

* bridge/opentracing: rename constructor to NewTracerProvider

* add license header

* Update docstring

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

* fix deprecated docstring

* rewrite new lookup TracerProvider as separate type

* update docstring

* add changelog entries

* Update bridge/opentracing/provider.go

Co-authored-by: Damien Mathieu <42@dmathieu.com>

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
2023-01-11 16:59:06 -08:00
Tyler Yahn
36904e4463
Deprecate the syncint64/syncfloat64/asyncint64/asyncfloat64 packages (#3575)
* Dep async/sync pkgs for new inst in instrument pkg

* Replace use of deprecated instruments

* Add changelog entry

* Update changelog entry PR number
2023-01-10 15:06:24 -08:00
Tyler Yahn
78a55822f8
Upgrade all semconv dependencies to v1.16.0 (#3581)
* Upgrade all semconv ref to v1.16.0

* Add changes to changelog
2023-01-10 10:57:28 -08:00
Tyler Yahn
479c5c5840
Generate semconv/v1.16.0 (#3579)
* Generate semconv/v1.16.0

* Add changes to changelog
2023-01-08 08:12:25 -08:00
Tyler Yahn
b08ebeb187
Generate semconv/v1.15.0 (#3578)
* Add generated semconv/v1.15.0

* Add changelog entry for changes

* Update PR number in changelog entry
2023-01-08 08:01:08 -08:00
Tyler Yahn
82882dfbd3
Have multi-instrument callback return an error (#3576)
* Have multi-inst callback return an error

* Update PR number in changelog entry

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-01-08 07:53:07 -08:00
Tyler Yahn
75a19d1910
Generate semconv/v1.14.0 (#3566)
* Update semconv cmd in Makefile

Fixes the template render for new upstream semantic conventions yaml.

* Fix semconvkit to ensure dest dir

* Generate v1.14.0 semconv package

* Add changes to changelog

* Update Makefile

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Revert removal of -p

* Update go.opentelemetry.io/build-tools/*

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2023-01-06 14:30:32 -08:00
Tyler Yahn
1f9cc3036b
Add single instrument callback and split metric instrument configuration (#3507)
* 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
2023-01-06 09:20:49 -08:00
Tyler Yahn
0851690095
Move the semconv/v1.13.0 add to unreleased sec (#3567) 2023-01-05 19:50:39 -05:00
Tyler Yahn
112fbaaba4
Add v1.13 semantic conventions (#3499)
* WIP

* Add NetConv unit tests

* Add ServerRequest unit tests

* Unit test ClientRequest

* Remove unneeded

* Unit test helper funcs

* Add unit tests for remaining funcs

* Update exported docs

* Fix lint

* Add changelog entry

* Add Client/Server func to semconv/internal/v2

* Generate Client/Server func for semconv ver

* Update RELEASING

Add note about compatibility.

Update example TAG.

* Fix errors

* Update changelog
2023-01-05 14:58:42 -08:00
Tyler Yahn
e368276257
Create metric API Callback type (#3564)
* Create metric API Callback type

Document the type according the OTel specification requirements.

* Update all impls of the metric API with new type

* Add changes to changelog

* Update PR number in changelog entry
2023-01-05 14:22:06 -08:00
Joshua MacDonald
efd8a7df6d
OTLP exporter: Let final retry error include last retryable error message (#3514)
* Let retry return the first retryable error

* examples/otel-collector: use default collector port

* use correct port

* revert example change

* tidy

* changelog

* lint

* Address comments in PR.

* Updated Changelog.

* Fixes for PR.

* merge changelog

* remove one error

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-01-04 12:56:59 -08:00
Tyler Yahn
4607516316
Rename metric SDK instrument kind to match API (#3562)
* Rename metric SDK instrument kind to match API

Follow up to #3530.

* Update CHANGELOG

Fix trailing spaces and update PR number.
2023-01-04 12:47:18 -08:00
Tyler Yahn
a54167d2c9
Remove metric instrument provider API (#3530)
* Remove all InstrumentProvider APIs

* Fix noop impl

* Fix metric/example_test.go

* Update global impl

* Update sdk/metric impl

* Fix examples

* Fix prometheus exporter

* Add changes to changelog

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2023-01-03 10:34:10 -08:00
Ziqi Zhao
c82dbddc31
TracerProvider shutdown release resources (#3551)
* TracerProvider shutdown release resources

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* add changelog

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* Update CHANGELOG.md

Co-authored-by: David Ashpole <dashpole@google.com>

* prevent registered span processors after shutdown

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* Update CHANGELOG.md

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: David Ashpole <dashpole@google.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-01-03 09:51:56 -08:00
Daniel Metz
9d633d2ed5
traceIDRatioSampler: use rightmost bits (#3557)
* use bottom bits

* add changelog entry

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-12-30 14:06:06 -05:00
David Ashpole
a724cf8842
Update OpenCensus metric bridge to use the metric.Producer interface (#3541)
* update OpenCensus metric bridge to use the metric.Producer interface

* return nil for empty metrics

* fix nits

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-12-19 08:05:46 -08:00
Bogdan Drutu
0617172787
Global logger uses an atomic value instead of a mutex. (#3545)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2022-12-19 07:56:52 -08:00
Tyler Yahn
4014204d42
Allow multi-instrument callbacks to be unregistered (#3522)
* Update Meter RegisterCallback method

Return a Registration from the method that can be used by the caller to
unregister their callback.

Update documentation of the method to better explain expectations of
use and implementation.

* Update noop impl

* Update global impl

* Test global Unregister concurrent safe

* Use a map to track reg in global impl

* Update sdk impl

* Use a list for global impl

* Fix prom example

* Lint metric/meter.go

* Fix metric example

* Placeholder for changelog

* Update PR number in changelog

* Update sdk/metric/pipeline.go

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Add test unregistered callback is not called

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2022-12-16 12:02:42 -08:00
Bogdan Drutu
ca4cdfe4c0
small contingency improvement in global error handler (#3543)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2022-12-16 11:38:01 -08:00
David Ashpole
14a17b3ad6
Add Metric Producer as a new interface, which returns scope metrics (#3524)
* add RegisterProducer method and metric.Producer interface

* rename testProducer to testSDKProducer

* rename testMetrics to testResourceMetrics

* add testExternalProducer for testing bridges

* add test data for testing external producers

* clean up help text

* unit tests for external Producer

* changelog

* improve test coverage

* Update CHANGELOG.md

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

* support partial errors

* fix lint

* add additional test

* unallocate producers on shutdown

* don't register Producers after shutdown

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-12-15 07:50:45 -08:00
aniaan
4e763472ee
feat(exporter): Jaeger and Zipkin exporter use logr as the logging interface (#3500)
* feat(exporter): Jaeger and Zipkin exporter use `github.com/go-logr/logr` as the logging interface, and add the WithLogr option

* fix(exporter): reuse code

* fix(exporter): lint

* fix(exporter): add comment

* fix(changelog): update
2022-12-08 08:04:43 -08:00
Tyler Yahn
8644a79dcf
Fix changelog header (#3521)
Increment the removed header from previous release.
2022-12-07 12:41:50 -08:00
Tyler Yahn
9c61547163
Remove the deprecated view package (#3520)
* Remove the deprecated view package

* Add change to changelog

* Fix changelog header
2022-12-07 11:38:22 -08:00
Aaron Clawson
bc5cf7eb26
Release v1.11.2/v0.34.0 (#3512)
* Update Versions

Signed-off-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Prepare stable-v1 for version v1.11.2

* Prepare experimental-metrics for version v0.34.0

* Update Changelog

Signed-off-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Update CHANGELOG version.md

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

Signed-off-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
2022-12-05 13:43:20 -06:00
Ziqi Zhao
22434311ae
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com> (#3469)
prevent conflict metric info
2022-12-05 10:17:38 -06:00
Aaron Clawson
289a612e6a
Adds an Attribute assertion to metric data test (#3487)
* Adds an Attribute assertion to metric data test

Signed-off-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2022-11-29 14:32:15 -06:00
Aaron Clawson
d7b31155b5
Make the AsType functions not panic (#3489)
* Make the AsType functions not panic

* Adds changelog

Signed-off-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

Signed-off-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-11-25 15:27:47 -08:00
Aaron Clawson
e36a361b68
Move otlpmetrics Client to an internal package. (#3486)
* Move otlp client to an internal package

* update changelog

* Apply suggestions from code review

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

* Update CHANGELOG.md

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-11-22 16:01:53 -08:00
Tyler Yahn
c4333a9687
Deprecate the sdk/metric/view package (#3476)
* Deprecate the sdk/metric/view package

* Add deprecation to changelog
2022-11-21 08:05:07 -08:00
Tyler Yahn
2e780d8e39
Add View, NewView, Instrument, Stream, and InstrumentKind to sdk/metric with unit tests (#3459)
* Add the InstrumentKind type and vars to sdk/metric

* Add the Instrument type to sdk/metric

* Add the Stream type to sdk/metric

* Add the View type to sdk/metric

* Add NewView to create Views matching OTel spec

* Add unit tests for NewView

* Add changes to changelog

* Apply suggestions from code review

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Update CHANGELOG.md

* Update match and mask comments of Instrument

* Explain wildcard logic in NewView with comment

* Drop views that replace name for multi-inst match

* Comment how users are expected to match zero-vals

* Remove InstrumentKind and Scope from Stream

* Fix redundant word in NewView comment

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-11-16 08:18:02 -08:00
Tyler Yahn
308d0362e6
Only registers callbacks if non-drop aggregation is used (#3408)
* Do not return an error for Drop aggs

The async instruments currently return an error if and only if there are
no aggregators returned from a resolve. Returning no aggregators means
the instrument aggregation is drop. Do not include this in the error
reporting decision.

* Only registers callbacks if non-drop agg is used

The instruments passed to RegisterCallback need to have some aggregation
defined otherwise it is implied they have a Drop aggregation. Check that
at least one instrument passed has an aggregation other than Drop before
registering the callback with the pipelines.

Also, return an error if the user passed another API implementation of
an asynchronous instrument.

* Remove unneeded TODO from pipeline

* Add changes to changelog

* Test callback not called for all drop instruments

* Test RegisterCallback returns err for non-SDK inst

* Fail gracefully for non-SDK instruments

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-11-11 09:10:59 -08:00
Tyler Yahn
d091ba88e4
Do not export aggregations without any data points (#3436)
* Return empty nil aggs if no meas

* Update tests with new expected behavior

* Add change to changelog

* Set PR number in changelog

* Run lint

* Fix pipeline_test

* Scope change in changelog to pkg

* Clean up init of agg types
2022-11-11 07:22:27 -08:00
Tyler Yahn
484c8bd8d8
Handle partial success response from OTLP server in otlpmetric exporters (#3440)
* Handle partial success resp from OTLP server

* Test partial success response handling

* Add changes to changelog

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-11-09 07:44:06 -08:00
Sean Liao
2694dbfdba
add new env config options for OTLP exporter (#3363)
* add new env config options for OTLP exporter

* error path

* Update exporters/otlp/internal/envconfig/envconfig.go

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

* Update exporters/otlp/internal/envconfig/envconfig.go

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

* Update exporters/otlp/internal/envconfig/envconfig.go

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

* Update exporters/otlp/internal/envconfig/envconfig.go

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

* Update exporters/otlp/internal/envconfig/envconfig.go

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

* Update exporters/otlp/internal/envconfig/envconfig.go

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

* add error logging

* add missing early returns

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
2022-11-08 10:53:59 -08:00
Aaron Clawson
c21b6b6bb3
Adds attribute filter logic (#3396)
* Adds attribute filter logic

* Apply PR feedback

* Use updated MP options

* Update Changelog and TODO numbers

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-11-08 07:45:23 -08:00
Tyler Yahn
b5b685249c
Do not handle empty partial OTLP successes (#3438)
* Do not handle empty partial OTLP successes

Fix #3432.

The OTLP server will respond with empty partial success responses (i.e.
empty messages and 0 count). Treat these as equivalent to it not being
set/present like the documentation specifies in the proto:
724e427879/opentelemetry/proto/collector/trace/v1/trace_service.proto (L58)

* Fix tests

* Add changes to changelog
2022-11-03 09:02:39 -07:00
Ziqi Zhao
e8023fab22
prometheus exporter convert instrumentation scope to otel_scope_info metric (#3357)
* prometheus exporter convert instrumentation scope to otel_scope_info metric

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix for commits

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix for ci failed

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* add multi scopes test

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix ci failed

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
2022-11-02 07:50:37 -07:00
Tyler Yahn
48a05478e2
Move Aggregation/Temporality selection to the Exporter interface (#3260)
* Add Aggregation/Temporality to Exporter iface

* Use Exporter selectors in periodic reader

* Move selector opts to just manual reader

* Simplify periodic reader ref to Exporter selectors

* Fix the periodic reader tests

* Add Aggregation/Temporality method to stdoutmetric

* Add Temporality/Aggregation to otlpmetric exp

* Add Temporality/Aggregation to http/grpc otlp clients

* Add oconf tests for selector opts

* Add tests to stdoutmetric for opts

* Correct comment subject

* Add changes to changelog

* Fix otest test client
2022-11-01 07:56:18 -07:00
Tyler Yahn
d1aca7b167
Associate views with MeterProvider instead of Reader (#3387)
* Split WithView from WithReader

* Accept readers and views params in newPipelines

* Update MeterProvider pipes init

* Fix WithView comment

* Fix view example MeterProvider option

* Fix With{View,Reader} option in prom exporter test

* Test Reader not required to be comparable

* Add changes to changelog

* Fix changelog option name
2022-10-31 07:55:54 -07:00
ReStartercc
3dd4e816a6
fix wrong representation of status value in zipkin exporter (#3340)
* export status codes to upper case in zipkin exporter

* add test cases for status UNSET and ERROR

* Update exporters/zipkin/model.go

correct the usage of case-sensitive terms

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

* change unit test cases to test exact behavior

* move this PR to unrelease section in the CHANGELOG.md

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-10-27 21:22:18 -07:00
Kuisong Tong
94ae231180
Set IsMonotonic to true for opencensus sum (#3389)
* Set IsMonotonic to true for opencensus sum 

fix #3388

* Update metric_test.go

* fix test

* add changelog

* Update CHANGELOG.md

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

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-10-27 14:29:01 -07:00
Tyler Yahn
40f19009b0
Calculate delta sums for delta async counter/up-down-counter types (#3398)
* 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
2022-10-27 08:47:27 -07:00
Tony Han
ccbc38e66e
Fix prometheus name duplicate _total suffix (#3369)
Signed-off-by: Bing Han <h.bing612@gmail.com>

Signed-off-by: Bing Han <h.bing612@gmail.com>
2022-10-21 08:12:23 -07:00
Tyler Yahn
2fe8861a24
Release v1.11.1/v0.33.0 (#3367)
* Bump module versions

* Prepare stable-v1 for version v1.11.1

* Prepare experimental-metrics for version v0.33.0

* Update the changelog

* Update CHANGELOG.md
2022-10-19 12:55:44 -07:00
David Ashpole
510910e92d
Add unit suffixes to prometheus metric names (#3352)
* add unit suffixes to prometheus metric names

* Update CHANGELOG.md

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

* remove unneccessary variable

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-10-19 15:25:18 -04:00
David Ashpole
1d9d4b2124
add _total suffixes to prometheus counters (#3360) 2022-10-19 11:23:34 -07:00
Tyler Yahn
715631d35f
Fix Asynchronous Counters Recording (#3350)
* 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
2022-10-19 10:35:13 -07:00
Gustavo Paiva
2d02a2f126
converts Resource into a target_info metric on the prometheus exporter (#3285)
* converts `Resource` into a `target_info` metric on the prometheus exporter
2022-10-19 11:22:46 -05:00
Luiz Aoqui
05aca23c19
Decode values from OTEL_RESOURCE_ATTRIBUTES (#2963)
* Decode values from OTEL_RESOURCE_ATTRIBUTES

The W3C spec specifies that values must be percent-encoded so when
reading the environment variable `OTEL_RESOURCE_ATTRIBUTES` the SDK
should decode them.

This is done by the `baggage` package, but its behaviour in case of
errors is slightly different from the current implementation of the SDK,
more specifically in cases where a key is missing a value. The SDK
returns a partial resource while the `bagage` package returns nil.

This may be considered a breaking change, so this commit fixes the
current implementation instead of using `baggage.Parse`.

* Add changelog entry for #2963

* Use otel.Handle on OTEL_RESOURCE_ATTRIBUTES decode error

* retain original value when decoding fails

* docs: update CHANGELOG

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-10-19 09:13:20 -07:00
David Ashpole
430f55878b
Convert UpDownCounters to Prometheus gauges (#3358)
* updown counters are now converted to prometheus gauges

* Update CHANGELOG.md

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

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-10-19 09:07:53 -07:00
Aaron Clawson
99153429d5
Added WithAggregationSelector to prometheus (#3341)
* Added WithAggregationSelector to prometheus

* Update CHANGELOG.md

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

* Address PR comments

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-10-18 14:07:24 -07:00
Aaron Clawson
8b25cb2a85
Removes the functionality of the Describe in prometheus exporter. (#3342)
* remove prom exporter Describe

* 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>
2022-10-18 13:02:46 -07:00
ReStartercc
0963f59955
Fix baggage.NewMember to decode the accepted value (#3226)
* Fix baggage.NewMember to decode the accepted value

`value` is decoded and stored after validating the input parameters.

Corresponding test cases are modified so that we can make sure `value` is properly encoded before creating Member.

* fix md lint

* add function document to NewMember for value encoding and decoding

* remove redundant comments and fix CHANGELOG.md

* fix wrong PR number in the changelog

* fix wrong PR number

* fix md-lint

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-10-18 12:45:04 -07:00
Tyler Yahn
042d938989
Fix HistogramDataPoints transform in otlpmetric (#3293)
* Fix HistogramDataPoints transform in otlpmetric

Fixes #3284

The transform uses the same reference a histogram datapoint sum value
for all transformed metrics. This results in all transformed metrics
being exported with the same sum (see #3284). This changes the transform
to correctly reference a unique sum for each datapoint.
2022-10-17 08:13:07 -05:00
Aaron Clawson
b6a22abab7
Refactor Prometheus exporter (#3239)
This change will automatically register a created exporter with a prometheus registerer, if none are provided it will use prometheus' DefaultRegisterer.

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-10-14 09:22:43 -05:00
Albert
1e72af45a9
promtheus exporter will sum hist buckets (#3281) (#3282)
Signed-off-by: albertlockett <albert.lockett@gmail.com>
2022-10-14 09:13:35 -05:00
Alan Protasio
84e28fd3bd
Fix Http Status Code with Otel Bridge (#3265)
* Fix Http Status Code with Otel Bridge

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-10-13 10:44:40 -05:00
Ziqi Zhao
a8b9ddc7f6
attribute: fix slice related function bug (#3252)
* attribute: fix slice related function bug

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-10-13 09:34:02 -05:00
Bogdan Drutu
e4bdfe7b56
Fix sdktrace.TraceProvider Shutdown/ForceFlush when no processor register (#3268)
* Fix sdktrace.TraceProvider Shutdown/ForceFlush when no processor register

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>

* Update CHANGELOG.md

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-10-12 13:44:18 -07:00
Tyler Yahn
ff18552791
Release v1.11.0/v0.32.3 (#3275)
* Bump stable-v1 and experimental-metrics vers

* Prepare stable-v1 for version v1.11.0

* Prepare experimental-metrics for version v0.32.3

* Update changelog for release

* Retract v0.32.2 of otlpmetric{http,grpc}
2022-10-12 10:19:51 -07:00
Tyler Yahn
29511a0078
Release Metric v0.32.2 (#3270)
* Bump experimental-metrics version to v0.32.2

* Prepare experimental-metrics for version v0.32.2

* Update changelog
2022-10-11 14:55:18 -07:00
Tyler Yahn
b5292b8459
Handle duplicate Aggregators and log instrument conflicts (#3251)
* Add the cache type

* Add cache unit tests

* Test cache concurrency

* Add the instrumentCache

* Use the instrumentCache to deduplicate creation

* Drop unique check from addAggregator

* Fix aggregatorCache* docs

* Update cachedAggregator and aggregator method docs

* Remove unnecessary type constraint

* Remove unused errAlreadyRegistered

* Rename to not shadow imports

* Add changes to changelog

* Fix changelog English

* Store resolvers in the meter instead of caches

* Test all Aggregator[N] impls are comparable

* Fix lint

* Add documentation that Aggregators need to be comparable

* Update sdk/metric/internal/aggregator.go

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Update sdk/metric/instrument.go

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Update sdk/metric/instrument.go

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Update sdk/metric/internal/aggregator_test.go

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Fix pipeline_test.go use of newInstrumentCache

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
2022-10-11 15:41:47 -04:00
David Ashpole
ffa94ca529
Improve test coverage, and don't send empty batches in OC bridge (#3263)
* improve test coverage, and don't send empty batches in OC bridge

* Update bridge/opencensus/metric_test.go

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

* remove 1.18 rule

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-10-11 08:50:09 -07:00
copy rogers
4ec2ae60f2
Add User-Agent header to OTLP exporter requests (#3261)
* Add User-Agent header to OTLP exporter requests
* allow override grpc user-agent

Signed-off-by: rogerogers <rogers@rogerogers.com>
2022-10-11 09:55:50 -05:00
Tyler Yahn
c5ebbc4d4b
Use default view if instrument does not match any pipeline view (#3237)
* Use default view if inst matches no other

Fix #3224

* Test default view applied if no match

* Add changes to changelog

* Remove unneeded views len check in WithReader

* Do not return agg if adding err-ed

* Revert "Do not return agg if adding err-ed"

This reverts commit b56efb06a7.
2022-10-07 00:40:54 -04:00
Damien Mathieu
697d245b9c
Update bucket default bounds (#3222)
* update bucket default bounds to match the specification

* add changelog entry

* test custom boundaries with valid histogram

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-10-04 15:41:18 -07:00
Tyler Yahn
12e16d41e7
Bump golang.org/x/sys/unix (#3235)
* Bump golang.org/x/sys/unix

Fix #3234

Address GO-2022-0493 by upgrading golang.org/x/sys/unix from
v0.0.0-20210423185535-09eb48e85fd7 to
v0.0.0-20220919091848-fb04ddd9f9c8.

* Add changes to changelog
2022-09-27 09:08:34 -07:00
Tyler Yahn
111a1d7bbd
Flush pending telemetry when ForceFlush or Shutdown are called on a PeriodicReader (#3220)
* Flush pending telemetry when ForceFlush called

* Test flush of periodic reader

* Flush pending telemetry on Shutdown

* Fix things

* Rename pHolder to p

* Add testing for Shutdown

* Fix doc for collect method

* Fix collectAndExport doc

* Fix collectAndExport English

* Remove stdoutmetric example expected output

* Add changes to changelog

* Revert inadvertent change to golangci conf

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-09-27 08:05:41 -07:00
Tony Han
8c6e6c4bac
Add an example of view (#3177)
* Add an example of view

* Update meter name in view example

Co-authored-by: Sam Xie <sam@samxie.me>

* Update dependabot and versions.yaml

* Fix code review and add CHANGELOG

Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-09-26 09:04:09 -07:00
wdullaer
b369e59ba1
Improve trace status handling (#3214)
* Implement specification compliant trace status handling

* Update trace/trace.go

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Update CHANGELOG.md

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* chore: Make linter happy

Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-09-23 11:39:53 -07:00
Aaron Clawson
d7bfe6675f
Prerelease metrics/v0.32.1 (#3228)
* Prepare for v0.32.1 release

* Prepare experimental-metrics for version v0.32.1

* Update Changelog

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-09-22 14:47:08 -05:00
Aaron Clawson
c979be08e4
Update sdk/metric go.mod version to latest (#3216)
* update the metric mod version to latest

* update additional go.mods

* Unify the Fixed section of Unreleased

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <codingalias@gmail.com>
2022-09-22 09:36:24 -07:00
Tyler Yahn
4eea5db998
Set MeterProvider resource for all pipelines (#3218)
* Set MeterProvider resource for all pipelines

Resolves #3208

* Add change to changelog
2022-09-22 09:18:18 -07:00
Damien Mathieu
bfaff3a097
Sanitize metric names in the prometheus exporter (#3212)
* sanitize metric names in the prometheus exporter

* add changelog entry

* fix now invalid comment

* replace sanitizeName algorithm with one based on strings.Map

* check that digits as first characters are replaced

* Update exporters/prometheus/exporter.go

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

* add missing utf8 import

* add explicit tests for sanitizeName

* fix testdata with digit prepend

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-09-22 07:23:16 -07:00
David Ashpole
2ae5922848
reintroduce opencensus bridge example (#3206)
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-09-21 14:45:24 -07:00
David Ashpole
038248b8a2
Re-add previous metric bridge (#3192)
* re-add previous metric bridge

* move bridge/opencensus/opencensusmetric to bridge/opencensus/internal/ocmetric/

* add resource and scope to opencensus metric bridge

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-09-20 12:14:28 -07:00
Aaron Clawson
b6d4335a72
Removes go1.17, replaces with go1.18 (#3179)
* Removes go1.17, replaces with go1.18

* Update Changelog

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-09-19 17:22:40 -07:00
Tyler Yahn
baf9f18b00
Fix changelog release v0.32.0 tag link (#3193) 2022-09-19 14:06:35 -07:00
Tyler Yahn
f215b8dbe6
Release v0.32.0 -- Revised Metric SDK (Alpha) (#3184)
* Bump experimental-metrics to v0.32.0

* Update opencensus bridge modules in versions.yaml

* Prepare experimental-metrics for version v0.32.0

* Add changelog update

* Remove changes to unreleased code
2022-09-19 10:28:37 -07:00
Tony Han
fae4b90d69
bugfix: fix prometheus attributes other than string (#3190) 2022-09-19 10:13:21 -07:00
Tyler Yahn
b1e5e35b5c
Merge metric SDK development branch "new_sdk/main" into "main" (#3175)
* Remove Old SDK and dependent code on that SDK (#2802)

* Remove prometheus example code

* Remove prometheus exporter code

* Remove stdoutmetric code

* Remove sdk/metric/* packages

* Remove opencensus example code

* Remove otlpmetric exporter code

* Remove OpenCensus bridge code

* go mod tidy

* Remove empty modules

* Remove the number and aggregator from the metric SDK (#2840)

* Add MeterProvider/meter structure to new SDK (#2822)

* Remove prometheus example code

* Remove prometheus exporter code

* Remove stdoutmetric code

* Remove sdk/metric/* packages

* Remove opencensus example code

* Remove otlpmetric exporter code

* Remove OpenCensus bridge code

* go mod tidy

* Remove empty modules

* Add MeterProvider/meter structure to new SDK

* Add vanity imports

* go mod tidy

* Add MeterProvider Flush/Shutdown required by spec

* Cast nil ptr instead of alloc for comp time check

* Apply suggestions from code review

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Apply suggested Shutdown comment

* Apply fixes from feedback

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Add sdk/metric/view structure (#2838)

* Add sdk/metric/view package structure

* Vanity import

* Define the reader interface, and create a manual reader  (#2885)

* Add the manual reader to the sdk.

* Incoperate feedback from PR.

* additional PR comments

* Fix lint

* Fixes for PR.

* Unexport ManualReader
fix a few comments

* Refactor reader testing into a harness (#2910)

* Refactor reader testing into a harness

* Run lint

* Removed merge leftover

* Use opentracing bridge from main

* go mod tidy

* crosslink

* Remove Prometheus exporter from README for now

* Run make with new tool set

* Replace testReaderHarness with testify suite (#2915)

* Add the periodic reader (#2909)

* Add the metric.Exporter interface

* Move the reader errors to reader.go

* Update Reader.Collect docs

Remove TODO being addressed in this PR and restate purpose of method.

* Initial draft of the periodic reader

* Refer to correct config in periodic reader opts

* Refactor reader testing into a harness

* Move wait group handling out of run

* Refactor ticker creation to allow testing

* Honor export timeout in run

* Fix wait group wait bug

* Add periodic reader tests

* Fix lint

* Update periodic reader comments

* Add concurrency test for readers

* Simplify the ticker stop deferral

* Only register once

* Restrict build of metric sdk to Go>1.16

* Clean up ShutdownBeforeRegister test

* Test duplicate Reader registration (#2914)

The specification requires the SDK prevent duplicate registrations for
readers. This adds a test for that and fixes this for the manualReader.

* Add WithReader and WithResource Options (#2905)

* Add WithReader and WithResource Options

* Run lint

* Update WithReader fn signature based on feedback

* crosslink

* Remove zero-len check in unify

* Restrict build to Go > 1.16

* Add bench test for reader collect methods (#2922)

* Unify reader implementations (#2923)

* Unify reader implementations

Use an atomic.Value to manage concurrency without a lock.

* Lint

* Merge main into new sdk main (#2925)

* Use already enabled revive linter and add depguard (#2883)

* Refactor golangci-lint conf

Order settings alphabetically.

* Add revive settings to golangci conf

* Check blank imports

* Check bool-literal-in-expr

* Check constant-logical-expr

* Check context-as-argument

* Check context-key-type

* Check deep-exit

* Check defer

* Check dot-imports

* Check duplicated-imports

* Check early-return

* Check empty-block

* Check empty-lines

* Check error-naming

* Check error-return

* Check error-strings

* Check errorf

* Stop ignoring context first arg in tests

* Check exported comments

* Check flag-parameter

* Check identical branches

* Check if-return

* Check increment-decrement

* Check indent-error-flow

* Check deny list of go imports

* Check import shadowing

* Check package comments

* Check range

* Check range val in closure

* Check range val address

* Check redefines builtin id

* Check string-format

* Check struct tag

* Check superfluous else

* Check time equal

* Check var naming

* Check var declaration

* Check unconditional recursion

* Check unexported return

* Check unhandled errors

* Check unnecessary stmt

* Check unnecessary break

* Check waitgroup by value

* Exclude deep-exit check in example*_test.go files

* Move the minimum version to go 1.17 (#2917)

* Move the minimum version to go 1.17

* Update readme and changelog

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Make lint

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Add view to metrics. (#2926)

* WIP views public

* Add attribute filters and comments.

* Fixes for lint

* Address comments

* Fix lint

* Changed view matching to expand end

Removed the dscriptor, it was moved in previous patch

* change wildcards into regex

* Update comments

* address comments.

* Address more PR comments

* renamed WithDescription to WithSetDescription.

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Implement MeterProvider's Meter method (#2945)

* Implement stubbed meter create method

* Rename return value to avoid comment

* Encapsulate meterRegistry tests with identifying name

* Run lint fix

* Comment meterRegistry being concurrent safe

* Remove ordered meter tracking in the meterRegistry

* Test range completeness instead of order

* Remove provider field from meter

* Initialize MeterProvider readers field for new (#2948)

* Introduce Temporality, WithTemporality Reader options and InstrumentKind (#2949)

* Introduce Temporality and InstrumentKind

Because Temporality is the responsibility of the Reader additional methods
are added to the Reader interface.  And New options are created to
configure the temporality selector.

* Addresses comments, and adds tests.

* Fix addition PR comment

* Add aggregation package and reader/view options (#2958)

* Add aggregation pkg and options

* Update documentation for the aggregation pkg

* Test Aggregation.Err

* Fix aggregation pkg comment

* Add WithAggregation comment

* Add default aggregation

* Rename WithAggregation and add AggregationSelector

* Fix DefaultAggregationSelector use and decl

* Replace Aggregation struct with iface

* Add Copy method to hist and fix Err method

* Additional test for monotonic bounds

* Add aggregation method to Reader

* Use AggregationSelector instead of inline func type

* Switch RecordMinMax to NoMinMax

* Deep copy and validate in options

* Test the DefaultAggregationSelector

* nolint for import-shadow of method

* Fix Default aggregation comment

* Test the explicit bucket histogram deep copy

* Update temporality selector option (#2967)

Match the WithAggregationSelector option pattern: define a
TemporalitySelector type, export the DefaultTemporalitySelector
function, and name the option with a Selector suffix.

* Minor NewMeterProvider and producer docs fix (#2983)

* Add internal package structure for aggregation (#2954)

* Add the aggtor package

* Restrict to Go 1.18

* Add missing build block to view_test.go

* Comment Aggregator iface

* Use Go 1.18 as the default ci version

* Update Aggregator iface from feedback

* Accept hist conf

* Flatten aggtor into just internal

* Add Cycler interface

Separate the duties of aggregation and maintaining state across
aggregation periods.

* Remove build flags for doc.go

* Clarify Cycler documentation

* Remove aggregation fold logic

* Rename Number to Atomic

* Add tests for Atomic impls

* Remove unneeded Atomic implementation

Add back when filling in structures.

* Fix article in Float64 docs

* Remove Atomic

This is an implementation detail.

* Add aggregator_example_test

* Fix hist example

* Add issue numbers to all TODO and FIXME

* Remove zero parameter comment

* Combine the cycler into the aggregators

* Remove the drop aggregator

* Fix lint

* Use attribute.Set instead of ptr to it

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Merge main into new_sdk/main (#2996)

* Use already enabled revive linter and add depguard (#2883)

* Refactor golangci-lint conf

Order settings alphabetically.

* Add revive settings to golangci conf

* Check blank imports

* Check bool-literal-in-expr

* Check constant-logical-expr

* Check context-as-argument

* Check context-key-type

* Check deep-exit

* Check defer

* Check dot-imports

* Check duplicated-imports

* Check early-return

* Check empty-block

* Check empty-lines

* Check error-naming

* Check error-return

* Check error-strings

* Check errorf

* Stop ignoring context first arg in tests

* Check exported comments

* Check flag-parameter

* Check identical branches

* Check if-return

* Check increment-decrement

* Check indent-error-flow

* Check deny list of go imports

* Check import shadowing

* Check package comments

* Check range

* Check range val in closure

* Check range val address

* Check redefines builtin id

* Check string-format

* Check struct tag

* Check superfluous else

* Check time equal

* Check var naming

* Check var declaration

* Check unconditional recursion

* Check unexported return

* Check unhandled errors

* Check unnecessary stmt

* Check unnecessary break

* Check waitgroup by value

* Exclude deep-exit check in example*_test.go files

* Move the minimum version to go 1.17 (#2917)

* Move the minimum version to go 1.17

* Update readme and changelog

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Use ByteSliceToString from golang.org/x/sys/unix (#2924)

Use unix.ByteSliceToString to convert Utsname []byte fields to strings.

This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>

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

* docs: fix typo (#2935)

* add timeout to grpc connection in otel-collector example (#2939)

* Closes: #2951 (#2952)

This PR updates the example listed in the getting started doc
so that it will compile without error.  It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go

Signed-off-by: Brad Topol <btopol@us.ibm.com>

* fix data-model link (#2955)

* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)

* Move to using Instrumentation Scope (#2976)

* Move to using Instrumentation Scope

* Use type alias, not definition

* Add a changelog entry

* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)

* docs(website_docs): fix toc

* docs(website_docs): fix toc

* update exporting_data.md for rerun check-links

* update exporting_data.md for rerun check-links

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Update getting-started.md (#2984)

grammar edit for line 175 of readme

* fix typo (#2986)

* fix typo

* spell fix

* typo fix (#2991)

* added traces.txt to gitignore for fib (#2993)

* Deprecate Library and move all uses to Scope (#2977)

* Deprecate Library and move all uses to Scope

* Add PR number to changelog

* Don't change signatures in stable modules

* Revert some changes

* Rename internal struct names

* A bit more renaming

* Update sdk/trace/span.go

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

* Update based on feedback

* Revert change

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

* Feat/bridge support text map (#2911)

* feat: support TextMap

* doc: add comment

* test: support for ot.TextMap

* Retrieve lost code due to merge

* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders

* go mod tidy

* Optimized code style, add changelog

* doc: Restore comments

* wip: add test cases

* test: fix args error

* delete empty line

* Fix syntax and changelog errors

* Fix formatting errors

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Add a release template (#2863)

* Add a release template

* Update the about field

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Fix linting Issues

* Add ignore for template link

Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Fix merge of CHANGELOG.md

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>

* Add structure to the export data. (#2961)

* Add structure to the export data.

* Fix comments.

* Apply suggestions from code review

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

* Address PR comments.

* Updated optional historgram parameters.

* Address PR comments.

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Use export.Aggregation instead of internal.Aggregation (#3007)

* Use export.Aggregation instead of internal

* Return an export.Aggregation instead of a slice

* Use attribute Sets instead of KeyValues for export data (#3012)

Attribute Sets have stronger guarantees about the uniqueness of their
keys and more functionality. We already ensure attributes are stored as
Sets by the aggregator which will produce these data types. Instead of
converting to a KeyValue slice, keep the data as a Set.

Any user of the data can always call the ToSlice method to use the data
as a slice of KeyValues.

* Change Instrument Library to Instrument Scope (#3016)

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

* move temporality to export/temporality (#3017)

* move temporality to export/temporality

* fix lint errors

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

* Rename Package sdk/metric/export into sdk/metric/metricdata (#3014)

* fix unrelated changes

* fix quote code

* fix format

* rebase pr

* rebase pr

* change usage of export to metricdata

* Add metricdatatest package (#3025)

* Use export.Aggregation instead of internal

* Return an export.Aggregation instead of a slice

* Use attribute Sets instead of KeyValues for export data

Attribute Sets have stronger guarantees about the uniqueness of their
keys and more functionality. We already ensure attributes are stored as
Sets by the aggregator which will produce these data types. Instead of
converting to a KeyValue slice, keep the data as a Set.

Any user of the data can always call the ToSlice method to use the data
as a slice of KeyValues.

* Add export data type comparison testing API

* Add Aggregation and Value comparison funcs

* Move export testing to own pkg

* Move exporttest to metricdatatest

* Add licenses headers to files missing them

* Use metricdata instead of export

Fix merge of new_sdk/main

* Rename exporttest pkg to metricdatatest

* Fix spelling errors

* Fix lint issues

* Use testing pkg to error directly

Include Helper() method calls to correct the call-stack.

* Fix CompareAggregations

Set equal to true by default

* Generalize assertions and unexport equal checks

* Abstract assert tests

* Rename all exp var to r

* Test AssertAggregationsEqual

* Comment why Value and Aggregation are separate

* Test AssertValuesEqual

* Revert changes to metricdata/temporality.go

* Expand pkg doc sentence

* Add license header to assertion.go

* Update assertion docs

* Consolidate comparisons funcs into one file

* Consolidate and fix docs

* Consolidate assertion.go

* Consolidate comparisons.go

* make lint

* Test with relatively static times

* Update sdk/metric/metricdata/metricdatatest/comparisons.go

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Drop equal return from comparison funcs

* Refactor AssertEqual

* Remove reasN from testDatatype func params

* Consolidate AssertEqual type conversions

* Fix assertion error message

* Add assertion failure tests

* Remove unneeded strings join

* Make comment include a possessive

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Adds a pipeline for creating reader's output (#3026)

* Adds a pipeline for creating reader's output

* fix metricdata move

* fix lint

* Apply suggestions from code review

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

* Address PR comments

* Added resource test

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

* Use generic Sum, Gauge, and DataPoint value removing Value, Int64, and Float64 from metricdata (#3036)

* Use generic DataPoint value

* Fix assertion_fail_test.go

* Declare Sum and DataPoints type in pipeline_test

* Add MatchInstrumentKind filter for Views. (#3037)

* Move InstrumentKind to view, Add view filter

* remove TODO

* Add the Option function, fix lint

* use local var over 0

* Fix missing undefinedInstrumnet

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

* Change View Attribute Filter to detect if not set. (#3039)

* Change View Attribute Filter to detect if not set.

* Fix PR comments.

* Rework test for no filter logic.

* Add implementation of last-value aggregator (#3008)

* Add last-value aggregator

* Add test of last-value reset of unseen attrs

* Add benchmark

* Use generic DataPoint value

* Fix assertion_fail_test.go

* Fix tests

* Remove unused test increment values

* View.New() miss InstrumentKind check (#3043)

Signed-off-by: liupengfei <lpfvip2008@gmail.com>

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

* Add delta/cumulative histogram implementation (#3045)

* Add delta/cumulative histogram implementation

* Add histogram unit tests

* Fix histValues Aggregate

Store the new buckets value back to the values map.

Ensure min/max are measured values, not zero values.

* Fix lint

* Add benchmarks

* Test histograms internal functionality

* Fix lint

* Add TODO to look at memory use for cumu hist

* Update sdk/metric/internal/histogram.go

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* use TemporalitySelector (#3050)

Signed-off-by: Petrie <lpfvip2008@gmail.com>

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Add implementation of Sum aggregators (#3000)

* Implement the sum aggregators

* Add unit tests for delta/cumulative sums

* Add benchmarks

* Merge sum tests into one

* Remove unused start time from cumulative sum

* Refactor benchmark tests

Split benchmarks for the Aggregations and Aggregate methods so
computational resource use can be determined.

* goimports

* Move timestamp out of lock

* Refactor testing

* Fix spelling mistake

* Name param of expectFunc

* Reset delta sum to zero instead of delete

* Revert to deleting unused attr sets

* Refactor testing to allow use across other aggs

* Add TODO to bound cumulative sum mem usage

* Fix misspelling

* Unify aggregator benchmark code in aggregator_test

* Use generic DataPoint value

* Fix assertion_fail_test.go

* Use generic metricdata types

* Fix tests

* Fix benchmarks

* Fix lint

* Update sum documentation

* Remove leftover encapsulating test run

* Use t.Cleanup to mock time

* Consolidate expecter logic into funcs

* Move errNegVal closer to use

* Run the agg test

* Add tests for monotonic sum Aggregate err

* Run make lint

* Make monotonic an arg of creation funcs

* Remove Aggregate monotonic validation

* Rename sum to valueMap

The term sum is a good variable name that we do not want to take and
valueMap better describes the type as the storage of the aggregator.

* Adds a filter Aggregator. (#3040)

* Adds a filter Aggregator.

* Add lock and tests

* Add Concurrency tests

* fix lint errors

* Add memory constrained todo.

* Update filter comment.

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

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Add back the stdoutmetric exporter (#3057)

* PoC stdoutmetric exporter

* Use stringer to generate String for Temporality

* Add vanity imports

* Update Temporality string expected output

* Do not return error from newConfig

* Add shutdown unit tests

* Fix spelling error

* Unify testing of ctx errors and test ForceFlush

* Add unit test for Export handle of ctx errs

* Clarify documentation about alt OTLP exporter

* Remove unused ErrUnrecognized

A third party encoder can produce their own errors. This code does
nothing unique with this error, therefore, it is removed.

* Lint exporter_test.go

* Refactor example_test.go removing FIXME

* Add test for Export shutdown err

* Add a discard encoder for testing

* Acknowledged error is returned from Shutdown

* Remove unexpected SchemaURL from stdouttrace test

* Remove unneeded *testing.T arg from testEncoderOption

* Fix the location of now

* Revise and edit docs

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Remove stale TODO from metricdata/data.go (#3064)

* Merge main into new_sdk/main (#3082)

* Use already enabled revive linter and add depguard (#2883)

* Refactor golangci-lint conf

Order settings alphabetically.

* Add revive settings to golangci conf

* Check blank imports

* Check bool-literal-in-expr

* Check constant-logical-expr

* Check context-as-argument

* Check context-key-type

* Check deep-exit

* Check defer

* Check dot-imports

* Check duplicated-imports

* Check early-return

* Check empty-block

* Check empty-lines

* Check error-naming

* Check error-return

* Check error-strings

* Check errorf

* Stop ignoring context first arg in tests

* Check exported comments

* Check flag-parameter

* Check identical branches

* Check if-return

* Check increment-decrement

* Check indent-error-flow

* Check deny list of go imports

* Check import shadowing

* Check package comments

* Check range

* Check range val in closure

* Check range val address

* Check redefines builtin id

* Check string-format

* Check struct tag

* Check superfluous else

* Check time equal

* Check var naming

* Check var declaration

* Check unconditional recursion

* Check unexported return

* Check unhandled errors

* Check unnecessary stmt

* Check unnecessary break

* Check waitgroup by value

* Exclude deep-exit check in example*_test.go files

* Move the minimum version to go 1.17 (#2917)

* Move the minimum version to go 1.17

* Update readme and changelog

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Use ByteSliceToString from golang.org/x/sys/unix (#2924)

Use unix.ByteSliceToString to convert Utsname []byte fields to strings.

This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>

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

* docs: fix typo (#2935)

* add timeout to grpc connection in otel-collector example (#2939)

* Closes: #2951 (#2952)

This PR updates the example listed in the getting started doc
so that it will compile without error.  It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go

Signed-off-by: Brad Topol <btopol@us.ibm.com>

* fix data-model link (#2955)

* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)

* Move to using Instrumentation Scope (#2976)

* Move to using Instrumentation Scope

* Use type alias, not definition

* Add a changelog entry

* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)

* docs(website_docs): fix toc

* docs(website_docs): fix toc

* update exporting_data.md for rerun check-links

* update exporting_data.md for rerun check-links

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Update getting-started.md (#2984)

grammar edit for line 175 of readme

* fix typo (#2986)

* fix typo

* spell fix

* typo fix (#2991)

* added traces.txt to gitignore for fib (#2993)

* Deprecate Library and move all uses to Scope (#2977)

* Deprecate Library and move all uses to Scope

* Add PR number to changelog

* Don't change signatures in stable modules

* Revert some changes

* Rename internal struct names

* A bit more renaming

* Update sdk/trace/span.go

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

* Update based on feedback

* Revert change

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

* Feat/bridge support text map (#2911)

* feat: support TextMap

* doc: add comment

* test: support for ot.TextMap

* Retrieve lost code due to merge

* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders

* go mod tidy

* Optimized code style, add changelog

* doc: Restore comments

* wip: add test cases

* test: fix args error

* delete empty line

* Fix syntax and changelog errors

* Fix formatting errors

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Add a release template (#2863)

* Add a release template

* Update the about field

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Fix linting Issues

* Add ignore for template link

Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Add workflow to automate bundling dependabot PRs (#2997)

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Release prep 1.8.0 (#3001)

* Update CHANGELOG and versions.yaml for 1.8.0 release

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update go-build-tools

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Prepare stable-v1 for version v1.8.0

* Prepare experimental-metrics for version v0.31.0

* Prepare bridge for version v0.31.0

* `make go-mod-tidy` should use `-compat=1.17` now

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update CHANGELOG.md

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

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

* Add benchmark metric test for UpDownCounter (#2655)

* add benchmark metric test for UpDownCounter

* move counter annotation up

* fix syncFloat64 to syncInt64

* fix syncFloat64 to syncInt64

* fix go-lint err

* Add semconv/v1.11.0 (#3009)

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Add semconv/v1.12.0 (#3010)

* Add semconv/v1.12.0

* Update all semconv use to v1.12.0

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Add http.method attribute to http server metric (#3018)

* Add http.method attribute to http server metric

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix lint

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix lint

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix for reviews

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* add changelog entry

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* Add tests and fix opentracing bridge defer warning (#3029)

* add tests and fix opentracing bridge defer warning

* add changelog entry

* Update CHANGELOG.md

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

* Update bridge/opentracing/bridge_test.go

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

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

* Introduce "split" metric schema transformation (#2999)

This is a new transformation type that allows to describe a change
where a metric is converted to several other metrics by eliminating
an attribute.

An example of such change that happened recently is this:
https://github.com/open-telemetry/opentelemetry-specification/pull/2617

This PR implements specification change https://github.com/open-telemetry/opentelemetry-specification/pull/2653

This PR creates package v1.1 for the new functionality. The old package v1.0
remains unchanged.

* Release v1.9.0 (#3052)

* Bump versions in versions.yaml

* Prepare stable-v1 for version v1.9.0

* Prepare experimental-schema for version v0.0.3

* Update changelog for release

* Replace ioutil with io and os (#3058)

* Make several vars into consts (#3068)

* Add support for Go 1.19 (#3077)

* Add support for Go 1.19

* Update CHANGELOG.md

Co-authored-by: Sam Xie <sam@samxie.me>

Co-authored-by: Sam Xie <sam@samxie.me>

* Update compatibility documentation (#3079)

Remove 3 month timeline for backwards support of old versions of Go.

Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>

* Adds the option to ignore timestamps in metric data tests. (#3076)

* Adds the option to ignore timestamps in metric data tests

* use config over bool

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

* Adds a pipelineRegistry to manage creating aggregators. (#3044)

* Adds a pipelineRegistry to manage creating aggregators.

* Made pipeline generic
* Add aggregation filter to the registry.

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Remove stale TODO (#3083)

The aggregation transform function was added in #2958.

* Add back the otlpmetric transforms (#3065)

* Add otlpmetric transforms

* Split aggregation transforms to own file

* Rename Iterator to AttrIter

* Update pkg docs

These are internal docs use developer based language.

* Document all exported funcs

* Unify metricdata type transforms into one file

* Rename metrics.go to metricdata.go

* Copy back attribute tests

* Copy back in Iterator test

* Refactor attribute tests

* Add tests for metricdata transforms

* Add multiErr support for digestible transform errs

* Test transform errors

* go mod tidy

* Use key field

* goimported

* gofmt-ed

* Fix error documentation

* go mod tidy

* Changes instruments uniqueness in pipeline. (#3071)

* Changes instruments uniquness in pipeline.

* Fix lint

* Update sdk/metric/pipeline.go

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

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

* Restore the exporters/otlp/otlpmetric/internal/otelconfig package (#3090)

* Restore otlpmetric/otlpconfig from main

* Rename otlpconfig to oconf

* Remove the empty envconfig_test.go

* Update import of otlpconfig in oconf_test

* go mod tidy

* Run make

* add internal OpenCensus metric translation library (#3099)

* reintroduce opencensus trace bridge (#3098)

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

* Document the sdk/metric/view package (#3086)

* Add package documentation for sdk/metric/view

* Refer to views not configs in WithReader docs

* Fix vanity url for view_test.go

* Add example tests for view options

* Add package example

* Fix view type docs

* Remove build constraint for doc.go

* Fix lint

* Adds async instruments and providers. (#3084)

* Adds instrument providers and instruments.

* Don't return nil instrument, return with error

* removed sync

* Added a number of tests.

Signed-off-by: GitHub <noreply@github.com>

* Address PR comments

* fix error messages

* fixes typo in test name

Signed-off-by: GitHub <noreply@github.com>

* Fix lint issues

* moved the testCallback into the TestMeterCreateInstrument

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

* Merge branch 'main' into new_sdk/main (#3111)

* Use already enabled revive linter and add depguard (#2883)

* Refactor golangci-lint conf

Order settings alphabetically.

* Add revive settings to golangci conf

* Check blank imports

* Check bool-literal-in-expr

* Check constant-logical-expr

* Check context-as-argument

* Check context-key-type

* Check deep-exit

* Check defer

* Check dot-imports

* Check duplicated-imports

* Check early-return

* Check empty-block

* Check empty-lines

* Check error-naming

* Check error-return

* Check error-strings

* Check errorf

* Stop ignoring context first arg in tests

* Check exported comments

* Check flag-parameter

* Check identical branches

* Check if-return

* Check increment-decrement

* Check indent-error-flow

* Check deny list of go imports

* Check import shadowing

* Check package comments

* Check range

* Check range val in closure

* Check range val address

* Check redefines builtin id

* Check string-format

* Check struct tag

* Check superfluous else

* Check time equal

* Check var naming

* Check var declaration

* Check unconditional recursion

* Check unexported return

* Check unhandled errors

* Check unnecessary stmt

* Check unnecessary break

* Check waitgroup by value

* Exclude deep-exit check in example*_test.go files

* Move the minimum version to go 1.17 (#2917)

* Move the minimum version to go 1.17

* Update readme and changelog

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Use ByteSliceToString from golang.org/x/sys/unix (#2924)

Use unix.ByteSliceToString to convert Utsname []byte fields to strings.

This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>

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

* docs: fix typo (#2935)

* add timeout to grpc connection in otel-collector example (#2939)

* Closes: #2951 (#2952)

This PR updates the example listed in the getting started doc
so that it will compile without error.  It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go

Signed-off-by: Brad Topol <btopol@us.ibm.com>

* fix data-model link (#2955)

* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)

* Move to using Instrumentation Scope (#2976)

* Move to using Instrumentation Scope

* Use type alias, not definition

* Add a changelog entry

* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)

* docs(website_docs): fix toc

* docs(website_docs): fix toc

* update exporting_data.md for rerun check-links

* update exporting_data.md for rerun check-links

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Update getting-started.md (#2984)

grammar edit for line 175 of readme

* fix typo (#2986)

* fix typo

* spell fix

* typo fix (#2991)

* added traces.txt to gitignore for fib (#2993)

* Deprecate Library and move all uses to Scope (#2977)

* Deprecate Library and move all uses to Scope

* Add PR number to changelog

* Don't change signatures in stable modules

* Revert some changes

* Rename internal struct names

* A bit more renaming

* Update sdk/trace/span.go

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

* Update based on feedback

* Revert change

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

* Feat/bridge support text map (#2911)

* feat: support TextMap

* doc: add comment

* test: support for ot.TextMap

* Retrieve lost code due to merge

* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders

* go mod tidy

* Optimized code style, add changelog

* doc: Restore comments

* wip: add test cases

* test: fix args error

* delete empty line

* Fix syntax and changelog errors

* Fix formatting errors

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Add a release template (#2863)

* Add a release template

* Update the about field

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Fix linting Issues

* Add ignore for template link

Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Add workflow to automate bundling dependabot PRs (#2997)

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Release prep 1.8.0 (#3001)

* Update CHANGELOG and versions.yaml for 1.8.0 release

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update go-build-tools

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Prepare stable-v1 for version v1.8.0

* Prepare experimental-metrics for version v0.31.0

* Prepare bridge for version v0.31.0

* `make go-mod-tidy` should use `-compat=1.17` now

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update CHANGELOG.md

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

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

* Add benchmark metric test for UpDownCounter (#2655)

* add benchmark metric test for UpDownCounter

* move counter annotation up

* fix syncFloat64 to syncInt64

* fix syncFloat64 to syncInt64

* fix go-lint err

* Add semconv/v1.11.0 (#3009)

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Add semconv/v1.12.0 (#3010)

* Add semconv/v1.12.0

* Update all semconv use to v1.12.0

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Add http.method attribute to http server metric (#3018)

* Add http.method attribute to http server metric

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix lint

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix lint

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix for reviews

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* add changelog entry

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* Add tests and fix opentracing bridge defer warning (#3029)

* add tests and fix opentracing bridge defer warning

* add changelog entry

* Update CHANGELOG.md

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

* Update bridge/opentracing/bridge_test.go

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

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

* Introduce "split" metric schema transformation (#2999)

This is a new transformation type that allows to describe a change
where a metric is converted to several other metrics by eliminating
an attribute.

An example of such change that happened recently is this:
https://github.com/open-telemetry/opentelemetry-specification/pull/2617

This PR implements specification change https://github.com/open-telemetry/opentelemetry-specification/pull/2653

This PR creates package v1.1 for the new functionality. The old package v1.0
remains unchanged.

* Release v1.9.0 (#3052)

* Bump versions in versions.yaml

* Prepare stable-v1 for version v1.9.0

* Prepare experimental-schema for version v0.0.3

* Update changelog for release

* Replace ioutil with io and os (#3058)

* Make several vars into consts (#3068)

* Add support for Go 1.19 (#3077)

* Add support for Go 1.19

* Update CHANGELOG.md

Co-authored-by: Sam Xie <sam@samxie.me>

Co-authored-by: Sam Xie <sam@samxie.me>

* Update compatibility documentation (#3079)

Remove 3 month timeline for backwards support of old versions of Go.

* Fix `opentracing.Bridge` where it miss identifying the spanKind  (#3096)

* Fix opentracing.Bridge where it was not identifying the spanKinf correctly

* fix test

* changelog

* Keeping backward comppatibillity

* Update CHANGELOG.md

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Update CHANGELOG.md

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* replace `required` by `requirementlevel` (#3103)

* Change the inclusivity of exponential histogram bounds (#2982)

* Use lower-inclusive boundaries

* make exponent and logarithm more symmetric

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Update golangci-lint to v1.48.0 (#3105)

* Update golangci-lint to v1.48.0

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0 (#3107)

* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Alan Protasio <alanprot@gmail.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>

* Add otlpmetric exporter (#3089)

* Add otlpmetric package doc

* Add Client interface

* Add the Exporter

Have the Exporter ensure synchronous access to all client methods.

* Add race detection test for Exporter

* Expand New godocs

* Fix lint

* Merge transform and upload errors

* Fix ineffectual increment

* Make pipelineRegistry non-generic (#3115)

* Make pipelineRegistry non-generic

* Add Synchronous instruments (#3124)

* Add Synchronous instruments

* remove duplicate code in instrument

* Fixes to Histogram comments

* Add back the otlpmetricgrpc exporter (#3094)

* Add otlpmetric package doc

* Add Client interface

* Add the Exporter

Have the Exporter ensure synchronous access to all client methods.

* Add race detection test for Exporter

* Expand New godocs

* Fix lint

* Add the otlpmetricgrpc Go module

* Restore otlpmetricgrpc from main

* Remove integration testing from otlpmetricgrpc

* Fix import of otlpconfig to oconf

* Update client

Add ForceFlush method to satisfy otlpmetric.Client, unexport Start, and
restructure NewClient to return a started client.

* Update otlpmetricgrpc New functions

Remove NewUnstarted and only export New.

* Remove unneeded client sync

The exporter handle the synchronization of client method calls.

* Update example_test.go

* Update client_unit_test.go

* Rename client_unit_test.go to client_test.go

* Rename options.go to config.go

* Add package doc

* Unify exporter.go and doc.go into client.go

* Unexport NewClient

* Correct option documentation

* Add env config documentation

* go mod tidy

* Restrict build to Go 1.18

* Update client.go

Fix copied UploadMetrics documentation.

* Run make

* Close client conn even if context deadline reached

* Add sdk/metric Go pkg docs and example (#3139)

* Add sdk/metric Go pkg docs

* Add example_test.go

* Add Go 1.18 build guard to example_test.go

* Merge main into new_sdk/main (#3141)

* Use already enabled revive linter and add depguard (#2883)

* Refactor golangci-lint conf

Order settings alphabetically.

* Add revive settings to golangci conf

* Check blank imports

* Check bool-literal-in-expr

* Check constant-logical-expr

* Check context-as-argument

* Check context-key-type

* Check deep-exit

* Check defer

* Check dot-imports

* Check duplicated-imports

* Check early-return

* Check empty-block

* Check empty-lines

* Check error-naming

* Check error-return

* Check error-strings

* Check errorf

* Stop ignoring context first arg in tests

* Check exported comments

* Check flag-parameter

* Check identical branches

* Check if-return

* Check increment-decrement

* Check indent-error-flow

* Check deny list of go imports

* Check import shadowing

* Check package comments

* Check range

* Check range val in closure

* Check range val address

* Check redefines builtin id

* Check string-format

* Check struct tag

* Check superfluous else

* Check time equal

* Check var naming

* Check var declaration

* Check unconditional recursion

* Check unexported return

* Check unhandled errors

* Check unnecessary stmt

* Check unnecessary break

* Check waitgroup by value

* Exclude deep-exit check in example*_test.go files

* Move the minimum version to go 1.17 (#2917)

* Move the minimum version to go 1.17

* Update readme and changelog

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Use ByteSliceToString from golang.org/x/sys/unix (#2924)

Use unix.ByteSliceToString to convert Utsname []byte fields to strings.

This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>

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

* docs: fix typo (#2935)

* add timeout to grpc connection in otel-collector example (#2939)

* Closes: #2951 (#2952)

This PR updates the example listed in the getting started doc
so that it will compile without error.  It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go

Signed-off-by: Brad Topol <btopol@us.ibm.com>

* fix data-model link (#2955)

* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)

* Move to using Instrumentation Scope (#2976)

* Move to using Instrumentation Scope

* Use type alias, not definition

* Add a changelog entry

* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)

* docs(website_docs): fix toc

* docs(website_docs): fix toc

* update exporting_data.md for rerun check-links

* update exporting_data.md for rerun check-links

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Update getting-started.md (#2984)

grammar edit for line 175 of readme

* fix typo (#2986)

* fix typo

* spell fix

* typo fix (#2991)

* added traces.txt to gitignore for fib (#2993)

* Deprecate Library and move all uses to Scope (#2977)

* Deprecate Library and move all uses to Scope

* Add PR number to changelog

* Don't change signatures in stable modules

* Revert some changes

* Rename internal struct names

* A bit more renaming

* Update sdk/trace/span.go

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

* Update based on feedback

* Revert change

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

* Feat/bridge support text map (#2911)

* feat: support TextMap

* doc: add comment

* test: support for ot.TextMap

* Retrieve lost code due to merge

* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders

* go mod tidy

* Optimized code style, add changelog

* doc: Restore comments

* wip: add test cases

* test: fix args error

* delete empty line

* Fix syntax and changelog errors

* Fix formatting errors

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Add a release template (#2863)

* Add a release template

* Update the about field

Co-authored-by: Damien Mathieu <42@dmathieu.com>

* Fix linting Issues

* Add ignore for template link

Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Add workflow to automate bundling dependabot PRs (#2997)

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Release prep 1.8.0 (#3001)

* Update CHANGELOG and versions.yaml for 1.8.0 release

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update go-build-tools

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Prepare stable-v1 for version v1.8.0

* Prepare experimental-metrics for version v0.31.0

* Prepare bridge for version v0.31.0

* `make go-mod-tidy` should use `-compat=1.17` now

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update CHANGELOG.md

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

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

* Add benchmark metric test for UpDownCounter (#2655)

* add benchmark metric test for UpDownCounter

* move counter annotation up

* fix syncFloat64 to syncInt64

* fix syncFloat64 to syncInt64

* fix go-lint err

* Add semconv/v1.11.0 (#3009)

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Add semconv/v1.12.0 (#3010)

* Add semconv/v1.12.0

* Update all semconv use to v1.12.0

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Add http.method attribute to http server metric (#3018)

* Add http.method attribute to http server metric

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix lint

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix lint

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix for reviews

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* add changelog entry

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* Add tests and fix opentracing bridge defer warning (#3029)

* add tests and fix opentracing bridge defer warning

* add changelog entry

* Update CHANGELOG.md

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

* Update bridge/opentracing/bridge_test.go

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

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

* Introduce "split" metric schema transformation (#2999)

This is a new transformation type that allows to describe a change
where a metric is converted to several other metrics by eliminating
an attribute.

An example of such change that happened recently is this:
https://github.com/open-telemetry/opentelemetry-specification/pull/2617

This PR implements specification change https://github.com/open-telemetry/opentelemetry-specification/pull/2653

This PR creates package v1.1 for the new functionality. The old package v1.0
remains unchanged.

* Release v1.9.0 (#3052)

* Bump versions in versions.yaml

* Prepare stable-v1 for version v1.9.0

* Prepare experimental-schema for version v0.0.3

* Update changelog for release

* Replace ioutil with io and os (#3058)

* Make several vars into consts (#3068)

* Add support for Go 1.19 (#3077)

* Add support for Go 1.19

* Update CHANGELOG.md

Co-authored-by: Sam Xie <sam@samxie.me>

Co-authored-by: Sam Xie <sam@samxie.me>

* Update compatibility documentation (#3079)

Remove 3 month timeline for backwards support of old versions of Go.

* Fix `opentracing.Bridge` where it miss identifying the spanKind  (#3096)

* Fix opentracing.Bridge where it was not identifying the spanKinf correctly

* fix test

* changelog

* Keeping backward comppatibillity

* Update CHANGELOG.md

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Update CHANGELOG.md

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* replace `required` by `requirementlevel` (#3103)

* Change the inclusivity of exponential histogram bounds (#2982)

* Use lower-inclusive boundaries

* make exponent and logarithm more symmetric

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Update golangci-lint to v1.48.0 (#3105)

* Update golangci-lint to v1.48.0

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0 (#3107)

* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Update tracer to guard for a nil ctx (#3110)

* Update tracer to guard for a nil ctx

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Fix sdk/instrumentation pkg docs (#3130)

* Add instrumentation scope attributes (#3131)

* Add WithScopeAttributes TracerOption to trace API

* Add Attributes field to instrumentation Scope

* Use scope attributes for new Tracer

* Fix stdouttrace expected test output

* Allow unexported Set fields in sdk/trace test

* Export instrumentation scope attrs in OTLP

* Add changes to the changelog

* Fix imports with make lint

* Add unit tests for WithScopeAttributes

* Fix English in Scope documentation

* Add WithScopeAttributes MeterOption to metric API package (#3132)

* Add WithScopeAttributes MeterOption to metric pkg

* Add MeterConfig unit tests

* Add changes to changelog

* Fix import linting

* Update MeterProvider documentation

Include information about how to use WithScopeAttributes.

* Refactor TracerProvider documentation (#3133)

* Refactor TracerProvider documentation

* Fix English article

* Grammar fixes

* consistency-of:  Changed signal names for website docs (#3137)

* Shut down all processors even on error (#3091)

* Fix stdoutmetric example test

The merged instrumentation Scope includes SchemaURL and Attributes now,
add them to the expected output.

Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Alan Protasio <alanprot@gmail.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
Co-authored-by: Mitch Usher <cull.methi@gmail.com>
Co-authored-by: Gaurang Patel <mr.patelgaurang@gmail.com>

* Remove empty metrictest pkg (#3148)

* Add exporters/otlp/otlpmetric/internal/otest (#3125)

* Add otlpmetric package doc

* Add Client interface

* Add the Exporter

Have the Exporter ensure synchronous access to all client methods.

* Add race detection test for Exporter

* Expand New godocs

* Fix lint

* Restore otlpmetrictest from main

* Rename otlpmetrictest to otest

* Remove data.go

The functions and types it contains are no longer relevant to the SDK.

* Update client context error tests

Remove multiple shutdown tests. The Client interface states this should
never happen.

* Remove collector.go and otlptest.go

* Expand client tests with ctx and force-flush

* Add UploadMetrics tests

* Test the tests with a trivial client

* Condense all to client.go

* Example of how to run RunClientTests

* Add client integration testing

* Add GRPCCollector

* Remove GRPCCollector to limit scope of PR

* Add back the otlpmetrichttp exporter (#3097)

* Add otlpmetric package doc

* Add Client interface

* Add the Exporter

Have the Exporter ensure synchronous access to all client methods.

* Add race detection test for Exporter

* Expand New godocs

* Fix lint

* Add back the otlpmetrichttp pkg from main

* Restrict to Go 1.18 and above

* Remove integration testing

* Rename client_unit_test.go to client_test.go

* Rename options.go to config.go

* Remove the NewUnstarted func

* Remove Start method from client

* Add no-op ForceFlush method to client

* Update otlpconfig pkg name to oconf

* Rename Stop method to Shutdown

Match the otlpmetric.Client interface.

* Update creation functions to compile

* Remove name field from client

* Remove sync of methods from client

This is handled by the exporter.

* Remove unused generalCfg field from client

* Replace cfg client field with used conf vals

* Use a http request instead of url/header fields

* Remove NewClient and move New into client.go

* Rename client.client field to client.httpClient

* Update client tests

Remove test of a retry config and add functional tests of the client
methods honoring a context.

* Remove deprecated WithMaxAttempts and WithBackoff

* Update option docs

Include info on envvars.

* Fix lint

* Fix lint errors

* Revert New to accept a context

* Add example test

* Update pkg docs

* go mod tidy

* Use url.URL to form HTTP request URL

* Remove stale TODO in sdk/view (#3149)

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Use unique metric testing data in reader_test (#3151)

Address unresolved TODO.

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>

* Add new metric SDK changes to changelog (#3150)

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>

* Add integration and config testing to otlpmetricgrpc (#3126)

* Add the GRPCCollector to otest

* Use otest to test otlpmetricgrpc Client

* Add WithHeaders and WithTimeout tests

* Add integration and config testing to otlpmetrichttp (#3155)

* Add HTTPCollector to otest

* Add integration testing for otlpmetrichttp

* Fix NewHTTPCollector docs

* Add config tests

* Fix lint

* Add WithURLPath test

* Add WithTLSClientConfig test

* Ignore depguard for crypto/x509/pkix

This is a testing package that uses the package to generate a weak
testing TLS certificate.

* Add Prometheus exporter code (#3135)

* Add Prometheus exporter example (#3168)

* Add back prom exporter to README.md

* Fix removal changes from #3154 in API

* Update CHANGELOG with PR number

Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: David Ashpole <dashpole@google.com>
Co-authored-by: Alan Protasio <alanprot@gmail.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
Co-authored-by: Mitch Usher <cull.methi@gmail.com>
Co-authored-by: Gaurang Patel <mr.patelgaurang@gmail.com>
Co-authored-by: Mike Dame <mikedame@google.com>
2022-09-15 18:41:24 -07:00
Aaron Clawson
0e6f9c29c1
Prerelease v1.10.0 (#3158)
* update version file

* Prepare stable-v1 for version v1.10.0

* Update changelog
2022-09-12 15:19:11 -05:00
Joshua MacDonald
49a653682f
Safely truncate over-length string attributes (#3156)
* Safely truncate over-length string attributes

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-09-12 09:54:58 -05:00
Aaron Clawson
7aba25d651
Revert Adding attributes to the instrumentation scope.
Revert "Add instrumentation scope attributes (#3131)" (#3154)

This reverts commit 0078faeb0e.

Revert "Add WithScopeAttributes MeterOption to metric API package (#3132)"

This reverts commit 81a9bab814.
2022-09-09 09:06:58 -05:00
Joshua MacDonald
569f743072
Handle partial-success responses for OTLP trace (#3106)
* Handle partial-success responses for OTLP trace

Co-authored-by: David Ashpole <dashpole@google.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2022-09-06 14:20:19 -05:00
Tyler Yahn
81a9bab814
Add WithScopeAttributes MeterOption to metric API package (#3132)
* Add WithScopeAttributes MeterOption to metric pkg

* Add MeterConfig unit tests

* Add changes to changelog

* Fix import linting

* Update MeterProvider documentation

Include information about how to use WithScopeAttributes.
2022-09-01 14:19:03 -07:00
Tyler Yahn
0078faeb0e
Add instrumentation scope attributes (#3131)
* Add WithScopeAttributes TracerOption to trace API

* Add Attributes field to instrumentation Scope

* Use scope attributes for new Tracer

* Fix stdouttrace expected test output

* Allow unexported Set fields in sdk/trace test

* Export instrumentation scope attrs in OTLP

* Add changes to the changelog

* Fix imports with make lint

* Add unit tests for WithScopeAttributes

* Fix English in Scope documentation
2022-08-31 15:19:50 -07:00
Mitch Usher
55b49c407e
Update tracer to guard for a nil ctx (#3110)
* Update tracer to guard for a nil ctx

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-08-26 08:53:33 -05:00
Dafei Liu
3810616eb3
Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0 (#3107)
* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2022-08-25 08:00:46 -05:00
Joshua MacDonald
09bf345912
Change the inclusivity of exponential histogram bounds (#2982)
* Use lower-inclusive boundaries

* make exponent and logarithm more symmetric

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2022-08-24 13:09:37 -05:00
Alan Protasio
b9adb171b0
Fix opentracing.Bridge where it miss identifying the spanKind (#3096)
* Fix opentracing.Bridge where it was not identifying the spanKinf correctly

* fix test

* changelog

* Keeping backward comppatibillity

* Update CHANGELOG.md

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>

* Update CHANGELOG.md

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2022-08-18 13:49:25 -04:00
Tyler Yahn
6d639e9618
Add support for Go 1.19 (#3077)
* Add support for Go 1.19

* Update CHANGELOG.md

Co-authored-by: Sam Xie <sam@samxie.me>

Co-authored-by: Sam Xie <sam@samxie.me>
2022-08-10 10:45:14 -05:00
Tyler Yahn
e99a0ac0b5
Release v1.9.0 (#3052)
* Bump versions in versions.yaml

* Prepare stable-v1 for version v1.9.0

* Prepare experimental-schema for version v0.0.3

* Update changelog for release
2022-08-02 08:02:33 -07:00
Tigran Najaryan
1eae91b3b0
Introduce "split" metric schema transformation (#2999)
This is a new transformation type that allows to describe a change
where a metric is converted to several other metrics by eliminating
an attribute.

An example of such change that happened recently is this:
https://github.com/open-telemetry/opentelemetry-specification/pull/2617

This PR implements specification change https://github.com/open-telemetry/opentelemetry-specification/pull/2653

This PR creates package v1.1 for the new functionality. The old package v1.0
remains unchanged.
2022-07-25 08:30:23 -07:00
Damien Mathieu
05c5509915
Add tests and fix opentracing bridge defer warning (#3029)
* add tests and fix opentracing bridge defer warning

* add changelog entry

* Update CHANGELOG.md

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

* Update bridge/opentracing/bridge_test.go

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

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-07-22 11:46:06 -07:00
Ziqi Zhao
096a162418
Add http.method attribute to http server metric (#3018)
* Add http.method attribute to http server metric

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix lint

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix lint

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* fix for reviews

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* add changelog entry

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
2022-07-19 00:07:18 -04:00
Tyler Yahn
5568a30723
Add semconv/v1.12.0 (#3010)
* Add semconv/v1.12.0

* Update all semconv use to v1.12.0

Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2022-07-13 09:55:43 -04:00
Tyler Yahn
aa27169ea8
Add semconv/v1.11.0 (#3009)
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2022-07-13 08:45:46 -04:00
Anthony Mirabella
08ff959fc4
Release prep 1.8.0 (#3001)
* Update CHANGELOG and versions.yaml for 1.8.0 release

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update go-build-tools

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Prepare stable-v1 for version v1.8.0

* Prepare experimental-metrics for version v0.31.0

* Prepare bridge for version v0.31.0

* `make go-mod-tidy` should use `-compat=1.17` now

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update CHANGELOG.md

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

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2022-07-08 14:23:16 -04:00
ttoad
8b89e49f71
Feat/bridge support text map (#2911)
* feat: support TextMap

* doc: add comment

* test: support for ot.TextMap

* Retrieve lost code due to merge

* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders

* go mod tidy

* Optimized code style, add changelog

* doc: Restore comments

* wip: add test cases

* test: fix args error

* delete empty line

* Fix syntax and changelog errors

* Fix formatting errors

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
2022-07-06 18:24:02 -04:00