<commit_before># 3.0.0, in development

## Incompatible changes
* These deprecated configuration keys are no longer supported and will cause an error on startup if used in a veneur config file:
** `api_hostname` - replaced in 1.5.0 by `datadog_api_hostname`
** `key` - replaced in 1.5.0 by `datadog_api_key`
** `trace_address` - replaced in 1.7.0 by `ssf_listen_addresses`
** `trace_api_address` - replaced in 1.5.0 by `datadog_trace_api_address`
** `ssf_address` - replaced in 1.7.0 by `ssf_listen_addresses`
** `tcp_address` and `udp_address` - replaced in 1.7.0 by `statsd_listen_addresses`
* These metrics have changed names:
** Datadog, MetricExtraction, and SignalFx sinks now emit `veneur.sink.metric_flush_total_duration_ns` for metric flush duration and tag it with `sink`
** Datadog, Kafka, MetricExtraction, and SignalFx sinks now emits `sink.metrics_flushed_total` for metric flush counts and tag it with `sink`
** Datadog and LightStep sinks now emit `veneur.sink.span_flush_total_duration_ns` for span flush duration and tag it with `sink`
** Datadog, Kafka, MetricExtraction, and LightStep sinks now emit `sink.spans_flushed_total` for metric flush counts and tag it with `sink`
* Veneur's internal metrics are no longer tagged with `veneurlocalonly`. This means that percentile metrics (such as timers) will now be aggregated globally.


## Added
* `veneur-emit` now infers parent and trace IDs from the environment (using the variables `VENEUR_EMIT_TRACE_ID` and `VENEUR_EMIT_PARENT_SPAN_ID`) and sets these environment variables from its `-trace_id` and `parent_span_id` when timing commands, allowing for convenient construction of trace trees if traced programs call `veneur-emit` themselves. Thanks, [antifuchs](https://github.com/antifuchs)
* The Kafka sink for spans can now sample spans (at a rate determined by `kafka_span_sample_rate_percent`) based off of traceIDs (by default) or a tag's values (configurable via `kafka_span_sample_tag`) to consistently sample spans related to each other. Thanks, [rhwlo](https://github.com/rhwlo)!
* Improvements in SSF metrics reporting - thanks, [antifuchs](https://github.com/antifuchs)
** Function `ssf.RandomlySample` that takes an array of samples and a sample rate and randomly drops those samples, adjusting the kept samples' rates
** New variable `ssf.NamePrefix` that can be used to prepend a common name prefix to SSF sample names.
** Package `trace/metrics`, containing functions that allow reporting metrics through a trace client.
** Method `trace.(*Trace).Add`, which allows adding metrics to a trace span.

# 2.0.0, 2018-01-09

## Incompatible changes
* The semantics around `veneur-emit` command timing have changed: `-shellCommand` argument has been renamed to `-command`, and `-command` is now gone. The only way to time a command is to provide the command and its arguments as separate arguments, the method of passing in a shell-escaped string is no longer supported.

## Added
* A [SignalFx sink](https://github.com/stripe/veneur/tree/master/sinks/signalfx) has been added for flushing metrics to [SignalFx](https://signalfx.com/). Thanks, [gphat](https://github.com/gphat)!
* A [Kafka sink](https://github.com/stripe/veneur/tree/master/sinks/kafka) has been added for publishing spans or metrics. Thanks, [parabuzzle](https://github.com/parabuzzle) and [gphat](https://github.com/gphat)!
* Buffered trace clients in `github.com/stripe/veneur/trace` now have a new option to automatically flush them in a periodic interval. Thanks, [antifuchs](https://github.com/antifuchs)!
* Gauges can now be marked as `veneurglobalonly` to be globally "last write wins". Thanks [gphat](https://github.com/gphat)!
* `veneur-emit` now takes `-span_service`, `-trace_id`, `-parent_span_id`, and `-indicator` arguments. These (combined with `-ssf`) allow submitting spans for tracing when recording timing data for commands. In addition, `-timing` with `-ssf` now works, too.<commit_msg>Add changelog entry for ssf.Samples<commit_after># 3.0.0, in development

## Incompatible changes
* These deprecated configuration keys are no longer supported and will cause an error on startup if used in a veneur config file:
** `api_hostname` - replaced in 1.5.0 by `datadog_api_hostname`
** `key` - replaced in 1.5.0 by `datadog_api_key`
** `trace_address` - replaced in 1.7.0 by `ssf_listen_addresses`
** `trace_api_address` - replaced in 1.5.0 by `datadog_trace_api_address`
** `ssf_address` - replaced in 1.7.0 by `ssf_listen_addresses`
** `tcp_address` and `udp_address` - replaced in 1.7.0 by `statsd_listen_addresses`
* These metrics have changed names:
** Datadog, MetricExtraction, and SignalFx sinks now emit `veneur.sink.metric_flush_total_duration_ns` for metric flush duration and tag it with `sink`
** Datadog, Kafka, MetricExtraction, and SignalFx sinks now emits `sink.metrics_flushed_total` for metric flush counts and tag it with `sink`
** Datadog and LightStep sinks now emit `veneur.sink.span_flush_total_duration_ns` for span flush duration and tag it with `sink`
** Datadog, Kafka, MetricExtraction, and LightStep sinks now emit `sink.spans_flushed_total` for metric flush counts and tag it with `sink`
* Veneur's internal metrics are no longer tagged with `veneurlocalonly`. This means that percentile metrics (such as timers) will now be aggregated globally.


## Added
* `veneur-emit` now infers parent and trace IDs from the environment (using the variables `VENEUR_EMIT_TRACE_ID` and `VENEUR_EMIT_PARENT_SPAN_ID`) and sets these environment variables from its `-trace_id` and `parent_span_id` when timing commands, allowing for convenient construction of trace trees if traced programs call `veneur-emit` themselves. Thanks, [antifuchs](https://github.com/antifuchs)
* The Kafka sink for spans can now sample spans (at a rate determined by `kafka_span_sample_rate_percent`) based off of traceIDs (by default) or a tag's values (configurable via `kafka_span_sample_tag`) to consistently sample spans related to each other. Thanks, [rhwlo](https://github.com/rhwlo)!
* Improvements in SSF metrics reporting - thanks, [antifuchs](https://github.com/antifuchs)!
** Function `ssf.RandomlySample` that takes an array of samples and a sample rate and randomly drops those samples, adjusting the kept samples' rates
** New variable `ssf.NamePrefix` that can be used to prepend a common name prefix to SSF sample names.
** Package `trace/metrics`, containing functions that allow reporting metrics through a trace client.
** New type `ssf.Samples` holding a batch of samples which can be submitted conveniently through `trace/metrics`.
** Method `trace.(*Trace).Add`, which allows adding metrics to a trace span.

# 2.0.0, 2018-01-09

## Incompatible changes
* The semantics around `veneur-emit` command timing have changed: `-shellCommand` argument has been renamed to `-command`, and `-command` is now gone. The only way to time a command is to provide the command and its arguments as separate arguments, the method of passing in a shell-escaped string is no longer supported.

## Added
* A [SignalFx sink](https://github.com/stripe/veneur/tree/master/sinks/signalfx) has been added for flushing metrics to [SignalFx](https://signalfx.com/). Thanks, [gphat](https://github.com/gphat)!
* A [Kafka sink](https://github.com/stripe/veneur/tree/master/sinks/kafka) has been added for publishing spans or metrics. Thanks, [parabuzzle](https://github.com/parabuzzle) and [gphat](https://github.com/gphat)!
* Buffered trace clients in `github.com/stripe/veneur/trace` now have a new option to automatically flush them in a periodic interval. Thanks, [antifuchs](https://github.com/antifuchs)!
* Gauges can now be marked as `veneurglobalonly` to be globally "last write wins". Thanks [gphat](https://github.com/gphat)!
* `veneur-emit` now takes `-span_service`, `-trace_id`, `-parent_span_id`, and `-indicator` arguments. These (combined with `-ssf`) allow submitting spans for tracing when recording timing data for commands. In addition, `-timing` with `-ssf` now works, too.
{'fraction_non_alphanumeric': 0.0970548030321859, 'fraction_numerical': 0.007953274512240587, 'mean_word_length': 5.243599689681924, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 22, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6382281', 'n_tokens_mistral': 2501, 'n_tokens_neox': 2380, 'n_words': 944}