CHANGELOG.md

# Change Log

<!-- changelog -->

## [3.2.0](https://github.com/spandex-project/spandex/compare/3.1.0...3.2.0) (2022-10-20)

### Features:

* Add Service Version Support by @kamilkowalski in https://github.com/spandex-project/spandex/pull/122

## Bug Fixes:

* Fix interpolated string span and trace names by @gerbal in https://github.com/spandex-project/spandex/pull/136

## New Contributors:
* @gerbal made their first contribution in https://github.com/spandex-project/spandex/pull/136


## [3.1.0](https://github.com/spandex-project/spandex/compare/3.0.3...3.1.0) (2021-10-23)

* Encode logger metadata as string. by @aselder in https://github.com/spandex-project/spandex/pull/127
* Set up sponsorship links by @GregMefford in https://github.com/spandex-project/spandex/pull/132
* Guard clauses for trace and span macros by @GregMefford in https://github.com/spandex-project/spandex/pull/130
* Misc doc changes by @kianmeng in https://github.com/spandex-project/spandex/pull/128

## [3.0.3](https://github.com/spandex-project/spandex/compare/3.0.2...3.0.3) (2020-11-10)




## [3.0.2](https://github.com/spandex-project/spandex/compare/3.0.1...3.0.2) (2020-07-13)




### Bug Fixes:

* add a name to failed traces (#116)

## [3.0.1](https://github.com/spandex-project/spandex/compare/3.0.0...3.0.1) (2020-05-14)




### Bug Fixes:

* configure sender in tests

## [3.0.0](https://github.com/spandex-project/spandex/compare/2.4.4...3.0.0) (2020-05-14)
### Breaking Changes:

* allow headers to be passed into `Spandex.distributed_context/2` (#113)



## [2.4.4](https://github.com/spandex-project/spandex/compare/2.4.3...2.4.4) (2020-4-28)




### Bug Fixes:

* Set Logger.metadata when `continue_trace/3` is called as well (#111)

## [2.4.3](https://github.com/spandex-project/spandex/compare/2.4.2...2.4.3) (2020-3-25)




### Bug Fixes:

* No unmatched returns (#109)

## [2.4.2](https://github.com/spandex-project/spandex/compare/2.4.1...2.4.2) (2020-1-13)




### Bug Fixes:

* Add missing trace_id to logger metadata (#107)

## [2.4.1](https://github.com/spandex-project/spandex/compare/2.4.0...2.4.1) (2018-12-11)

### Bug Fixes:

* Resolve unknown dialyzer type error


### Bug Fixes:

* don't silence errors on span update calls (#90)

* update span on finish trace/update (#88)

## [2.4.0](https://github.com/spandex-project/spandex/compare/2.4.0...2.4.0) (2018-10-11)




### Features:

* Add(bring back) span and trace decorators


# The below is before automated changelog management

## [2.3.0]

[2.3.0]: https://github.com/spandex-project/spandex/compare/v2.3.0...v2.2.0

### Added
- `Spandex.current_context/1` and `Spandex.Tracer.current_context/1` functions,
  which get a `Spandex.SpanContext` struct based on the current context.
- `Spandex.inject_context/3` and `Spandex.Tracer.inject_context/2` functions,
  which inject a distributed tracing context into a list of HTTP headers.

### Changed
- The `Spandex.Adapter` behaviour now requires an `inject_context/3` callback,
  which encodes a `Spandex.SpanContext` as HTTP headers for distributed
  tracing.

## [2.2.0]

[2.2.0]: https://github.com/spandex-project/spandex/compare/v2.2.0...v2.1.0

### Added
- The `Spandex.Trace` struct now includes `priority` and `baggage` fields, to
  support priority sampling of distributed traces and trace-level baggage,
  respectively. More details about these concepts can be found in the
  OpenTracing documentation.  An updated version of the `spandex_datadog`
  library will enable support for this feature in terms of the
  `Spandex.Adapter` and `Sender` APIs.

### Changed
- It is no longer required that you specify the `env` option. If not specified,
  it will default to `nil`. This is useful, for example, for allowing the
  Datadog trace collector configured default to be used.
- The `Spandex.Adapter.distributed_context/2` callback now expects a
  `SpanContext` struct to be returned, rather than a `Map`.
- Similarly, the `Spandex.continue_trace` function now expects a `SpanContext`
  struct rather than a separate `trace_id` and `span_id`.
- The sender API now calls the `send_trace` function, passing in a
  `Spandex.Trace` struct, rather than passing a list of `Spandex.Span` structs.
  This means that you need to update the `spandex_datadog` to a compatible
  version.

### Deprecated
- `Spandex.continue_trace/4` is deprecated in favor of
  `Spandex.continue_trace/3`
- Similarly, `Tracer.continue_trace/4` is deprecated in favor of
  `Tracer.continue_trace/3`

## [2.1.0]
It is recommended to reread the README, to see the upgrade guide and understand the changes.

[2.1.0]: https://github.com/spandex-project/spandex/compare/v2.1.0...v1.6.1

### Added
- Massive changes, including separating adapters into their own repositories

### Changed
- Many interface changes, specifically around return values

### Removed
- Adapters now exist in their own repositories

## [1.6.1] - 2018-06-04

[1.6.1]: https://github.com/spandex-project/spandex/compare/v1.6.1...v1.6.0

### Added
- `private` key, when updating spans, for non-inheriting meta

## [1.6.0] - 2018-06-04

[1.6.0]: https://github.com/spandex-project/spandex/compare/v1.6.0...v1.5.0

### Added
- Storage strategy behaviour

### Changed
- Centralize most storage logic, requiring only the most adapter specific behaviour to be defined by the adapter.

## [1.5.0] - 2018-06-02
### Changed
- Interface for updating span metadata, and creating with metadata has been updated
- Check documentation for examples

[1.5.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.5.0...v1.4.1

## [1.4.1] - 2018-05-31
### Changed
- Resolved an issue with distributed trace header parsing

[1.4.1]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.4.0...v1.4.1

## [1.4.0] - 2018-05-29
### Added
- The tracer pattern
- Modernized configuration
- More: Please read the readme again!

[1.4.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.3.4...v1.4.0

## [1.3.4] - 2018-05-25
### Added
- Support distributed tracing via trace headers.
- Added a changelog

### Changed
- No new changes

[1.3.4]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.3.3...v1.3.4