|
| 1 | +#!/bin/bash |
| 2 | +# Snapshot host and guest CPU/load during Android e2e runs. |
| 3 | +set -uo pipefail |
| 4 | + |
| 5 | +INTERVAL_SEC="${RNFB_RESOURCE_MONITOR_INTERVAL_SEC:-10}" |
| 6 | +LOG_FILE="${RNFB_RESOURCE_MONITOR_LOG:-resource-monitor-android.log}" |
| 7 | +ADB="${ANDROID_HOME:-${ANDROID_SDK_ROOT:-}}/platform-tools/adb" |
| 8 | +SERIAL="${ANDROID_SERIAL:-emulator-5554}" |
| 9 | + |
| 10 | +if [[ ! -x "$ADB" ]]; then |
| 11 | + ADB="$(command -v adb || true)" |
| 12 | +fi |
| 13 | + |
| 14 | +echo "[resource-monitor-android] interval=${INTERVAL_SEC}s log=${LOG_FILE} serial=${SERIAL} pid=$$" >>"$LOG_FILE" |
| 15 | + |
| 16 | +while true; do |
| 17 | + { |
| 18 | + echo "=== $(date -u +%Y-%m-%dT%H:%M:%SZ) ===" |
| 19 | + echo "--- host load ---" |
| 20 | + uptime |
| 21 | + echo "--- host top (pid pcpu pmem rss elapsed command) ---" |
| 22 | + ps -eo pid,pcpu,pmem,rss,etime,cmd --sort=-pcpu 2>/dev/null | head -25 || true |
| 23 | + echo "--- host e2e-related ---" |
| 24 | + ps -eo pid,pcpu,pmem,rss,etime,cmd 2>/dev/null \ |
| 25 | + | grep -E 'qemu-system|adb |node |java |gradle|Metro' \ |
| 26 | + | grep -v grep || true |
| 27 | + if [[ -n "$ADB" && -x "$ADB" ]]; then |
| 28 | + echo "--- guest props ---" |
| 29 | + "$ADB" -s "$SERIAL" shell getprop sys.boot_completed dev.bootcomplete 2>/dev/null || true |
| 30 | + echo "--- guest load ---" |
| 31 | + "$ADB" -s "$SERIAL" shell cat /proc/loadavg 2>/dev/null || true |
| 32 | + "$ADB" -s "$SERIAL" shell uptime 2>/dev/null || true |
| 33 | + echo "--- guest e2e-related ---" |
| 34 | + "$ADB" -s "$SERIAL" shell ps -A -o PID,NAME,CPU 2>/dev/null \ |
| 35 | + | grep -E 'invertase|testing' \ |
| 36 | + | grep -v grep || true |
| 37 | + fi |
| 38 | + echo "" |
| 39 | + } >>"$LOG_FILE" 2>&1 |
| 40 | + sleep "$INTERVAL_SEC" |
| 41 | +done |
0 commit comments