Deploying to DigitalOcean

💡 Tip

The easiest way to run SigNoz is to use SigNoz Cloud - no installation, maintenance, or scaling needed.

New users get 30 days of unlimited access to all features. Click here to sign up.

Deploying On Kubernetes Cluster

Prerequisites

  • Kubernetes version >= 1.22

  • Currently supports x86-64, amd64 and arm64 architectures

  • Helm version >= 3.8

  • You must have kubectl access to your cluster

  • The following table describes the hardware requirements that are needed to install SigNoz on Kubernetes:

    ComponentMinimal RequirementsRecommended
    Memory8 GB16 GB
    CPU4 cores8 cores
    Storage30 GB80 GB

Install SigNoz

Helm Installation

The SigNoz Helm chart will install the following components into your Kubernetes cluster:

  • SigNoz
  • SigNoz Collector
  • Clickhouse
  • Zookeeper
  1. Find a storage class to use in your cluster:
kubectl get storageclass
  1. Create a values.yaml file that will contain the configuration for the chart. Here is a minimal example to get started:
global:
  storageClass: <storage-class>

clickhouse:
  installCustomStorageClass: true

You can find an exhaustive list of the parameters here.

  1. Install SigNoz:
helm repo add signoz https://charts.signoz.io
helm repo update
helm install signoz signoz/signoz \
   --namespace <namespace> --create-namespace \
   --wait \
   --timeout 1h \
   -f values.yaml

Test the installation

  1. In another terminal, port-forward signoz on its http port. (By default, signoz exposes its http server on port 8080.)
kubectl port-forward -n <namespace> svc/signoz 8080:8080
  1. Run the following command to check the health of signoz:
curl -X GET http://localhost:8080/api/v1/health
  1. If the installation is successful, you should see the following output:
{"status":"ok"}
Info

By default, retention period is set to 7 days for logs and traces, and 30 days for metrics. To change this, navigate to the General tab on the Settings page of SigNoz UI.

For more details, refer to https://signoz.io/docs/userguide/retention-period.

(Optional) Install OpenTelemetry Demo

The OpenTelemetry Demo is a microservice-based distributed system intended to illustrate the implementation of OpenTelemetry in a near real-world environment. See more details at OpenTelemetry Demo.

  1. Get the address of the SigNoz collector:
kubectl get svc -n <namespace> svc/signoz-otel-collector

This value will be used in the next step to configure the OpenTelemetry Demo to send data to the SigNoz collector.

  1. Create a values.yaml file that will contain the configuration for the chart and send it to your SigNoz installation:
default:
  env:
    - name: OTEL_SERVICE_NAME
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: "metadata.labels['app.kubernetes.io/component']"
    - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE
      value: cumulative
    - name: OTEL_RESOURCE_ATTRIBUTES
      value: 'service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version={{ .Values.appVersion }}'
    - name: OTEL_COLLECTOR_NAME
      value: signoz-otel-collector.<namespace>.svc.cluster.local

Note: The OTEL_COLLECTOR_NAME is the address obtained in the previous step.

  1. Install OpenTelemetry Demo:
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm repo update
helm install otel-demo open-telemetry/opentelemetry-demo -f values.yaml

More details on the installation can be found here.

NextSteps


Was this page helpful?