* Add shared otlpmetric templates
* Generate otlpmetricgrpc/internal with gotmpl
* Use local internal in otlpmetricgrpc
* Add decoupling change to changelog
* Use template retry pkg in otlpconfig
* Template out all otlptrace internal
* Add envconfig pkg to otlptrace/internal
* Generate otlptrace/internal/otlpconfig
* Revert templatizing otlptracegrpc
* Add changes to changelog
* Add partialsuccess to internal shared
* Use gotmpl to generate otlptracegrpc/internal
* Add changes to changelog
* otlpmetricgrpc - no block temp/agg selection with export
* otlpmetrichttp - no block temp/agg selection with export
* Add test Export doesn't block Temporality or Aggregation
* Deprecate internal New and Exporter
* Add changes to changelog
* Apply suggestions from code review
Bump google.golang.org/grpc from 1.56.2 to 1.57.0 in /exporters/otlp/otlptrace
Bump google.golang.org/grpc from 1.56.2 to 1.57.0 in /bridge/opentracing/test
Bump google.golang.org/grpc from 1.56.2 to 1.57.0 in /example/otel-collector
Bump google.golang.org/grpc from 1.56.2 to 1.57.0 in /exporters/otlp/otlpmetric
Bump google.golang.org/grpc from 1.56.2 to 1.57.0 in /exporters/otlp/otlptrace/otlptracegrpc
Bump google.golang.org/grpc from 1.56.2 to 1.57.0 in /exporters/otlp/otlpmetric/otlpmetricgrpc
Bump go.opentelemetry.io/build-tools/crosslink from 0.9.0 to 0.10.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/multimod from 0.9.0 to 0.10.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/semconvgen from 0.9.0 to 0.10.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/dbotconf from 0.9.0 to 0.10.0 in /internal/tools
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 go.opentelemetry.io/proto/otlp from 0.20.0 to 1.0.0 in /exporters/otlp/otlptrace
Bump go.opentelemetry.io/proto/otlp from 0.20.0 to 1.0.0 in /exporters/otlp/otlptrace/otlptracegrpc
Bump go.opentelemetry.io/proto/otlp from 0.20.0 to 1.0.0 in /exporters/otlp/otlpmetric/otlpmetrichttp
Bump go.opentelemetry.io/build-tools/dbotconf from 0.8.0 to 0.9.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/semconvgen from 0.8.0 to 0.9.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/crosslink from 0.8.0 to 0.9.0 in /internal/tools
Bump go.opentelemetry.io/build-tools/multimod from 0.8.0 to 0.9.0 in /internal/tools
Bump go.opentelemetry.io/proto/otlp from 0.20.0 to 1.0.0 in /exporters/otlp/otlpmetric
Bump go.opentelemetry.io/proto/otlp from 0.20.0 to 1.0.0 in /exporters/otlp/otlptrace/otlptracehttp
Bump go.opentelemetry.io/proto/otlp from 0.20.0 to 1.0.0 in /exporters/otlp/otlpmetric/otlpmetricgrpc
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