CogStack Observability Helm Chart
This chart installs the observability stack for a CogStack deployment on Kubernetes.
It is a wrapper around the kube-prometheus-stack, aiming to provide a simple way to get with observability for cogstack services.
Overview
This chart deploys:
| Component | Description |
|---|---|
| kube-prometheus-stack | Prometheus Operator stack for metrics collection, rules, and monitoring components. |
| Prometheus | Scrapes metrics from CogStack services and stores time series data. |
| Grafana | Provides dashboards for visualising CogStack platform health and service metrics. |
| Bundled dashboards | Preloads dashboards for CogStack availability, FastAPI metrics, and OpenSearch metrics. |
This chart is intended to be installed alongside a CogStack deployment that exposes metrics through ServiceMonitor, PodMonitor, Probe, or related Prometheus resources.
Prerequisites
- Kubernetes cluster
- Helm 3+
- A CogStack deployment with metrics endpoints enabled
Installation
helm install observability oci://registry-1.docker.io/cogstacksystems/cogstack-observability-helm
If you are deploying this alongside cogstack-ce-helm, you can enable the required monitors in the CE chart with the example override file at ../cogstack-ce-helm/values-observability.yaml.
Configuration
These are some values that are likely to need customization for your deployment:
| Value | Default | Description |
|---|---|---|
kube-prometheus-stack.enabled |
true |
Main switch for installing the bundled kube-prometheus-stack. Set this to false if your cluster already provides Prometheus and Grafana. |
kube-prometheus-stack.crds.enabled |
true |
Controls installation of Prometheus Operator CRDs. Set this to false when the CRDs are already installed and managed elsewhere. |
kube-prometheus-stack.grafana.sidecar.dashboards.enabled |
true |
Enables Grafana sidecar dashboard discovery for the dashboards shipped by this chart. Set this to false if Grafana or dashboard loading is handled externally. |
kube-prometheus-stack.grafana.adminUser |
"admin" |
Grafana admin username. |
kube-prometheus-stack.grafana.adminPassword |
"grafana-admin-password" |
Grafana admin password; change this for any real deployment. |
kube-prometheus-stack.grafana.service.* |
not set | Configure how Grafana is exposed, for example ClusterIP, NodePort, or LoadBalancer. |
kube-prometheus-stack.prometheus.service.* |
not set | Configure how Prometheus is exposed if direct access is required. |
kube-prometheus-stack.prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues |
false |
Allows Prometheus to discover ServiceMonitor resources not created by this chart. |
kube-prometheus-stack.prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues |
false |
Allows Prometheus to discover PodMonitor resources not created by this chart. |
kube-prometheus-stack.prometheus.prometheusSpec.probeSelectorNilUsesHelmValues |
false |
Allows Prometheus to discover Probe resources not created by this chart. |
kube-prometheus-stack.prometheus.prometheusSpec.ruleSelectorNilUsesHelmValues |
false |
Allows Prometheus to discover PrometheusRule resources not created by this chart. |
kube-prometheus-stack.prometheus.prometheusSpec.scrapeConfigSelectorNilUsesHelmValues |
false |
Allows Prometheus to discover additional ScrapeConfig resources not created by this chart. |
Example override file:
# my-values.yaml
kube-prometheus-stack:
enabled: false
crds:
enabled: false
grafana:
sidecar:
dashboards:
enabled: false
Install with overrides:
helm install cogstack-observability . -f my-values.yaml --namespace observability --create-namespace
Dependencies
The chart depends on:
kube-prometheus-stack
Uninstall
helm uninstall cogstack-observability --namespace observability
If the namespace was created only for this release, remove it with:
kubectl delete namespace observability
Requirements
| Repository | Name | Version |
|---|---|---|
| oci://ghcr.io/prometheus-community/charts | kube-prometheus-stack | 81.2.2 |
Values
| Key | Type | Default | Description |
|---|---|---|---|
| fullnameOverride | string | "" |
|
| kube-prometheus-stack.crds.enabled | bool | true |
|
| kube-prometheus-stack.enabled | bool | true |
|
| kube-prometheus-stack.grafana.adminPassword | string | "grafana-admin-password" |
|
| kube-prometheus-stack.grafana.adminUser | string | "admin" |
|
| kube-prometheus-stack.grafana.enabled | bool | true |
|
| kube-prometheus-stack.grafana.sidecar.dashboards.enabled | bool | true |
|
| kube-prometheus-stack.prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues | bool | false |
|
| kube-prometheus-stack.prometheus.prometheusSpec.probeSelectorNilUsesHelmValues | bool | false |
|
| kube-prometheus-stack.prometheus.prometheusSpec.ruleSelectorNilUsesHelmValues | bool | false |
|
| kube-prometheus-stack.prometheus.prometheusSpec.scrapeConfigSelectorNilUsesHelmValues | bool | false |
|
| kube-prometheus-stack.prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues | bool | false |
|
| nameOverride | string | "" |
|
| provisioning | object | {"dashboards":{"availability":{"enabled":false},"enabled":true,"fastapi":{"enabled":true},"jupyterhub":{"enabled":false},"opensearch":{"enabled":true}}} |
Dashboards to be installed |
| provisioning.dashboards.availability | object | {"enabled":false} |
Availability dashboard shows uptime of services |
| provisioning.dashboards.fastapi | object | {"enabled":true} |
FastAPI dashboard shows metrics from FastAPI services |
| provisioning.dashboards.jupyterhub | object | {"enabled":false} |
JupyterHub dashboard shows metrics from JupyterHub |
| provisioning.dashboards.opensearch | object | {"enabled":true} |
OpenSearch dashboard shows metrics from OpenSearch |
Autogenerated from chart metadata using helm-docs v1.14.2