Exemple #1
0
async def handle_container_logs(k8s_manager: AsyncK8SManager, pod: V1Pod,
                                container_name: str, **params) -> List[V1Log]:
    resp = None
    try:
        resp = await k8s_manager.k8s_api.read_namespaced_pod_log(
            pod.metadata.name,
            k8s_manager.namespace,
            container=container_name,
            timestamps=True,
            **params,
        )
    except ApiException:
        pass
    if not resp:
        return []

    logs = []
    for log_line in resp.split("\n"):
        if log_line:
            logs.append(
                V1Log.process_log_line(
                    value=log_line,
                    node=pod.spec.node_name,
                    pod=pod.metadata.name,
                    container=container_name,
                ))
    return logs
Exemple #2
0
    async def handle_container_logs():
        resp = None
        try:
            resp = await k8s_manager.k8s_api.read_namespaced_pod_log(
                pod.metadata.name,
                k8s_manager.namespace,
                container=container.name,
                timestamps=True,
                **params,
            )
        except ApiException:
            pass
        if not resp:
            return None, None

        for log_line in resp.split("\n"):
            if log_line:
                logs.append(
                    V1Log.process_log_line(
                        value=log_line,
                        node=pod.spec.node_name,
                        pod=pod.metadata.name,
                        container=container.name,
                    )
                )
Exemple #3
0
def process_log_line(log_line: str):

    if not isinstance(log_line, str):
        log_line = log_line.decode("utf-8")

    return V1Log.process_log_line(value=log_line.strip(),
                                  node=None,
                                  pod=None,
                                  container=None)
Exemple #4
0
 def format_record(self, record):
     message = ""
     if record.msg:
         message = record.msg % record.args
     return V1Log.process_log_line(
         value=message,
         timestamp=to_datetime(record.created),
         node=self._node,
         pod=self._pod,
         container=self._container,
     )