Deploying with ArgoCD

Use Self Hosted SigNoz if you need

  • Full on-prem control
  • Custom build tweaks
  • Zero outbound traffic

Otherwise, try SigNoz Cloud to

  • Onboard in 5 minutes
  • Auto-scale & upgrades
  • Zero ops maintenance
Start your 30 day free trial
  • 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

Installation Steps

Create a namespace for SigNoz

kubectl create namespace signoz

Create an ArgoCD Application

We will be using the SigNoz Helm chart, which will install the following components into your Kubernetes cluster:

  • SigNoz
  • SigNoz Collector
  • Clickhouse
  • Zookeeper

ArgoCD allows to install application by using the helm charts through the UI, or in the declarative GitOps way. For detailed instructions on using helm charts with ArgoCD, please refer to the documentation documentation

Create a file named signoz-application.yaml with the following content:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: signoz
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://charts.signoz.io
    targetRevision: 0.79.0
    chart: signoz
  destination:
    server: https://kubernetes.default.svc
    namespace: signoz

Apply the ArgoCD Application

kubectl apply -f signoz-application.yaml
ArgoCD dashboard for signoz application
ArgoCD dashboard for signoz application

Configuration

Customizing the Installation

You can customize the SigNoz installation by creating a values file and referencing it in your ArgoCD Application. Here's an example of a values file (signoz-values.yaml):

signoz:
  name: "signoz"
  replicaCount: 1
  image:
    registry: docker.io
    repository: signoz/signoz
    tag: v0.81.0
    pullPolicy: IfNotPresent
  service:
    type: ClusterIP
    port: 8080
    internalPort: 8085
    opampPort: 4320
  additionalArgs:
    - --use-logs-new-schema=true
    - --use-trace-new-schema=true

Then update your ArgoCD Application to use these values:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: signoz
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://charts.signoz.io
    targetRevision: 0.79.0
    chart: signoz
    helm:
      valueFiles:
        - signoz-values.yaml
  destination:
    server: https://kubernetes.default.svc
    namespace: signoz
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true

Automation from the CI Pipelines

If you prefer to manage your Helm values through a Git repository, you can configure ArgoCD to sync from your GitHub repo instead, and deploy from the CI, please refer to this documentation

Next Steps


Was this page helpful?