Exemplo n.º 1
0
def main():
    try:
        from clog.loggers import ScribeLogger
    except ImportError:
        print("Scribe logger unavailable, exiting.", file=sys.stderr)
        sys.exit(1)
    scribe_logger = ScribeLogger(host="169.254.255.254", port=1463, retry_interval=5)
    cluster = load_system_paasta_config().get_cluster()
    client = get_docker_client()
    for (
        timestamp,
        hostname,
        container_id,
        process_name,
    ) in capture_oom_events_from_stdin():
        try:
            docker_inspect = client.inspect_container(resource_id=container_id)
        except (APIError):
            continue
        env_vars = get_container_env_as_dict(docker_inspect)
        service = env_vars.get("PAASTA_SERVICE", "unknown")
        instance = env_vars.get("PAASTA_INSTANCE", "unknown")
        log_line = LogLine(
            timestamp=timestamp,
            hostname=hostname,
            container_id=container_id,
            cluster=cluster,
            service=service,
            instance=instance,
            process_name=process_name,
        )
        log_to_scribe(scribe_logger, log_line)
        log_to_paasta(log_line)
        send_sfx_event(service, instance, cluster)
Exemplo n.º 2
0
def check_create_default_loggers():
    """Set up global loggers, if necessary."""
    global loggers

    # important to specifically compare to None, since empty list means something different
    if loggers is None:

        # initialize list of loggers
        loggers = []

        # possibly add logger that writes to local files (for dev)
        if config.clog_enable_file_logging:
            if config.log_dir is None:
                raise ValueError(
                    'log_dir not set; set it or disable clog_enable_file_logging'
                )
            loggers.append(FileLogger())

        # possibly add logger that writes to scribe
        if not config.scribe_disable:
            logger = ScribeLogger(config.scribe_host, config.scribe_port,
                                  config.scribe_retry_interval)
            loggers.append(logger)

        if config.clog_enable_stdout_logging:
            loggers.append(StdoutLogger())

        if not loggers and not config.is_logging_configured:
            raise LoggingNotConfiguredError
Exemplo n.º 3
0
    def setup_sandbox(self):
        self.scribe_logdir = tempfile.mkdtemp()
        self.stream = 'foo'
        self.scribe_port = find_open_port()
        self.log_path = get_log_path(self.scribe_logdir, self.stream)

        self.logger = ScribeLogger('localhost',
                                   self.scribe_port,
                                   retry_interval=10,
                                   report_status=mock.Mock())

        with scribed_sandbox(self.scribe_port, self.scribe_logdir):
            yield
        shutil.rmtree(self.scribe_logdir)
Exemplo n.º 4
0
def main():
    scribe_logger = ScribeLogger(host='169.254.255.254', port=1463, retry_interval=5)
    cluster = load_system_paasta_config().get_cluster()
    client = get_docker_client()
    for timestamp, hostname, container_id, process_name in capture_oom_events_from_stdin():
        try:
            docker_inspect = client.inspect_container(resource_id=container_id)
        except (APIError):
            continue
        env_vars = get_container_env_as_dict(docker_inspect)
        service = env_vars.get('PAASTA_SERVICE', 'unknown')
        instance = env_vars.get('PAASTA_INSTANCE', 'unknown')
        log_line = LogLine(
            timestamp=timestamp,
            hostname=hostname,
            container_id=container_id,
            cluster=cluster,
            service=service,
            instance=instance,
            process_name=process_name,
        )
        log_to_scribe(scribe_logger, log_line)
        log_to_paasta(log_line)
        send_sfx_event(service, instance, cluster)
Exemplo n.º 5
0
 def __init__(self, host, port, stream, retry_interval=0):
     logging.Handler.__init__(self)
     self.stream = stream
     self.logger = ScribeLogger(host, port, retry_interval)
     if use_zipkin():
         self.logger = ZipkinTracing(self.logger)
Exemplo n.º 6
0
 def __init__(self, host, port, stream, retry_interval=0):
     logging.Handler.__init__(self)
     self.stream = stream
     self.logger = ScribeLogger(host, port, retry_interval)
Exemplo n.º 7
0
 def construct_scribelogger_with_mocked_tsocket(self, timeout=None):
     with mock.patch('thriftpy.transport.socket.TSocket', spec=TSocket):
         if timeout is None:
             yield ScribeLogger(HOST, PORT, RETRY)
         else:
             yield ScribeLogger(HOST, PORT, RETRY, logging_timeout=timeout)