Skip to content

feature: extra group by variable for victoriametrics cluster #2832

Description

@datamuc

Chart name and version, where you feel a lack of requested feature
chart: victoria-metrics-k8s-stack
version: v0.73.0

Is your feature request related to a problem? Please describe.
Recently I upgraded the helm chart and this alertrule failed.

As it turned out this is because I have .Values.defaultRules.additionalGroupByLabels set to [namespace]

And having namespace in the group by of this rule doesn't make sense. The reason why I have namespace in additionalGroupByLabels is, because I host a few dozens of victoriametrics clusters in this kubernetes cluster, and i want alerts per namespace. But additionalGroupByLabels applys to basically all the alert rules, including the kubernetes mixins.

Describe the solution you'd like

So what I would like is to have an extra group by variable that only applies to the victoriametrics rules. Or another idea on how to solve this use case.

Describe alternatives you've considered

The only thing that I can come up with is to deploy the helm chart twice, once with the victoriametrics rules disabled and empty additionalGroupByLabels. And once with everything disabled but the victoriametrics rules. See additional context below for an example.

However, this approach has a drawback: if you later add another component that is enabled by default, it will break.

Additional context
Something like that, but it is not though through yet (there are some trues at the end):

alertmanager:
  enabled: false
  ingress:
    enabled: false
  monzoTemplate:
    enabled: false
  route:
    enabled: false
coreDns:
  enabled: false
  service:
    enabled: false
defaultDashboards:
  dashboards:
    node-exporter-full:
      enabled: false
    victoriametrics-operator:
      enabled: false
    victoriametrics-vmalert:
      enabled: false
  enabled: false
  grafanaOperator:
    enabled: false
defaultDatasources:
  grafanaOperator:
    enabled: false
grafana:
  enabled: false
  ingress:
    enabled: false
  sidecar:
    dashboards:
      enabled: false
    datasources:
      enabled: false
  vmScrape:
    enabled: false
kube-state-metrics:
  autosharding:
    enabled: false
  customResourceState:
    enabled: false
  enabled: false
  kubeRBACProxy:
    enabled: false
  kubeconfig:
    enabled: false
  networkPolicy:
    enabled: false
  prometheus:
    monitor:
      enabled: false
    scrapeconfig:
      enabled: false
  securityContext:
    enabled: false
  selfMonitor:
    enabled: false
  service:
    ipDualStack:
      enabled: false
  startupProbe:
    enabled: false
  verticalPodAutoscaler:
    enabled: false
  vmScrape:
    enabled: false
kubeApiServer:
  enabled: false
kubeControllerManager:
  enabled: false
  service:
    enabled: false
kubeDns:
  enabled: false
  service:
    enabled: false
kubeEtcd:
  enabled: false
  service:
    enabled: false
kubeProxy:
  enabled: false
  service:
    enabled: false
kubeScheduler:
  enabled: false
  service:
    enabled: false
kubelet:
  enabled: false
  vmScrapes:
    cadvisor:
      enabled: false
    probes:
      enabled: false
    resources:
      enabled: false
prometheus-node-exporter:
  enabled: false
  hostRootFsMount:
    enabled: false
  kubeRBACProxy:
    enabled: false
    tls:
      enabled: false
  networkPolicy:
    enabled: false
  prometheus:
    monitor:
      enabled: false
    podMonitor:
      enabled: false
  service:
    enabled: false
    ipDualStack:
      enabled: false
  terminationMessageParams:
    enabled: false
  tlsSecret:
    enabled: false
  verticalPodAutoscaler:
    enabled: false
  vmScrape:
    enabled: false
victoria-metrics-operator:
  crds:
    cleanup:
      enabled: false
  enabled: false
  serviceMonitor:
    enabled: false
vmagent:
  enabled: true
  ingress:
    enabled: false
  route:
    enabled: false
vmalert:
  enabled: true
  ingress:
    enabled: false
  route:
    enabled: false
vmauth:
  enabled: true
vmcluster:
  enabled: true
  ingress:
    insert:
      enabled: false
    select:
      enabled: false
    storage:
      enabled: false
  route:
    insert:
      enabled: false
    select:
      enabled: false
    storage:
      enabled: false
  spec:
    vminsert:
      enabled: false
    vmselect:
      enabled: false
vmdistributed:
  enabled: false
vmsingle:
  enabled: true
  ingress:
    enabled: false
  route:
    enabled: false
defaultRules:
  create: false

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions