...

Text file src/k8s.io/kubernetes/test/integration/logs/benchmark/get-logs.sh

Documentation: k8s.io/kubernetes/test/integration/logs/benchmark

     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
    22set -o pipefail
    23set -o errexit
    24set -x
    25
    26cd "$(dirname "$0")"
    27
    28latest_job () {
    29    gsutil cat gs://kubernetes-jenkins/logs/ci-kubernetes-kind-e2e-json-logging/latest-build.txt
    30}
    31
    32job=${1:-$(latest_job)}
    33
    34rm -rf ci-kubernetes-kind-e2e-json-logging
    35mkdir ci-kubernetes-kind-e2e-json-logging
    36gsutil -m cp -R "gs://kubernetes-jenkins/logs/ci-kubernetes-kind-e2e-json-logging/${job}/*" ci-kubernetes-kind-e2e-json-logging/
    37
    38for 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;
    46done
    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}
    52grep '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".
    57copy () {
    58    from="$1"
    59    to="$2"
    60
    61    mkdir -p "$(dirname "$to")"
    62    rm -f "$to"
    63    cp "$from" "$to"
    64}
    65copy ci-kubernetes-kind-e2e-json-logging/kind-worker-kubelet.log data/kind-worker-kubelet.log
    66copy ci-kubernetes-kind-e2e-json-logging/kube-apiserver.log data/kube-apiserver.log
    67copy ci-kubernetes-kind-e2e-json-logging/kube-controller-manager.log data/kube-controller-manager.log
    68copy ci-kubernetes-kind-e2e-json-logging/kube-scheduler.log data/kube-scheduler.log
    69
    70copy ci-kubernetes-kind-e2e-json-logging/kind-worker-kubelet.log data/v3/kind-worker-kubelet.log
    71copy ci-kubernetes-kind-e2e-json-logging/kube-apiserver.log data/v3/kube-apiserver.log
    72copy ci-kubernetes-kind-e2e-json-logging/kube-controller-manager.log data/v3/kube-controller-manager.log
    73copy ci-kubernetes-kind-e2e-json-logging/kube-scheduler.log data/v3/kube-scheduler.log

View as plain text