Esempio n. 1
0
def install(*args, **kwargs):
    if "config" in kwargs:
        ScoutConfig().set(**kwargs["config"])
    context = AgentContext.build(config=ScoutConfig())

    if not context.config.value("monitor"):
        logger.info(
            "APM Not Launching on PID: %s - Configuration 'monitor' is not true",
            getpid(),
        )
        return False

    InstrumentManager().install_all()

    if objtrace is not None:
        objtrace.enable()

    logger.debug("APM Launching on PID: %s", getpid())
    launched = CoreAgentManager().launch()

    AppMetadata.report()
    if launched:
        AgentContext.socket().stop()

    return True
Esempio n. 2
0
def install():
    if not AgentContext.instance().config.value('monitor'):
        logger.info(
            "APM Not Launching on PID: %s - Configuration 'monitor' is not true",
            getpid())
        return False

    logger.debug('APM Launching on PID: %s', getpid())
    CoreAgentManager().launch()
    AppMetadata.report()
    AgentContext.socket().stop()
Esempio n. 3
0
def install(*args, **kwargs):
    if 'config' in kwargs:
        ScoutConfig().set(**kwargs['config'])
    context = AgentContext.build(config=ScoutConfig())

    if not context.config.value('monitor'):
        logger.info(
            "APM Not Launching on PID: %s - Configuration 'monitor' is not true",
            getpid())
        return False

    InstrumentManager().install_all()

    if HAS_OBJTRACE:
        objtrace.enable()

    logger.debug('APM Launching on PID: %s', getpid())
    CoreAgentManager().launch()

    AppMetadata.report()
    AgentContext.socket().stop()
    return True
Esempio n. 4
0
def test_report_app_metadata(send):
    AgentContext.build()

    AppMetadata().report()

    assert send.call_count == 1
    (command, ), kwargs = send.call_args
    assert kwargs == {}

    message = command.message()
    assert message["ApplicationEvent"]["event_type"] == "scout.metadata"
    # py.test is installed, since it's running tests right now.
    assert (
        "py",
        py.version) in message["ApplicationEvent"]["event_value"]["libraries"]
Esempio n. 5
0
def test_report_app_metadata_error_getting_data(send):
    AgentContext.build()

    with patch(
            "scout_apm.core.metadata.AppMetadata.get_python_packages_versions",
            side_effect=RuntimeError,
    ):
        AppMetadata().report()

    assert send.call_count == 1
    (command, ), kwargs = send.call_args
    assert kwargs == {}

    message = command.message()
    assert message["ApplicationEvent"]["event_type"] == "scout.metadata"
    assert message["ApplicationEvent"]["event_value"] == {}
Esempio n. 6
0
def test_report_app_metadata_no_pkg_resources(send):
    AgentContext.build()

    pkg_resources = sys.modules["pkg_resources"]
    sys.modules["pkg_resources"] = None
    try:
        AppMetadata().report()
    finally:
        sys.modules["pkg_resources"] = pkg_resources

    assert send.call_count == 1
    (command, ), kwargs = send.call_args
    assert kwargs == {}

    message = command.message()
    assert message["ApplicationEvent"]["event_type"] == "scout.metadata"
    assert message["ApplicationEvent"]["event_value"]["libraries"] == []