...
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