/
datasource.js.map
1 lines (1 loc) · 20.5 KB
/
datasource.js.map
1
{"version":3,"sources":["../src/datasource.js"],"names":["_","VariablesHelper","Capabilities","QueryProcessor","tagsModelToString","modelToString","HawkularDatasource","instanceSettings","$q","backendSrv","templateSrv","type","metricsUrl","url","alertsUrl","name","tenant","jsonData","isTenantPerQuery","authorization","basicAuth","length","token","q","typeResources","variablesHelper","capabilitiesPromise","queryVersion","then","version","queryProcessor","getHeaders","bind","headers","options","validTargets","targets","filter","target","hide","map","sanitizeTarget","id","undefined","tags","tagsQL","when","data","promises","run","all","flatten","responses","sort","m1","m2","localeCompare","stats","rate","seriesAggFn","raw","timeAggFn","endpoint","datasourceRequest","method","response","status","message","title","metricIds","resolve","annotation","query","queryAlerts","start","range","from","valueOf","end","to","order","ids","allAnnotations","metrics","forEach","metric","annot","time","dp","timestamp","text","value","push","key","hasOwnProperty","replace","join","params","startTime","endTime","triggerIds","events","event","ctime","resolveForQL","result","m","tag","substr","findTags","trim","charAt","runWithResolvedVariables","p","pattern","flatTags","property","concat","func","resolved","catch"],"mappings":"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","file":"datasource.js","sourcesContent":["import _ from 'lodash';\nimport {VariablesHelper} from './variablesHelper';\nimport {Capabilities} from './capabilities';\nimport {QueryProcessor} from './queryProcessor';\nimport {modelToString as tagsModelToString} from './tagsKVPairsController';\n\nexport class HawkularDatasource {\n\n constructor(instanceSettings, $q, backendSrv, templateSrv) {\n this.type = instanceSettings.type;\n this.metricsUrl = instanceSettings.url + '/metrics';\n this.alertsUrl = instanceSettings.url + '/alerts';\n this.name = instanceSettings.name;\n this.tenant = instanceSettings.jsonData.tenant;\n this.isTenantPerQuery = instanceSettings.jsonData.isTenantPerQuery;\n this.authorization = null;\n if (typeof instanceSettings.basicAuth === 'string' && instanceSettings.basicAuth.length > 0) {\n this.authorization = instanceSettings.basicAuth;\n } else if (typeof instanceSettings.jsonData.token === 'string' && instanceSettings.jsonData.token.length > 0) {\n this.authorization = 'Bearer ' + instanceSettings.jsonData.token;\n }\n this.q = $q;\n this.backendSrv = backendSrv;\n this.typeResources = {\n 'gauge': 'gauges',\n 'counter': 'counters',\n 'availability': 'availability'\n };\n this.variablesHelper = new VariablesHelper(templateSrv);\n this.capabilitiesPromise = this.queryVersion().then(version => new Capabilities(version));\n this.queryProcessor = new QueryProcessor($q, backendSrv, this.variablesHelper, this.capabilitiesPromise, this.metricsUrl,\n this.getHeaders.bind(this), this.typeResources);\n }\n\n getHeaders(tenant) {\n const headers = {\n 'Content-Type': 'application/json'\n }\n if (tenant && this.isTenantPerQuery) {\n headers['Hawkular-Tenant'] = tenant;\n } else {\n headers['Hawkular-Tenant'] = this.tenant;\n }\n if (this.authorization) {\n headers['Authorization'] = this.authorization;\n }\n return headers;\n }\n\n query(options) {\n const validTargets = options.targets\n .filter(target => !target.hide)\n .map(this.sanitizeTarget)\n .filter(target => target.id !== undefined\n || (target.tags !== undefined && target.tags.length > 0)\n || (target.tagsQL !== undefined && target.tagsQL.length > 0));\n\n if (validTargets.length === 0) {\n return this.q.when({data: []});\n }\n\n const promises = validTargets.map(target => this.queryProcessor.run(target, options));\n\n return this.q.all(promises)\n .then(responses => ({data: _.flatten(responses).sort((m1, m2) => m1.target.localeCompare(m2.target))}));\n }\n\n sanitizeTarget(target) {\n // Create sane target, providing backward compatibility\n if (target.id === undefined && target.target !== 'select metric') {\n target.id = target.target;\n } else if (target.id === '-- none --') {\n delete target.id;\n }\n delete target.target;\n target.stats = target.stats || [];\n target.type = target.type || 'gauge';\n target.rate = target.rate === true;\n target.tags = target.tags || [];\n target.tagsQL = target.tagsQL || '';\n target.seriesAggFn = target.seriesAggFn || 'none';\n if (target.raw === undefined) {\n // Compatibility note: previously default was timeAggFn=avg and seriesAggFn=none\n if (target.seriesAggFn === 'none' && target.timeAggFn === 'avg') {\n delete target.timeAggFn;\n }\n target.raw = (target.timeAggFn === undefined);\n }\n return target;\n }\n\n testDatasource() {\n // If tenants is unknown at this point (when having per-query tenants)\n // We do a more basic check to / endpoint, which checks authentication in basic-auth mode but not with token/OpenShift\n // Else, it's full connectivity with tenant check\n const endpoint = this.isTenantPerQuery ? '/' : '/metrics';\n return this.backendSrv.datasourceRequest({\n url: this.metricsUrl + endpoint,\n method: 'GET',\n headers: this.getHeaders()\n }).then(response => {\n if (response.status === 200 || response.status === 204) {\n return { status: 'success', message: 'Data source is working', title: 'Success' };\n } else {\n return { status: 'error', message: `Connection failed (${response.status})`, title: 'Error' };\n }\n });\n }\n\n annotationQuery(options) {\n const metricIds = this.variablesHelper.resolve(options.annotation.query, options);\n if (options.annotation.type === 'alert') {\n return this.queryAlerts(metricIds, options);\n }\n return this.backendSrv.datasourceRequest({\n url: `${this.metricsUrl}/${options.annotation.type}/raw/query`,\n data: {\n start: options.range.from.valueOf(),\n end: options.range.to.valueOf(),\n order: 'ASC',\n ids: metricIds\n },\n method: 'POST',\n headers: this.getHeaders(options.annotation.tenant)\n }).then(response => response.status == 200 ? response.data : [])\n .then(metrics => {\n let allAnnotations = [];\n metrics.forEach(metric => {\n metric.data.forEach(dp => {\n let annot = {\n annotation: options.annotation,\n time: dp.timestamp,\n title: options.annotation.name,\n text: dp.value\n };\n let tags = [];\n if (metricIds.length > 1) {\n tags.push(metric.id);\n }\n if (dp.tags) {\n for (let key in dp.tags) {\n if (dp.tags.hasOwnProperty(key)) {\n tags.push(dp.tags[key].replace(' ', '_'));\n }\n }\n }\n if (tags.length > 0) {\n annot.tags = tags.join(' ');\n }\n allAnnotations.push(annot);\n });\n });\n return allAnnotations;\n });\n }\n\n queryAlerts(ids, options) {\n return this.backendSrv.datasourceRequest({\n url: `${this.alertsUrl}/events`,\n params: {\n startTime: options.range.from.valueOf(),\n endTime: options.range.to.valueOf(),\n triggerIds: ids\n },\n method: 'GET',\n headers: this.getHeaders(options.annotation.tenant)\n }).then(response => response.status == 200 ? response.data : [])\n .then(events => {\n return events.map(event => {\n return {\n annotation: options.annotation,\n time: event.ctime,\n title: options.annotation.name,\n text: event.text,\n tags: event.status\n };\n });\n });\n }\n\n suggestMetrics(target) {\n let url = this.metricsUrl + '/metrics?type=' + target.type;\n if (target.tagsQL && target.tagsQL.length > 0) {\n url += '&tags=' + this.variablesHelper.resolveForQL(target.tagsQL, {});\n } else if (target.tags && target.tags.length > 0) {\n url += '&tags=' + tagsModelToString(target.tags, this.variablesHelper, {});\n }\n return this.backendSrv.datasourceRequest({\n url: url,\n method: 'GET',\n headers: this.getHeaders(target.tenant)\n }).then(response => response.status == 200 ? response.data : [])\n .then(result => {\n return result.map(m => m.id)\n .sort()\n .map(id => {\n return {text: id, value: id};\n });\n });\n }\n\n suggestTags(target, key) {\n if (!key) {\n return this.q.when([]);\n }\n return this.backendSrv.datasourceRequest({\n url: `${this.metricsUrl}/${this.typeResources[target.type]}/tags/${key}:*`,\n method: 'GET',\n headers: this.getHeaders(target.tenant)\n }).then(result => result.data.hasOwnProperty(key) ? result.data[key] : [])\n .then(tags => tags.map(tag => {\n return {text: tag, value: tag};\n }));\n }\n\n suggestTagKeys(target) {\n return this.backendSrv.datasourceRequest({\n url: this.metricsUrl + '/metrics/tags',\n method: 'GET',\n headers: this.getHeaders(target.tenant)\n }).then(response => response.status == 200 ? response.data : [])\n .then(result => result.map(key => ({text: key, value: key})));\n }\n\n metricFindQuery(query) {\n let params = '';\n if (query !== undefined) {\n if (query.substr(0, 5) === 'tags/') {\n return this.findTags(query.substr(5).trim());\n }\n if (query.charAt(0) === '?') {\n params = query;\n } else {\n params = '?' + query;\n }\n }\n return this.runWithResolvedVariables(params, p => this.backendSrv.datasourceRequest({\n url: `${this.metricsUrl}/metrics${p}`,\n method: 'GET',\n headers: this.getHeaders()\n }).then(result => {\n return _.map(result.data, metric => {\n return {text: metric.id, value: metric.id};\n });\n }));\n }\n\n findTags(pattern) {\n return this.runWithResolvedVariables(pattern, p => this.backendSrv.datasourceRequest({\n url: `${this.metricsUrl}/metrics/tags/${p}`,\n method: 'GET',\n headers: this.getHeaders()\n }).then(result => {\n let flatTags = [];\n if (result.data) {\n let data = result.data;\n for (let property in data) {\n if (data.hasOwnProperty(property)) {\n flatTags = flatTags.concat(data[property]);\n }\n }\n }\n return flatTags.map(tag => {\n return {text: tag, value: tag};\n });\n }));\n }\n\n runWithResolvedVariables(target, func) {\n const resolved = this.variablesHelper.resolve(target, {});\n return this.q.all(resolved.map(p => func(p)))\n .then(result => _.flatten(result));\n }\n\n queryVersion() {\n return this.backendSrv.datasourceRequest({\n url: this.metricsUrl + '/status',\n method: 'GET',\n headers: {'Content-Type': 'application/json'}\n }).then(response => response.data['Implementation-Version'])\n .catch(response => 'Unknown');\n }\n\n getCapabilities() {\n return this.capabilitiesPromise;\n }\n}\n"]}