* Replace use of old term label with attribute
The specification has unified on the term attribute to describe
key-value pairs. There exist still many hold-overs of the use of the
term label. This updates those uses or deprecates exported types and
functions in favor of renamed forms.
* fix infinite recursion
* Remove backticks from attribute set docs
* Remove LabelFilterSelector entirely
* Remove Metadata.Labels instead of deprecate
* Update changelog with public changes
* Revert OC err msg
* No wrap RELEASING Semantic Convention Generation section
* Initial generator
* Update template render
* Add exception and schema templates
* Add semconv/internal http unification
* Add http template
* Add licenses header
* Embed the templates
* Update static version in schema tmpl
* Add semconv-generate target to Makefile
Use this target to generate versions of the semconv packages.
* Generate semconv packages
* Update RELEASING to use make semconv-generate
* Add comments to semconvkit
* Generate semconv/v1.8.0
* Use new version of semconv
* Add changes to changelog
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update changelog and versions for metric/v0.29.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare experimental-metrics for version v0.29.0
* Prepare bridge for version v0.29.0
* update changelog and versions for 1.6.2 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.6.2
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Upgrade go.opentelemetry.io/proto to v0.15.0
* Fix otlpmetric exporter test
* Fix lint in otlpmetric
* Update otlptrace
* Clean new line breaks
* Fix comment in otlpmetric exporter_test.go
* Add changes to changelog
* Update versions.yaml
* Bump version in changelog
* Prepare stable-v1 for version v1.6.0
* Prepare experimental-metrics for version v0.28.0
* Prepare bridge for version v0.28.0
* Update changelog language
* Bump stable-v1 from v1.4.1 to v1.5.0
* Remove internal/metric module from versions file
This module was removed from the project.
* Prepare stable-v1 for version v1.5.0
* Update changelog
* Update CHANGELOG.md
* Empty All of the metrics dir
* Add instrument api with documentation
* Add a NoOp implementation.
* Updated to the new config standard
* Address PR comments
* This change moves components to sdk/metrics
The Moved components are:
- metric/metrictest
- metric/number
- metric/internal/registry
- metric/sdkapi
* The SDK changes necessary to satasify the new api
* This fixes the remaing tests.
* Update changelog
* refactor the Noop meter and instruments into one package.
* Renamed pkg.Instruments to pkg.InstrumentProvider
Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>
* Use port 4318 for otlptracehttp client default
* Use port 4318 for otlpmetrichttp client default
* Add changes to changelog
* Fix arg pass error
* Simplify defaultPath path parsing
* feature/exporter: add Drop Counts for oltptracer's event
Signed-off-by: 1046102779 <seachen@tencent.com>
* feature/exporter: add Drop Counts for oltptracer's event
Signed-off-by: 1046102779 <seachen@tencent.com>
* feature/exporter: add Drop Counts for oltptracer's event and link
Signed-off-by: 1046102779 <seachen@tencent.com>
* feature/exporter: add Drop Counts for oltptracer's event and link
Signed-off-by: 1046102779 <seachen@tencent.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update versions.yaml
* Prepare stable-v1 for version v1.4.1
* Prepare experimental-metrics for version v0.27.1
* Prepare bridge for version v0.27.1
* Update CHANGELOG
* Revert "Prepare experimental-metrics for version v0.27.1"
This reverts commit 838743af21.
* Do not release experimental-metrics with v0.27.1
* Update versions.yaml
* Update changelog
* Upgrade stable-v1 to version v1.4.0
* Upgrade experimental-metrics to version v0.27.0
* Upgrade bridge to version v0.27.0
* Update CHANGELOG.md
* Change trace options to accept type not pointer
Add benchmark to show allocation improvement.
* Update CONTRIBUTING.md guidelines
* Update all Option iface
* Fix grammar in CONTRIBUTING
* Fix TestBackoffRetry in otlp retry pkg
The delay of the retry is within two times a randomization factor (the
back-off time is delay * random number within [1 - factor, 1 + factor].
This means the waitFunc in TestBackoffRetry needs to check the delay is
within an appropriate delta, not equal to configure initial delay.
* Fix delta value
* Fix delta
Co-authored-by: Aaron Clawson <Aaron.Clawson@gmail.com>
* Update versions.yaml for release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.3.0
* Prepare experimental-metrics for version v0.26.0
* Prepare bridge for version v0.26.0
* Update CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Fix per-signal endpoint parsing in otlptrace
* Add distinguishing non-per-signal env var value
* Fix per-signal endpoint parsing in otlpmetric
* Add changes to changelog
* Use else if to prevent unnecessary work
* Add spec link to otlptrace README
* Use host CA set by default for otlptrace
* Remove test for invalid default certs
* Default to host CA for otlpmetric
* Add changes to changelog
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Centralize the retry package for the otlp exporters
* Add dependabot config
* Use unified internal/retry module in otlp exporters
* Remove otlpmetric and otlptrace internal/retry module
* Run go mod tidy in otlp{metric,trace}
* Use gRPC ClientConn for otlpmetricgrpc conn handling
* Update PR number
* Update otlpmetrichttp to use retry package
* Remove old commented code
* Add all other external changes to changelog
* POC using the grpc.ClientConn to handle connections
* Update invalid client security test
* Update client start test for a bad endpoint
* Use any ClientConn a user provides
* Connect ReconnectionPeriod to gRPC conn retries
* Replace connection retry handling direct in otlptracegrpc
* Fix client comments
* Fix comment for NewGRPCConfig
* Replace reconnection test
* Fix grammar
* Remove unrelated changes
* Remove connection pkg
* Rename evaluate to retryable
* POC using the grpc.ClientConn to handle connections
* Replace connection retry handling direct in otlptracegrpc
* Add ClientConn use changes to changelog
* Update otlptracegrpc options
* Only close ClientConn that the Client create
* Remove listener wrapper from mock_collector_test
This is not needed now that no tests relies on the listener to wait for
a connection to be established before continuing.
* Fix spelling error
* Do not use deprecated options in the otel-collector example
* Add unit tests for retryable and throttleDelay funcs
* Add unit tests for context heredity
* Add test that exporter stop is linked to context cancel
* go mod tidy
* Update exporters/otlp/otlptrace/otlptracegrpc/client.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Fix go.mod from rebase
* Remove wrong comment about client stop closing gRPC conn
* Fix shutdown test cleanup
Do not check the second call to the client Stop. There is no guarantee
it will not error in normal operation.
* Make lint fixes
* Fix flaky unit test
Use the internals of the client to explicit cancel the context returned
from exportContext. This gets around the bug where the select in Stop
may randomly choose the non-context Done case and avoid returning an
error (also failing to cancel the context).
* Remove deprecation
To configure the client/exporter with environment variables these
options are used. There is no way to fully remove these options without
removing support for configuration with environment variables. Leave
that decision and strategy determination to a separate PR.
* Fix grammatical error in comment
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Fail in RunEndToEndTest if collector stop fails
* Use testing T.Cleanup to check shut downs
* Add goroutine leak detection
* Fix TestExporterShutdown go leak
The shutdown tests checking if a context error is honored did not
completely clean up the resources used by the client after the error was
evaluated. Update the connection client to handle multiple calls to
shutdown and make a second call to these clients that must succeed so
the test does not have abandoned goroutines.
* Fix leak in TestNew_WithTimeout
The mockTraceService did not delay with its lock being held. This
resulted in the mockCollector stopping and being able to acquire the
lock. It was assumed that no export was taking place because of this and
the mockTraceService was abandoned without cleaning up resources it held
and goroutines it had spawned. This reworks the export blocking logic to
block on a channel read. This will make the block more deterministic and
not depend on the scheduler timing. Additionally, this blocking is moved
inside the lock acquire. Meaning code will deadlock if the block is not
released before a shutdown (something the developer will immediately be
aware of when they submit a bad patch), and will ensure all resources
are released before shutdown.
Replace TestNew_WithTimeout with TestExportSpansTimeoutHonored which
directly tests if a span export errors when the timeout is reached. This
is the only unique thing that TestNew_WithTimeout, but it also tests the
non-error path. That non-error path is tested in many other tests.
* Guard otlptracehttp client stopCh when stopping
In normal operations the exporter is guaranteed to only ever call the
client Stop method once. However in testing we need to call this
multiple times when checking it returns an error in particular context.
Add a lightweight sync.Once to the closing of the stopCh to ensure tests
do not panic when cleaning up.
* Release export block after export
Prevent deadlock in TestExportSpansTimeoutHonored.
This is a simple loggin interface to be used interally for the sdk.
Included is an exmaple in `namedtracer` run:
```
cd example/namedtracer
go run . >/dev/null
```
Bump github.com/golangci/golangci-lint from 1.42.1 to 1.43.0 in /internal/tools.
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 in /exporters/otlp/otlpmetric.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlpmetric/otlpmetrichttp.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlpmetric.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlptrace.
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 in /exporters/otlp/otlpmetric/otlpmetricgrpc.
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 in /exporters/otlp/otlptrace.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlptrace/otlptracehttp.
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 in /exporters/otlp/otlptrace/otlptracegrpc.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlpmetric/otlpmetricgrpc.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlptrace/otlptracegrpc.
Bump github.com/benbjohnson/clock from 1.1.0 to 1.2.0 in /sdk/metric.
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 in /example/otel-collector.
* Version stable-v1 modset to be 1.0.2 for release
* Prepare stable-v1 for version v1.0.2
* Update changelog
Add new 1.0.2 section and move relevant items that the release will
contain to this section.
* Add article to CHANGELOG entry to correct grammar
* Release 1.1.0 instead of 1.0.2
* Prepare stable-v1 for version v1.1.0
* Apply suggestions from code review
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* Add semconv/v1.7.0 package
Generated from the v1.7.0 release of the specification using the
semconvgen tool manually. This also updates the project to use this
version of the semconv package.
This does not include the prior, and missing, v1.5.0 and v1.6.0 versions
of the semconv package. They are planned to be added in a follow-on PR.
* Update CHANGELOG.md
Explicitly return nil if the wait time and the context deadline expire
simultaneously, instead of indeterminately the context error or nil, for
the retry wait function in the otlptrace/internal package.
* Add ability to parse Schema files according to OTEP 0152
The parser and parsed representation (AST) are placed in a separate
Go module so that they are can be consumed independently without
the need to bring the rest of the SDK.
Ability to use the parsed representation for schema conversions
can be added later.
* Fixes based on PR comments
* Rename "label" to "attributes"
See https://github.com/open-telemetry/oteps/pull/181
* Fixes based on PR comments
* Add README.md
* Wrap the error in Parse()
* Add docs for exporter types
* Use yaml.NewDecoder
* Verify parsed content in the test
* Fix indentation in README example
* Fix README spaces vs tabs
* Correctly space imports
* Add heading to README
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* move Descriptor to sdkapi, add test
* rename Descriptor to sdkapi
* precommit
* Move the rest of the sdkapi
* use alias for Observation and Measurement
* Changelog
* pr num
* comment Measurement and Observation
* swap comments
* move->moved
* Update build tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG and versions.yaml
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.0.1
* Prepare experimental-metrics for version v0.24.0
* Prepare bridge for version v0.24.0
* Update releasing documentation and create add-tags make target
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* use multimod from the .tools directory
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* precommit
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* factor instrumentation library out of the instrument descriptor
* SDK tests pass
* checkpoint work
* otlp and opencensus tests passing
* prometheus
* tests pass, working on lint
* lint applied: MetricReader->Reader
* comments
* Changelog
* Apply suggestions from code review
Co-authored-by: alrex <alrex.boten@gmail.com>
* remove an interdependency
* fix build
* re-indent one
* Apply suggestions from code review
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Lint&feedback
* update after rename
* comment fix
* style fix for meter options
* remove libraryReader, let Controller implement the reader API directly
* rename 'impl' field to 'provider'
* remove a type assertion
* move metric/registry into internal; move registry.MeterProvider into metric controller
* add test for controller registry function
* CheckpointSet->Reader everywhere
* lint
* remove two unnecessary accessor methods; Controller implements MeterProvider and InstrumentationLibraryReader directly, no need to get these
* use a sync.Map
* ensure the initOnce is always called; handle multiple errors
* Apply suggestions from code review
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* cleanup locking in metrictest
* Revert "ensure the initOnce is always called; handle multiple errors"
This reverts commit 3356eb5ed0.
* Revert "use a sync.Map"
This reverts commit ea7bc599bd.
* restore the TODO about sync.Map
Co-authored-by: alrex <alrex.boten@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update versions file for 1.0.0 release
* Prepare stable-v1 for version v1.0.0
* Update trace signal status in documentation
* Update changelog
* Update CHANGELOG.md
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
We previously were recording the Schema URL but were not setting
the recorded value when exporting. This change now uses the recorded
value when exporting to OTLP.
* Fix slice-valued attributes when used as map keys
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* store pointers to slice values to make them usable as map keys
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Emit slice-typed attribute values as slices, not pointers to slices
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
keep import comments of otelpconfig consistent with other
Signed-off-by: DQ <dengq@vmware.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update release versions
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare experimental-metrics for version v0.23.0
* Prepare bridge for version v0.23.0
* Prepare stable-v1 for version v1.0.0-RC3
* Update CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update the website getting started docs
Add a new example, fib, that contains an application for the computation
of Fibonacci numbers. Use this example to update the website getting
started documentation.
* Revise docs english
* Update example/fib/go.mod
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add a What's Next section
* Clean up intro
* Apply suggestions from code review
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Apply feedback
* Return from Poll on error
* Update website_docs/getting-started.md
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
* Add root and parent relationship info
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
* s/ValueRecorder/Histogram/g
* s/ValueObserver/GaugeObserver/g
* s/UpDownSumObserver/UpDownCounterObserver/g
* s/SumObserver/CounterObserver/g
* changelog
* pr num
* unstable->experimental
* Apply suggestions from code review
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Apply suggestions from code review
* apply feedback from @evantorrie by hand
* Apply suggestions from code review
Thanks
Co-authored-by: ET <evantorrie@users.noreply.github.com>
* Update sdk/export/metric/metric.go
* Apply suggestions from code review
Thank you @evantorrie !
Co-authored-by: ET <evantorrie@users.noreply.github.com>
* revert getting-started fix let tyler's update remove this text
* more variable name fixes
* test repair
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: ET <evantorrie@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>