Was anyone was able to make kiali visualise mesh using VictoriaMetrics instead of Prometheus?
When I use prometheus and kiali setup from istio samples then Mesh Visualisation works.
But when I replace prometheus with Victoria Metrics (agent, select, insert, storage) then kiali simply showing empty graph.
I have checked that both Prometheus and Victoria Metrics have the same istio_requests_total metric.
But when I use Victoria Metrics select URL in spec.external_services.prometheus.url the graph comes empty.
apiVersion: kiali.io/v1alpha1
kind: Kiali
metadata:
name: kiali
namespace: istio-system
spec:
auth:
strategy: anonymous
external_services:
istio:
config_map_name: istio-1-14
url_service_version: http://istiod-1-14:15014/version
prometheus:
url: http://vmselect-example-vmcluster-persistent.poc.svc.cluster.local:8481/select/0/prometheus/
In logs I see two errors related to the fact that vm-select does not have corresponding endpoints
2022-07-15T19:25:13Z ERR Failed to fetch Prometheus configuration: bad_response: readObjectStart: expect { or n, but found r, error found in #1 byte of ...|remoteAddr:|..., bigger context ...|remoteAddr: "10.4.34.83:57468"; requestURI: /select|...
2022-07-15T19:25:13Z ERR Failed to fetch Prometheus flags: bad_response: readObjectStart: expect { or n, but found r, error found in #1 byte of ...|remoteAddr:|..., bigger context ...|remoteAddr: "10.4.34.83:57468"; requestURI: /select|...
and multiple warnings
2022-07-15T19:35:28Z WRN Skipping {destination_canonical_revision="v1", destination_canonical_service="microservice", destination_cluster="Kubernetes", destination_service="microservice.poc.svc.cluster.local", destination_service_name="microservice", destination_service_namespace="poc", destination_workload="microservice", destination_workload_namespace="poc", request_protocol="http", response_code="200", response_flags="-", source_canonical_revision="latest", source_canonical_service="istio-ingressgateway-internal", source_cluster="Kubernetes"}, missing expected TS labels
Here is my VMPodScrape which I expect will take all metrics from all pods
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMPodScrape
metadata:
name: all-scrape
namespace: poc
spec:
podMetricsEndpoints:
- scheme: http
path: /stats/prometheus
targetPort: 15090
selector: {}
namespaceSelector:
any: true


Error messages don't look critical, in case of error kiali should use default values. As far as I understand, it tries to recognize scrape interval and retention based on prometheus configuration file and flags.
I think you have an issue with relabeling config, it drops labels required for kiali.
There is docs with needed labels by metric name: https://kiali.io/docs/faq/general/#which-istio-metrics-and-attributes-are-required-by-kiali
I'd recommend check scrape config at VMAgent. Probably relabeling rules are outdated.