CHANGELOG

v1.27.1

Features

  • Auto-require NewRelic in use NewRelic.Tracer for convenience. #350

v1.27.0

Features

  • Include start_link in transaction tracing. #344

v1.26.0

Features

  • Increase timestamp resolution. #343

v1.25.3

Fixes

  • Handle exception asking for remote process name. #342 Thanks @benhaney!

v1.25.2

Fixes

  • Fix edge case in new Ecto table name parsing. #340

v1.25.1

Fixes

  • Fix edge case in new Ecto table name parsing. #338

v1.25.0

Features

  • Support for any Ecto adapter, including Sqlite and MSSQL. #337 Thanks @marocchino!

v1.24.5

Fixes

  • Ensure instrumentation calls don't fail if app not started. #332

v1.24.4

Tweaks

  • Support per-log message metadata. #330 Thanks @mattgibson!
  • Properly render IO list log message. #329 Thanks @mattgibson!

v1.24.3

Fixes

  • Fix Telemetry API URLs for EU customers. #326 Thanks @mattgibson!

v1.24.2

Tweaks

  • Use castore for certificates. #320 Thanks @chulkilee!

v1.24.1

Tweaks

  • Add a helper module for auto-instrumenting a Task. #318

v1.24.0

Features

  • Plug instrumentation is now fully automatic based on telemetry events!
    • Please remove deprecated calls:
      • use NewRelic.Transaction
      • NewRelic.Transaction.handle_errors/2
  • Phoenix instrumentation is now fullly automatic based on telemetry events!
  • Transaction tracking is now faster and better in the face of overload
    • Note: Transactions no longer follow processes that aren't linked (ex: Task.Supervisor.async_nolink). They can be connected manually if desired using NewRelic.connect_to_transaction.

v1.23.6

Fixes

  • Coerce Transaction Trace segment attribute values. #316

v1.23.5

Fixes

  • Inspect failed output going to log. #315

v1.23.4

Tweaks

  • Add ability to increment custom metric. #314 Thanks @edds!

v1.23.3

Tweaks

  • Add automatic attributes to the Spansaction. #312
  • Track tracer reductions. #313

v1.23.2

Tweaks

  • Minor change to External span tracer attributes. #311

v1.23.1

Tweaks

  • Improve External span names. #309

v1.23.0

Features

  • Adds support for Infinite Tracing. #307

v1.22.6

Tweaks

  • Add ERTS Version to environment values. #302

v1.22.5

Fixes

  • Handle formatting exit edge case. #300
  • Work around CPU util shutdown issue. #301

v1.22.4

Features

  • Adds a macro for defining an Other Transaction. #264

Fixes

  • Handle when a string winds up in a stacktrace list. #294
  • Properly handle boolean config option. #295
  • Prevent error when bad attribute values get in. #296

v1.22.3

Tweaks

  • Make request queuing collection configurable #292

v1.22.2

Tweaks

  • Optimize metric aggregation with :counter

v1.22.1

Fixes

  • Fix a compile time warning about :scheduler #288
  • Avoid a shutdown bug in :cpu_sup #287

v1.22.0

Features

  • Report a custom metric. #283

v1.21.2

Fixes

  • Handle encoding an unexpected nil sampled flag. #282

v1.21.1

Fixes

  • Properly handle a bad tracestate sampled / priority value. #273

v1.21.0

Features

  • Logs in context - connect Logger messages to the current Distributed Trace / Error Trace. #272

Logs in context requires Elixir 1.10 or greater.


v1.20.0

Removals:

  • Stop reporting redundant ElixirAggregate custom events for Transaction. #276
  • Stop reporting redundant ElixirAggregate custom events for FunctionTrace. #277

Alternatives for querying this data are available and noted in the PRs.

Fixes

  • Don't warn for untraced functions. #269 Thanks @barthez!
  • Spread the Samplers across the full sample cycle. #278

v1.19.7

Tweaks

  • Log the number of events seen by harvesters. #274

v1.19.6

Fixes

  • Properly handle bad values in Custom and Span Events. #267 & #268

v1.19.5

Fixes

  • Fix memory leak in long running transactions. #263 Thanks @mopp!

v1.19.4

Fixes

  • Fix tracer compilation bug. #255

v1.19.3

Features

  • Report more Error metrics based on transaction type. #251

v1.19.2

Tweaks

  • Optimize memory usage in Metric harvester. #242
  • Silence warnings in Elixir 1.10. #243

v1.19.1

Fixes

  • Fix a regression from 1.18 with Transaction error attribute. #240

v1.19.0

Features

  • Automatic Redix instrumentation based on telemetry events! #210

v1.18.5

Fixes

  • Fix one more tracer compilation bug. #239

v1.18.4

Fixes

  • Fix another interesting tracer compilation bug. #235

v1.18.3

Fixes

  • Fix another tracer compilation bug. #230

v1.18.2

Fixes

  • Fix a tracer compilation bug. #228

v1.18.1

Tweaks

  • Report additional Datastore metrics. #224

v1.18.0

Features

  • Read the Docker container ID for accurate container detection. #207 Thanks @alejandrodnm!
  • Report Ecto queries that result in an error. #202
  • Coerce and handle all custom attribute values. #205
  • Mix.Task instrumentation. #221

Tweaks

  • Make plug_cowboy an optional dep. #201
  • Use Erlang/OTP 21+ built-in SSL hostname verification. #197
  • Reduce contention on transaction storage. #209
  • Detect Ecto repo via telemetry event instead of an Erlang tracer. #214
  • Fix for Distributed Traces that start from a Browser Agent. #215
  • Fix for error reporting during Other Transactions. #220 Thanks @prabello.

v1.17.1

Fixes

  • Handle cases where another New Relic agent sends a bad tracestate header. #206

v1.17.0

Features

  • Report "Scoped" Transaction metrics:

  • Enable disabling function argument tracing globally & per-trace. #186

  • Provide an API for manually stopping an Other transaction. #198


v1.16.7

Fixes

  • Handle Ecto stream telemetry results. #192

v1.16.6

Fixes

  • Prevent boot process from getting blocked if New Relic is slow. #187

v1.16.5

Fixes

  • Fix macro compilation with Elixir 1.10. Thanks @ethangunderson! #185

v1.16.4

Tweaks

  • Remove ecto metadata catchall for better debugging.

v1.16.3

Fixes

  • Fix sampling decision default value. #177

v1.16.2

Fixes

  • Handle error queries properly. #173

v1.16.1

Fixes

  • Safely access optional Ecto config attributes. #172

v1.16.0

Features

  • Support the W3C Trace Context spec for Distributed Tracing. #169
  • Upgrade to New Relic "Protocol 17" which includes support for faster event harvest (sent every 5 seconds!). #168

v1.15.0

Features

  • Adds automatic Ecto instrumentation via telemetry. #161
  • Deprecates @trace {_, category: :datastore}. These trace annotations will now be ignored, and a warning logged during compilation.
    • Metric name change: Datastore Metrics reported now follow New Relic naming conventions, based on the table name

v1.14.0

Features

  • Minor internal refactor to enable reporting spans after they complete. #160

v1.13.1

Fixes

  • Handle rare edge cases connecting to New Relic. #156

v1.13.0

Features

  • OTP 21+ has been required for a while, and now the agent will enforce this version requirement #151
  • Truncate super large nested attribute structure #153

v1.12.0

Features


v1.11.0

Features

  • Add support for detecting if the app is running inside Kubernetes. #140

v1.10.2

Fixes

  • Protect against huge arguments blowing out memory #136

v1.10.1

Tweaks

  • Handle lists inside objects passed to add_attributes #135 Thanks @emeryotopalik!

v1.10.0

Features

  • Add an option to not track async_nolink task as part of the Transaction. #123
  • Ignore extraneous Plug errors (ie: 400s). #125

Tweaks

  • Improve formatting of ErlangError. #126

v1.9.12

Fixes

  • Prevent a rare harvester leak. #124

v1.9.11

Fixes

  • Protect against missing attribute under race condition. #120

v1.9.10

Fixes

  • Revert async_nolink change. #119

v1.9.9

Fixes

  • Fix a race condition around error reporting and async_nolink #118. Thanks @zoevkay!

v1.9.8

Fixes

  • Fix a bug causing extra spans to be reported #116

v1.9.7

Tweaks

  • Improve formatting for EXIT errors

v1.9.5

Tweaks

  • Track CPU count. #110

v1.9.4

Fixes

  • Fix a bug in PriorityQueue. #109 Thanks @jasondew!

v1.9.3

Tweaks

  • Lowers the log level for harvester output. #105

v1.9.2

Fixes

  • Fix a error that can happen if required attributes aren't captured. #103

v1.9.1

Fixes

  • Fix the transaction event name attribute. #100

v1.9.0

Features

  • Use erlang's httpc client. #70
  • Calculate and report the Total Time in a Transaction. #98

Fixes

  • Attempt to flush each harvester upon graceful shutdown. #94
  • Report External metrics based on transaction type. #99

v1.8.0

Features

  • Enable ignoring a Transaction. #93
  • Track the number of processes spawned during a Transaction. #88

Fixes

  • Handle error fetching AWS fargate metadata. #89
  • Avoid a compiler warning for some traced functions. #92
  • Prevent nested spans from duplicating attributes. #97

v1.7.0

  • Support for "Other" (non-web) Transactions. #84
  • Calculate and report Apdex metric. #87

v1.6.2

  • Improve error logging when encountering a bad DT payload

v1.6.1

  • Clear up some deprecation warnings in Elixir 1.8.0

v1.6.0

  • Add support for applying labels. #79
  • Detect Heroku dyno hostnames. #80
  • Provide better error structure for wrapped exceptions. #78

v1.5.0

  • More flexible datastore metric reporting in prep for Ecto instrumentation. #76

v1.4.0

  • Support nested Function Tracers in Transaction Traces and Distributed Tracing. #58

v1.3.2

  • Specify Plug and Cowboy versions via plug_cowboy package.

v1.3.1

  • Properly handle when no app name has been supplied.

v1.3.0

  • Enable the NewRelic logger to use the Elixir Logger #67
  • Properly assign multiple app names #66.
  • Log the collector method along with failed requests #65.

v1.2.1

  • Fix a bug that caused a subset of Span Events to be sent even though the Transaction wasn't sampled #63

v1.2.0

  • Leverage the new Erlang :logger when running OTP 21 for improved Transaction / Error connecting #55
  • Record process memory & reductions at the end of a Transaction #56

v1.1.0

  • Report as elixir. #19

APM now has first-class support for Elixir! Along with this agent upgrade, you will find the BEAM stats page availble with easy access to information about the VM, including Processes, Memory and Network. See https://github.com/newrelic/elixir_agent/wiki/BEAM-stats-page for more info.

  • Note: I haven't followed semver very well, from now on I'll be bumping the minor version for each release of new features, and reserve the patch for bugfixes.

v1.0.5

  • Report more Beam VM stats. #38, #46
  • Report process stats for top consuming processes. #41
  • Re-factor a few agent innards to enable transaction name and errors.

v1.0.4

  • Enable configuring Error collection via :error_collector_enabled #36 (Thanks @sb8244)

v1.0.3

  • Report basic CPU and Memory metrics #34
  • Report caller metrics to enable relationship generation
  • Extend the timeout waiting for data to post to New Relic
  • Add HTTPoison.request/5 instrumented function (Thanks @rhruiz)