Skip to content

Latest commit

 

History

History
891 lines (597 loc) · 45.3 KB

CHANGELOG.md

File metadata and controls

891 lines (597 loc) · 45.3 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

This project adheres to Semantic Versioning.

Added

  • Add the new go.opentelemetry.io/contrib/instrgen package to provide auto-generated source code instrumentation. (#3068, #3108)
  • Add "go.opentelemetry.io/contrib/samplers/jaegerremote".WithSamplingStrategyFetcher which sets custom fetcher implementation. (#4045)
  • Add "go.opentelemetry.io/contrib/config" package that includes configuration models generated via go-jsonschema (#4376)

Changed

  • Dropped compatibility testing for Go 1.19. The project no longer guarantees support for this version of Go. (#4352)

Fixed

  • The go.opentelemetry.io/contrib/samplers/jaegerremote sampler does not panic when the default HTTP round-tripper (http.DefaultTransport) is not *http.Transport. (#4045)

Added

  • Set the description for the rpc.server.duration metric in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc. (#4302)
  • Add NewServerHandler and NewClientHandler that return a grpc.StatsHandler used for gRPC instrumentation in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc. (#3002)
  • Add new Prometheus bridge module in go.opentelemetry.io/contrib/bridges/prometheus. (#4227)

Changed

  • Upgrade dependencies of OpenTelemetry Go to use the new v1.19.0/v0.42.0/v0.0.7 release.
  • Use grpc.StatsHandler for gRPC instrumentation in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/example. (#4325)

Added

  • Add gcp.gce.instance.name and gcp.gce.instance.hostname resource attributes to go.opentelemetry.io/contrib/detectors/gcp. (#4263)

Changed

  • The semantic conventions used by go.opentelemetry.io/contrib/detectors/aws/ec2 have been upgraded to v1.21.0. (#4265)
  • The semantic conventions used by go.opentelemetry.io/contrib/detectors/aws/ecs have been upgraded to v1.21.0. (#4265)
  • The semantic conventions used by go.opentelemetry.io/contrib/detectors/aws/eks have been upgraded to v1.21.0. (#4265)
  • The semantic conventions used by go.opentelemetry.io/contrib/detectors/aws/lambda have been upgraded to v1.21.0. (#4265)
  • The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda have been upgraded to v1.21.0. (#4265)
    • The faas.execution attribute is now faas.invocation_id.
    • The faas.id attribute is now aws.lambda.invoked_arn.
  • The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws have been upgraded to v1.21.0. (#4265)
  • The http.request.method attribute will only allow known HTTP methods from the metrics generated by go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp. (#4277)

Removed

  • The high cardinality attributes net.sock.peer.addr, net.sock.peer.port, http.user_agent, enduser.id, and http.client_ip were removed from the metrics generated by go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp. (#4277)
  • The deprecated go.opentelemetry.io/contrib/instrumentation/github.com/astaxie/beego/otelbeego module is removed. (#4295)
  • The deprecated go.opentelemetry.io/contrib/instrumentation/github.com/go-kit/kit/otelkit module is removed. (#4295)
  • The deprecated go.opentelemetry.io/contrib/instrumentation/github.com/Shopify/sarama/otelsarama module is removed. (#4295)
  • The deprecated go.opentelemetry.io/contrib/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache module is removed. (#4295)
  • The deprecated go.opentelemetry.io/contrib/instrumentation/github.com/gocql/gocql/otelgocql module is removed. (#4295)

Added

  • Add NewMiddleware function in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp. (#2964)
  • The go.opentelemetry.io/contrib/exporters/autoexport package to provide configuration of trace exporters with useful defaults and environment variable support. (#2753, #4100, #4130, #4132, #4134)
  • WithRouteTag in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp adds HTTP route attribute to metrics. (#615)
  • Add WithSpanOptions option in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc. (#3768)
  • Add testing support for Go 1.21. (#4233)
  • Add WithFilter option to go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux. (#4230)

Changed

  • Change interceptors in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc to disable SENT/RECEIVED events. Use WithMessageEvents() to turn back on. (#3964)

Changed

  • go.opentelemetry.io/contrib/detectors/gcp: Detect faas.instance instead of faas.id, since faas.id is being removed. (#4198)

Fixed

  • AWS XRay Remote Sampling to cap quotaBalance to 1x quota in go.opentelemetry.io/contrib/samplers/aws/xray. (#3651, #3652)
  • Do not panic when the HTTP request has the "Expect: 100-continue" header in go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace. (#3892)
  • Fix span status value set for non-standard HTTP status codes in modules listed below. (#3966)
    • go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful
    • go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin
    • go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux
    • go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho
    • go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron
    • go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace
    • go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp
  • Do not modify the origin request in RoundTripper in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp. (#4033)
  • Handle empty value of OTEL_PROPAGATORS environment variable the same way as when the variable is unset in go.opentelemetry.io/contrib/propagators/autoprop. (#4101)
  • Fix gRPC service/method URL path parsing discrepancies in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc. (#4135)

Deprecated

  • The go.opentelemetry.io/contrib/instrumentation/github.com/astaxie/beego/otelbeego module is deprecated. (#4092, #4104)
  • The go.opentelemetry.io/contrib/instrumentation/github.com/go-kit/kit/otelkit module is deprecated. (#4093, #4104)
  • The go.opentelemetry.io/contrib/instrumentation/github.com/Shopify/sarama/otelsarama module is deprecated. (#4099)
  • The go.opentelemetry.io/contrib/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache module is deprecated. (#4164)
  • The go.opentelemetry.io/contrib/instrumentation/github.com/gocql/gocql/otelgocql module is deprecated. (#4164)

Removed

  • Remove Handler type in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp. (#2964)

Changed

  • Use strings.Cut() instead of string.SplitN() for better readability and memory use. (#3822)

Changed

Deprecated

  • SemVersion functions in instrumentation packages are deprecated, use Version instead. (#3681, #3798)

Added

  • The WithPublicEndpoint and WithPublicEndpointFn options in go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux. (#3661)

Changed

Fixed

  • AWS XRay Remote Sampling to preserve previous rule if updated rule property has not changed in go.opentelemetry.io/contrib/samplers/aws/xray. (#3619, #3620)

Added

  • AWS SDK add rpc.system attribute in go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws. (#3582, #3617)

Changed

  • Update go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc to align gRPC server span status with the changes in the OpenTelemetry specification. (#3685)
  • Adding the db.statement tag to spans in go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo is now disabled by default. (#3519)

Fixed

  • The error received by otelecho middleware is then passed back to upstream middleware instead of being swallowed. (#3656)
  • Prevent taking from reservoir in AWS XRay Remote Sampler when there is zero capacity in go.opentelemetry.io/contrib/samplers/aws/xray. (#3684)
  • Fix otelhttp.Handler in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to propagate multiple WriteHeader calls while persisting the initial statusCode. (#3580)

Added

  • The WithPublicEndpoint and WithPublicEndpointFn options in go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful. (#3563)

Fixed

  • AWS SDK rename attributes aws.operation, aws.service to rpc.method,rpc.service in go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws. (#3582, #3617)
  • AWS SDK span name to be of the format Service.Operation in go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws. (#3582, #3521)
  • Prevent sampler configuration reset from erroneously sampling first span in go.opentelemetry.io/contrib/samplers/jaegerremote. (#3603, #3604)

Changed

  • Dropped compatibility testing for Go 1.18. The project no longer guarantees support for this version of Go. (#3516)

1.15.0/0.40.0/0.9.0 - 2023-02-27

This release is the last to support Go 1.18. The next release will require at least Go 1.19.

Added

  • Support Go 1.20. (#3372)
  • Add SpanNameFormatter option to package go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin. (#3343)

Changed

  • Change to use protobuf parser instead of encoding/json to accept enums as strings in go.opentelemetry.io/contrib/samplers/jaegerremote. (#3183)

Fixed

  • Remove use of deprecated "math/rand".Seed in go.opentelemetry.io/contrib/instrumentation/github.com/Shopify/sarama/otelsarama/example/producer. (#3396)
  • Do not assume "aws" partition in ecs detector to prevent panic in go.opentelemetry.io/contrib/detectors/aws/ecs. (#3167)
  • The span name of producer spans from go.opentelemetry.io/contrib/instrumentation/github.com/Shopify/sarama/otelsarama is corrected to use publish instead of send. (#3369)
  • Attribute types are corrected in go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws. (#3369)
    • aws.dynamodb.table_names is now a string slice value.
    • aws.dynamodb.global_secondary_indexes is now a string slice value.
    • aws.dynamodb.local_secondary_indexes is now a string slice value.
    • aws.dynamodb.attribute_definitions is now a string slice value.
    • aws.dynamodb.global_secondary_index_updates is now a string slice value.
    • aws.dynamodb.provisioned_read_capacity is now a float64 value.
    • aws.dynamodb.provisioned_write_capacity is now a float64 value.

1.14.0/0.39.0/0.8.0 - 2023-02-07

Changed

  • Change runtime.uptime instrument in go.opentelemetry.io/contrib/instrumentation/runtime from Int64ObservableUpDownCounter to Int64ObservableCounter, since the value is monotonic. (#3347)
  • samplers/jaegerremote: change to use protobuf parser instead of encoding/json to accept enums as strings. (#3183)

Fixed

  • The GCE detector in go.opentelemetry.io/contrib/detectors/gcp includes the "cloud.region" attribute when appropriate. (#3367)

1.13.0/0.38.0/0.7.0 - 2023-01-30

Added

  • Add WithSpanNameFormatter to go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux to allow customizing span names. (#3041)
  • Add missing recommended AWS Lambda resource attributes faas.instance and faas.max_memory in go.opentelemetry.io/contrib/detectors/aws/lambda. (#3148)
  • Improve documentation for go.opentelemetry.io/contrib/samplers/jaegerremote by providing examples of sampling endpoints. (#3147)
  • Add WithServerName to go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to set the primary server name of a Handler. (#3182)

Changed

  • Remove expensive calculation of uncompressed message size attribute in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc. (#3168)
  • Upgrade all semconv packages to use v1.17.0. (#3182)
  • Upgrade dependencies of OpenTelemetry Go to use the new v1.12.0/v0.35.0 release. (#3190, #3170)

Added

  • Implemented retrieving the aws.ecs.* resource attributes in go.opentelemetry.io/detectors/aws/ecs based on the ECS Metadata v4 endpoint. (#2626)
  • The WithLogger option to go.opentelemetry.io/contrib/samplers/jaegerremote to allow users to pass a logr.Logger and have operations logged. (#2566)
  • Add the messaging.url & messaging.system attributes to all appropriate SQS operations in the go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws package. (#2879)
  • Add example use of the metrics signal to go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/example. (#2610)
  • [otelgin] Add support for filters to the go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin package to provide the way to control which inbound requests are traced. (#2965, #2963)

Fixed

  • Set the status_code span attribute even if the HTTP handler hasn't written anything. (#2822)
  • Do not wrap http.NoBody in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp, which fixes handling of that special request body. (#2983)

Added

  • Add trace context propagation support to instrumentation/github.com/aws/aws-sdk-go-v2/otelaws (#2856).
  • [otelgrpc] Add WithMeterProvider function to enable metric and add metric rpc.server.duration to otelgrpc instrumentation library. (#2700)

Changed

Changed

Changed

  • Upgrade dependencies of the OpenTelemetry Go Metric SDK to use the new v0.32.2 release
  • Avoid getting a new Tracer for every RPC in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc. (#2835)
  • Conditionally compute message size for tracing events using proto v2 API rather than legacy v1 API in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc. (#2647)

Deprecated

  • The Inject function in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc is deprecated. (#2838)
  • The Extract function in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc is deprecated. (#2838)

Changed

  • Upgrade dependencies of the OpenTelemetry Go Metric SDK to use the new v0.32.1 release

Removed

  • Drop support for Go 1.17. The project currently only supports Go 1.18 and above. (#2785)

Changed

  • Upgrade dependencies of the OpenTelemetry Go Metric SDK to use the new v0.32.0 release. (#2781, #2756, #2758, #2760, #2762)

Changed

  • Rename the Typ field of "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc".InterceptorInfo to Type. (#2688)
  • Use Go 1.19 as the default version for CI testing/linting. (#2675)

Fixed

  • Fix the Jaeger propagator rejecting trace IDs that are both shorter than 128 bits and not exactly 64 bits long (while not being 0). Also fix the propagator rejecting span IDs shorter than 64 bits. This fixes compatibility with Jaeger clients encoding trace and span IDs as variable-length hex strings, as required by the Jaeger propagation format. (#2731)

1.9.0/0.34.0/0.4.0 - 2022-08-02

Added

  • Add gRPC trace Filter to the go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc package to provide the way to filter the traces automatically generated in interceptors. (#2572)
  • The TextMapPropagator function to go.opentelemetry.io/contrib/propagators/autoprop. This function is used to return a composite TextMapPropagator from registered names (instead of having to specify with an environment variable). (#2593)

Changed

  • Upgraded all semconv package use to v1.12.0. (#2589)

1.8.0/0.33.0 - 2022-07-08

Added

  • The go.opentelemetry.io/contrib/propagators/autoprop package to provide configuration of propagators with useful defaults and envar support. (#2258)
  • WithPublicEndpointFn hook to dynamically detect public HTTP requests and set their trace parent as a link. (#2342)

Fixed

  • Fix the otelhttp, otelgin, otelmacaron, otelrestful middlewares by using SpanKindServer when deciding the SpanStatus. This makes 4xx response codes to not be an error anymore. (#2427)

1.7.0/0.32.0 - 2022-04-28

Added

  • Consistent probability sampler implementation. (#1379)

Changed

  • Upgraded all semconv package use to v1.10.0. This includes a backwards incompatible change for the otelgocql package to conform with the specification change. The db.cassandra.keyspace attribute is now transmitted as the db.name attribute. (#2222)

Fixed

  • Fix the otelmux middleware by using SpanKindServer when deciding the SpanStatus. This makes 4xx response codes to not be an error anymore. (#1973)
  • Fixed jaegerremote sampler not behaving properly with per operation strategy set. (#2137)
  • Stopped injecting propagation context into response headers in otelhttp. (#2180)
  • Fix issue where attributes for DynamoDB were not added because of a string miss match. (#2272)

Removed

  • Drop support for Go 1.16. The project currently only supports Go 1.17 and above. (#2314)

1.6.0/0.31.0 - 2022-03-28

Added

  • The project is now tested against Go 1.18 (in addition to the existing 1.16 and 1.17) (#1976)

Changed

  • Upgraded all dependencies on stable modules from go.opentelemetry.io/otel from v1.5.0 to v1.6.1. (#2134)
  • Upgraded all dependencies on metric modules from go.opentelemetry.io/otel from v0.27.0 to v0.28.0. (#1977)

Fixed

  • otelhttp: Avoid panic by adding nil check to wrappedBody.Close (#2164)

1.5.0/0.30.0/0.1.0 - 2022-03-16

Added

  • Added the go.opentelemetry.io/contrib/samplers/jaegerremote package. This package implements the Jaeger remote sampler for OpenTelemetry Go. (#936)
  • DynamoDB spans created with the go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws package now have the appropriate database attributes added for the operation being performed. These attributes are detected automatically, but it is also now possible to provide a custom function to set attributes using WithAttributeSetter. (#1582)
  • Add resource detector for GCP cloud function. (#1584)
  • Add OpenTracing baggage extraction to the OpenTracing propagator in go.opentelemetry.io/contrib/propagators/ot. (#1880)

Fixed

  • Fix the echo middleware by using SpanKind.SERVER when deciding the SpanStatus. This makes 4xx response codes to not be an error anymore. (#1848)

Removed

  • The deprecated go.opentelemetry.io/contrib/exporters/metric/datadog module is removed. (#1920)
  • The deprecated go.opentelemetry.io/contrib/exporters/metric/dogstatsd module is removed. (#1920)
  • The deprecated go.opentelemetry.io/contrib/exporters/metric/cortex module is removed. Use the go.opentelemetry.io/otel/exporters/otlp/otlpmetric exporter as a replacement to send data to a collector which can then export with its PRW exporter. (#1920)

1.4.0/0.29.0 - 2022-02-14

Added

  • Add WithClientTrace option to go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp. (#875)

Changed

  • All metric instruments from the go.opentelemetry.io/contrib/instrumentation/runtime package have been renamed from runtime.go.* to process.runtime.go.* so as to comply with OpenTelemetry semantic conventions. (#1549)

Fixed

  • Change the http-server-duration instrument in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to record milliseconds instead of microseconds. This changes fixes the code to comply with the OpenTelemetry specification. (#1414, #1537)
  • Fixed the region reported by the "go.opentelemetry.io/contrib/detectors/gcp".CloudRun detector to comply with the OpenTelemetry specification. It no longer includes the project scoped region path, instead just the region. (#1546)
  • The "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp".Transport type now correctly handles protocol switching responses. The returned response body implements the io.ReadWriteCloser interface if the underlying one does. This ensures that protocol switching requests receive a response body that they can write to. (#1329, #1628)

Deprecated

  • The go.opentelemetry.io/contrib/exporters/metric/datadog module is deprecated. (#1639)
  • The go.opentelemetry.io/contrib/exporters/metric/dogstatsd module is deprecated. (#1639)
  • The go.opentelemetry.io/contrib/exporters/metric/cortex module is deprecated. Use the go.opentelemetry.io/otel/exporters/otlp/otlpmetric exporter as a replacement to send data to a collector which can then export with its PRW exporter. (#1639)

Removed

  • Remove the MinMaxSumCount from cortex and datadog exporter. (#1554)
  • The go.opentelemetry.io/contrib/exporters/metric/dogstatsd exporter no longer support exporting histogram or exact data points. (#1639)
  • The go.opentelemetry.io/contrib/exporters/metric/datadog exporter no longer support exporting exact data points. (#1639)

1.3.0/0.28.0 - 2021-12-10

⚠️ Notice ⚠️

We have updated the project minimum supported Go version to 1.16

Changed

  • otelhttptrace.NewClientTrace now uses TracerProvider from the parent context if one exists and none was set with WithTracerProvider (#874)

Fixed

  • The "go.opentelemetry.io/contrib/detector/aws/ecs".Detector no longer errors if not running in ECS. (#1428)
  • go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux does not require instrumented HTTP handlers to call Write nor WriteHeader anymore. (#1443)

1.2.0/0.27.0 - 2021-11-15

Changed

  • Update dependency on the go.opentelemetry.io/otel project to v1.2.0.
  • go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda/xrayconfig updated to ensure access to the TracerProvider.
    • A NewTracerProvider() function is available to construct a recommended TracerProvider configuration.
    • AllRecommendedOptions() has been renamed to WithRecommendedOptions() and takes a TracerProvider as an argument.
    • EventToCarrier() and Propagator() are now WithEventToCarrier() and WithPropagator() to reflect that they return Option implementations.

1.1.1/0.26.1 - 2021-11-04

Changed

  • The Transport, Handler, and HTTP client convenience wrappers in the go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp package now use the TracerProvider from the parent context if one exists and none was explicitly set when configuring the instrumentation. (#873)
  • Semantic conventions now use go.opentelemetry.io/otel/semconv/v1.7.0". (#1385)

1.1.0/0.26.0 - 2021-10-28

Update dependency on the go.opentelemetry.io/otel project to v1.1.0.

Added

  • Add instrumentation for the github.com/aws/aws-lambda-go package. (#983)
  • Add resource detector for AWS Lambda. (#983)
  • Add WithTracerProvider option for otelhttptrace.NewClientTrace. (#1128)
  • Add optional AWS X-Ray configuration module for AWS Lambda Instrumentation. (#984)

Fixed

  • The go.opentelemetry.io/contrib/propagators/ot propagator returns the words true or false for the ot-tracer-sampled header instead of numerical 0 and 1. (#1358)

1.0.0/0.25.0 - 2021-10-06

  • Resource detectors and propagators (with the exception of go. opentelemetry.io/contrib/propagators/opencensus) are now stable and released at v1.0.0.
  • Update dependency on the go.opentelemetry.io/otel project to v1.0.1.
  • Update dependency on go.opentelemetry.io/otel/metric to v0.24.0.

0.24.0 - 2021-09-21

  • Update dependency on the go.opentelemetry.io/otel project to v1.0.0.

0.23.0 - 2021-09-08

Added

  • Add WithoutSubSpans, WithRedactedHeaders, WithoutHeaders, and WithInsecureHeaders options for otelhttptrace.NewClientTrace. (#879)

Changed

  • Split go.opentelemetry.io/contrib/propagators module into b3, jaeger, ot modules. (#985)
  • otelmongodb span attributes, name and span status now conform to specification. (#769)
  • Migrated EC2 resource detector support from root module go.opentelemetry.io/contrib/detectors/aws to a separate EC2 resource detector module go.opentelemetry.io/contrib/detectors/aws/ec2 (#1017)
  • Add cloud.provider and cloud.platform to AWS detectors. (#1043)
  • otelhttptrace.NewClientTrace now redacts known sensitive headers by default. (#879)

Fixed

  • Fix span not marked as error in otelhttp.Transport when RoundTrip fails with an error. (#950)

0.22.0 - 2021-07-26

Added

  • Add the zpages span processor. (#894)

Changed

  • The b3.B3 type has been removed. b3.New() and b3.WithInjectEncoding(encoding) are added to replace it. (#868)

Fixed

  • Fix deadlocks and race conditions in otelsarama.WrapAsyncProducer. The messaging.message_id and messaging.kafka.partition attributes are now not set if a message was not processed. (#754) (#755) (#881)
  • Fix otelsarama.WrapAsyncProducer so that the messages from the Errors channel contain the original Metadata. (#754)

0.21.0 - 2021-06-18

Fixed

  • Dockerfile based examples for otelgin and otelmacaron. (#767)

Changed

  • Supported minimum version of Go bumped from 1.14 to 1.15. (#787)
  • EKS Resource Detector now use the Kubernetes Go client to obtain the ConfigMap. (#813)

Removed

  • Remove service name from otelmongodb configuration and span attributes. (#763)

0.20.0 - 2021-04-23

Changed

  • The go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo instrumentation now accepts a WithCommandAttributeDisabled, so the caller can specify whether to opt-out of tracing the mongo command. (#712)
  • Upgrade to v0.20.0 of go.opentelemetry.io/otel. (#758)
  • The B3 and Jaeger propagators now store their debug or deferred state in the context.Context instead of the SpanContext. (#758)

0.19.0 - 2021-03-19

Changed

  • Upgrade to v0.19.0 of go.opentelemetry.io/otel.
  • Fix Span names created in HTTP Instrumentation package to conform with guidelines. (#757)

0.18.0 - 2021-03-04

Fixed

  • otelmemcache no longer sets span status to OK instead of leaving it unset. (#477)
  • Fix goroutine leak in gRPC StreamClientInterceptor. (#581)

Removed

  • Remove service name from otelmemcache configuration and span attributes. (#477)

0.17.0 - 2021-02-15

Added

  • Add ot-tracer propagator (#562)

Changed

  • Rename project default branch from master to main.

Fixed

  • Added failure message for AWS ECS resource detector for better debugging (#568)
  • Goroutine leak in gRPC StreamClientInterceptor while streamer returns an error. (#581)

0.16.0 - 2021-01-13

Fixed

  • Fix module path for AWS ECS resource detector (#517)

0.15.1 - 2020-12-14

Added

  • Add registry link check to Makefile and pre-release script. (#446)
  • A new AWS X-Ray ID Generator (#459)
  • Migrate CircleCI jobs to GitHub Actions (#476)
  • Add CodeQL GitHub Action (#506)
  • Add gosec workflow to GitHub Actions (#507)

Fixed

  • Fixes the body replacement in otelhttp to not to mutate a nil body. (#484)

0.15.0 - 2020-12-11

Added

  • A new Amazon EKS resource detector. (#465)
  • A new gcp.CloudRun detector for detecting resource from a Cloud Run instance. (#455)

0.14.0 - 2020-11-20

Added

  • otelhttp.{Get,Head,Post,PostForm} convenience wrappers for their http counterparts. (#390)
  • The AWS detector now adds the cloud zone, host image ID, host type, and host name to the returned Resource. (#410)
  • Add Amazon ECS Resource Detector for AWS X-Ray. (#466)
  • Add propagator for AWS X-Ray (#462)

Changed

  • Add semantic version to Tracer / Meter created by instrumentation packages otelsaram, otelrestful, otelmongo, otelhttp and otelhttptrace. (#412)
  • Update instrumentation guidelines about tracer / meter semantic version. (#412)
  • Replace internal tracer and meter helpers by helpers from go.opentelemetry.io/otel. (#414)
  • gRPC instrumentation sets span attribute rpc.grpc.status_code. (#453)

Fixed

  • /detectors/aws no longer fails if instance metadata is not available (e.g. not running in AWS) (#401)
  • The AWS detector now returns a partial resource and an appropriate error if it encounters an error part way through determining a Resource identity. (#410)
  • The host instrumentation unit test has been updated to not depend on the system it runs on. (#426)

0.13.0 - 2020-10-09

Added

  • A Jaeger propagator. (#375)

Changed

  • The go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc package instrumentation no longer accepts a Tracer as an argument to the interceptor function. Instead, a new WithTracerProvider option is added to configure the TracerProvider used when creating the Tracer for the instrumentation. (#373)
  • The go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron instrumentation now accepts a TracerProvider rather than a Tracer. (#374)
  • Remove go.opentelemetry.io/otel/sdk dependency from instrumentation. (#381)
  • Use httpsnoop in go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux to ensure http.ResponseWriter additional interfaces are preserved. (#388)

Fixed

  • The go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho.Middleware no longer sends duplicate errors to the global ErrorHandler. (#377, #364)
  • The import comment in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp is now correctly quoted. (#379)
  • The B3 propagator sets the sample bitmask when the sampling decision is debug. (#369)

0.12.0 - 2020-09-25

Added

  • Benchmark tests for the gRPC instrumentation. (#296)
  • Integration testing for the gRPC instrumentation. (#297)
  • Allow custom labels to be added to net/http metrics. (#306)
  • Added B3 propagator, moving it out of open.telemetry.io/otel repo. (#344)

Changed

  • Unify instrumentation about provider options for go.mongodb.org/mongo-driver, gin-gonic/gin, gorilla/mux, labstack/echo, emicklei/go-restful, bradfitz/gomemcache, Shopify/sarama, net/http and beego. (#303)
  • Update instrumentation guidelines about uniform provider options. Also, update style guide. (#303)
  • Make config struct of instrumentation unexported. (#303)
  • Instrumentations have been updated to adhere to the configuration style guide's updated recommendation to use newConfig() instead of configure(). (#336)
  • A new instrumentation naming scheme is implemented to avoid package name conflicts for instrumented packages while still remaining discoverable. (#359)
    • google.golang.org/grpc -> google.golang.org/grpc/otelgrpc
    • go.mongodb.org/mongo-driver -> go.mongodb.org/mongo-driver/mongo/otelmongo
    • net/http -> net/http/otelhttp
    • net/http/httptrace -> net/http/httptrace/otelhttptrace
    • github.com/labstack/echo -> github.com/labstack/echo/otelecho
    • github.com/bradfitz/gomemcache -> github.com/bradfitz/gomemcache/memcache/otelmemcache
    • github.com/gin-gonic/gin -> github.com/gin-gonic/gin/otelgin
    • github.com/gocql/gocql -> github.com/gocql/gocql/otelgocql
    • github.com/emicklei/go-restful -> github.com/emicklei/go-restful/otelrestful
    • github.com/Shopify/sarama -> github.com/Shopify/sarama/otelsarama
    • github.com/gorilla/mux -> github.com/gorilla/mux/otelmux
    • github.com/astaxie/beego -> github.com/astaxie/beego/otelbeego
    • gopkg.in/macaron.v1 -> gopkg.in/macaron.v1/otelmacaron
  • Rename OTelBeegoHandler to Handler in the go.opentelemetry.io/contrib/instrumentation/github.com/astaxie/beego/otelbeego package. (#359)
  • Replace WithTracer with WithTracerProvider in the go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron instrumentation. (#374)

0.11.0 - 2020-08-25

Added

  • Top-level Version() and SemVersion() functions defining the current version of the contrib package. (#225)
  • Instrumentation for the github.com/astaxie/beego package. (#200)
  • Instrumentation for the github.com/bradfitz/gomemcache package. (#204)
  • Host metrics instrumentation. (#231)
  • Cortex histogram and distribution support. (#237)
  • Cortex example project. (#238)
  • Cortex HTTP authentication. (#246)

Changed

  • Remove service name as a parameter of Sarama instrumentation. (#221)
  • Replace WithTracer with WithTracerProvider in Sarama instrumentation. (#221)
  • Switch to use common top-level module SemVersion() when creating versioned tracer in bradfitz/gomemcache. (#226)
  • Use IntegrationShouldRun in gomemcache_test. (#254)
  • Use Go 1.15 for CI builds. (#236)
  • Improved configuration for runtime instrumentation. (#224)

Fixed

  • Update dependabot configuration to include newly added bradfitz/gomemcache package. (#226)
  • Correct runtime instrumentation name. (#241)

0.10.1 - 2020-08-13

Added

  • The go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc module has been added to replace the instrumentation that had previoiusly existed in the go.opentelemetry.io/otel/instrumentation/grpctrace package. (#189)
  • Instrumentation for the stdlib net/http and net/http/httptrace packages. (#190)
  • Initial Cortex exporter. (#202, #205, #210, #211, #215)

Fixed

  • Bump google.golang.org/grpc from 1.30.0 to 1.31.0. (#166)
  • Bump go.mongodb.org/mongo-driver from 1.3.5 to 1.4.0 in /instrumentation/go.mongodb.org/mongo-driver. (#170)
  • Bump google.golang.org/grpc in /instrumentation/github.com/gin-gonic/gin. (#173)
  • Bump google.golang.org/grpc in /instrumentation/github.com/labstack/echo. (#176)
  • Bump google.golang.org/grpc from 1.30.0 to 1.31.0 in /instrumentation/github.com/Shopify/sarama. (#179)
  • Bump cloud.google.com/go from 0.61.0 to 0.63.0 in /detectors/gcp. (#181, #199)
  • Bump github.com/aws/aws-sdk-go from 1.33.15 to 1.34.1 in /detectors/aws. (#184, #192, #193, #198, #201, #203)
  • Bump github.com/golangci/golangci-lint from 1.29.0 to 1.30.0 in /tools. (#186)
  • Setup CI to run tests that require external resources (Cassandra and MongoDB). (#191)
  • Bump github.com/Shopify/sarama from 1.26.4 to 1.27.0 in /instrumentation/github.com/Shopify/sarama. (#206)

0.10.0 - 2020-07-31

This release upgrades its go.opentelemetry.io/otel dependency to v0.10.0 and includes new instrumentation for popular Kafka and Cassandra clients.

Added

  • A detector that generate resources from GCE instance. (#132)
  • A detector that generate resources from AWS instances. (#139)
  • Instrumentation for the Kafka client github.com/Shopify/sarama. (#134, #153)
  • Links and status message for mock span in the internal testing library. (#134)
  • Instrumentation for the Cassandra client github.com/gocql/gocql. (#137)
  • A detector that generate resources from GKE clusters. (#154)

Fixed

  • Bump github.com/aws/aws-sdk-go from 1.33.8 to 1.33.15 in /detectors/aws. (#155, #157, #159, #162)
  • Bump github.com/golangci/golangci-lint from 1.28.3 to 1.29.0 in /tools. (#146)

0.9.0 - 2020-07-20

This release upgrades its go.opentelemetry.io/otel dependency to v0.9.0.

Fixed

  • Bump github.com/emicklei/go-restful/v3 from 3.0.0 to 3.2.0 in /instrumentation/github.com/emicklei/go-restful. (#133)
  • Update dependabot configuration to correctly check all included packages. (#131)
  • Update RELEASING.md with correct tag.sh command. (#130)

0.8.0 - 2020-07-10

This release upgrades its go.opentelemetry.io/otel dependency to v0.8.0, includes minor fixes, and new instrumentation.

Added

  • Create this CHANGELOG.md. (#114)
  • Add emicklei/go-restful/v3 trace instrumentation. (#115)

Changed

  • Update CONTRIBUTING.md to ask for updates to CHANGELOG.md with each pull request. (#114)
  • Move all github.com package instrumentation under a github.com directory. (#118)

Fixed

  • Update README to include information about external instrumentation. To start, this includes native instrumentation found in the go-redis/redis package. (#117)
  • Bump github.com/golangci/golangci-lint from 1.27.0 to 1.28.2 in /tools. (#122, #123, #125)
  • Bump go.mongodb.org/mongo-driver from 1.3.4 to 1.3.5 in /instrumentation/go.mongodb.org/mongo-driver. (#124)

0.7.0 - 2020-06-29

This release upgrades its go.opentelemetry.io/otel dependency to v0.7.0.

Added

  • Create RELEASING.md instructions. (#101)
  • Apply transitive dependabot go.mod updates as part of a new automatic Github workflow. (#94)
  • New dependabot integration to automate package upgrades. (#61)
  • Add automatic tag generation script for release. (#60)

Changed

  • Upgrade Datadog metrics exporter to include Resource tags. (#46)
  • Added output validation to Datadog example. (#96)
  • Move Macaron package to match layout guidelines. (#92)
  • Update top-level README and instrumentation README. (#92)
  • Bump google.golang.org/grpc from 1.29.1 to 1.30.0. (#99)
  • Bump github.com/golangci/golangci-lint from 1.21.0 to 1.27.0 in /tools. (#77)
  • Bump go.mongodb.org/mongo-driver from 1.3.2 to 1.3.4 in /instrumentation/go.mongodb.org/mongo-driver. (#76)
  • Bump github.com/stretchr/testify from 1.5.1 to 1.6.1. (#74)
  • Bump gopkg.in/macaron.v1 from 1.3.5 to 1.3.9 in /instrumentation/macaron. (#68)
  • Bump github.com/gin-gonic/gin from 1.6.2 to 1.6.3 in /instrumentation/gin-gonic/gin. (#73)
  • Bump github.com/DataDog/datadog-go from 3.5.0+incompatible to 3.7.2+incompatible in /exporters/metric/datadog. (#78)
  • Replaced internal/trace/http.go helpers with api/standard helpers from otel-go repo. (#112)

0.6.1 - 2020-06-08

First official tagged release of contrib repository.

Added

  • labstack/echo trace instrumentation (#42)
  • mongodb trace instrumentation (#26)
  • Go Runtime metrics (#9)
  • gorilla/mux trace instrumentation (#19)
  • gin-gonic trace instrumentation (#15)
  • macaron trace instrumentation (#20)
  • dogstatsd metrics exporter (#10)
  • datadog metrics exporter (#22)
  • Tags to all modules in repository
  • Repository folder structure and automated build (#3)

Changes

  • Prefix support for dogstatsd (#34)
  • Update Go Runtime package to use batch observer (#44)