General Issues
The Helm chart deploying Servo automatically applies the labels optimize.appdynamics.com/optimizer
and optimize.appdynamics.com/target-workload
to the following objects:
- Servo deployment/pod
- service account
- role
- role binding
- config map
- secret
You can view these labels with most kubectl get
commands.
optimize.appdynamics.com/optimizer
optimize.appdynamics.com/target-workload
CODE
See Optimization Fails for troubleshooting examples that use these labels.
Optimization Fails
Discovery Stage FailsLink to Discovery Stage Fails or Optimization Is Not Making Progress (in >1 hr)
The Servo cannot start or cannot connect to the target workload. With the name and namespace of the workload being optimized, use the following commands to determine the status of the Servo agent deployment and pod.
kubectl describe deployment -l optimize.appdynamics.com/target-workload=[NAME OF WORKLOAD] -n [NAMESPACE OF WORKLOAD]
kubectl describe pod -l optimize.appdynamics.com/target-workload=[NAME OF WORKLOAD] -n [NAMESPACE OF WORKLOAD]
CODE
If the Servo is running or ready, check the Servo logs:
kubectl logs -c servo -l optimize.appdynamics.com/target-workload=[NAME OF WORKLOAD] -n [NAMESPACE OF WORKLOAD] --tail -1
CODE
If you are unable to resolve the issue, contact customer support with the descriptor, logs, or both.
Tuning instances may have reduced stability or performance in some tests; that's normal, and ARO learns from these experiments and will keep away from these configurations.
If you are required to stop the tuning instances, there are a few options:
- Stop the optimization using the UI (press Pause or Stop in step 3). It may take a few minutes for the action to take place. Servo will stop and also stop the tuning instance.
- If either of the following statements is true, you can manually delete the tuning pod and Servo with the commands below.
- Stopping the optimization does not deprovision Servo
Run this command to get the Servo deployment name that will be in the format servox-[32-digit hexadecimal ID]:
kubectl get deployment -l optimize.appdynamics.com/target-workload=[NAME OF WORKLOAD] -n [NAMESPACE OF WORKLOAD]
CODE
Delete the Servo deployment with the servox-[32-digit hexadecimal ID]
returned from the last command. You can manually stop the tuning instance if needed, but only after the Servo deployment is deleted.
kubectl delete deployment servox-[32-digit hexadecimal ID] -n [NAMESPACE OF WORKLOAD]
CODE
Stopping the tuning instance using the kubectl
command above will prevent the optimization from completing. If you want to resume the optimization, you may have to restart it.
Do not kill the tuning pod (at least not before deleting the Servo deployment or the Servo pod), as Servo will restart them.