Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tempo perf tweaks #636

Merged
merged 10 commits into from
May 14, 2024
Merged

Tempo perf tweaks #636

merged 10 commits into from
May 14, 2024

Conversation

ceelias
Copy link
Collaborator

@ceelias ceelias commented May 1, 2024

No description provided.

@ceelias ceelias requested a review from gsmith-sas May 10, 2024 13:54
Copy link
Contributor

sh-checker report

To get the full details, please check in the job output.

shellcheck errors

'shellcheck -e SC1004' returned error 1 finding the following syntactical issues:

----------

In monitoring/bin/deploy_dashboards.sh line 6:
cd "$(dirname $BASH_SOURCE)/../.."
              ^----------^ SC2128 (warning): Expanding an array without an index only gives the first element.
              ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
cd "$(dirname "$BASH_SOURCE")/../.."


In monitoring/bin/deploy_dashboards.sh line 7:
source monitoring/bin/common.sh
       ^----------------------^ SC1091 (info): Not following: monitoring/bin/common.sh was not specified as input (see shellcheck -x).


In monitoring/bin/deploy_dashboards.sh line 35:
   for f in $dir/*.json; do
            ^--^ SC2231 (info): Quote expansions in this for loop glob to prevent wordsplitting, e.g. "$dir"/*.txt .


In monitoring/bin/deploy_dashboards.sh line 40:
       name=$(basename $f .json)
                       ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
       name=$(basename "$f" .json)


In monitoring/bin/deploy_dashboards.sh line 42:
       kubectl create cm -n $DASH_NS $name --dry-run=client --from-file $f -o yaml | kubectl apply --server-side -f -
                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                        ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
       kubectl create cm -n "$DASH_NS" "$name" --dry-run=client --from-file "$f" -o yaml | kubectl apply --server-side -f -


In monitoring/bin/deploy_dashboards.sh line 43:
       kubectl label cm -n $DASH_NS $name --overwrite grafana_dashboard=1 sas.com/monitoring-base=kube-viya-monitoring sas.com/dashboardType=$type
                           ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                    ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                             ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
       kubectl label cm -n "$DASH_NS" "$name" --overwrite grafana_dashboard=1 sas.com/monitoring-base=kube-viya-monitoring sas.com/dashboardType="$type"


In monitoring/bin/deploy_dashboards.sh line 57:
      name=$(basename $f .json)
                      ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
      name=$(basename "$f" .json)


In monitoring/bin/deploy_dashboards.sh line 58:
      kubectl create cm -n $DASH_NS $name --dry-run=client --from-file $f -o yaml | kubectl apply --server-side -f -
                           ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                    ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                       ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
      kubectl create cm -n "$DASH_NS" "$name" --dry-run=client --from-file "$f" -o yaml | kubectl apply --server-side -f -


In monitoring/bin/deploy_dashboards.sh line 59:
      kubectl label cm -n $DASH_NS $name --overwrite grafana_dashboard=1 sas.com/monitoring-base=kube-viya-monitoring sas.com/dashboardType=manual
                          ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
      kubectl label cm -n "$DASH_NS" "$name" --overwrite grafana_dashboard=1 sas.com/monitoring-base=kube-viya-monitoring sas.com/dashboardType=manual

For more information:
  https://www.shellcheck.net/wiki/SC2128 -- Expanding an array without an ind...
  https://www.shellcheck.net/wiki/SC1091 -- Not following: monitoring/bin/com...
  https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...
----------

You can address the above issues in one of three ways:
1. Manually correct the issue in the offending shell script;
2. Disable specific issues by adding the comment:
  # shellcheck disable=NNNN
above the line that contains the issue, where NNNN is the error code;
3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.



shfmt errors

'shfmt -s' returned error 1 finding the following formatting issues:

----------
--- bin/kube-include.sh.orig
+++ bin/kube-include.sh
@@ -7,8 +7,8 @@
 # Assumes bin/common.sh has been sourced
 
 if [ ! "$(which kubectl)" ]; then
-  log_error "kubectl not found on the current PATH"
-  exit 1
+	log_error "kubectl not found on the current PATH"
+	exit 1
 fi
 
 KUBE_CLIENT_VER=$(kubectl version --short | grep 'Client Version' | awk '{print $3}' 2>/dev/null)
@@ -16,10 +16,10 @@
 
 # Client version allowed to be one minor version earlier than minimum server version
 if [[ $KUBE_CLIENT_VER =~ v1.2[0-9] ]]; then
-  :
-else 
-  log_warn "Unsupported kubectl version: [$KUBE_CLIENT_VER]."
-  log_warn "This script might not work as expected. Support might not be available until kubectl is upgraded to a supported version."
+	:
+else
+	log_warn "Unsupported kubectl version: [$KUBE_CLIENT_VER]."
+	log_warn "This script might not work as expected. Support might not be available until kubectl is upgraded to a supported version."
 fi
 
 # SAS Viya 4 versions
@@ -34,10 +34,10 @@
 # 2024.04     1.26 1.28
 
 if [[ $KUBE_SERVER_VER =~ v1.2[1-9] ]]; then
-  :
-else 
-  log_warn "The detected version of Kubernetes [$KUBE_SERVER_VER] is not supported by any of the currently supported releases of SAS Viya."
-  log_warn "This script might not work as expected. Support might not be available until Kubernetes is upgraded to a supported version."
+	:
+else
+	log_warn "The detected version of Kubernetes [$KUBE_SERVER_VER] is not supported by any of the currently supported releases of SAS Viya."
+	log_warn "This script might not work as expected. Support might not be available until Kubernetes is upgraded to a supported version."
 fi
 
 export KUBE_CLIENT_VER="$KUBE_CLIENT_VER"
--- monitoring/bin/deploy_dashboards.sh.orig
+++ monitoring/bin/deploy_dashboards.sh
@@ -25,108 +25,108 @@
 DASH_BASE="${DASH_BASE:-monitoring/dashboards}"
 
 function deploy_dashboards {
-   type=$1
-   if [ -z "$2" ]; then
-     dir=$"$DASH_BASE/$type"
-   else
-     dir=$2
-   fi
-   
-   for f in $dir/*.json; do
-     # Need to check existence because if there are no matching files,
-     # f will include the wildcard character (*)
-     if [ -f "$f" ]; then
-       log_debug "Deploying dashboard from file [$f]"
-       name=$(basename $f .json)
-       
-       kubectl create cm -n $DASH_NS $name --dry-run=client --from-file $f -o yaml | kubectl apply --server-side -f -
-       kubectl label cm -n $DASH_NS $name --overwrite grafana_dashboard=1 sas.com/monitoring-base=kube-viya-monitoring sas.com/dashboardType=$type
-     fi
-   done
+	type=$1
+	if [ -z "$2" ]; then
+		dir=$"$DASH_BASE/$type"
+	else
+		dir=$2
+	fi
+
+	for f in $dir/*.json; do
+		# Need to check existence because if there are no matching files,
+		# f will include the wildcard character (*)
+		if [ -f "$f" ]; then
+			log_debug "Deploying dashboard from file [$f]"
+			name=$(basename $f .json)
+
+			kubectl create cm -n $DASH_NS $name --dry-run=client --from-file $f -o yaml | kubectl apply --server-side -f -
+			kubectl label cm -n $DASH_NS $name --overwrite grafana_dashboard=1 sas.com/monitoring-base=kube-viya-monitoring sas.com/dashboardType=$type
+		fi
+	done
 }
 
 # Single argument supported. If specified, deploy either the specified .json
 # file as a dashboard or all .json files in the specified directory
 
 if [ "$1" != "" ]; then
-  if [ -f "$1" ]; then
-    if [[ $1 =~ .+\.json ]]; then
-      # Deploy single dashboard
-      f=$1
-      log_info "Deploying Grafana dashboard [$f]"
-      name=$(basename $f .json)
-      kubectl create cm -n $DASH_NS $name --dry-run=client --from-file $f -o yaml | kubectl apply --server-side -f -
-      kubectl label cm -n $DASH_NS $name --overwrite grafana_dashboard=1 sas.com/monitoring-base=kube-viya-monitoring sas.com/dashboardType=manual
-      exit $?
-    else
-      log_error "[$1] is not a Grafana dashboard .json file"
-      exit 1
-    fi
-  fi
+	if [ -f "$1" ]; then
+		if [[ $1 =~ .+\.json ]]; then
+			# Deploy single dashboard
+			f=$1
+			log_info "Deploying Grafana dashboard [$f]"
+			name=$(basename $f .json)
+			kubectl create cm -n $DASH_NS $name --dry-run=client --from-file $f -o yaml | kubectl apply --server-side -f -
+			kubectl label cm -n $DASH_NS $name --overwrite grafana_dashboard=1 sas.com/monitoring-base=kube-viya-monitoring sas.com/dashboardType=manual
+			exit $?
+		else
+			log_error "[$1] is not a Grafana dashboard .json file"
+			exit 1
+		fi
+	fi
 
-  if [ -d "$1" ]; then
-    # Deploy specified directory of dashboards
-    log_verbose "Deploying Grafana dashboards in [$1]"
-    deploy_dashboards "manual" "$1" 
-    exit $?
-  fi
+	if [ -d "$1" ]; then
+		# Deploy specified directory of dashboards
+		log_verbose "Deploying Grafana dashboards in [$1]"
+		deploy_dashboards "manual" "$1"
+		exit $?
+	fi
 
-  log_error "The dashboard path [$1] does not exist"
-  exit 1
+	log_error "The dashboard path [$1] does not exist"
+	exit 1
 fi
 
 log_info "Deploying dashboards to the [$DASH_NS] namespace ..."
 if [ "$WELCOME_DASH" == "true" ]; then
-  log_verbose "Deploying welcome dashboards"
-  deploy_dashboards "welcome"
+	log_verbose "Deploying welcome dashboards"
+	deploy_dashboards "welcome"
 fi
 
 if [ "$KUBE_DASH" == "true" ]; then
-  log_verbose "Deploying Kubernetes cluster dashboards"
-  deploy_dashboards "kube"
+	log_verbose "Deploying Kubernetes cluster dashboards"
+	deploy_dashboards "kube"
 fi
 
 if [ "$ISTIO_DASH" == "true" ]; then
-  log_verbose "Deploying Istio dashboards"
-  deploy_dashboards "istio"
+	log_verbose "Deploying Istio dashboards"
+	deploy_dashboards "istio"
 fi
 
 if [ "$LOGGING_DASH" == "true" ]; then
-  log_verbose "Deploying Logging dashboards"
-  deploy_dashboards "logging"
+	log_verbose "Deploying Logging dashboards"
+	deploy_dashboards "logging"
 fi
 
 if [ "$VIYA_DASH" == "true" ]; then
-  log_verbose "Deploying SAS Viya dashboards"
-  deploy_dashboards "viya"
+	log_verbose "Deploying SAS Viya dashboards"
+	deploy_dashboards "viya"
 fi
 
 if [ "$VIYA_LOGS_DASH" == "true" ]; then
-  log_verbose "Deploying SAS Viya dashboards with log support"
-  deploy_dashboards "viya-logs"
+	log_verbose "Deploying SAS Viya dashboards with log support"
+	deploy_dashboards "viya-logs"
 fi
 
 if [ "$PGMONITOR_DASH" == "true" ]; then
-  log_verbose "Deploying Postgres dashboards"  
-  deploy_dashboards "pgmonitor"
+	log_verbose "Deploying Postgres dashboards"
+	deploy_dashboards "pgmonitor"
 fi
 
 if [ "$RABBITMQ_DASH" == "true" ]; then
-  log_verbose "Deploying RabbitMQ dashboards"
-  deploy_dashboards "rabbitmq"
+	log_verbose "Deploying RabbitMQ dashboards"
+	deploy_dashboards "rabbitmq"
 fi
 
 if [ "$NGINX_DASH" == "true" ]; then
-  log_verbose "Deploying NGINX dashboards"
-  deploy_dashboards "nginx"
+	log_verbose "Deploying NGINX dashboards"
+	deploy_dashboards "nginx"
 fi
 
 if [ "$USER_DASH" == "true" ]; then
-  userDashDir="$USER_DIR/monitoring/dashboards"
-  if [ -d "$userDashDir" ]; then
-    log_verbose "Deploying user dashboards from [$userDashDir]"
-    deploy_dashboards "user" "$userDashDir"
-  fi
+	userDashDir="$USER_DIR/monitoring/dashboards"
+	if [ -d "$userDashDir" ]; then
+		log_verbose "Deploying user dashboards from [$userDashDir]"
+		deploy_dashboards "user" "$userDashDir"
+	fi
 fi
 
 log_info "Deployed dashboards to the [$DASH_NS] namespace"
----------

You can reformat the above files to meet shfmt's requirements by typing:

  shfmt -s -w filename


@ceelias ceelias merged commit 5dc7163 into main May 14, 2024
1 check failed
@ceelias ceelias deleted the tempo-perf-tweaks branch May 14, 2024 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants