Installing/Updating Sisense Internal Monitoring

Last updated: October 21, 2026

Tier Deployment
Enterprise On-Prem

This topic describes how to install or update the Sisense Internal Monitoring app with Helm. Internal Monitoring is a Sisense build of the kube-prometheus-stack Helm chart. It deploys the Prometheus Operator, Prometheus, Alertmanager, Grafana, node-exporter, and kube-state-metrics, and collects metrics from the Sisense services.

If you install Sisense with sisense.sh, you do not need this topic: the installer installs Internal Monitoring for you when internal_monitoring: true is set in the configuration file. Use this topic when you install Sisense with Helm.

Prerequisites

Note:

Internal Monitoring cannot be installed when you are Installing Sisense without ClusterVisibility, because it requires cluster-wide permissions. The sisense.sh installer also skips Internal Monitoring when cluster_visibility: false is set, and on OpenShift.

Release Name, Namespace, and Installation Order

  • Install the chart with the release name sisense-prom-operator in the namespace monitoring. The Sisense chart relies on both names:

    • The Sisense ServiceMonitors carry the label release: sisense-prom-operator, which this Prometheus uses to select the ServiceMonitors it scrapes.

    • The Prometheus service name, sisense-prom-operator-kube-prometheus, is derived from the release name. The Sisense Grafana data source points to it.

    • The Sisense validation job receives permissions in the monitoring namespace only if that namespace exists when Sisense is installed or upgraded.

  • Install or upgrade Internal Monitoring before you install or upgrade Sisense. The Sisense chart's ServiceMonitors require the Prometheus Operator CRDs that this chart installs.

Adding the Helm Repo and Searching for the Helm Chart

  1. If needed, add the Sisense Helm repo, and run a quick update to sync with the remote repo:

    Copy
    helm repo add sisense-fusion https://data.sisense.com/linux/helm/charts/fusion
    helm repo update
  2. Search for the available chart versions with one of the following commands. Use the chart version that matches your Sisense version (for example, 2026.4.0).

Copy
# Only official versions
helm search repo sisense-fusion/kube-prometheus-stack --versions

# Including non-official/development/customized versions
helm search repo sisense-fusion/kube-prometheus-stack --versions --devel

First Installation

Persistent Volume Pre-configuration Before First Installation on a Single-node Environment

If you are installing on a Multi-node cluster, skip this section and proceed to Values Configuration.

On a Single-node environment, Prometheus and Alertmanager store their data in hostPath Persistent Volumes (PVs) under /opt/sisense on the node. Before the first installation:

  1. Check whether the AlertManager and Prometheus PVs already exist:

    Copy
    kubectl get pv alertmanager-db --no-headers --ignore-not-found
    kubectl get pv prometheus-db-prometheus-0 --no-headers --ignore-not-found
  2. If either of them is missing (both are required):

    1. On the node, make sure the directories exist and are owned by the user and group that the pods run as (runAsUser and runAsGroup in the values file, 1000 by default):

      Copy
      sudo mkdir -p /opt/sisense/prometheus /opt/sisense/alertmanager
      sudo chown -R 1000:1000 /opt/sisense/prometheus /opt/sisense/alertmanager
    2. Download the file for each missing PV:

    3. Create the missing PVs:

      Copy
      kubectl apply -f alertmanager-pv.yaml
      kubectl apply -f prometheus-pv.yaml

Values Configuration

  1. Download the relevant values file into your server:

  2. Edit the values as needed (for example, the securityContext parameters runAsUser, runAsGroup, and fsGroup).

    The parameters below must be set as described in the following sections.

Important:

The sample values files set the Grafana administrator password to admin (grafana.adminPassword). Change it before you install.

Single-node Installation Parameters

For Single-node installation:

  1. Replace <Your k8s node name> with your Kubernetes node name, as shown by kubectl get nodes (this appears in 3 locations in the file).

  2. Replace <Sisense version> with the Sisense version of your installation (for example, 2026.4.0).

Examples:

Copy
# Repeated in 3 locations in the file
nodeSelector:
  kubernetes.io/hostname: <Your k8s node name>
  #kubernetes.io/hostname: mynodename

# Repeated just once
externalLabels:
  version: <Sisense version>
  #version: 2026.4.0

Multi-node Installation Parameters

For Multi-node installation:

  1. Replace <Your RWO StorageClass name> with your RWO StorageClass name (this appears in 2 locations in the file). To use the cluster's default StorageClass, delete the storageClassName lines instead.

  2. In the prometheus-node-exporter affinity, the node label keys are written for a Sisense namespace named sisense (for example, node-sisense-Application). If Sisense is installed in a different namespace, replace sisense in these keys with your namespace (this appears in 3 locations in the file).

  3. Replace <Sisense version> with the Sisense version of your installation (for example, 2026.4.0).

Examples:

Copy
# Repeated in 2 locations in the file
volumeClaimTemplate:
  spec:
    accessModes: ["ReadWriteOnce"]
    storageClassName: <Your RWO StorageClass name>
    #storageClassName: gp3

# Repeated just once
externalLabels:
  version: <Sisense version>
  #version: 2026.4.0

# Replace "sisense" in the keys below with your Sisense namespace
affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
        - matchExpressions:
          - key: node-sisense-Application
            operator: In
            values:
            - "true"
        - matchExpressions:
          - key: node-sisense-Query
            operator: In
            values:
            - "true"
        - matchExpressions:
          - key: node-sisense-Build
            operator: In
            values:
            - "true"

Installation

  1. After you have completed the pre-configuration above, install the Internal Monitoring app using the following command. The chart installs the Prometheus Operator CRDs on first installation.

    Copy
    # Set your values file name, examples below:
    PROM_VALUES=prom-values-single.yaml
    # PROM_VALUES=prom-values-multi.yml

    # Monitoring namespace (keep "monitoring")
    MONITORING_NAMESPACE=monitoring

    # Chart version, matching your Sisense version
    SISENSE_SEMVER=2026.4.0

    helm upgrade --install sisense-prom-operator sisense-fusion/kube-prometheus-stack \
      --namespace ${MONITORING_NAMESPACE} --create-namespace \
      --version ${SISENSE_SEMVER} -f ${PROM_VALUES}
  2. Make sure that the Prometheus pods are running:

    Copy
    kubectl -n ${MONITORING_NAMESPACE} get pods

You can now continue with the Sisense installation/upgrade.

Enabling Monitoring in the Sisense Helm Values

Internal Monitoring collects metrics from the Sisense services only after you enable monitoring in the values file of the Sisense Helm chart. Set the following values, and then install or upgrade the Sisense release with your complete values file:

Copy
ERROR: Invalid Code Highlighting Language
  • The metrics.enabled settings create ServiceMonitor resources for MongoDB, RabbitMQ, and ZooKeeper. Enable them only after Internal Monitoring is installed: without the Prometheus Operator CRDs, the Sisense installation fails.

  • The grafana.datasources block connects the Sisense Grafana to this Prometheus. Keep it consistent with the Grafana settings already in your values file.

  • When global.monitoring.internal is true, the Sisense post-installation validation also waits for the Logging pods. Install the Logging chart right after Sisense. See Installing/Updating Sisense Logging Helm Chart.

Accessing Grafana and Prometheus

  • Grafana is exposed as a NodePort service on port 30300: open http://<node IP address>:30300 and log in as admin with the password set in grafana.adminPassword. Make sure your firewall allows access to this port.

  • Prometheus is exposed only inside the cluster (ClusterIP service, port 9090). To open it from your computer, use port forwarding:

    Copy
    kubectl -n monitoring port-forward svc/sisense-prom-operator-kube-prometheus 9090:9090

Upgrading Internal Monitoring

Upgrade Internal Monitoring before you upgrade Sisense, using the values file (prom-values-single.yaml or prom-values-multi.yml) from your previous installation.

  1. In your values file, change the value of version: (under externalLabels) to the new Sisense version.

  2. Update the Prometheus Operator CRDs. Helm installs CRDs only on first installation and does not upgrade them, so apply the CRDs from the new chart version:

    Copy
    # Chart version, matching the new Sisense version
    SISENSE_SEMVER=2026.4.0

    helm repo update
    helm pull sisense-fusion/kube-prometheus-stack --version ${SISENSE_SEMVER} --untar --untardir ./kps-${SISENSE_SEMVER}
    kubectl apply --server-side --force-conflicts -f ./kps-${SISENSE_SEMVER}/kube-prometheus-stack/charts/crds/crds/
  3. Upgrade the release. Always pass your complete values file, and do not use --reuse-values: new chart versions can change default values.

    Copy
    # Set your values file name, examples below:
    PROM_VALUES=prom-values-single.yaml
    # PROM_VALUES=prom-values-multi.yml

    MONITORING_NAMESPACE=monitoring

    helm upgrade sisense-prom-operator sisense-fusion/kube-prometheus-stack \
      --namespace ${MONITORING_NAMESPACE} --version ${SISENSE_SEMVER} -f ${PROM_VALUES}

You can now continue with the Sisense upgrade.