def do_agent_status(self): """ Displays general status information about the agent, registered applications, harvest cycles etc. """ agent_instance().dump(self.stdout)
def do_agent_status(self): """ Displays general status information about the agent, registered applications, harvest cycles etc. """ agent_instance().dump(self.stdout)
def do_application_status(self, name=None): """ Displays general status information about an application, last harvest cycle, etc. """ if name is not None: applications = [agent_instance().application(name)] else: applications = agent_instance().applications.values() for application in applications: if application is not None: application.dump(self.stdout) print(file=self.stdout)
def do_dump_config(self, name=None): """ Displays global configuration or that of the named application. """ if name is None: config = agent_instance().global_settings() else: config = agent_instance().application_settings(name) if config is not None: config = flatten_settings(config) keys = sorted(config.keys()) for key in keys: print('%s = %r' % (key, config[key]), file=self.stdout)
def do_application_status(self, name=None): """ Displays general status information about an application, last harvest cycle, etc. """ if name is not None: applications = [agent_instance().application(name)] else: applications = agent_instance().applications.values() for application in applications: if application is not None: application.dump(self.stdout) print >> self.stdout
def do_dump_config(self, name=None): """ Displays global configuration or that of the named application. """ if name is None: config = agent_instance().global_settings() else: config = agent_instance().application_settings(name) if config is not None: config = flatten_settings(config) keys = sorted(config.keys()) for key in keys: print >> self.stdout, '%s = %r' % (key, config[key])
def do_applications(self): """ Displays a list of the applications. """ print(repr(sorted(agent_instance().applications.keys())), file=self.stdout)
def segment_rules(name, rules): application = agent_instance().application(name) old_rules = application._rules_engine['segment'] new_rules = SegmentCollapseEngine(rules) application._rules_engine['segment'] = new_rules yield application._rules_engine['segment'] = old_rules
def do_applications(self): """ Displays a list of the applications. """ print >> self.stdout, repr(sorted( agent_instance().applications.keys()))
def test_uninstrumented_none(): # tests a bug that returned "TypeError: 'NoneType' object is not iterable" app_name = 'Python Agent Test (uninstrumented 3)' agent = agent_instance() agent.activate_application(app_name) application = agent._applications.get(app_name) application.harvest()
def _nr_wrap_api_call_(wrapped, instance, args, kwargs): settings = global_settings() # agent is not initialized / enabled if (settings.debug.disable_api_supportability_metrics or not Agent._instance or not settings.enabled): return wrapped(*args, **kwargs) transaction = current_transaction() if transaction: m = transaction._transaction_metrics.get(metric_name, 0) transaction._transaction_metrics[metric_name] = m + 1 else: agent = agent_instance() app_name = settings.app_name agent.record_custom_metric(app_name, metric_name, {'count': 1}) return wrapped(*args, **kwargs)
def _synthetics_limit_test(num_requests, num_events, num_transactions): # Force harvest to clear stats instance = agent_instance() application = list(instance.applications.values())[0] application.harvest() # Send requests headers = _make_synthetics_header() for i in range(num_requests): response = target_application.get("/", headers=headers) # Check that we've saved the right number events and traces stats = application._stats_engine assert len(stats.synthetics_events) == num_events assert len(stats.synthetics_transactions) == num_transactions
def global_settings(request, monkeypatch): ini_contents = request.getfixturevalue("ini") monkeypatch.delenv("NEW_RELIC_HOST", raising=False) monkeypatch.delenv("NEW_RELIC_LICENSE_KEY", raising=False) if "env" in request.fixturenames: env = request.getfixturevalue("env") for k, v in env.items(): monkeypatch.setenv(k, v) import newrelic.config as config # pylint: disable=R0402 import newrelic.core.config as core_config # pylint: disable=R0402 original = {} for attr in dir(core_config): original[attr] = getattr(core_config, attr) agent = agent_instance() original_agent_config = agent._config reload(core_config) reload(config) with tempfile.NamedTemporaryFile() as ini_file: ini_file.write(ini_contents) ini_file.seek(0) config.initialize(ini_file.name) agent._config = core_config.global_settings() yield core_config.global_settings monkeypatch.undo() for attr_name, attr_value in original.items(): setattr(core_config, attr_name, attr_value) agent._config = original_agent_config reload(config)
def global_settings(request, monkeypatch): ini_contents = request.getfixturevalue('ini') monkeypatch.delenv('NEW_RELIC_HOST', raising=False) monkeypatch.delenv('NEW_RELIC_LICENSE_KEY', raising=False) if 'env' in request.funcargnames: env = request.getfixturevalue('env') for k, v in env.items(): monkeypatch.setenv(k, v) import newrelic.config as config import newrelic.core.config as core_config original = {} for attr in dir(core_config): original[attr] = getattr(core_config, attr) agent = agent_instance() original_agent_config = agent._config reload(core_config) reload(config) ini_file = tempfile.NamedTemporaryFile() ini_file.write(ini_contents) ini_file.seek(0) config.initialize(ini_file.name) agent._config = core_config.global_settings() yield core_config.global_settings monkeypatch.undo() for attr_name, attr_value in original.items(): setattr(core_config, attr_name, attr_value) agent._config = original_agent_config reload(config)