Signoz - Step by Step detailed guide to Install

Tasrie IT Services

Tasrie IT Services

·6 min read
Signoz - Step by Step detailed guide to Install

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

bash
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.

bash
kubectl create ns platform

let's create a new override-values.yaml to customize our setup to install on AWS EKS.

yaml
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.

yaml
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.

bash
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.

bash
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 Installation

Using the kubectl -n platform get pods command, monitor the SigNoz deployment process. Wait for all the pods to be in running state:

bash
kubectl -n platform get pods

Output:

bash
➜ 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.

bash
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.

Signoz

For more such content, make sure to check out our latest tech blog

Follow our LinkedIn Page

illustration
Need Expert Help ?

At Tasrie IT, we assist businesses in their growth and addressing intricate issues by utilizing advanced cloud technologies and contemporary platform engineering techniques.

Related Posts

Observability: Effective Monitoring
·monitoring

Observability: Effective Monitoring

Observability is a concept that has become increasingly important in today's highly dynamic and complex technological landscape. As software and systems grow in complexity, the traditional methods of ...

Tasrie IT Services

Tasrie IT Services