k8s.io/kubernetes@v1.29.3/test/integration/logs/benchmark/get-logs.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  # Copyright 2018 The Kubernetes Authors.
     4  #
     5  # Licensed under the Apache License, Version 2.0 (the "License");
     6  # you may not use this file except in compliance with the License.
     7  # You may obtain a copy of the License at
     8  #
     9  #     http://www.apache.org/licenses/LICENSE-2.0
    10  #
    11  # Unless required by applicable law or agreed to in writing, software
    12  # distributed under the License is distributed on an "AS IS" BASIS,
    13  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  # See the License for the specific language governing permissions and
    15  # limitations under the License.
    16  
    17  # Usage: get-logs.sh [<job ID>]
    18  #
    19  # Downloads the latest job output or the one with the specified ID
    20  # and prepares running benchmarks for it.
    21  
    22  set -o pipefail
    23  set -o errexit
    24  set -x
    25  
    26  cd "$(dirname "$0")"
    27  
    28  latest_job () {
    29      gsutil cat gs://kubernetes-jenkins/logs/ci-kubernetes-kind-e2e-json-logging/latest-build.txt
    30  }
    31  
    32  job=${1:-$(latest_job)}
    33  
    34  rm -rf ci-kubernetes-kind-e2e-json-logging
    35  mkdir ci-kubernetes-kind-e2e-json-logging
    36  gsutil -m cp -R "gs://kubernetes-jenkins/logs/ci-kubernetes-kind-e2e-json-logging/${job}/*" ci-kubernetes-kind-e2e-json-logging/
    37  
    38  for i in kube-apiserver kube-controller-manager kube-scheduler; do
    39      # Before (container runtime log dump (?)):
    40      #   2023-03-07T07:30:52.193301924Z stderr F {"ts":1678174252192.0676,"caller":"scheduler/schedule_one.go:81","msg":"Attempting to schedule pod","v":3,"pod":{"name":"simpletest.rc-zgd47","namespace":"gc-5422"}}
    41      # After:
    42      #   {"ts":1678174252192.0676,"caller":"scheduler/schedule_one.go:81","msg":"Attempting to schedule pod","v":3,"pod":{"name":"simpletest.rc-zgd47","namespace":"gc-5422"}}
    43      sed -e 's/^20[^ ]* stderr . //' \
    44          ci-kubernetes-kind-e2e-json-logging/artifacts/kind-control-plane/containers/$i-*.log \
    45          > ci-kubernetes-kind-e2e-json-logging/$i.log;
    46  done
    47  
    48  # Before (systemd format):
    49  #   Mar 07 07:22:05 kind-control-plane kubelet[288]: {"ts":1678173725722.4487,"caller":"flag/flags.go:64","msg":"FLAG: --address=\"0.0.0.0\"\n","v":1}
    50  # After:
    51  #   {"ts":1678173725722.4487,"caller":"flag/flags.go:64","msg":"FLAG: --address=\"0.0.0.0\"\n","v":1}
    52  grep 'kind-worker kubelet' ci-kubernetes-kind-e2e-json-logging/artifacts/kind-worker/kubelet.log | \
    53      sed -e 's;^.* kind-worker kubelet[^ ]*: ;;' > ci-kubernetes-kind-e2e-json-logging/kind-worker-kubelet.log
    54  
    55  # Create copies of the actual files, whether they already exist or not. To
    56  # clean up disk space, use "git clean -fx test/integration/logs/benchmark".
    57  copy () {
    58      from="$1"
    59      to="$2"
    60  
    61      mkdir -p "$(dirname "$to")"
    62      rm -f "$to"
    63      cp "$from" "$to"
    64  }
    65  copy ci-kubernetes-kind-e2e-json-logging/kind-worker-kubelet.log data/kind-worker-kubelet.log
    66  copy ci-kubernetes-kind-e2e-json-logging/kube-apiserver.log data/kube-apiserver.log
    67  copy ci-kubernetes-kind-e2e-json-logging/kube-controller-manager.log data/kube-controller-manager.log
    68  copy ci-kubernetes-kind-e2e-json-logging/kube-scheduler.log data/kube-scheduler.log
    69  
    70  copy ci-kubernetes-kind-e2e-json-logging/kind-worker-kubelet.log data/v3/kind-worker-kubelet.log
    71  copy ci-kubernetes-kind-e2e-json-logging/kube-apiserver.log data/v3/kube-apiserver.log
    72  copy ci-kubernetes-kind-e2e-json-logging/kube-controller-manager.log data/v3/kube-controller-manager.log
    73  copy ci-kubernetes-kind-e2e-json-logging/kube-scheduler.log data/v3/kube-scheduler.log