Skip to content

Releases: newrelic/go-easy-instrumentation

gRPC Fix

12 Feb 21:18
39c000b
Compare
Choose a tag to compare
gRPC Fix Pre-release
Pre-release

What's New

  • gRPC automation has improved detection for methods that handle grpc.ServerStream objects as parameters and will propagate tracing downstream.

What's Changed

Full Changelog: 0.5.1...0.5.2

Minor Patch

08 Jan 21:01
7ef1c60
Compare
Choose a tag to compare
Minor Patch Pre-release
Pre-release

Whats New

Debug printing is no longer enabled by default, and must be enabled by passing --debug. We also improved our tests, and fixed a bug with http.Handle vs http.HandleFunc not being handled correctly.

What's Changed

Full Changelog: 0.5.0...0.5.1

0.5.0

18 Dec 17:32
96cb97c
Compare
Choose a tag to compare
0.5.0 Pre-release
Pre-release

CLI Overhaul 💻

The CLI and user interface has been overhauled and replaced with a much more polished and complete user interface built in Cobra.

What's New

The ability to override application name and the variable name that stores the go agent have been removed. The command line is now only for inputting commands related to the usage of the go-easy-instrumentation tool. We configure the go agent to consume environment variables to get its configuration by default, and this is the way we recommend injecting configuration options for maximum flexibility and granularity.

The new CLI is simpler, more robust, and much clearer about its usage.

For community members considering contributing to this library, we have greatly enriched documentation by providing readme's and improving godoc quality.

What's Changed

Full Changelog: 0.4.1...0.5.0

Gin Fixes

10 Dec 17:24
a82ce75
Compare
Choose a tag to compare
Gin Fixes Pre-release
Pre-release

What's New

There was a bug where we failed to import nrgin in some packages where it was a dependency, causing instrumentation generation to fail. This has been patched. We also bumped internal dependencies to get the latest security updates and features.

What's Changed

Full Changelog: 0.4.0...0.4.1

Gin Support 🚀

06 Dec 17:49
2c95530
Compare
Choose a tag to compare
Gin Support 🚀 Pre-release
Pre-release

Whats New

Go Easy Instrumentation can now automatically detect when you have gin installed in your application, and add instrumentation to it using the nrgin package.

What's Changed

Full Changelog: 0.3.4...0.4.0

Capture Inlined Errors

03 Dec 15:29
6a63832
Compare
Choose a tag to compare
Pre-release

Whats New

Complex or nested if statements that contain an error check are now detected correctly. For example statements with initialization clauses like the one below were being ignored:

if err := stream.Send(&sampleapp.Message{Text: "Hello DoStreamStream"}); err != nil {
	panic(err)
}

We will now recognize that an error is being checked for not nil, and add a line to capture it inside the if statement.

What's Changed

Full Changelog: 0.3.3...0.3.4

Bug Fixes and Coverage

18 Nov 18:39
ece5e2c
Compare
Choose a tag to compare
Pre-release

Whats New

  • fixed an issue where a nil map caused a panic
  • fixed an issue where segments were sometimes started when then should not have been
  • 40% more unit test coverage for new code

What's Changed

Full Changelog: 0.3.2...0.3.3

Context Aware Tracing Logic

15 Nov 19:01
8bb9a36
Compare
Choose a tag to compare
Pre-release

Whats New

Tracing is now context aware. This tool can recognize objects that contain new relic tracing, and intelligently pass tracing between functions depending on their arguments, and parameters. It will always follow these rules:

  1. Go Easy Instrumentation will never add needless scope to function calls, so if a function gets its transaction from a complex/rich object, we will not pass that rich object to downstream function calls that do not already contain that object as an input. Instead, a transaction will be passed.
  2. If an called function contains an object that we know can carry a transaction, this tool will opt to pass it on that object rather than adding more parameters to your function declaration.
  3. This tool will always aim to be correct, and if it is unable to determine with certainty that an object contains a transaction, it will add one defensively. You will be alerted with a comment header in these cases.

So far, this supports:

  • context.Context
  • newrelic.Transaction

More to come.

Commits

Full Changelog: 0.3.1...0.3.2

Tracing Improvement

28 Oct 17:43
34fa352
Compare
Choose a tag to compare
Tracing Improvement Pre-release
Pre-release

What's Changed

Customers were reporting that some functions were not being traced or segmented. These changes ensure that tracing gets propagated to every function declared in an application.

Commits

Improved Error Capture

18 Oct 17:58
7d69a2e
Compare
Choose a tag to compare
Pre-release

Whats Changed

Errors will be captured inside the if blocks that check them whenever possible. In cases where we are unsure if an error is urgent or not, we will leave a comment alerting the user to review the change we suggest. If an error is not checked, the user will be alerted to handle it and capture it if necessary.

To simplify the process of screening the changes we make, enable debug printing with the -debug flag. This will log information to console that can help you find exact locations in the code where we would like you to review the suggested changes.

Commits

Full Changelog: 0.2.0...0.3.0