Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ai_monitoring.enabled configuration #2443

Merged
merged 11 commits into from
Feb 21, 2024
7 changes: 7 additions & 0 deletions lib/new_relic/agent/configuration/default_source.rb
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,13 @@ def self.enforce_fallback(allowed_values: nil, fallback: nil)
- a.third.event
DESCRIPTION
},
:'ai_monitoring.enabled' => {
:default => true,
:public => true,
:type => Boolean,
:allowed_from_server => false,
:description => 'If `false`, all LLM (OpenAI) instrumentation will be disabled and no metrics, events, or spans will be sent. AI Monitoring is automatically disabled if `high_security` mode is enabled.'
},
# this is only set via server side config
:apdex_t => {
:default => 0.5,
Expand Down
1 change: 1 addition & 0 deletions lib/new_relic/agent/configuration/high_security_source.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ def initialize(local_settings)
:'elasticsearch.obfuscate_queries' => true,
:'transaction_tracer.record_redis_arguments' => false,

:'ai_monitoring.enabled' => false,
:'custom_insights_events.enabled' => false,
:'strip_exception_messages.enabled' => true
})
Expand Down
11 changes: 11 additions & 0 deletions lib/new_relic/agent/configuration/security_policy_source.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
module NewRelic
module Agent
module Configuration
# The Language Security Policy Source gives customers the ability to
# configure high security mode settings.
class SecurityPolicySource < DottedHash
class << self
def enabled?(option)
Expand Down Expand Up @@ -147,6 +149,15 @@ def change_setting(policies, option, new_value)
permitted_fn: nil
}
],
'ai_monitoring' => [
{
option: :'ai_monitoring.enabled',
supported: true,
enabled_fn: method(:enabled?),
disabled_value: false,
permitted_fn: nil
}
],
'allow_raw_exception_messages' => [
{
option: :'strip_exception_messages.enabled',
Expand Down
5 changes: 2 additions & 3 deletions lib/new_relic/agent/instrumentation/ruby_openai.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@
named :'ruby_openai'

depends_on do
# add a config check for ai_monitoring.enabled
# maybe add DT check here eventually?
defined?(OpenAI) && defined?(OpenAI::Client) &&
NewRelic::Agent.config[:'ai_monitoring.enabled'] != false &&
defined?(OpenAI) && defined?(OpenAI::Client) &&
Gem::Version.new(OpenAI::VERSION) >= Gem::Version.new('3.4.0')
end

Expand Down
Loading