
tobs - The Observability Stack for Kubernetes is a Kubernetes monitoring stack that collects metrics with Prometheus, visualizes them with Grafana, and stores them long term in TimescaleDB through Promscale. It also bundles supporting components such as AlertManager, Node-Exporter, and Kube-State-Metrics, so a single Helm release provides collection, storage, alerting, and dashboards.
This guide explains how to install tobs in a Vultr Kubernetes Engine (VKE) cluster and back its metrics database with Vultr Object Storage. It covers installing the stack with Helm, customizing the chart values for Vultr Block Storage, visualizing metrics in Grafana, querying the metrics database directly with SQL, and troubleshooting a failed deployment.
The tobs project is archived and no longer maintained by the community. The repository was archived upstream, the last release was published in January 2023, and Promscale, the component that stores metrics in TimescaleDB, is archived as well. The stack receives no further updates or security fixes. Evaluate a maintained alternative such as the Prometheus Operator with Grafana, or Grafana Mimir, before deploying tobs to a production cluster.
Before you begin, you need to:
The tobs Helm chart pins each bundled component to a version tested against a specific range of Kubernetes releases. Confirm that your cluster falls within the supported range before installing, because an unsupported version leaves pods in a crash loop that is difficult to diagnose later.
Check the Kubernetes version running on your nodes.
The output displays each node with a Ready status and its Kubernetes version.
Check the compatibility matrix to confirm which tobs version supports your Kubernetes version.
Add the Timescale Helm repository.
Update the repository cache.
Generate a values file from the chart defaults.
Open the values file in a text editor.
Change every storage: 8Gi entry to storage: 10Gi. Vultr Block Storage enforces a 10 GB minimum, so a smaller request leaves the volume claim unbound.
Reduce the size: 150Gi value under timescaledb-single to a smaller volume if you want to lower the storage cost.
Save and close the file.
Install the stack. Replace RELEASE-NAME with a name for the Helm release.
The installer prompts for your Object Storage bucket name, endpoint hostname, region, access key, and secret key. Enter the values for the bucket you created in the prerequisites, and leave the region blank to accept the default.
--wait flag is required. The chart creates OpenTelemetry custom resources only after the OpenTelemetry operator is running, and omitting the flag causes those resources to fail. You can omit it when installing tobs without OpenTelemetry support.Watch the deployment progress.
The installation takes several minutes. Pods report CrashLoopBackOff while dependencies start, which is expected during this period.
Verify that the stack finished deploying.
Verify that the Prometheus, Grafana, Promscale, TimescaleDB, and exporter pods all report a Running status. Pods that remain in CrashLoopBackOff after the deployment settles indicate a problem, which the troubleshooting section addresses.
Every component in tobs is configured through the Helm values file rather than through individual component settings. Editing that single file and upgrading the release keeps the whole stack consistent.
Review the default values file in the project repository to see the available settings, which are documented inline.
Consult the Helm chart documentation for a description of each configuration option.
Apply any changes by upgrading the release with your edited values file. Replace RELEASE-NAME with your Helm release name.
Failed deployments surface as pods stuck in a crash loop, and the cause is usually visible in the cluster events or the pod logs. Work from the cluster-wide events down to the individual pod.
List cluster events in chronological order.
Describe a failing pod to inspect its state and recent events. Replace POD-NAME with the name of the pod.
View the logs of a failing pod. Replace POD-NAME with the name of the pod.
The Promscale pod stores its own copy of the database password. When that copy falls out of sync with the TimescaleDB superuser password, Promscale fails to connect and enters a crash loop.
View the Promscale pod log. Replace POD-NAME with your Promscale pod name.
A password mismatch produces the following error.
Read the superuser password from the credentials secret.
Edit the Promscale secret and set the PROMSCALE_DB_PASSWORD key to the value from the previous step.
Delete the Promscale pod so that the deployment recreates it with the corrected secret. Replace POD-NAME with your Promscale pod name.
Verify that the replacement pod reaches a Running status.
You have installed the tobs observability stack in a Vultr Kubernetes Engine cluster, configured it to store long-term metrics in TimescaleDB with Vultr Object Storage as the backup target, and resolved the most common deployment failure. Because the project is archived, treat this deployment as a short-term or evaluation setup and plan a migration to a maintained stack. For more information, visit the tobs repository.
0 Comments
Be the first to comment and share your perspective with the community.