Class: NewRelic::Agent::Configuration::ServerSource
- Inherits:
-
DottedHash
- Object
- Hash
- DottedHash
- NewRelic::Agent::Configuration::ServerSource
- Defined in:
- lib/new_relic/agent/configuration/server_source.rb
Instance Method Summary collapse
-
#apply_feature_gates(server_config, existing_config) ⇒ Object
These feature gates are not intended to be bullet-proof, but only to avoid the overhead of collecting and transmitting additional data if the user’s subscription level precludes its use.
-
#initialize(hash, existing_config = {}) ⇒ ServerSource
constructor
A new instance of ServerSource.
- #ungated_value(key, existing_config) ⇒ Object
Methods inherited from DottedHash
Constructor Details
#initialize(hash, existing_config = {}) ⇒ ServerSource
Returns a new instance of ServerSource.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/new_relic/agent/configuration/server_source.rb', line 9 def initialize(hash, existing_config={}) if hash['agent_config'] if hash['agent_config']['transaction_tracer.transaction_threshold'] =~ /apdex_f/i # when value is "apdex_f" remove the config and defer to default hash['agent_config'].delete('transaction_tracer.transaction_threshold') end super(hash.delete('agent_config')) end if hash['web_transactions_apdex'] self[:web_transactions_apdex] = hash.delete('web_transactions_apdex') end apply_feature_gates(hash, existing_config) super(hash) end |
Instance Method Details
#apply_feature_gates(server_config, existing_config) ⇒ Object
These feature gates are not intended to be bullet-proof, but only to avoid the overhead of collecting and transmitting additional data if the user’s subscription level precludes its use. The server is the ultimate authority regarding subscription levels, so we expect it to do the real enforcement there.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/new_relic/agent/configuration/server_source.rb', line 31 def apply_feature_gates(server_config, existing_config) gated_features = { :'transaction_tracer.enabled' => 'collect_traces', :'slow_sql.enabled' => 'collect_traces', :'error_collector.enabled' => 'collect_errors', :'request_sampler.enabled' => 'collect_analytics_events' } gated_features.each do |feature, gate_key| if server_config.has_key?(gate_key) allowed_by_server = server_config[gate_key] requested_value = ungated_value(feature, existing_config) effective_value = (allowed_by_server && requested_value) server_config[feature] = effective_value end end end |
#ungated_value(key, existing_config) ⇒ Object
48 49 50 |
# File 'lib/new_relic/agent/configuration/server_source.rb', line 48 def ungated_value(key, existing_config) self.has_key?(key) ? self[key] : existing_config[key] end |