Skip to content

Commit cb651c4

Browse files
Merge pull request #888 from nr-swilloughby/Release_3.31.0
Release 3.31.0
2 parents 487703c + 27d840e commit cb651c4

File tree

80 files changed

+3662
-68
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+3662
-68
lines changed

.github/workflows/ci.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ jobs:
6666
- dirs: v3/integrations/nrmongo
6767
- dirs: v3/integrations/nrgraphqlgo,v3/integrations/nrgraphqlgo/example
6868
- dirs: v3/integrations/nrmssql
69+
- dirs: v3/integrations/nropenai
6970
steps:
7071
- name: Checkout Code
7172
uses: actions/checkout@v2

CHANGELOG.md

+47-5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
1+
## 3.31.0
2+
### Added
3+
* Integration packages to instrument AI model invocations (see below).
4+
* New package nrawsbedrock v1.0.0 introduced to instrument calls to Amazon Bedrock Runtime Client API `InvokeModel` and `InvokeModelWithResponseStream` calls. Also provides a simple one-step method which invokes stream invocations and harvests the response stream data for you.
5+
* New package nropenai v1.0.0 introduced to instrument calls to OpenAI using `NRCreateChatCompletion`, `NRCreateChatCompletionStream`, and `NRCreateEmbedding` calls.
6+
* Dockerfile in the `examples/server` sample app which facilitates the easy creation of a containerized ready-to-run sample app for situations where that makes testing easier.
7+
8+
### Fixed
9+
* `.Ignore` was not ignoring transaction. Fixes [Issue #845](https://github.com/newrelic/go-agent/issues/845).
10+
* Added nil error check in wrap function. Fixes [Issue #862](https://github.com/newrelic/go-agent/issues/862).
11+
* `WrapBackgroundCore` background logger was not sending logs to New Relic. Fixes [Issue #859](https://github.com/newrelic/go-agent/issues/859).
12+
* Corrected pgx5 integration example which caused a race condition. Thanks to @WillAbides! Fixes [Issue #855](https://github.com/newrelic/go-agent/issues/855).
13+
* Updated third-party library versions due to reported security or other supportability issues:
14+
* `github.com/jackc/pgx/v5` to 5.5.4 in `nrpgx5` integration
15+
* `google.gopang.org/protobuf` to 1.33.0 in `nrmicro` and `nrgrpc` integrations
16+
* `github.com/jackc/pgx/v4` to 4.18.2 in `nrpgx` integration
17+
18+
### AI Monitoring Configuration
19+
New configuration options are available specific to AI monitoring. These settings include:
20+
* `AIMonitoring.Enabled`, configured via `ConfigAIMonitoring.Enabled(`_bool_`)` [default `false`]
21+
* `AIMonitoring.Streaming.Enabled`, configured via `ConfigAIMonitoringStreamingEnabled(`_bool_`)` [default `true`]
22+
* `AIMonitoring.Content.Enabled`, configured via `ConfigAIMonitoringContentEnabled(`_bool_`)` [default `true`]
23+
24+
### AI Monitoring Public API Methods
25+
Two new AI monitoring related public API methods have been added, as methods of the `newrelic.Application` value returned by `newrelic.NewApplication`:
26+
* [app.RecordLLMFeedbackEvent](https://pkg.go.dev/github.com/newrelic/go-agent/v3/newrelic#Application.RecordLLMFeedbackEvent)
27+
* [app.SetLLMTokenCountCallback](https://pkg.go.dev/github.com/newrelic/go-agent/v3/newrelic#Application.SetLLMTokenCountCallback)
28+
29+
### AI Monitoring
30+
New Relic AI monitoring is the industry’s first APM solution that provides end-to-end visibility for AI Large Language Model (LLM) applications. It enables end-to-end visibility into the key components of an AI LLM application. With AI monitoring, users can monitor, alert, and debug AI-powered applications for reliability, latency, performance, security and cost. AI monitoring also enables AI/LLM specific insights (metrics, events, logs and traces) which can easily integrate to build advanced guardrails for enterprise security, privacy and compliance.
31+
32+
AI monitoring offers custom-built insights and tracing for the complete lifecycle of an LLM’s prompts and responses, from raw user input to repaired/polished responses. AI monitoring provides built-in integrations with popular LLMs and components of the AI development stack. This release provides instrumentation for [OpenAI](https://pkg.go.dev/github.com/newrelic/go-agent/v3/integrations/nropenai)
33+
and [Bedrock](https://pkg.go.dev/github.com/newrelic/go-agent/v3/integrations/nrawsbedrock).
34+
35+
When AI monitoring is enabled with `ConfigAIMonitoringEnabled(true)`, the agent will now capture AI LLM related data. This data will be visible under a new APM tab called AI Responses. See our [AI Monitoring documentation](https://docs.newrelic.com/docs/ai-monitoring/intro-to-ai-monitoring/) for more details.
36+
37+
### Support statement
38+
We use the latest version of the Go language. At minimum, you should be using no version of Go older than what is supported by the Go team themselves.
39+
See the [Go agent EOL Policy](https://docs.newrelic.com/docs/apm/agents/go-agent/get-started/go-agent-eol-policy/) for details about supported versions of the Go agent and third-party components.
40+
41+
42+
143
## 3.30.0
244
### Added
345
* Updated the depencency on nrsecurityagent to 1.0.0.
@@ -8,7 +50,7 @@
850

951
### Support statement
1052
We use the latest version of the Go language. At minimum, you should be using no version of Go older than what is supported by the Go team themselves.
11-
See the [Go agent EOL Policy](/docs/apm/agents/go-agent/get-started/go-agent-eol-policy) for details about supported versions of the Go agent and third-party components.
53+
See the [Go agent EOL Policy](https://docs.newrelic.com/docs/apm/agents/go-agent/get-started/go-agent-eol-policy/) for details about supported versions of the Go agent and third-party components.
1254

1355
## 3.29.1
1456
### Added
@@ -19,7 +61,7 @@ See the [Go agent EOL Policy](/docs/apm/agents/go-agent/get-started/go-agent-eol
1961

2062
### Support statement
2163
We use the latest version of the Go language. At minimum, you should be using no version of Go older than what is supported by the Go team themselves.
22-
See the [Go agent EOL Policy](/docs/apm/agents/go-agent/get-started/go-agent-eol-policy) for details about supported versions of the Go agent and third-party components.
64+
See the [Go agent EOL Policy](https://docs.newrelic.com/docs/apm/agents/go-agent/get-started/go-agent-eol-policy/) for details about supported versions of the Go agent and third-party components.
2365

2466
## 3.29.0
2567
### Added
@@ -31,7 +73,7 @@ See the [Go agent EOL Policy](/docs/apm/agents/go-agent/get-started/go-agent-eol
3173

3274
### Support statement
3375
We use the latest version of the Go language. At minimum, you should be using no version of Go older than what is supported by the Go team themselves.
34-
See the [Go agent EOL Policy](/docs/apm/agents/go-agent/get-started/go-agent-eol-policy) for details about supported versions of the Go agent and third-party components.
76+
See the [Go agent EOL Policy](https://docs.newrelic.com/docs/apm/agents/go-agent/get-started/go-agent-eol-policy/) for details about supported versions of the Go agent and third-party components.
3577

3678
## 3.28.1
3779
### Added
@@ -43,7 +85,7 @@ Fixed an issue where `nil` `Request.Body` could be set to non-`nil` `request.Bod
4385
More Secure URL Redaction
4486
### Support statement
4587
We use the latest version of the Go language. At minimum, you should be using no version of Go older than what is supported by the Go team themselves.
46-
See the [Go agent EOL Policy](/docs/apm/agents/go-agent/get-started/go-agent-eol-policy) for details about supported versions of the Go agent and third-party components.
88+
See the [Go agent EOL Policy](https://docs.newrelic.com/docs/apm/agents/go-agent/get-started/go-agent-eol-policy/) for details about supported versions of the Go agent and third-party components.
4789

4890
## 3.28.0
4991
### Fixed
@@ -57,7 +99,7 @@ See the [Go agent EOL Policy](/docs/apm/agents/go-agent/get-started/go-agent-eol
5799

58100
We use the latest version of the Go language. At minimum, you should be using no version of Go older than what is supported by the Go team themselves.
59101

60-
See the [Go agent EOL Policy](/docs/apm/agents/go-agent/get-started/go-agent-eol-policy) for details about supported versions of the Go agent and third-party components.
102+
See the [Go agent EOL Policy](https://docs.newrelic.com/docs/apm/agents/go-agent/get-started/go-agent-eol-policy/) for details about supported versions of the Go agent and third-party components.
61103

62104

63105
## 3.27.0

v3/examples/server/Dockerfile

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# If it is more convenient for you to run an instrumented test server in a Docker
2+
# container, you can use this Dockerfile to build an image for that purpose.
3+
#
4+
# To build this image, have this Dockerfile in the current directory and run:
5+
# docker build -t go-agent-test .
6+
#
7+
# To run a test, run the following:
8+
# docker run -e NEW_RELIC_LICENSE_KEY="YOUR_KEY_HERE" -p 127.0.0.1:8000:8000 go-agent-test
9+
# then drive traffic to it on localhost port 8000
10+
#
11+
# This running application will write debugging logs showing all interaction
12+
# with the collector on its standard output.
13+
#
14+
# The following HTTP endpoints can be accessed on port 8000 to invoke different
15+
# instrumented server features:
16+
# /
17+
# /add_attribute
18+
# /add_span_attribute
19+
# /async
20+
# /background
21+
# /background_log
22+
# /browser
23+
# /custom_event
24+
# /custommetric
25+
# /external
26+
# /ignore
27+
# /log
28+
# /message
29+
# /mysql
30+
# /notice_error
31+
# /notice_error_with_attributes
32+
# /notice_expected_error
33+
# /roundtripper
34+
# /segments
35+
# /set_name
36+
# /version
37+
#
38+
FROM golang:1.22
39+
MAINTAINER Steve Willoughby <[email protected]>
40+
WORKDIR /go
41+
RUN git clone https://github.com/newrelic/go-agent
42+
WORKDIR /go/go-agent/v3
43+
RUN go mod tidy
44+
WORKDIR /go/go-agent/v3/examples/server
45+
RUN go mod tidy
46+
RUN go build
47+
EXPOSE 8000
48+
CMD ["/go/go-agent/v3/examples/server/server"]
49+
#
50+
# END
51+
#

v3/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.19
44

55
require (
66
github.com/golang/protobuf v1.5.3
7+
golang.org/x/exp v0.0.0-20240318143956-a85f2c67cd81
78
google.golang.org/grpc v1.56.3
89
)
910

v3/integrations/logcontext-v2/logWriter/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/newrelic/go-agent/v3/integrations/logcontext-v2/logWriter
33
go 1.19
44

55
require (
6-
github.com/newrelic/go-agent/v3 v3.30.0
6+
github.com/newrelic/go-agent/v3 v3.31.0
77
github.com/newrelic/go-agent/v3/integrations/logcontext-v2/nrwriter v1.0.0
88
)
99

v3/integrations/logcontext-v2/nrlogrus/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/newrelic/go-agent/v3/integrations/logcontext-v2/nrlogrus
33
go 1.19
44

55
require (
6-
github.com/newrelic/go-agent/v3 v3.30.0
6+
github.com/newrelic/go-agent/v3 v3.31.0
77
github.com/sirupsen/logrus v1.8.1
88
)
99

v3/integrations/logcontext-v2/nrslog/go.mod

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module github.com/newrelic/go-agent/v3/integrations/logcontext-v2/nrslog
22

33
go 1.19
44

5-
require github.com/newrelic/go-agent/v3 v3.30.0
5+
require github.com/newrelic/go-agent/v3 v3.31.0
6+
67

78
replace github.com/newrelic/go-agent/v3 => ../../..

v3/integrations/logcontext-v2/nrwriter/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module github.com/newrelic/go-agent/v3/integrations/logcontext-v2/nrwriter
22

33
go 1.19
44

5-
require github.com/newrelic/go-agent/v3 v3.30.0
5+
require github.com/newrelic/go-agent/v3 v3.31.0
66

77

88
replace github.com/newrelic/go-agent/v3 => ../../..

v3/integrations/logcontext-v2/nrzap/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/newrelic/go-agent/v3/integrations/logcontext-v2/nrzap
33
go 1.19
44

55
require (
6-
github.com/newrelic/go-agent/v3 v3.30.0
6+
github.com/newrelic/go-agent/v3 v3.31.0
77
go.uber.org/zap v1.24.0
88
)
99

v3/integrations/logcontext-v2/nrzerolog/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/newrelic/go-agent/v3/integrations/logcontext-v2/nrzerolog
33
go 1.19
44

55
require (
6-
github.com/newrelic/go-agent/v3 v3.30.0
6+
github.com/newrelic/go-agent/v3 v3.31.0
77
github.com/rs/zerolog v1.26.1
88
)
99

v3/integrations/logcontext-v2/zerologWriter/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/newrelic/go-agent/v3/integrations/logcontext-v2/zerologWriter
33
go 1.19
44

55
require (
6-
github.com/newrelic/go-agent/v3 v3.30.0
6+
github.com/newrelic/go-agent/v3 v3.31.0
77
github.com/newrelic/go-agent/v3/integrations/logcontext-v2/nrwriter v1.0.0
88
github.com/rs/zerolog v1.27.0
99
)

v3/integrations/logcontext/nrlogrusplugin/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module github.com/newrelic/go-agent/v3/integrations/logcontext/nrlogrusplugin
55
go 1.19
66

77
require (
8-
github.com/newrelic/go-agent/v3 v3.30.0
8+
github.com/newrelic/go-agent/v3 v3.31.0
99
// v1.4.0 is required for for the log.WithContext.
1010
github.com/sirupsen/logrus v1.4.0
1111
)

v3/integrations/nramqp/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/newrelic/go-agent/v3/integrations/nramqp
33
go 1.19
44

55
require (
6-
github.com/newrelic/go-agent/v3 v3.30.0
6+
github.com/newrelic/go-agent/v3 v3.31.0
77
github.com/rabbitmq/amqp091-go v1.9.0
88
)
99
replace github.com/newrelic/go-agent/v3 => ../..

0 commit comments

Comments
 (0)