Troubleshooting AutoTrace webhook
If you notice that the Instana AutoTrace webhook is not working on your Kubernetes resources, troubleshoot the issues by using the following steps:
Verifying that the Instana AutoTrace webhook is receiving requests
To verify that the Instana AutoTrace webhook is receiving requests, check the logs of the instana-autotrace-webhook
pod by running the following command:
kubectl logs -l app.kubernetes.io/name=instana-autotrace-webhook -n instana-autotrace-webhook
In a functioning installation, you can see the following logs:
14:41:37.590 INFO |- [AdmissionReview 48556a1a-7d55-497b-aa9c-23634b089cd1] Applied transformation DefaultDeploymentTransformation to the Deployment 'test-netcore-glibc/test-apps'
14:41:37.588 INFO |- [AdmissionReview 1d5877cf-7153-4a95-9bfb-de0af8351195] Applied transformation DefaultDeploymentTransformation to the Deployment 'test-nodejs-12/test-apps'
If you do not see such logs, your Kubernetes setup might have a problem. Continue troubleshooting by checking the following sections.
Checking the kube-apiserver logs
Check the logs of your kube-apiserver
. These logs report on whether the Instana AutoTrace webhook is being started and provide information about the outcome of the execution.
If you identify that the AutoTrace webhook is not working as expected, use the following troubleshooting steps for the commonly observed issues.
Troubleshooting common issues
No network connectivity between kube-apiserver and the instana-autotrace-webhook pods
The most common issue is that the kube-apiserver
cannot reach the worker nodes that are running the instana-autotrace-webhook
pods. This issue might be caused by the security policies, which prevents the Instana AutoTrace
webhook from working.
To resolve this issue, modify your network settings so that kube-apiserver
can access the instana-autotrace-webhook
pods. Review your network security policies to make sure that kubeapi-server
can initiate
connections and receive responses from instana-autotrace-webhook
. Instana cannot provide direct guidance for resolving this issue because the solutions vary based on your policy and enforcement mechanisms.
kube-apiserver and the instana-autotrace-webhook pods cannot negotiate a TLS session
Sometimes, the cryptography restrictions (in terms of which algorithms can be used for TLS) prevent kube-apiserver
from negotiating a TLS session with the instana-autotrace-webhook
pod.
To resolve this issue, open a Support ticket, and inform IBM support about which cryptography algorithms your clusters support.
Insufficient memory
The AutoTrace webhook instruments applications by using LD_PRELOAD
environment variable to load technology libraries before any other libraries. This approach uses additional memory, as the preloaded libraries are loaded into
the application's process. As a result, the container memory limit might need to be increased to accommodate for it.
If the pod does not have enough memory to load the instrumentation libraries, the pod can enter a restart loop with the following errors:
OOMKilled
CrashLoopBackOff
To fix the restart loop, increase the memory limit in your deployment to account for the extra memory needed for the instrumentation of the application. You can increase the memory limit by updating the spec.template.spec.containers[x].resources.limits.memory
field. Specifically, reference the following table for individual tracer memory overhead.
Technology | Additional memory required |
---|---|
Ruby | 25 MB |
Netcore | 100 MB |
NGINX | 100 MB |
Node.js | 70 MB |
Python | 25 MB |