Releases: open-telemetry/opentelemetry-go
Release v0.9.0
This release includes a new Resource
auto-detector interface and a generation of the OTLP locally.
Added
- A new Resource Detector interface is included to allow resources to be automatically detected and included. (#939)
- A Detector to automatically detect resources from an environment variable. (#939)
- Github action to generate protobuf Go bindings locally in
internal/opentelemetry-proto-gen
. (#938) - OTLP .proto files from
open-telemetry/opentelemetry-proto
imported as a git submodule underinternal/opentelemetry-proto
. References togithub.com/open-telemetry/opentelemetry-proto
changed togo.opentelemetry.io/otel/internal/opentelemetry-proto-gen
. (#942)
Changed
- Non-nil value
struct
s for key-value pairs will be marshalled using JSON rather thanSprintf
. (#948)
Removed
- Removed dependency on
github.com/open-telemetry/opentelemetry-collector
. (#943)
Raw changes made between v0.8.0 and v0.9.0
58e50e2 (HEAD -> master, tag: v0.9.0, tag: exporters/trace/zipkin/v0.9.0, tag: exporters/trace/jaeger/v0.9.0, tag: exporters/otlp/v0.9.0, tag: exporters/metric/prometheus/v0.9.0, tag: example/zipkin/v0.9.0, tag: example/prometheus/v0.9.0, tag: example/otel-collector/v0.9.0, tag: example/namedtracer/v0.9.0, tag: example/jaeger/v0.9.0, tag: example/http/v0.9.0, tag: example/grpc/v0.9.0, tag: example/basic/v0.9.0, upstream/master, origin/master, origin/HEAD) Release v0.9.0 (#952)
e6537c6 Fix typo in comment (#951)
99c2998 OT resource detector (#939)
b2b23e1 supports marshaling values as json (#948)
d6ad4d4 [jaeger] Stop ignoring uints (#945)
4f3fab3 Remove github.com/open-telemetry/opentelemetry-collector dependency (#943)
166c703 Import open-telemetry/opentelemetry-proto submodule and generate protobuf bindings locally (#942)
dd79483 Create protobuf generation GitHub action (#938)
31dd06a Bump github.com/golangci/golangci-lint from 1.28.2 to 1.28.3 in /tools (#936)
9edcad3 Backport tag script from contrib repo (#934)
Release v0.8.0
This release includes additions and changes to implements the v0.6.0 OpenTelemetry specification and other fixes.
Added
- The
B3Encoding
type to represent the B3 encoding(s) the B3 propagator can inject.
A value for HTTP supported encodings (Multiple Header:MultipleHeader
, Single Header:SingleHeader
) are included. (#882) - The
FlagsDeferred
trace flag to indicate if the trace sampling decision has been deferred. (#882) - The
FlagsDebug
trace flag to indicate if the trace is a debug trace. (#882) - Add
peer.service
semantic attribute. (#898) - Add database-specific semantic attributes. (#899)
- Add semantic convention for
faas.coldstart
andcontainer.id
. (#909) - Add http content size semantic conventions. (#905)
- Include
http.request_content_length
in HTTP request basic attributes. (#905) - Add semantic conventions for operating system process resource attribute keys. (#919)
- The Jaeger exporter now has a
WithBatchMaxCount
option to specify the maximum number of spans sent in a batch. (#931)
Changed
- Update
CONTRIBUTING.md
to ask for updates toCHANGELOG.md
with each pull request. (#879) - Use lowercase header names for B3 Multiple Headers. (#881)
- The B3 propagator
SingleHeader
field has been replaced withInjectEncoding
.
This new field can be set to combinations of theB3Encoding
bitmasks and will inject trace information in these encodings.
If no encoding is set, the propagator will default toMultipleHeader
encoding. (#882) - The B3 propagator now extracts from either HTTP encoding of B3 (Single Header or Multiple Header) based on what is contained in the header.
Preference is given to Single Header encoding with Multiple Header being the fallback if Single Header is not found or is invalid.
This behavior change is made to dynamically support all correctly encoded traces received instead of having to guess the expected encoding prior to receiving. (#882) - Extend semantic conventions for RPC. (#900)
- To match constant naming conventions in the
api/standard
package, theFaaS*
key names are appended with a suffix ofKey
. (#920)"api/standard".FaaSName
->FaaSNameKey
"api/standard".FaaSID
->FaaSIDKey
"api/standard".FaaSVersion
->FaaSVersionKey
"api/standard".FaaSInstance
->FaaSInstanceKey
Removed
- The
FlagsUnused
trace flag is removed.
The purpose of this flag was to act as the inverse ofFlagsSampled
, the inverse ofFlagsSampled
is used instead. (#882) - The B3 header constants (
B3SingleHeader
,B3DebugFlagHeader
,B3TraceIDHeader
,B3SpanIDHeader
,B3SampledHeader
,B3ParentSpanIDHeader
) are removed.
If B3 header keys are needed the authoritative OpenZipkin package constants should be used instead. (#882)
Fixed
- The B3 Single Header name is now correctly
b3
instead of the previousX-B3
. (#881) - The B3 propagator now correctly supports sampling only values (
b3: 0
,b3: 1
, orb3: d
) for a Single B3 Header. (#882) - The B3 propagator now propagates the debug flag.
This removes the behavior of changing the debug flag into a set sampling bit.
Instead, this now follow the B3 specification and omits theX-B3-Sampling
header. (#882) - The B3 propagator now tracks "unset" sampling state (meaning "defer the decision") and does not set the
X-B3-Sampling
header when injecting. (#882) - Bump github.com/itchyny/gojq from 0.10.3 to 0.10.4 in /tools. (#883)
- Bump github.com/opentracing/opentracing-go from v1.1.1-0.20190913142402-a7454ce5950e to v1.2.0. (#885)
- The tracing time conversion for OTLP spans is now correctly set to
UnixNano
. (#896) - Ensure span status is not set to
Unknown
when no HTTP status code is provided as it is assumed to be200 OK
. (#908) - Ensure
httptrace.clientTracer
closeshttp.headers
span. (#912) - Prometheus exporter will not apply stale updates or forget inactive metrics. (#903)
- Add test for api.standard
HTTPClientAttributesFromHTTPRequest
. (#905) - Bump github.com/golangci/golangci-lint from 1.27.0 to 1.28.1 in /tools. (#901, #913)
- Update otel-colector example to use the v0.5.0 collector. (#915)
- The
grpctrace
instrumentation uses a span name conforming to the OpenTelemetry semantic conventions (does not contain a leading slash (/
)). (#922) - The
grpctrace
instrumentation includes anrpc.method
attribute now set to the gRPC method name. (#900, #922) - The
grpctrace
instrumentationrpc.service
attribute now contains the package name if one exists.
This is in accordance with OpenTelemetry semantic conventions. (#922) - Correlation Context extractor will no longer insert an empty map into the returned context when no valid values are extracted. (#923)
- Bump google.golang.org/api from 0.28.0 to 0.29.0 in /exporters/trace/jaeger. (#925)
- Bump github.com/itchyny/gojq from 0.10.4 to 0.11.0 in /tools. (#926)
- Bump github.com/golangci/golangci-lint from 1.28.1 to 1.28.2 in /tools. (#930)
Commits since previous tag v0.7.0
aff7a80 (HEAD -> master, tag: v0.8.0, tag: exporters/trace/zipkin/v0.8.0, tag: exporters/trace/jaeger/v0.8.0, tag: exporters/otlp/v0.8.0, tag: exporters/metric/prometheus/v0.8.0, tag: example/zipkin/v0.8.0, tag: example/prometheus/v0.8.0, tag: example/otel-collector/v0.8.0, tag: example/namedtracer/v0.8.0, tag: example/jaeger/v0.8.0, tag: example/http/v0.8.0, tag: example/grpc/v0.8.0, tag: example/basic/v0.8.0, upstream/master, origin/master, origin/HEAD) Release v0.8.0 (#929)
9e99b44 Bump github.com/golangci/golangci-lint from 1.28.1 to 1.28.2 in /tools (#930)
4dec0ad [jaeger] Added WithBatchMaxCount as an option (#931)
d979977 Add semantic conventions for OS process as resource attributes (#919)
54fffd6 Update grpctrace instrumentation span names (#922)
d2913b7 Bump google.golang.org/api from 0.28.0 to 0.29.0 in /exporters/trace/jaeger (#925)
c719588 Avoid replacing existing correlation map data in context when correlation context extractor does not find any valid data (#923)
fab431e Fix api/standard
constant names and documentation (#920)
cf6462c Bump github.com/itchyny/gojq from 0.10.4 to 0.11.0 in /tools (#926)
03cd779 Add http content size semantic conventions (#905)
1c9aab6 Extend semantic convetions for RPC (#900)
918c654 Update Changelog with omitted changes (#921)
c506e99 Fix B3 propagator and add tests (#882)
3475d55 Fix incorrect aggregation; Prometheus exporter behavior (#903)
808345c Bump CircleCI instance size (#917)
c219029 Update otel-collector example to use collector v0.5.0 (#915)
1c6ca87 Ensure clientTracer closes http.headers span (#912)
463c458 Add more database-specific semantic attributes (#899)
5a4b68c Add semantic convention for faas.coldstart
and container.id
(#909)
eaa94e9 Avoid setting span status to Unknown when no HTTP status is provided; stdlib assumes it to be 200 OK
(#908)
9342eb2 Bump github.com/golangci/golangci-lint from 1.28.0 to 1.28.1 in /tools (#913)
27e892a Remove -v from Go tests (#904)
bd1e174 Add "peer.service" semantic to standard attributes (#898)
8d1f448 Bump github.com/golangci/golangci-lint from 1.27.0 to 1.28.0 in /tools (#901)
550d365 fix trace event time conversion from internal to otlp (#896)
f1e3536 Update opentracing dependency (#885)
f4b1568 Bump github.com/itchyny/gojq from 0.10.3 to 0.10.4 in /tools (#883)
8205b0b Update B3 header names (#881)
2635f96 Ask for changelog updates with PRs (#879)
Release v0.7.0
This release implements the v0.5.0 version of the OpenTelemetry specification.
Added
- The othttp instrumentation now includes default metrics. (#861)
- This CHANGELOG file to track all changes in the project going forward.
- Support for array type attributes. (#798)
- Apply transitive dependabot go.mod dependency updates as part of a new automatic Github workflow. (#844)
- Timestamps are now passed to exporters for each export. (#835)
- Add new
Accumulation
type to metric SDK to transport telemetry fromAccumulator
s toProcessor
s.
This replaces the priorRecord
struct
use for this purpose. (#835) - New dependabot integration to automate package upgrades. (#814)
Meter
andTracer
implementations accept instrumentation version version as an optional argument.
This instrumentation version is passed on to exporters. (#811) (#805) (#802)- The OTLP exporter includes the instrumentation version in telemetry it exports. (#811)
- Environment variables for Jaeger exporter are supported. (#796)
- New
aggregation.Kind
in the export metric API. (#808) - New example that uses OTLP and the collector. (#790)
- Handle errors in the span
SetName
during span initialization. (#791) - Default service config to enable retries for retry-able failed requests in the OTLP exporter and an option to override this default. (#777)
- New
go.opentelemetry.io/otel/api/oterror
package to uniformly support error handling and definitions for the project. (#778) - New
global
default implementation of thego.opentelemetry.io/otel/api/oterror.Handler
interface to be used to handle errors prior to an user definedHandler
.
There is also functionality for the user to register theirHandler
as well as a convenience functionHandle
to handle an error with this globalHandler
(#778) - Options to specify propagators for httptrace and grpctrace instrumentation. (#784)
- The required
application/json
header for the Zipkin exporter is included in all exports. (#774) - Integrate HTTP semantics helpers from the contrib repository into the
api/standard
package. #769
Changed
- Rename
Integrator
toProcessor
in the metric SDK. (#863) - Rename
AggregationSelector
toAggregatorSelector
. (#859) - Rename
SynchronizedCopy
toSynchronizedMove
. (#858) - Rename
simple
integrator tobasic
integrator. (#857) - Merge otlp collector examples. (#841)
- Change the metric SDK to support cumulative, delta, and pass-through exporters directly.
With these changes, cumulative and delta specific exporters are able to request the correct kind of aggregation from the SDK. (#840) - The
Aggregator.Checkpoint
API is renamed toSynchronizedCopy
and adds an argument, a differentAggregator
into which the copy is stored. (#812) - The
export.Aggregator
contract is thatUpdate()
andSynchronizedCopy()
are synchronized with each other.
All the aggregation interfaces (Sum
,LastValue
, ...) are not meant to be synchronized, as the caller is expected to synchronize aggregators at a higher level after theAccumulator
.
Some of theAggregators
used unnecessary locking and that has been cleaned up. (#812) - Use of
metric.Number
was replaced byint64
now that we usesync.Mutex
in theMinMaxSumCount
andHistogram
Aggregators
. (#812) - Replace
AlwaysParentSample
withParentSample(fallback)
to match the OpenTelemetry v0.5.0 specification. (#810) - Rename
sdk/export/metric/aggregator
tosdk/export/metric/aggregation
. #808 - Send configured headers with every request in the OTLP exporter, instead of just on connection creation. (#806)
- Update error handling for any one off error handlers, replacing, instead, with the
global.Handle
function. (#791) - Rename
plugin
directory toinstrumentation
to match the OpenTelemetry specification. (#779) - Makes the argument order to Histogram and DDSketch
New()
consistent. (#781)
Removed
Uint64NumberKind
and related functions from the API. (#864)- Context arguments from
Aggregator.Checkpoint
andIntegrator.Process
as they were unused. (#803) SpanID
is no longer included in parameters for sampling decision to match the OpenTelemetry specification. (#775)
Fixed
- Upgrade OTLP exporter to opentelemetry-proto matching the opentelemetry-collector v0.4.0 release. (#866)
- Allow changes to
go.sum
andgo.mod
when running dependabot tidy-up. (#871) - Bump github.com/stretchr/testify from 1.4.0 to 1.6.1. (#824)
- Bump github.com/prometheus/client_golang from 1.7.0 to 1.7.1 in /exporters/metric/prometheus. (#867)
- Bump google.golang.org/grpc from 1.29.1 to 1.30.0 in /exporters/trace/jaeger. (#853)
- Bump google.golang.org/grpc from 1.29.1 to 1.30.0 in /exporters/trace/zipkin. (#854)
- Bumps github.com/golang/protobuf from 1.3.2 to 1.4.2 (#848)
- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/otlp (#817)
- Bump github.com/golangci/golangci-lint from 1.25.1 to 1.27.0 in /tools (#828)
- Bump github.com/prometheus/client_golang from 1.5.0 to 1.7.0 in /exporters/metric/prometheus (#838)
- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/trace/jaeger (#829)
- Bump github.com/benbjohnson/clock from 1.0.0 to 1.0.3 (#815)
- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/trace/zipkin (#823)
- Bump github.com/itchyny/gojq from 0.10.1 to 0.10.3 in /tools (#830)
- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/metric/prometheus (#822)
- Bump google.golang.org/grpc from 1.27.1 to 1.29.1 in /exporters/trace/zipkin (#820)
- Bump google.golang.org/grpc from 1.27.1 to 1.29.1 in /exporters/trace/jaeger (#831)
- Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 (#836)
- Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 in /exporters/trace/jaeger (#837)
- Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 in /exporters/otlp (#839)
- Bump google.golang.org/api from 0.20.0 to 0.28.0 in /exporters/trace/jaeger (#843)
- Set span status from HTTP status code in the othttp instrumentation. (#832)
- Fixed typo in push controller comment. (#834)
- The
Aggregator
testing has been updated and cleaned. (#812) metric.Number(0)
expressions are replaced by0
where possible. (#812)- Fixed
global
handler_test.go
test failure. #804 - Fixed
BatchSpanProcessor.Shutdown
to wait until all spans are processed. (#766) - Fixed OTLP example's accidental early close of exporter. (#807)
- Ensure zipkin exporter reads and closes response body. (#788)
- Update instrumentation to use
api/standard
keys instead of custom keys. (#782) - Clean up tools and RELEASING documentation. (#762)
Release v0.6.0
Added
- Support for
Resource
s in the prometheus exporter. (#757) - New pull controller. (#751)
- New
UpDownSumObserver
instrument. (#750) - OpenTelemetry collector demo. (#711)
- New
SumObserver
instrument. (#747) - New
UpDownCounter
instrument. (#745) - New timeout
Option
and configuration functionWithTimeout
to the push controller. (#742) - New
api/standards
package to implement semantic conventions and standard key-value generation. (#731)
Changed
- Rename
Register*
functions in the metric API toNew*
for allObserver
instruments. (#761) - Use
[]float64
for histogram boundaries, not[]metric.Number
. (#758) - Change OTLP example to use exporter as a trace
Syncer
instead of as an unneededBatcher
. (#756) - Replace
WithResourceAttributes()
withWithResource()
in the trace SDK. (#754) - The prometheus exporter now uses the new pull controller. (#751)
- Rename
ScheduleDelayMillis
toBatchTimeout
in the traceBatchSpanProcessor
.(#752) - Support use of synchronous instruments in asynchronous callbacks (#725)
- Move
Resource
from theExport
method parameter into the metric exportRecord
. (#739) - Rename
Observer
instrument toValueObserver
. (#734) - The push controller now has a method (
Provider()
) to return ametric.Provider
instead of the oldMeter
method that acted as ametric.Provider
. (#738) - Replace
Measure
instrument byValueRecorder
instrument. (#732) - Rename correlation context header from
"Correlation-Context"
to"otcorrelations"
to match the OpenTelemetry specification. 727)
Fixed
- Ensure gRPC
ClientStream
override methods do not panic in grpctrace package. (#755) - Disable parts of
BatchSpanProcessor
test until a fix is found. (#743) - Fix
string
case inkv
Infer
function. (#746) - Fix panic in grpctrace client interceptors. (#740)
- Refactor the
api/metrics
push controller and addCheckpointSet
synchronization. (#737) - Rewrite span batch process queue batching logic. (#719)
- Remove the push controller named Meter map. (#738)
- Fix Histogram aggregator initial state (fix #735). (#736)
- Ensure golang alpine image is running
golang-1.14
for examples. (#733) - Added test for grpctrace
UnaryInterceptorClient
. (#695) - Rearrange
api/metric
code layout. (#724)
Release v0.5.0
Added
- Batch
Observer
callback support. (#717) - Alias
api
types to root package of project. (#696) - Create basic
othttp.Transport
for simple client instrumentation. (#678) SetAttribute(string, interface{})
to the trace API. (#674)- Jaeger exporter option that allows user to specify custom http client. (#671)
Stringer
andInfer
methods tokey
s. (#662)
Changed
- Rename
NewKey
in thekv
package to justKey
. (#721) - Move
core
andkey
tokv
package. (#720) - Make the metric API
Meter
astruct
so the abstractMeterImpl
can be passed and simplify implementation. (#709) - Rename SDK
Batcher
toIntegrator
to match draft OpenTelemetry SDK specification. (#710) - Rename SDK
Ungrouped
integrator tosimple.Integrator
to match draft OpenTelemetry SDK specification. (#710) - Rename SDK
SDK
struct
toAccumulator
to match draft OpenTelemetry SDK specification. (#710) - Move
Number
fromcore
toapi/metric
package. (#706) - Move
SpanContext
fromcore
totrace
package. (#692) - Change traceparent header from
Traceparent
totraceparent
to implement the W3C specification. (#681)
Fixed
- Update tooling to run generators in all submodules. (#705)
- gRPC interceptor regexp to match methods without a service name. (#683)
- Use a
const
for padding 64-bit B3 trace IDs. (#701) - Update
mockZipkin
listen address from:0
to127.0.0.1:0
. (#700) - Left-pad 64-bit B3 trace IDs with zero. (#698)
- Propagate at least the first W3C tracestate header. (#694)
- Remove internal
StateLocker
implementation. (#688) - Increase instance size CI system uses. (#690)
- Add a
key
benchmark and use reflection inkey.Infer()
. (#679) - Fix internal
global
test by usingglobal.Meter
withRecordBatch()
. (#680) - Reimplement histogram using mutex instead of
StateLocker
. (#669) - Switch
MinMaxSumCount
to a mutex lock implementation instead ofStateLocker
. (#667) - Update documentation to not include any references to
WithKeys
. (#672) - Correct misspelling. (#668)
- Fix clobbering of the span context if extraction fails. (#656)
- Bump
golangci-lint
and work around the corrupting bug. (#666) (#670)
Release v0.4.3
Added
Dockerfile
anddocker-compose.yml
to run example code. (#635)- New
grpctrace
package that provides gRPC client and server interceptors for both unary and stream connections. (#621) - New
api/label
package, providing common label set implementation. (#651) - Support for JSON marshaling of
Resources
. (#654) TraceID
andSpanID
implementations forStringer
interface. (#642)RemoteAddrKey
in the othttp plugin to include the HTTP client address in top-level spans. (#627)WithSpanFormatter
option to the othttp plugin. (#617)- Updated README to include section for compatible libraries and include reference to the contrib repository. (#612)
- The prometheus exporter now supports exporting histograms. (#601)
- A
String
method to theResource
to return a hashable identifier for a now unique resource. (#613) - An
Iter
method to theResource
to return an arrayAttributeIterator
. (#613) - An
Equal
method to theResource
test the equivalence of resources. (#613) - An iterable structure (
AttributeIterator
) forResource
attributes.
Changed
- zipkin export's
NewExporter
now requires aserviceName
argument to ensure this needed values is provided. (#644) - Pass
Resources
through the metrics export pipeline. (#659)
Removed
WithKeys
option from the metric API. (#639)
Fixed
- Use the
label.Set.Equivalent
value instead of an encoding in the batcher. (#658) - Correct typo
trace.Exporter
totrace.SpanSyncer
in comments. (#653) - Use type names for return values in jaeger exporter. (#648)
- Increase the visibility of the
api/key
package by updating comments and fixing usages locally. (#650) Checkpoint
only afterUpdate
; Keep records in thesync.Map
longer. (#647)- Do not cache
reflect.ValueOf()
in metric Labels. (#649) - Batch metrics exported from the OTLP exporter based on
Resource
and labels. (#626) - Add error wrapping to the prometheus exporter. (#631)
- Update the OTLP exporter batching of traces to use a unique
string
representation of an associatedResource
as the batching key. (#623) - Update OTLP
SpanData
transform to only include theParentSpanID
if one exists. (#614) - Update
Resource
internal representation to uniquely and reliably identify resources. (#613) - Check return value from
CheckpointSet.ForEach
in prometheus exporter. (#622) - Ensure spans created by httptrace client tracer reflect operation structure. (#618)
- Create a new recorder rather than reuse when multiple observations in same epoch for asynchronous instruments. #610
- The default port the OTLP exporter uses to connect to the OpenTelemetry collector is updated to match the one the collector listens on by default. (#611)
Changes since v0.4.2
1de7f68 Prepare for releasing v0.4.3 (#664)
52b2534 (origin/master, origin/HEAD) Update Maintainer for Otel Go. (#660)
3008c1b Pass Resources through the metrics export pipeline (#659)
cd1be0e Use the label.Set.Equivalent value instead of an encoding in the batcher (#658)
6402598 add Dockerfile and docker-compose.yml to run example code (#635)
6de3dab Resolve #72 - gRPC Interceptor (#621)
0bb12d9 New api/label
package, common label set impl (#651)
acb350b Support JSON marshal of Resources (#654)
d20fc72 Fix typo trace.Exporter to trace.SpanSyncer (#653)
ddad4d4 trace exporter: using type names for return values (#648)
927d915 Increase the visibility of the api/key
package (#650)
395440d Checkpoint only after Update; Keep records in the sync.Map longer (#647)
e554562 Do not cache reflect.ValueOf()
in metrics Labels (#649)
cf7c4e5 fix zipkin without local endpoint with service name (#644)
669d4b3 TraceID and SpanID implementations for Stringer Interface (#642)
ebc245b Batch Metrics Exported From the OTLP Exporter (#626)
a8f7b32 Remove WithKeys() option, defaultkeys batcher (#639)
bcb8b64 prometheus: add error wrapping (#631)
8c94927 othttp: add RemoteAddrKey for including HTTP client address in top-level spans (#627)
0a9e861 Update the OTLP exporter batching of traces (#623)
856aad9 Update OTLP SpanData transform (#614)
8e97011 Update Resource (#613)
6005d01 prometheus: check return value from CheckpointSet.ForEach (#622)
c8ec530 Ensure spans created by httptrace client tracer reflect operation structure (#618)
6489b07 othttp: add WithSpanFormatter option (#617)
367635b Create a new recorder rather than reuse one for same labels (#610)
0f771bb (tools) added readme section to point to contrib repo (#612)
446727b Updated default port for OTLP exporter (#611)
8ef02a6 prometheus: add histogram support to exporter (#601)
Release v0.4.2
Fixed
- Fix
pre_release.sh
to update version insdk/opentelemetry.go
. (#607) - Fix time conversion from internal to OTLP in OTLP exporter. (#606)
Changes since v0.4.1
857e80c Prepare for releasing v0.4.2 (#608)
c85f463 fix pre_release.sh to update version in sdk/opentelemetry.go (#607)
1f6ffa9 Fix time conversion from internal to otlp (#606)
Release v0.4.1
Release v0.4.0
Added
- New API package
api/metric/registry
that exposes aMeterImpl
wrapper for use by SDKs to generate unique instruments. (#580) - Script to verify examples after a new release. (#579)
Removed
- The dogstatsd exporter due to lack of support.
This additionally removes support for statsd. (#591) LabelSet
from the metric API.
This is replaced by a[]core.KeyValue
slice. (#595)Labels
from the metric API'sMeter
interface. (#595)
Changed
- The metric
export.Labels
became an interface which the SDK implements and theexport
package provides a simple, immutable implementation of this interface intended for testing purposes. (#574) - Renamed
internal/metric.Meter
toMeterImpl
. (#580) - Renamed
api/global/internal.obsImpl
toasyncImpl
. (#580)
Fixed
- Corrected missing return in mock span. (#582)
- Update License header for all source files to match CNCF guidelines and include a test to ensure it is present. (#586) (#596)
- Update to v0.3.0 of the OTLP in the OTLP exporter. (#588)
- Update pre-release script to be compatible between GNU and BSD based systems. (#592)
- Add a
RecordBatch
benchmark. (#594) - Moved span transforms of the OTLP exporter to the internal package. (#593)
- Build both go-1.13 and go-1.14 in circleci to test for all supported versions of Go. (#569)
- Removed unneeded allocation on empty labels in OLTP exporter. (#597)
- Update
BatchedSpanProcessor
to process the queue until no data but respect max batch size. (#599) - Update project documentation godoc.org links to pkg.go.dev. (#602)
Changes since v0.3.0
f474c34 Script to verify example after new release. (#579)
5d346a4 update godoc.org links to pkg.go.dev (#602)
1e8e72b Process the queue until no data but respect max batch size (#599)
e8546e3 Remove Labelset (#595)
e7a9ba1 Remove unneeded allocation on empty labels (#597)
e458809 Build both go-1.13 and go-1.14 in circleci (#569)
c97b4f7 Update project License headers and checking (#596)
c9dcc1b Move span transforms of the OTLP exporter to internal (#593)
cfe74cf Add a RecordBatch benchmark (#594)
4c69dd3 Remove dogstatsd and statsd support (#591)
06f833e Unique instrument checking (#580)
dff6265 Pre-release script fixes (#592)
d648712 Kick label encoder out of sdk (#574)
6f881b4 update to proto v0.3.0 (#588)
a485d0e Update License header for all source files (#586)
c16f56e Fix missing return in mock span (#582)
Release v0.3.0
This is a first official beta release, which provides almost fully complete metrics, tracing, and context propagation functionality.
There is still a possibility of breaking changes.
Added
- Add
Observer
metric instrument. (#474) - Add global
Propagators
functionality to enable deferred initialization for propagators registered before the first Meter SDK is installed. (#494) - Simplified export setup pipeline for the jaeger exporter to match other exporters. (#459)
- The zipkin trace exporter. (#495)
- The OTLP exporter to export metric and trace telemetry to the OpenTelemetry collector. (#497) (#544) (#545)
- The
StatusMessage
field was add to the traceSpan
. (#524) - Context propagation in OpenTracing bridge in terms of OpenTelemetry context propagation. (#525)
- The
Resource
type was added to the SDK. (#528) - The global API now supports a
Tracer
andMeter
function as shortcuts to getting a global*Provider
and calling these methods directly. (#538) - The metric API now defines a generic
MeterImpl
interface to support general purposeMeter
construction.
Additionally,SyncImpl
andAsyncImpl
are added to support general purpose instrument construction. (#560) - A metric
Kind
is added to represent theMeasureKind
,ObserverKind
, andCounterKind
. (#560) - Scripts to better automate the release process. (#576)
Changed
- Default to to use
AlwaysSampler
instead ofProbabilitySampler
to match OpenTelemetry specification. (#506) - Renamed
AlwaysSampleSampler
toAlwaysOnSampler
in the trace API. (#511) - Renamed
NeverSampleSampler
toAlwaysOffSampler
in the trace API. (#511) - The
Status
field of theSpan
was changed toStatusCode
to disambiguate with the addedStatusMessage
. (#524) - Updated the trace
Sampler
interface conform to the OpenTelemetry specification. (#531) - Rename metric API
Options
toConfig
. (#541) - Rename metric
Counter
aggregator to beSum
. (#541) - Unify metric options into
Option
from instrument specific options. (#541) - The trace API's
TraceProvider
now supportResource
s. (#545) - Correct error in zipkin module name. (#548)
- The jaeger trace exporter now supports
Resource
s. (#551) - Metric SDK now supports
Resource
s.
TheWithResource
option was added to configure aResource
on creation and theResource
method was added to the metricDescriptor
to return the associatedResource
. (#552) - Replace
ErrNoLastValue
andErrEmptyDataSet
byErrNoData
in the metric SDK. (#557) - The stdout trace exporter now supports
Resource
s. (#558) - The metric
Descriptor
is now included at the API instead of the SDK. (#560) - Replace
Ordered
with an iterator inexport.Labels
. (#567)
Removed
- The vendor specific Stackdriver. It is now hosted on 3rd party vendor infrastructure. (#452)
- The
Unregister
method for metric observers as it is not in the OpenTelemetry specification. (#560) GetDescriptor
from the metric SDK. (#575)- The
Gauge
instrument from the metric API. (#537)
Fixed
- Make histogram aggregator checkpoint consistent. (#438)
- Update README with import instructions and how to build and test. (#505)
- The default label encoding was updated to be unique. (#508)
- Use
NewRoot
in the othttp plugin for public endpoints. (#513) - Fix data race in
BatchedSpanProcessor
. (#518) - Skip test-386 for Mac OS 10.15.x (Catalina and upwards). #521
- Use a variable-size array to represent ordered labels in maps. (#523)
- Update the OTLP protobuf and update changed import path. (#532)
- Use
StateLocker
implementation inMinMaxSumCount
. (#546) - Eliminate goroutine leak in histogram stress test. (#547)
- Update OTLP exporter with latest protobuf. (#550)
- Add filters to the othttp plugin. (#556)
- Provide an implementation of the
Header*
filters that do not depend on Go 1.14. (#565) - Encode labels once during checkpoint.
The checkpoint function is executed in a single thread so we can do the encoding lazily before passing the encoded version of labels to the exporter.
This is a cheap and quick way to avoid encoding the labels on every collection interval. (#572) - Run coverage over all packages in
COVERAGE_MOD_DIR
. (#573)
Changes since v0.2.3
a1c2439 Prepare for releasing v0.3.0 (#578)
a15e507 Scripts for releasing. (#576)
7623fc5 Remove GetDescriptor (#575)
c95360f Run coverage over all packages beneath COVERAGE_MOD_DIR (#573)
cc756f6 Encode labels once during checkpoint (#572)
f7df68b Add support for Resources in the SDK (#552)
a01f63b Replace Ordered
with an iterator in export.Labels
. (#567)
d8682c1 Refactor the SDK helpers, create MeterImpl (#560)
e0406dd Provide an implementation of the Header* filters that does not depend on go1.14 (#565)
80b720a update stdout trace with resource. (#558)
435c39a Update OTLP exporter with latest proto (#550)
74a5285 update jaeger exporter to translate resources to tags. (#551)
2ef25ea Add filters for othttp plugin (#556)
217a97d Replace ErrNoLastValue and ErrEmptyDataSet by ErrNoData (#557)
6ada85a (resource_zipkin, go_114) add resource option to Provider. (#545)
638b865 Update Sampler descriptions (#511)
cba1664 Add metrics support to the OTLP exporter (#544)
fcc4aca Fix typo in module name (#548)
8680783 Use StateLocker in MinMaxSumCount (#546)
46ac030 Eliminate goroutine leak in histogram stress test (#547)
2ccddfe Update README with import instructions and how to build / test (#505)
23e65ac Remove metric options; rename "counter" aggregator to "sum" (#541)
d9210f5 Zipkin exporter (#495)
4047c08 Introduce metric constructor errors, MeterMust
wrapper (#529)
288821c Make histogram aggregator checkpoint consistent (#438)
ae9033e Use a variable-size array to represent ordered labels in maps (#523)
8575142 add shorter version for global providers (#538)
9674c81 Drop the gauge instrument (#537)
fe0099f [tracing] add simplified export pipeline setup for Jaeger (#459)
8cddf30 Context propagation in opentracing bridge (#525)
7a1cbbc Update Samplers to conform to Spec (#531)
af54288 Update OTLP protos, fix imports (#532)
1ff0f2a add resource type. (#528)
3bf3927 Add status message parameter (#524)
5850278 opentelemetry collector trace exporter (#497)
9459629 Remove the StackDriver trace exporter (#452)
43db6ec Propose putting isobel to emeritus :( (#526)
79de90a fix data race in BatchedSpanProcessor (#518)
161556a Update provider to use AlwaysSampler instead of ProbabilitySampler (#506)
20ecc38 skip test-386 for Mac OS 10.15.x (Catalina and upwards). (#521)
a202f16 Add observer metric (#474)
547d584 Add global propagators (#494)
6769330 use NewRoot() standard code. (#513)
148c9ce Make the default label encoding unique (#508)