Troubleshooting
This troubleshooting guide includes step-by-step instructions that should resolve most installation issues.
Using Troubleshooting repository​
You can use the SigNoz troubleshoot to test if SigNoz otel collector is accessible from where you are running your applications.
Binary installation​
You can run the one liner script below to download the troubleshoot binary:
curl -sL https://github.com/SigNoz/troubleshoot/raw/main/scripts/install.sh | bash
Here is the syntax:
./troubleshoot checkEndpoint --endpoint=<endpoint-to-check>
Binary​
For example, if Otel Collector should be accessible in localhost:4317
:
./troubleshoot checkEndpoint --endpoint=localhost:4317
Docker​
You can also use troubleshoot Docker image:
docker run -it --rm signoz/troubleshoot checkEndpoint --endpoint=172.17.0.1:4317
*Notes: SigNoz Otel Collector should be accessible in 172.17.0.1:4317
from your application even if running in different docker network.
Kubernetes​
Let's spin up a pod in Kubernetes with platform
namespace to check if otel collector
is running properly:
kubectl -n platform run troubleshoot --image=signoz/troubleshoot \
--restart='Never' -i --tty --rm --command -- ./troubleshoot checkEndpoint \
--endpoint=my-release-signoz-otel-collector.platform.svc.cluster.local:4317
You can also spin up a pod in Kubernetes with same namespace as your application to check if otel collector
is accessible:
kubectl -n app-namespace run troubleshoot --image=signoz/troubleshoot \
--restart='Never' -i --tty --rm --command -- ./troubleshoot checkEndpoint \
--endpoint=my-release-signoz-otel-collector.platform.svc.cluster.local:4317
*Notes:
- Replace
app-namespace
with your application namespace,my-release
with SigNoz helm release name, andplatform
with SigNoz namespace. - In case on multiple k8s cluster, you might have to set otel collector service type as
NodePort
orLoadBalancer
.
helm upgrade --install -n platform my-release signoz/signoz \
--set otelCollector.serviceType="<NodePort or LoadBalancer>"
Â
Troubleshooting Video​
Whew! That was a lot of instruction to follow. If you instead prefer to watch a video, here you go
Docker Standalone​
- Before you install SigNoz on Docker Standalone, ensure that all prerequisites are met.
- Run the
docker ps
command and ensure that theclickhouse-setup_clickhouse
andquery-service
containers are running. If these containers are not running, increase the memory allocated to Docker. - If you don't see any data in the front-end, please wait two or three minutes.
- Run the
install.sh
script again. The script will try to reinstall the containers that failed. - Follow the steps for uninstalling SigNoz section and then install SigNoz again by following the steps in the Install SigNoz on Docker Standalone section.
- If you're still facing issues trying to install SigNoz, please reach out to us on Slack
SigNoz Otel Collector address Grid​
You might have specific set up for your application and SigNoz cluster. It might not be very clear on which address to use to send data to SigNoz.
Here is the SigNoz Otel Collector address grid which could be helpful:
Where SigNoz is installed? | |||||
---|---|---|---|---|---|
VM (Docker) - Same Machine | VM (Docker) - Different Machine | K8s (Same Cluster) | K8s (Different Cluster) | ||
Where your application is running? | VM (native/binary) | localhost:4317 | <otelcollector-IP>:4317 | <k8s-node-IP>:<otelcollector-node-port>, <k8s-loadbalancer-IP>:4317 | <k8s-node-IP>:<otelcollector-node-port>, <k8s-loadbalancer-IP>:4317 |
VM (Docker) | 172.17.0.1:4317, otel-collector:4317(shared network) | <otelcollector-IP>:4317 | <k8s-node-IP>:<otelcollector-node-port>, <k8s-loadbalancer-IP>:4317 | <k8s-node-IP>:<otelcollector-node-port>, <k8s-loadbalancer-IP>:4317 | |
Kubernetes | <otelcollector-IP>:4317 | <otelcollector-IP>:4317 | <release-name>-signoz-otel-collector.<namespace>.svc.cluster.local:4317 | <k8s-node-IP>:<otelcollector-node-port>, <k8s-loadbalancer-IP>:4317 |
Notes:
- For the
<otelcollector-IP>
, use private IP address if the VM is in same private network. - Replace
<namespace>
with SigNoz namespace and<release-name>
with SigNoz helm release name. - In the case of k8s where the application and SigNoz are running in different k8s cluster, you will have to expose otel collector service.
Set the service type to either
NodePort
orLoadBalancer
.helm upgrade --install -n platform my-release signoz/signoz \
--set otelCollector.serviceType="<NodePort or LoadBalancer>"