Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 23 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Logs will be scraped from all pods in the Kubernetes cluster.

```bash
helm repo add coder-observability https://helm.coder.com/observability
helm upgrade --install coder-observability coder-observability/coder-observability --version 0.4.2 --namespace coder-observability --create-namespace
helm upgrade --install coder-observability coder-observability/coder-observability --version 0.4.3 --namespace coder-observability --create-namespace
```

## Requirements
Expand Down Expand Up @@ -310,6 +310,8 @@ values which are defined [here](https://github.com/grafana/helm-charts/tree/main

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| global.alerts.enabled | bool | `true` | enable or disable alerting |
| global.alerts.kind | string | `"configmap"` | the container resource kind in which alerts should be created valid values are "prometheusrule" or "configmap" |
| global.coder.alerts | object | `{"coderd":{"groups":{"CPU":{"delay":"10m","enabled":true,"period":"10m","thresholds":{"critical":0.9,"warning":0.8}},"IneligiblePrebuilds":{"delay":"10m","enabled":true,"thresholds":{"notify":1}},"Memory":{"delay":"10m","enabled":true,"thresholds":{"critical":0.9,"warning":0.8}},"Replicas":{"delay":"5m","enabled":true,"thresholds":{"critical":1,"notify":3,"warning":2}},"Restarts":{"delay":"1m","enabled":true,"period":"10m","thresholds":{"critical":3,"notify":1,"warning":2}},"UnprovisionedPrebuiltWorkspaces":{"delay":"10m","enabled":true,"thresholds":{"warn":1}},"WorkspaceBuildFailures":{"delay":"10m","enabled":true,"period":"10m","thresholds":{"critical":10,"notify":2,"warning":5}}}},"enterprise":{"groups":{"Licences":{"delay":"1m","enabled":true,"thresholds":{"critical":1,"warning":0.9}}}},"provisionerd":{"groups":{"Replicas":{"delay":"5m","enabled":true,"thresholds":{"critical":1,"notify":3,"warning":2}}}}}` | alerts for the various aspects of Coder |
| global.coder.coderdSelector | string | `"pod=~`coder.*`, pod!~`.*provisioner.*`"` | series selector for Prometheus/Loki to locate provisioner pods. ensure this uses backticks for quotes! |
| global.coder.controlPlaneNamespace | string | `"coder"` | the namespace into which the control plane has been deployed. |
Expand All @@ -318,7 +320,8 @@ values which are defined [here](https://github.com/grafana/helm-charts/tree/main
| global.coder.provisionerdSelector | string | `"pod=~`coder-provisioner.*`"` | series selector for Prometheus/Loki to locate provisioner pods. https://coder.com/docs/v2/latest/admin/provisioners TODO: rename container label in provisioner helm chart to be "provisioner" not "coder" ensure this uses backticks for quotes! |
| global.coder.scrapeMetrics | string | `nil` | use this to scrape metrics from a standalone (set of) coder deployment(s) if using kubernetes, rather add an annotation "prometheus.io/scrape=true" and coder will get automatically scraped; set this value to null and configure coderdSelector to target your coder pods |
| global.coder.workspacesSelector | string | `"namespace=`coder-workspaces`"` | the namespace into which any external provisioners have been deployed. |
| global.dashboards | object | `{"queryTimeout":900,"refresh":"30s","timerange":"12h"}` | settings for bundled dashboards |
| global.dashboards.configmapLabels | string | `nil` | labels to apply to configmaps created for dashboards |
| global.dashboards.enabled | bool | `true` | enable or disable the creation of configmaps for dashboards |
| global.dashboards.queryTimeout | int | `900` | how long until a query in Grafana will timeout after |
| global.dashboards.refresh | string | `"30s"` | how often dashboards should refresh |
| global.dashboards.timerange | string | `"12h"` | how far back dashboards should look |
Expand Down Expand Up @@ -357,7 +360,7 @@ values which are defined [here](https://github.com/grafana/helm-charts/tree/main
| grafana."grafana.ini"."auth.anonymous".org_name | string | `"Main Org."` | |
| grafana."grafana.ini"."auth.anonymous".org_role | string | `"Admin"` | |
| grafana."grafana.ini".analytics.reporting_enabled | bool | `false` | |
| grafana."grafana.ini".dashboards.default_home_dashboard_path | string | `"/var/lib/grafana/dashboards/coder/0/status.json"` | |
| grafana."grafana.ini".dashboards.default_home_dashboard_path | string | `"/var/lib/grafana/dashboards/coder/0/coder-status.json"` | |
| grafana."grafana.ini".dataproxy.timeout | string | `"{{ $.Values.global.dashboards.queryTimeout }}"` | |
| grafana."grafana.ini".feature_toggles.autoMigrateOldPanels | bool | `true` | |
| grafana."grafana.ini".users.allow_sign_up | bool | `false` | |
Expand Down Expand Up @@ -433,29 +436,29 @@ values which are defined [here](https://github.com/grafana/helm-charts/tree/main
| grafana.deploymentStrategy.type | string | `"Recreate"` | |
| grafana.enabled | bool | `true` | |
| grafana.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION | bool | `true` | |
| grafana.extraConfigmapMounts[0].configMap | string | `"dashboards-status"` | |
| grafana.extraConfigmapMounts[0].configMap | string | `"coder-dashboard-status"` | |
| grafana.extraConfigmapMounts[0].mountPath | string | `"/var/lib/grafana/dashboards/coder/0"` | |
| grafana.extraConfigmapMounts[0].name | string | `"dashboards-status"` | |
| grafana.extraConfigmapMounts[0].name | string | `"coder-dashboard-status"` | |
| grafana.extraConfigmapMounts[0].readOnly | bool | `false` | |
| grafana.extraConfigmapMounts[1].configMap | string | `"dashboards-coderd"` | |
| grafana.extraConfigmapMounts[1].configMap | string | `"coder-dashboard-coderd"` | |
| grafana.extraConfigmapMounts[1].mountPath | string | `"/var/lib/grafana/dashboards/coder/1"` | |
| grafana.extraConfigmapMounts[1].name | string | `"dashboards-coderd"` | |
| grafana.extraConfigmapMounts[1].name | string | `"coder-dashboard-coderd"` | |
| grafana.extraConfigmapMounts[1].readOnly | bool | `false` | |
| grafana.extraConfigmapMounts[2].configMap | string | `"dashboards-provisionerd"` | |
| grafana.extraConfigmapMounts[2].configMap | string | `"coder-dashboard-provisionerd"` | |
| grafana.extraConfigmapMounts[2].mountPath | string | `"/var/lib/grafana/dashboards/coder/2"` | |
| grafana.extraConfigmapMounts[2].name | string | `"dashboards-provisionerd"` | |
| grafana.extraConfigmapMounts[2].name | string | `"coder-dashboard-provisionerd"` | |
| grafana.extraConfigmapMounts[2].readOnly | bool | `false` | |
| grafana.extraConfigmapMounts[3].configMap | string | `"dashboards-workspaces"` | |
| grafana.extraConfigmapMounts[3].configMap | string | `"coder-dashboard-workspaces"` | |
| grafana.extraConfigmapMounts[3].mountPath | string | `"/var/lib/grafana/dashboards/coder/3"` | |
| grafana.extraConfigmapMounts[3].name | string | `"dashboards-workspaces"` | |
| grafana.extraConfigmapMounts[3].name | string | `"coder-dashboard-workspaces"` | |
| grafana.extraConfigmapMounts[3].readOnly | bool | `false` | |
| grafana.extraConfigmapMounts[4].configMap | string | `"dashboards-workspace-detail"` | |
| grafana.extraConfigmapMounts[4].configMap | string | `"coder-dashboard-workspace-detail"` | |
| grafana.extraConfigmapMounts[4].mountPath | string | `"/var/lib/grafana/dashboards/coder/4"` | |
| grafana.extraConfigmapMounts[4].name | string | `"dashboards-workspace-detail"` | |
| grafana.extraConfigmapMounts[4].name | string | `"coder-dashboard-workspace-detail"` | |
| grafana.extraConfigmapMounts[4].readOnly | bool | `false` | |
| grafana.extraConfigmapMounts[5].configMap | string | `"dashboards-prebuilds"` | |
| grafana.extraConfigmapMounts[5].configMap | string | `"coder-dashboard-prebuilds"` | |
| grafana.extraConfigmapMounts[5].mountPath | string | `"/var/lib/grafana/dashboards/coder/5"` | |
| grafana.extraConfigmapMounts[5].name | string | `"dashboards-prebuilds"` | |
| grafana.extraConfigmapMounts[5].name | string | `"coder-dashboard-prebuilds"` | |
| grafana.extraConfigmapMounts[5].readOnly | bool | `false` | |
| grafana.fullnameOverride | string | `"grafana"` | |
| grafana.image.tag | string | `"10.4.19"` | |
Expand Down Expand Up @@ -533,9 +536,10 @@ values which are defined [here](https://github.com/grafana/helm-charts/tree/main
| prometheus.configmapReload.prometheus.containerPort | int | `9091` | |
| prometheus.configmapReload.prometheus.extraArgs.log-level | string | `"all"` | |
| prometheus.configmapReload.prometheus.extraArgs.watch-interval | string | `"15s"` | |
| prometheus.configmapReload.prometheus.extraConfigmapMounts[0].configMap | string | `"metrics-alerts"` | |
| prometheus.configmapReload.prometheus.extraConfigmapMounts[0].configMap | string | `"coder-metrics-alerts"` | |
| prometheus.configmapReload.prometheus.extraConfigmapMounts[0].mountPath | string | `"/etc/config/alerts"` | |
| prometheus.configmapReload.prometheus.extraConfigmapMounts[0].name | string | `"alerts"` | |
| prometheus.configmapReload.prometheus.extraConfigmapMounts[0].optional | bool | `true` | |
| prometheus.configmapReload.prometheus.extraConfigmapMounts[0].readonly | bool | `true` | |
| prometheus.enabled | bool | `true` | |
| prometheus.kube-state-metrics.enabled | bool | `true` | |
Expand All @@ -546,9 +550,10 @@ values which are defined [here](https://github.com/grafana/helm-charts/tree/main
| prometheus.prometheus-node-exporter.podAnnotations."prometheus.io/scrape" | string | `"true"` | |
| prometheus.prometheus-pushgateway.enabled | bool | `false` | |
| prometheus.server.extraArgs."log.level" | string | `"debug"` | |
| prometheus.server.extraConfigmapMounts[0].configMap | string | `"metrics-alerts"` | |
| prometheus.server.extraConfigmapMounts[0].configMap | string | `"coder-metrics-alerts"` | |
| prometheus.server.extraConfigmapMounts[0].mountPath | string | `"/etc/config/alerts"` | |
| prometheus.server.extraConfigmapMounts[0].name | string | `"alerts"` | |
| prometheus.server.extraConfigmapMounts[0].optional | bool | `true` | |
| prometheus.server.extraConfigmapMounts[0].readonly | bool | `true` | |
| prometheus.server.extraFlags[0] | string | `"web.enable-lifecycle"` | |
| prometheus.server.extraFlags[1] | string | `"enable-feature=remote-write-receiver"` | |
Expand All @@ -573,6 +578,7 @@ values which are defined [here](https://github.com/grafana/helm-charts/tree/main
| pyroscope.pyroscope.replicaCount | int | `1` | |
| pyroscope.pyroscope.service.port | int | `4040` | |
| pyroscope.pyroscope.service.type | string | `"ClusterIP"` | |
| runbookViewer.enabled | bool | `true` | enable or disable the runbook viewer |
| runbookViewer.image | string | `"dannyben/madness"` | |
| sqlExporter.enabled | bool | `true` | |
| sqlExporter.image | string | `"burningalchemist/sql_exporter"` | |
Expand Down
2 changes: 1 addition & 1 deletion coder-observability/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: v2
name: coder-observability
description: Gain insights into your Coder deployment
type: application
version: 0.4.2
version: 0.4.3
dependencies:
- name: pyroscope
condition: pyroscope.enabled
Expand Down
6 changes: 5 additions & 1 deletion coder-observability/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,13 @@ envFrom:
{{/* Build a runbook URL */}}
{{- define "runbook-url" -}}
{{ $outer := . }}
{{- if .Values.runbookViewer.enabled -}}
{{- with .Values.global -}}
{{- .externalScheme }}://runbook-viewer.{{ $outer.Release.Namespace }}.{{ .externalZone }}/{{- $outer.service }}#{{- $outer.alert | lower }}
{{- end }}
{{- else -}}
https://github.com/coder/observability/blob/main/coder-observability/runbooks/{{- $outer.service }}.md#{{- $outer.alert | lower }}
{{- end }}
{{- end }}

{{- define "coderd-selector" -}} {{- printf "%s, namespace=`%s`" .Values.global.coder.coderdSelector .Values.global.coder.controlPlaneNamespace -}} {{- end }}
Expand All @@ -121,4 +125,4 @@ envFrom:
{{- define "grafana-agent-job" -}} {{- printf "%s/%s/%s" .Release.Namespace (index .Values "grafana-agent").fullnameOverride "grafana-agent" -}} {{- end }}

{{- define "dashboard-range" -}} {{ .Values.global.dashboards.timerange }} {{- end }}
{{- define "dashboard-refresh" -}} {{ .Values.global.dashboards.refresh }} {{- end }}
{{- define "dashboard-refresh" -}} {{ .Values.global.dashboards.refresh }} {{- end }}
Loading