Unreleased =============================== ### SDK Breaking Changes ### SDK Enhancements ### SDK Bugs Release v1.8.1 (2023-02-27) ================================ ### SDK Enhancements ### SDK Bugs * Fix Sample App Solution Stack and GO version [#PR 388](https://github.com/aws/aws-xray-sdk-go/pull/388) * Fix AWS GO SDK Vulnerability [#PR 390](https://github.com/aws/aws-xray-sdk-go/pull/390) * Fix mutex deadlock [#PR 393](https://github.com/aws/aws-xray-sdk-go/pull/393) * Update golang.org/x/text to fix CVEs [#PR 400](https://github.com/aws/aws-xray-sdk-go/pull/400) * Fix CVEs in integration tests [#PR 401](https://github.com/aws/aws-xray-sdk-go/pull/401) * Update sample app dependencies [#PR 405](https://github.com/aws/aws-xray-sdk-go/pull/405) * Update golang.org/x/net to fix CVEs [#PR 406](https://github.com/aws/aws-xray-sdk-go/pull/406) Release v1.8.0 (2022-11-08) ================================ ### SDK Enhancements * Oversampling Mitigation [#PR 381](https://github.com/aws/aws-xray-sdk-go/pull/381) * Changed Missing Context default strategy to log [#PR 382](https://github.com/aws/aws-xray-sdk-go/pull/382) ### SDK Bugs Release v1.7.1 (2022-09-14) ================================ ### SDK Enhancements ### SDK Bugs * Replace error type assertions with errors.As in DefaultFormattingStrategy [#PR 353](https://github.com/aws/aws-xray-sdk-go/pull/353) * Dummy segments don't need cancel go routine [#PR 365](https://github.com/aws/aws-xray-sdk-go/pull/365) * Strip X-Amz-Security-Token from SQL URIs [#PR 367](https://github.com/aws/aws-xray-sdk-go/pull/367) * Upgrading Go Version [#PR 379](https://github.com/aws/aws-xray-sdk-go/pull/379) Release v1.7.0 (2022-04-11) ================================ ### SDK Enhancements * Removes deprecated method checks in SQL instrumentation [PR #341](https://github.com/aws/aws-xray-sdk-go/pull/341) * Migrates private API named httpTrace public [PR #329](https://github.com/aws/aws-xray-sdk-go/pull/329) * Migrates to use `grpc.SetHeader` API [PR #312](https://github.com/aws/aws-xray-sdk-go/pull/312) * Removes support for go dep [PR #343](https://github.com/aws/aws-xray-sdk-go/pull/343) * Replace error type assertions with `errors.As` [PR #353](https://github.com/aws/aws-xray-sdk-go/pull/353) ### SDK Bugs * Fixes segment leaking issues in `BeginSegmentWithSampling` API [PR #327](https://github.com/aws/aws-xray-sdk-go/pull/327) * Updates github.com/valyala/fasthttp dependency to v1.34.0 to fix security vulnerability issue [PR #351](https://github.com/aws/aws-xray-sdk-go/pull/351) Release v1.6.0 (2021-07-07) ================================ ### SDK Enhancements * AWS SDK v2 instrumentation support [PR #309](https://github.com/aws/aws-xray-sdk-go/pull/309) ### SDK Bugs * Fixed appending to existing gRPC context [PR #308](https://github.com/aws/aws-xray-sdk-go/pull/308) * Fixed memory leak issue on fasthttp handler [PR #311](https://github.com/aws/aws-xray-sdk-go/pull/311) * Fixed panic issue when segment is not present [PR #316](https://github.com/aws/aws-xray-sdk-go/pull/316) Release v1.5.0 (2021-06-10) ================================ ### SDK Enhancements * gRPC instrumentation support [PR #292](https://github.com/aws/aws-xray-sdk-go/pull/292) * fasthttp handler instrumentation support [PR #299](https://github.com/aws/aws-xray-sdk-go/pull/299) ### SDK Bugs * Fix `AWS_XRAY_TRACING_NAME` environment variable issue when directly calling `xray.BeginSegment` API [PR #304](https://github.com/aws/aws-xray-sdk-go/pull/304) Release v1.4.0 (2021-05-03) ================================ ### SDK Enhancements * No op trace id generation support for unsampled traces [PR #293](https://github.com/aws/aws-xray-sdk-go/pull/293) * Refactored `httpTrace` method [PR #296](https://github.com/aws/aws-xray-sdk-go/pull/296) ### SDK Bugs * Fix panic issue when call `AddError` function [PR #288](https://github.com/aws/aws-xray-sdk-go/pull/288) Release v1.3.0 (2021-02-02) ================================ ### SDK Enhancements * Added SQL tracing name support (for database with same name) [PR #273](https://github.com/aws/aws-xray-sdk-go/pull/273) * Added automated release workflow [PR #274](https://github.com/aws/aws-xray-sdk-go/pull/274) Release v1.2.0 (2021-01-05) ================================ ### SDK Enhancements * Refresh messages are `debug` to reduce log noise. [PR #241](https://github.com/aws/aws-xray-sdk-go/pull/241) * Added `runtime` and `runtime_version` keys [PR #245](https://github.com/aws/aws-xray-sdk-go/pull/245) * `BeginSegment` API honors sampling rule based on `ServiceName` [PR #244](https://github.com/aws/aws-xray-sdk-go/pull/244) * Added `IGNORE_ERROR` mode for context missing strategy [PR #253](https://github.com/aws/aws-xray-sdk-go/pull/253) * Added X-Ray Go SDK sample apps and added Github workflow to publish sample app image tags to ECR [PR #261](https://github.com/aws/aws-xray-sdk-go/pull/261) * Added Github workflow for end to end Integration Test for X-Ray Go SDK [PR #270](https://github.com/aws/aws-xray-sdk-go/pull/270) ### SDK Bugs * Fix typo (Metdata -> Metadata) [PR #239](https://github.com/aws/aws-xray-sdk-go/pull/239) * Remove Deprecated `set-env` and `add-path` syntax from workflow [PR #267](https://github.com/aws/aws-xray-sdk-go/pull/267) * Fix elastic beanstalk solution stack name [PR #271](https://github.com/aws/aws-xray-sdk-go/pull/271) Release v1.1.0 (2020-06-08) ================================ ### SDK Breaking Changes * Added Disabling XRay SDK Support. [PR #219](https://github.com/aws/aws-xray-sdk-go/pull/219) ### SDK Enhancements * Added IMDSv2 Support. [PR #235](https://github.com/aws/aws-xray-sdk-go/pull/235) * Sanitize query string from url in http client segment [PR #228](https://github.com/aws/aws-xray-sdk-go/pull/228) Release v1.0.1 (2020-04-28) ================================ ### SDK Enhancements * Random value generator only used by SDK. [PR #183](https://github.com/aws/aws-xray-sdk-go/pull/183) ### SDK Bugs * Fixed deadlock issue for non reported segments. [PR #223](https://github.com/aws/aws-xray-sdk-go/pull/223) Release v1.0.0 (2020-04-16) ================================ ### SDK Breaking Changes * Removed plugins under "github.com/aws/aws-xray-sdk-go/plugins/“ directory and removed deprecated xray.SQL API (sql.go file). [PR #215](https://github.com/aws/aws-xray-sdk-go/pull/215) * Added Dummy flag support to reduce operation of non sampled traces. [PR #194](https://github.com/aws/aws-xray-sdk-go/pull/194) ### SDK Enhancements * Benchmark improvements to remove error logs. [PR #210](https://github.com/aws/aws-xray-sdk-go/pull/210) * Updates golangci-lint version. [PR #213](https://github.com/aws/aws-xray-sdk-go/pull/213) * Benchmark instructions to run benchamrk suite, cpu profiling and memory profiling of SDK. [PR #214](https://github.com/aws/aws-xray-sdk-go/pull/214) ### SDK Bugs * Fixes bug in reservoir test cases. [PR #212](https://github.com/aws/aws-xray-sdk-go/pull/212) Release v1.0.0-rc.15 (2020-03-11) ================================ ### SDK Breaking Changes * Custom SQL driver. [PR #169](https://github.com/aws/aws-xray-sdk-go/pull/169) ### SDK Enhancements * Efficient implementation of wildcard matching. [PR #149](https://github.com/aws/aws-xray-sdk-go/pull/149) * Whitelisting Sagemaker runtime InvokeEndpoint operation. [PR #154](https://github.com/aws/aws-xray-sdk-go/pull/154/files) * Added context missing environment variable support. [PR #161](https://github.com/aws/aws-xray-sdk-go/pull/161) * Added stale bot support for Github Repository. [PR #162](https://github.com/aws/aws-xray-sdk-go/pull/162) * Upgrade golangci-lint version. [PR #166](https://github.com/aws/aws-xray-sdk-go/pull/166) * Fixes golint warnings. [PR #170](https://github.com/aws/aws-xray-sdk-go/pull/170) * Added support for Git Actions. [PR #172](https://github.com/aws/aws-xray-sdk-go/pull/172) * README update for presign request. [PR #176](https://github.com/aws/aws-xray-sdk-go/pull/176) * Fix data races in testing. [PR #177](https://github.com/aws/aws-xray-sdk-go/pull/177) * Fixes sampling issue in calling BeginSegment API directly. [PR #187](https://github.com/aws/aws-xray-sdk-go/pull/187) * Captures error type from panic. [PR #195](https://github.com/aws/aws-xray-sdk-go/pull/195) * Upgrades Sqlmock to 1.4.1 . [PR #190](https://github.com/aws/aws-xray-sdk-go/pull/190) * Fixes data race in default sampling strategy. [PR #196](https://github.com/aws/aws-xray-sdk-go/pull/196) * Added benchmark support to data races and performance issues. [PR #197](https://github.com/aws/aws-xray-sdk-go/pull/197) * Upgrades Travis CI to add Go 1.14 . [PR #198](https://github.com/aws/aws-xray-sdk-go/pull/198) * Fixes data race in emitter. [PR #200](https://github.com/aws/aws-xray-sdk-go/pull/200) ### SDK Bugs * Fixes break logging tools. [PR #185](https://github.com/aws/aws-xray-sdk-go/pull/185) * Fixes memory leak in BeginSegment method. [PR #156](https://github.com/aws/aws-xray-sdk-go/pull/156) Release v1.0.0-rc.14 (2019-09-03) ================================ ### SDK Enhancements * Fixing bi-directional locking for parent-child segments and modifying lock on Segment struct to RWMutex [PR #140](https://github.com/aws/aws-xray-sdk-go/pull/140) Release v1.0.0-rc.13 (2019-07-18) ================================ ### SDK New Features * Support capturing AWS SNS Topic ARN. [PR #132](https://github.com/aws/aws-xray-sdk-go/pull/132) * Add `xray.AWSSession` to install handlers on session. [PR #97](https://github.com/aws/aws-xray-sdk-go/pull/97) ### SDK Breaking Changes * Remove Glide(dependency management tool) support. [PR #129](https://github.com/aws/aws-xray-sdk-go/pull/129) ### SDK Enhancements * Update README regarding Lambda use cases. [PR #128](https://github.com/aws/aws-xray-sdk-go/pull/128) * Fix a bug to close in_progress response subsegment. [PR #125](https://github.com/aws/aws-xray-sdk-go/pull/125) * Move mutex to private member for sampling. [PR #123](https://github.com/aws/aws-xray-sdk-go/pull/123) * Fix format after running Lints. [PR #117](https://github.com/aws/aws-xray-sdk-go/pull/117) Release v1.0.0-rc.12 (2019-06-11) ================================ ### SDK Breaking Changes * Updates `sampling.NewProxy` method to be private. [PR #93](https://github.com/aws/aws-xray-sdk-go/pull/93) ### SDK Enhancements * Fixes a bug for failing to close in-progress `connect` subsegments in some cases. [PR #102](https://github.com/aws/aws-xray-sdk-go/pull/102) * Fixes data races condition. [PR #103](https://github.com/aws/aws-xray-sdk-go/pull/103) * Fixes a nil pointer issue. [PR #109](https://github.com/aws/aws-xray-sdk-go/pull/109) * Refactors `newGlobalConfig` to avoid initializing log. [PR #96](https://github.com/aws/aws-xray-sdk-go/pull/96) * Adds `-race` to travis test script. [PR #104](https://github.com/aws/aws-xray-sdk-go/pull/104) * Fixes data race condition for parallel http client request. [PR #100](https://github.com/aws/aws-xray-sdk-go/pull/100) * Adds support for `tx.Prepare`. [PR #95](https://github.com/aws/aws-xray-sdk-go/pull/95) * Fixes race bugs with `ClientTrace`. [PR #115](https://github.com/aws/aws-xray-sdk-go/pull/115) * Updates lock abstraction for `defaultLogger`. [PR #113](https://github.com/aws/aws-xray-sdk-go/pull/113) * Adds `golangci-lint` into travis CI. [PR #114](https://github.com/aws/aws-xray-sdk-go/pull/114) * Fixes uncaught error on SQL url parse. [PR #121](https://github.com/aws/aws-xray-sdk-go/pull/121) Release v1.0.0-rc.11 (2019-03-15) ================================ ### SDK Breaking Changes * Dropped support for go versions 1.7 and 1.8. Users will need to use go version 1.9 or higher. [PR #91](https://github.com/aws/aws-xray-sdk-go/pull/91) ### SDK Enhancements * Adds support for go [dep](https://github.com/golang/dep) and go modules. [PR #90](https://github.com/aws/aws-xray-sdk-go/pull/90) * Fixes a bug where optional interfaces on `http.ResponseWriter` (e.g. `http.Flusher`, `http.CloseNotifier`, etc.) were not visible due to how the xray Handler wrapped the `http.ResponseWriter`. [PR #91](https://github.com/aws/aws-xray-sdk-go/pull/91) Release v1.0.0-rc.10 (2019-02-19) ================================ ### SDK Breaking Changes * `xray.Config{}` fields `LogLevel` and `LogFormat` are deprecated and no longer have any effect. Users will have to reset their min log level if they weren't using the default of "info" using `xray.SetLogger()` . The log levels `Trace` and `Tracef` are replaced by `Debug` and `Debugf` respectively. [PR #82](https://github.com/aws/aws-xray-sdk-go/pull/82), [Issue #15](https://github.com/aws/aws-xray-sdk-go/issues/15) ### SDK Enhancements * Don't try to udp dial emitter at package load time [PR #83](https://github.com/aws/aws-xray-sdk-go/pull/83) * Explicit plugin initialization [PR #81](https://github.com/aws/aws-xray-sdk-go/pull/81) Release v1.0.0-rc.9 (2018-12-20) ================================ ### SDK Enhancements * Fix http2 datarace in unit test: [PR #72](https://github.com/aws/aws-xray-sdk-go/pull/72) * Support passing customized emitter: [PR #76](https://github.com/aws/aws-xray-sdk-go/pull/76) * Apply Context Missing Strategy if segment is nil in SQL * Remove error message content check for certain daemon config unit tests Release v1.0.0-rc.8 (2018-10-04) ================================ ### SDK Bugs * Adding hostname support for daemon address parsing ### SDK Enhancements * Increase unit test coverage Release v1.0.0-rc.7 (2018-09-27) ================================ ### SDK Breaking changes * `samplingRule` is an exported type : PR[#67](https://github.com/aws/aws-xray-sdk-go/pull/67) * Renamed `SamplingRule` structure to `Properties` Release v1.0.0-rc.6 (2018-09-25) ================================ ### SDK Breaking changes * The default sampling strategy is `CentralizedStrategy` that launches background tasks to poll sampling rules from X-Ray backend. See the new default sampling strategy in more details here: [Link](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-go-configuration.html#xray-sdk-go-configuration-sampling) * The `ShouldTrace()` function in the `Strategy` interface now takes a `Request` structure for sampling rule matching and returns `Decision` object * Updated `aws-sdk-go` version in `glide.yaml` file to `1.15.23`. * Modified `Rule` structure : It contains `samplingRule` nested structure ### SDK Enhancements * Environment variable `AWS_XRAY_DAEMON_ADDRESS` now takes an additional notation in `tcp:127.0.0.1:2000 udp:127.0.0.2:2001` to set TCP and UDP destination separately. By default it assumes a X-Ray daemon listening to both UDP and TCP traffic on 127.0.0.1:2000. * Update DefaultSamplingRules.json file. i.e. service_name has been replaced to host and version changed to 2. SDK still supports v1 JSON file. * Fix httptrace datarace : [PR #62](https://github.com/aws/aws-xray-sdk-go/pull/62) * Fix sub-segment datarace : [PR #61](https://github.com/aws/aws-xray-sdk-go/pull/61) Release v1.0.0-rc.5 (2018-05-15) ================================ ### SDK Bugs * Traced aws client allows requests to proceed without segments presenting. ### SDK Enhancements * Increase unit test coverage. * Update `aws-sdk-go` version in `glide.yaml` file. Release v1.0.0-rc.4 (2018-04-13) ================================ ### SDK Bugs * Flush subsegments generated inside Lambda function. ### SDK Enhancements * Capture extra request id with header `x-amz-id-2` for AWS S3 API calls. Release v1.0.0-rc.3 (2018-04-04) ================================ ### SDK Enhancements * Fix data race condition in BeginSubsegment and Close methods. * Remove port number in client_ip when X-Forwarded_For is empty. * Fix version issue for httptrace library. Release v1.0.0-rc.2 (2018-03-22) ================================ ### SDK Enhancements * Assign subsegment a defined name when HTTP interceptor creates an invalid subsegment due to URL is not available. * Fetch ContextMissingStrategy from segment if its subsegment is nil. Release v1.0.0-rc.1 (2018-01-15) ================================ ### SDK Feature Updates * Support for tracing within AWS Lambda functions. * Support method to inject configuration setting in `Context`. * Support send subsegments method. ### SDK Enhancements * Set origin value for each plugin and also show service name in segment document plugin section. * Remove attempt number when AWS SDK retries. * Make HTTP requests if segment doesn't exist. * Add Go SDK Version, Go Compiler and X-Ray SDK information in segment document. * Set remote value when AWS request fails due to a service-side error. Release v0.9.4 (2017-09-08) =========================== ### SDK Enhancements * Refactor code to fit Go Coding Standard. * Update README. * `aws-xray-sdk-go/xray`: make HTTP request if segment cannot be found.