app/vmselect: return stats.seriesFetched as string instead of number

vmalert expects string value for stats.seriesFetched, so it is impossible
switching to number without breaking compatibility with old vmalert releases :(

It is still unclear why stats.seriesFetched has string type in the first place...
This commit is contained in:
Aliaksandr Valialkin 2023-11-01 17:46:50 +01:00
parent b44b74d118
commit b8739bc00b
No known key found for this signature in database
GPG key ID: A72BEC6CD3D0DED1
8 changed files with 17 additions and 9 deletions

View file

@ -29,7 +29,11 @@ See https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries
] ]
}, },
"stats":{ "stats":{
"seriesFetched": {%dl qs.SeriesFetched %}, {% code
// seriesFetched is string instead of int because of historical reasons.
// It cannot be converted to int without breaking backwards compatibility at vmalert :(
%}
"seriesFetched": "{%dl qs.SeriesFetched %}",
"executionTimeMsec": {%dl qs.ExecutionTimeMsec %} "executionTimeMsec": {%dl qs.ExecutionTimeMsec %}
} }
{% code {% code

View file

@ -31,7 +31,11 @@ See https://prometheus.io/docs/prometheus/latest/querying/api/#instant-queries
] ]
}, },
"stats":{ "stats":{
"seriesFetched": {%dl qs.SeriesFetched %}, {% code
// seriesFetched is string instead of int because of historical reasons.
// It cannot be converted to int without breaking backwards compatibility at vmalert :(
%}
"seriesFetched": "{%dl qs.SeriesFetched %}",
"executionTimeMsec": {%dl qs.ExecutionTimeMsec %} "executionTimeMsec": {%dl qs.ExecutionTimeMsec %}
} }
{% code {% code

View file

@ -1,13 +1,13 @@
{ {
"files": { "files": {
"main.css": "./static/css/main.b863450b.css", "main.css": "./static/css/main.b863450b.css",
"main.js": "./static/js/main.0c55974f.js", "main.js": "./static/js/main.5566464c.js",
"static/js/522.da77e7b3.chunk.js": "./static/js/522.da77e7b3.chunk.js", "static/js/522.da77e7b3.chunk.js": "./static/js/522.da77e7b3.chunk.js",
"static/media/MetricsQL.md": "./static/media/MetricsQL.8644fd7c964802dd34a9.md", "static/media/MetricsQL.md": "./static/media/MetricsQL.8644fd7c964802dd34a9.md",
"index.html": "./index.html" "index.html": "./index.html"
}, },
"entrypoints": [ "entrypoints": [
"static/css/main.b863450b.css", "static/css/main.b863450b.css",
"static/js/main.0c55974f.js" "static/js/main.5566464c.js"
] ]
} }

View file

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=5"/><meta name="theme-color" content="#000000"/><meta name="description" content="UI for VictoriaMetrics"/><link rel="apple-touch-icon" href="./apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png"><link rel="manifest" href="./manifest.json"/><title>VM UI</title><script src="./dashboards/index.js" type="module"></script><meta name="twitter:card" content="summary_large_image"><meta name="twitter:image" content="./preview.jpg"><meta name="twitter:title" content="UI for VictoriaMetrics"><meta name="twitter:description" content="Explore and troubleshoot your VictoriaMetrics data"><meta name="twitter:site" content="@VictoriaMetrics"><meta property="og:title" content="Metric explorer for VictoriaMetrics"><meta property="og:description" content="Explore and troubleshoot your VictoriaMetrics data"><meta property="og:image" content="./preview.jpg"><meta property="og:type" content="website"><script defer="defer" src="./static/js/main.0c55974f.js"></script><link href="./static/css/main.b863450b.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html> <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=5"/><meta name="theme-color" content="#000000"/><meta name="description" content="UI for VictoriaMetrics"/><link rel="apple-touch-icon" href="./apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png"><link rel="manifest" href="./manifest.json"/><title>VM UI</title><script src="./dashboards/index.js" type="module"></script><meta name="twitter:card" content="summary_large_image"><meta name="twitter:image" content="./preview.jpg"><meta name="twitter:title" content="UI for VictoriaMetrics"><meta name="twitter:description" content="Explore and troubleshoot your VictoriaMetrics data"><meta name="twitter:site" content="@VictoriaMetrics"><meta property="og:title" content="Metric explorer for VictoriaMetrics"><meta property="og:description" content="Explore and troubleshoot your VictoriaMetrics data"><meta property="og:image" content="./preview.jpg"><meta property="og:type" content="website"><script defer="defer" src="./static/js/main.5566464c.js"></script><link href="./static/css/main.b863450b.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>

View file

@ -22,7 +22,7 @@ export interface TracingData {
} }
export interface QueryStats { export interface QueryStats {
seriesFetched?: number; seriesFetched?: string;
executionTimeMsec?: number; executionTimeMsec?: number;
resultLength?: number; resultLength?: number;
isPartial?: boolean; isPartial?: boolean;

View file

@ -41,7 +41,7 @@ const QueryEditor: FC<QueryEditorProps> = ({
const warning = [ const warning = [
{ {
show: stats?.seriesFetched == 0 && !stats.resultLength, show: stats?.seriesFetched === "0" && !stats.resultLength,
text: seriesFetchedWarning text: seriesFetchedWarning
}, },
{ {