Skip to content

Add VictoriaMetrics k8s-stack - #874

Draft
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps
Draft

Add VictoriaMetrics k8s-stack#874
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps

Conversation

@methylDragon

Copy link
Copy Markdown
Contributor

Introduces VictoriaMetrics, restructures app configurations, and enhances Prometheus selectors.

This extensive change integrates VictoriaMetrics as a new primary observability stack, splitting it into dedicated cloud and robot telemetry applications. It modernizes Helm chart management through a new k8s-stack umbrella chart and refactors application definitions for consistency, while also adding granular ServiceMonitor and PodMonitor selector configuration for existing Prometheus deployments (to allow for a migration path (to filter out scrapes) where both exists).

Very roughly, the idea:
image

Changes

  • VictoriaMetrics Integration: Introduced a new VictoriaMetrics observability stack, built on the victoria-metrics-k8s-stack Helm chart. This stack is split into two distinct applications:
    • victoriametrics-cloudmetrics: For cloud service and Kubernetes infrastructure telemetry.
    • victoriametrics-robotmetrics: For robot edge telemetry, with separate cloud (ingestion/storage/alerting) and robot (local scraping agents) deployment targets.
  • Configurable Prometheus Selectors: Modified the Prometheus prometheus-operator.yaml to dynamically inject serviceMonitorSelector and podMonitorSelector values, allowing operators to customize which ServiceMonitors and PodMonitors Prometheus will discover.
  • Application Structure Refinement: Refactored the application chart directory structure, moving victoriametrics-cloudmetrics and victoriametrics-robotmetrics under a new src/app_charts/victoriametrics/ parent directory.
  • Bazel Build Rule Updates: Updated src/app_charts/BUILD.bazel to support nested application paths (e.g., victoriametrics/victoriametrics-cloudmetrics), extracting the final component as the app name. New BUILD.bazel files were added for the VictoriaMetrics sub-apps.
  • New Exporters and Network Components: Added a smartctl-exporter (DaemonSet, Service, ServiceMonitor) for robot metrics. Introduced Ingress and HTTPRoute definitions for VictoriaMetrics query and write endpoints, configured with authentication mechanisms.
  • Third-Party Dependencies: Added new Helm chart dependencies victoria-metrics-k8s-stack (v0.91.0) under third_party/.

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>
Adapted from original: #852
This change introduces VictoriaMetrics as a new monitoring solution, implemented as two distinct applications for scalable and flexible metrics collection and storage:
- **victoriametrics-cloudmetrics:** Deploys a VictoriaMetrics cluster (vmstorage, vminsert, vmselect) and vmagent to collect and store metrics from the Kubernetes cloud cluster (e.g., kube-state-metrics, kubelet/cAdvisor).
- **victoriametrics-robotmetrics:** Establishes a cloud-side VictoriaMetrics cluster and vmalert for robot metrics, alongside robot-side agents (vmagent, node-exporter, smartctl-exporter) for local scraping and remote writing.
To support the newer VictoriaMetrics Helm charts and their dependencies, the hermetic Helm 3 binary has been upgraded to v3.21.3. This version is compatible with features like victoria-metrics-common templates that were incompatible with the older Helm v3.9.0.
This also includes adding the necessary Bazel BUILD rules and pulling in new third-party Helm chart dependencies for VictoriaMetrics components (agent, alert, cluster) and Grafana.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
This change reorganizes the VictoriaMetrics application charts into a
nested directory structure (`src/app_charts/victoriametrics/`) for
better logical grouping and clarity.
Key updates include:
* **Consolidated Structure:** Moves `victoriametrics-robotmetrics` and
`victoriametrics-cloudmetrics` under a unified `victoriametrics/` path.
* **Standardized Naming:** Aligns release names, Kubernetes resource names,
and Helm value variables across all VictoriaMetrics components for
improved consistency (e.g., `victoriametrics-cloudmetrics-agent`,
`victoriametrics_robotmetrics_ingress_auth_url`).
* **Enhanced vmagent Extensibility:** Adds templating to inject custom
sidecar containers, volumes, and volume mounts into `vmagent` deployments,
allowing for flexible integration patterns like credential management.
* **Updated Chart Versions:** Bumps `victoria-metrics-cluster` to 0.48.0
and `victoria-metrics-alert` to 0.46.0, and introduces `victoria-metrics-agent`
0.45.0 for the cloud-side robotmetrics ingestion proxy.
* **Improved Documentation:** Provides new `README.md` files detailing
the VictoriaMetrics architecture and sub-component roles.
* **Bazel Build Updates:** Adjusts `BUILD.bazel` rules to support the
new nested chart paths.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
…overy
This change enhances monitoring configurations by:
* **Prometheus:** Allows users to define custom `serviceMonitorSelector` and `podMonitorSelector` via Helm values. If not specified, these fields are omitted from the Prometheus CRD, leveraging the Prometheus Operator's default behavior to universally match `ServiceMonitor` and `PodMonitor` resources. This replaces the previous explicit "select all" match expressions in the default values.
* **VictoriaMetrics Agent:** Replaces the legacy universal pod discovery with an annotation-driven mechanism. The `vmagent` now dynamically discovers and scrapes pods explicitly annotated with `prometheus.io/scrape: "true"`, standardizing how metrics are collected from pods.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from fd26c1c to 26dc4abCompareAugust 18, 2026 10:17
This change migrates all VictoriaMetrics deployments to use the unified
`victoria-metrics-k8s-stack` Helm chart, replacing individual VM component
charts for `vmcluster`, `vmagent`, and `vmalert`.
This migration brings several benefits:
* **Simplified Management:** Consolidates multiple individual VM component
charts into a single `victoria-metrics-k8s-stack` Helm chart, streamlining
Bazel `BUILD` rules and application definitions.
* **Enhanced Configurability:** Introduces robust templating logic to allow
dynamic injection of complex YAML structures (e.g., `serviceMonitorSelector`,
`remoteWrite` configurations, `extraContainers`, `volumes`) from Helm values,
providing greater customization flexibility.
* **Standardized Deployment:** Ensures a consistent deployment model for both
`victoriametrics-cloudmetrics` and `victoriametrics-robotmetrics` applications.
* **Improved Alerting:** Adds a common `base-alerts.yaml` for essential monitoring.
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from 26dc4ab to 9a55331CompareAugust 18, 2026 10:23
@methylDragon
methylDragonforce-pushed the ch3/standalone-grafana branch 2 times, most recently from 288f0be to adff071CompareAugust 19, 2026 21:44
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@methylDragon
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Add VictoriaMetrics k8s-stack by methylDragon · Pull Request #874 · googlecloudrobotics/core · GitHub
Skip to content

Add VictoriaMetrics k8s-stack - #874

Draft
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps
Draft

Add VictoriaMetrics k8s-stack#874
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps

Conversation

@methylDragon

Copy link
Copy Markdown
Contributor

Introduces VictoriaMetrics, restructures app configurations, and enhances Prometheus selectors.

This extensive change integrates VictoriaMetrics as a new primary observability stack, splitting it into dedicated cloud and robot telemetry applications. It modernizes Helm chart management through a new k8s-stack umbrella chart and refactors application definitions for consistency, while also adding granular ServiceMonitor and PodMonitor selector configuration for existing Prometheus deployments (to allow for a migration path (to filter out scrapes) where both exists).

Very roughly, the idea:
image

Changes

  • VictoriaMetrics Integration: Introduced a new VictoriaMetrics observability stack, built on the victoria-metrics-k8s-stack Helm chart. This stack is split into two distinct applications:
    • victoriametrics-cloudmetrics: For cloud service and Kubernetes infrastructure telemetry.
    • victoriametrics-robotmetrics: For robot edge telemetry, with separate cloud (ingestion/storage/alerting) and robot (local scraping agents) deployment targets.
  • Configurable Prometheus Selectors: Modified the Prometheus prometheus-operator.yaml to dynamically inject serviceMonitorSelector and podMonitorSelector values, allowing operators to customize which ServiceMonitors and PodMonitors Prometheus will discover.
  • Application Structure Refinement: Refactored the application chart directory structure, moving victoriametrics-cloudmetrics and victoriametrics-robotmetrics under a new src/app_charts/victoriametrics/ parent directory.
  • Bazel Build Rule Updates: Updated src/app_charts/BUILD.bazel to support nested application paths (e.g., victoriametrics/victoriametrics-cloudmetrics), extracting the final component as the app name. New BUILD.bazel files were added for the VictoriaMetrics sub-apps.
  • New Exporters and Network Components: Added a smartctl-exporter (DaemonSet, Service, ServiceMonitor) for robot metrics. Introduced Ingress and HTTPRoute definitions for VictoriaMetrics query and write endpoints, configured with authentication mechanisms.
  • Third-Party Dependencies: Added new Helm chart dependencies victoria-metrics-k8s-stack (v0.91.0) under third_party/.

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>
Adapted from original: #852
This change introduces VictoriaMetrics as a new monitoring solution, implemented as two distinct applications for scalable and flexible metrics collection and storage:
- **victoriametrics-cloudmetrics:** Deploys a VictoriaMetrics cluster (vmstorage, vminsert, vmselect) and vmagent to collect and store metrics from the Kubernetes cloud cluster (e.g., kube-state-metrics, kubelet/cAdvisor).
- **victoriametrics-robotmetrics:** Establishes a cloud-side VictoriaMetrics cluster and vmalert for robot metrics, alongside robot-side agents (vmagent, node-exporter, smartctl-exporter) for local scraping and remote writing.
To support the newer VictoriaMetrics Helm charts and their dependencies, the hermetic Helm 3 binary has been upgraded to v3.21.3. This version is compatible with features like victoria-metrics-common templates that were incompatible with the older Helm v3.9.0.
This also includes adding the necessary Bazel BUILD rules and pulling in new third-party Helm chart dependencies for VictoriaMetrics components (agent, alert, cluster) and Grafana.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
This change reorganizes the VictoriaMetrics application charts into a
nested directory structure (`src/app_charts/victoriametrics/`) for
better logical grouping and clarity.
Key updates include:
* **Consolidated Structure:** Moves `victoriametrics-robotmetrics` and
`victoriametrics-cloudmetrics` under a unified `victoriametrics/` path.
* **Standardized Naming:** Aligns release names, Kubernetes resource names,
and Helm value variables across all VictoriaMetrics components for
improved consistency (e.g., `victoriametrics-cloudmetrics-agent`,
`victoriametrics_robotmetrics_ingress_auth_url`).
* **Enhanced vmagent Extensibility:** Adds templating to inject custom
sidecar containers, volumes, and volume mounts into `vmagent` deployments,
allowing for flexible integration patterns like credential management.
* **Updated Chart Versions:** Bumps `victoria-metrics-cluster` to 0.48.0
and `victoria-metrics-alert` to 0.46.0, and introduces `victoria-metrics-agent`
0.45.0 for the cloud-side robotmetrics ingestion proxy.
* **Improved Documentation:** Provides new `README.md` files detailing
the VictoriaMetrics architecture and sub-component roles.
* **Bazel Build Updates:** Adjusts `BUILD.bazel` rules to support the
new nested chart paths.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
…overy
This change enhances monitoring configurations by:
* **Prometheus:** Allows users to define custom `serviceMonitorSelector` and `podMonitorSelector` via Helm values. If not specified, these fields are omitted from the Prometheus CRD, leveraging the Prometheus Operator's default behavior to universally match `ServiceMonitor` and `PodMonitor` resources. This replaces the previous explicit "select all" match expressions in the default values.
* **VictoriaMetrics Agent:** Replaces the legacy universal pod discovery with an annotation-driven mechanism. The `vmagent` now dynamically discovers and scrapes pods explicitly annotated with `prometheus.io/scrape: "true"`, standardizing how metrics are collected from pods.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from fd26c1c to 26dc4abCompareAugust 18, 2026 10:17
This change migrates all VictoriaMetrics deployments to use the unified
`victoria-metrics-k8s-stack` Helm chart, replacing individual VM component
charts for `vmcluster`, `vmagent`, and `vmalert`.
This migration brings several benefits:
* **Simplified Management:** Consolidates multiple individual VM component
charts into a single `victoria-metrics-k8s-stack` Helm chart, streamlining
Bazel `BUILD` rules and application definitions.
* **Enhanced Configurability:** Introduces robust templating logic to allow
dynamic injection of complex YAML structures (e.g., `serviceMonitorSelector`,
`remoteWrite` configurations, `extraContainers`, `volumes`) from Helm values,
providing greater customization flexibility.
* **Standardized Deployment:** Ensures a consistent deployment model for both
`victoriametrics-cloudmetrics` and `victoriametrics-robotmetrics` applications.
* **Improved Alerting:** Adds a common `base-alerts.yaml` for essential monitoring.
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from 26dc4ab to 9a55331CompareAugust 18, 2026 10:23
@methylDragon
methylDragonforce-pushed the ch3/standalone-grafana branch 2 times, most recently from 288f0be to adff071CompareAugust 19, 2026 21:44
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@methylDragon
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add VictoriaMetrics k8s-stack by methylDragon · Pull Request #874 · googlecloudrobotics/core · GitHub
Skip to content

Add VictoriaMetrics k8s-stack - #874

Draft
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps
Draft

Add VictoriaMetrics k8s-stack#874
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps

Conversation

@methylDragon

Copy link
Copy Markdown
Contributor

Introduces VictoriaMetrics, restructures app configurations, and enhances Prometheus selectors.

This extensive change integrates VictoriaMetrics as a new primary observability stack, splitting it into dedicated cloud and robot telemetry applications. It modernizes Helm chart management through a new k8s-stack umbrella chart and refactors application definitions for consistency, while also adding granular ServiceMonitor and PodMonitor selector configuration for existing Prometheus deployments (to allow for a migration path (to filter out scrapes) where both exists).

Very roughly, the idea:
image

Changes

  • VictoriaMetrics Integration: Introduced a new VictoriaMetrics observability stack, built on the victoria-metrics-k8s-stack Helm chart. This stack is split into two distinct applications:
    • victoriametrics-cloudmetrics: For cloud service and Kubernetes infrastructure telemetry.
    • victoriametrics-robotmetrics: For robot edge telemetry, with separate cloud (ingestion/storage/alerting) and robot (local scraping agents) deployment targets.
  • Configurable Prometheus Selectors: Modified the Prometheus prometheus-operator.yaml to dynamically inject serviceMonitorSelector and podMonitorSelector values, allowing operators to customize which ServiceMonitors and PodMonitors Prometheus will discover.
  • Application Structure Refinement: Refactored the application chart directory structure, moving victoriametrics-cloudmetrics and victoriametrics-robotmetrics under a new src/app_charts/victoriametrics/ parent directory.
  • Bazel Build Rule Updates: Updated src/app_charts/BUILD.bazel to support nested application paths (e.g., victoriametrics/victoriametrics-cloudmetrics), extracting the final component as the app name. New BUILD.bazel files were added for the VictoriaMetrics sub-apps.
  • New Exporters and Network Components: Added a smartctl-exporter (DaemonSet, Service, ServiceMonitor) for robot metrics. Introduced Ingress and HTTPRoute definitions for VictoriaMetrics query and write endpoints, configured with authentication mechanisms.
  • Third-Party Dependencies: Added new Helm chart dependencies victoria-metrics-k8s-stack (v0.91.0) under third_party/.

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>
Adapted from original: #852
This change introduces VictoriaMetrics as a new monitoring solution, implemented as two distinct applications for scalable and flexible metrics collection and storage:
- **victoriametrics-cloudmetrics:** Deploys a VictoriaMetrics cluster (vmstorage, vminsert, vmselect) and vmagent to collect and store metrics from the Kubernetes cloud cluster (e.g., kube-state-metrics, kubelet/cAdvisor).
- **victoriametrics-robotmetrics:** Establishes a cloud-side VictoriaMetrics cluster and vmalert for robot metrics, alongside robot-side agents (vmagent, node-exporter, smartctl-exporter) for local scraping and remote writing.
To support the newer VictoriaMetrics Helm charts and their dependencies, the hermetic Helm 3 binary has been upgraded to v3.21.3. This version is compatible with features like victoria-metrics-common templates that were incompatible with the older Helm v3.9.0.
This also includes adding the necessary Bazel BUILD rules and pulling in new third-party Helm chart dependencies for VictoriaMetrics components (agent, alert, cluster) and Grafana.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
This change reorganizes the VictoriaMetrics application charts into a
nested directory structure (`src/app_charts/victoriametrics/`) for
better logical grouping and clarity.
Key updates include:
* **Consolidated Structure:** Moves `victoriametrics-robotmetrics` and
`victoriametrics-cloudmetrics` under a unified `victoriametrics/` path.
* **Standardized Naming:** Aligns release names, Kubernetes resource names,
and Helm value variables across all VictoriaMetrics components for
improved consistency (e.g., `victoriametrics-cloudmetrics-agent`,
`victoriametrics_robotmetrics_ingress_auth_url`).
* **Enhanced vmagent Extensibility:** Adds templating to inject custom
sidecar containers, volumes, and volume mounts into `vmagent` deployments,
allowing for flexible integration patterns like credential management.
* **Updated Chart Versions:** Bumps `victoria-metrics-cluster` to 0.48.0
and `victoria-metrics-alert` to 0.46.0, and introduces `victoria-metrics-agent`
0.45.0 for the cloud-side robotmetrics ingestion proxy.
* **Improved Documentation:** Provides new `README.md` files detailing
the VictoriaMetrics architecture and sub-component roles.
* **Bazel Build Updates:** Adjusts `BUILD.bazel` rules to support the
new nested chart paths.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
…overy
This change enhances monitoring configurations by:
* **Prometheus:** Allows users to define custom `serviceMonitorSelector` and `podMonitorSelector` via Helm values. If not specified, these fields are omitted from the Prometheus CRD, leveraging the Prometheus Operator's default behavior to universally match `ServiceMonitor` and `PodMonitor` resources. This replaces the previous explicit "select all" match expressions in the default values.
* **VictoriaMetrics Agent:** Replaces the legacy universal pod discovery with an annotation-driven mechanism. The `vmagent` now dynamically discovers and scrapes pods explicitly annotated with `prometheus.io/scrape: "true"`, standardizing how metrics are collected from pods.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from fd26c1c to 26dc4abCompareAugust 18, 2026 10:17
This change migrates all VictoriaMetrics deployments to use the unified
`victoria-metrics-k8s-stack` Helm chart, replacing individual VM component
charts for `vmcluster`, `vmagent`, and `vmalert`.
This migration brings several benefits:
* **Simplified Management:** Consolidates multiple individual VM component
charts into a single `victoria-metrics-k8s-stack` Helm chart, streamlining
Bazel `BUILD` rules and application definitions.
* **Enhanced Configurability:** Introduces robust templating logic to allow
dynamic injection of complex YAML structures (e.g., `serviceMonitorSelector`,
`remoteWrite` configurations, `extraContainers`, `volumes`) from Helm values,
providing greater customization flexibility.
* **Standardized Deployment:** Ensures a consistent deployment model for both
`victoriametrics-cloudmetrics` and `victoriametrics-robotmetrics` applications.
* **Improved Alerting:** Adds a common `base-alerts.yaml` for essential monitoring.
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from 26dc4ab to 9a55331CompareAugust 18, 2026 10:23
@methylDragon
methylDragonforce-pushed the ch3/standalone-grafana branch 2 times, most recently from 288f0be to adff071CompareAugust 19, 2026 21:44
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@methylDragon
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add VictoriaMetrics k8s-stack by methylDragon · Pull Request #874 · googlecloudrobotics/core · GitHub
Skip to content

Add VictoriaMetrics k8s-stack - #874

Draft
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps
Draft

Add VictoriaMetrics k8s-stack#874
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps

Conversation

@methylDragon

Copy link
Copy Markdown
Contributor

Introduces VictoriaMetrics, restructures app configurations, and enhances Prometheus selectors.

This extensive change integrates VictoriaMetrics as a new primary observability stack, splitting it into dedicated cloud and robot telemetry applications. It modernizes Helm chart management through a new k8s-stack umbrella chart and refactors application definitions for consistency, while also adding granular ServiceMonitor and PodMonitor selector configuration for existing Prometheus deployments (to allow for a migration path (to filter out scrapes) where both exists).

Very roughly, the idea:
image

Changes

  • VictoriaMetrics Integration: Introduced a new VictoriaMetrics observability stack, built on the victoria-metrics-k8s-stack Helm chart. This stack is split into two distinct applications:
    • victoriametrics-cloudmetrics: For cloud service and Kubernetes infrastructure telemetry.
    • victoriametrics-robotmetrics: For robot edge telemetry, with separate cloud (ingestion/storage/alerting) and robot (local scraping agents) deployment targets.
  • Configurable Prometheus Selectors: Modified the Prometheus prometheus-operator.yaml to dynamically inject serviceMonitorSelector and podMonitorSelector values, allowing operators to customize which ServiceMonitors and PodMonitors Prometheus will discover.
  • Application Structure Refinement: Refactored the application chart directory structure, moving victoriametrics-cloudmetrics and victoriametrics-robotmetrics under a new src/app_charts/victoriametrics/ parent directory.
  • Bazel Build Rule Updates: Updated src/app_charts/BUILD.bazel to support nested application paths (e.g., victoriametrics/victoriametrics-cloudmetrics), extracting the final component as the app name. New BUILD.bazel files were added for the VictoriaMetrics sub-apps.
  • New Exporters and Network Components: Added a smartctl-exporter (DaemonSet, Service, ServiceMonitor) for robot metrics. Introduced Ingress and HTTPRoute definitions for VictoriaMetrics query and write endpoints, configured with authentication mechanisms.
  • Third-Party Dependencies: Added new Helm chart dependencies victoria-metrics-k8s-stack (v0.91.0) under third_party/.

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>
Adapted from original: #852
This change introduces VictoriaMetrics as a new monitoring solution, implemented as two distinct applications for scalable and flexible metrics collection and storage:
- **victoriametrics-cloudmetrics:** Deploys a VictoriaMetrics cluster (vmstorage, vminsert, vmselect) and vmagent to collect and store metrics from the Kubernetes cloud cluster (e.g., kube-state-metrics, kubelet/cAdvisor).
- **victoriametrics-robotmetrics:** Establishes a cloud-side VictoriaMetrics cluster and vmalert for robot metrics, alongside robot-side agents (vmagent, node-exporter, smartctl-exporter) for local scraping and remote writing.
To support the newer VictoriaMetrics Helm charts and their dependencies, the hermetic Helm 3 binary has been upgraded to v3.21.3. This version is compatible with features like victoria-metrics-common templates that were incompatible with the older Helm v3.9.0.
This also includes adding the necessary Bazel BUILD rules and pulling in new third-party Helm chart dependencies for VictoriaMetrics components (agent, alert, cluster) and Grafana.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
This change reorganizes the VictoriaMetrics application charts into a
nested directory structure (`src/app_charts/victoriametrics/`) for
better logical grouping and clarity.
Key updates include:
* **Consolidated Structure:** Moves `victoriametrics-robotmetrics` and
`victoriametrics-cloudmetrics` under a unified `victoriametrics/` path.
* **Standardized Naming:** Aligns release names, Kubernetes resource names,
and Helm value variables across all VictoriaMetrics components for
improved consistency (e.g., `victoriametrics-cloudmetrics-agent`,
`victoriametrics_robotmetrics_ingress_auth_url`).
* **Enhanced vmagent Extensibility:** Adds templating to inject custom
sidecar containers, volumes, and volume mounts into `vmagent` deployments,
allowing for flexible integration patterns like credential management.
* **Updated Chart Versions:** Bumps `victoria-metrics-cluster` to 0.48.0
and `victoria-metrics-alert` to 0.46.0, and introduces `victoria-metrics-agent`
0.45.0 for the cloud-side robotmetrics ingestion proxy.
* **Improved Documentation:** Provides new `README.md` files detailing
the VictoriaMetrics architecture and sub-component roles.
* **Bazel Build Updates:** Adjusts `BUILD.bazel` rules to support the
new nested chart paths.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
…overy
This change enhances monitoring configurations by:
* **Prometheus:** Allows users to define custom `serviceMonitorSelector` and `podMonitorSelector` via Helm values. If not specified, these fields are omitted from the Prometheus CRD, leveraging the Prometheus Operator's default behavior to universally match `ServiceMonitor` and `PodMonitor` resources. This replaces the previous explicit "select all" match expressions in the default values.
* **VictoriaMetrics Agent:** Replaces the legacy universal pod discovery with an annotation-driven mechanism. The `vmagent` now dynamically discovers and scrapes pods explicitly annotated with `prometheus.io/scrape: "true"`, standardizing how metrics are collected from pods.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from fd26c1c to 26dc4abCompareAugust 18, 2026 10:17
This change migrates all VictoriaMetrics deployments to use the unified
`victoria-metrics-k8s-stack` Helm chart, replacing individual VM component
charts for `vmcluster`, `vmagent`, and `vmalert`.
This migration brings several benefits:
* **Simplified Management:** Consolidates multiple individual VM component
charts into a single `victoria-metrics-k8s-stack` Helm chart, streamlining
Bazel `BUILD` rules and application definitions.
* **Enhanced Configurability:** Introduces robust templating logic to allow
dynamic injection of complex YAML structures (e.g., `serviceMonitorSelector`,
`remoteWrite` configurations, `extraContainers`, `volumes`) from Helm values,
providing greater customization flexibility.
* **Standardized Deployment:** Ensures a consistent deployment model for both
`victoriametrics-cloudmetrics` and `victoriametrics-robotmetrics` applications.
* **Improved Alerting:** Adds a common `base-alerts.yaml` for essential monitoring.
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from 26dc4ab to 9a55331CompareAugust 18, 2026 10:23
@methylDragon
methylDragonforce-pushed the ch3/standalone-grafana branch 2 times, most recently from 288f0be to adff071CompareAugust 19, 2026 21:44
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@methylDragon
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Add VictoriaMetrics k8s-stack by methylDragon · Pull Request #874 · googlecloudrobotics/core · GitHub
Skip to content

Add VictoriaMetrics k8s-stack - #874

Draft
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps
Draft

Add VictoriaMetrics k8s-stack#874
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps

Conversation

@methylDragon

Copy link
Copy Markdown
Contributor

Introduces VictoriaMetrics, restructures app configurations, and enhances Prometheus selectors.

This extensive change integrates VictoriaMetrics as a new primary observability stack, splitting it into dedicated cloud and robot telemetry applications. It modernizes Helm chart management through a new k8s-stack umbrella chart and refactors application definitions for consistency, while also adding granular ServiceMonitor and PodMonitor selector configuration for existing Prometheus deployments (to allow for a migration path (to filter out scrapes) where both exists).

Very roughly, the idea:
image

Changes

  • VictoriaMetrics Integration: Introduced a new VictoriaMetrics observability stack, built on the victoria-metrics-k8s-stack Helm chart. This stack is split into two distinct applications:
    • victoriametrics-cloudmetrics: For cloud service and Kubernetes infrastructure telemetry.
    • victoriametrics-robotmetrics: For robot edge telemetry, with separate cloud (ingestion/storage/alerting) and robot (local scraping agents) deployment targets.
  • Configurable Prometheus Selectors: Modified the Prometheus prometheus-operator.yaml to dynamically inject serviceMonitorSelector and podMonitorSelector values, allowing operators to customize which ServiceMonitors and PodMonitors Prometheus will discover.
  • Application Structure Refinement: Refactored the application chart directory structure, moving victoriametrics-cloudmetrics and victoriametrics-robotmetrics under a new src/app_charts/victoriametrics/ parent directory.
  • Bazel Build Rule Updates: Updated src/app_charts/BUILD.bazel to support nested application paths (e.g., victoriametrics/victoriametrics-cloudmetrics), extracting the final component as the app name. New BUILD.bazel files were added for the VictoriaMetrics sub-apps.
  • New Exporters and Network Components: Added a smartctl-exporter (DaemonSet, Service, ServiceMonitor) for robot metrics. Introduced Ingress and HTTPRoute definitions for VictoriaMetrics query and write endpoints, configured with authentication mechanisms.
  • Third-Party Dependencies: Added new Helm chart dependencies victoria-metrics-k8s-stack (v0.91.0) under third_party/.

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>
Adapted from original: #852
This change introduces VictoriaMetrics as a new monitoring solution, implemented as two distinct applications for scalable and flexible metrics collection and storage:
- **victoriametrics-cloudmetrics:** Deploys a VictoriaMetrics cluster (vmstorage, vminsert, vmselect) and vmagent to collect and store metrics from the Kubernetes cloud cluster (e.g., kube-state-metrics, kubelet/cAdvisor).
- **victoriametrics-robotmetrics:** Establishes a cloud-side VictoriaMetrics cluster and vmalert for robot metrics, alongside robot-side agents (vmagent, node-exporter, smartctl-exporter) for local scraping and remote writing.
To support the newer VictoriaMetrics Helm charts and their dependencies, the hermetic Helm 3 binary has been upgraded to v3.21.3. This version is compatible with features like victoria-metrics-common templates that were incompatible with the older Helm v3.9.0.
This also includes adding the necessary Bazel BUILD rules and pulling in new third-party Helm chart dependencies for VictoriaMetrics components (agent, alert, cluster) and Grafana.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
This change reorganizes the VictoriaMetrics application charts into a
nested directory structure (`src/app_charts/victoriametrics/`) for
better logical grouping and clarity.
Key updates include:
* **Consolidated Structure:** Moves `victoriametrics-robotmetrics` and
`victoriametrics-cloudmetrics` under a unified `victoriametrics/` path.
* **Standardized Naming:** Aligns release names, Kubernetes resource names,
and Helm value variables across all VictoriaMetrics components for
improved consistency (e.g., `victoriametrics-cloudmetrics-agent`,
`victoriametrics_robotmetrics_ingress_auth_url`).
* **Enhanced vmagent Extensibility:** Adds templating to inject custom
sidecar containers, volumes, and volume mounts into `vmagent` deployments,
allowing for flexible integration patterns like credential management.
* **Updated Chart Versions:** Bumps `victoria-metrics-cluster` to 0.48.0
and `victoria-metrics-alert` to 0.46.0, and introduces `victoria-metrics-agent`
0.45.0 for the cloud-side robotmetrics ingestion proxy.
* **Improved Documentation:** Provides new `README.md` files detailing
the VictoriaMetrics architecture and sub-component roles.
* **Bazel Build Updates:** Adjusts `BUILD.bazel` rules to support the
new nested chart paths.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
…overy
This change enhances monitoring configurations by:
* **Prometheus:** Allows users to define custom `serviceMonitorSelector` and `podMonitorSelector` via Helm values. If not specified, these fields are omitted from the Prometheus CRD, leveraging the Prometheus Operator's default behavior to universally match `ServiceMonitor` and `PodMonitor` resources. This replaces the previous explicit "select all" match expressions in the default values.
* **VictoriaMetrics Agent:** Replaces the legacy universal pod discovery with an annotation-driven mechanism. The `vmagent` now dynamically discovers and scrapes pods explicitly annotated with `prometheus.io/scrape: "true"`, standardizing how metrics are collected from pods.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from fd26c1c to 26dc4abCompareAugust 18, 2026 10:17
This change migrates all VictoriaMetrics deployments to use the unified
`victoria-metrics-k8s-stack` Helm chart, replacing individual VM component
charts for `vmcluster`, `vmagent`, and `vmalert`.
This migration brings several benefits:
* **Simplified Management:** Consolidates multiple individual VM component
charts into a single `victoria-metrics-k8s-stack` Helm chart, streamlining
Bazel `BUILD` rules and application definitions.
* **Enhanced Configurability:** Introduces robust templating logic to allow
dynamic injection of complex YAML structures (e.g., `serviceMonitorSelector`,
`remoteWrite` configurations, `extraContainers`, `volumes`) from Helm values,
providing greater customization flexibility.
* **Standardized Deployment:** Ensures a consistent deployment model for both
`victoriametrics-cloudmetrics` and `victoriametrics-robotmetrics` applications.
* **Improved Alerting:** Adds a common `base-alerts.yaml` for essential monitoring.
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from 26dc4ab to 9a55331CompareAugust 18, 2026 10:23
@methylDragon
methylDragonforce-pushed the ch3/standalone-grafana branch 2 times, most recently from 288f0be to adff071CompareAugust 19, 2026 21:44
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@methylDragon
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add VictoriaMetrics k8s-stack by methylDragon · Pull Request #874 · googlecloudrobotics/core · GitHub
Skip to content

Add VictoriaMetrics k8s-stack - #874

Draft
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps
Draft

Add VictoriaMetrics k8s-stack#874
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps

Conversation

@methylDragon

Copy link
Copy Markdown
Contributor

Introduces VictoriaMetrics, restructures app configurations, and enhances Prometheus selectors.

This extensive change integrates VictoriaMetrics as a new primary observability stack, splitting it into dedicated cloud and robot telemetry applications. It modernizes Helm chart management through a new k8s-stack umbrella chart and refactors application definitions for consistency, while also adding granular ServiceMonitor and PodMonitor selector configuration for existing Prometheus deployments (to allow for a migration path (to filter out scrapes) where both exists).

Very roughly, the idea:
image

Changes

  • VictoriaMetrics Integration: Introduced a new VictoriaMetrics observability stack, built on the victoria-metrics-k8s-stack Helm chart. This stack is split into two distinct applications:
    • victoriametrics-cloudmetrics: For cloud service and Kubernetes infrastructure telemetry.
    • victoriametrics-robotmetrics: For robot edge telemetry, with separate cloud (ingestion/storage/alerting) and robot (local scraping agents) deployment targets.
  • Configurable Prometheus Selectors: Modified the Prometheus prometheus-operator.yaml to dynamically inject serviceMonitorSelector and podMonitorSelector values, allowing operators to customize which ServiceMonitors and PodMonitors Prometheus will discover.
  • Application Structure Refinement: Refactored the application chart directory structure, moving victoriametrics-cloudmetrics and victoriametrics-robotmetrics under a new src/app_charts/victoriametrics/ parent directory.
  • Bazel Build Rule Updates: Updated src/app_charts/BUILD.bazel to support nested application paths (e.g., victoriametrics/victoriametrics-cloudmetrics), extracting the final component as the app name. New BUILD.bazel files were added for the VictoriaMetrics sub-apps.
  • New Exporters and Network Components: Added a smartctl-exporter (DaemonSet, Service, ServiceMonitor) for robot metrics. Introduced Ingress and HTTPRoute definitions for VictoriaMetrics query and write endpoints, configured with authentication mechanisms.
  • Third-Party Dependencies: Added new Helm chart dependencies victoria-metrics-k8s-stack (v0.91.0) under third_party/.

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>
Adapted from original: #852
This change introduces VictoriaMetrics as a new monitoring solution, implemented as two distinct applications for scalable and flexible metrics collection and storage:
- **victoriametrics-cloudmetrics:** Deploys a VictoriaMetrics cluster (vmstorage, vminsert, vmselect) and vmagent to collect and store metrics from the Kubernetes cloud cluster (e.g., kube-state-metrics, kubelet/cAdvisor).
- **victoriametrics-robotmetrics:** Establishes a cloud-side VictoriaMetrics cluster and vmalert for robot metrics, alongside robot-side agents (vmagent, node-exporter, smartctl-exporter) for local scraping and remote writing.
To support the newer VictoriaMetrics Helm charts and their dependencies, the hermetic Helm 3 binary has been upgraded to v3.21.3. This version is compatible with features like victoria-metrics-common templates that were incompatible with the older Helm v3.9.0.
This also includes adding the necessary Bazel BUILD rules and pulling in new third-party Helm chart dependencies for VictoriaMetrics components (agent, alert, cluster) and Grafana.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
This change reorganizes the VictoriaMetrics application charts into a
nested directory structure (`src/app_charts/victoriametrics/`) for
better logical grouping and clarity.
Key updates include:
* **Consolidated Structure:** Moves `victoriametrics-robotmetrics` and
`victoriametrics-cloudmetrics` under a unified `victoriametrics/` path.
* **Standardized Naming:** Aligns release names, Kubernetes resource names,
and Helm value variables across all VictoriaMetrics components for
improved consistency (e.g., `victoriametrics-cloudmetrics-agent`,
`victoriametrics_robotmetrics_ingress_auth_url`).
* **Enhanced vmagent Extensibility:** Adds templating to inject custom
sidecar containers, volumes, and volume mounts into `vmagent` deployments,
allowing for flexible integration patterns like credential management.
* **Updated Chart Versions:** Bumps `victoria-metrics-cluster` to 0.48.0
and `victoria-metrics-alert` to 0.46.0, and introduces `victoria-metrics-agent`
0.45.0 for the cloud-side robotmetrics ingestion proxy.
* **Improved Documentation:** Provides new `README.md` files detailing
the VictoriaMetrics architecture and sub-component roles.
* **Bazel Build Updates:** Adjusts `BUILD.bazel` rules to support the
new nested chart paths.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
…overy
This change enhances monitoring configurations by:
* **Prometheus:** Allows users to define custom `serviceMonitorSelector` and `podMonitorSelector` via Helm values. If not specified, these fields are omitted from the Prometheus CRD, leveraging the Prometheus Operator's default behavior to universally match `ServiceMonitor` and `PodMonitor` resources. This replaces the previous explicit "select all" match expressions in the default values.
* **VictoriaMetrics Agent:** Replaces the legacy universal pod discovery with an annotation-driven mechanism. The `vmagent` now dynamically discovers and scrapes pods explicitly annotated with `prometheus.io/scrape: "true"`, standardizing how metrics are collected from pods.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from fd26c1c to 26dc4abCompareAugust 18, 2026 10:17
This change migrates all VictoriaMetrics deployments to use the unified
`victoria-metrics-k8s-stack` Helm chart, replacing individual VM component
charts for `vmcluster`, `vmagent`, and `vmalert`.
This migration brings several benefits:
* **Simplified Management:** Consolidates multiple individual VM component
charts into a single `victoria-metrics-k8s-stack` Helm chart, streamlining
Bazel `BUILD` rules and application definitions.
* **Enhanced Configurability:** Introduces robust templating logic to allow
dynamic injection of complex YAML structures (e.g., `serviceMonitorSelector`,
`remoteWrite` configurations, `extraContainers`, `volumes`) from Helm values,
providing greater customization flexibility.
* **Standardized Deployment:** Ensures a consistent deployment model for both
`victoriametrics-cloudmetrics` and `victoriametrics-robotmetrics` applications.
* **Improved Alerting:** Adds a common `base-alerts.yaml` for essential monitoring.
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from 26dc4ab to 9a55331CompareAugust 18, 2026 10:23
@methylDragon
methylDragonforce-pushed the ch3/standalone-grafana branch 2 times, most recently from 288f0be to adff071CompareAugust 19, 2026 21:44
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@methylDragon
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add VictoriaMetrics k8s-stack by methylDragon · Pull Request #874 · googlecloudrobotics/core · GitHub
Skip to content

Add VictoriaMetrics k8s-stack - #874

Draft
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps
Draft

Add VictoriaMetrics k8s-stack#874
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps

Conversation

@methylDragon

Copy link
Copy Markdown
Contributor

Introduces VictoriaMetrics, restructures app configurations, and enhances Prometheus selectors.

This extensive change integrates VictoriaMetrics as a new primary observability stack, splitting it into dedicated cloud and robot telemetry applications. It modernizes Helm chart management through a new k8s-stack umbrella chart and refactors application definitions for consistency, while also adding granular ServiceMonitor and PodMonitor selector configuration for existing Prometheus deployments (to allow for a migration path (to filter out scrapes) where both exists).

Very roughly, the idea:
image

Changes

  • VictoriaMetrics Integration: Introduced a new VictoriaMetrics observability stack, built on the victoria-metrics-k8s-stack Helm chart. This stack is split into two distinct applications:
    • victoriametrics-cloudmetrics: For cloud service and Kubernetes infrastructure telemetry.
    • victoriametrics-robotmetrics: For robot edge telemetry, with separate cloud (ingestion/storage/alerting) and robot (local scraping agents) deployment targets.
  • Configurable Prometheus Selectors: Modified the Prometheus prometheus-operator.yaml to dynamically inject serviceMonitorSelector and podMonitorSelector values, allowing operators to customize which ServiceMonitors and PodMonitors Prometheus will discover.
  • Application Structure Refinement: Refactored the application chart directory structure, moving victoriametrics-cloudmetrics and victoriametrics-robotmetrics under a new src/app_charts/victoriametrics/ parent directory.
  • Bazel Build Rule Updates: Updated src/app_charts/BUILD.bazel to support nested application paths (e.g., victoriametrics/victoriametrics-cloudmetrics), extracting the final component as the app name. New BUILD.bazel files were added for the VictoriaMetrics sub-apps.
  • New Exporters and Network Components: Added a smartctl-exporter (DaemonSet, Service, ServiceMonitor) for robot metrics. Introduced Ingress and HTTPRoute definitions for VictoriaMetrics query and write endpoints, configured with authentication mechanisms.
  • Third-Party Dependencies: Added new Helm chart dependencies victoria-metrics-k8s-stack (v0.91.0) under third_party/.

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>
Adapted from original: #852
This change introduces VictoriaMetrics as a new monitoring solution, implemented as two distinct applications for scalable and flexible metrics collection and storage:
- **victoriametrics-cloudmetrics:** Deploys a VictoriaMetrics cluster (vmstorage, vminsert, vmselect) and vmagent to collect and store metrics from the Kubernetes cloud cluster (e.g., kube-state-metrics, kubelet/cAdvisor).
- **victoriametrics-robotmetrics:** Establishes a cloud-side VictoriaMetrics cluster and vmalert for robot metrics, alongside robot-side agents (vmagent, node-exporter, smartctl-exporter) for local scraping and remote writing.
To support the newer VictoriaMetrics Helm charts and their dependencies, the hermetic Helm 3 binary has been upgraded to v3.21.3. This version is compatible with features like victoria-metrics-common templates that were incompatible with the older Helm v3.9.0.
This also includes adding the necessary Bazel BUILD rules and pulling in new third-party Helm chart dependencies for VictoriaMetrics components (agent, alert, cluster) and Grafana.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
This change reorganizes the VictoriaMetrics application charts into a
nested directory structure (`src/app_charts/victoriametrics/`) for
better logical grouping and clarity.
Key updates include:
* **Consolidated Structure:** Moves `victoriametrics-robotmetrics` and
`victoriametrics-cloudmetrics` under a unified `victoriametrics/` path.
* **Standardized Naming:** Aligns release names, Kubernetes resource names,
and Helm value variables across all VictoriaMetrics components for
improved consistency (e.g., `victoriametrics-cloudmetrics-agent`,
`victoriametrics_robotmetrics_ingress_auth_url`).
* **Enhanced vmagent Extensibility:** Adds templating to inject custom
sidecar containers, volumes, and volume mounts into `vmagent` deployments,
allowing for flexible integration patterns like credential management.
* **Updated Chart Versions:** Bumps `victoria-metrics-cluster` to 0.48.0
and `victoria-metrics-alert` to 0.46.0, and introduces `victoria-metrics-agent`
0.45.0 for the cloud-side robotmetrics ingestion proxy.
* **Improved Documentation:** Provides new `README.md` files detailing
the VictoriaMetrics architecture and sub-component roles.
* **Bazel Build Updates:** Adjusts `BUILD.bazel` rules to support the
new nested chart paths.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
…overy
This change enhances monitoring configurations by:
* **Prometheus:** Allows users to define custom `serviceMonitorSelector` and `podMonitorSelector` via Helm values. If not specified, these fields are omitted from the Prometheus CRD, leveraging the Prometheus Operator's default behavior to universally match `ServiceMonitor` and `PodMonitor` resources. This replaces the previous explicit "select all" match expressions in the default values.
* **VictoriaMetrics Agent:** Replaces the legacy universal pod discovery with an annotation-driven mechanism. The `vmagent` now dynamically discovers and scrapes pods explicitly annotated with `prometheus.io/scrape: "true"`, standardizing how metrics are collected from pods.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from fd26c1c to 26dc4abCompareAugust 18, 2026 10:17
This change migrates all VictoriaMetrics deployments to use the unified
`victoria-metrics-k8s-stack` Helm chart, replacing individual VM component
charts for `vmcluster`, `vmagent`, and `vmalert`.
This migration brings several benefits:
* **Simplified Management:** Consolidates multiple individual VM component
charts into a single `victoria-metrics-k8s-stack` Helm chart, streamlining
Bazel `BUILD` rules and application definitions.
* **Enhanced Configurability:** Introduces robust templating logic to allow
dynamic injection of complex YAML structures (e.g., `serviceMonitorSelector`,
`remoteWrite` configurations, `extraContainers`, `volumes`) from Helm values,
providing greater customization flexibility.
* **Standardized Deployment:** Ensures a consistent deployment model for both
`victoriametrics-cloudmetrics` and `victoriametrics-robotmetrics` applications.
* **Improved Alerting:** Adds a common `base-alerts.yaml` for essential monitoring.
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from 26dc4ab to 9a55331CompareAugust 18, 2026 10:23
@methylDragon
methylDragonforce-pushed the ch3/standalone-grafana branch 2 times, most recently from 288f0be to adff071CompareAugust 19, 2026 21:44
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@methylDragon
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Add VictoriaMetrics k8s-stack by methylDragon · Pull Request #874 · googlecloudrobotics/core · GitHub
Skip to content

Add VictoriaMetrics k8s-stack - #874

Draft
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps
Draft

Add VictoriaMetrics k8s-stack#874
methylDragon wants to merge 5 commits into
ch3/standalone-grafanafrom
ch3/heet-crc-prometheus-vm-grafana-apps

Conversation

@methylDragon

Copy link
Copy Markdown
Contributor

Introduces VictoriaMetrics, restructures app configurations, and enhances Prometheus selectors.

This extensive change integrates VictoriaMetrics as a new primary observability stack, splitting it into dedicated cloud and robot telemetry applications. It modernizes Helm chart management through a new k8s-stack umbrella chart and refactors application definitions for consistency, while also adding granular ServiceMonitor and PodMonitor selector configuration for existing Prometheus deployments (to allow for a migration path (to filter out scrapes) where both exists).

Very roughly, the idea:
image

Changes

  • VictoriaMetrics Integration: Introduced a new VictoriaMetrics observability stack, built on the victoria-metrics-k8s-stack Helm chart. This stack is split into two distinct applications:
    • victoriametrics-cloudmetrics: For cloud service and Kubernetes infrastructure telemetry.
    • victoriametrics-robotmetrics: For robot edge telemetry, with separate cloud (ingestion/storage/alerting) and robot (local scraping agents) deployment targets.
  • Configurable Prometheus Selectors: Modified the Prometheus prometheus-operator.yaml to dynamically inject serviceMonitorSelector and podMonitorSelector values, allowing operators to customize which ServiceMonitors and PodMonitors Prometheus will discover.
  • Application Structure Refinement: Refactored the application chart directory structure, moving victoriametrics-cloudmetrics and victoriametrics-robotmetrics under a new src/app_charts/victoriametrics/ parent directory.
  • Bazel Build Rule Updates: Updated src/app_charts/BUILD.bazel to support nested application paths (e.g., victoriametrics/victoriametrics-cloudmetrics), extracting the final component as the app name. New BUILD.bazel files were added for the VictoriaMetrics sub-apps.
  • New Exporters and Network Components: Added a smartctl-exporter (DaemonSet, Service, ServiceMonitor) for robot metrics. Introduced Ingress and HTTPRoute definitions for VictoriaMetrics query and write endpoints, configured with authentication mechanisms.
  • Third-Party Dependencies: Added new Helm chart dependencies victoria-metrics-k8s-stack (v0.91.0) under third_party/.

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>
Adapted from original: #852
This change introduces VictoriaMetrics as a new monitoring solution, implemented as two distinct applications for scalable and flexible metrics collection and storage:
- **victoriametrics-cloudmetrics:** Deploys a VictoriaMetrics cluster (vmstorage, vminsert, vmselect) and vmagent to collect and store metrics from the Kubernetes cloud cluster (e.g., kube-state-metrics, kubelet/cAdvisor).
- **victoriametrics-robotmetrics:** Establishes a cloud-side VictoriaMetrics cluster and vmalert for robot metrics, alongside robot-side agents (vmagent, node-exporter, smartctl-exporter) for local scraping and remote writing.
To support the newer VictoriaMetrics Helm charts and their dependencies, the hermetic Helm 3 binary has been upgraded to v3.21.3. This version is compatible with features like victoria-metrics-common templates that were incompatible with the older Helm v3.9.0.
This also includes adding the necessary Bazel BUILD rules and pulling in new third-party Helm chart dependencies for VictoriaMetrics components (agent, alert, cluster) and Grafana.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
This change reorganizes the VictoriaMetrics application charts into a
nested directory structure (`src/app_charts/victoriametrics/`) for
better logical grouping and clarity.
Key updates include:
* **Consolidated Structure:** Moves `victoriametrics-robotmetrics` and
`victoriametrics-cloudmetrics` under a unified `victoriametrics/` path.
* **Standardized Naming:** Aligns release names, Kubernetes resource names,
and Helm value variables across all VictoriaMetrics components for
improved consistency (e.g., `victoriametrics-cloudmetrics-agent`,
`victoriametrics_robotmetrics_ingress_auth_url`).
* **Enhanced vmagent Extensibility:** Adds templating to inject custom
sidecar containers, volumes, and volume mounts into `vmagent` deployments,
allowing for flexible integration patterns like credential management.
* **Updated Chart Versions:** Bumps `victoria-metrics-cluster` to 0.48.0
and `victoria-metrics-alert` to 0.46.0, and introduces `victoria-metrics-agent`
0.45.0 for the cloud-side robotmetrics ingestion proxy.
* **Improved Documentation:** Provides new `README.md` files detailing
the VictoriaMetrics architecture and sub-component roles.
* **Bazel Build Updates:** Adjusts `BUILD.bazel` rules to support the
new nested chart paths.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
…overy
This change enhances monitoring configurations by:
* **Prometheus:** Allows users to define custom `serviceMonitorSelector` and `podMonitorSelector` via Helm values. If not specified, these fields are omitted from the Prometheus CRD, leveraging the Prometheus Operator's default behavior to universally match `ServiceMonitor` and `PodMonitor` resources. This replaces the previous explicit "select all" match expressions in the default values.
* **VictoriaMetrics Agent:** Replaces the legacy universal pod discovery with an annotation-driven mechanism. The `vmagent` now dynamically discovers and scrapes pods explicitly annotated with `prometheus.io/scrape: "true"`, standardizing how metrics are collected from pods.
Signed-off-by: methylDragon <methylDragon@intrinsic.ai>
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from fd26c1c to 26dc4abCompareAugust 18, 2026 10:17
This change migrates all VictoriaMetrics deployments to use the unified
`victoria-metrics-k8s-stack` Helm chart, replacing individual VM component
charts for `vmcluster`, `vmagent`, and `vmalert`.
This migration brings several benefits:
* **Simplified Management:** Consolidates multiple individual VM component
charts into a single `victoria-metrics-k8s-stack` Helm chart, streamlining
Bazel `BUILD` rules and application definitions.
* **Enhanced Configurability:** Introduces robust templating logic to allow
dynamic injection of complex YAML structures (e.g., `serviceMonitorSelector`,
`remoteWrite` configurations, `extraContainers`, `volumes`) from Helm values,
providing greater customization flexibility.
* **Standardized Deployment:** Ensures a consistent deployment model for both
`victoriametrics-cloudmetrics` and `victoriametrics-robotmetrics` applications.
* **Improved Alerting:** Adds a common `base-alerts.yaml` for essential monitoring.
@methylDragon
methylDragonforce-pushed the ch3/heet-crc-prometheus-vm-grafana-apps branch from 26dc4ab to 9a55331CompareAugust 18, 2026 10:23
@methylDragon
methylDragonforce-pushed the ch3/standalone-grafana branch 2 times, most recently from 288f0be to adff071CompareAugust 19, 2026 21:44
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@methylDragon