1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
This commit is contained in:
Lauri Nevala 2020-04-26 00:16:25 +03:00
parent 7476e169b9
commit be0275c3f5
2 changed files with 8 additions and 15 deletions

View File

@ -1,7 +1,6 @@
import { LensApiRequest } from "../router"
import { LensApi } from "../lens-api"
import * as requestPromise from "request-promise-native"
import logger from "../logger"
import { PrometheusProviderFactory} from "../prometheus/provider"
type MetricsQuery = string | string[] | {
@ -29,7 +28,6 @@ class MetricsRoute extends LensApi {
const attempts: { [query: string]: number } = {};
const maxAttempts = 5;
const loadMetrics = (orgQuery: string): Promise<any> => {
logger.info(orgQuery)
const query = orgQuery.trim()
const attempt = attempts[query] = (attempts[query] || 0) + 1;
return requestPromise(metricsUrl, {
@ -65,15 +63,13 @@ class MetricsRoute extends LensApi {
else {
data = {};
const result = await Promise.all(
Object.entries(query).map((objectArr: any) => {
const queryName = objectArr[0]
const queryOpts = objectArr[1]
logger.info(prometheusInstallationSource)
Object.entries(query).map((queryEntry: any) => {
const queryName = queryEntry[0]
const queryOpts = queryEntry[1]
const q = PrometheusProviderFactory.createProvider(prometheusInstallationSource).getQueries(queryOpts)[queryName]
return loadMetrics(q)
})
);
logger.info(JSON.stringify(result))
Object.keys(query).forEach((metricName, index) => {
data[metricName] = result[index];
});

View File

@ -36,10 +36,10 @@
description="What query format is used to fetch metrics from Prometheus"
>
<b-form-select
v-model="prometheusSource"
:options="prometheusSources"
@change="onPrometheusSourceSave"
/>
v-model="prometheusSource"
:options="prometheusSources"
@change="onPrometheusSourceSave"
/>
</b-form-group>
</div>
</div>
@ -67,7 +67,6 @@
<script>
import { lstatSync } from "fs"
import { logger } from 'handlebars';
export default {
name: 'ClusterSettingsPreferences',
props: {
@ -103,9 +102,7 @@ export default {
} else {
this.prometheusPath = ""
}
this.prometheusSource = this.cluster.preferences.prometheusSource || "lens"
console.log(this.prometheusSource)
this.prometheusSource = this.cluster.preferences.prometheusSource || "lens"
},
parsePrometheusPath: function(path) {
let parsed = path.split(/\/|:/)