Bump codespell from 2.2.5 to 2.2.6
Bump golang.org/x/sys from 0.12.0 to 0.13.0 in /sdk
Bump stefanzweifel/git-auto-commit-action from 4 to 5
Bump github.com/jcchavezs/porto from 0.4.0 to 0.5.1 in /internal/tools
Bump golang.org/x/tools from 0.13.0 to 0.14.0 in /internal/tools
Bump github.com/prometheus/client_model from 0.4.1-0.20230718164431-9a2bf3000d16 to 0.5.0 in /exporters/prometheus
* 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
* 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
* 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>
* 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>
* Document public ifaces to remain stable
Resolve#3673
* Revert changes to aggregation pkg
* Document reader as an interface that can be extended
* Address feedback
---------
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* 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
* 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>
A guard was added in #4446 to prevent non-normal float64 from being
recorded. This was added in the low-level `record` method meaning that
the higher-level `measure` method will still keep a record of the
invalid value measurement, just with a zero-value.
This fixes that issue by moving the guard to the `measure` method.
Both functions receive parameters from an expoHistogramDataPoint and are
only ever used by other methods of an expoHistogramDataPoint. Make the
functions methods of expoHistogramDataPoint so the parameter arguments
can be dropped and the functions are scoped to the type they are used
for.
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* 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>
* Add internaltest templates
* Generate internaltest using gotmpl
* Generate the sdk/internal/internaltest pkg
* Use sdk/internal/internaltest in sdk module
* Generate exporters/jaeger/internal/internaltest pkg
* Use exporters/jaeger/internal/internaltest in jaeger exporter
* Generate the exporters/zipkin/internal/internaltest pkg
* Use local internaltest in zipkin exporter
* Fix import path name in trace test
* 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>
* 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>
Bump golang.org/x/sys from 0.10.0 to 0.11.0 in /sdk
Bump golang.org/x/tools from 0.11.0 to 0.11.1 in /internal/tools
Bump go.opentelemetry.io/build-tools/crosslink from 0.10.0 to 0.11.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/semconvgen from 0.10.0 to 0.11.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/dbotconf from 0.10.0 to 0.11.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/multimod from 0.10.0 to 0.11.0 in /internal/tools
* 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>
Instead of treating the returned *lastValue as an aggregator from
newLastValue, just use the type directly to construct the Measure and
ComputeAggregation functions returned from the Builder.
Accept a destination type for the underlying computeAggregation. This
allows memory reuse for collections which adds a considerable
optimization.
Simplify the integration testing of the last-value aggregate.
Update benchmarking.
* Replace filter aggregator with direct filter on measure
Part of #4220
Instead of using an aggregator to filter measured attributes, directly
filter the attributes in the constructed Measure function the Builder
creates.
Include unit and integration testing of new filtering.
* Update sdk/metric/internal/aggregate/aggregate.go
Co-authored-by: David Ashpole <dashpole@google.com>
---------
Co-authored-by: David Ashpole <dashpole@google.com>
* 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
* 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
* 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
* 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
* 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>
Bump google.golang.org/grpc from 1.56.1 to 1.56.2 in /bridge/opentracing/test
Bump google.golang.org/grpc from 1.56.1 to 1.56.2 in /exporters/otlp/otlptrace/otlptracegrpc
Bump golang.org/x/tools from 0.10.0 to 0.11.0 in /internal/tools
Bump google.golang.org/grpc from 1.56.1 to 1.56.2 in /exporters/otlp/otlptrace
Bump benchmark-action/github-action-benchmark from 1.17.0 to 1.18.0
Bump google.golang.org/grpc from 1.56.1 to 1.56.2 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump google.golang.org/grpc from 1.56.1 to 1.56.2 in /example/otel-collector
Bump google.golang.org/grpc from 1.56.1 to 1.56.2 in /exporters/otlp/otlpmetric
Bump golang.org/x/sys from 0.9.0 to 0.10.0 in /sdk
* 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>
* Use newPipeline instead of direct construction
The newPipeline function exists to create a new pipeline, but it is not
currently used. This switches to using that as the default creation
method and removes the test for construction of a pipeline directly.
* Update sdk/metric/pipeline.go
Bump google.golang.org/grpc from 1.55.0 to 1.56.0 in /bridge/opentracing/test
Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 in /example/view
Bump github.com/golangci/golangci-lint from 1.53.2 to 1.53.3 in /internal/tools
Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 in /exporters/prometheus
Bump golang.org/x/tools from 0.9.3 to 0.10.0 in /internal/tools
Bump google.golang.org/grpc from 1.55.0 to 1.56.0 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump google.golang.org/grpc from 1.55.0 to 1.56.0 in /exporters/otlp/otlpmetric
Bump google.golang.org/grpc from 1.55.0 to 1.56.0 in /exporters/otlp/otlptrace/otlptracegrpc
Bump google.golang.org/grpc from 1.55.0 to 1.56.0 in /exporters/otlp/otlptrace
Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 in /example/prometheus
Bump google.golang.org/grpc from 1.55.0 to 1.56.0 in /example/otel-collector
Bump golang.org/x/sys from 0.8.0 to 0.9.0 in /sdk
* 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>
Bump go.opentelemetry.io/build-tools/crosslink from 0.7.0 to 0.8.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/dbotconf from 0.7.0 to 0.8.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/multimod from 0.7.0 to 0.8.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/semconvgen from 0.7.0 to 0.8.0 in /internal/tools
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/otlp/otlptrace
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/zipkin
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/otlp/otlptrace/otlptracehttp
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /bridge/opentracing/test
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/otlp/internal/retry
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/otlp/otlpmetric/otlpmetrichttp
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/otlp/otlptrace/otlptracegrpc
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/jaeger
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/stdout/stdouttrace
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/stdout/stdoutmetric
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/otlp/otlpmetric
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /schema
Bump github.com/itchyny/gojq from 0.12.12 to 0.12.13 in /internal/tools
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /metric
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /trace
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/prometheus
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /bridge/opencensus
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /sdk/metric
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /bridge/opentracing
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4
Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /sdk
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/zipkin
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /bridge/opentracing/test
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /schema
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/otlp/internal/retry
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/prometheus
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/stdout/stdoutmetric
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/otlp/otlptrace
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/otlp/otlpmetric
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/otlp/otlpmetric/otlpmetrichttp
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/otlp/otlptrace/otlptracegrpc
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/stdout/stdouttrace
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/otlp/otlptrace/otlptracehttp
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /metric
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /trace
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /exporters/jaeger
Bump codecov/codecov-action from 3.1.3 to 3.1.4
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /sdk/metric
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /bridge/opencensus
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /bridge/opentracing
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 in /sdk
Bump github.com/stretchr/testify from 1.8.2 to 1.8.3
* added version.go and test file for issue 2143
* added license in metric versiont_test
* goimport file linting
* update trace version to v.1.13.0 and metric to 0.36.0
* Update sdk/metric/version.go
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* using asser.Regxp
* changing regex string as per recommendations
Signed-off-by: ChillOrb <rakshitparashar1@gmail.com>
* changing regex string as per recommendations
Signed-off-by: ChillOrb <rakshitparashar1@gmail.com>
* reverting go mod and go sum changes
Signed-off-by: ChillOrb <rakshitparashar1@gmail.com>
* trace and metric version bump up
Signed-off-by: ChillOrb <rakshitparashar1@gmail.com>
* version update in sdk/metric , sdk/trace
Signed-off-by: ChillOrb <rakshitparashar1@gmail.com>
* doc typo fix
Signed-off-by: ChillOrb <rakshitparashar1@gmail.com>
* Apply suggestions from code review
---------
Signed-off-by: ChillOrb <rakshitparashar1@gmail.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Bump google.golang.org/grpc from 1.54.0 to 1.55.0 in /bridge/opentracing/test
Bump github.com/prometheus/client_golang from 1.15.0 to 1.15.1 in /example/view
Bump github.com/prometheus/client_model from 0.3.0 to 0.4.0 in /exporters/prometheus
Bump github.com/prometheus/client_golang from 1.15.0 to 1.15.1 in /exporters/prometheus
Bump google.golang.org/grpc from 1.54.0 to 1.55.0 in /exporters/otlp/otlptrace
Bump google.golang.org/grpc from 1.54.0 to 1.55.0 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump google.golang.org/grpc from 1.54.0 to 1.55.0 in /exporters/otlp/otlptrace/otlptracegrpc
Bump google.golang.org/grpc from 1.54.0 to 1.55.0 in /exporters/otlp/otlpmetric
Bump google.golang.org/grpc from 1.54.0 to 1.55.0 in /example/otel-collector
Bump github.com/prometheus/client_golang from 1.15.0 to 1.15.1 in /example/prometheus
Bump golang.org/x/sys from 0.7.0 to 0.8.0 in /sdk
* 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
* 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
Benchmark all instruments, not just an int64 counter.
Include benchmarks for all synchronous measurement methods.
Include benchmarks for all collections.
* 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
* 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>
* fix aggregation.Default to properly return the default one
* add changelog entry
* default aggregation does not error anymore
* test all instrument kinds
* PoC of embedded private method ifaces
* Rename embed to embedded
* Add an embedded iface for all instruments
* Fix metric/instrument tests
* Fix global and otel
* Fix SDK
* Comment the embedded pkg types
* Update the embedded pkg docs
* Update otel/metric docs about impls
* Update otel/metric type docs on impl
* Update docs in otel/metric/instrument on default
* Add changes to changelog
* Apply suggestions from code review
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* Apply feedback on URLs
* Reword based on feedback
* Make it clear we only recommended embedding noop
* Ignore links with godot linter
---------
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Bump github.com/go-logr/logr from 1.2.3 to 1.2.4 in /exporters/zipkin
Bump github.com/go-logr/logr from 1.2.3 to 1.2.4 in /exporters/jaeger
Bump github.com/go-logr/logr from 1.2.3 to 1.2.4 in /sdk/metric
Bump github.com/go-logr/logr from 1.2.3 to 1.2.4 in /sdk
Bump github.com/go-logr/logr from 1.2.3 to 1.2.4
* Pre-allocate spanProcessorStates slice
* Make sync.Once a non-pointer
It doesn't need to be a pointer, can be part of the struct to avoid allocating a separate object for it
* getSpanProcessors() helper
* Add tests for UnregisterSpanProcessor()
* Add Version func to otel/sdk
* Update sdk/resource to use sdk version
* Remove unused UserAgent from sdk/internal
* Add changes to changelog
* Update CHANGELOG.md
Co-authored-by: Robert Pająk <pellared@hotmail.com>
---------
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* add warning log about using simpleSpanProcessor in production
* add changelog entry
* fix changelog
* switch to using the new Warn logging function
* revert alignment formatting in changelog
---------
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Bump versions
* Prepare stable-v1 for version v1.15.0-rc.2
* Prepare experimental-metrics for version v0.38.0-rc.2
* Update changelog
* Update CHANGELOG.md
Co-authored-by: Robert Pająk <pellared@hotmail.com>
---------
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* add platform specific hostIDReaders
* add WithHostID option to Resource
* add changelog entry
* Apply suggestions from code review
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* linting
* combine platform specific readers and tests
This allows us to run tests for the BSD, Darwin, and Linux readers
on all platforms.
* add todo to use assert.AnError after resource.Detect error handling is updated
* move HostID test utilities to host_id_test
* return assert.AnError from mockHostIDProviderWithError
* use assert.ErrorIs
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
---------
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Pool sortables used to create attribute sets
* Move sync pool to attribute pkg
* Add change to changelog
* Fix comment
* Apply suggestions from code review
Co-authored-by: Peter Liu <lpfvip2008@gmail.com>
* Update sdk/metric/instrument.go
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* Update comment based on feedback
* Apply feedback
---------
Co-authored-by: Peter Liu <lpfvip2008@gmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* Update Detect and New to wrap errors
* Add TestNewWrapedError
Test that New returns an error that can be unwrapped.
* Add changes to changelog
* Clarify and simplify errors
* Move ErrorHandler impl to internal
To avoid the import cycle, the otel/metric package needs to not import
otel. To achieve this, the error handling implementation is moved to the
otel/internal/global package where both can import the needed
functionality.
* Add global metric to go.opentelemetry.io/otel
* Crosslink and update to global metric in otel
* Add changes to changelog
* Set PR number in changelog
* Add global metric unit tests
* Rename MeterProivder() to GetMeterProivder()
* Add TODO to remove nolint comments
* Bump mod versions
* Add bridge/opentracing/test to versions.yaml
* Prepare stable-v1 for version v1.14.0
* Prepare experimental-metrics for version v0.37.0
* Prepare experimental-schema for version v0.0.4
* Update changelog
* Replace Unit from metric/unit with string
Deprecate the units package. This package will not be included in the
metric GA.
* Add changes to changelog
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /bridge/opentracing/test
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/otlp/internal/retry
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /schema
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/otlp/otlpmetric/otlpmetrichttp
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/prometheus
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /metric
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/jaeger
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/zipkin
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /trace
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/otlp/otlpmetric
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/stdout/stdouttrace
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/otlp/otlptrace/otlptracegrpc
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/otlp/otlptrace
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/otlp/otlptrace/otlptracehttp
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /exporters/stdout/stdoutmetric
Bump github.com/golangci/golangci-lint from 1.51.1 to 1.51.2 in /internal/tools
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /sdk/metric
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /bridge/opencensus
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /sdk
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2
Bump golang.org/x/sys from 0.0.0-20220919091848-fb04ddd9f9c8 to 0.5.0 in /sdk
Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /bridge/opentracing
Bump lycheeverse/lychee-action from 1.5.4 to 1.6.1
* Merge instrument cache to inserter
The current pipeline resolution path will only add the resolved
aggregators to the pipeline when it creates one (cache miss). It will
not add it if there is a cache hit. This means (since we cache
instruments at the meter level, not the pipeline level) the first reader
in a multiple-reader setup is the only one that will collect data for
that aggregator. All other readers will have a cache hit and nothing is
added to the pipeline. This is causing #3720.
This resolves#3720 by moving the instrument caching into the inserter.
This means aggregators are cached at the reader level, not the meter.
* Rename aggCV to aggVal
---------
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
An instrument is defined by a name, description, unit, and kind. The
instrumentID contains more identifying information than these fields.
The additional information it contains relate to what the OTel metric
data-model calls a stream. Match the terminology and remove using the
instrumentID name in case we want to use it for something else (say,
when caching instruments).
The attributes filter collects seen attributes in order to avoid
filtration on the same attribute set. However, the `attribute.Set` is
not comparable type and new allocations of sets with same attributes will be
considered as new sets.
Metrics with a high cardinality of attributes consume a lot of memory
even if we set a filter to reduce that cardinality.
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* WithContainerID: Document ECS limitation.
WithContainerID is not able to extract the correct container id in an ECS environment. The ECS resource detector should be used instead (https://pkg.go.dev/go.opentelemetry.io/contrib/detectors/aws/ecs).
See #3633.
* fix lint
* Update sdk/resource/config.go
---------
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* update versions.yaml for release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.13.0
* Prepare experimental-metrics for version v0.36.0
* Update CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
---------
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update module versions
* Prepare stable-v1 for version v1.12.0
* Prepare experimental-metrics for version v0.35.0
* Prepare experimental-schema for version v0.0.4
* Update the CHANGELOG
* Undo bump to experimental-schema
Revert to original version as nothing has changed.
* Fix PR number in changelog
* Move change from #3497 into current release
* Use Extrema type for Histogram min/max
* Add case for Extrema in AssertHasAttributes
* Add changes to changelog
* Add NewExtrema
* Add metricdatatest tests
* Use getter for Extrema
* Fix Extrema doc language
* Correct dataset to be one word
* Ensure multiple extrema are tested in a dataset
* Update RegisterCallback and Callback decls
RegisterCallback accept variadic Asynchronous instruments instead of a
slice.
Callback accept an observation result recorder to ensure instruments
that are observed by a callback.
* Update global impl
* Update noop impl
* Update SDK impl
* Fix prometheus example
* Fix metric API example_test
* Remove unused registerabler
* Rename ObservationRecorder to MultiObserver
* Update Callback documentation about MultiObserver
* Remove the Observe method from async inst
* Revert to iface for Observers
* Fix async inst docs
* Update global async delegate race test
* Restore removed observe doc
* Remove TODO
* Remove stale comment
* Update changelog
* Combine spatially aggregated precomputed vals
Fix#3439
When an attribute filter drops a distinguishing attribute during the
aggregation of a precomputed sum add that value to existing, instead of
just setting the value as an override (current behavior).
* Ignore false positive lint error and test method
* Add fix to changelog
* Handle edge case of exact set after filter
* Fix filter and measure algo for precomp
* Add tests for precomp sums
* Unify precomputedMap
* Adds example from supplimental guide
* Fixes for lint
* Update sdk/metric/meter_example_test.go
* Fix async example test
* Reduce duplicate code in TestAsynchronousExample
* Clarify naming and documentation
* Fix spelling errors
* Add a noop filter to default view
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Update RegisterCallback and Callback declerations
RegisterCallback accepts variadic Asynchronous instruments instead of a
slice.
Callback accepts an observation result recorder to ensure instruments
that are observed by a callback.
* Update global, noop, SDK implementations
* Fix examples
* Add changes to changelog
* Test RegisterCallback for invalid observers
* Test callbacks from foreign sources not collected
* Support registering delegating instruments
* Restructure RegisterCallback method
Instead of accepting instruments to register the callback with as a
slice, accept them as variadic arguments.
* Add changes to changelog
* Add PR number to changes
* Split metric inst config
Instead of having the same configuration for both the Synchronous and
Asynchronous instruments, use specific options for both.
* Use Async/Sync opt for appropriate inst
* Update noop inst providers
* Update internal global impl
* Update sdk
* Remove unused method for callbackOption
* Test instrument configuration
* Lint imports
* Add changes to changelog
* Refactor callbacks and further split opts
Define callbacks to return the value observed. Because of the different
types returned for different observables, the callbacks and options are
move to the sync/async packages.
* Update noop impl
* Fix example_test.go
* Fix internal impl
* Update Callbacks
Return observations for distinct attr sets.
* Refactor common code in sdk/metric inst provider
* Update examples and prom exporter
* Generalize callback
* Update changelog
* Add unit tests for callback
* Add meter tests for cbacks on creation
* Rename Observations to Measurements
* Update Callback to accept an Observer
* Update SDK impl
* Move conf to instrument pkg
* Apply suggestions from code review
* Create metric API Callback type
Document the type according the OTel specification requirements.
* Update all impls of the metric API with new type
* Add changes to changelog
* Update PR number in changelog entry
To potentially optimize the collection code path (#3047) ResourceMetrics
sent to the Exporter may be reused in the future. Warn users of this.
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Update Meter RegisterCallback method
Return a Registration from the method that can be used by the caller to
unregister their callback.
Update documentation of the method to better explain expectations of
use and implementation.
* Update noop impl
* Update global impl
* Test global Unregister concurrent safe
* Use a map to track reg in global impl
* Update sdk impl
* Use a list for global impl
* Fix prom example
* Lint metric/meter.go
* Fix metric example
* Placeholder for changelog
* Update PR number in changelog
* Update sdk/metric/pipeline.go
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add test unregistered callback is not called
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* add RegisterProducer method and metric.Producer interface
* rename testProducer to testSDKProducer
* rename testMetrics to testResourceMetrics
* add testExternalProducer for testing bridges
* add test data for testing external producers
* clean up help text
* unit tests for external Producer
* changelog
* improve test coverage
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* support partial errors
* fix lint
* add additional test
* unallocate producers on shutdown
* don't register Producers after shutdown
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add the InstrumentKind type and vars to sdk/metric
* Add the Instrument type to sdk/metric
* Add the Stream type to sdk/metric
* Add the View type to sdk/metric
* Add NewView to create Views matching OTel spec
* Add unit tests for NewView
* Add changes to changelog
* Apply suggestions from code review
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
* Update match and mask comments of Instrument
* Explain wildcard logic in NewView with comment
* Drop views that replace name for multi-inst match
* Comment how users are expected to match zero-vals
* Remove InstrumentKind and Scope from Stream
* Fix redundant word in NewView comment
* Add view example tests
* Update comments to examples
* Fix broken English
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Replace view usage in sdk/metric
* Replace view use in stdoutmetric
* Replace view use in prometheus exporter
* Replace view use in otlpmetric exporters
* Replace view use in view example
* Add the InstrumentKind type and vars to sdk/metric
* Add the Instrument type to sdk/metric
* Add the Stream type to sdk/metric
* Add the View type to sdk/metric
* Add NewView to create Views matching OTel spec
* Add unit tests for NewView
* Add changes to changelog
* Apply suggestions from code review
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
* Update match and mask comments of Instrument
* Explain wildcard logic in NewView with comment
* Drop views that replace name for multi-inst match
* Comment how users are expected to match zero-vals
* Remove InstrumentKind and Scope from Stream
* Fix redundant word in NewView comment
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Do not return an error for Drop aggs
The async instruments currently return an error if and only if there are
no aggregators returned from a resolve. Returning no aggregators means
the instrument aggregation is drop. Do not include this in the error
reporting decision.
* Only registers callbacks if non-drop agg is used
The instruments passed to RegisterCallback need to have some aggregation
defined otherwise it is implied they have a Drop aggregation. Check that
at least one instrument passed has an aggregation other than Drop before
registering the callback with the pipelines.
Also, return an error if the user passed another API implementation of
an asynchronous instrument.
* Remove unneeded TODO from pipeline
* Add changes to changelog
* Test callback not called for all drop instruments
* Test RegisterCallback returns err for non-SDK inst
* Fail gracefully for non-SDK instruments
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Return empty nil aggs if no meas
* Update tests with new expected behavior
* Add change to changelog
* Set PR number in changelog
* Run lint
* Fix pipeline_test
* Scope change in changelog to pkg
* Clean up init of agg types
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/internal/retry
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /schema
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlpmetric/otlpmetrichttp
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/stdout/stdouttrace
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/stdout/stdoutmetric
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/prometheus
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/zipkin
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /trace
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlpmetric
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/jaeger
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlptrace/otlptracehttp
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /metric
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlptrace/otlptracegrpc
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlptrace
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /sdk/metric
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /bridge/opencensus
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /sdk
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>
* Split WithView from WithReader
* Accept readers and views params in newPipelines
* Update MeterProvider pipes init
* Fix WithView comment
* Fix view example MeterProvider option
* Fix With{View,Reader} option in prom exporter test
* Test Reader not required to be comparable
* Add changes to changelog
* Fix changelog option name
* dependabot updates Thu Oct 27 19:57:50 UTC 2022
Bump github.com/golangci/golangci-lint from 1.48.0 to 1.50.1 in /internal/tools
Bump golang.org/x/tools from 0.1.12 to 0.2.0 in /internal/tools
* Ignore errors in Prom exporter's sanitizeName
* Omit type from inferred var decl
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <codingalias@gmail.com>
* Update API docs
Update the async instrument docs for the counters types to explain that
the value recorded is assumed by implementations to be the cumulative
sum.
* Refactor precomputed delta sum aggregation
Report the delta Aggregation while supporting cumulative Aggregate
values.
* Add changes to changelog
* Bump module versions
* Prepare stable-v1 for version v1.11.1
* Prepare experimental-metrics for version v0.33.0
* Update the changelog
* Update CHANGELOG.md
* Update Asynchronous API docs
Clarify the Counter and UpDownCounter Observe values are the exact
counter value, not increments to the previous measurements.
* Add the pre-computed sum Aggregator
* Test the PreComputedSum
* Use the PrecomputedSum for async counters
* Add changes to changelog
* Ignore false-positive lint error
* Split NewPrecomputedSum into delta/cumulative vers
* Decode values from OTEL_RESOURCE_ATTRIBUTES
The W3C spec specifies that values must be percent-encoded so when
reading the environment variable `OTEL_RESOURCE_ATTRIBUTES` the SDK
should decode them.
This is done by the `baggage` package, but its behaviour in case of
errors is slightly different from the current implementation of the SDK,
more specifically in cases where a key is missing a value. The SDK
returns a partial resource while the `bagage` package returns nil.
This may be considered a breaking change, so this commit fixes the
current implementation instead of using `baggage.Parse`.
* Add changelog entry for #2963
* Use otel.Handle on OTEL_RESOURCE_ATTRIBUTES decode error
* retain original value when decoding fails
* docs: update CHANGELOG
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/otlp/internal/retry
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/otlp/otlpmetric/otlpmetrichttp
Bump google.golang.org/protobuf from 1.28.0 to 1.28.1 in /exporters/otlp/otlpmetric/otlpmetrichttp
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /schema
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/zipkin
Bump github.com/openzipkin/zipkin-go from 0.4.0 to 0.4.1 in /exporters/zipkin
Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 in /exporters/zipkin
Bump google.golang.org/grpc from 1.46.2 to 1.50.1 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump google.golang.org/grpc from 1.46.2 to 1.50.1 in /exporters/otlp/otlptrace
Bump google.golang.org/protobuf from 1.28.0 to 1.28.1 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/otlp/otlptrace
Bump google.golang.org/protobuf from 1.27.1 to 1.28.1 in /exporters/otlp/otlpmetric
Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 in /exporters/otlp/otlptrace
Bump google.golang.org/protobuf from 1.28.0 to 1.28.1 in /exporters/otlp/otlptrace
Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 in /exporters/otlp/otlpmetric
Bump google.golang.org/grpc from 1.42.0 to 1.50.1 in /exporters/otlp/otlpmetric
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/stdout/stdouttrace
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/prometheus
Bump google.golang.org/protobuf from 1.28.0 to 1.28.1 in /exporters/otlp/otlptrace/otlptracegrpc
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/otlp/otlpmetric
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/otlp/otlptrace/otlptracegrpc
Bump google.golang.org/grpc from 1.46.2 to 1.50.1 in /exporters/otlp/otlptrace/otlptracegrpc
Bump go.uber.org/goleak from 1.1.12 to 1.2.0 in /exporters/otlp/otlptrace/otlptracegrpc
Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 in /exporters/jaeger
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /trace
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/jaeger
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /metric
Bump github.com/stretchr/testify from 1.7.1 to 1.8.0 in /exporters/otlp/otlptrace/otlptracehttp
Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 in /trace
Co-authored-by: Aneurysm9 <Aneurysm9@users.noreply.github.com>
* Bump stable-v1 and experimental-metrics vers
* Prepare stable-v1 for version v1.11.0
* Prepare experimental-metrics for version v0.32.3
* Update changelog for release
* Retract v0.32.2 of otlpmetric{http,grpc}
* Add the cache type
* Add cache unit tests
* Test cache concurrency
* Add the instrumentCache
* Use the instrumentCache to deduplicate creation
* Drop unique check from addAggregator
* Fix aggregatorCache* docs
* Update cachedAggregator and aggregator method docs
* Remove unnecessary type constraint
* Remove unused errAlreadyRegistered
* Rename to not shadow imports
* Add changes to changelog
* Fix changelog English
* Store resolvers in the meter instead of caches
* Test all Aggregator[N] impls are comparable
* Fix lint
* Add documentation that Aggregators need to be comparable
* Update sdk/metric/internal/aggregator.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update sdk/metric/instrument.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update sdk/metric/instrument.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update sdk/metric/internal/aggregator_test.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Fix pipeline_test.go use of newInstrumentCache
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Use default view if inst matches no other
Fix#3224
* Test default view applied if no match
* Add changes to changelog
* Remove unneeded views len check in WithReader
* Do not return agg if adding err-ed
* Revert "Do not return agg if adding err-ed"
This reverts commit b56efb06a7.
* update bucket default bounds to match the specification
* add changelog entry
* test custom boundaries with valid histogram
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add views field to pipeline
Redundant maps tracking readers to views and readers to pipelines exist
in the pipelineRegistry. Unify these maps by tracing views in pipelines.
* Rename newPipelineRegistries->newPipelineRegistry
* Add Reader as field to pipeline
* Replace createAggregators with resolver facilitator
* Replace create agg funcs with inserter facilitator
* Correct documentation
* Replace pipelineRegistry with []pipeline type
* Rename newPipelineRegistry->newPipelines
* Fix pipeline_registry_test
* Flatten isMonotonic into only use
* Update FIXME into TODO
* Rename instrument provider resolver field to resolve
* Fix comment English
* Fix drop aggregator detection
* Bump golang.org/x/sys/unix
Fix#3234
Address GO-2022-0493 by upgrading golang.org/x/sys/unix from
v0.0.0-20210423185535-09eb48e85fd7 to
v0.0.0-20220919091848-fb04ddd9f9c8.
* Add changes to changelog
* Flush pending telemetry when ForceFlush called
* Test flush of periodic reader
* Flush pending telemetry on Shutdown
* Fix things
* Rename pHolder to p
* Add testing for Shutdown
* Fix doc for collect method
* Fix collectAndExport doc
* Fix collectAndExport English
* Remove stdoutmetric example expected output
* Add changes to changelog
* Revert inadvertent change to golangci conf
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* update the metric mod version to latest
* update additional go.mods
* Unify the Fixed section of Unreleased
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <codingalias@gmail.com>
* Remove Old SDK and dependent code on that SDK (#2802)
* Remove prometheus example code
* Remove prometheus exporter code
* Remove stdoutmetric code
* Remove sdk/metric/* packages
* Remove opencensus example code
* Remove otlpmetric exporter code
* Remove OpenCensus bridge code
* go mod tidy
* Remove empty modules
* Remove the number and aggregator from the metric SDK (#2840)
* Add MeterProvider/meter structure to new SDK (#2822)
* Remove prometheus example code
* Remove prometheus exporter code
* Remove stdoutmetric code
* Remove sdk/metric/* packages
* Remove opencensus example code
* Remove otlpmetric exporter code
* Remove OpenCensus bridge code
* go mod tidy
* Remove empty modules
* Add MeterProvider/meter structure to new SDK
* Add vanity imports
* go mod tidy
* Add MeterProvider Flush/Shutdown required by spec
* Cast nil ptr instead of alloc for comp time check
* Apply suggestions from code review
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Apply suggested Shutdown comment
* Apply fixes from feedback
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add sdk/metric/view structure (#2838)
* Add sdk/metric/view package structure
* Vanity import
* Define the reader interface, and create a manual reader (#2885)
* Add the manual reader to the sdk.
* Incoperate feedback from PR.
* additional PR comments
* Fix lint
* Fixes for PR.
* Unexport ManualReader
fix a few comments
* Refactor reader testing into a harness (#2910)
* Refactor reader testing into a harness
* Run lint
* Removed merge leftover
* Use opentracing bridge from main
* go mod tidy
* crosslink
* Remove Prometheus exporter from README for now
* Run make with new tool set
* Replace testReaderHarness with testify suite (#2915)
* Add the periodic reader (#2909)
* Add the metric.Exporter interface
* Move the reader errors to reader.go
* Update Reader.Collect docs
Remove TODO being addressed in this PR and restate purpose of method.
* Initial draft of the periodic reader
* Refer to correct config in periodic reader opts
* Refactor reader testing into a harness
* Move wait group handling out of run
* Refactor ticker creation to allow testing
* Honor export timeout in run
* Fix wait group wait bug
* Add periodic reader tests
* Fix lint
* Update periodic reader comments
* Add concurrency test for readers
* Simplify the ticker stop deferral
* Only register once
* Restrict build of metric sdk to Go>1.16
* Clean up ShutdownBeforeRegister test
* Test duplicate Reader registration (#2914)
The specification requires the SDK prevent duplicate registrations for
readers. This adds a test for that and fixes this for the manualReader.
* Add WithReader and WithResource Options (#2905)
* Add WithReader and WithResource Options
* Run lint
* Update WithReader fn signature based on feedback
* crosslink
* Remove zero-len check in unify
* Restrict build to Go > 1.16
* Add bench test for reader collect methods (#2922)
* Unify reader implementations (#2923)
* Unify reader implementations
Use an atomic.Value to manage concurrency without a lock.
* Lint
* Merge main into new sdk main (#2925)
* Use already enabled revive linter and add depguard (#2883)
* Refactor golangci-lint conf
Order settings alphabetically.
* Add revive settings to golangci conf
* Check blank imports
* Check bool-literal-in-expr
* Check constant-logical-expr
* Check context-as-argument
* Check context-key-type
* Check deep-exit
* Check defer
* Check dot-imports
* Check duplicated-imports
* Check early-return
* Check empty-block
* Check empty-lines
* Check error-naming
* Check error-return
* Check error-strings
* Check errorf
* Stop ignoring context first arg in tests
* Check exported comments
* Check flag-parameter
* Check identical branches
* Check if-return
* Check increment-decrement
* Check indent-error-flow
* Check deny list of go imports
* Check import shadowing
* Check package comments
* Check range
* Check range val in closure
* Check range val address
* Check redefines builtin id
* Check string-format
* Check struct tag
* Check superfluous else
* Check time equal
* Check var naming
* Check var declaration
* Check unconditional recursion
* Check unexported return
* Check unhandled errors
* Check unnecessary stmt
* Check unnecessary break
* Check waitgroup by value
* Exclude deep-exit check in example*_test.go files
* Move the minimum version to go 1.17 (#2917)
* Move the minimum version to go 1.17
* Update readme and changelog
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Make lint
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Add view to metrics. (#2926)
* WIP views public
* Add attribute filters and comments.
* Fixes for lint
* Address comments
* Fix lint
* Changed view matching to expand end
Removed the dscriptor, it was moved in previous patch
* change wildcards into regex
* Update comments
* address comments.
* Address more PR comments
* renamed WithDescription to WithSetDescription.
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Implement MeterProvider's Meter method (#2945)
* Implement stubbed meter create method
* Rename return value to avoid comment
* Encapsulate meterRegistry tests with identifying name
* Run lint fix
* Comment meterRegistry being concurrent safe
* Remove ordered meter tracking in the meterRegistry
* Test range completeness instead of order
* Remove provider field from meter
* Initialize MeterProvider readers field for new (#2948)
* Introduce Temporality, WithTemporality Reader options and InstrumentKind (#2949)
* Introduce Temporality and InstrumentKind
Because Temporality is the responsibility of the Reader additional methods
are added to the Reader interface. And New options are created to
configure the temporality selector.
* Addresses comments, and adds tests.
* Fix addition PR comment
* Add aggregation package and reader/view options (#2958)
* Add aggregation pkg and options
* Update documentation for the aggregation pkg
* Test Aggregation.Err
* Fix aggregation pkg comment
* Add WithAggregation comment
* Add default aggregation
* Rename WithAggregation and add AggregationSelector
* Fix DefaultAggregationSelector use and decl
* Replace Aggregation struct with iface
* Add Copy method to hist and fix Err method
* Additional test for monotonic bounds
* Add aggregation method to Reader
* Use AggregationSelector instead of inline func type
* Switch RecordMinMax to NoMinMax
* Deep copy and validate in options
* Test the DefaultAggregationSelector
* nolint for import-shadow of method
* Fix Default aggregation comment
* Test the explicit bucket histogram deep copy
* Update temporality selector option (#2967)
Match the WithAggregationSelector option pattern: define a
TemporalitySelector type, export the DefaultTemporalitySelector
function, and name the option with a Selector suffix.
* Minor NewMeterProvider and producer docs fix (#2983)
* Add internal package structure for aggregation (#2954)
* Add the aggtor package
* Restrict to Go 1.18
* Add missing build block to view_test.go
* Comment Aggregator iface
* Use Go 1.18 as the default ci version
* Update Aggregator iface from feedback
* Accept hist conf
* Flatten aggtor into just internal
* Add Cycler interface
Separate the duties of aggregation and maintaining state across
aggregation periods.
* Remove build flags for doc.go
* Clarify Cycler documentation
* Remove aggregation fold logic
* Rename Number to Atomic
* Add tests for Atomic impls
* Remove unneeded Atomic implementation
Add back when filling in structures.
* Fix article in Float64 docs
* Remove Atomic
This is an implementation detail.
* Add aggregator_example_test
* Fix hist example
* Add issue numbers to all TODO and FIXME
* Remove zero parameter comment
* Combine the cycler into the aggregators
* Remove the drop aggregator
* Fix lint
* Use attribute.Set instead of ptr to it
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Merge main into new_sdk/main (#2996)
* Use already enabled revive linter and add depguard (#2883)
* Refactor golangci-lint conf
Order settings alphabetically.
* Add revive settings to golangci conf
* Check blank imports
* Check bool-literal-in-expr
* Check constant-logical-expr
* Check context-as-argument
* Check context-key-type
* Check deep-exit
* Check defer
* Check dot-imports
* Check duplicated-imports
* Check early-return
* Check empty-block
* Check empty-lines
* Check error-naming
* Check error-return
* Check error-strings
* Check errorf
* Stop ignoring context first arg in tests
* Check exported comments
* Check flag-parameter
* Check identical branches
* Check if-return
* Check increment-decrement
* Check indent-error-flow
* Check deny list of go imports
* Check import shadowing
* Check package comments
* Check range
* Check range val in closure
* Check range val address
* Check redefines builtin id
* Check string-format
* Check struct tag
* Check superfluous else
* Check time equal
* Check var naming
* Check var declaration
* Check unconditional recursion
* Check unexported return
* Check unhandled errors
* Check unnecessary stmt
* Check unnecessary break
* Check waitgroup by value
* Exclude deep-exit check in example*_test.go files
* Move the minimum version to go 1.17 (#2917)
* Move the minimum version to go 1.17
* Update readme and changelog
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use ByteSliceToString from golang.org/x/sys/unix (#2924)
Use unix.ByteSliceToString to convert Utsname []byte fields to strings.
This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* docs: fix typo (#2935)
* add timeout to grpc connection in otel-collector example (#2939)
* Closes: #2951 (#2952)
This PR updates the example listed in the getting started doc
so that it will compile without error. It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* fix data-model link (#2955)
* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)
* Move to using Instrumentation Scope (#2976)
* Move to using Instrumentation Scope
* Use type alias, not definition
* Add a changelog entry
* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)
* docs(website_docs): fix toc
* docs(website_docs): fix toc
* update exporting_data.md for rerun check-links
* update exporting_data.md for rerun check-links
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update getting-started.md (#2984)
grammar edit for line 175 of readme
* fix typo (#2986)
* fix typo
* spell fix
* typo fix (#2991)
* added traces.txt to gitignore for fib (#2993)
* Deprecate Library and move all uses to Scope (#2977)
* Deprecate Library and move all uses to Scope
* Add PR number to changelog
* Don't change signatures in stable modules
* Revert some changes
* Rename internal struct names
* A bit more renaming
* Update sdk/trace/span.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update based on feedback
* Revert change
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Feat/bridge support text map (#2911)
* feat: support TextMap
* doc: add comment
* test: support for ot.TextMap
* Retrieve lost code due to merge
* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders
* go mod tidy
* Optimized code style, add changelog
* doc: Restore comments
* wip: add test cases
* test: fix args error
* delete empty line
* Fix syntax and changelog errors
* Fix formatting errors
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add a release template (#2863)
* Add a release template
* Update the about field
Co-authored-by: Damien Mathieu <42@dmathieu.com>
* Fix linting Issues
* Add ignore for template link
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Fix merge of CHANGELOG.md
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
* Add structure to the export data. (#2961)
* Add structure to the export data.
* Fix comments.
* Apply suggestions from code review
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Address PR comments.
* Updated optional historgram parameters.
* Address PR comments.
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use export.Aggregation instead of internal.Aggregation (#3007)
* Use export.Aggregation instead of internal
* Return an export.Aggregation instead of a slice
* Use attribute Sets instead of KeyValues for export data (#3012)
Attribute Sets have stronger guarantees about the uniqueness of their
keys and more functionality. We already ensure attributes are stored as
Sets by the aggregator which will produce these data types. Instead of
converting to a KeyValue slice, keep the data as a Set.
Any user of the data can always call the ToSlice method to use the data
as a slice of KeyValues.
* Change Instrument Library to Instrument Scope (#3016)
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* move temporality to export/temporality (#3017)
* move temporality to export/temporality
* fix lint errors
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Rename Package sdk/metric/export into sdk/metric/metricdata (#3014)
* fix unrelated changes
* fix quote code
* fix format
* rebase pr
* rebase pr
* change usage of export to metricdata
* Add metricdatatest package (#3025)
* Use export.Aggregation instead of internal
* Return an export.Aggregation instead of a slice
* Use attribute Sets instead of KeyValues for export data
Attribute Sets have stronger guarantees about the uniqueness of their
keys and more functionality. We already ensure attributes are stored as
Sets by the aggregator which will produce these data types. Instead of
converting to a KeyValue slice, keep the data as a Set.
Any user of the data can always call the ToSlice method to use the data
as a slice of KeyValues.
* Add export data type comparison testing API
* Add Aggregation and Value comparison funcs
* Move export testing to own pkg
* Move exporttest to metricdatatest
* Add licenses headers to files missing them
* Use metricdata instead of export
Fix merge of new_sdk/main
* Rename exporttest pkg to metricdatatest
* Fix spelling errors
* Fix lint issues
* Use testing pkg to error directly
Include Helper() method calls to correct the call-stack.
* Fix CompareAggregations
Set equal to true by default
* Generalize assertions and unexport equal checks
* Abstract assert tests
* Rename all exp var to r
* Test AssertAggregationsEqual
* Comment why Value and Aggregation are separate
* Test AssertValuesEqual
* Revert changes to metricdata/temporality.go
* Expand pkg doc sentence
* Add license header to assertion.go
* Update assertion docs
* Consolidate comparisons funcs into one file
* Consolidate and fix docs
* Consolidate assertion.go
* Consolidate comparisons.go
* make lint
* Test with relatively static times
* Update sdk/metric/metricdata/metricdatatest/comparisons.go
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Drop equal return from comparison funcs
* Refactor AssertEqual
* Remove reasN from testDatatype func params
* Consolidate AssertEqual type conversions
* Fix assertion error message
* Add assertion failure tests
* Remove unneeded strings join
* Make comment include a possessive
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Adds a pipeline for creating reader's output (#3026)
* Adds a pipeline for creating reader's output
* fix metricdata move
* fix lint
* Apply suggestions from code review
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Address PR comments
* Added resource test
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Use generic Sum, Gauge, and DataPoint value removing Value, Int64, and Float64 from metricdata (#3036)
* Use generic DataPoint value
* Fix assertion_fail_test.go
* Declare Sum and DataPoints type in pipeline_test
* Add MatchInstrumentKind filter for Views. (#3037)
* Move InstrumentKind to view, Add view filter
* remove TODO
* Add the Option function, fix lint
* use local var over 0
* Fix missing undefinedInstrumnet
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Change View Attribute Filter to detect if not set. (#3039)
* Change View Attribute Filter to detect if not set.
* Fix PR comments.
* Rework test for no filter logic.
* Add implementation of last-value aggregator (#3008)
* Add last-value aggregator
* Add test of last-value reset of unseen attrs
* Add benchmark
* Use generic DataPoint value
* Fix assertion_fail_test.go
* Fix tests
* Remove unused test increment values
* View.New() miss InstrumentKind check (#3043)
Signed-off-by: liupengfei <lpfvip2008@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add delta/cumulative histogram implementation (#3045)
* Add delta/cumulative histogram implementation
* Add histogram unit tests
* Fix histValues Aggregate
Store the new buckets value back to the values map.
Ensure min/max are measured values, not zero values.
* Fix lint
* Add benchmarks
* Test histograms internal functionality
* Fix lint
* Add TODO to look at memory use for cumu hist
* Update sdk/metric/internal/histogram.go
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* use TemporalitySelector (#3050)
Signed-off-by: Petrie <lpfvip2008@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add implementation of Sum aggregators (#3000)
* Implement the sum aggregators
* Add unit tests for delta/cumulative sums
* Add benchmarks
* Merge sum tests into one
* Remove unused start time from cumulative sum
* Refactor benchmark tests
Split benchmarks for the Aggregations and Aggregate methods so
computational resource use can be determined.
* goimports
* Move timestamp out of lock
* Refactor testing
* Fix spelling mistake
* Name param of expectFunc
* Reset delta sum to zero instead of delete
* Revert to deleting unused attr sets
* Refactor testing to allow use across other aggs
* Add TODO to bound cumulative sum mem usage
* Fix misspelling
* Unify aggregator benchmark code in aggregator_test
* Use generic DataPoint value
* Fix assertion_fail_test.go
* Use generic metricdata types
* Fix tests
* Fix benchmarks
* Fix lint
* Update sum documentation
* Remove leftover encapsulating test run
* Use t.Cleanup to mock time
* Consolidate expecter logic into funcs
* Move errNegVal closer to use
* Run the agg test
* Add tests for monotonic sum Aggregate err
* Run make lint
* Make monotonic an arg of creation funcs
* Remove Aggregate monotonic validation
* Rename sum to valueMap
The term sum is a good variable name that we do not want to take and
valueMap better describes the type as the storage of the aggregator.
* Adds a filter Aggregator. (#3040)
* Adds a filter Aggregator.
* Add lock and tests
* Add Concurrency tests
* fix lint errors
* Add memory constrained todo.
* Update filter comment.
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add back the stdoutmetric exporter (#3057)
* PoC stdoutmetric exporter
* Use stringer to generate String for Temporality
* Add vanity imports
* Update Temporality string expected output
* Do not return error from newConfig
* Add shutdown unit tests
* Fix spelling error
* Unify testing of ctx errors and test ForceFlush
* Add unit test for Export handle of ctx errs
* Clarify documentation about alt OTLP exporter
* Remove unused ErrUnrecognized
A third party encoder can produce their own errors. This code does
nothing unique with this error, therefore, it is removed.
* Lint exporter_test.go
* Refactor example_test.go removing FIXME
* Add test for Export shutdown err
* Add a discard encoder for testing
* Acknowledged error is returned from Shutdown
* Remove unexpected SchemaURL from stdouttrace test
* Remove unneeded *testing.T arg from testEncoderOption
* Fix the location of now
* Revise and edit docs
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Remove stale TODO from metricdata/data.go (#3064)
* Merge main into new_sdk/main (#3082)
* Use already enabled revive linter and add depguard (#2883)
* Refactor golangci-lint conf
Order settings alphabetically.
* Add revive settings to golangci conf
* Check blank imports
* Check bool-literal-in-expr
* Check constant-logical-expr
* Check context-as-argument
* Check context-key-type
* Check deep-exit
* Check defer
* Check dot-imports
* Check duplicated-imports
* Check early-return
* Check empty-block
* Check empty-lines
* Check error-naming
* Check error-return
* Check error-strings
* Check errorf
* Stop ignoring context first arg in tests
* Check exported comments
* Check flag-parameter
* Check identical branches
* Check if-return
* Check increment-decrement
* Check indent-error-flow
* Check deny list of go imports
* Check import shadowing
* Check package comments
* Check range
* Check range val in closure
* Check range val address
* Check redefines builtin id
* Check string-format
* Check struct tag
* Check superfluous else
* Check time equal
* Check var naming
* Check var declaration
* Check unconditional recursion
* Check unexported return
* Check unhandled errors
* Check unnecessary stmt
* Check unnecessary break
* Check waitgroup by value
* Exclude deep-exit check in example*_test.go files
* Move the minimum version to go 1.17 (#2917)
* Move the minimum version to go 1.17
* Update readme and changelog
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use ByteSliceToString from golang.org/x/sys/unix (#2924)
Use unix.ByteSliceToString to convert Utsname []byte fields to strings.
This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* docs: fix typo (#2935)
* add timeout to grpc connection in otel-collector example (#2939)
* Closes: #2951 (#2952)
This PR updates the example listed in the getting started doc
so that it will compile without error. It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* fix data-model link (#2955)
* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)
* Move to using Instrumentation Scope (#2976)
* Move to using Instrumentation Scope
* Use type alias, not definition
* Add a changelog entry
* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)
* docs(website_docs): fix toc
* docs(website_docs): fix toc
* update exporting_data.md for rerun check-links
* update exporting_data.md for rerun check-links
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update getting-started.md (#2984)
grammar edit for line 175 of readme
* fix typo (#2986)
* fix typo
* spell fix
* typo fix (#2991)
* added traces.txt to gitignore for fib (#2993)
* Deprecate Library and move all uses to Scope (#2977)
* Deprecate Library and move all uses to Scope
* Add PR number to changelog
* Don't change signatures in stable modules
* Revert some changes
* Rename internal struct names
* A bit more renaming
* Update sdk/trace/span.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update based on feedback
* Revert change
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Feat/bridge support text map (#2911)
* feat: support TextMap
* doc: add comment
* test: support for ot.TextMap
* Retrieve lost code due to merge
* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders
* go mod tidy
* Optimized code style, add changelog
* doc: Restore comments
* wip: add test cases
* test: fix args error
* delete empty line
* Fix syntax and changelog errors
* Fix formatting errors
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add a release template (#2863)
* Add a release template
* Update the about field
Co-authored-by: Damien Mathieu <42@dmathieu.com>
* Fix linting Issues
* Add ignore for template link
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add workflow to automate bundling dependabot PRs (#2997)
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Release prep 1.8.0 (#3001)
* Update CHANGELOG and versions.yaml for 1.8.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update go-build-tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.8.0
* Prepare experimental-metrics for version v0.31.0
* Prepare bridge for version v0.31.0
* `make go-mod-tidy` should use `-compat=1.17` now
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add benchmark metric test for UpDownCounter (#2655)
* add benchmark metric test for UpDownCounter
* move counter annotation up
* fix syncFloat64 to syncInt64
* fix syncFloat64 to syncInt64
* fix go-lint err
* Add semconv/v1.11.0 (#3009)
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add semconv/v1.12.0 (#3010)
* Add semconv/v1.12.0
* Update all semconv use to v1.12.0
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add http.method attribute to http server metric (#3018)
* Add http.method attribute to http server metric
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix for reviews
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* add changelog entry
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* Add tests and fix opentracing bridge defer warning (#3029)
* add tests and fix opentracing bridge defer warning
* add changelog entry
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update bridge/opentracing/bridge_test.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Introduce "split" metric schema transformation (#2999)
This is a new transformation type that allows to describe a change
where a metric is converted to several other metrics by eliminating
an attribute.
An example of such change that happened recently is this:
https://github.com/open-telemetry/opentelemetry-specification/pull/2617
This PR implements specification change https://github.com/open-telemetry/opentelemetry-specification/pull/2653
This PR creates package v1.1 for the new functionality. The old package v1.0
remains unchanged.
* Release v1.9.0 (#3052)
* Bump versions in versions.yaml
* Prepare stable-v1 for version v1.9.0
* Prepare experimental-schema for version v0.0.3
* Update changelog for release
* Replace ioutil with io and os (#3058)
* Make several vars into consts (#3068)
* Add support for Go 1.19 (#3077)
* Add support for Go 1.19
* Update CHANGELOG.md
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Sam Xie <sam@samxie.me>
* Update compatibility documentation (#3079)
Remove 3 month timeline for backwards support of old versions of Go.
Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
* Adds the option to ignore timestamps in metric data tests. (#3076)
* Adds the option to ignore timestamps in metric data tests
* use config over bool
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Adds a pipelineRegistry to manage creating aggregators. (#3044)
* Adds a pipelineRegistry to manage creating aggregators.
* Made pipeline generic
* Add aggregation filter to the registry.
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Remove stale TODO (#3083)
The aggregation transform function was added in #2958.
* Add back the otlpmetric transforms (#3065)
* Add otlpmetric transforms
* Split aggregation transforms to own file
* Rename Iterator to AttrIter
* Update pkg docs
These are internal docs use developer based language.
* Document all exported funcs
* Unify metricdata type transforms into one file
* Rename metrics.go to metricdata.go
* Copy back attribute tests
* Copy back in Iterator test
* Refactor attribute tests
* Add tests for metricdata transforms
* Add multiErr support for digestible transform errs
* Test transform errors
* go mod tidy
* Use key field
* goimported
* gofmt-ed
* Fix error documentation
* go mod tidy
* Changes instruments uniqueness in pipeline. (#3071)
* Changes instruments uniquness in pipeline.
* Fix lint
* Update sdk/metric/pipeline.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Restore the exporters/otlp/otlpmetric/internal/otelconfig package (#3090)
* Restore otlpmetric/otlpconfig from main
* Rename otlpconfig to oconf
* Remove the empty envconfig_test.go
* Update import of otlpconfig in oconf_test
* go mod tidy
* Run make
* add internal OpenCensus metric translation library (#3099)
* reintroduce opencensus trace bridge (#3098)
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Document the sdk/metric/view package (#3086)
* Add package documentation for sdk/metric/view
* Refer to views not configs in WithReader docs
* Fix vanity url for view_test.go
* Add example tests for view options
* Add package example
* Fix view type docs
* Remove build constraint for doc.go
* Fix lint
* Adds async instruments and providers. (#3084)
* Adds instrument providers and instruments.
* Don't return nil instrument, return with error
* removed sync
* Added a number of tests.
Signed-off-by: GitHub <noreply@github.com>
* Address PR comments
* fix error messages
* fixes typo in test name
Signed-off-by: GitHub <noreply@github.com>
* Fix lint issues
* moved the testCallback into the TestMeterCreateInstrument
Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Merge branch 'main' into new_sdk/main (#3111)
* Use already enabled revive linter and add depguard (#2883)
* Refactor golangci-lint conf
Order settings alphabetically.
* Add revive settings to golangci conf
* Check blank imports
* Check bool-literal-in-expr
* Check constant-logical-expr
* Check context-as-argument
* Check context-key-type
* Check deep-exit
* Check defer
* Check dot-imports
* Check duplicated-imports
* Check early-return
* Check empty-block
* Check empty-lines
* Check error-naming
* Check error-return
* Check error-strings
* Check errorf
* Stop ignoring context first arg in tests
* Check exported comments
* Check flag-parameter
* Check identical branches
* Check if-return
* Check increment-decrement
* Check indent-error-flow
* Check deny list of go imports
* Check import shadowing
* Check package comments
* Check range
* Check range val in closure
* Check range val address
* Check redefines builtin id
* Check string-format
* Check struct tag
* Check superfluous else
* Check time equal
* Check var naming
* Check var declaration
* Check unconditional recursion
* Check unexported return
* Check unhandled errors
* Check unnecessary stmt
* Check unnecessary break
* Check waitgroup by value
* Exclude deep-exit check in example*_test.go files
* Move the minimum version to go 1.17 (#2917)
* Move the minimum version to go 1.17
* Update readme and changelog
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use ByteSliceToString from golang.org/x/sys/unix (#2924)
Use unix.ByteSliceToString to convert Utsname []byte fields to strings.
This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* docs: fix typo (#2935)
* add timeout to grpc connection in otel-collector example (#2939)
* Closes: #2951 (#2952)
This PR updates the example listed in the getting started doc
so that it will compile without error. It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* fix data-model link (#2955)
* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)
* Move to using Instrumentation Scope (#2976)
* Move to using Instrumentation Scope
* Use type alias, not definition
* Add a changelog entry
* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)
* docs(website_docs): fix toc
* docs(website_docs): fix toc
* update exporting_data.md for rerun check-links
* update exporting_data.md for rerun check-links
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update getting-started.md (#2984)
grammar edit for line 175 of readme
* fix typo (#2986)
* fix typo
* spell fix
* typo fix (#2991)
* added traces.txt to gitignore for fib (#2993)
* Deprecate Library and move all uses to Scope (#2977)
* Deprecate Library and move all uses to Scope
* Add PR number to changelog
* Don't change signatures in stable modules
* Revert some changes
* Rename internal struct names
* A bit more renaming
* Update sdk/trace/span.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update based on feedback
* Revert change
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Feat/bridge support text map (#2911)
* feat: support TextMap
* doc: add comment
* test: support for ot.TextMap
* Retrieve lost code due to merge
* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders
* go mod tidy
* Optimized code style, add changelog
* doc: Restore comments
* wip: add test cases
* test: fix args error
* delete empty line
* Fix syntax and changelog errors
* Fix formatting errors
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add a release template (#2863)
* Add a release template
* Update the about field
Co-authored-by: Damien Mathieu <42@dmathieu.com>
* Fix linting Issues
* Add ignore for template link
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add workflow to automate bundling dependabot PRs (#2997)
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Release prep 1.8.0 (#3001)
* Update CHANGELOG and versions.yaml for 1.8.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update go-build-tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.8.0
* Prepare experimental-metrics for version v0.31.0
* Prepare bridge for version v0.31.0
* `make go-mod-tidy` should use `-compat=1.17` now
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add benchmark metric test for UpDownCounter (#2655)
* add benchmark metric test for UpDownCounter
* move counter annotation up
* fix syncFloat64 to syncInt64
* fix syncFloat64 to syncInt64
* fix go-lint err
* Add semconv/v1.11.0 (#3009)
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add semconv/v1.12.0 (#3010)
* Add semconv/v1.12.0
* Update all semconv use to v1.12.0
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add http.method attribute to http server metric (#3018)
* Add http.method attribute to http server metric
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix for reviews
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* add changelog entry
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* Add tests and fix opentracing bridge defer warning (#3029)
* add tests and fix opentracing bridge defer warning
* add changelog entry
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update bridge/opentracing/bridge_test.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Introduce "split" metric schema transformation (#2999)
This is a new transformation type that allows to describe a change
where a metric is converted to several other metrics by eliminating
an attribute.
An example of such change that happened recently is this:
https://github.com/open-telemetry/opentelemetry-specification/pull/2617
This PR implements specification change https://github.com/open-telemetry/opentelemetry-specification/pull/2653
This PR creates package v1.1 for the new functionality. The old package v1.0
remains unchanged.
* Release v1.9.0 (#3052)
* Bump versions in versions.yaml
* Prepare stable-v1 for version v1.9.0
* Prepare experimental-schema for version v0.0.3
* Update changelog for release
* Replace ioutil with io and os (#3058)
* Make several vars into consts (#3068)
* Add support for Go 1.19 (#3077)
* Add support for Go 1.19
* Update CHANGELOG.md
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Sam Xie <sam@samxie.me>
* Update compatibility documentation (#3079)
Remove 3 month timeline for backwards support of old versions of Go.
* Fix `opentracing.Bridge` where it miss identifying the spanKind (#3096)
* Fix opentracing.Bridge where it was not identifying the spanKinf correctly
* fix test
* changelog
* Keeping backward comppatibillity
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* replace `required` by `requirementlevel` (#3103)
* Change the inclusivity of exponential histogram bounds (#2982)
* Use lower-inclusive boundaries
* make exponent and logarithm more symmetric
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Update golangci-lint to v1.48.0 (#3105)
* Update golangci-lint to v1.48.0
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0 (#3107)
* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Alan Protasio <alanprot@gmail.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
* Add otlpmetric exporter (#3089)
* Add otlpmetric package doc
* Add Client interface
* Add the Exporter
Have the Exporter ensure synchronous access to all client methods.
* Add race detection test for Exporter
* Expand New godocs
* Fix lint
* Merge transform and upload errors
* Fix ineffectual increment
* Make pipelineRegistry non-generic (#3115)
* Make pipelineRegistry non-generic
* Add Synchronous instruments (#3124)
* Add Synchronous instruments
* remove duplicate code in instrument
* Fixes to Histogram comments
* Add back the otlpmetricgrpc exporter (#3094)
* Add otlpmetric package doc
* Add Client interface
* Add the Exporter
Have the Exporter ensure synchronous access to all client methods.
* Add race detection test for Exporter
* Expand New godocs
* Fix lint
* Add the otlpmetricgrpc Go module
* Restore otlpmetricgrpc from main
* Remove integration testing from otlpmetricgrpc
* Fix import of otlpconfig to oconf
* Update client
Add ForceFlush method to satisfy otlpmetric.Client, unexport Start, and
restructure NewClient to return a started client.
* Update otlpmetricgrpc New functions
Remove NewUnstarted and only export New.
* Remove unneeded client sync
The exporter handle the synchronization of client method calls.
* Update example_test.go
* Update client_unit_test.go
* Rename client_unit_test.go to client_test.go
* Rename options.go to config.go
* Add package doc
* Unify exporter.go and doc.go into client.go
* Unexport NewClient
* Correct option documentation
* Add env config documentation
* go mod tidy
* Restrict build to Go 1.18
* Update client.go
Fix copied UploadMetrics documentation.
* Run make
* Close client conn even if context deadline reached
* Add sdk/metric Go pkg docs and example (#3139)
* Add sdk/metric Go pkg docs
* Add example_test.go
* Add Go 1.18 build guard to example_test.go
* Merge main into new_sdk/main (#3141)
* Use already enabled revive linter and add depguard (#2883)
* Refactor golangci-lint conf
Order settings alphabetically.
* Add revive settings to golangci conf
* Check blank imports
* Check bool-literal-in-expr
* Check constant-logical-expr
* Check context-as-argument
* Check context-key-type
* Check deep-exit
* Check defer
* Check dot-imports
* Check duplicated-imports
* Check early-return
* Check empty-block
* Check empty-lines
* Check error-naming
* Check error-return
* Check error-strings
* Check errorf
* Stop ignoring context first arg in tests
* Check exported comments
* Check flag-parameter
* Check identical branches
* Check if-return
* Check increment-decrement
* Check indent-error-flow
* Check deny list of go imports
* Check import shadowing
* Check package comments
* Check range
* Check range val in closure
* Check range val address
* Check redefines builtin id
* Check string-format
* Check struct tag
* Check superfluous else
* Check time equal
* Check var naming
* Check var declaration
* Check unconditional recursion
* Check unexported return
* Check unhandled errors
* Check unnecessary stmt
* Check unnecessary break
* Check waitgroup by value
* Exclude deep-exit check in example*_test.go files
* Move the minimum version to go 1.17 (#2917)
* Move the minimum version to go 1.17
* Update readme and changelog
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use ByteSliceToString from golang.org/x/sys/unix (#2924)
Use unix.ByteSliceToString to convert Utsname []byte fields to strings.
This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* docs: fix typo (#2935)
* add timeout to grpc connection in otel-collector example (#2939)
* Closes: #2951 (#2952)
This PR updates the example listed in the getting started doc
so that it will compile without error. It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* fix data-model link (#2955)
* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)
* Move to using Instrumentation Scope (#2976)
* Move to using Instrumentation Scope
* Use type alias, not definition
* Add a changelog entry
* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)
* docs(website_docs): fix toc
* docs(website_docs): fix toc
* update exporting_data.md for rerun check-links
* update exporting_data.md for rerun check-links
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update getting-started.md (#2984)
grammar edit for line 175 of readme
* fix typo (#2986)
* fix typo
* spell fix
* typo fix (#2991)
* added traces.txt to gitignore for fib (#2993)
* Deprecate Library and move all uses to Scope (#2977)
* Deprecate Library and move all uses to Scope
* Add PR number to changelog
* Don't change signatures in stable modules
* Revert some changes
* Rename internal struct names
* A bit more renaming
* Update sdk/trace/span.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update based on feedback
* Revert change
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Feat/bridge support text map (#2911)
* feat: support TextMap
* doc: add comment
* test: support for ot.TextMap
* Retrieve lost code due to merge
* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders
* go mod tidy
* Optimized code style, add changelog
* doc: Restore comments
* wip: add test cases
* test: fix args error
* delete empty line
* Fix syntax and changelog errors
* Fix formatting errors
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add a release template (#2863)
* Add a release template
* Update the about field
Co-authored-by: Damien Mathieu <42@dmathieu.com>
* Fix linting Issues
* Add ignore for template link
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add workflow to automate bundling dependabot PRs (#2997)
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Release prep 1.8.0 (#3001)
* Update CHANGELOG and versions.yaml for 1.8.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update go-build-tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.8.0
* Prepare experimental-metrics for version v0.31.0
* Prepare bridge for version v0.31.0
* `make go-mod-tidy` should use `-compat=1.17` now
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add benchmark metric test for UpDownCounter (#2655)
* add benchmark metric test for UpDownCounter
* move counter annotation up
* fix syncFloat64 to syncInt64
* fix syncFloat64 to syncInt64
* fix go-lint err
* Add semconv/v1.11.0 (#3009)
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add semconv/v1.12.0 (#3010)
* Add semconv/v1.12.0
* Update all semconv use to v1.12.0
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add http.method attribute to http server metric (#3018)
* Add http.method attribute to http server metric
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix for reviews
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* add changelog entry
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* Add tests and fix opentracing bridge defer warning (#3029)
* add tests and fix opentracing bridge defer warning
* add changelog entry
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update bridge/opentracing/bridge_test.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Introduce "split" metric schema transformation (#2999)
This is a new transformation type that allows to describe a change
where a metric is converted to several other metrics by eliminating
an attribute.
An example of such change that happened recently is this:
https://github.com/open-telemetry/opentelemetry-specification/pull/2617
This PR implements specification change https://github.com/open-telemetry/opentelemetry-specification/pull/2653
This PR creates package v1.1 for the new functionality. The old package v1.0
remains unchanged.
* Release v1.9.0 (#3052)
* Bump versions in versions.yaml
* Prepare stable-v1 for version v1.9.0
* Prepare experimental-schema for version v0.0.3
* Update changelog for release
* Replace ioutil with io and os (#3058)
* Make several vars into consts (#3068)
* Add support for Go 1.19 (#3077)
* Add support for Go 1.19
* Update CHANGELOG.md
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Sam Xie <sam@samxie.me>
* Update compatibility documentation (#3079)
Remove 3 month timeline for backwards support of old versions of Go.
* Fix `opentracing.Bridge` where it miss identifying the spanKind (#3096)
* Fix opentracing.Bridge where it was not identifying the spanKinf correctly
* fix test
* changelog
* Keeping backward comppatibillity
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* replace `required` by `requirementlevel` (#3103)
* Change the inclusivity of exponential histogram bounds (#2982)
* Use lower-inclusive boundaries
* make exponent and logarithm more symmetric
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Update golangci-lint to v1.48.0 (#3105)
* Update golangci-lint to v1.48.0
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0 (#3107)
* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Update tracer to guard for a nil ctx (#3110)
* Update tracer to guard for a nil ctx
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Fix sdk/instrumentation pkg docs (#3130)
* Add instrumentation scope attributes (#3131)
* Add WithScopeAttributes TracerOption to trace API
* Add Attributes field to instrumentation Scope
* Use scope attributes for new Tracer
* Fix stdouttrace expected test output
* Allow unexported Set fields in sdk/trace test
* Export instrumentation scope attrs in OTLP
* Add changes to the changelog
* Fix imports with make lint
* Add unit tests for WithScopeAttributes
* Fix English in Scope documentation
* Add WithScopeAttributes MeterOption to metric API package (#3132)
* Add WithScopeAttributes MeterOption to metric pkg
* Add MeterConfig unit tests
* Add changes to changelog
* Fix import linting
* Update MeterProvider documentation
Include information about how to use WithScopeAttributes.
* Refactor TracerProvider documentation (#3133)
* Refactor TracerProvider documentation
* Fix English article
* Grammar fixes
* consistency-of: Changed signal names for website docs (#3137)
* Shut down all processors even on error (#3091)
* Fix stdoutmetric example test
The merged instrumentation Scope includes SchemaURL and Attributes now,
add them to the expected output.
Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Alan Protasio <alanprot@gmail.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
Co-authored-by: Mitch Usher <cull.methi@gmail.com>
Co-authored-by: Gaurang Patel <mr.patelgaurang@gmail.com>
* Remove empty metrictest pkg (#3148)
* Add exporters/otlp/otlpmetric/internal/otest (#3125)
* Add otlpmetric package doc
* Add Client interface
* Add the Exporter
Have the Exporter ensure synchronous access to all client methods.
* Add race detection test for Exporter
* Expand New godocs
* Fix lint
* Restore otlpmetrictest from main
* Rename otlpmetrictest to otest
* Remove data.go
The functions and types it contains are no longer relevant to the SDK.
* Update client context error tests
Remove multiple shutdown tests. The Client interface states this should
never happen.
* Remove collector.go and otlptest.go
* Expand client tests with ctx and force-flush
* Add UploadMetrics tests
* Test the tests with a trivial client
* Condense all to client.go
* Example of how to run RunClientTests
* Add client integration testing
* Add GRPCCollector
* Remove GRPCCollector to limit scope of PR
* Add back the otlpmetrichttp exporter (#3097)
* Add otlpmetric package doc
* Add Client interface
* Add the Exporter
Have the Exporter ensure synchronous access to all client methods.
* Add race detection test for Exporter
* Expand New godocs
* Fix lint
* Add back the otlpmetrichttp pkg from main
* Restrict to Go 1.18 and above
* Remove integration testing
* Rename client_unit_test.go to client_test.go
* Rename options.go to config.go
* Remove the NewUnstarted func
* Remove Start method from client
* Add no-op ForceFlush method to client
* Update otlpconfig pkg name to oconf
* Rename Stop method to Shutdown
Match the otlpmetric.Client interface.
* Update creation functions to compile
* Remove name field from client
* Remove sync of methods from client
This is handled by the exporter.
* Remove unused generalCfg field from client
* Replace cfg client field with used conf vals
* Use a http request instead of url/header fields
* Remove NewClient and move New into client.go
* Rename client.client field to client.httpClient
* Update client tests
Remove test of a retry config and add functional tests of the client
methods honoring a context.
* Remove deprecated WithMaxAttempts and WithBackoff
* Update option docs
Include info on envvars.
* Fix lint
* Fix lint errors
* Revert New to accept a context
* Add example test
* Update pkg docs
* go mod tidy
* Use url.URL to form HTTP request URL
* Remove stale TODO in sdk/view (#3149)
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use unique metric testing data in reader_test (#3151)
Address unresolved TODO.
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Add new metric SDK changes to changelog (#3150)
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add integration and config testing to otlpmetricgrpc (#3126)
* Add the GRPCCollector to otest
* Use otest to test otlpmetricgrpc Client
* Add WithHeaders and WithTimeout tests
* Add integration and config testing to otlpmetrichttp (#3155)
* Add HTTPCollector to otest
* Add integration testing for otlpmetrichttp
* Fix NewHTTPCollector docs
* Add config tests
* Fix lint
* Add WithURLPath test
* Add WithTLSClientConfig test
* Ignore depguard for crypto/x509/pkix
This is a testing package that uses the package to generate a weak
testing TLS certificate.
* Add Prometheus exporter code (#3135)
* Add Prometheus exporter example (#3168)
* Add back prom exporter to README.md
* Fix removal changes from #3154 in API
* Update CHANGELOG with PR number
Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: David Ashpole <dashpole@google.com>
Co-authored-by: Alan Protasio <alanprot@gmail.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
Co-authored-by: Mitch Usher <cull.methi@gmail.com>
Co-authored-by: Gaurang Patel <mr.patelgaurang@gmail.com>
Co-authored-by: Mike Dame <mikedame@google.com>
* Add WithScopeAttributes TracerOption to trace API
* Add Attributes field to instrumentation Scope
* Use scope attributes for new Tracer
* Fix stdouttrace expected test output
* Allow unexported Set fields in sdk/trace test
* Export instrumentation scope attrs in OTLP
* Add changes to the changelog
* Fix imports with make lint
* Add unit tests for WithScopeAttributes
* Fix English in Scope documentation
* Use lower-inclusive boundaries
* make exponent and logarithm more symmetric
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Bump versions in versions.yaml
* Prepare stable-v1 for version v1.9.0
* Prepare experimental-schema for version v0.0.3
* Update changelog for release
* Update CHANGELOG and versions.yaml for 1.8.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update go-build-tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.8.0
* Prepare experimental-metrics for version v0.31.0
* Prepare bridge for version v0.31.0
* `make go-mod-tidy` should use `-compat=1.17` now
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Deprecate Library and move all uses to Scope
* Add PR number to changelog
* Don't change signatures in stable modules
* Revert some changes
* Rename internal struct names
* A bit more renaming
* Update sdk/trace/span.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update based on feedback
* Revert change
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Use unix.ByteSliceToString to convert Utsname []byte fields to strings.
This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Bump versions
* Prepare stable-v1 for version v1.7.0
* Prepare experimental-metrics for version v0.30.0
* Prepare bridge for version v0.30.0
* Update changelog
Comment should be complete sentences outside of lists with sentence
fragments. This adds the godot linter to check these complete sentences
end with punctuation. If they do not, running fix will append a period.
* 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>