The instructions below are relevant only for the official Kubernetes ingress controller implementation from Google.
Derivatives from the official project, such as the Bitnami ingress controller, are not supported. However, you may instrument them manually by using the Manual runtime instrumentation for NGINX.
The ingress controller implementation from F5 NGINX can be instrumented automatically; no manual steps are required.
The NGINX process of the official Kubernetes ingress-nginx controller container image can't be instrumented automatically. To manually instrument ingress-nginx on Kubernetes, follow the instructions below.
ARM64 architecture is not supported.
ingress-nginx-
to ensure proper instrumentation of the NGINX binary. We reccomend to maintain the default pod name ingress-nginx-controller
.To instrument ingress-nginx on Kubernetes, you need to load the NGINX module manually via a ConfigMap.
Ensure that OneAgent is running and capable of instrumenting the ingress-nginx containers when applying changes to the ingress-nginx ConfigMap. If these conditions are not met, NGINX will fail to start.
Edit the ConfigMap.
kubectl edit configmap ingress-nginx-controller
Add the following value to the main-snippet
key (below data
).
Example:
data:main-snippet: load_module /opt/dynatrace/oneagent/agent/bin/current/linux-musl-x86-64/liboneagentnginx.so;
For cloudNativeFullStack
and applicationMonitoring
deployments, the path becomes:
data:main-snippet: load_module /opt/dynatrace/oneagent-paas/agent/bin/current/linux-musl-x86-64/liboneagentnginx.so;
If your pod isn't up and running, make sure that it hasn't exceeded either of the following:
initialDelaySeconds
for these probes.