diff --git a/ops/monitoring/doc/index.md b/ops/monitoring/doc/index.md new file mode 100644 index 00000000..b17287cd --- /dev/null +++ b/ops/monitoring/doc/index.md @@ -0,0 +1,38 @@ +Monitoring +========== + +Setting up monitoring in hscloud is a work in progress. + +Components +---------- + +Currently we have a per-cluster setup with prometheus scraping Kubernetes nodes +(kubeletes) for kubelet metrics and cAdvisor metrics. + + .-----------------------------------------------------------. + | k0.hswaw.net | + |-----------------------------------------------------------| + | .---------------------. | + | | ns: metrics-cluster | .--------------------------. | + | |---------------------| | kubernetes.svc.cluster | | + | | prometheus |--> | apiserver proxy to nodes | | + | '---------------------' '--------------------------' | + | | | + '---------------------------------------- v ----------------' + .---------------------. + | bc0n01.hswaw.net |-. + Kubernetes |---------------------| |-. + Nodes | /metrics |-| | + | /metrics/cadvisor | |-| + '---------------------' | | + '---------------------' | + '---------------------' + +Everything else (dashboard, aggregation, user metrics) is a work in progress. + +Legacy +------ + +There is a legacy prometheus/grafana VM on https://metrics.hackerspace.pl/. The +certificate is expired, but it Generally Works, and will be kept going until +its functionality is migrated to hscloud. diff --git a/ops/monitoring/k0.jsonnet b/ops/monitoring/k0.jsonnet new file mode 100644 index 00000000..028a4630 --- /dev/null +++ b/ops/monitoring/k0.jsonnet @@ -0,0 +1,11 @@ +local lib = import "lib.libsonnet"; + +{ + cluster: lib.Cluster("k0") { + cfg+: { + storageClasses+: { + prometheus: "waw-hdd-redundant-3", + }, + }, + }, +} diff --git a/ops/monitoring/lib.libsonnet b/ops/monitoring/lib.libsonnet new file mode 100644 index 00000000..61f49b49 --- /dev/null +++ b/ops/monitoring/lib.libsonnet @@ -0,0 +1,5 @@ +local cluster = import "lib/cluster.libsonnet"; + +{ + Cluster: cluster.Cluster, +} diff --git a/ops/monitoring/kube.jsonnet b/ops/monitoring/lib/cluster.libsonnet similarity index 96% rename from ops/monitoring/kube.jsonnet rename to ops/monitoring/lib/cluster.libsonnet index 919ca7d7..9b64f05c 100644 --- a/ops/monitoring/kube.jsonnet +++ b/ops/monitoring/lib/cluster.libsonnet @@ -1,8 +1,9 @@ -local kube = import "../../kube/kube.libsonnet"; +local kube = import "../../../kube/kube.libsonnet"; { - local top = self, - // Per-cluster components + // Cluster sets up all cluster-specific monitoring resources in their own namespace. + // Currently this consists of a prometheus server that scrapes k8s nodes for kubelet + // and cAdvisor metrics. Cluster(name):: { local cluster = self, local cfg = cluster.cfg, @@ -15,7 +16,7 @@ local kube = import "../../kube/kube.libsonnet"; }, storageClasses: { - prometheus: "waw-hdd-redundant-3", + prometheus: error "storageClasses.prometheus must be set", }, }, @@ -223,6 +224,4 @@ local kube = import "../../kube/kube.libsonnet"; }, }, }, - - k0: top.Cluster("k0"), }