1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Throw an error on invalid prometheus provider

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

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";
}
}
}

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)
})
);