Throw an error on invalid prometheus provider

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
This commit is contained in:
Lauri Nevala committed 2020-04-27 21:56:45 +03:00
1 parent 2fc8daaff6
commit 40dcbdbf67
2 files changed
+12 -4

No files matched your search

+4 -2
View File
@@ -16,12 +16,14 @@ export interface PrometheusProvider {
export class PrometheusProviderFactory {
static createProvider(type: string): PrometheusProvider {
if (type == "helm") {
if (type == "lens") {
return new PrometheusLens()
} else if (type == "helm") {
return new PrometheusHelm()
} else if (type == "operator") {
return new PrometheusOperator()
} else {
return new PrometheusLens()
throw "Unknown Prometheus provider";
}
}
}
+8 -2
View File
@@ -1,7 +1,7 @@
import { LensApiRequest } from "../router"
import { LensApi } from "../lens-api"
import * as requestPromise from "request-promise-native"
import { PrometheusProviderFactory} from "../prometheus/provider"
import { PrometheusProviderFactory, PrometheusProvider} from "../prometheus/provider"
type MetricsQuery = string | string[] | {
[metricName: string]: string;
@@ -24,6 +24,12 @@ class MetricsRoute extends LensApi {
})
const prometheusInstallationSource = cluster.preferences.prometheusSource || "lens"
let prometheusProvider: PrometheusProvider
try {
prometheusProvider = PrometheusProviderFactory.createProvider(prometheusInstallationSource)
} catch {
this.respondJson(response, {})
}
// prometheus metrics loader
const attempts: { [query: string]: number } = {};
const maxAttempts = 5;
@@ -66,7 +72,7 @@ class MetricsRoute extends LensApi {
Object.entries(query).map((queryEntry: any) => {
const queryName = queryEntry[0]
const queryOpts = queryEntry[1]
const q = PrometheusProviderFactory.createProvider(prometheusInstallationSource).getQueries(queryOpts)[queryName]
const q = prometheusProvider.getQueries(queryOpts)[queryName]
return loadMetrics(q)
})
);