Deploying to DigitalOcean

Self-Host - This page applies to self-hosted SigNoz editions.
Choose SigNoz Cloud for ease, or self-host for control—with the freedom to switch as your needs grow.

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

  3. 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
  2. Run the following command to check the health of signoz:

    curl -X GET http://localhost:8080/api/v1/health
  3. If the installation is successful, you should see the following output:

    {"status":"ok"}

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

  2. 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={{ .Chart.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.

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


Is this page helpful

Last updatedApril 30, 2025

Edit on GitHub