Metrics not showing in Lens Overview and Nodes pages with VictoriaMetrics single-node version

Hello Lens community,

I’m experiencing an issue with metrics display in Lens IDE when using VictoriaMetrics as the metrics source.

My setup consists of a Kubernetes cluster with VictoriaMetrics Single deployed as the metrics storage solution. The metrics service endpoint is configured in Lens as infrastructure/victoria-metrics-server:8428.

The current behavior is inconsistent across different Lens pages:

  • Pods and Services pages: Metrics display correctly with full historical data
  • Overview and Nodes pages: No metrics are displayed (screenshots attached showing empty charts)

When I switch to using the Kubernetes Metrics Server instead of VictoriaMetrics:

  • Workload and Nodes pages: Metrics display properly
  • Pods and Services pages: Only show real-time metrics collected while the tab is open, without historical data

This suggests that VictoriaMetrics Single is properly collecting and storing metrics, but there seems to be a compatibility issue specifically with the Overview and Nodes pages in Lens when using VictoriaMetrics as the data source.

Has anyone encountered similar issues with VictoriaMetrics single-node version integration in Lens? Are there specific configuration requirements or known compatibility issues between Lens and VictoriaMetrics single-node version for the cluster-level metrics display?

Any guidance on how to resolve this discrepancy would be greatly appreciated.

Based on 2 days investigation + Lens sources reversengineering I have found working scrapeconfig for VictoriaMetrics single node that shows all metriks include Overview and Nodes tabs.

global:
  scrape_interval: 15s
scrape_configs:
- job_name: victoriametrics
  static_configs:
  - targets:
    - localhost:8428
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  job_name: kubernetes-apiservers
  kubernetes_sd_configs:
  - role: endpoints
  relabel_configs:
  - action: keep
    regex: default;kubernetes;https
    source_labels:
    - __meta_kubernetes_namespace
    - __meta_kubernetes_service_name
    - __meta_kubernetes_endpoint_port_name
  scheme: https
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    insecure_skip_verify: true
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  job_name: kubernetes-nodes
  kubernetes_sd_configs:
  - role: node
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_node_label_(.+)
  - replacement: kubernetes.default.svc:443
    target_label: __address__
  - regex: (.+)
    replacement: /api/v1/nodes/$1/proxy/metrics
    source_labels:
    - __meta_kubernetes_node_name
    target_label: __metrics_path__
  scheme: https
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    insecure_skip_verify: true
- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  honor_timestamps: false
  job_name: kubernetes-nodes-cadvisor
  kubernetes_sd_configs:
  - role: node
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_node_label_(.+)
  - replacement: kubernetes.default.svc:443
    target_label: __address__
  - regex: (.+)
    replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
    source_labels:
    - __meta_kubernetes_node_name
    target_label: __metrics_path__
  scheme: https
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    insecure_skip_verify: true
- job_name: kubernetes-service-endpoints
  kubernetes_sd_configs:
  - role: endpoints
  relabel_configs:
  - action: drop
    regex: true
    source_labels:
    - __meta_kubernetes_pod_container_init
  - action: keep_if_equal
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_port
    - __meta_kubernetes_pod_container_port_number
  - action: keep
    regex: true
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_scrape
  - action: replace
    regex: (https?)
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_scheme
    target_label: __scheme__
  - action: replace
    regex: (.+)
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_path
    target_label: __metrics_path__
  - action: replace
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
    source_labels:
    - __address__
    - __meta_kubernetes_service_annotation_prometheus_io_port
    target_label: __address__
  - action: labelmap
    regex: __meta_kubernetes_service_label_(.+)
  - action: replace
    source_labels:
    - __meta_kubernetes_namespace
    target_label: namespace
  - action: replace
    source_labels:
    - __meta_kubernetes_service_name
    target_label: service
  - action: replace
    source_labels:
    - __meta_kubernetes_pod_node_name
    target_label: node
- job_name: kubernetes-service-endpoints-slow
  kubernetes_sd_configs:
  - role: endpoints
  relabel_configs:
  - action: drop
    regex: true
    source_labels:
    - __meta_kubernetes_pod_container_init
  - action: keep_if_equal
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_port
    - __meta_kubernetes_pod_container_port_number
  - action: keep
    regex: true
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow
  - action: replace
    regex: (https?)
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_scheme
    target_label: __scheme__
  - action: replace
    regex: (.+)
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_path
    target_label: __metrics_path__
  - action: replace
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
    source_labels:
    - __address__
    - __meta_kubernetes_service_annotation_prometheus_io_port
    target_label: __address__
  - action: labelmap
    regex: __meta_kubernetes_service_label_(.+)
  - action: replace
    source_labels:
    - __meta_kubernetes_namespace
    target_label: namespace
  - action: replace
    source_labels:
    - __meta_kubernetes_service_name
    target_label: service
  - action: replace
    source_labels:
    - __meta_kubernetes_pod_node_name
    target_label: node
  scrape_interval: 5m
  scrape_timeout: 30s
- job_name: kubernetes-services
  kubernetes_sd_configs:
  - role: service
  metrics_path: /probe
  params:
    module:
    - http_2xx
  relabel_configs:
  - action: keep
    regex: true
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_probe
  - source_labels:
    - __address__
    target_label: __param_target
  - replacement: blackbox
    target_label: __address__
  - source_labels:
    - __param_target
    target_label: instance
  - action: labelmap
    regex: __meta_kubernetes_service_label_(.+)
  - source_labels:
    - __meta_kubernetes_namespace
    target_label: namespace
  - source_labels:
    - __meta_kubernetes_service_name
    target_label: service
- job_name: kubernetes-pods
  kubernetes_sd_configs:
  - role: pod
  relabel_configs:
  - action: drop
    regex: true
    source_labels:
    - __meta_kubernetes_pod_container_init
  - action: keep_if_equal
    source_labels:
    - __meta_kubernetes_pod_annotation_prometheus_io_port
    - __meta_kubernetes_pod_container_port_number
  - action: keep
    regex: true
    source_labels:
    - __meta_kubernetes_pod_annotation_prometheus_io_scrape
  - action: replace
    regex: (.+)
    source_labels:
    - __meta_kubernetes_pod_annotation_prometheus_io_path
    target_label: __metrics_path__
  - action: replace
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
    source_labels:
    - __address__
    - __meta_kubernetes_pod_annotation_prometheus_io_port
    target_label: __address__
  - action: labelmap
    regex: __meta_kubernetes_pod_label_(.+)
  - action: replace
    source_labels:
    - __meta_kubernetes_namespace
    target_label: namespace
  - action: replace
    source_labels:
    - __meta_kubernetes_pod_name
    target_label: pod
- job_name: node-exporter
  kubernetes_sd_configs:
  - namespaces:
      names:
      - infrastructure
    role: endpoints
  relabel_configs:
  - action: keep
    regex: node-exporter
    source_labels:
    - __meta_kubernetes_service_name
  - source_labels:
    - __meta_kubernetes_pod_node_name
    target_label: kubernetes_node
  - source_labels:
    - __meta_kubernetes_pod_name
    target_label: pod
  - source_labels:
    - __meta_kubernetes_namespace
    target_label: namespace
- job_name: kube-state-metrics
  kubernetes_sd_configs:
  - namespaces:
      names:
      - infrastructure
    role: endpoints
  relabel_configs:
  - action: keep
    regex: kube-state-metrics
    source_labels:
    - __meta_kubernetes_service_name
  - action: keep
    regex: metrics
    source_labels:
    - __meta_kubernetes_endpoint_port_name
  - source_labels:
    - __meta_kubernetes_namespace
    target_label: namespace
  - source_labels:
    - __meta_kubernetes_pod_name
    target_label: pod

@11094534339534217458 , Thank you for reaching out! I will involve our development team with this issue .

Hello @11094534339534217458, please let us know if you need any additional assistance with this issue ! Thank you for providing the solution !

1 Like

Hello @11094534339534217458, Could you please explain the fix you found for this issue with a bit more detail, as it is too difficult to see why it works with Lens ? So we might be able to know if a fix in Lens-end is justified .