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

876 Commits

Author SHA1 Message Date
Tyler Yahn
fecb92e366
Add the experimental exemplar feature (#4871)
* Add the experimental exemplar feature

* Add exemplars to EXPERIMENTAL.md

* Add changelog entry

* Fix hist buckets > 1 detection

* Collect instead of Flush res about to be deleted

* Add e2e test

* Do not pre-alloc ResourceMetrics

This only has a single use.

* Fix grammatical error in comment

* Add test cases

Default and invalid OTEL_METRICS_EXEMPLAR_FILTER.

Test sampled and non-sampled context for trace_based.

* Comment nCPU

* Doc OTEL_METRICS_EXEMPLAR_FILTER
2024-01-31 13:15:35 -08:00
Robert Pająk
bf1ae8cb04
[chore] Fix changelog entry for #4754 (#4874) 2024-01-31 09:17:42 +01:00
David Ashpole
1978044c55
Cache instruments so repeatedly creating identical instruments doesn't leak memory (#4820)
* cache instruments to avoid leaking memory

* add cacheWithErr to simplify error handling

* add wanring on repeated obserbable instrument creation with callbacks

* documentation for new behavior

* address feedback

---------

Co-authored-by: Damien Mathieu <damien.mathieu@elastic.co>
2024-01-24 07:42:43 -08:00
Tyler Yahn
cef39a1e17
Fix changelog entry (#4848)
Move #4449 entry to unreleased.
2024-01-23 14:15:04 -08:00
Baptiste Girard-Carrabin
71d13ffc2a
Fix ContainerID detector on systemd with colon in cgroup path (#4449)
Co-authored-by: David Ashpole <dashpole@google.com>
2024-01-23 13:04:46 -08:00
Damien Mathieu
33f5cf460b
Add WithEndpointURL option to OTLP over HTTP exporters (#4808)
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2024-01-19 15:25:10 +01:00
Tyler Yahn
1e2555f380
Release v1.23.0-rc.1 (#4832)
* Update versions.yaml

Move experimental-metrics modules that are stbilizing to the stable-v1
module-set.

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

* Update changelog
2024-01-18 12:26:17 -08:00
Aaron Clawson
279c549cab
Release v1.22.0/v0.45.0 (#4821)
* Update to v1.22.0

* Prepare stable-v1 for version v1.22.0

* Prepare experimental-metrics for version v0.45.0
2024-01-17 13:24:10 -06:00
Liz Fong-Jones
4491b39db2
sdk/trace: use slices.Grow() to avoid excessive runtime.growslice() (#4818)
* sdk/trace: use slices.Grow() to avoid excessive runtime.growslice()

* go1.20 compat

* update go.mod/sum

* Update CHANGELOG.md

* Revert "update go.mod/sum"

This reverts commit 1e4fcfa86c.

* inline slices.Grow as ensureAttributesCapacity

* fix comment

* add bench

* fix inlining

* Apply suggestions from code review

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

* add ReportAllocs

* add benchmark variations with lower limit

* bugfix: we always want to set cap, just the value is a min()

* lint

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
2024-01-12 13:42:36 -08:00
CZ
7fa7d1b252
sdk/metric: Fix observable not registered error when the asynchronous instrument has a drop aggregation (#4772)
* Fix observable instrument not registered on drop aggregation

* Add TestObservableDropAggregation

* Add testcase for dropping unregistered observable

* Update CHANGELOG

* Add observable name const + suggestions

* Add suggestions

* Only error if the instrument is not dropped

* Decrease indentation

* Revert "Decrease indentation"

This reverts commit 9e7e7729bf.

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2024-01-11 15:27:40 -08:00
Robert Pająk
01472db75f
Upgrade use of semconv to v1.24.0 (#4754) 2024-01-11 12:56:07 +01:00
Robert Pająk
259143a662
baggage: Add NewMemberRaw and NewKeyValuePropertyRaw (#4804) 2024-01-10 14:02:57 +01:00
Tyler Yahn
deddec38ac
Optimize (attribute.Set).Filter for no filtered case (#4774)
* Optimize Set.Filter for no filtered case

When all elements of the Set are kept during a call to Filter, do not
allocate a new Set and the dropped attributes slice. Instead, return the
immutable Set and nil.

To achieve this the functionality of filterSet is broken down into a
more generic filteredToFront function.

* Apply suggestions from code review

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

* Rename run to benchFn based on review feedback

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2024-01-08 07:49:45 -08:00
CZ
27f70a3350
bridge/opentracing: fix baggage item key is canonicalized (#4776)
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Yuri Shkuro <yurishkuro@users.noreply.github.com>
2023-12-28 18:46:17 +01:00
Robert Pająk
08b856faeb
baggage: Member.String encodes only when necessary (#4775) 2023-12-28 18:21:44 +01:00
Robert Pająk
885210bf33
baggage: Fix escaping in Member.String (#4756)
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-12-21 09:16:13 +01:00
Tyler Yahn
e3bf787c21
Add cardinality limiting to the metric SDK as an experimental feature (#4457)
* Add agg limiting func

* Add unit test for limitAttr

* Add limiting to aggregate types

* Add internal x pkg for experimental feature-flagging

* Connect cardinality limit to metric SDK

* Replace limitAttr fn with limiter type

The Attribute method is still inlinable.

* Use x.CardinalityLimit directly

* Simplify limiter test

* Add limiter benchmark

* Document the AggregationLimit field

* Test sum limits

* Test limit for last value

* Test histogram limit

* Refactor expo hist test to use existing fixtures

The tests for the exponential histogram create their own testing
fixtures. There is nothing these new fixtures do that cannot already be
done with the existing testing fixtures used by all the other aggregate
functions. Unify the exponential histogram testing to use the existing
fixtures.

* Test the ExponentialHistogram limit

* Fix lint

* Add docs

* Rename aggregation field to aggLimit

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-12-19 07:53:01 -08:00
Robert Pająk
cb8cb2d269
Add semconv v1.24.0 (#4770) 2023-12-19 14:44:32 +01:00
Robert Pająk
43bd47de6e
baggage: Fix Parse to validate member value before percent-decoding (#4755) 2023-12-19 14:38:58 +01:00
Robert Pająk
8e756513a6
sdk/metric: Record measurements when context is done (#4671) 2023-12-15 19:14:16 +01:00
Cristian Velazquez
057f897096
baggage: Improve performance (#4743) 2023-12-14 16:48:28 +01:00
Robert Pająk
0c1c434c70
Add semconv/v1.23.1 (#4749)
* Add semconv/v1.23.1

* Update changelog

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-12-10 08:04:52 -08:00
David Ashpole
b5afa704f1
Fix multi-reader observable counter double-counting bug (#4742)
* fix Fix a bug where using multiple readers resulted in incorrect asynchronous counter values

* move addCallback to inserter

* restore comment
2023-12-08 14:21:30 -08:00
Robert Pająk
214d5e075f
Add semconv/v1.23.0 (#4746) 2023-12-07 07:29:21 +01:00
Tyler Yahn
6cee2b4a4c
Add semconv v1.22.0 (#4735) 2023-12-04 21:21:49 +01:00
xiehuc
88da778ba2
improve tracestate performance (#4722)
* improve tracestate performance

* use string.Builder to directly construct the result

* reduce the redundant copying during Insert

* avoid using regex

* fix lint

* revert changelog

* update comment

* refine code

* fix lint

* fix unittest

* Update trace/tracestate.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-12-02 08:58:20 -08:00
Alex Boten
6027c1ae76
add option for resource attributes in metrics for prometheus exporter (#4733)
* add option for resource attributes in metrics for prometheus exporter

This PR adds the `WithResourceAsConstantLabels` option to the Prometheus exporter to allow users to configure resource attributes to be applied on every metric.

Fixes #4732

Signed-off-by: Alex Boten <aboten@lightstep.com>

* add test, changelog

Signed-off-by: Alex Boten <aboten@lightstep.com>

* add test for including only a subset of tags, dont use a ptr

Signed-off-by: Alex Boten <aboten@lightstep.com>

* Update exporters/prometheus/config.go

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

* include feedback from review

Signed-off-by: Alex Boten <aboten@lightstep.com>

* cache results

Signed-off-by: Alex Boten <aboten@lightstep.com>

* removed map in favour of single keyVals

Signed-off-by: Alex Boten <aboten@lightstep.com>

* Update exporters/prometheus/config.go

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

* move check outside the createResourceAttributes and rename func

Signed-off-by: Alex Boten <aboten@lightstep.com>

---------

Signed-off-by: Alex Boten <aboten@lightstep.com>
Co-authored-by: David Ashpole <dashpole@google.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-12-01 07:34:05 -08:00
xiehuc
04054929f1
improve trace_context performance (#4721)
* improve trace_context performance

* using strings.Builder instead of fmt.Sprint

* using strings.Cut instead of strings.Split

* using hex.Decode instead of hex.DecodeString

* avoid use regexp

* fix code style

* fix build

* update changelog

* refine code

* update comment

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-11-29 09:32:27 -08:00
Robert Pająk
98b32a6c3a
Release 1.21.0/0.44.0 (#4724) 2023-11-16 21:11:06 +01:00
Robert Pająk
a27c53b9b5
Remove example/fib (#4723) 2023-11-16 19:51:04 +01:00
Robert Pająk
8ceba1368a
otlpmetrichttp otlptracehttp: Do not parse non-protobuf reponses (#4719) 2023-11-16 18:33:54 +01:00
Tyler Yahn
a2cb6044b2
Remove the deprecated otlpmetric module (#4707)
* Remove the deprecated otlpmetric module

* Add changelog entry

* Update versions.yaml

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-11-13 09:20:05 -08:00
Tyler Yahn
c8e60d1357
Remove the deprecated view example (#4708)
* Remove the deprecated view example

* Update PR number in changelog

* Update versions.yaml

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-11-13 08:40:40 -08:00
Tyler Yahn
27c5c7347b
Remove the deprecated NewTracer from OC bridge (#4706)
* Remove the deprecated NewTracer from OC bridge

* Update PR number in changelog

* Remove example test for NewTracer

---------

Co-authored-by: David Ashpole <dashpole@google.com>
2023-11-13 07:27:07 -08:00
Robert Pająk
85e4c467da
Release v1.20.0/v0.43.0 (#4705) 2023-11-10 17:42:33 +01:00
Michael Blum
be5064a387
Use url.PathUnescape rather than url.QueryUnescape when parsing OTLP headers and resource attributes env vars (#4698) (#4699) 2023-11-09 12:51:59 -06:00
Robert Pająk
0c5ebd5856
otlp: Refine documentation (#4695) 2023-11-08 17:18:12 +01:00
Robert Pająk
0f5179f4f1
Deprecate otlpmetric (#4693) 2023-11-06 19:01:10 +01:00
David Ashpole
163573775b
Add summary support in the OpenCensus bridge (#4668)
* support summaries in the OpenCensus bridge

* divide quantiles by 100
2023-11-02 15:07:41 -05:00
Nathan J Mehl
bdb9322ebd
Use url.PathUnescape rather than url.QueryUnescape in baggage parsing (#4667)
* Use url.PathUnescape rather than url.QueryUnescape

I believe this addresses the majority of the cases described in
https://github.com/open-telemetry/opentelemetry-go/issues/3601

Golang's url.QueryUnescape will render url _path_ elements (e.g. /, +)
as spaces: `foo+bar` is rendered as `foo bar`.  Path elements are (as I
read the spec) legal W3C baggage values, and replacing them with spaces
fails the value validation regex.

url.PathEscape allows path elements through unmolested.

Signed-off-by: Nathan J. Mehl <n@oden.io>

* Update CHANGELOG.md

address comments

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

---------

Signed-off-by: Nathan J. Mehl <n@oden.io>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-10-31 15:02:17 -07:00
David Ashpole
b2bb2ad00f
Implement WithExplicitBucketBoundaries option in the metric SDK (#4605) 2023-10-31 08:41:27 +01:00
Robert Pająk
5ec67e83df
otlptracehttp, otlpmetrichttp: Retry temporary HTTP request failures (#4679) 2023-10-31 08:06:25 +01:00
Robert Pająk
aea3eab43a
otlptracegrpc, otlpmetricgrpc: Retry for RESOURCE_EXHAUSTED only if RetryInfo is returned (#4669) 2023-10-30 22:03:55 +01:00
Robert Pająk
509c23eb73
otlptracehttp, otlpmetrichttp: Retry for 502, 504 HTTP statuses (#4670) 2023-10-30 19:59:57 +01:00
David Ashpole
a2e3e463c0
Add exemplar support to OpenCensus bridge (#4585)
* add exemplar support to OpenCensus bridge

* expand set of translated exemplar attributes

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-10-27 11:56:15 -05:00
David Ashpole
0f5565af4f
Add WithExplicitBucketBoundaries Histogram option to the metric api (#4603)
* Add WithExplicitBucketBoundaries Histogram option to the metric api

* Add note that the option is advisory

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2023-10-26 12:18:37 -05:00
David Ashpole
cdd9353641
Add summary data type to metricdata (#4622)
* add summary datatype

* support comparing summaries

* update wording based on SIG meeting feedback

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-10-25 09:38:19 -05:00
David Ashpole
7e6da12625
Prometheus exporter no longer collects metrics after shutdown (#4648)
* prometheus exporter no longer collects metrics after shutdown

* use errors.Is
2023-10-25 09:16:10 -05:00
Robert Pająk
d18277e3c6
Decouple otlpmetricgrpc and otlpmetrichttp from otlpmetric (#4660) 2023-10-24 14:20:46 +02:00
David Ashpole
cab95bcdef
Move view example into prometheus example, and deprecate /example/view (#4649)
* move view example into prometheus example, and deprecate /example/view

* fix lint

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-10-23 08:00:06 -07:00
Tyler Yahn
1e1cc901a5
Add embedded package to trace API (#4620)
* Add trace/embedded

* Update trace impl to use trace/embedded

* Add noop pkg to replace no-op impl in trace pkg

* Use trace/embedded in global impl

* Use trace/embedded in SDK impl

* Update opencensus bridge

* Update opentracing bridge

* Add changes to changelog

* Update trace/doc.go

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

---------

Co-authored-by: David Ashpole <dashpole@google.com>
2023-10-19 10:16:24 -07:00
Robert Pająk
da343ab9c5
example/dice: Add context propagation (#4644) 2023-10-19 09:42:52 +02:00
Robert Pająk
28b459520c
Deprecate example/fib (#4618) 2023-10-13 08:26:35 +02:00
David Ashpole
1074d64d04
Add scope version to opencensus trace and metric bridges (#4584) 2023-10-11 08:48:58 +02:00
David Ashpole
68241aff1d
opencensus.NewMetricProducer returns a struct instead of the metric.Producer (#4583) 2023-10-09 16:04:32 +02:00
David Ashpole
0f09b9b2d8
Add options to opencensus bridge, and install tracer instead of returning (#4567)
* Add options to opencensus bridge, and install tracer instead of returning

* add unit test

* update unit tests

* fix example

* import ordering

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2023-09-29 08:07:06 -07:00
Tyler Yahn
60666c5540
Release v1.19.0/v0.42.0/v0.0.7 (#4568)
* Bump versions

* Prepare stable-v1 for version v1.19.0

* Prepare experimental-metrics for version v0.42.0

* Prepare experimental-schema for version v0.0.7

* Update changelog
2023-09-28 12:28:51 -07:00
David Ashpole
d3e31c3d93
Remove deprecated opencensus.NewMetricExporter (#4566) 2023-09-28 10:19:31 +02:00
Damien Mathieu
1410496022
stdoutmetric: Add WithWriter and WithPrettyPrint options (#4507)
* add WithWriter and WithPrettyOptions to stdoutmetric

* add changelog

* make WithWriter a shortcut to WithEncoder

* Update exporters/stdout/stdoutmetric/config.go

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2023-09-27 09:45:10 -05:00
Robert Pająk
0425c09c31
Add dice example (#4539)
* Add dice example

* Add manual instrumentation

* Update changelog

* Add comments

* Use naked return consistently

* Move handleFunc to main

* refactor: Extract newHTTPHandler

* Fix comment

* Improve comments

* Update example/dice/otel.go

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

* Simplify BaseContext

* Update doc.go

* Update example/dice/main.go

Co-authored-by: Phillip Carter <pcarter@fastmail.com>

* Rename span and metric names

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Phillip Carter <pcarter@fastmail.com>
2023-09-26 07:10:58 -07:00
Tyler Yahn
2ee71fdd4e
Release v1.19.0-rc.1/v0.42.0-rc.1 (#4510)
* Bump versions.yaml

Move go.opentelemetry.io/otel/sdk/metric to stable-v1.

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

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

* Update changelog
2023-09-14 12:57:45 -07:00
Damien Mathieu
a87d8fd2e8
fix changelog entry, as 4499 hasn't been released yet (#4508) 2023-09-14 07:33:13 -07:00
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