Signoz - Step by Step detailed guide to Install
Tasrie IT Services
In this article, we will explore Signoz—an advanced monitoring and observability tool that helps developers gain valuable insights into their applications' performance and behavior. We'll dive into its features, benefits, and how it can revolutionize your monitoring practices.
What is Signoz?
Signoz is a cutting-edge monitoring and observability platform designed to track and analyze the performance of complex software systems. It provides developers and operators with real-time visibility into their applications, enabling them to detect bottlenecks, troubleshoot issues, and optimize performance.
With its user-friendly interface and powerful features, it offers a comprehensive solution for monitoring and observability needs. Whether you are running a small-scale web application or a large-scale micro-services architecture.
Key Features and Functionalities
This tool offers a wide range of features that empower developers and operators to monitor their applications effectively. Some key features include:
-
Distributed Tracing: This tool allows you to trace requests across multiple services and visualize the entire request flow. It helps identify latency issues, bottlenecks, and dependencies between services.
-
Metrics Collection: You can collect and analyze essential metrics related to your application's performance, such as response time, error rate, throughput, and resource utilization.
-
Real-time Alerts: It provides a powerful alerting system that notifies you of critical issues or anomalies in your application's behavior. You can set up custom thresholds and receive alerts via email, Slack, or other communication channels.
-
Log Analysis: it enables you to collect and analyze logs generated by your application. It helps in identifying errors, exceptions, and patterns that can impact performance and reliability.
-
Intuitive Dashboard: It offers a visually appealing and easy-to-use dashboard that presents key metrics, traces, and logs in a single interface. It allows you to monitor the health and performance of your application at a glance.
Getting Started with Signoz
To start leveraging the power of this tool, you need to follow a simple installation and setup process. it supports various platforms and technologies, making it a versatile solution for different environments.
Install Signoz on Kubernetes
In this article we will install it on Kubernetes using helm charts. Before install, we need the following to be installed and ready to use.
-
Helm >=
3.8
-
Kubernetes Cluster >=
1.22
-
Kubectl
-
Access to Kubernetes Cluster
When you install the helm chart, it will install the following components.
-
Query Service (backend service)
-
Web UI (frontend)
-
OpenTelemetry Collectors
-
Alertmanager
-
ClickHouse chart (datastore)
-
K8s-Infra chart (k8s infra metrics/logs collectors)
Firstly we need to Install the helm repo
helm repo add signoz https://charts.signoz.io
Next, we will create namespace
using kubectl
command. we will install it in platform namespace. you can choose your own namespace.
kubectl create ns platform
let's create a new override-values.yaml
to customize our setup to install on AWS EKS.
global:
storageClass: gp3 # you can change it to your storageClass
cloud: aws # Since we are installing it on AWS, we provide cloud as `aws`
# -- An allowlist of IP addresses or network masks the ClickHouse user is
# allowed to access from. By default anything within a private network will be
# allowed. This should suffice for most use case although to expose to other
# networks you will need to update this setting.
#
# Refs:
# - https://clickhouse.com/docs/en/operations/settings/settings-users/#user-namenetworks
# - https://en.wikipedia.org/wiki/Reserved_IP_addresses#IPv4
allowedNetworkIps:
- "10.87.0.0/16"
- "192.72.0.0/16"
# By default it will not create ingress. In this example we enable the frontend.Ingress to true.
# and provide the domain name for the
frontend:
ingress:
# -- Enable ingress for Frontend
enabled: true
# -- Ingress Class Name to be used to identify ingress controllers
className: ""
# -- Annotations to Frontend Ingress
annotations:
kubernetes.io/ingress.class: ingress-nginx
hosts:
- host: signoz.tasrieit.com
paths:
- path: /
pathType: ImplementationSpecific
port: 3301
In the above file. we choose gp3
as our storage class. you can change it as per your name.
Next step we provide the allowed Ip's for the ClickHouse user to access.
Then we enable frontend Ingress and provide the domain.
optionally, if you want we can also enable ingress for Query Service.
queryService:
ingress:
# -- Enable ingress for Query-Service
enabled: true
# -- Ingress Class Name to be used to identify ingress controllers
className: ""
# -- Annotations to Query-Service Ingress
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: query-service.tasrieit.com
paths:
- path: /
pathType: ImplementationSpecific
port: 8080
This helm chart also support many other customization. you can refer this link for explore all other options
Finally, we will run the helm install
command.
helm --namespace platform install signoz signoz/signoz -f override-values.yaml
we provided signoz
as our release name.
Once it's successfully installed you will see the following output.
NAME: singoz
LAST DEPLOYED: Fri May 19 20:34:55 2023
NAMESPACE: platform
STATUS: deployed
REVISION: 1
NOTES:
1. You have just deployed SigNoz cluster:
- frontend version: '0.18.3'
- query-service version: '0.18.3'
- alertmanager version: '0.23.0-0.2'
- otel-collector version: '0.66.7'
- otel-collector-metrics version: '0.66.7'
Verify the InstallationUsing the kubectl -n platform get pods
command, monitor the SigNoz deployment process. Wait for all the pods to be in running state:
kubectl -n platform get pods
Output:
➜ kubectl get pods -n platform
NAME READY STATUS RESTARTS AGE
chi-signoz-clickhouse-cluster-0-0-0 1/1 Running 0 25h
signoz-alertmanager-0 1/1 Running 0 25h
signoz-clickhouse-operator-fb949b5db-jhr5n 2/2 Running 0 25h
signoz-frontend-546599d5-2x5t8 1/1 Running 0 25h
signoz-k8s-infra-otel-agent-8lx6s 1/1 Running 0 25h
signoz-k8s-infra-otel-agent-ct6sj 1/1 Running 0 25h
signoz-k8s-infra-otel-agent-xq7zf 1/1 Running 0 25h
signoz-k8s-infra-otel-deployment-675544c685-jjf5c 1/1 Running 0 25h
signoz-otel-collector-5bddfd7b5b-7spjl 1/1 Running 0 25h
signoz-otel-collector-metrics-5d8679678-twhnb 1/1 Running 0 25h
signoz-query-service-0 1/1 Running 0 25h
signoz-zookeeper-0 1/1 Running 0 25h
If your Install was successful, then you can access the frontend-service using the following command.
export SERVICE_NAME=$(kubectl get svc --namespace platform -l "app.kubernetes.io/component=frontend" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace platform port-forward svc/$SERVICE_NAME 3301:3301
Go ahead and launch your favorite browser and open http://localhost:3301. Follow the On-screen instructions to create free account. After you created the account. You will be able to sign-in and should see a similar screen.
For more such content, make sure to check out our latest tech blog
Follow our LinkedIn Page