[WIP] Add VictoriaMetrics Charts - #909
Draft
methylDragon wants to merge 8 commits into
Draft
Conversation
Extract Grafana from the Prometheus application, enabling it to be
deployed and managed independently.
#### Why
Previously, Grafana was deployed as a component of the Prometheus
operator chart, which tightly coupled its lifecycle and configuration
to Prometheus. This change decouples Grafana, allowing for:
- **Independent Management:** Grafana can now be configured, deployed,
and updated separately from Prometheus.
- **Clearer Ownership:** Grafana resources are now owned by its own
dedicated application definition.
- **Reduced Conflicts:** Explicitly disables Grafana within the
Prometheus chart and ensures CRD ownership is handled correctly,
preventing resource conflicts.
#### The code changes include:
- Adding a new `grafana` application definition under `src/app_charts`.
- Moving Grafana's HTTPRoute and Ingress configurations to the new app.
- Configuring the standalone Grafana to use the `kube-prometheus-stack`
Helm chart, but with only Grafana components enabled.
- Disabling Grafana within the `prometheus` application's chart.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
Introduces VictoriaMetrics as a new telemetry stack for collecting,
storing, and alerting on metrics, with a focus on domain-specific
deployments.
#### Why
This change provides a scalable and robust observability solution by:
- **Isolating Telemetry Domains:** Separates 'robot metrics' (originating
from physical edge devices) from 'cloud metrics' (from cloud
infrastructure and microservices) into distinct VictoriaMetrics
deployments. This enables tailored scaling, retention, and alerting
for each data domain.
- **Enabling Edge-to-Cloud Flow:** Deploys lightweight `vmagent` on
edge robots to scrape local metrics and securely `remoteWrite` them
to a dedicated VictoriaMetrics cluster in the cloud.
- **Enhancing Configurability:** Integrates extensive Helm templating
to allow fine-grained control over all VictoriaMetrics components,
including resources, replication, monitoring selectors, remote write
endpoints, and service account annotations.
- **Prometheus Compatibility:** Updates the existing Prometheus chart to
support dynamic overrides for `serviceMonitorSelector` and
`podMonitorSelector`, facilitating a smoother transition or
coexistence with VictoriaMetrics.
#### The code changes include:
- Adding new `victoriametrics-robotmetrics` and
`victoriametrics-cloudmetrics` application definitions.
- Integrating the `victoria-metrics-k8s-stack` third-party Helm chart.
- Implementing Go templating post-processors to inject dynamic
configuration into the rendered VictoriaMetrics manifests.
- Defining separate cloud and robot deployment configurations for
`victoriametrics-robotmetrics`, including a dedicated `remoteWrite`
ingress for robot agents.
- Adding a `smartctl-exporter` for robot disk health monitoring.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is just an all encompassing PR to show what I'm doing. To make it easier to review I'll break it up into a stack eventually.