Skip to content

Latest commit

 

History

History
990 lines (673 loc) · 24.4 KB

CHANGELOG.asciidoc

File metadata and controls

990 lines (673 loc) · 24.4 KB
Note
Release notes are best read in our documentation at elastic.co

Ruby Agent version 4.x

[[release-notes-4.7.3] ==== 4.7.3

Fixed
  • Address a bug where if capture_headers is false, ContextBuilder will raise "undefined method 'has_key?' for nil:NilClass" {pull}1449[#1449]

[[release-notes-4.7.2] ==== 4.7.2

Fixed
  • Address machineType not being returned in GCP metadata {pull}1435[#1435]

[[release-notes-4.7.1] ==== 4.7.1

Fixed
  • Skip capturing cookie header when it’s set separately {pull}1405[#1405]

  • Changes/fixes to metadata.cloud.* fields collected for GCP {pull}1415[#1415]

  • Pin version of bigdecimal for ruby 2.4 {pull}1417[#1417]

  • Use response method on Faraday error for older versions of the library {pull}1419[#1419]

  • Fix ActionDispatchSpy#render_exception for Rails 7.1 {pull}1423[#1423]

  • Use graphql < 2.1 when Ruby < 2.7 {pull}1425[#1425]

  • Guard against various Faraday exception response formats {pull}1428[#1428]

4.7.0

Fixed
  • Handle Faraday response being nil {pull}1382[#1382]

  • Fix error with invalid %-encoding {pull}1400[#1400]

Added
  • Add keyword args for span_method helper {pull}1395[#1395]

4.6.2

Fixed
  • Fix Faraday::RackBuilder::StackLocked {pull}1371[#1371]

4.6.1

Fixed
  • Fix growing number of open file descriptors when HTTP request to APM is never sent {pull}1351[#1351]

  • Fix setting span http status code when Faraday Middleware is used {pull}1368[#1368]

  • Handle whitespace when splitting tracestate entries {pull}1353[#1353]

4.6.0

Added
  • Added transaction_name to reported error to allow grouping by transaction name {pull}1267[#1267]

  • Added ability to query server for version (useful in the future) {pull}1278[#1278]

  • Added instrumentation for https://github.com/zendesk/racecar/ Racecar Kafka library {pull}1284[#1284]

Changed
  • Expanded filtering to sanitize any key that contains the string 'auth' {pull}1266[#1266]

  • Rename log_ecs_formatting option to log_ecs_reformatting, deprecate old option name {pull}1248[#1248]

  • When the configuration value for log_path is set, override the logger to point to that path instead of using e.g. Rails logger {pull}1247[#1247]

  • Only send tracestate header for distributed tracing when it has content {pull}1277[#1277]

  • Use the hostname as the Kubernetes pod name in the Container Info metadata if the pod id is parsed from cgroup {pull}1314[#1314]

Fixed
  • Small change to Sidekiq tests to handle new configuration passing method {pull}1283[#1283]

  • Set transaction sample rate to 0 when it’s unsampled {pull}1339[#1339]

  • Don’t send unsampled transactions to APM server >= 8.0 {pull}1341[#1341]

4.5.1

Changed
Fixed
  • Fixed dependencies to allow CI to build successfully {pull}1259[#1259]

  • Fixed warnings related to TimeTask timeouts {pull}1255[#1255]

4.5.0

Changed
  • Stop collecting the field http.request.socket.encrypted {pull}1181[#1181]

Fixed
  • Fixed MongoDB spy thread safety {pull}1202[#1202]

  • Fixed span context fields for DynamoDB instrumentation {pull}1178[#1178]

  • Fixed span context fields for S3 instrumentation {pull}1179[#1179]

  • Update user agent info to match spec {pull}1182[#1182]

4.4.0

Added
  • Optional span to be ended instead of current span {pull}1039[#1039]

  • Config option log_ecs_formatting {pull}1053[#1053]

Fixed
  • Fixed detecting Linux on Alpine for CPU/MEM metrics {pull}1057[#1057]

4.3.0

Added
  • Add JVM memory metrics {pull}1040[#1040]

4.2.0

Added
  • Add support for AWS Storage Table/CosmosDB {pull}999[#999]

Fixed
  • Align HTTP span types/subtypes with spec {pull}1014[#1014]

  • Passing a full URL as a path to Net::HTTP {pull}1029[#1029]

  • Fix growing number of open file descriptors {pull}1033[#1033]

4.1.0

Added
  • Azure App Services instance metadata {pull}1007[#1007]

Changed
  • hostname is now reported split by configured_hostname and detected_hostname {pull}1009[#1009]

Fixed
  • service_node_name is now correctly reported as service.node.configured_name {pull}1009[#1009]

  • Fix JSON parsing when using yajl-ruby {pull}1012[#1012]

  • Fix SpanHelpers when methods take blocks {pull}1013[#1013]

  • Fix missing environment param when fetching from Central Config {pull}1014[#1014]

4.0.0

Upgrading

Be aware that this release changes the agent’s general approach to instrumenting third party libraries. It now uses Module#prepend over alias method chaining.

This doesn’t necessarily impact your application but it could if you are using other gems that use the old approach to patch the same method. Mixing the two approaches can lead to infinite recursion.

Removed
  • Removed support for Ruby 2.3 and JRuby 9.1 {pull}901[#901]

  • Config option active, see enabled {pull}900[#900]

  • Config option custom_key_filters, see sanitize_field_names {pull}900[#900]

  • Config option default_tags, see global_labels {pull}900[#900]

  • Config option default_labels, see global_labels {pull}900[#900]

  • Config option ignore_url_patterns, see transaction_ignore_urls {pull}900[#900]

  • Config option use_legacy_sql_parser, legacy parser no longer included {pull}900[#900]

Changed
  • Integrations (Spies) use Module#prepend over class_eval {pull}890[#890]

  • The secrets filter no longer filters based on values, see sanitize_field_names {pull}900[#900]

  • The secrets filter is aligned with other agents, see sanitize_field_names {pull}900[#900]

Added
  • Added set_service API {pull}1006[#1006]

Fixed
  • AWS S3 spy accepts symbol bucket names {pull}998[#998]

  • AWS S3 spy passing on blocks {pull}998[#998]

  • SQL scanner now recognizes CQL style comments {pull}1004[#1004]

Ruby Agent version 3.x

3.15.0 (2021-03-22)

Changed
  • Changed DynamoDB instrumentation to match spec. Span names now follow the format DynamoDB Operation [table] {pull}976[#976]

Added
  • Support for AWS S3 {pull}977[#977]

  • Support for AWS SQS {pull}978[#978]

  • Support for AWS SNS {pull}978[#978]

3.14.0 (2021-03-17)

Added
  • Expanded support for extracting ActiveRecord adapter name from notification payload when using ActiveRecord versions before 6.0 {pull}953[#953]

Fixed
  • Fixed setting outcome in Mongo spy when not traced {pull}937[#937]

  • Fixed missing container metadata in payloads {pull}942[#942]

  • Fixed outgoing HTTP request spans with no Host {pull}962[#962]

3.13.0 (2020-12-22)

Fixed
  • Handle invalid utf-8 byte sequences in sql summarizer and DB statement {pull}896[#896]

  • Expand Kubernetes metadata discovery {pull}916[#916]

  • Fix fetching cloud info on Http.rb 3.x versions {pull}919[#919]

Added
  • Support both integer and string log levels, and extra central config values {pull}902[#902]

Changed
  • Rename server_ca_cert to server_ca_cert_file {pull}908[#908]

3.12.1 (2020-11-16)

Fixed
  • capture_elasticsearch_queries no longer modifies the original query {pull}894[#894]

3.12.0 (2020-11-10)

Added
  • Add outcome to transactions and spans {pull}883[#883]

3.11.1 (2020-11-05)

Fixed
  • Fix reporting from Kubernetes based deploys to APM Server 7.9.x {pull}885[#885]

3.11.0 (2020-10-27)

Added
  • Add and read sampling info from Tracestate headers {pull}858[#858]

  • Add information about cloud hosting environment if available {pull}871[#871]

Changed
  • Align the default value of sanitize_field_names with other agents {pull}867[#867]

  • Ensure max 4 digits of precision for sample_rate as per agent spec {pull}880[#880]

Fixed
  • Fix Delayed::Job class names when used through ActiveJob {pull}869[#869]

  • Fix Delayed::Job when run without the agent running {pull}874[#874]

  • Fix Kubernetes related metadata {pull}882[#882]

3.10.1 (2020-08-26)

Fixed
  • Remove secrets from cookies in errors {pull}863[#863]

  • Silence deprecation warning when setting ignore_url_patterns to default {pull}865[#865]

3.10.0 (2020-08-26)

Added
  • Config option transaction_ignore_urls to replace ignore_url_patterns {pull}844[#844]

  • Prepend (?-i) to patterns to make them case-sensitive {pull}846[#846]

Fixed
  • Reverted {pull}839[#839]

  • Improved Kubernetes pod ID detection {pull}859[#859]

3.9.0 (2020-08-04)

Fixed
  • Scrub request body of illegal UTF-8 characters {pull}832[#832]

Added
  • Support for DynamoDB {pull}827[#827]

Fixed
  • Fix Rails Engine views' paths being reported as absolute {pull}839[#839]

  • Fix an issue when using Elasticsearch spy without a running agent {pull}830[#830]

3.8.0 (2020-06-18)

Added
  • Add the option capture_elasticsearch_queries {pull}789[#789]

  • Add option to skip patching Kernal#require {pull}812[#812]

  • Add option service_node_name {pull}820[#820]

Fixed
  • Allow underscores in hostnames in Net::HTTP spy {pull}804[#804]

  • Don’t change log level on logger object via remote config {pull}809[#809]

  • Update and fix the Opentracing bridge {pull}791[#791]

3.7.0 (2020-05-14)

Changed
  • Make config values dynamic so they can be changed via the remote config {pull}747[#747]

  • Log the updated options from central config in addition to cumulative modifications {pull}758[#758]

Fixed
  • Ensure that the log level is updated for the config’s logger when value is changed {pull}755[#755]

  • Set config false values to false, not nil {pull}761[#761]

  • Ensure that the previously running agent’s config is used in ElasticAPM.restart {pull}763[#763]

  • Handle the Resque spy’s payload class value being a String or Class and update docs {pull}768[#768]

  • Add finalizer on ProxyPipe::Write so Zlib::GzipWriter is properly closed {pull}787[#787]

Added
  • Add enabled config option, replacing active {pull}669[#669]

  • Add recording config option {pull}765[#765]

  • Add support for SuckerPunch {pull}775[#775]

  • Support forking: Detect forking and restart agent tasks and background threads {pull}783[#783]

3.6.0 (2020-03-10)

Added
  • Support for gRPC using the grpc gem (Experimental) {pull}669[#669]

  • GraphQL support (experimental) {pull}721[#721]

  • Add span.context.destination.address and span.context.destination.port when available. {pull}722[#722]

  • Add support for Resque. {pull}729[#729]

Changed
  • The new SQL parser is used by default {pull}730[#730]

3.5.0 (2020-02-12)

Added
  • Pass along tracestate headers and add prefixless Traceparent header {pull}694[#694]

  • Add sanitize_field_names to replace custom_key_filters {pull}708[#708]

  • Add rows_affected to database related spans (Sequel only for now) {pull}668[#668]

Changed
  • Rename disabled_instrumentations to disable_instrumentations {pull}695[#695]

Fixed
  • Fix thread race condition in metrics collection (JRuby) {pull}669[#669]

3.4.0 (2020-01-10)

Added
  • Add span.context.destination fields {pull}647[#647]

  • Add more precise (experimental) SQL summarizer {pull}640[#640]

  • Add support for Shoryuken (AWS SQS) {pull}674[#674]

  • Add support for Sneakers (Experimental) {pull}676[#676]

  • Add option api_key (experimental) to specify an Api key to use with the apm server {pull}655[#655]

Changed
  • Allow action dispatch spy to be disabled via disabled_instrumentations {pull}657[#657]

Fixed
  • Fix Rails Console detection when top-level Console constant defined {pull}664[#664]

  • Fix Ruby 2.7 related deprecation warnings {pull}667[#667]

  • Fix HTTP response header values not being converted to strings {pull}675[#675]

3.3.0 (2019-12-05)

Added
  • Add option disable_metrics {pull}625[#625]

Fixed
  • Make Filters thread-safe {pull}624[#624]

  • Omit passwords in outgoing urls {pull}629[#629]

  • Add missing mutex to Counter metrics {pull}636[#636]

  • Correct span context collection name for Mongo getMore commands {pull}637[#637]

3.2.0 (2019-11-19)

Added
  • Add Grape support. {pull}562[#562]

  • Add Breakdown Metrics {pull}526[#526]

Changes
  • Set remote_addr to immediate socket {pull}615[#615]

Fixed
  • Fixed pulling config from Kibana {pull}594[#594]

  • Fixed a bug where the agent would alter the original cookies hash {pull}616[#616]

3.1.0 (2019-10-21)

Added
  • Add ElasticAPM::Sinatra.start API. {pull}556[#566]

Changes
  • Log 404s from CentralConfig on debug level {pull}553[#553]

Fixed
  • Fix Central Config url path {pull}578[#578]

3.0.0 (2019-10-08)

Breaking Changes

The following changes are breaking, as they may change the way data is grouped or shown in Kibana or how your app defines agent settings.

  • Decrease stack_trace_limit to 50 {pull}515[#515]

  • Errors' message no longer include their type {pull}323[#323]

  • External request spans now have type external.http.{library} {pull}514[#514]

  • Durations are measured using monotonic time {pull}550[#550]

  • Rename set_tag to set_label {pull}543[#543]

  • Rename disabled_spies to disabled_instrumentations {pull}539[#539]

Ruby Agent version 2.x

2.12.0 (2019-10-01)

Changed
  • disabled_spies renamed to disabled_instrumentations with fallback {pull}539[#539]

  • Rename set_tag to set_label and deprecate set_tag {pull}543[#543]

  • Allow non-String label values {pull}543[#543]

Fixed
  • Handles a case where stacktrace frames are empty {pull}538[#538]

Deprecated
  • Deprecate set_tag {pull}543[#543]

2.11.0 (2019-09-23)

Added
  • Add Rails module with #start method to run Rails setup explicitly {pull}522[#522]

  • Support for log/trace correlation {pull}527[#527]

Changed
  • Split dot-separated span.type into .type, .subtype and .action (auto-upgrades dot style) {pull}531[#531]

2.10.1

Fixed
  • Fixed loading options from a config file specified by ELASTIC_APM_CONFIG_FILE {pull}518[#518]

  • Fixed an issue with CentralConfig polling not starting {pull}525[#525]

Added
  • Support for chained exceptions {pull}488[#488]

2.10.0

Added
  • Add Ruby specific metrics {pull}437[#437]

  • Support for APM Agent Configuration via Kibana {pull}464[#464]

  • Change span name format and add command to context’s db.statement for MongoSpy {pull}488[#488]

Changed
  • ElasticAPM.report and ElasticAPM.report_message return the string ID of the generated Error objects {pull}507[#507]

2.9.1 (2019-06-28)

Fixed
  • Use system CA certificate if none is specified {pull}460[#460]

2.9.0 (2019-06-25)

Security
  • NB: If you are using a custom CA cert via server_ca_cert, versions of the agent prior to 2.9.0 may not have validated the certificate of APM Server correctly.

Added
  • Add transaction.type to errors {pull}434[#434]

  • Add cookies to request.cookies {pull}448[#448]

Fixed
  • Fix support for older versions of Http.rb {pull}438[#438]

  • Strip Cookie and Set-Cookie from headers {pull}448[#448]

  • Fix disabling SSL verification {pull}449[#449]

2.8.1 (2019-05-29)

Fixed
  • Database statements are properly truncated {pull}431[#431]

2.8.0 (2019-05-20)

Added
  • The option stack_trace_limit {pull}424[#424]

Changed
  • Use standardized User-Agent {pull}419[#419]

Fixed
  • error.culprit is properly truncated to 1024 characters {pull}418[#418]

  • Force convert transaction.context.response.status_code to integer {pull}423[#423]

2.7.0 (2019-05-07)

Added
  • Added disable_start_message for those wanting complete silence on boot {pull}397[#397]

Changed
  • Attempt to strip secrets from request.env {pull}410[#410]

Fixed
  • Rewritten most of the internal transport code, streaming events to APM Server {pull}372[#372]

  • Re-added default_tags {pull}395[#395]

  • A bug in the Faraday spy when disabling the Net::HTTP spy {pull}396[#396]

  • Fix disabling the ActionDispatch spy {pull}399[#399]

2.6.1 (2019-03-28)

Fixed
  • Setting config_file via ELASTIC_APM_CONFIG_FILE {pull}363[#363]

  • Stopping the Metrics collector when it is disabled {pull}357[#357]

  • HTTP proxy settings can now be set by ENV variable {pull}367[#367]

2.6.0 (2019-03-19)

Deprecated
  • ElasticAPM.build_context now takes two keyword arguments instead of a single, normal argument. Docs.

  • The option capture_body has a string value instead of boolean. Docs.

Both APIs are backwards compatible with fallbacks and deprecation warnings, scheduled for removal in next major release.

Added
  • Configuration options to use an HTTP proxy {pull}352[#352]

Changed
  • Errors get their own contexts, perhaps leading to slightly different (but more correct) results. {pull}335[#335]

  • The agent no longer starts automatically inside Rails' console {pull}343[#343]

Fixed
  • Fixed reading available memory on older Linux kernels {pull}351[#351]

  • Don’t apply filters to original response headers {pull}354[#354]

2.5.0 (2019-03-01)

Added
  • Added the option active that will prevent the agent from starting if set to false {pull}338[#338]

Fixed
  • Fix error with capture_body and nested request bodies {pull}339[#339]

2.4.0 (2019-02-27)

Added
  • Added option to specify a custom server CA certificate {pull}315[#315]

Changed
  • NB: Default value of option capture_body flipped to false to align with other agents. Set capture_body: true in your configuration to get them back. {pull}324[#324]

Fixed
  • Reading CPU stats from /proc/stat on RHEL {pull}312[#312]

  • Change TraceContext to differentiate between id and parent_id {pull}326[#326]

  • capture_body will now force encode text bodies to utf-8 when possible {pull}332[#332]

2.3.1 (2019-01-31)

Added
  • Read container info from Docker or Kupernetes {pull}303[#303]

Fixed
  • Fix logging exceptions when booting via Railtie {pull}306[#306]

2.3.0 (2019-01-29)

Added
  • Support for Metrics {pull}276[#276]

2.2.0 (2019-01-22)

Added
  • Support for OpenTracing {pull}273[#273]

  • Add capture\_\* options {pull}279[#279]

  • Evaluate the config file as ERB {pull}288[#288]

Changed
  • Rename Traceparent object to TraceContext {pull}271[#271]

Fixed
  • An issue where Spans would not get Stacktraces attached {pull}282[#282]

  • Skip caller unless needed {pull}287[#287]

2.1.2 (2018-12-07)

Fixed
  • Fix truncation of transaction.request.url values {pull}267[#267]

  • Fix Faraday calls with url_prefix {pull}263[#263]

  • Force span.context.http.status_code to be an integer

2.1.1 (2018-12-04)

Fixed
  • Set traceparent span.id to transaction id when span is missing {pull}261[#261]

2.1.0 (2018-12-04)

Added
  • Support for Faraday {pull}249[#249]

Fixed
  • Truncate keyword fields to 1024 chars {pull}240[#240]

  • Lazy boot worker threads on first event. Fixes apps using Puma’s preload_app! {pull}239[#239]

  • Fix missing disable_send implementation {pull}257[#257]

  • Add warnings for invalid config options {pull}254[#254]

2.0.1 (2018-11-15)

Fixed
  • Stop sending span.start {pull}234[#234]

2.0.0 (2018-11-14)

Version adds support for APM Server 6.5 and needs at least that.

Added
  • Support for APM Server 6.5 (Intake v2)

  • Support for Distributed Tracing (beta)

  • Support for RUM Agent correlation (Distributed Tracing)

  • Support for HTTP.rb (Instrumentation + Distributed Tracing)

Changed
  • Custom instrumentation APIs {pull}209[#209]

  • Tag keys will convert disallowed chars to _

  • Default log level changed to info

  • Laxed version requirement of concurrent-ruby

  • Change log_level to only concern agent log

Deprecated

APIs:

  • ElasticAPM.transaction

  • ElasticAPM.span

Options:

  • compression_level

  • compression_minimum_size

  • debug_http

  • debug_transactions

  • flush_interval

  • http_open_timeout

  • http_read_timeout

  • enabled_environments

  • disable_environment_warning

Some options that used to take a certain unit for granted now expects explicit units – but will fall back to old default.

Removed
  • Support for APM Server versions prior to 6.5.

  • Support for Ruby 2.2 (eol)

Ruby Agent version 1.x

1.1.0 (2018-09-07)

Added
  • Rake task instrumentation {pull}192[#192]

  • default_tags option {pull}183[#183]

Fixed
  • Fallback from missing JRUBY_VERSION {pull}180[#180]

1.0.2 (2018-09-07)

Should’ve been a minor release — see 1.1.0

1.0.1 (2018-07-30)

Fixed
  • Fixed internal LRU cache to be threadsafe {pull}178[#178]

1.0.0 (2018-06-29)

Added
  • Added config.disable_send {pull}156[#156]

Changed
  • Set the default span_frame_min_duration to 5ms

Fixed
  • Fixed some Elasticsearch spans not validating JSON Schema {pull}157[#157]

Ruby Agent version 0.x

0.8.0 (2018-06-13)

Added
  • Added an option to disable metrics collection {pull}145[#145]

  • Filters can cancel the entire payload by returning nil {pull}148[#148]

  • Added ENV version of the logging options {pull}146[#146]

  • Added config.ignore_url_patterns {pull}151[#151]

Changed
  • Use concurrent-ruby’s TimerTask instead of Thread#sleep. Adds dependency on concurrent-ruby. {pull}141[#141]

Fixed
  • Remove newline on hostname

  • Fixed ActionMailer spans renaming their transaction

0.7.4 - 2018-06-07

Beginning of this document

Fixed
  • Fix overwriting custom logger with Rails'