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

892 Commits

Author SHA1 Message Date
Tyler Yahn
999c6a07b3
Update all semconv use to v1.25.0 (#5374)
Resolve #5373
2024-05-19 07:16:33 +02:00
Tyler Yahn
14441aefdf
Identify logger with schemaURL in global logger provider (#5375)
Fix #5366
2024-05-18 11:00:00 +02:00
Damien Mathieu
ebd0adee35
Split log/logtest into a recorder and a logger (#5365)
The current logtest.Recorder implementation is wrong. We have a single
`Recorder`, which acts as both a `LoggerProvider`, and a `Logger`,
making it possible to emit a log entry with the root recorder, which
shouldn't be possible with the API.

This change introduces a new private struct, `logger` that acts as the
recording logger, while `Recorder` becomes only a LoggerProvider and not
a Logger anymore.

Closes #5357.

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2024-05-17 07:28:40 -07:00
Sam Xie
0d1e77c854
Fix package prefix of error in otlploghttp (#5371) 2024-05-17 09:23:39 +02:00
Sam Xie
76c06107b6
Collector example: add metrics (#5283)
Resolves #5243
2024-05-16 19:33:17 +02:00
Tyler Yahn
dafe137bbe
Add the synchronous gauge to the metric API and SDK (#5304)
Resolve #5225 

The specification has [added a synchronous gauge
instrument](https://github.com/open-telemetry/opentelemetry-specification/pull/3540).
That instrument has now been
[stabilized](https://github.com/open-telemetry/opentelemetry-specification/pull/4019),
and that stabilization is included in the [next
release](https://github.com/open-telemetry/opentelemetry-specification/pull/4034).

This adds the new synchronous gauge instrument to the metric API and all
implementation we publish.

This change will be a breaking change for any SDK developer. The
`embedded` package is updated to ensure our compatibility guarantees are
meet.

---------

Co-authored-by: David Ashpole <dashpole@google.com>
2024-05-16 09:56:40 -07:00
Damien Mathieu
08c8b3224a
log: Fix comparison of unordered map values (#5306) 2024-05-15 12:28:23 +02:00
Tyler Yahn
56bb4cf63e
Add logs to dice example (#5349)
* Add logs to dice example

Use slog to log a message on the server handler.

* Add changelog entry

* Split impl for 1.22 and 1.21
2024-05-14 13:00:49 -07:00
Tyler Yahn
69800ee189
Support Delta & Cumulative temporality for LastValue aggregates (#5305)
* Add delta/cumulative/precomputed LastValue agg

* Add cumulative testing

* Add precomputed testing

* Add changelog entry
2024-05-10 07:19:46 -07:00
Anton Manakin
c00a51af86
Record links with empty span context (#5315)
* record links with empty span context

* add global trace state

* fix test comments and changelog

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2024-05-09 13:25:02 -07:00
Sam Xie
9f1de8415e
Fix empty log body printed by stdoutlog exporter (#5311) 2024-05-09 21:41:36 +02:00
Tyler Yahn
ae06a80417
Log records dropped by the BatchProcessor (#5276)
* Add dropped count to queue

* Log dropped records

* Add changelog entry

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2024-05-08 07:42:09 -07:00
Damien Mathieu
f8b9fe3dbe
Emit attributes slices as their json representation (#5159)
* emit slices as their json representation

* add changelog

* fix resource tests

* indicate invalid slice if we couldn't turn them into json

* move changelog entry to the unreleased section

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2024-05-07 07:42:07 -07:00
Moises Vega
0fc35e0e93
feat: opt for concatenation instead of using fmt.Sprintf (#5286)
* feat: opt for concatenation instead of using fmt.Sprintf

* Update Changelog

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Damien Mathieu <damien.mathieu@elastic.co>
2024-05-07 07:19:08 -07:00
Sam Xie
dbfc75817a
Use docker compose in otel collector example (#5244)
* Remove k8s files

* Add docker compose file

* Update endpoint in main.go

* Update README to use docker compose

* Update CHANGELOG

* Add Shutting down section for cleanup steps

* Replace logging exporter with debug exporter

---------

Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2024-05-02 07:44:54 -07:00
Sam Xie
d5945a9dba
The stdoutlog exporter prints DroppedAttributes field instead of Limits fields (#5272)
* Add tests for resource, scope, dropped attributes

* Update CHANGELOG

* Apply suggestions from code review

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2024-04-30 10:26:26 -07:00
Tyler Yahn
d1d390e739
Add changelog entry for #5230 (#5277) 2024-04-30 07:24:56 -07:00
Prasad Shirodkar
fd6d4db8c3
Remove context check on stdout exporters (#5189) 2024-04-25 17:11:45 +02:00
Sam Xie
37619eada9
Add example for stdoutlog (#5242) 2024-04-25 12:24:31 +02:00
Sam Xie
27e0344491
stdoutlog: Do not print timestamps when WithoutTimestamps is set (#5241) 2024-04-25 10:19:18 +02:00
Damien Mathieu
f33d40886d
log/logtest: add Record Factory (#5263) 2024-04-25 07:22:39 +02:00
Robert Pająk
df455db04d
sdk/log/logtest: Add RecordFactory (#5258) 2024-04-25 07:09:34 +02:00
Sam Xie
9656d0afa7
Release 1.26.0/0.48.0/0.2.0-alpha (#5260)
* Bump versions in versions.yaml

* Prepare stable-v1 for version v1.26.0

* Prepare experimental-metrics for version v0.48.0

* Prepare experimental-logs for version v0.2.0-alpha

* Prepare experimental-schema for version v0.0.9

* Update CHANGELOG

* Unbump experimental-schema

* 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>
2024-04-24 07:27:22 -07:00
Tyler Yahn
fe8e3a1b42
Semconv v1.25.0 (#5254) 2024-04-23 17:29:17 +02:00
Sam Xie
bf37c5a3a4
Revert the usage of go.opentelemetry.io/proto/slim (#5253)
* Revert "otlpmetrichttp: Use go.opentelemetry.io/proto/slim/otlp (#5222)"

This reverts commit 6e92163d6a.

* Revert "otlploghttp: Use go.opentelemetry.io/proto/slim/otlp (#5216)"

This reverts commit fe3de7059e.

* Remove slim dep

* Fix CI
2024-04-23 07:12:25 +02:00
Robert Pająk
6e92163d6a
otlpmetrichttp: Use go.opentelemetry.io/proto/slim/otlp (#5222) 2024-04-22 13:07:29 +02:00
Tyler Yahn
48f028ffd3
Add sdk/log, stdoutlog, and otlploghttp to next release (#5240)
* Add sdk/log, stdoutlog, and otlploghttp to next release

Include go.opentelemetry.io/otel/sdk/log,
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp, and
go.opentelemetry.io/otel/exporters/stdout/stdoutlog in the
experimental-logs module set.

* Add releases to changelog

* Remove unreleased module changes
2024-04-20 13:24:51 +02:00
Kevin Burke
906c4909fa
baggage: more efficient member validation (#5214) 2024-04-19 08:45:54 +02:00
Tyler Yahn
dbe27d4147
Replace Record limit methods with DroppedAttributes (#5190)
* Replace Record lim methods with DroppedAttributes

* Add changelog entry

* Add TestRecordDroppedAttributes

* Add TestRecordCompactAttr

* Add an indexPool

* Fix gramatical error

* Apply feedback

Reduce indentation level.

* Apply feedback

Comment compactAttr and deduplicate.

* Deduplicate all attributes when added

* Comment why head is not used

* Clarify comments

* Move TestAllocationLimits to new file

Do not run this test when the race detector is on.

* Comment follow-up task
2024-04-16 11:48:17 -07:00
Damien Mathieu
1ff2e71e7d
Add span flags to OTLP exported data (#5194)
* add trace flags to OTLP export

* add changelog entry

* add span flags to links too

* rely on the parent span context for span flags

* test BuildSpanFlags, not with an actual span

* Update exporters/otlp/otlptrace/internal/tracetransform/span.go

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

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
2024-04-15 07:33:25 -07:00
Robert Pająk
1297d5f034
[chore] Move #5134 changlog entry to Unreleased (#5193) 2024-04-11 10:16:03 +02:00
Damien Mathieu
648b40eae1
Bump proto-go to v1.2.0 (#5177)
* upgrade the generated otlp proto to 1.2.0

* add changelog entry

* mod tidy in collector example

* fix changelog entry

* 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>
2024-04-09 07:06:46 -07:00
Damien Mathieu
8d1d62b905
logtest: Add Recorder (#5134)
* introduce in-memory log exporter

* add changelog entry

* move logtest into a recorder within the api

* rename GetRecords to Result

* rename InMemoryRecorder to Recorder

* name the struct r

* ensure Logger creates a struct copy

* replace severity with enabledFn

* Update CHANGELOG.md

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

* kUpdate log/logtest/config.go

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

* store all scope records, so we can retrieve everything with `Result()`

* store child loggers instead of all scope records

* no need to explicitly create a new slice

* add concurrent safe test

* handle default enabled function if the struct was manually created

* rename WithEnabledFn to WithEnabledFunc

* test result/reset with child loggers

* add enabled to concurrent safe

* fix lint missing period

* rename defaultEnabledFn to defaultEnabledFunc

* merge recorder.go and config.go

* Update log/logtest/recorder_test.go

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

* create empty recorder in concurrent safe test

* Update log/logtest/recorder_test.go

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

* fix lint

* Update log/logtest/recorder.go

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

* Update log/logtest/recorder.go

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

* Update log/logtest/recorder.go

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

* Update log/logtest/recorder.go

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

* Update log/logtest/recorder.go

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

* Update log/logtest/recorder.go

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

* Update log/logtest/recorder.go

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

* Update log/logtest/recorder.go

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

* make enabledFunc callable from outside the package

* replace expected with want

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
2024-04-09 06:45:25 -07:00
Tyler Yahn
66284071de
Release v1.25.0/v0.47.0/v0.0.8/v0.1.0-alpha (#5154)
* Bump versions in versions.yaml

* Prepare stable-v1 for version v1.25.0

* Prepare experimental-metrics for version v0.47.0

* Prepare experimental-logs for version v0.1.0-alpha

* Prepare experimental-schema for version v0.0.8

* Update changelog

* Run go mod tidy

* Update CHANGELOG.md

---------

Co-authored-by: Damien Mathieu <damien.mathieu@elastic.co>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2024-04-05 07:34:02 -07:00
Benjamin Sanabria Carr
6394b029fe
semconv: Add metric generation (#4880)
* Adds some basic constants for metrics utilizing a new jinja template

* Updates generated comments with more explicit nomenclature; Adds Unit and Description consts for each metric; append 'Name' to metric const instead of 'Key'

* Update CHANGELOG

* fix overlooked merge conflict

* change the types of generated consts to string; format generation to handle empty stability and descriptions

* trim trailing (repeated) periods in the description

* manual formatting of some proper nouns; simplify the license header

* update metrics file with concise generated license header

* revert special formatting logic for JVM and ASPNETCore

* Update CHANGELOG.md

* Update CHANGELOG.md

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

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2024-04-04 14:04:18 -07:00
Tyler Yahn
35c9570974
Prevent default ErrorHandler self-delegation (#5137) 2024-04-04 22:36:34 +02:00
Robert Pająk
98fd439f96
Bump bump google.golang.org/grpc from 1.62.1 to 1.63.0 and use grpc.NewClient instead of grpc.DialContext (#5151) 2024-04-04 20:45:16 +02:00
David Ashpole
016843786a
Add exemplar support to the prometheus exporter (#5111) 2024-04-04 19:43:49 +02:00
Tyler Yahn
afb6af0419
Address GO-2024-2687 (#5139)
* Bump Go versions used in CI systems

The latest releases of Go 1.22 and 1.21 contain security fixes for
`net/http`. Explicitly set the CI system to not use vulnerable versions
when testing so our vulnerable checker does not fail (and we aren't
vulnerable).

* Upgrade golang.org/x/net to v0.23.0

* Add changelog entry
2024-04-04 08:03:38 +02:00
Robert Pająk
e6e44dee90
log: Add String method to Value and KeyValue (#5117) 2024-04-02 10:50:07 +02:00
David Ashpole
7667f7ba25
Add support for AddLink to the OpenCensus bridge (#5116)
* add support for AddLink to the OpenCensus bridge

* Update CHANGELOG.md

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

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2024-04-01 10:30:34 -04:00
qcheng
554282d3e4
trace: Add Span.AddLink method (#5032) 2024-03-28 08:35:15 +01:00
Piotr Kiełkowicz
9e34895a3e
exporters/zipkin: Add use new scope attributes (#5108)
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2024-03-27 08:02:52 +01:00
David Ashpole
540663b064
add summary support to the OTLP exporter (#5100)
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2024-03-25 08:15:02 -07:00
Tyler Yahn
335f4de960
Add global log package (#5085)
* Add the log/global package

* Implement the stubbed features

* Add ConcurrentSafe tests

* Restructure with internal implementation

* Add internal global state

* Use internal state in log/global

* Add TestDelegation

* Fix lint

* Clean log_test.go

* Clean up

* Add changelog entry

* Simplify TestMultipleGlobalLoggerProvider

* Shorten log.go

* Fix comment text wrapping

* Shorten state_test.go

* Don't pollute output in TestSetLoggerProvider
2024-03-19 11:28:11 -07:00
Damien Mathieu
ca5bb1f54c
Run compatibility tests on arm64 with actuated (#4994)
* try running compatibility tests on arm64 with actuated

* try nested matrix

* setup vmmeter

* try less cpu and less gb with actuated

* add comment about vmmeter

* Update .github/workflows/ci.yml

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

* Update .github/workflows/ci.yml

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

* Update .github/workflows/ci.yml

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

* Update .github/workflows/ci.yml

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

* Update .github/workflows/ci.yml

* update compatibility matrix

* use linux name for arm builds

* add changelog entry

* add link to actuated doc

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2024-03-19 07:35:16 -07:00
Tyler Yahn
da047e70ef
Add the Enabled method to the Logger (#5071)
* Add the Enabled method to the Logger

* Add a changelog entry

* Rename enabled.go to min_sev.go

* Remove MinSeverityProcessor

* Document lack of interaction between OnEmit and Enabled

* Update sdk/log/processor.go

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2024-03-15 08:15:44 -07:00
Sam Xie
47ac0d4df8
logs: Add empty value for KeyValue (#5076)
* Add empty value for KeyValue

* Update CHANGELOG

* Apply suggestions from code review

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

* Fix comments

* Update log/keyvalue.go

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

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
2024-03-15 07:52:24 -07:00
Tyler Yahn
42c1708ed5
Add SeverityUndefined to otel/log (#5072)
* Add SeverityUndefined

* Add changelog entry

---------

Co-authored-by: Sam Xie <sam@samxie.me>
2024-03-14 13:22:12 -07:00
Mickael Alliel
9a515ceb74
otlptracehttp, otlpmetrichttp: Add WithProxy option (#4906) 2024-03-12 11:04:06 +01:00
Robert Pająk
6ff94ab620
trace: SpanFromContext and SpanContextFromContext make no allocs (#5049) 2024-03-12 08:39:28 +01:00
Mikhail Mazurskiy
1fe2f03854
Deprecate Sortable (#4734)
* Deprecate Sortable

* Remove redundant checks

* Move code to a non-deprecated func

* Apply suggestions from code review

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

* Mention individual deprecated function

* Update attribute/set.go

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

* Add BenchmarkNewSet

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2024-03-11 08:31:19 -07:00
Tyler Yahn
fe9bab54b7
Use Distinct instead of Set for map keys (#5027) 2024-03-06 11:11:16 +01:00
Tyler Yahn
561714acb2
Drop support for Go 1.20 (#4967)
* Update README.md

* Remove 1.20 support from CI workflows

* Update all go mod

* Add changelog entry

* Update go mod tidy target

* Run go mod tidy

* Replace sliceEqualFunc with slices.EqualFunc

* Replace grow with slices.Grow

* Replace ensureAttributesCapacity with slices.Grow

* Replace conditional with min

* Use slices module for slice comparison in metricdatatest
2024-02-25 10:48:32 -08:00
Tyler Yahn
e6e186bfa4
Release v1.24.0/v0.46.0/v0.0.1-alpha (#4966)
* Bump versions

* Prepare stable-v1 for version v1.24.0

* Prepare experimental-metrics for version v0.46.0

* Prepare experimental-logs for version v0.0.1-alpha

* Update changelog

* Fix changelog entry
2024-02-23 08:32:44 -08:00
Tyler Yahn
a5ec3fc14b
Add experimental-logs module set (#4961)
Include the go.opentelemetry.io/otel/log module in the new module set.
Use the version v0.0.1-alpha for the new module. This follows the
go.opentelemetry.io/auto projects use of the alpha suffix to communicate
extra clear the alpha state of the module.
2024-02-23 11:59:03 +01:00
Erica Yin
27e495d6f9
Fix output exponential histogram negative buckets (#4956)
* Fix output exponential histogram buckets

* Update CHANGELOG
2024-02-22 13:51:41 -08:00
ntriamme
f793a0575d
Fix registration of multiple callbacks when using the global meter provider (#4945) 2024-02-21 08:36:33 +01:00
David Ashpole
ec03021ff0
add exemplar support to the OTLP HTTP and gRPC exporters (#4900) 2024-02-12 07:31:18 -08:00
Robert Pająk
dd5d05472c
sdk/metrics: Move experimental docs to x package (#4895) 2024-02-09 09:15:18 +01:00
Robert Pająk
69b252178e
Support Go 1.22 (#4890) 2024-02-08 09:44:35 +01:00
Tyler Yahn
c5b112f31b
Release v1.23.1/v0.43.2 (#4892)
* Bump versions.yaml

* Prepare stable-v1 for version v1.23.1

* Prepare experimental-metrics for version v0.45.2

* Add changes to changelog
2024-02-07 12:41:47 -08:00
Tyler Yahn
11ebd19c46
Fix callback registration bug (#4888)
* Fix cback reg bug

Register all callbacks not just the last passed.

* Add changelog entry
2024-02-07 11:59:58 -08:00
Tyler Yahn
e3eb3f7538
Release v1.23.0/v0.45.1 (#4885)
* Bump versions.yaml

* Prepare stable-v1 for version v1.23.0

* Prepare experimental-metrics for version v0.45.1

* Update changelog

* Update CHANGELOG.md
2024-02-06 07:50:39 -08:00
Tyler Yahn
eabcef4c2d
Return merged Resource on schema conflict (#4876)
* Return merged Resource on schema conflict

* Add changes to changelog

* Doc returned resource to have no schema URL

* Refactor Merge based on feedback

* Add the schema URLs to the returned error

* Ensure no schema URL when merge conflict on detect

* Replaced isErr with wantErr in TestNew

* Update sdk/resource/auto_test.go

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

* Update TestDetect based on feedback

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2024-02-05 07:33:29 -08:00
Michał Posłuszny
569854e1d1
sdk/metric/metricdata: Add MarshalJSON for Extrema (#4827)
* json marshal for Extrema type, makefile typo fix

* MarshalText implementation, cleanup

* update changelog

* changelog fix

* Update CHANGELOG.md

* MarshalText behavior update on invalid Extrema

* Fix Marshal outputs json text representation of nil

* Updated mockData to include example with Min and Max values.

* null value test, changelog fix

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
2024-02-01 09:58:42 -08:00
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