github.com/redhat-appstudio/e2e-tests@v0.0.0-20240520140907-9709f6f59323/tests/load-tests/ci-scripts/stage/collect-results.sh (about)

     1  #!/bin/bash
     2  
     3  set -o nounset
     4  set -o errexit
     5  set -o pipefail
     6  
     7  # construct $PROMETHEUS_HOST by extracting BASE_URL from $STAGE_MEMBER_CLUSTER
     8  BASE_URL=$(echo $STAGE_MEMBER_CLUSTER | grep -oP 'https://api\.\K[^:]+')  
     9  PROMETHEUS_HOST="thanos-querier-openshift-monitoring.apps.$BASE_URL"
    10  
    11  
    12  # Login to the stage member cluster with the OCP_PROMETHEUS_TOKEN credentials
    13  TOKEN=${OCP_PROMETHEUS_TOKEN}
    14  oc login --token="$TOKEN" --server="$STAGE_MEMBER_CLUSTER"
    15  
    16  ARTIFACT_DIR=${ARTIFACT_DIR:-.artifacts}
    17  mkdir -p ${ARTIFACT_DIR}
    18  pushd "${1:-./tests/load-tests}"
    19  
    20  echo "Collecting load test results"
    21  cp -vf *.log "${ARTIFACT_DIR}"
    22  cp -vf load-tests.json "${ARTIFACT_DIR}"
    23  
    24  monitoring_collection_log=$ARTIFACT_DIR/monitoring-collection.log
    25  monitoring_collection_data=$ARTIFACT_DIR/load-tests.json
    26  
    27  ## Monitoring data
    28  echo "Setting up tool to collect monitoring data..."
    29  python3 -m venv venv
    30  set +u
    31  source venv/bin/activate
    32  set -u
    33  python3 -m pip install -U pip
    34  python3 -m pip install -e "git+https://github.com/redhat-performance/opl.git#egg=opl-rhcloud-perf-team-core&subdirectory=core"
    35  
    36  echo "Collecting monitoring data..."
    37  mstart=$(date --utc --date "$(status_data.py --status-data-file "$monitoring_collection_data" --get timestamp)" --iso-8601=seconds)
    38  mend=$(date --utc --date "$(status_data.py --status-data-file "$monitoring_collection_data" --get endTimestamp)" --iso-8601=seconds)
    39  mhost=$PROMETHEUS_HOST
    40  
    41  status_data.py \
    42      --status-data-file "$monitoring_collection_data" \
    43      --additional ./ci-scripts/stage/cluster_read_config.yaml \
    44      --monitoring-start "$mstart" \
    45      --monitoring-end "$mend" \
    46      --prometheus-host "https://$mhost" \
    47      --prometheus-port 443 \
    48      --prometheus-token "$TOKEN" \
    49      -d &>$monitoring_collection_log
    50  
    51  if [ $? -ne 0 ]; then
    52      echo "Error: status_data.py failed with exit code $?"
    53  fi    
    54  
    55  set +u
    56  deactivate
    57  set -u
    58  
    59  popd