Getting Started with Helm Charts (Monitoring using Prometheus Operator)
This document explains how to get started with Scalar products monitoring on Kubernetes using Prometheus Operator (kube-prometheus-stack). Here, we assume that you already have a Mac or Linux environment for testing. We use Minikube in this document, but the steps we will show should work in any Kubernetes cluster.
What we create
We will deploy the following components on a Kubernetes cluster as follows.
+--------------------------------------------------------------------------------------------------+
| +------------------------------------------------------+ +-----------------+ |
| | kube-prometheus-stack | | Scalar Products | |
| | | | | |
| | +--------------+ +--------------+ +--------------+ | -----(Monitor)----> | +-----------+ | |
| | | Prometheus | | Alertmanager | | Grafana | | | | ScalarDB | | |
| | +-------+------+ +------+-------+ +------+-------+ | | +-----------+ | |
| | | | | | | +-----------+ | |
| | +----------------+-----------------+ | | | ScalarDL | | |
| | | | | +-----------+ | |
| +--------------------------+---------------------------+ +-----------------+ |
| | |
| | Kubernetes |
+----------------------------+---------------------------------------------------------------------+
| <- expose to localhost (127.0.0.1) or use load balancer etc to access
|
(Access Dashboard through HTTP)
|
+----+----+
| Browser |
+---------+
Step 1. Start a Kubernetes cluster
First, you need to prepare a Kubernetes cluster. If you use a minikube environment, please refer to the Getting Started with Scalar Helm Charts. If you have already started a Kubernetes cluster, you can skip this step.
Step 2. Prepare a custom values file
-
Save the sample file scalar-prometheus-custom-values.yaml for
kube-prometheus-stack
. -
Add custom values in the
scalar-prometheus-custom-values.yaml
as follows.- settings
prometheus.service.type
toLoadBalancer
alertmanager.service.type
toLoadBalancer
grafana.service.type
toLoadBalancer
grafana.service.port
to3000
- Example
alertmanager:
service:
type: LoadBalancer
...
grafana:
service:
type: LoadBalancer
port: 3000
...
prometheus:
service:
type: LoadBalancer
... - Note:
-
If you want to customize the Prometheus Operator deployment by using Helm Charts, you'll need to set the following configurations to monitor Scalar products:
- Set
serviceMonitorSelectorNilUsesHelmValues
andruleSelectorNilUsesHelmValues
tofalse
(true
by default) so that Prometheus Operator can detectServiceMonitor
andPrometheusRule
for Scalar products.
- Set
-
If you want to use Scalar Manager, you'll need to set the following configurations to enable Scalar Manager to collect CPU and memory resources:
- Set
kubeStateMetrics.enabled
,nodeExporter.enabled
, andkubelet.enabled
totrue
.
- Set
-
If you want to use Scalar Manager, you'll need to set the following configurations to enable Scalar Manager to embed Grafana:
- Set
grafana.ini.security.allow_embedding
andgrafana.ini.auth.anonymous.enabled
totrue
. - Set
grafana.ini.auth.anonymous.org_name
to the organization you are using. If you're using the sample custom values, the value isMain Org.
. - Set
grafana.ini.auth.anonymous.org_role
toEditor
.
- Set
-
- settings
Step 3. Deploy kube-prometheus-stack
-
Add the
prometheus-community
helm repository.helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
-
Create a namespace
monitoring
on the Kubernetes.kubectl create namespace monitoring
-
Deploy the
kube-prometheus-stack
.helm install scalar-monitoring prometheus-community/kube-prometheus-stack -n monitoring -f scalar-prometheus-custom-values.yaml