Prometheus Operator install

Prometheus operator allows setting up and configuring Prometheus servers running in your cluster. As part of the helm installation we also set up by default ServiceMonitor and PodMonitor objects which define how to scrape our services.

If your cluster doesn’t have Prometheus operator installed already, you can install one from our repository or the official helm, depending on your setup. Note that, unlike the official helm, Tabnine’s version doesn’t install Prometheus server by default (.prometheus.enabled is set to false). If you opt-in to install the prometheus server as part of the kube-prometheus-stack - either from the official helm or by setting .prometheus.enabled=true in our chat’s values, you will need to fine-tune the server configuration in the helm chart and not in the Prometheus server object shown later on, as it will be created by the helm chart.

helm upgrade --install --create-namespace -n monitoring monitoring oci://registry.tabnine.com/self-hosted/kube-prometheus-stack

Check if there is an installed operator in your cluster

If you are unsure if the operator is in your cluster, you can run the following commands

# Make sure you have the relevant CRDs installed
$ kubectl get crd | grep monitoring.coreos.com
alertmanagerconfigs.monitoring.coreos.com        2022-12-08T13:15:57Z
alertmanagers.monitoring.coreos.com              2022-12-08T13:15:57Z
podmonitors.monitoring.coreos.com                2022-12-08T13:15:58Z
probes.monitoring.coreos.com                     2022-12-08T13:15:58Z
prometheuses.monitoring.coreos.com               2022-12-08T13:15:59Z
prometheusrules.monitoring.coreos.com            2022-12-08T13:15:59Z
servicemonitors.monitoring.coreos.com            2022-12-08T13:16:00Z
thanosrulers.monitoring.coreos.com               2022-12-08T13:16:00Z

# Make sure there is a prometheus operator running. Note that depening on the helm installation the name might be slightly different.
$ kubectl get pods -A | grep operator
monitoring                     kube-prometheus-stack-operator-XX

Check if you already have Prometheus server in your cluster

$ kubectl get prometheus -A
NAMESPACE    NAME
monitoring   kube-prometheus-stack-prometheus

Note that if you have enabled telemetry as part of Tabnine installation, you will see a Prometheus server created by Tabnine. That server is used for remote-writing metrics to Tabnine and doesn’t persist data locally. If that is the only server you see in the list, or there are none, you can create a server based on the example below.

If you have a Prometheus server, It might be configured the collect data only from Pod/ServiceMontors with specific labels and/or namespaces. Run the following command (based on the example output above, this might be different in your environment) and check the output of the following fields

  • Pod Monitor Namespace Selector

  • Pod Monitor Selector

  • Service Monitor Namespace Selector

  • Service Monitor Selector

In its default setup kube-prometheus-stack requires some labels to be present on the monitor objects for them to be propagated to the Prometheus server. If that is the case, write down the required labels - we will use them below

Last updated