diff --git a/dist/MANIFEST.txt b/dist/MANIFEST.txt index fa7f542..54fa137 100644 --- a/dist/MANIFEST.txt +++ b/dist/MANIFEST.txt @@ -9,37 +9,37 @@ Hash: SHA512 "signedByOrgName": "Tencent", "rootUrls": [], "plugin": "tencentcloud-monitor-app", - "version": "2.8.7", - "time": 1699358015357, + "version": "2.9.1", + "time": 1701760807736, "keyId": "7e4d0c6a708866e7", "files": { "datasource/config-editor/config.html": "110380b35165fcfcffa797ab6841e9621bf5135881fa5e94f5f316a0600b5796", - "datasource/tencentcloud-monitor-app-backend_darwin_amd64": "787de8d387971d6d46f95183b1a9849dadd7411b93a6b942444ae900676f9d57", - "datasource/module.js.LICENSE.txt": "0d8f66cd4afb566cb5b7e1540c68f43b939d3eba12ace290f18abc4f4cb53ed0", - "datasource/tencentcloud-monitor-app-backend_linux_arm64": "034df247d63031c573c1e73857d6508127fd53e74f6b0c491d845da9997b52dc", - "datasource/module.js.map": "cb1d0700fb3fe2bd1561b40033677eb7d25c5fa0f3d8cd576105cbc642505970", - "datasource/plugin.json": "674e6482bf2c91afe44591bcbee6341bdf7a90d795186f7d58140b4a40a44c48", + "datasource/tencentcloud-monitor-app-backend_darwin_amd64": "372c8c0dff6541903c06ff7c6849ab0bc882903feacaab772dbf0f575079029e", + "datasource/module.js.LICENSE.txt": "0ba9498d31b16c120f53a8cea32162412a0b69ce8d2707893df316676ba7675c", + "datasource/tencentcloud-monitor-app-backend_linux_arm64": "6c0bc328f38ec638f65312d7fb451526e7c5653b623e848b57c4da6417a3020d", + "datasource/module.js.map": "524f6b6fec76e09404f849c485835737646c281ee6cf105e708603c80d9cfec1", + "datasource/plugin.json": "e957f9742fdfb27c9fee720dda99ad1cccee57b5b3b4e135b09ae77d0f156ebc", "datasource/img/tencent-cloud.svg": "572e1abf6d2a4be854845b55219e8d0661f79b325f0659b5439dddb37a304a8a", - "datasource/tencentcloud-monitor-app-backend_linux_arm": "724d9ae1e3dd5ee49d13eb90efc1a4d697051c3c918d4efc8ca2b139db7f402a", + "datasource/tencentcloud-monitor-app-backend_linux_arm": "1b4be8e714c5252fe65d5b11eceb9ec489926ff0e066ad6fe1068006f178a807", "datasource/query-ctrl/partials/query.editor.html": "443d863f1d1c9295467da9a4290d16e9211699d034502b76605ebf41b61a4011", - "datasource/module.js": "f68b2ccff4cacaa1c9420ed1c19e5f19c4ae591dc7e978ad79efc287150050f1", - "datasource/tencentcloud-monitor-app-backend_windows_amd64.exe": "8840ea424cf47346563ccdca5d266b0399c8b7bcaa5f700e28f8f2c0c21f9175", - "datasource/tencentcloud-monitor-app-backend_linux_amd64": "10ead9625779e071ec858dc2a3971fceb61f3aaffbb2153b527f0d8b452bac4e", - "datasource/tencentcloud-monitor-app-backend_darwin_arm64": "8e1efbaa6d0640d2cc94b2a89f4245b4271988ba63a8f4d093dd14fdf05439ba", + "datasource/module.js": "9ce781c0424f853353eedcb4abf1a20076b3241c0fe05f3a1149e53ba23aeea5", + "datasource/tencentcloud-monitor-app-backend_windows_amd64.exe": "188fba88f14b37d966fdf8ccfd20bdead7c63d6204233ac973f5f437c7c012d2", + "datasource/tencentcloud-monitor-app-backend_linux_amd64": "c23e795111459db0f453d7f6c748dfdeefbc1ddeb4bfcf16d355275456c4477e", + "datasource/tencentcloud-monitor-app-backend_darwin_arm64": "8d05974d39861d05e19bd7da540629acc89f0e656ed1ed1ca7e26da95980784c", "LICENSE": "7d90d87fbfbc9369eb627fd38811e01dfd955d72269d5039e7c6119372baa1e3", "CHANGELOG.md": "0596a172e06ba90b28ef8887553a6e97320a3bd01f77d81e8b3face21c848163", - "module.js.map": "25ec2e977659d0cd43162d13ff5f497d5209c49cabc3bc926c3c5690261cb49d", + "module.js.map": "645ce8e78546b398f214e2b8e71bba1ce77da3ee992f8eba1685665c53753413", "image/datasource-config.png": "e31ceec33c6454f6335850791f9b35fc2be56a4e43dfc11a75435e16f025dc0f", "image/variable-region-config.png": "d46215b565d2b851855fb48bf7ee73ef696e3b8cfc671a376743faa39b193f3c", "image/variable-panel-query.png": "e17f91280df34695d7be10b3e355b6c91d4b43404243529dc7e75d1f9a8605fa", "image/variable-cvm-dashboard.png": "f97220e1230b83b0110f7e11468538b44c48d8b70906509f5153f8895ed02653", - "plugin.json": "66ba20384ac5437a9c4534e28163f0e80d63f02ec6d5044255e05747ef87fb7e", + "plugin.json": "82e354da125e0463499c6a61531d0611ce5433498892a3079a4d8e32986a7d30", "README.md": "6510f9156c1d9198895cb8dcce1f137ac88292d0ce922c5f31bbb19af76e78c6", "img/tencent-cloud.svg": "572e1abf6d2a4be854845b55219e8d0661f79b325f0659b5439dddb37a304a8a", - "components/config.js": "5abcc27088ac1f06436e523e713a2b45cd3e609b15c8a90cb65ed881eaa70774", - "components/config.js.map": "1d476876c4d02be40f0336da51eb429f17ff32c2b8810a58ea28b986bd59351d", + "components/config.js": "ee5816a2a21eaa0ddde461cb4d663b832e88911785cb7b9956062592670ee547", + "components/config.js.map": "9c9d1415b017930a19ae821743cdca306c06e2a97ec9ee02011c31cbbfdffc03", "components/config.html": "851e7cf915df590befbe6a56bf9bf4a17083de46ef93246a0bc6214d7be13464", - "module.js": "b096cc96ca927f0bbe7c978f36663516911cfd730747d56ee1873367a268313e", + "module.js": "677bba38a6613a8f2db11d9bf290dca90ac076ffa28eaf6767ebf975daa9fb45", "dashboards/example_redis_mem_en_dashboard.json": "66bde7943e04a3a42048535206d273c303e345a6bf5d57e6a1bc818e8799d360", "dashboards/example_logService_clb_en_dashboard.json": "c6545c6b884ed84851d0e933badcd79a55fc85c2baf8487135f63b1105083fa2", "dashboards/example_lb_dashboard.json": "9884b63f52a1564a57edf79626dfee97f0e0e80bcaa321cffcf747054204ca43", @@ -80,10 +80,10 @@ Hash: SHA512 Version: OpenPGP.js v4.10.10 Comment: https://openpgpjs.org -wrcEARMKAAYFAmVKJT8AIQkQfk0ManCIZucWIQTzOyW2kQdOhGNlcPN+TQxq -cIhm5y96AgUZm98N2nAkUHJiYXbshVPUg1bUu2ed/jNAvJOl7jOKIotsM5B/ -SwO3J91yjVqQvqc7y7BjJzvFINiefZ/Qs9QU5AIIsZGq+REBxLuyYo+E39nv -hRcbd2LjXUFrxO7McwuQdy+kB9YuIWJ3bCbkSLlI2fbJT187kaxtoXP2OiWS -VXXFKw8= -=5MF/ +wrkEARMKAAYFAmVuzygAIQkQfk0ManCIZucWIQTzOyW2kQdOhGNlcPN+TQxq +cIhm59kGAgkBpmLoNT52slSpBGhektTn4u8dtzHpGSlYWPOPLp2WKteZZsMB +w5TsgftoMwBqKxBRUI9TnxxB697oE7U/UxwyrrACCQGDLX2gpmrneYu9tKnX +5QlJWULtwc/hrzQ2ywRLzGTygU9nRVSuvR7FvRLVkb9Zn3/PbKkTfdM/fn19 +ehiWJ+pkQw== +=vU3l -----END PGP SIGNATURE----- diff --git a/dist/components/config.js b/dist/components/config.js index 4e9ca04..5b6459b 100644 --- a/dist/components/config.js +++ b/dist/components/config.js @@ -1,37185 +1,2 @@ -define("TencentCloudMonitorGrafanaApp", ["@grafana/data","@grafana/runtime","app/core/core_module","lodash","moment"], function(__WEBPACK_EXTERNAL_MODULE__grafana_data__, __WEBPACK_EXTERNAL_MODULE__grafana_runtime__, __WEBPACK_EXTERNAL_MODULE_grafana_app_core_core_module__, __WEBPACK_EXTERNAL_MODULE_lodash__, __WEBPACK_EXTERNAL_MODULE_moment__) { return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/"; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./components/config.ts"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "../node_modules/qs/lib/formats.js": -/*!*****************************************!*\ - !*** ../node_modules/qs/lib/formats.js ***! - \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var replace = String.prototype.replace; -var percentTwenties = /%20/g; - -module.exports = { - 'default': 'RFC3986', - formatters: { - RFC1738: function (value) { - return replace.call(value, percentTwenties, '+'); - }, - RFC3986: function (value) { - return value; - } - }, - RFC1738: 'RFC1738', - RFC3986: 'RFC3986' -}; - - -/***/ }), - -/***/ "../node_modules/qs/lib/index.js": -/*!***************************************!*\ - !*** ../node_modules/qs/lib/index.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var stringify = __webpack_require__(/*! ./stringify */ "../node_modules/qs/lib/stringify.js"); -var parse = __webpack_require__(/*! ./parse */ "../node_modules/qs/lib/parse.js"); -var formats = __webpack_require__(/*! ./formats */ "../node_modules/qs/lib/formats.js"); - -module.exports = { - formats: formats, - parse: parse, - stringify: stringify -}; - - -/***/ }), - -/***/ "../node_modules/qs/lib/parse.js": -/*!***************************************!*\ - !*** ../node_modules/qs/lib/parse.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./utils */ "../node_modules/qs/lib/utils.js"); - -var has = Object.prototype.hasOwnProperty; - -var defaults = { - allowDots: false, - allowPrototypes: false, - arrayLimit: 20, - decoder: utils.decode, - delimiter: '&', - depth: 5, - parameterLimit: 1000, - plainObjects: false, - strictNullHandling: false -}; - -var parseValues = function parseQueryStringValues(str, options) { - var obj = {}; - var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; - var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; - var parts = cleanStr.split(options.delimiter, limit); - - for (var i = 0; i < parts.length; ++i) { - var part = parts[i]; - - var bracketEqualsPos = part.indexOf(']='); - var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1; - - var key, val; - if (pos === -1) { - key = options.decoder(part, defaults.decoder); - val = options.strictNullHandling ? null : ''; - } else { - key = options.decoder(part.slice(0, pos), defaults.decoder); - val = options.decoder(part.slice(pos + 1), defaults.decoder); - } - if (has.call(obj, key)) { - obj[key] = [].concat(obj[key]).concat(val); - } else { - obj[key] = val; - } - } - - return obj; -}; - -var parseObject = function (chain, val, options) { - var leaf = val; - - for (var i = chain.length - 1; i >= 0; --i) { - var obj; - var root = chain[i]; - - if (root === '[]') { - obj = []; - obj = obj.concat(leaf); - } else { - obj = options.plainObjects ? Object.create(null) : {}; - var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; - var index = parseInt(cleanRoot, 10); - if ( - !isNaN(index) - && root !== cleanRoot - && String(index) === cleanRoot - && index >= 0 - && (options.parseArrays && index <= options.arrayLimit) - ) { - obj = []; - obj[index] = leaf; - } else { - obj[cleanRoot] = leaf; - } - } - - leaf = obj; - } - - return leaf; -}; - -var parseKeys = function parseQueryStringKeys(givenKey, val, options) { - if (!givenKey) { - return; - } - - // Transform dot notation to bracket notation - var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; - - // The regex chunks - - var brackets = /(\[[^[\]]*])/; - var child = /(\[[^[\]]*])/g; - - // Get the parent - - var segment = brackets.exec(key); - var parent = segment ? key.slice(0, segment.index) : key; - - // Stash the parent if it exists - - var keys = []; - if (parent) { - // If we aren't using plain objects, optionally prefix keys - // that would overwrite object prototype properties - if (!options.plainObjects && has.call(Object.prototype, parent)) { - if (!options.allowPrototypes) { - return; - } - } - - keys.push(parent); - } - - // Loop through children appending to the array until we hit depth - - var i = 0; - while ((segment = child.exec(key)) !== null && i < options.depth) { - i += 1; - if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { - if (!options.allowPrototypes) { - return; - } - } - keys.push(segment[1]); - } - - // If there's a remainder, just add whatever is left - - if (segment) { - keys.push('[' + key.slice(segment.index) + ']'); - } - - return parseObject(keys, val, options); -}; - -module.exports = function (str, opts) { - var options = opts ? utils.assign({}, opts) : {}; - - if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') { - throw new TypeError('Decoder has to be a function.'); - } - - options.ignoreQueryPrefix = options.ignoreQueryPrefix === true; - options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter; - options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth; - options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit; - options.parseArrays = options.parseArrays !== false; - options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder; - options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots; - options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects; - options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes; - options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit; - options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - - if (str === '' || str === null || typeof str === 'undefined') { - return options.plainObjects ? Object.create(null) : {}; - } - - var tempObj = typeof str === 'string' ? parseValues(str, options) : str; - var obj = options.plainObjects ? Object.create(null) : {}; - - // Iterate over the keys and setup the new object - - var keys = Object.keys(tempObj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var newObj = parseKeys(key, tempObj[key], options); - obj = utils.merge(obj, newObj, options); - } - - return utils.compact(obj); -}; - - -/***/ }), - -/***/ "../node_modules/qs/lib/stringify.js": -/*!*******************************************!*\ - !*** ../node_modules/qs/lib/stringify.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./utils */ "../node_modules/qs/lib/utils.js"); -var formats = __webpack_require__(/*! ./formats */ "../node_modules/qs/lib/formats.js"); - -var arrayPrefixGenerators = { - brackets: function brackets(prefix) { // eslint-disable-line func-name-matching - return prefix + '[]'; - }, - indices: function indices(prefix, key) { // eslint-disable-line func-name-matching - return prefix + '[' + key + ']'; - }, - repeat: function repeat(prefix) { // eslint-disable-line func-name-matching - return prefix; - } -}; - -var toISO = Date.prototype.toISOString; - -var defaults = { - delimiter: '&', - encode: true, - encoder: utils.encode, - encodeValuesOnly: false, - serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching - return toISO.call(date); - }, - skipNulls: false, - strictNullHandling: false -}; - -var stringify = function stringify( // eslint-disable-line func-name-matching - object, - prefix, - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly -) { - var obj = object; - if (typeof filter === 'function') { - obj = filter(prefix, obj); - } else if (obj instanceof Date) { - obj = serializeDate(obj); - } else if (obj === null) { - if (strictNullHandling) { - return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix; - } - - obj = ''; - } - - if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) { - if (encoder) { - var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder); - return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))]; - } - return [formatter(prefix) + '=' + formatter(String(obj))]; - } - - var values = []; - - if (typeof obj === 'undefined') { - return values; - } - - var objKeys; - if (Array.isArray(filter)) { - objKeys = filter; - } else { - var keys = Object.keys(obj); - objKeys = sort ? keys.sort(sort) : keys; - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - if (Array.isArray(obj)) { - values = values.concat(stringify( - obj[key], - generateArrayPrefix(prefix, key), - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly - )); - } else { - values = values.concat(stringify( - obj[key], - prefix + (allowDots ? '.' + key : '[' + key + ']'), - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly - )); - } - } - - return values; -}; - -module.exports = function (object, opts) { - var obj = object; - var options = opts ? utils.assign({}, opts) : {}; - - if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') { - throw new TypeError('Encoder has to be a function.'); - } - - var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter; - var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls; - var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode; - var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder; - var sort = typeof options.sort === 'function' ? options.sort : null; - var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots; - var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate; - var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly; - if (typeof options.format === 'undefined') { - options.format = formats['default']; - } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) { - throw new TypeError('Unknown format option provided.'); - } - var formatter = formats.formatters[options.format]; - var objKeys; - var filter; - - if (typeof options.filter === 'function') { - filter = options.filter; - obj = filter('', obj); - } else if (Array.isArray(options.filter)) { - filter = options.filter; - objKeys = filter; - } - - var keys = []; - - if (typeof obj !== 'object' || obj === null) { - return ''; - } - - var arrayFormat; - if (options.arrayFormat in arrayPrefixGenerators) { - arrayFormat = options.arrayFormat; - } else if ('indices' in options) { - arrayFormat = options.indices ? 'indices' : 'repeat'; - } else { - arrayFormat = 'indices'; - } - - var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; - - if (!objKeys) { - objKeys = Object.keys(obj); - } - - if (sort) { - objKeys.sort(sort); - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - keys = keys.concat(stringify( - obj[key], - key, - generateArrayPrefix, - strictNullHandling, - skipNulls, - encode ? encoder : null, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly - )); - } - - var joined = keys.join(delimiter); - var prefix = options.addQueryPrefix === true ? '?' : ''; - - return joined.length > 0 ? prefix + joined : ''; -}; - - -/***/ }), - -/***/ "../node_modules/qs/lib/utils.js": -/*!***************************************!*\ - !*** ../node_modules/qs/lib/utils.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var has = Object.prototype.hasOwnProperty; - -var hexTable = (function () { - var array = []; - for (var i = 0; i < 256; ++i) { - array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); - } - - return array; -}()); - -var compactQueue = function compactQueue(queue) { - var obj; - - while (queue.length) { - var item = queue.pop(); - obj = item.obj[item.prop]; - - if (Array.isArray(obj)) { - var compacted = []; - - for (var j = 0; j < obj.length; ++j) { - if (typeof obj[j] !== 'undefined') { - compacted.push(obj[j]); - } - } - - item.obj[item.prop] = compacted; - } - } - - return obj; -}; - -var arrayToObject = function arrayToObject(source, options) { - var obj = options && options.plainObjects ? Object.create(null) : {}; - for (var i = 0; i < source.length; ++i) { - if (typeof source[i] !== 'undefined') { - obj[i] = source[i]; - } - } - - return obj; -}; - -var merge = function merge(target, source, options) { - if (!source) { - return target; - } - - if (typeof source !== 'object') { - if (Array.isArray(target)) { - target.push(source); - } else if (typeof target === 'object') { - if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) { - target[source] = true; - } - } else { - return [target, source]; - } - - return target; - } - - if (typeof target !== 'object') { - return [target].concat(source); - } - - var mergeTarget = target; - if (Array.isArray(target) && !Array.isArray(source)) { - mergeTarget = arrayToObject(target, options); - } - - if (Array.isArray(target) && Array.isArray(source)) { - source.forEach(function (item, i) { - if (has.call(target, i)) { - if (target[i] && typeof target[i] === 'object') { - target[i] = merge(target[i], item, options); - } else { - target.push(item); - } - } else { - target[i] = item; - } - }); - return target; - } - - return Object.keys(source).reduce(function (acc, key) { - var value = source[key]; - - if (has.call(acc, key)) { - acc[key] = merge(acc[key], value, options); - } else { - acc[key] = value; - } - return acc; - }, mergeTarget); -}; - -var assign = function assignSingleSource(target, source) { - return Object.keys(source).reduce(function (acc, key) { - acc[key] = source[key]; - return acc; - }, target); -}; - -var decode = function (str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (e) { - return str; - } -}; - -var encode = function encode(str) { - // This code was originally written by Brian White (mscdex) for the io.js core querystring library. - // It has been adapted here for stricter adherence to RFC 3986 - if (str.length === 0) { - return str; - } - - var string = typeof str === 'string' ? str : String(str); - - var out = ''; - for (var i = 0; i < string.length; ++i) { - var c = string.charCodeAt(i); - - if ( - c === 0x2D // - - || c === 0x2E // . - || c === 0x5F // _ - || c === 0x7E // ~ - || (c >= 0x30 && c <= 0x39) // 0-9 - || (c >= 0x41 && c <= 0x5A) // a-z - || (c >= 0x61 && c <= 0x7A) // A-Z - ) { - out += string.charAt(i); - continue; - } - - if (c < 0x80) { - out = out + hexTable[c]; - continue; - } - - if (c < 0x800) { - out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - if (c < 0xD800 || c >= 0xE000) { - out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - i += 1; - c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); - out += hexTable[0xF0 | (c >> 18)] - + hexTable[0x80 | ((c >> 12) & 0x3F)] - + hexTable[0x80 | ((c >> 6) & 0x3F)] - + hexTable[0x80 | (c & 0x3F)]; - } - - return out; -}; - -var compact = function compact(value) { - var queue = [{ obj: { o: value }, prop: 'o' }]; - var refs = []; - - for (var i = 0; i < queue.length; ++i) { - var item = queue[i]; - var obj = item.obj[item.prop]; - - var keys = Object.keys(obj); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - var val = obj[key]; - if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { - queue.push({ obj: obj, prop: key }); - refs.push(val); - } - } - } - - return compactQueue(queue); -}; - -var isRegExp = function isRegExp(obj) { - return Object.prototype.toString.call(obj) === '[object RegExp]'; -}; - -var isBuffer = function isBuffer(obj) { - if (obj === null || typeof obj === 'undefined') { - return false; - } - - return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); -}; - -module.exports = { - arrayToObject: arrayToObject, - assign: assign, - compact: compact, - decode: decode, - encode: encode, - isBuffer: isBuffer, - isRegExp: isRegExp, - merge: merge -}; - - -/***/ }), - -/***/ "./components/config.ts": -/*!******************************!*\ - !*** ./components/config.ts ***! - \******************************/ -/*! exports provided: MonitorAppConfigCtrl */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MonitorAppConfigCtrl", function() { return MonitorAppConfigCtrl; }); -/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @grafana/runtime */ "@grafana/runtime"); -/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _datasource_common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../datasource/common/constants */ "./datasource/common/constants.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - -var backendSrv = Object(_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__["getBackendSrv"])(); -var tcFolder = { - uid: 'tencent-cloud-monitor', - title: '腾讯云监控', - folderId: null -}; -var tcFolder_EN = { - uid: 'tencent-cloud-monitor-english', - title: 'Tencent Cloud Monitor', - folderId: null -}; -/** - * 生成腾讯云专用目录 - * @returns - */ - -function getFolderId() { - var _a, _b; - - return __awaiter(this, void 0, void 0, function () { - var folders, folderId, folderEnId, folder, folderEn; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - if (tcFolder.folderId && tcFolder_EN.folderId) { - return [2 - /*return*/ - , [tcFolder.folderId, tcFolder_EN.folderId]]; - } - - return [4 - /*yield*/ - , backendSrv.get('/api/folders')]; - - case 1: - folders = _c.sent(); - folderId = (_a = folders.find(function (item) { - return item.uid === tcFolder.uid; - })) === null || _a === void 0 ? void 0 : _a.id; - folderEnId = (_b = folders.find(function (item) { - return item.uid === tcFolder_EN.uid; - })) === null || _b === void 0 ? void 0 : _b.id; - if (!!folderId) return [3 - /*break*/ - , 3]; - return [4 - /*yield*/ - , backendSrv.post('/api/folders', tcFolder)]; - - case 2: - folder = _c.sent(); - folderId = (folder === null || folder === void 0 ? void 0 : folder.id) || 0; - _c.label = 3; - - case 3: - if (!!folderEnId) return [3 - /*break*/ - , 5]; - return [4 - /*yield*/ - , backendSrv.post('/api/folders', tcFolder_EN)]; - - case 4: - folderEn = _c.sent(); - folderEnId = (folderEn === null || folderEn === void 0 ? void 0 : folderEn.id) || 0; - _c.label = 5; - - case 5: - tcFolder.folderId = folderId; - tcFolder_EN.folderId = folderEnId; - return [2 - /*return*/ - , [folderId, folderEnId]]; - } - }); - }); -} -/** - * 请求拦截器,拦截导入按钮的接口请求 - */ - - -function backendInterceptor() { - var _this = this; - - var oldPost = backendSrv.post.bind(Object(_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__["getBackendSrv"])()); - var pluginId = window.location.pathname.split('/').filter(function (item) { - return item; - })[1]; - - backendSrv.post = function (url, data) { - return __awaiter(_this, void 0, void 0, function () { - var _a, folderId, folderEnId; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!(url === '/api/dashboards/import' && data.pluginId === pluginId)) return [3 - /*break*/ - , 2]; - return [4 - /*yield*/ - , getFolderId()]; - - case 1: - _a = _b.sent(), folderId = _a[0], folderEnId = _a[1]; - data.folderId = data.path.endsWith('_en_dashboard.json') ? folderEnId : folderId; - _b.label = 2; - - case 2: - return [2 - /*return*/ - , oldPost(url, data)]; - } - }); - }); - }; -} - -backendInterceptor(); - -var MonitorAppConfigCtrl = -/** @class */ -function () { - MonitorAppConfigCtrl.$inject = ["$scope", "$injector", "$q"]; - - /** @ngInject */ - function MonitorAppConfigCtrl($scope, $injector, $q) { - var _a; - - this.appEditCtrl.setPostUpdateHook(this.postUpdate.bind(this)); - this.$q = $q; // Make sure it has a JSON Data spot - - if (!this.appModel) { - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - this.appModel = {}; - } // Required until we get the types sorted on appModel :( - - - var appModel = this.appModel; - - if (!appModel.jsonData) { - appModel.jsonData = {}; - } - - this.configured = false; - - if ((_a = this.appModel) === null || _a === void 0 ? void 0 : _a.enabled) { - var datasources = Object.values(_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__["config"].datasources).filter(function (ds) { - return ds.type === _datasource_common_constants__WEBPACK_IMPORTED_MODULE_1__["TcDataSourceId"]; - }); - - if (datasources.length > 0) { - this.configured = true; - } - } - } - - MonitorAppConfigCtrl.prototype.moveToFolder = function (dashbaordUid, folderId) { - return __awaiter(this, void 0, void 0, function () { - var dashboard; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , backendSrv.get("/api/dashboards/uid/".concat(dashbaordUid))]; - - case 1: - dashboard = _a.sent().dashboard; // 移动目录 - - return [4 - /*yield*/ - , backendSrv.post('/api/dashboards/db/', { - dashboard: dashboard, - folderId: folderId, - message: '', - overwrite: true - })]; - - case 2: - // 移动目录 - _a.sent(); - - return [2 - /*return*/ - ]; - } - }); - }); - }; - - MonitorAppConfigCtrl.prototype.reviseDashboard = function () { - var _a; - - return __awaiter(this, void 0, void 0, function () { - var _b, folderId, folderEnId, rs, pmlist; - - var _this = this; - - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - return [4 - /*yield*/ - , getFolderId()]; - - case 1: - _b = _c.sent(), folderId = _b[0], folderEnId = _b[1]; - return [4 - /*yield*/ - , backendSrv.get("/api/plugins/".concat((_a = this.appModel) === null || _a === void 0 ? void 0 : _a.id, "/dashboards"))]; - - case 2: - rs = _c.sent(); - pmlist = rs.map(function (item) { - var importedUrl = item.importedUrl, - path = item.path; - var uid = importedUrl.split('/')[2]; - - if (uid) { - return _this.moveToFolder(uid, path.endsWith('_en_dashboard.json') ? folderEnId : folderId); - } else { - return Promise.resolve(); - } - }); - return [2 - /*return*/ - , Promise.all(pmlist)]; - } - }); - }); - }; - - MonitorAppConfigCtrl.prototype.postUpdate = function () { - var _a; - - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!((_a = this.appModel) === null || _a === void 0 ? void 0 : _a.enabled)) { - return [2 - /*return*/ - ]; - } // enable或者update时,对预设dashboard进行修改 - - - return [4 - /*yield*/ - , this.reviseDashboard()]; - - case 1: - // enable或者update时,对预设dashboard进行修改 - _b.sent(); - - return [2 - /*return*/ - , this.$q.resolve(true)]; - } - }); - }); - }; - - MonitorAppConfigCtrl.templateUrl = 'components/config.html'; - return MonitorAppConfigCtrl; -}(); - - - -/***/ }), - -/***/ "./datasource/common/constants.ts": -/*!****************************************!*\ - !*** ./datasource/common/constants.ts ***! - \****************************************/ -/*! exports provided: TcDataSourceId, GetServiceAPIInfo, VARIABLE_ALIAS, GetServiceFromNamespace, GetLabelFromNamespace, ParseMetricQuery, ParseMetricRegex, ReplaceVariable, GetDimensions, ParseQueryResult, isVariable, GetRequestParams, GetRequestParamsV2, SliceLength, FilterKeys, parseDataFromBackendPlugin, IS_DEVELOPMENT_ENVIRONMENT, CoreApp */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TcDataSourceId", function() { return TcDataSourceId; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetServiceAPIInfo", function() { return GetServiceAPIInfo; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VARIABLE_ALIAS", function() { return VARIABLE_ALIAS; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetServiceFromNamespace", function() { return GetServiceFromNamespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetLabelFromNamespace", function() { return GetLabelFromNamespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ParseMetricQuery", function() { return ParseMetricQuery; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ParseMetricRegex", function() { return ParseMetricRegex; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReplaceVariable", function() { return ReplaceVariable; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetDimensions", function() { return GetDimensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ParseQueryResult", function() { return ParseQueryResult; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVariable", function() { return isVariable; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetRequestParams", function() { return GetRequestParams; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetRequestParamsV2", function() { return GetRequestParamsV2; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SliceLength", function() { return SliceLength; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterKeys", function() { return FilterKeys; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDataFromBackendPlugin", function() { return parseDataFromBackendPlugin; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IS_DEVELOPMENT_ENVIRONMENT", function() { return IS_DEVELOPMENT_ENVIRONMENT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CoreApp", function() { return CoreApp; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! qs */ "../node_modules/qs/lib/index.js"); -/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _tc_monitor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../tc_monitor */ "./datasource/tc_monitor/index.ts"); -/* harmony import */ var _sign__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sign */ "./datasource/common/sign.ts"); -/* harmony import */ var _signV2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./signV2 */ "./datasource/common/signV2.ts"); -/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @grafana/runtime */ "@grafana/runtime"); -/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_grafana_runtime__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../locale */ "./locale/index.ts"); -/* harmony import */ var _plugin_json__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../plugin.json */ "./datasource/plugin.json"); -var _plugin_json__WEBPACK_IMPORTED_MODULE_7___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../plugin.json */ "./datasource/plugin.json", 1); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - -var __rest = undefined && undefined.__rest || function (s, e) { - var t = {}; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; - } - - if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; - } - return t; -}; - - - - - - - - - -var TcDataSourceId = _plugin_json__WEBPACK_IMPORTED_MODULE_7__.id; // the services of tencentcloud monitor api - -var FINACE_REGIONS = ['ap-shanghai-fsi', 'ap-shenzhen-fsi']; -var SERVICES_API_INFO = { - api: { - service: 'api', - version: '2020-11-06', - path: '/api', - host: 'api.tencentcloudapi.com' - }, - // monitor api info - monitor: { - service: 'monitor', - version: '2018-07-24', - path: '/monitor', - host: 'monitor.tencentcloudapi.com' - }, - // cls api info - cls: { - service: 'cls', - version: '2020-10-16', - path: '/cls', - host: 'cls.tencentcloudapi.com' - }, - // cvm api info - cvm: { - service: 'cvm', - version: '2017-03-12', - path: '/cvm', - host: 'cvm.tencentcloudapi.com' - }, - // cdb api info - cdb: { - service: 'cdb', - version: '2017-03-20', - path: '/cdb', - host: 'cdb.tencentcloudapi.com' - }, - // pcx api info - pcx: { - service: 'pcx', - version: '', - path: '/pcx', - host: 'vpc.api.qcloud.com' - }, - // vpc api info - vpc: { - service: 'vpc', - version: '2017-03-12', - path: '/vpc', - host: 'vpc.tencentcloudapi.com' - }, - // mongodb api info - mongodb: { - service: 'mongodb', - version: '2019-07-25', - path: '/mongodb', - host: 'mongodb.tencentcloudapi.com' - }, - // 负载均衡 clb - clb: { - service: 'clb', - version: '2018-03-17', - path: '/clb', - host: 'clb.tencentcloudapi.com' - }, - // postgresql api info - postgres: { - service: 'postgres', - version: '2017-03-12', - path: '/postgres', - host: 'postgres.tencentcloudapi.com' - }, - // cdn info - cdn: { - service: 'cdn', - version: '2018-06-06', - path: '/cdn', - host: 'cdn.tencentcloudapi.com' - }, - // redis info - redis: { - service: 'redis', - version: '2018-04-12', - path: '/redis', - host: 'redis.tencentcloudapi.com' - }, - scf: { - service: 'scf', - version: '2018-04-16', - path: '/scf', - host: 'scf.tencentcloudapi.com' - }, - cfs: { - service: 'cfs', - version: '2019-07-19', - path: '/cfs', - host: 'cfs.tencentcloudapi.com' - }, - ckafka: { - service: 'ckafka', - version: '2019-08-19', - path: '/ckafka', - host: 'ckafka.tencentcloudapi.com' - }, - // 专线接入实例列表 - dc: { - service: 'dc', - version: '2018-04-10', - path: '/dc', - host: 'dc.tencentcloudapi.com' - }, - // cynosdb实例列表 - cynosdb: { - service: 'cynosdb', - version: '2019-01-07', - path: '/cynosdb', - host: 'cynosdb.tencentcloudapi.com' - }, - // sqlserver实例列表 - sqlserver: { - service: 'sqlserver', - version: '2018-03-28', - path: '/sqlserver', - host: 'sqlserver.tencentcloudapi.com' - }, - // bm实例列表 - bm: { - service: 'bm', - version: '2018-04-23', - path: '/bm', - host: 'bm.tencentcloudapi.com' - }, - bmeip: { - service: 'bmeip', - version: '2018-06-25', - path: '/bmeip', - host: 'bmeip.tencentcloudapi.com' - }, - bmvpc: { - service: 'bmvpc', - version: '2018-06-25', - path: '/bmvpc', - host: 'bmvpc.tencentcloudapi.com' - }, - bmlb: { - service: 'bmlb', - version: '2018-06-25', - path: '/bmlb', - host: 'bmlb.tencentcloudapi.com' - }, - // ES集群实例 - es: { - service: 'es', - version: '2018-04-16', - path: '/es', - host: 'es.tencentcloudapi.com' - }, - // MapReduce - emr: { - service: 'emr', - version: '2019-01-03', - path: '/emr', - host: 'emr.tencentcloudapi.com' - }, - // CMQ消息队列 - cmq: { - service: 'cmq', - version: '2019-03-04', - path: '/cmq', - host: 'cmq.tencentcloudapi.com' - }, - cbs: { - service: 'cbs', - version: '2017-03-12', - path: '/cbs', - host: 'cbs.tencentcloudapi.com' - }, - // tcaplus实例 - tcaplusdb: { - service: 'tcaplusdb', - version: '2019-08-23', - path: '/tcaplusdb', - host: 'tcaplusdb.tencentcloudapi.com' - }, - // tcaplus实例 - dcdb: { - service: 'dcdb', - version: '2018-04-11', - path: '/dcdb', - host: 'dcdb.tencentcloudapi.com' - }, - // apigateway实例 - apigateway: { - service: 'apigateway', - version: '2018-08-08', - path: '/apigateway', - host: 'apigateway.tencentcloudapi.com' - }, - tdmq: { - service: 'tdmq', - version: '2020-02-17', - path: '/tdmq', - host: 'tdmq.tencentcloudapi.com' - }, - tdmq_rabbitmq: { - service: 'tdmq', - version: '2020-02-17', - path: '/tdmq', - host: 'tdmq.tencentcloudapi.com' - }, - tdmq_rocketmq: { - service: 'tdmq', - version: '2020-02-17', - path: '/tdmq', - host: 'tdmq.tencentcloudapi.com' - }, - gaap: { - service: 'gaap', - version: '2018-05-29', - path: '/gaap', - host: 'gaap.tencentcloudapi.com' - }, - ecm: { - service: 'ecm', - version: '2019-07-19', - path: '/ecm', - host: 'ecm.tencentcloudapi.com' - }, - gse: { - service: 'gse', - version: '2019-11-12', - path: '/gse', - host: 'gse.tencentcloudapi.com' - }, - lighthouse: { - service: 'lighthouse', - version: '2020-03-24', - path: '/lighthouse', - host: 'lighthouse.tencentcloudapi.com' - }, - tsf: { - service: 'tsf', - version: '2018-03-26', - path: '/tsf', - host: 'tsf.tencentcloudapi.com' - }, - rum: { - service: 'rum', - version: '2021-06-22', - path: '/rum', - host: 'rum.tencentcloudapi.com' - }, - tke: { - service: 'tke', - version: '2018-05-25', - path: '/tke', - host: 'tke.tencentcloudapi.com' - }, - ecdn: { - service: 'ecdn', - version: '2019-10-12', - path: '/ecdn', - host: 'ecdn.tencentcloudapi.com' - }, - waf: { - service: 'waf', - version: '2018-01-25', - path: '/waf', - host: 'waf.tencentcloudapi.com' - }, - region: { - service: 'region', - version: '2022-06-27', - path: '/region', - host: 'region.tencentcloudapi.com' - }, - apm: { - service: 'apm', - version: '2021-06-22', - path: '/apm', - host: 'apm.tencentcloudapi.com' - } // 不单独定义lb,因为lb同样用的是vpc的配置,同上 - // lb: { - // service: 'lb', - // version: '2017-03-12', - // path: '/lb', - // host: 'vpc.tencentcloudapi.com' - // } - // 负载均衡四层协议 lbPrivate - // lbPrivate: { - // service: 'lbPrivate', - // version: '2018-03-17', - // path: '/clb', - // host: 'clb.tencentcloudapi.com', - // }, - -}; -var FINACE_HOST = { - scf: { - 'ap-shanghai-fsi': { - path: '/fsi/scf/shanghai', - host: 'scf.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/scf/shenzhen', - host: 'scf.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - cfs: { - 'ap-shanghai-fsi': { - path: '/fsi/cfs/shanghai', - host: 'cfs.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/cfs/shenzhen', - host: 'cfs.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - ckafka: { - 'ap-shanghai-fsi': { - path: '/fsi/ckafka/shanghai', - host: 'ckafka.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/ckafka/shenzhen', - host: 'ckafka.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - clb: { - 'ap-shanghai-fsi': { - path: '/fsi/clb/shanghai', - host: 'clb.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/clb/shenzhen', - host: 'clb.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - mongodb: { - 'ap-shanghai-fsi': { - path: '/fsi/mongodb/shanghai', - host: 'mongodb.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/mongodb/shenzhen', - host: 'mongodb.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - vpc: { - 'ap-shanghai-fsi': { - path: '/fsi/vpc/shanghai', - host: 'vpc.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/vpc/shenzhen', - host: 'vpc.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - cvm: { - 'ap-shanghai-fsi': { - path: '/fsi/cvm/shanghai', - host: 'cvm.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/cvm/shenzhen', - host: 'cvm.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - cdb: { - 'ap-shanghai-fsi': { - path: '/fsi/cdb/shanghai', - host: 'cdb.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/cdb/shenzhen', - host: 'cdb.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - monitor: { - 'ap-shanghai-fsi': { - path: '/fsi/monitor/shanghai', - host: 'monitor.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/monitor/shenzhen', - host: 'monitor.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - postgres: { - 'ap-shanghai-fsi': { - path: '/fsi/postgres/shanghai', - host: 'postgres.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/postgres/shenzhen', - host: 'postgres.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - emr: { - 'ap-shanghai-fsi': { - path: '/fsi/emr/shanghai', - host: 'emr.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/emr/shenzhen', - host: 'emr.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - cmq: { - 'ap-shanghai-fsi': { - path: '/fsi/cmq/shanghai', - host: 'cmq.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/cmq/shenzhen', - host: 'cmq.ap-shenzhen-fsi.tencentcloudapi.com' - } - }, - cls: { - 'ap-shanghai-fsi': { - path: '/fsi/cls/shanghai', - host: 'cls.ap-shanghai-fsi.tencentcloudapi.com' - }, - 'ap-shenzhen-fsi': { - path: '/fsi/cls/shenzhen', - host: 'cls.ap-shenzhen-fsi.tencentcloudapi.com' - } - } -}; // 获取对应业务的 API 接口信息 - -function GetServiceAPIInfo(region, service) { - return __assign(__assign({}, SERVICES_API_INFO[service] || {}), getHostAndPath(region, service)); -} // get host and path for finance regions - -function getHostAndPath(region, service) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(FINACE_REGIONS, region) === -1) { - return {}; - } - - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(FINACE_HOST, function (__, key) { - return key === service; - }), function (__, key) { - return key === region; - }) || {}; -} // 变量替换指定实例按照那个字段展示 - - -var VARIABLE_ALIAS = 'instancealias'; -function GetServiceFromNamespace(namespace) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(_tc_monitor__WEBPACK_IMPORTED_MODULE_2__["SERVICES"], function (service) { - return service.namespace === namespace; - }), 'service'); -} // 处理存量target中保存的qce/cvm - -function GetLabelFromNamespace(namespace) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(_tc_monitor__WEBPACK_IMPORTED_MODULE_2__["SERVICES"], function (service) { - return service.namespace === namespace || service.label === namespace; - }), 'label'); -} // parse template variable query params - -function ParseMetricQuery(query) { - if (query === void 0) { - query = ''; - } - - if (!query) { - return {}; - } - - var result = {}; - - var queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.split(query, '&'); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item) { - var str = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.split(item, '='); - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.trim(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(str, '0', ''))) { - var val = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.trim(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(str, '1', '')); - - try { - val = JSON.parse(val); - } catch (e) {// console.log({ val }); - } - - result[lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toLower(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.trim(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(str, '0', '')))] = val; - } - }); - - return result; -} // parse template variable regex params - -function ParseMetricRegex(regex) { - if (regex === void 0) { - regex = ''; - } - - if (!regex) { - return []; - } - - regex = regex.replace(/:/g, ':'); - regex = regex.replace(/,/g, ','); - var regexParams = ParseMetricQuery(regex); - var result = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(regexParams, function (value, key) { - if (key === 'tag:tag-key') { - var valuesArr = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.split(value, ','); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(valuesArr, function (item) { - var temp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.split(item, ':'); - - if (temp.length === 2) { - result.push({ - Name: "tag:".concat(temp[0]), - Values: temp.slice(1) - }); - } - }); - } else { - result.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.split(value, ',') - }); - } - }); - - return result; -} // get the actual value of template variable - -function parseVariableFormat(varname) { - varname = String(varname || ''); // $varname - - var varFlag = false; - var regResult1 = varname.match(/^\${?(\w+)}?/); - - if (regResult1) { - varFlag = true; - varname = "${".concat(regResult1[1], ":json}"); - } // [[varname]] - - - var regResult2 = varname.match(/^\[\[(\w+)(\:\w+)?\]\]/); - - if (regResult2) { - varFlag = true; - varname = "${".concat(regResult2[1], ":json}"); - } - - return { - varname: varname, - varFlag: varFlag - }; -} - -function ReplaceVariable(templateSrv, scopedVars, field, multiple) { - if (multiple === void 0) { - multiple = false; - } - - var _a = parseVariableFormat(field), - varname = _a.varname, - varFlag = _a.varFlag; - - var replaceVar = templateSrv.replace(varname, scopedVars); - - if (varFlag) { - try { - replaceVar = JSON.parse(replaceVar); - } catch (error) {} - } - - if (!multiple && lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(replaceVar)) { - replaceVar = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(replaceVar, '0', ''); - } - - return replaceVar; -} // get dimensions for instance query param - -function GetDimensions(obj) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(obj)) { - return []; - } - - var dimensions = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(obj, function (item) { - if (item.Value !== null && item.Value !== undefined && item.Value !== '') { - dimensions.push({ - Name: item.Name, - Value: typeof item.Value === 'string' ? item.Value : "".concat(item.Value) - }); - } - }); - - return dimensions; -} // parse query data result for panel - -function ParseQueryResult(response, instances, timeshift) { - if (instances === void 0) { - instances = []; - } - - if (timeshift === void 0) { - timeshift = 0; - } - - var instanceList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(instances); - - var dataPoints = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, 'DataPoints', []); - - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(dataPoints, function (dataPoint) { - var instanceAliasValue = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(dataPoint, 'Dimensions[0].Value'); - - for (var i = 0; i < instanceList.length; i++) { - if (isInstanceMatch(instanceList[i], lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(dataPoint, 'Dimensions', []))) { - instanceAliasValue = instanceList[i]._InstanceAliasValue; - instanceList.splice(i, 1); - break; - } - } - - return { - target: "".concat(response.MetricName, " - ").concat(instanceAliasValue), - datapoints: parseDataPoint(dataPoint, timeshift) - }; - }); -} // parse tencent cloud monitor response data to grafana panel data - -function parseDataPoint(dataPoint, timeshift) { - if (timeshift === void 0) { - timeshift = 0; - } - - var timestamps = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(dataPoint, 'Timestamps', []); - - var values = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(dataPoint, 'Values', []); - - var result = timestamps.map(function (timestamp, index) { - return [values[index], timestamp * 1000 + timeshift]; - }); - return result; -} // check whether instance is match or not - - -function isInstanceMatch(instance, dimensions) { - var match = true; // eslint-disable-next-line @typescript-eslint/prefer-for-of - - for (var i = 0; i < dimensions.length; i++) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(instance, dimensions[i].Name, '').toString() !== dimensions[i].Value.toString()) { - match = false; - break; - } - } - - return match; -} -/** - * 检查某个变量是否模板变量,即是否匹配 ${varnam} 或 [[varname]] - * - * @param field 变量字段名 - */ - - -function isVariable(value) { - if (value && (value.match(/^\${?(\w+)}?/) || value.match(/^\[\[(\w+)(\:\w+)?\]\]/))) { - return true; - } - - return false; -} -/** - * 腾讯云 API 3.0 接口协议 - * @param options 接口请求对象 { url: string, data?: object } - * @param service 产品名字 'cvm' - * @param signObj 接口请求相关信息 { region?: string, action: string } - * @param secretId - * @param secretKey - */ - -function GetRequestParams(options, service, signObj, secretId, datasourceId, backendSrv) { - if (signObj === void 0) { - signObj = {}; - } - - return __awaiter(this, void 0, void 0, function () { - var signParams, sign, _a, intranet, headerSigned; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - signParams = __assign(__assign(__assign({ - secretId: secretId, - payload: options.data || '' - }, signObj), lodash__WEBPACK_IMPORTED_MODULE_0___default.a.pick(GetServiceAPIInfo(signObj.region || '', service), ['service', 'host', 'version']) || {}), { - backendSrv: backendSrv, - datasourceId: datasourceId, - region: 'ap-guangzhou' - }); - sign = new _sign__WEBPACK_IMPORTED_MODULE_3__["default"](signParams); - return [4 - /*yield*/ - , sign.getHeader()]; - - case 1: - _a = _b.sent(), intranet = _a.intranet, headerSigned = __rest(_a, ["intranet"]); // 传入x-tc-language实现国际化 - // zh-CN en-US ko-KR ja-JP - - options.headers = Object.assign(options.headers || {}, __assign({}, headerSigned), { - 'x-tc-language': Object(_locale__WEBPACK_IMPORTED_MODULE_6__["getLanguage"])() - }); - options.method = 'POST'; - - if (intranet) { - options.url += '-internal'; - } - - return [2 - /*return*/ - , options]; - } - }); - }); -} -/** - * 腾讯云 API 2.0 接口协议 - * @param options 接口请求对象 { url: string, data?: object } - * @param service 产品名字 'cvm' - * @param signObj 接口请求相关信息 { region?: string, action: string } - * @param secretId - * @param secretKey - */ - -function GetRequestParamsV2(options, service, signObj, secretId, datasourceId, backendSrv) { - if (options === void 0) { - options = {}; - } - - if (signObj === void 0) { - signObj = {}; - } - - return __awaiter(this, void 0, void 0, function () { - var data, signParams, sign, _a, queryString, path, host, intranet; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - data = options.data || {}; - signParams = __assign(__assign(__assign({ - secretId: secretId, - data: data - }, signObj), lodash__WEBPACK_IMPORTED_MODULE_0___default.a.pick(GetServiceAPIInfo(signObj.region || '', service), ['host', 'version']) || {}), { - backendSrv: backendSrv, - datasourceId: datasourceId - }); - options.method = 'POST'; - sign = new _signV2__WEBPACK_IMPORTED_MODULE_4__["default"](signParams); - options.headers = Object.assign(options.headers || {}, { - 'Content-Type': 'application/x-www-form-urlencoded' - }); - return [4 - /*yield*/ - , sign.generateQueryString()]; - - case 1: - _a = _b.sent(), queryString = _a.queryString, path = _a.path, host = _a.host, intranet = _a.intranet; - options.data = qs__WEBPACK_IMPORTED_MODULE_1___default.a.stringify(__assign(__assign(__assign({}, options.data), queryString), host && { - host: host - })); - - if (intranet) { - // TODO: qcloud.com intranet host - console.log('got intranet for sign v2'); - } - - options.url += path; - return [2 - /*return*/ - , options]; - } - }); - }); -} -function SliceLength(total, len) { - if (total === void 0) { - total = 0; - } - - if (len === void 0) { - len = 1; - } - - var result = []; - var num = Math.ceil(total / len); - - for (var i = 1; i < num; i++) { - result.push({ - Offset: len * i - }); - } - - return result; -} -var FilterKeys = ['Namespace', 'Offset', 'Limit', 'SearchKey', 'Description', 'OrderBy', 'Order']; -function parseDataFromBackendPlugin(res) { - var data = Object(_grafana_runtime__WEBPACK_IMPORTED_MODULE_5__["toDataQueryResponse"])(res).data; - return { - authorization: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(data, '[0].meta.custom', '') - }; -} -/** 当前环境是否为非生产环境 */ - -var IS_DEVELOPMENT_ENVIRONMENT = !("development" === 'production'); -/** - * @link https://github.com/grafana/grafana/blob/3c6e0e8ef85048af952367751e478c08342e17b4/packages/grafana-data/src/types/app.ts#L12 - */ - -var CoreApp; - -(function (CoreApp) { - CoreApp["CloudAlerting"] = "cloud-alerting"; - CoreApp["UnifiedAlerting"] = "unified-alerting"; - CoreApp["Dashboard"] = "dashboard"; - CoreApp["Explore"] = "explore"; - CoreApp["Unknown"] = "unknown"; - CoreApp["PanelEditor"] = "panel-editor"; - CoreApp["PanelViewer"] = "panel-viewer"; -})(CoreApp || (CoreApp = {})); - -/***/ }), - -/***/ "./datasource/common/datasourceStorage.ts": -/*!************************************************!*\ - !*** ./datasource/common/datasourceStorage.ts ***! - \************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _indexedDB__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./indexedDB */ "./datasource/common/indexedDB.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - -var InstanceStorage = -/** @class */ -function () { - function InstanceStorage() { - // prefix = 'Datasource'; - // storageKey = 'grafanaInstanceCache'; - this.insKey = 'Instances'; - this.cacheWay = ''; - } - - InstanceStorage.prototype.setInstance = function (service, value) { - return this.setStorage(service, this.insKey, value, true); - }; - - InstanceStorage.prototype.getInstance = function (service) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , this.getStorage(service, this.insKey)]; - }); - }); - }; - - InstanceStorage.prototype.setExtraStorage = function (service, Ekey, EValue) { - return this.setStorage(service, Ekey, EValue, false); - }; - - InstanceStorage.prototype.getExtraStorage = function (service, Ekey) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , this.getStorage(service, Ekey)]; - }); - }); - }; - - InstanceStorage.prototype.setStorage = function (serviceKey, key, value, isCover) { - var _a; - - if (isCover === void 0) { - isCover = false; - } // console.log('set', serviceKey, key, value); - - - return _indexedDB__WEBPACK_IMPORTED_MODULE_0__["default"].addData((_a = { - service: serviceKey - }, _a[key] = value, _a), isCover); - }; // 获取到模版变量信息 - - - InstanceStorage.prototype.getStorage = function (service, key) { - return __awaiter(this, void 0, void 0, function () { - var storage; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _indexedDB__WEBPACK_IMPORTED_MODULE_0__["default"].getData(service)]; - - case 1: - storage = _a.sent(); // console.log('get', key, storage); - - return [2 - /*return*/ - , key ? storage === null || storage === void 0 ? void 0 : storage[key] : storage]; - } - }); - }); - }; - - return InstanceStorage; -}(); - -/* harmony default export */ __webpack_exports__["default"] = (new InstanceStorage()); - -/***/ }), - -/***/ "./datasource/common/indexedDB.ts": -/*!****************************************!*\ - !*** ./datasource/common/indexedDB.ts ***! - \****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; // interface UpdateProps { -// storeName: string; -// cursorKey: string; -// cursorValue?: any; -// data: any; -// } - - -var store = { - name: 'grafanaInstanceList', - key: 'service' -}; - -var promisify = function promisify(request, type) { - return new Promise(function (resolve, reject) { - request.onsuccess = function (event) { - var returnMap = { - event: event.target.result, - request: request.result, - msg: '操作成功' - }; - resolve(returnMap[type || 'msg']); - }; - - request.onerror = function (event) { - return reject(event.target.error || '操作失败'); - }; - }); -}; // 固定表名和数据库名 - - -var IndexedDB = -/** @class */ -function () { - function IndexedDB(props) { - this.name = 'grafanaDatabase'; - this.version = 1; - var _a = props.name, - name = _a === void 0 ? 'database' : _a, - _b = props.version, - version = _b === void 0 ? 1 : _b, - store = props.store; - this.name = name; - this.version = version; - this.initDB(store); - } - /** - * 初始化数据库 - * @param store 库表的结构 - */ - - - IndexedDB.prototype.initDB = function (store) { - var indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; - var request = indexeddb.open(this.name, this.version); - - request.onupgradeneeded = function (event) { - var db = event.target.result; - - if (db.objectStoreNames.contains(store.name)) {// 存在表store - } // 遍历store,设置数据表结构 - - - db.createObjectStore(store.name, { - keyPath: store.key - }); - }; - - request.onerror = function () { - return Promise.reject(new Error('初始化数据库失败')); - }; - - request.onsuccess = function () { - return Promise.resolve('初始化数据库成功'); - }; - }; - - IndexedDB.prototype.openDB = function () { - var indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; - var request = indexeddb.open(this.name, this.version); - return promisify(request, 'event'); - }; - /** - * 新增数据 - * @param storeName 表名 - * @param data 添加的数据 - */ - - - IndexedDB.prototype.insertData = function (storeName, data) { - return __awaiter(this, void 0, void 0, function () { - var db, transaction_1, objectStore, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2,, 3]); - - return [4 - /*yield*/ - , this.openDB()]; - - case 1: - db = _a.sent(); - transaction_1 = db.transaction(storeName, 'readwrite'); - objectStore = transaction_1.objectStore(storeName); - objectStore.add(data); // console.timeEnd('insertData'); - - return [2 - /*return*/ - , new Promise(function (resolve, reject) { - transaction_1.oncomplete = function () { - // console.timeEnd('insertData'); - resolve('所有数据插入成功'); - }; - - transaction_1.onerror = function (event) { - reject(event); - }; - })]; - - case 2: - error_1 = _a.sent(); - return [2 - /*return*/ - , Promise.reject(error_1)]; - - case 3: - return [2 - /*return*/ - ]; - } - }); - }); - }; - /** - * 更新数据 - * @param props 查询数据的参数以及要修改的值的参数 - */ - - - IndexedDB.prototype.addData = function (data, isCover) { - return __awaiter(this, void 0, void 0, function () { - var storeName, oldData, objectStore, newData, requestUpdate, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 3,, 4]); - - storeName = store.name; - return [4 - /*yield*/ - , this.getData(data.service)]; - - case 1: - oldData = _a.sent(); - return [4 - /*yield*/ - , this.getObjectStore(storeName, 'readwrite')]; - - case 2: - objectStore = _a.sent(); - - if (!oldData) { - // 不存在则新建 - this.insertData(storeName, data); - } - - newData = __assign(__assign({}, oldData), data); - if (isCover) newData = data; // 需要覆盖之前内容 - - requestUpdate = objectStore.put(newData); // console.timeEnd('updateData'); - - return [2 - /*return*/ - , promisify(requestUpdate)]; - - case 3: - error_2 = _a.sent(); - return [2 - /*return*/ - , Promise.reject(error_2)]; - - case 4: - return [2 - /*return*/ - ]; - } - }); - }); - }; - /** - * 获取数据库的值,返回查询到的第一项 - * @param storeName 表名/存储对象的键 - * @param cursorKey key - * @param cursorValue 要查询索引的值 - */ - - - IndexedDB.prototype.getData = function (seviceName) { - return __awaiter(this, void 0, void 0, function () { - var storeName, objectStore, request, error_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2,, 3]); - - storeName = store.name; - return [4 - /*yield*/ - , this.getObjectStore(storeName)]; - - case 1: - objectStore = _a.sent(); - request = objectStore.get(seviceName); // console.timeEnd('getData'); - - return [2 - /*return*/ - , promisify(request, 'request')]; - - case 2: - error_3 = _a.sent(); - return [2 - /*return*/ - , Promise.reject(error_3)]; - - case 3: - return [2 - /*return*/ - ]; - } - }); - }); - }; - - IndexedDB.prototype.getAllData = function (storeName) { - return __awaiter(this, void 0, void 0, function () { - var objectStore, request, result, error_4; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 3,, 4]); - - return [4 - /*yield*/ - , this.getObjectStore(storeName)]; - - case 1: - objectStore = _a.sent(); - request = objectStore.getAll(); - return [4 - /*yield*/ - , promisify(request, 'request')]; - - case 2: - result = _a.sent(); // console.timeEnd('getAllData'); - - return [2 - /*return*/ - , result ? result : []]; - - case 3: - error_4 = _a.sent(); - return [2 - /*return*/ - , Promise.reject(error_4)]; - - case 4: - return [2 - /*return*/ - ]; - } - }); - }); - }; - /** - * 获取对象仓库 - * @param storeName 表名 - * @param type readonly 或者 readwrite等 - */ - - - IndexedDB.prototype.getObjectStore = function (storeName, type) { - return __awaiter(this, void 0, Promise, function () { - var db, error_5; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2,, 3]); - - return [4 - /*yield*/ - , this.openDB()]; - - case 1: - db = _a.sent(); - return [2 - /*return*/ - , db.transaction(storeName, type).objectStore(storeName)]; - - case 2: - error_5 = _a.sent(); - return [2 - /*return*/ - , Promise.reject(error_5)]; - - case 3: - return [2 - /*return*/ - ]; - } - }); - }); - }; - - return IndexedDB; -}(); // console.log('testDDB') -// const indexDB = new IndexedDB({store}); -// indexDB.addData({service: 'cvm', instance: [{ins: 23}]}).then(e=>{ -// indexDB.getData('cvm').then(dd=>{console.log({dd})}) -// }) - - -/* harmony default export */ __webpack_exports__["default"] = (new IndexedDB({ - store: store -})); - -/***/ }), - -/***/ "./datasource/common/sign.ts": -/*!***********************************!*\ - !*** ./datasource/common/sign.ts ***! - \***********************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ "moment"); -/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - -var HttpRequestMethod = 'POST'; -var CanonicalUri = '/'; -var CanonicalQueryString = ''; -var ContentType = 'application/json'; - -var Sign = -/** @class */ -function () { - function Sign(options) { - var secretId = options.secretId, - service = options.service, - action = options.action, - host = options.host, - version = options.version, - _a = options.payload, - payload = _a === void 0 ? '' : _a, - region = options.region, - backendSrv = options.backendSrv, - datasourceId = options.datasourceId; - this.secretId = secretId; // this.secretKey = secretKey; - - this.service = service; - this.action = action; - this.host = host; - this.version = version; - this.payload = typeof payload === 'string' ? payload : JSON.stringify(payload); - this.region = region; - var nowDate = moment__WEBPACK_IMPORTED_MODULE_0___default()().utc(); - this.timestamp = nowDate.unix(); - this.date = nowDate.format('YYYY-MM-DD'); - this.backendSrv = backendSrv; - this.datasourceId = datasourceId; - } - - Sign.prototype.getHeader = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , this.getResourceHeader()]; - }); - }); - }; - - Sign.prototype.getResourceHeader = function () { - var _a, _b, _c; - - return __awaiter(this, void 0, void 0, function () { - var res, resp, err_1, authorization, token, intranet, grafanaVersion, headers; - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - res = {}; - _d.label = 1; - - case 1: - _d.trys.push([1, 3,, 4]); - - return [4 - /*yield*/ - , this.backendSrv.datasourceRequest({ - url: "/api/datasources/".concat(this.datasourceId, "/resources/sign_v3"), - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - data: { - Host: this.host, - Service: this.service, - Version: this.version, - Action: this.action, - Region: this.region, - Timestamp: this.timestamp, - Method: HttpRequestMethod, - Uri: CanonicalUri, - Query: CanonicalQueryString, - Body: this.payload, - Headers: { - 'content-type': ContentType, - host: this.host - } - } - })]; - - case 2: - resp = _d.sent(); - res = resp.data; - return [3 - /*break*/ - , 4]; - - case 3: - err_1 = _d.sent(); - return [3 - /*break*/ - , 4]; - - case 4: - authorization = res.authorization, token = res.token, intranet = res.intranet; - grafanaVersion = ((_c = (_b = (_a = window.grafanaBootData) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.buildInfo) === null || _c === void 0 ? void 0 : _c.version) || '0.0.0'; - headers = __assign(__assign(__assign({ - Authorization: authorization, - 'Content-Type': ContentType, - 'X-TC-Action': this.action, - 'X-TC-Timestamp': this.timestamp.toString(), - 'X-TC-Version': this.version, - 'X-TC-RequestClient': "GF_".concat(grafanaVersion, "_PL_CM_").concat("2.8.7") - }, this.region && { - 'X-TC-Region': this.region - }), token && { - 'X-TC-Token': token - }), { - intranet: intranet - }); - return [2 - /*return*/ - , headers]; - } - }); - }); - }; - - return Sign; -}(); - -/* harmony default export */ __webpack_exports__["default"] = (Sign); - -/***/ }), - -/***/ "./datasource/common/signV2.ts": -/*!*************************************!*\ - !*** ./datasource/common/signV2.ts ***! - \*************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/** - * - * @param defaults 为对象 - * secretId - * secretKey - * action - * region - * host - */ -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - -var SignV2 = -/** @class */ -function () { - function SignV2(defaults) { - var _this = this; - - if (defaults === void 0) { - defaults = {}; - } - - this.defaults = { - path: '/v2/index.php', - method: 'POST' - }; - - this.generateQueryString = function () { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , this.getResourceQueryString()]; - }); - }); - }; - - this.defaults = Object.assign(this.defaults, defaults); - this.defaults.secretKey = ''; - this.backendSrv = defaults.backendSrv; - this.datasourceId = defaults.datasourceId; - } - - SignV2.prototype.getResourceQueryString = function () { - return __awaiter(this, void 0, void 0, function () { - var res, data, payload, resp, err_1, path, querystring, host, intranet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - res = {}; - _a.label = 1; - - case 1: - _a.trys.push([1, 3,, 4]); - - data = this.defaults.data; - payload = typeof data === 'string' ? data : JSON.stringify(data); - return [4 - /*yield*/ - , this.backendSrv.datasourceRequest({ - url: "/api/datasources/".concat(this.datasourceId, "/resources/sign_v2"), - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - data: { - Host: this.defaults.host, - Action: this.defaults.action, - Version: this.defaults.version, - Region: this.defaults.region, - Method: this.defaults.method, - Uri: this.defaults.path, - Query: '', - Body: payload - } - })]; - - case 2: - resp = _a.sent(); - res = resp.data; - return [3 - /*break*/ - , 4]; - - case 3: - err_1 = _a.sent(); - return [3 - /*break*/ - , 4]; - - case 4: - path = res.path, querystring = res.querystring, host = res.host, intranet = res.intranet; - return [2 - /*return*/ - , { - queryString: querystring, - path: path, - host: host, - intranet: intranet - }]; - } - }); - }); - }; - - return SignV2; -}(); - -/* harmony default export */ __webpack_exports__["default"] = (SignV2); - -/***/ }), - -/***/ "./datasource/common/utils.ts": -/*!************************************!*\ - !*** ./datasource/common/utils.ts ***! - \************************************/ -/*! exports provided: fetchAllFactory, instanceQueryParamsBaseParse, getNamesapceFromService, serviceGroupBy, isTargetEqual, getTimeShiftInMs */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchAllFactory", function() { return fetchAllFactory; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "instanceQueryParamsBaseParse", function() { return instanceQueryParamsBaseParse; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNamesapceFromService", function() { return getNamesapceFromService; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serviceGroupBy", function() { return serviceGroupBy; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTargetEqual", function() { return isTargetEqual; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTimeShiftInMs", function() { return getTimeShiftInMs; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _tc_monitor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../tc_monitor */ "./datasource/tc_monitor/index.ts"); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - -/* 从分页数据获取全量数据 */ - -var PageSize = 50; - -function getFieldsValue(value, fields) { - return fields.map(function (item) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(value, item, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(value, "Result.".concat(item), [])); - }); -} - -function fetchAllFactory(fetcher, _params, field) { - var _a, _b, _c, _d, _e, _f, _g, _h; - - return __awaiter(this, void 0, void 0, function () { - var params, rs, fields, TotalCount, firstLists, delta, batchCount, pmList, resultList; - return __generator(this, function (_j) { - switch (_j.label) { - case 0: - params = __assign({}, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(_params, ['isOffsetPage'])); - params.Limit = params.Limit || PageSize; // 默认给个Limit大小为50 - - params.Offset = (_a = params.Offset) !== null && _a !== void 0 ? _a : 0; // 默认给个Offset为0 - - return [4 - /*yield*/ - , fetcher(params)]; - - case 1: - rs = (_b = _j.sent()) !== null && _b !== void 0 ? _b : {}; - fields = Array.isArray(field) ? field : [field]; - TotalCount = (_h = (_f = (_e = (_c = rs.TotalCount) !== null && _c !== void 0 ? _c : (_d = rs.Result) === null || _d === void 0 ? void 0 : _d.TotalCount) !== null && _e !== void 0 ? _e : rs.TotalCnt) !== null && _f !== void 0 ? _f : (_g = rs.Result) === null || _g === void 0 ? void 0 : _g.TotalCnt) !== null && _h !== void 0 ? _h : 0; - firstLists = getFieldsValue(rs, fields); - - if (TotalCount === 0 || firstLists[0].length === TotalCount) { - // 只有一页,结束 - return [2 - /*return*/ - , firstLists]; - } - - delta = TotalCount - firstLists[0].length; - batchCount = Math.ceil(delta / PageSize); - pmList = new Array(batchCount).fill(0).map(function (_, index) { - params.Offset = _params.isOffsetPage ? 1 + index : (1 + index) * params.Limit; - return fetcher(params); - }); - return [4 - /*yield*/ - , Promise.all(pmList)]; - - case 2: - resultList = _j.sent(); - return [2 - /*return*/ - , resultList.reduce(function (acc, cur) { - var lists = getFieldsValue(cur, fields); // [[], [], []] + [[], [], []] - - acc.forEach(function (list, index) { - return list.push.apply(list, lists[index]); - }); - return acc; - }, firstLists)]; - } - }); - }); -} -/** - * 实例列表接口入参处理 - * - * @param queries 表单键入内容 - * @param isFilter 是否需要设置为Filters格式 - */ - -function instanceQueryParamsBaseParse(queries, isFilter) { - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - var Filters_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - if (isFilter) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5) - }); - } else { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - if (isFilter) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5) - }); - } else { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } - } else if (item !== null && item !== undefined && item !== '') { - if (isFilter) { - Filters_1.push({ - Name: key, - Values: item - }); - } else { - params[key] = item; - } - } - }); - - if (isFilter && Filters_1.length > 0) { - params.Filters = Filters_1; - return params; - } - } - - return params; -} -function getNamesapceFromService(serviceName) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(_tc_monitor__WEBPACK_IMPORTED_MODULE_1__["SERVICES"], function (service) { - return service.service === serviceName; - }), 'namespace'); -} -function serviceGroupBy(services) { - var result = services.reduce(function (acc, cur) { - var namespace = cur.namespace, - label = cur.label, - _a = cur.groupName, - groupName = _a === void 0 ? label : _a; - var existedGroup = acc.find(function (item) { - return item.label === groupName; - }); - - if (!existedGroup) { - acc.push({ - label: groupName, - value: groupName, - items: [{ - label: label, - value: namespace - }] - }); - return acc; - } - - existedGroup.items.push({ - label: label, - value: namespace - }); - return acc; - }, []); // 将只有一个子元素的项目进行特殊处理 - - var rs = result.map(function (item) { - return item.items.length === 1 ? { - label: item.items[0].label, - value: item.items[0].value - } : item; - }); - return rs; -} -var isTargetEqual = function isTargetEqual(newTargetString, oldTargetString, key) { - try { - var newTarget = JSON.parse(newTargetString); - var oldTarget = JSON.parse(oldTargetString); - return newTarget[key] === oldTarget[key]; - } catch (e) { - return newTargetString === oldTargetString; - } -}; -var getTimeShiftInMs = function getTimeShiftInMs(timeShift) { - var parts = /^(\d+)([d|h|m|s])$/.exec(timeShift); - - if (!parts) { - return 0; - } - - var amount = parseInt(parts[1], 10); - var unit = parts[2]; - - switch (unit) { - case 'd': - return amount * 86400 * 1000; - - case 'h': - return amount * 3600 * 1000; - - case 'm': - return amount * 60 * 1000; - - case 's': - return amount * 1000; - } - - return 0; -}; - -/***/ }), - -/***/ "./datasource/plugin.json": -/*!********************************!*\ - !*** ./datasource/plugin.json ***! - \********************************/ -/*! exports provided: type, name, id, backend, alerting, logs, metrics, annotations, executable, queryOptions, routes, info, default */ -/***/ (function(module) { - -module.exports = JSON.parse("{\"type\":\"datasource\",\"name\":\"Tencent Cloud Monitoring\",\"id\":\"tencentcloud-monitor-datasource\",\"backend\":true,\"alerting\":true,\"logs\":true,\"metrics\":true,\"annotations\":false,\"executable\":\"tencentcloud-monitor-app-backend\",\"queryOptions\":{\"maxDataPoints\":true},\"routes\":[{\"path\":\"cls-internal\",\"url\":\"https://cls.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"region-internal\",\"url\":\"https://region.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"api-internal\",\"url\":\"https://api.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cmq-internal\",\"url\":\"https://cmq.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cmq/shanghai-internal\",\"url\":\"https://cmq.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cmq/shenzhen-internal\",\"url\":\"https://cmq.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"emr-internal\",\"url\":\"https://emr.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/emr/shanghai-internal\",\"url\":\"https://emr.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/emr/shenzhen-internal\",\"url\":\"https://emr.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"scf-internal\",\"url\":\"https://scf.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/scf/shanghai-internal\",\"url\":\"https://scf.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/scf/shenzhen-internal\",\"url\":\"https://scf.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cfs-internal\",\"url\":\"https://cfs.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cfs/shanghai-internal\",\"url\":\"https://cfs.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cfs/shenzhen-internal\",\"url\":\"https://cfs.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ckafka-internal\",\"url\":\"https://ckafka.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/ckafka/shanghai-internal\",\"url\":\"https://ckafka.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/ckafka/shenzhen-internal\",\"url\":\"https://ckafka.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"clb-internal\",\"url\":\"https://clb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/clb/shanghai-internal\",\"url\":\"https://clb.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/clb/shenzhen-internal\",\"url\":\"https://clb.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"mongodb-internal\",\"url\":\"https://mongodb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/mongodb/shanghai-internal\",\"url\":\"https://mongodb.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/mongodb/shenzhen-internal\",\"url\":\"https://mongodb.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"vpc-internal\",\"url\":\"https://vpc.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/vpc/shanghai-internal\",\"url\":\"https://vpc.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/vpc/shenzhen-internal\",\"url\":\"https://vpc.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"pcx-internal\",\"url\":\"https://vpc.api.qcloud.com.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/x-www-form-urlencoded\"}]},{\"path\":\"cvm-internal\",\"url\":\"https://cvm.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cvm/shanghai-internal\",\"url\":\"https://cvm.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cvm/shenzhen-internal\",\"url\":\"https://cvm.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"monitor-internal\",\"url\":\"https://monitor.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/monitor/shanghai-internal\",\"url\":\"https://monitor.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/monitor/shenzhen-internal\",\"url\":\"https://monitor.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cdb-internal\",\"url\":\"https://cdb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cdb/shanghai-internal\",\"url\":\"https://cdb.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cdb/shenzhen-internal\",\"url\":\"https://cdb.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"postgres-internal\",\"url\":\"https://postgres.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/postgres/shanghai-internal\",\"url\":\"https://postgres.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/postgres/shenzhen-internal\",\"url\":\"https://postgres.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cdn-internal\",\"url\":\"https://cdn.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"redis-internal\",\"url\":\"https://redis.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"dcdb-internal\",\"url\":\"https://dcdb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"dc-internal\",\"url\":\"https://dc.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cynosdb-internal\",\"url\":\"https://cynosdb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"sqlserver-internal\",\"url\":\"https://sqlserver.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmeip-internal\",\"url\":\"https://bmeip.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmvpc-internal\",\"url\":\"https://bmvpc.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmlb-internal\",\"url\":\"https://bmlb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bm-internal\",\"url\":\"https://bm.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"es-internal\",\"url\":\"https://es.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cbs-internal\",\"url\":\"https://cbs.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tcaplusdb-internal\",\"url\":\"https://tcaplusdb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"apigateway-internal\",\"url\":\"https://apigateway.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tdmq-internal\",\"url\":\"https://tdmq.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"gaap-internal\",\"url\":\"https://gaap.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ecm-internal\",\"url\":\"https://ecm.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"gse-internal\",\"url\":\"https://gse.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"lighthouse-internal\",\"url\":\"https://lighthouse.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tsf-internal\",\"url\":\"https://tsf.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"rum-internal\",\"url\":\"https://rum.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tke-internal\",\"url\":\"https://tke.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ecdn-internal\",\"url\":\"https://ecdn.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"waf-internal\",\"url\":\"https://waf.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"apigateway\",\"url\":\"https://apigateway.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"api\",\"url\":\"https://api.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cmq\",\"url\":\"https://cmq.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cmq/shanghai\",\"url\":\"https://cmq.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cmq/shenzhen\",\"url\":\"https://cmq.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"emr\",\"url\":\"https://emr.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/emr/shanghai\",\"url\":\"https://emr.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/emr/shenzhen\",\"url\":\"https://emr.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"scf\",\"url\":\"https://scf.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/scf/shanghai\",\"url\":\"https://scf.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/scf/shenzhen\",\"url\":\"https://scf.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cfs\",\"url\":\"https://cfs.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cfs/shanghai\",\"url\":\"https://cfs.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cfs/shenzhen\",\"url\":\"https://cfs.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ckafka\",\"url\":\"https://ckafka.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/ckafka/shanghai\",\"url\":\"https://ckafka.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/ckafka/shenzhen\",\"url\":\"https://ckafka.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"clb\",\"url\":\"https://clb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/clb/shanghai\",\"url\":\"https://clb.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/clb/shenzhen\",\"url\":\"https://clb.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"mongodb\",\"url\":\"https://mongodb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/mongodb/shanghai\",\"url\":\"https://mongodb.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/mongodb/shenzhen\",\"url\":\"https://mongodb.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"vpc\",\"url\":\"https://vpc.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/vpc/shanghai\",\"url\":\"https://vpc.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/vpc/shenzhen\",\"url\":\"https://vpc.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"pcx\",\"url\":\"https://vpc.api.qcloud.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/x-www-form-urlencoded\"}]},{\"path\":\"cvm\",\"url\":\"https://cvm.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cvm/shanghai\",\"url\":\"https://cvm.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cvm/shenzhen\",\"url\":\"https://cvm.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"monitor\",\"url\":\"https://monitor.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/monitor/shanghai\",\"url\":\"https://monitor.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/monitor/shenzhen\",\"url\":\"https://monitor.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cdb\",\"url\":\"https://cdb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cdb/shanghai\",\"url\":\"https://cdb.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cdb/shenzhen\",\"url\":\"https://cdb.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"postgres\",\"url\":\"https://postgres.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/postgres/shanghai\",\"url\":\"https://postgres.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/postgres/shenzhen\",\"url\":\"https://postgres.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cdn\",\"url\":\"https://cdn.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"redis\",\"url\":\"https://redis.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"dcdb\",\"url\":\"https://dcdb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"dc\",\"url\":\"https://dc.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cynosdb\",\"url\":\"https://cynosdb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"sqlserver\",\"url\":\"https://sqlserver.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmeip\",\"url\":\"https://bmeip.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmvpc\",\"url\":\"https://bmvpc.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmlb\",\"url\":\"https://bmlb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bm\",\"url\":\"https://bm.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"es\",\"url\":\"https://es.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cbs\",\"url\":\"https://cbs.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tcaplusdb\",\"url\":\"https://tcaplusdb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tdmq\",\"url\":\"https://tdmq.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"gaap\",\"url\":\"https://gaap.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ecm\",\"url\":\"https://ecm.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"gse\",\"url\":\"https://gse.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cls\",\"url\":\"https://cls.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cls/shanghai\",\"url\":\"https://cls.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cls/shenzhen\",\"url\":\"https://cls.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"region\",\"url\":\"https://region.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"lighthouse\",\"url\":\"https://lighthouse.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tsf\",\"url\":\"https://tsf.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"rum\",\"url\":\"https://rum.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"apm\",\"url\":\"https://apm.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tke\",\"url\":\"https://tke.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ecdn\",\"url\":\"https://ecdn.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"waf\",\"url\":\"https://waf.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]}],\"info\":{\"author\":{\"name\":\"Tencent Cloud\"},\"logos\":{\"small\":\"img/tencent-cloud.svg\",\"large\":\"img/tencent-cloud.svg\"},\"description\":\"Data source for Tencent Cloud monitoring service\"}}"); - -/***/ }), - -/***/ "./datasource/tc_monitor sync recursive ^.*$": -/*!*****************************************!*\ - !*** ./datasource/tc_monitor sync ^.*$ ***! - \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var map = { - ".": "./datasource/tc_monitor/index.ts", - "./": "./datasource/tc_monitor/index.ts", - "./MonitorDatasource": "./datasource/tc_monitor/MonitorDatasource.ts", - "./MonitorDatasource.ts": "./datasource/tc_monitor/MonitorDatasource.ts", - "./_base/datasource": "./datasource/tc_monitor/_base/datasource.ts", - "./_base/datasource.ts": "./datasource/tc_monitor/_base/datasource.ts", - "./_base/query": "./datasource/tc_monitor/_base/query.ts", - "./_base/query.ts": "./datasource/tc_monitor/_base/query.ts", - "./_base/query_filter": "./datasource/tc_monitor/_base/query_filter.ts", - "./_base/query_filter.ts": "./datasource/tc_monitor/_base/query_filter.ts", - "./_base/types": "./datasource/tc_monitor/_base/types.ts", - "./_base/types.ts": "./datasource/tc_monitor/_base/types.ts", - "./apigateway/datasource": "./datasource/tc_monitor/apigateway/datasource.ts", - "./apigateway/datasource.ts": "./datasource/tc_monitor/apigateway/datasource.ts", - "./apigateway/query": "./datasource/tc_monitor/apigateway/query.ts", - "./apigateway/query.ts": "./datasource/tc_monitor/apigateway/query.ts", - "./apigateway/query_def": "./datasource/tc_monitor/apigateway/query_def.ts", - "./apigateway/query_def.ts": "./datasource/tc_monitor/apigateway/query_def.ts", - "./bmIntraLb/datasource": "./datasource/tc_monitor/bmIntraLb/datasource.ts", - "./bmIntraLb/datasource.ts": "./datasource/tc_monitor/bmIntraLb/datasource.ts", - "./bmIntraLb/query": "./datasource/tc_monitor/bmIntraLb/query.ts", - "./bmIntraLb/query.ts": "./datasource/tc_monitor/bmIntraLb/query.ts", - "./bmIntraLb/query_def": "./datasource/tc_monitor/bmIntraLb/query_def.ts", - "./bmIntraLb/query_def.ts": "./datasource/tc_monitor/bmIntraLb/query_def.ts", - "./bm_lb/datasource": "./datasource/tc_monitor/bm_lb/datasource.ts", - "./bm_lb/datasource.ts": "./datasource/tc_monitor/bm_lb/datasource.ts", - "./bm_lb/query": "./datasource/tc_monitor/bm_lb/query.ts", - "./bm_lb/query.ts": "./datasource/tc_monitor/bm_lb/query.ts", - "./bm_lb/query_def": "./datasource/tc_monitor/bm_lb/query_def.ts", - "./bm_lb/query_def.ts": "./datasource/tc_monitor/bm_lb/query_def.ts", - "./bm_pcx/datasource": "./datasource/tc_monitor/bm_pcx/datasource.ts", - "./bm_pcx/datasource.ts": "./datasource/tc_monitor/bm_pcx/datasource.ts", - "./bm_pcx/query": "./datasource/tc_monitor/bm_pcx/query.ts", - "./bm_pcx/query.ts": "./datasource/tc_monitor/bm_pcx/query.ts", - "./bm_pcx/query_def": "./datasource/tc_monitor/bm_pcx/query_def.ts", - "./bm_pcx/query_def.ts": "./datasource/tc_monitor/bm_pcx/query_def.ts", - "./bwp/datasource": "./datasource/tc_monitor/bwp/datasource.ts", - "./bwp/datasource.ts": "./datasource/tc_monitor/bwp/datasource.ts", - "./bwp/query": "./datasource/tc_monitor/bwp/query.ts", - "./bwp/query.ts": "./datasource/tc_monitor/bwp/query.ts", - "./bwp/query_def": "./datasource/tc_monitor/bwp/query_def.ts", - "./bwp/query_def.ts": "./datasource/tc_monitor/bwp/query_def.ts", - "./cbs/datasource": "./datasource/tc_monitor/cbs/datasource.ts", - "./cbs/datasource.ts": "./datasource/tc_monitor/cbs/datasource.ts", - "./cbs/query": "./datasource/tc_monitor/cbs/query.ts", - "./cbs/query.ts": "./datasource/tc_monitor/cbs/query.ts", - "./cbs/query_def": "./datasource/tc_monitor/cbs/query_def.ts", - "./cbs/query_def.ts": "./datasource/tc_monitor/cbs/query_def.ts", - "./cdb/datasource": "./datasource/tc_monitor/cdb/datasource.ts", - "./cdb/datasource.ts": "./datasource/tc_monitor/cdb/datasource.ts", - "./cdb/query": "./datasource/tc_monitor/cdb/query.ts", - "./cdb/query.ts": "./datasource/tc_monitor/cdb/query.ts", - "./cdb/query_def": "./datasource/tc_monitor/cdb/query_def.ts", - "./cdb/query_def.ts": "./datasource/tc_monitor/cdb/query_def.ts", - "./cdn/datasource": "./datasource/tc_monitor/cdn/datasource.ts", - "./cdn/datasource.ts": "./datasource/tc_monitor/cdn/datasource.ts", - "./cdn/query": "./datasource/tc_monitor/cdn/query.ts", - "./cdn/query.ts": "./datasource/tc_monitor/cdn/query.ts", - "./cdn/query_def": "./datasource/tc_monitor/cdn/query_def.ts", - "./cdn/query_def.ts": "./datasource/tc_monitor/cdn/query_def.ts", - "./cdn_province/datasource": "./datasource/tc_monitor/cdn_province/datasource.ts", - "./cdn_province/datasource.ts": "./datasource/tc_monitor/cdn_province/datasource.ts", - "./cdn_province/query": "./datasource/tc_monitor/cdn_province/query.ts", - "./cdn_province/query.ts": "./datasource/tc_monitor/cdn_province/query.ts", - "./cdn_province/query_def": "./datasource/tc_monitor/cdn_province/query_def.ts", - "./cdn_province/query_def.ts": "./datasource/tc_monitor/cdn_province/query_def.ts", - "./ceip_summary/datasource": "./datasource/tc_monitor/ceip_summary/datasource.ts", - "./ceip_summary/datasource.ts": "./datasource/tc_monitor/ceip_summary/datasource.ts", - "./ceip_summary/query": "./datasource/tc_monitor/ceip_summary/query.ts", - "./ceip_summary/query.ts": "./datasource/tc_monitor/ceip_summary/query.ts", - "./ceip_summary/query_def": "./datasource/tc_monitor/ceip_summary/query_def.ts", - "./ceip_summary/query_def.ts": "./datasource/tc_monitor/ceip_summary/query_def.ts", - "./ces/datasource": "./datasource/tc_monitor/ces/datasource.ts", - "./ces/datasource.ts": "./datasource/tc_monitor/ces/datasource.ts", - "./ces/query": "./datasource/tc_monitor/ces/query.ts", - "./ces/query.ts": "./datasource/tc_monitor/ces/query.ts", - "./ces/query_def": "./datasource/tc_monitor/ces/query_def.ts", - "./ces/query_def.ts": "./datasource/tc_monitor/ces/query_def.ts", - "./cfs/datasource": "./datasource/tc_monitor/cfs/datasource.ts", - "./cfs/datasource.ts": "./datasource/tc_monitor/cfs/datasource.ts", - "./cfs/query": "./datasource/tc_monitor/cfs/query.ts", - "./cfs/query.ts": "./datasource/tc_monitor/cfs/query.ts", - "./cfs/query_def": "./datasource/tc_monitor/cfs/query_def.ts", - "./cfs/query_def.ts": "./datasource/tc_monitor/cfs/query_def.ts", - "./ckafka/datasource": "./datasource/tc_monitor/ckafka/datasource.ts", - "./ckafka/datasource.ts": "./datasource/tc_monitor/ckafka/datasource.ts", - "./ckafka/query": "./datasource/tc_monitor/ckafka/query.ts", - "./ckafka/query.ts": "./datasource/tc_monitor/ckafka/query.ts", - "./ckafka/query_def": "./datasource/tc_monitor/ckafka/query_def.ts", - "./ckafka/query_def.ts": "./datasource/tc_monitor/ckafka/query_def.ts", - "./clb/datasource": "./datasource/tc_monitor/clb/datasource.ts", - "./clb/datasource.ts": "./datasource/tc_monitor/clb/datasource.ts", - "./clb/query": "./datasource/tc_monitor/clb/query.ts", - "./clb/query.ts": "./datasource/tc_monitor/clb/query.ts", - "./clb/query_def": "./datasource/tc_monitor/clb/query_def.ts", - "./clb/query_def.ts": "./datasource/tc_monitor/clb/query_def.ts", - "./cls/datasource": "./datasource/tc_monitor/cls/datasource.ts", - "./cls/datasource.ts": "./datasource/tc_monitor/cls/datasource.ts", - "./cls/query": "./datasource/tc_monitor/cls/query.ts", - "./cls/query.ts": "./datasource/tc_monitor/cls/query.ts", - "./cls/query_def": "./datasource/tc_monitor/cls/query_def.ts", - "./cls/query_def.ts": "./datasource/tc_monitor/cls/query_def.ts", - "./cmq/datasource": "./datasource/tc_monitor/cmq/datasource.ts", - "./cmq/datasource.ts": "./datasource/tc_monitor/cmq/datasource.ts", - "./cmq/query": "./datasource/tc_monitor/cmq/query.ts", - "./cmq/query.ts": "./datasource/tc_monitor/cmq/query.ts", - "./cmq/query_def": "./datasource/tc_monitor/cmq/query_def.ts", - "./cmq/query_def.ts": "./datasource/tc_monitor/cmq/query_def.ts", - "./cmq_topic/datasource": "./datasource/tc_monitor/cmq_topic/datasource.ts", - "./cmq_topic/datasource.ts": "./datasource/tc_monitor/cmq_topic/datasource.ts", - "./cmq_topic/query": "./datasource/tc_monitor/cmq_topic/query.ts", - "./cmq_topic/query.ts": "./datasource/tc_monitor/cmq_topic/query.ts", - "./cmq_topic/query_def": "./datasource/tc_monitor/cmq_topic/query_def.ts", - "./cmq_topic/query_def.ts": "./datasource/tc_monitor/cmq_topic/query_def.ts", - "./cos/datasource": "./datasource/tc_monitor/cos/datasource.ts", - "./cos/datasource.ts": "./datasource/tc_monitor/cos/datasource.ts", - "./cos/query_def": "./datasource/tc_monitor/cos/query_def.ts", - "./cos/query_def.ts": "./datasource/tc_monitor/cos/query_def.ts", - "./cpm/datasource": "./datasource/tc_monitor/cpm/datasource.ts", - "./cpm/datasource.ts": "./datasource/tc_monitor/cpm/datasource.ts", - "./cpm/query": "./datasource/tc_monitor/cpm/query.ts", - "./cpm/query.ts": "./datasource/tc_monitor/cpm/query.ts", - "./cpm/query_def": "./datasource/tc_monitor/cpm/query_def.ts", - "./cpm/query_def.ts": "./datasource/tc_monitor/cpm/query_def.ts", - "./cvm/datasource": "./datasource/tc_monitor/cvm/datasource.ts", - "./cvm/datasource.ts": "./datasource/tc_monitor/cvm/datasource.ts", - "./cvm/query": "./datasource/tc_monitor/cvm/query.ts", - "./cvm/query.ts": "./datasource/tc_monitor/cvm/query.ts", - "./cvm/query_def": "./datasource/tc_monitor/cvm/query_def.ts", - "./cvm/query_def.ts": "./datasource/tc_monitor/cvm/query_def.ts", - "./cynosdb_mysql/datasource": "./datasource/tc_monitor/cynosdb_mysql/datasource.ts", - "./cynosdb_mysql/datasource.ts": "./datasource/tc_monitor/cynosdb_mysql/datasource.ts", - "./cynosdb_mysql/query": "./datasource/tc_monitor/cynosdb_mysql/query.ts", - "./cynosdb_mysql/query.ts": "./datasource/tc_monitor/cynosdb_mysql/query.ts", - "./cynosdb_mysql/query_def": "./datasource/tc_monitor/cynosdb_mysql/query_def.ts", - "./cynosdb_mysql/query_def.ts": "./datasource/tc_monitor/cynosdb_mysql/query_def.ts", - "./dc/datasource": "./datasource/tc_monitor/dc/datasource.ts", - "./dc/datasource.ts": "./datasource/tc_monitor/dc/datasource.ts", - "./dc/query": "./datasource/tc_monitor/dc/query.ts", - "./dc/query.ts": "./datasource/tc_monitor/dc/query.ts", - "./dc/query_def": "./datasource/tc_monitor/dc/query_def.ts", - "./dc/query_def.ts": "./datasource/tc_monitor/dc/query_def.ts", - "./dcdb/datasource": "./datasource/tc_monitor/dcdb/datasource.ts", - "./dcdb/datasource.ts": "./datasource/tc_monitor/dcdb/datasource.ts", - "./dcdb/query": "./datasource/tc_monitor/dcdb/query.ts", - "./dcdb/query.ts": "./datasource/tc_monitor/dcdb/query.ts", - "./dcdb/query_def": "./datasource/tc_monitor/dcdb/query_def.ts", - "./dcdb/query_def.ts": "./datasource/tc_monitor/dcdb/query_def.ts", - "./dcg/datasource": "./datasource/tc_monitor/dcg/datasource.ts", - "./dcg/datasource.ts": "./datasource/tc_monitor/dcg/datasource.ts", - "./dcg/query": "./datasource/tc_monitor/dcg/query.ts", - "./dcg/query.ts": "./datasource/tc_monitor/dcg/query.ts", - "./dcg/query_def": "./datasource/tc_monitor/dcg/query_def.ts", - "./dcg/query_def.ts": "./datasource/tc_monitor/dcg/query_def.ts", - "./dcx/datasource": "./datasource/tc_monitor/dcx/datasource.ts", - "./dcx/datasource.ts": "./datasource/tc_monitor/dcx/datasource.ts", - "./dcx/query": "./datasource/tc_monitor/dcx/query.ts", - "./dcx/query.ts": "./datasource/tc_monitor/dcx/query.ts", - "./dcx/query_def": "./datasource/tc_monitor/dcx/query_def.ts", - "./dcx/query_def.ts": "./datasource/tc_monitor/dcx/query_def.ts", - "./ecdn/datasource": "./datasource/tc_monitor/ecdn/datasource.ts", - "./ecdn/datasource.ts": "./datasource/tc_monitor/ecdn/datasource.ts", - "./ecdn/query": "./datasource/tc_monitor/ecdn/query.ts", - "./ecdn/query.ts": "./datasource/tc_monitor/ecdn/query.ts", - "./ecdn/query_def": "./datasource/tc_monitor/ecdn/query_def.ts", - "./ecdn/query_def.ts": "./datasource/tc_monitor/ecdn/query_def.ts", - "./ecm/datasource": "./datasource/tc_monitor/ecm/datasource.ts", - "./ecm/datasource.ts": "./datasource/tc_monitor/ecm/datasource.ts", - "./ecm/query": "./datasource/tc_monitor/ecm/query.ts", - "./ecm/query.ts": "./datasource/tc_monitor/ecm/query.ts", - "./ecm/query_def": "./datasource/tc_monitor/ecm/query_def.ts", - "./ecm/query_def.ts": "./datasource/tc_monitor/ecm/query_def.ts", - "./ecm_block_storage/datasource": "./datasource/tc_monitor/ecm_block_storage/datasource.ts", - "./ecm_block_storage/datasource.ts": "./datasource/tc_monitor/ecm_block_storage/datasource.ts", - "./ecm_block_storage/query": "./datasource/tc_monitor/ecm_block_storage/query.ts", - "./ecm_block_storage/query.ts": "./datasource/tc_monitor/ecm_block_storage/query.ts", - "./ecm_block_storage/query_def": "./datasource/tc_monitor/ecm_block_storage/query_def.ts", - "./ecm_block_storage/query_def.ts": "./datasource/tc_monitor/ecm_block_storage/query_def.ts", - "./ecm_lb/datasource": "./datasource/tc_monitor/ecm_lb/datasource.ts", - "./ecm_lb/datasource.ts": "./datasource/tc_monitor/ecm_lb/datasource.ts", - "./ecm_lb/query": "./datasource/tc_monitor/ecm_lb/query.ts", - "./ecm_lb/query.ts": "./datasource/tc_monitor/ecm_lb/query.ts", - "./ecm_lb/query_def": "./datasource/tc_monitor/ecm_lb/query_def.ts", - "./ecm_lb/query_def.ts": "./datasource/tc_monitor/ecm_lb/query_def.ts", - "./gse/datasource": "./datasource/tc_monitor/gse/datasource.ts", - "./gse/datasource.ts": "./datasource/tc_monitor/gse/datasource.ts", - "./gse/query": "./datasource/tc_monitor/gse/query.ts", - "./gse/query.ts": "./datasource/tc_monitor/gse/query.ts", - "./gse/query_def": "./datasource/tc_monitor/gse/query_def.ts", - "./gse/query_def.ts": "./datasource/tc_monitor/gse/query_def.ts", - "./index": "./datasource/tc_monitor/index.ts", - "./index.ts": "./datasource/tc_monitor/index.ts", - "./lb/datasource": "./datasource/tc_monitor/lb/datasource.ts", - "./lb/datasource.ts": "./datasource/tc_monitor/lb/datasource.ts", - "./lb/query": "./datasource/tc_monitor/lb/query.ts", - "./lb/query.ts": "./datasource/tc_monitor/lb/query.ts", - "./lb/query_def": "./datasource/tc_monitor/lb/query_def.ts", - "./lb/query_def.ts": "./datasource/tc_monitor/lb/query_def.ts", - "./lighthouse/datasource": "./datasource/tc_monitor/lighthouse/datasource.ts", - "./lighthouse/datasource.ts": "./datasource/tc_monitor/lighthouse/datasource.ts", - "./lighthouse/query": "./datasource/tc_monitor/lighthouse/query.ts", - "./lighthouse/query.ts": "./datasource/tc_monitor/lighthouse/query.ts", - "./lighthouse/query_def": "./datasource/tc_monitor/lighthouse/query_def.ts", - "./lighthouse/query_def.ts": "./datasource/tc_monitor/lighthouse/query_def.ts", - "./mongodb/datasource": "./datasource/tc_monitor/mongodb/datasource.ts", - "./mongodb/datasource.ts": "./datasource/tc_monitor/mongodb/datasource.ts", - "./mongodb/query": "./datasource/tc_monitor/mongodb/query.ts", - "./mongodb/query.ts": "./datasource/tc_monitor/mongodb/query.ts", - "./mongodb/query_def": "./datasource/tc_monitor/mongodb/query_def.ts", - "./mongodb/query_def.ts": "./datasource/tc_monitor/mongodb/query_def.ts", - "./mr/datasource": "./datasource/tc_monitor/mr/datasource.ts", - "./mr/datasource.ts": "./datasource/tc_monitor/mr/datasource.ts", - "./mr/query": "./datasource/tc_monitor/mr/query.ts", - "./mr/query.ts": "./datasource/tc_monitor/mr/query.ts", - "./mr/query_def": "./datasource/tc_monitor/mr/query_def.ts", - "./mr/query_def.ts": "./datasource/tc_monitor/mr/query_def.ts", - "./nat_gateway/datasource": "./datasource/tc_monitor/nat_gateway/datasource.ts", - "./nat_gateway/datasource.ts": "./datasource/tc_monitor/nat_gateway/datasource.ts", - "./nat_gateway/query": "./datasource/tc_monitor/nat_gateway/query.ts", - "./nat_gateway/query.ts": "./datasource/tc_monitor/nat_gateway/query.ts", - "./nat_gateway/query_def": "./datasource/tc_monitor/nat_gateway/query_def.ts", - "./nat_gateway/query_def.ts": "./datasource/tc_monitor/nat_gateway/query_def.ts", - "./ov_cdn/datasource": "./datasource/tc_monitor/ov_cdn/datasource.ts", - "./ov_cdn/datasource.ts": "./datasource/tc_monitor/ov_cdn/datasource.ts", - "./ov_cdn/query": "./datasource/tc_monitor/ov_cdn/query.ts", - "./ov_cdn/query.ts": "./datasource/tc_monitor/ov_cdn/query.ts", - "./ov_cdn/query_def": "./datasource/tc_monitor/ov_cdn/query_def.ts", - "./ov_cdn/query_def.ts": "./datasource/tc_monitor/ov_cdn/query_def.ts", - "./pcx/datasource": "./datasource/tc_monitor/pcx/datasource.ts", - "./pcx/datasource.ts": "./datasource/tc_monitor/pcx/datasource.ts", - "./pcx/query": "./datasource/tc_monitor/pcx/query.ts", - "./pcx/query.ts": "./datasource/tc_monitor/pcx/query.ts", - "./pcx/query_def": "./datasource/tc_monitor/pcx/query_def.ts", - "./pcx/query_def.ts": "./datasource/tc_monitor/pcx/query_def.ts", - "./postgresql/datasource": "./datasource/tc_monitor/postgresql/datasource.ts", - "./postgresql/datasource.ts": "./datasource/tc_monitor/postgresql/datasource.ts", - "./postgresql/query": "./datasource/tc_monitor/postgresql/query.ts", - "./postgresql/query.ts": "./datasource/tc_monitor/postgresql/query.ts", - "./postgresql/query_def": "./datasource/tc_monitor/postgresql/query_def.ts", - "./postgresql/query_def.ts": "./datasource/tc_monitor/postgresql/query_def.ts", - "./qaap/datasource": "./datasource/tc_monitor/qaap/datasource.ts", - "./qaap/datasource.ts": "./datasource/tc_monitor/qaap/datasource.ts", - "./qaap/query": "./datasource/tc_monitor/qaap/query.ts", - "./qaap/query.ts": "./datasource/tc_monitor/qaap/query.ts", - "./qaap/query_def": "./datasource/tc_monitor/qaap/query_def.ts", - "./qaap/query_def.ts": "./datasource/tc_monitor/qaap/query_def.ts", - "./redis/datasource": "./datasource/tc_monitor/redis/datasource.ts", - "./redis/datasource.ts": "./datasource/tc_monitor/redis/datasource.ts", - "./redis/query": "./datasource/tc_monitor/redis/query.ts", - "./redis/query.ts": "./datasource/tc_monitor/redis/query.ts", - "./redis/query_def": "./datasource/tc_monitor/redis/query_def.ts", - "./redis/query_def.ts": "./datasource/tc_monitor/redis/query_def.ts", - "./redis_mem/datasource": "./datasource/tc_monitor/redis_mem/datasource.ts", - "./redis_mem/datasource.ts": "./datasource/tc_monitor/redis_mem/datasource.ts", - "./redis_mem/query": "./datasource/tc_monitor/redis_mem/query.ts", - "./redis_mem/query.ts": "./datasource/tc_monitor/redis_mem/query.ts", - "./redis_mem/query_def": "./datasource/tc_monitor/redis_mem/query_def.ts", - "./redis_mem/query_def.ts": "./datasource/tc_monitor/redis_mem/query_def.ts", - "./scf/datasource": "./datasource/tc_monitor/scf/datasource.ts", - "./scf/datasource.ts": "./datasource/tc_monitor/scf/datasource.ts", - "./scf/query": "./datasource/tc_monitor/scf/query.ts", - "./scf/query.ts": "./datasource/tc_monitor/scf/query.ts", - "./scf/query_def": "./datasource/tc_monitor/scf/query_def.ts", - "./scf/query_def.ts": "./datasource/tc_monitor/scf/query_def.ts", - "./sqlserver/datasource": "./datasource/tc_monitor/sqlserver/datasource.ts", - "./sqlserver/datasource.ts": "./datasource/tc_monitor/sqlserver/datasource.ts", - "./sqlserver/query": "./datasource/tc_monitor/sqlserver/query.ts", - "./sqlserver/query.ts": "./datasource/tc_monitor/sqlserver/query.ts", - "./sqlserver/query_def": "./datasource/tc_monitor/sqlserver/query_def.ts", - "./sqlserver/query_def.ts": "./datasource/tc_monitor/sqlserver/query_def.ts", - "./tcaplus/datasource": "./datasource/tc_monitor/tcaplus/datasource.ts", - "./tcaplus/datasource.ts": "./datasource/tc_monitor/tcaplus/datasource.ts", - "./tcaplus/query": "./datasource/tc_monitor/tcaplus/query.ts", - "./tcaplus/query.ts": "./datasource/tc_monitor/tcaplus/query.ts", - "./tcaplus/query_def": "./datasource/tc_monitor/tcaplus/query_def.ts", - "./tcaplus/query_def.ts": "./datasource/tc_monitor/tcaplus/query_def.ts", - "./tdmq/datasource": "./datasource/tc_monitor/tdmq/datasource.ts", - "./tdmq/datasource.ts": "./datasource/tc_monitor/tdmq/datasource.ts", - "./tdmq/query": "./datasource/tc_monitor/tdmq/query.ts", - "./tdmq/query.ts": "./datasource/tc_monitor/tdmq/query.ts", - "./tdmq/query_def": "./datasource/tc_monitor/tdmq/query_def.ts", - "./tdmq/query_def.ts": "./datasource/tc_monitor/tdmq/query_def.ts", - "./tdmq_rabbitmq/datasource": "./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts", - "./tdmq_rabbitmq/datasource.ts": "./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts", - "./tdmq_rabbitmq/query": "./datasource/tc_monitor/tdmq_rabbitmq/query.ts", - "./tdmq_rabbitmq/query.ts": "./datasource/tc_monitor/tdmq_rabbitmq/query.ts", - "./tdmq_rabbitmq/query_def": "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts", - "./tdmq_rabbitmq/query_def.ts": "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts", - "./tdmq_rocketmq/datasource": "./datasource/tc_monitor/tdmq_rocketmq/datasource.ts", - "./tdmq_rocketmq/datasource.ts": "./datasource/tc_monitor/tdmq_rocketmq/datasource.ts", - "./tdmq_rocketmq/query": "./datasource/tc_monitor/tdmq_rocketmq/query.ts", - "./tdmq_rocketmq/query.ts": "./datasource/tc_monitor/tdmq_rocketmq/query.ts", - "./tdmq_rocketmq/query_def": "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts", - "./tdmq_rocketmq/query_def.ts": "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts", - "./tke/datasource": "./datasource/tc_monitor/tke/datasource.ts", - "./tke/datasource.ts": "./datasource/tc_monitor/tke/datasource.ts", - "./tke/query": "./datasource/tc_monitor/tke/query.ts", - "./tke/query.ts": "./datasource/tc_monitor/tke/query.ts", - "./tke/query_def": "./datasource/tc_monitor/tke/query_def.ts", - "./tke/query_def.ts": "./datasource/tc_monitor/tke/query_def.ts", - "./tsf/datasource": "./datasource/tc_monitor/tsf/datasource.ts", - "./tsf/datasource.ts": "./datasource/tc_monitor/tsf/datasource.ts", - "./tsf/query": "./datasource/tc_monitor/tsf/query.ts", - "./tsf/query.ts": "./datasource/tc_monitor/tsf/query.ts", - "./tsf/query_def": "./datasource/tc_monitor/tsf/query_def.ts", - "./tsf/query_def.ts": "./datasource/tc_monitor/tsf/query_def.ts", - "./v_clb/datasource": "./datasource/tc_monitor/v_clb/datasource.ts", - "./v_clb/datasource.ts": "./datasource/tc_monitor/v_clb/datasource.ts", - "./v_clb/query": "./datasource/tc_monitor/v_clb/query.ts", - "./v_clb/query.ts": "./datasource/tc_monitor/v_clb/query.ts", - "./v_clb/query_def": "./datasource/tc_monitor/v_clb/query_def.ts", - "./v_clb/query_def.ts": "./datasource/tc_monitor/v_clb/query_def.ts", - "./vbc/datasource": "./datasource/tc_monitor/vbc/datasource.ts", - "./vbc/datasource.ts": "./datasource/tc_monitor/vbc/datasource.ts", - "./vbc/query": "./datasource/tc_monitor/vbc/query.ts", - "./vbc/query.ts": "./datasource/tc_monitor/vbc/query.ts", - "./vbc/query_def": "./datasource/tc_monitor/vbc/query_def.ts", - "./vbc/query_def.ts": "./datasource/tc_monitor/vbc/query_def.ts", - "./vpc_net_detect/datasource": "./datasource/tc_monitor/vpc_net_detect/datasource.ts", - "./vpc_net_detect/datasource.ts": "./datasource/tc_monitor/vpc_net_detect/datasource.ts", - "./vpc_net_detect/query": "./datasource/tc_monitor/vpc_net_detect/query.ts", - "./vpc_net_detect/query.ts": "./datasource/tc_monitor/vpc_net_detect/query.ts", - "./vpc_net_detect/query_def": "./datasource/tc_monitor/vpc_net_detect/query_def.ts", - "./vpc_net_detect/query_def.ts": "./datasource/tc_monitor/vpc_net_detect/query_def.ts", - "./vpngw/datasource": "./datasource/tc_monitor/vpngw/datasource.ts", - "./vpngw/datasource.ts": "./datasource/tc_monitor/vpngw/datasource.ts", - "./vpngw/query": "./datasource/tc_monitor/vpngw/query.ts", - "./vpngw/query.ts": "./datasource/tc_monitor/vpngw/query.ts", - "./vpngw/query_def": "./datasource/tc_monitor/vpngw/query_def.ts", - "./vpngw/query_def.ts": "./datasource/tc_monitor/vpngw/query_def.ts", - "./vpnx/datasource": "./datasource/tc_monitor/vpnx/datasource.ts", - "./vpnx/datasource.ts": "./datasource/tc_monitor/vpnx/datasource.ts", - "./vpnx/query": "./datasource/tc_monitor/vpnx/query.ts", - "./vpnx/query.ts": "./datasource/tc_monitor/vpnx/query.ts", - "./vpnx/query_def": "./datasource/tc_monitor/vpnx/query_def.ts", - "./vpnx/query_def.ts": "./datasource/tc_monitor/vpnx/query_def.ts", - "./waf/datasource": "./datasource/tc_monitor/waf/datasource.ts", - "./waf/datasource.ts": "./datasource/tc_monitor/waf/datasource.ts", - "./waf/query": "./datasource/tc_monitor/waf/query.ts", - "./waf/query.ts": "./datasource/tc_monitor/waf/query.ts", - "./waf/query_def": "./datasource/tc_monitor/waf/query_def.ts", - "./waf/query_def.ts": "./datasource/tc_monitor/waf/query_def.ts" -}; - - -function webpackContext(req) { - var id = webpackContextResolve(req); - return __webpack_require__(id); -} -function webpackContextResolve(req) { - if(!__webpack_require__.o(map, req)) { - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; - } - return map[req]; -} -webpackContext.keys = function webpackContextKeys() { - return Object.keys(map); -}; -webpackContext.resolve = webpackContextResolve; -module.exports = webpackContext; -webpackContext.id = "./datasource/tc_monitor sync recursive ^.*$"; - -/***/ }), - -/***/ "./datasource/tc_monitor sync recursive ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$": -/*!***************************************************************************************!*\ - !*** ./datasource/tc_monitor sync ^\.\/[a-zA-Z]\w+\/(datasource)|(query(_def)?)\.ts$ ***! - \***************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var map = { - "./_base/query.ts": "./datasource/tc_monitor/_base/query.ts", - "./apigateway/datasource": "./datasource/tc_monitor/apigateway/datasource.ts", - "./apigateway/datasource.ts": "./datasource/tc_monitor/apigateway/datasource.ts", - "./apigateway/query.ts": "./datasource/tc_monitor/apigateway/query.ts", - "./apigateway/query_def.ts": "./datasource/tc_monitor/apigateway/query_def.ts", - "./bmIntraLb/datasource": "./datasource/tc_monitor/bmIntraLb/datasource.ts", - "./bmIntraLb/datasource.ts": "./datasource/tc_monitor/bmIntraLb/datasource.ts", - "./bmIntraLb/query.ts": "./datasource/tc_monitor/bmIntraLb/query.ts", - "./bmIntraLb/query_def.ts": "./datasource/tc_monitor/bmIntraLb/query_def.ts", - "./bm_lb/datasource": "./datasource/tc_monitor/bm_lb/datasource.ts", - "./bm_lb/datasource.ts": "./datasource/tc_monitor/bm_lb/datasource.ts", - "./bm_lb/query.ts": "./datasource/tc_monitor/bm_lb/query.ts", - "./bm_lb/query_def.ts": "./datasource/tc_monitor/bm_lb/query_def.ts", - "./bm_pcx/datasource": "./datasource/tc_monitor/bm_pcx/datasource.ts", - "./bm_pcx/datasource.ts": "./datasource/tc_monitor/bm_pcx/datasource.ts", - "./bm_pcx/query.ts": "./datasource/tc_monitor/bm_pcx/query.ts", - "./bm_pcx/query_def.ts": "./datasource/tc_monitor/bm_pcx/query_def.ts", - "./bwp/datasource": "./datasource/tc_monitor/bwp/datasource.ts", - "./bwp/datasource.ts": "./datasource/tc_monitor/bwp/datasource.ts", - "./bwp/query.ts": "./datasource/tc_monitor/bwp/query.ts", - "./bwp/query_def.ts": "./datasource/tc_monitor/bwp/query_def.ts", - "./cbs/datasource": "./datasource/tc_monitor/cbs/datasource.ts", - "./cbs/datasource.ts": "./datasource/tc_monitor/cbs/datasource.ts", - "./cbs/query.ts": "./datasource/tc_monitor/cbs/query.ts", - "./cbs/query_def.ts": "./datasource/tc_monitor/cbs/query_def.ts", - "./cdb/datasource": "./datasource/tc_monitor/cdb/datasource.ts", - "./cdb/datasource.ts": "./datasource/tc_monitor/cdb/datasource.ts", - "./cdb/query.ts": "./datasource/tc_monitor/cdb/query.ts", - "./cdb/query_def.ts": "./datasource/tc_monitor/cdb/query_def.ts", - "./cdn/datasource": "./datasource/tc_monitor/cdn/datasource.ts", - "./cdn/datasource.ts": "./datasource/tc_monitor/cdn/datasource.ts", - "./cdn/query.ts": "./datasource/tc_monitor/cdn/query.ts", - "./cdn/query_def.ts": "./datasource/tc_monitor/cdn/query_def.ts", - "./cdn_province/datasource": "./datasource/tc_monitor/cdn_province/datasource.ts", - "./cdn_province/datasource.ts": "./datasource/tc_monitor/cdn_province/datasource.ts", - "./cdn_province/query.ts": "./datasource/tc_monitor/cdn_province/query.ts", - "./cdn_province/query_def.ts": "./datasource/tc_monitor/cdn_province/query_def.ts", - "./ceip_summary/datasource": "./datasource/tc_monitor/ceip_summary/datasource.ts", - "./ceip_summary/datasource.ts": "./datasource/tc_monitor/ceip_summary/datasource.ts", - "./ceip_summary/query.ts": "./datasource/tc_monitor/ceip_summary/query.ts", - "./ceip_summary/query_def.ts": "./datasource/tc_monitor/ceip_summary/query_def.ts", - "./ces/datasource": "./datasource/tc_monitor/ces/datasource.ts", - "./ces/datasource.ts": "./datasource/tc_monitor/ces/datasource.ts", - "./ces/query.ts": "./datasource/tc_monitor/ces/query.ts", - "./ces/query_def.ts": "./datasource/tc_monitor/ces/query_def.ts", - "./cfs/datasource": "./datasource/tc_monitor/cfs/datasource.ts", - "./cfs/datasource.ts": "./datasource/tc_monitor/cfs/datasource.ts", - "./cfs/query.ts": "./datasource/tc_monitor/cfs/query.ts", - "./cfs/query_def.ts": "./datasource/tc_monitor/cfs/query_def.ts", - "./ckafka/datasource": "./datasource/tc_monitor/ckafka/datasource.ts", - "./ckafka/datasource.ts": "./datasource/tc_monitor/ckafka/datasource.ts", - "./ckafka/query.ts": "./datasource/tc_monitor/ckafka/query.ts", - "./ckafka/query_def.ts": "./datasource/tc_monitor/ckafka/query_def.ts", - "./clb/datasource": "./datasource/tc_monitor/clb/datasource.ts", - "./clb/datasource.ts": "./datasource/tc_monitor/clb/datasource.ts", - "./clb/query.ts": "./datasource/tc_monitor/clb/query.ts", - "./clb/query_def.ts": "./datasource/tc_monitor/clb/query_def.ts", - "./cls/datasource": "./datasource/tc_monitor/cls/datasource.ts", - "./cls/datasource.ts": "./datasource/tc_monitor/cls/datasource.ts", - "./cls/query.ts": "./datasource/tc_monitor/cls/query.ts", - "./cls/query_def.ts": "./datasource/tc_monitor/cls/query_def.ts", - "./cmq/datasource": "./datasource/tc_monitor/cmq/datasource.ts", - "./cmq/datasource.ts": "./datasource/tc_monitor/cmq/datasource.ts", - "./cmq/query.ts": "./datasource/tc_monitor/cmq/query.ts", - "./cmq/query_def.ts": "./datasource/tc_monitor/cmq/query_def.ts", - "./cmq_topic/datasource": "./datasource/tc_monitor/cmq_topic/datasource.ts", - "./cmq_topic/datasource.ts": "./datasource/tc_monitor/cmq_topic/datasource.ts", - "./cmq_topic/query.ts": "./datasource/tc_monitor/cmq_topic/query.ts", - "./cmq_topic/query_def.ts": "./datasource/tc_monitor/cmq_topic/query_def.ts", - "./cos/datasource": "./datasource/tc_monitor/cos/datasource.ts", - "./cos/datasource.ts": "./datasource/tc_monitor/cos/datasource.ts", - "./cos/query_def.ts": "./datasource/tc_monitor/cos/query_def.ts", - "./cpm/datasource": "./datasource/tc_monitor/cpm/datasource.ts", - "./cpm/datasource.ts": "./datasource/tc_monitor/cpm/datasource.ts", - "./cpm/query.ts": "./datasource/tc_monitor/cpm/query.ts", - "./cpm/query_def.ts": "./datasource/tc_monitor/cpm/query_def.ts", - "./cvm/datasource": "./datasource/tc_monitor/cvm/datasource.ts", - "./cvm/datasource.ts": "./datasource/tc_monitor/cvm/datasource.ts", - "./cvm/query.ts": "./datasource/tc_monitor/cvm/query.ts", - "./cvm/query_def.ts": "./datasource/tc_monitor/cvm/query_def.ts", - "./cynosdb_mysql/datasource": "./datasource/tc_monitor/cynosdb_mysql/datasource.ts", - "./cynosdb_mysql/datasource.ts": "./datasource/tc_monitor/cynosdb_mysql/datasource.ts", - "./cynosdb_mysql/query.ts": "./datasource/tc_monitor/cynosdb_mysql/query.ts", - "./cynosdb_mysql/query_def.ts": "./datasource/tc_monitor/cynosdb_mysql/query_def.ts", - "./dc/datasource": "./datasource/tc_monitor/dc/datasource.ts", - "./dc/datasource.ts": "./datasource/tc_monitor/dc/datasource.ts", - "./dc/query.ts": "./datasource/tc_monitor/dc/query.ts", - "./dc/query_def.ts": "./datasource/tc_monitor/dc/query_def.ts", - "./dcdb/datasource": "./datasource/tc_monitor/dcdb/datasource.ts", - "./dcdb/datasource.ts": "./datasource/tc_monitor/dcdb/datasource.ts", - "./dcdb/query.ts": "./datasource/tc_monitor/dcdb/query.ts", - "./dcdb/query_def.ts": "./datasource/tc_monitor/dcdb/query_def.ts", - "./dcg/datasource": "./datasource/tc_monitor/dcg/datasource.ts", - "./dcg/datasource.ts": "./datasource/tc_monitor/dcg/datasource.ts", - "./dcg/query.ts": "./datasource/tc_monitor/dcg/query.ts", - "./dcg/query_def.ts": "./datasource/tc_monitor/dcg/query_def.ts", - "./dcx/datasource": "./datasource/tc_monitor/dcx/datasource.ts", - "./dcx/datasource.ts": "./datasource/tc_monitor/dcx/datasource.ts", - "./dcx/query.ts": "./datasource/tc_monitor/dcx/query.ts", - "./dcx/query_def.ts": "./datasource/tc_monitor/dcx/query_def.ts", - "./ecdn/datasource": "./datasource/tc_monitor/ecdn/datasource.ts", - "./ecdn/datasource.ts": "./datasource/tc_monitor/ecdn/datasource.ts", - "./ecdn/query.ts": "./datasource/tc_monitor/ecdn/query.ts", - "./ecdn/query_def.ts": "./datasource/tc_monitor/ecdn/query_def.ts", - "./ecm/datasource": "./datasource/tc_monitor/ecm/datasource.ts", - "./ecm/datasource.ts": "./datasource/tc_monitor/ecm/datasource.ts", - "./ecm/query.ts": "./datasource/tc_monitor/ecm/query.ts", - "./ecm/query_def.ts": "./datasource/tc_monitor/ecm/query_def.ts", - "./ecm_block_storage/datasource": "./datasource/tc_monitor/ecm_block_storage/datasource.ts", - "./ecm_block_storage/datasource.ts": "./datasource/tc_monitor/ecm_block_storage/datasource.ts", - "./ecm_block_storage/query.ts": "./datasource/tc_monitor/ecm_block_storage/query.ts", - "./ecm_block_storage/query_def.ts": "./datasource/tc_monitor/ecm_block_storage/query_def.ts", - "./ecm_lb/datasource": "./datasource/tc_monitor/ecm_lb/datasource.ts", - "./ecm_lb/datasource.ts": "./datasource/tc_monitor/ecm_lb/datasource.ts", - "./ecm_lb/query.ts": "./datasource/tc_monitor/ecm_lb/query.ts", - "./ecm_lb/query_def.ts": "./datasource/tc_monitor/ecm_lb/query_def.ts", - "./gse/datasource": "./datasource/tc_monitor/gse/datasource.ts", - "./gse/datasource.ts": "./datasource/tc_monitor/gse/datasource.ts", - "./gse/query.ts": "./datasource/tc_monitor/gse/query.ts", - "./gse/query_def.ts": "./datasource/tc_monitor/gse/query_def.ts", - "./lb/datasource": "./datasource/tc_monitor/lb/datasource.ts", - "./lb/datasource.ts": "./datasource/tc_monitor/lb/datasource.ts", - "./lb/query.ts": "./datasource/tc_monitor/lb/query.ts", - "./lb/query_def.ts": "./datasource/tc_monitor/lb/query_def.ts", - "./lighthouse/datasource": "./datasource/tc_monitor/lighthouse/datasource.ts", - "./lighthouse/datasource.ts": "./datasource/tc_monitor/lighthouse/datasource.ts", - "./lighthouse/query.ts": "./datasource/tc_monitor/lighthouse/query.ts", - "./lighthouse/query_def.ts": "./datasource/tc_monitor/lighthouse/query_def.ts", - "./mongodb/datasource": "./datasource/tc_monitor/mongodb/datasource.ts", - "./mongodb/datasource.ts": "./datasource/tc_monitor/mongodb/datasource.ts", - "./mongodb/query.ts": "./datasource/tc_monitor/mongodb/query.ts", - "./mongodb/query_def.ts": "./datasource/tc_monitor/mongodb/query_def.ts", - "./mr/datasource": "./datasource/tc_monitor/mr/datasource.ts", - "./mr/datasource.ts": "./datasource/tc_monitor/mr/datasource.ts", - "./mr/query.ts": "./datasource/tc_monitor/mr/query.ts", - "./mr/query_def.ts": "./datasource/tc_monitor/mr/query_def.ts", - "./nat_gateway/datasource": "./datasource/tc_monitor/nat_gateway/datasource.ts", - "./nat_gateway/datasource.ts": "./datasource/tc_monitor/nat_gateway/datasource.ts", - "./nat_gateway/query.ts": "./datasource/tc_monitor/nat_gateway/query.ts", - "./nat_gateway/query_def.ts": "./datasource/tc_monitor/nat_gateway/query_def.ts", - "./ov_cdn/datasource": "./datasource/tc_monitor/ov_cdn/datasource.ts", - "./ov_cdn/datasource.ts": "./datasource/tc_monitor/ov_cdn/datasource.ts", - "./ov_cdn/query.ts": "./datasource/tc_monitor/ov_cdn/query.ts", - "./ov_cdn/query_def.ts": "./datasource/tc_monitor/ov_cdn/query_def.ts", - "./pcx/datasource": "./datasource/tc_monitor/pcx/datasource.ts", - "./pcx/datasource.ts": "./datasource/tc_monitor/pcx/datasource.ts", - "./pcx/query.ts": "./datasource/tc_monitor/pcx/query.ts", - "./pcx/query_def.ts": "./datasource/tc_monitor/pcx/query_def.ts", - "./postgresql/datasource": "./datasource/tc_monitor/postgresql/datasource.ts", - "./postgresql/datasource.ts": "./datasource/tc_monitor/postgresql/datasource.ts", - "./postgresql/query.ts": "./datasource/tc_monitor/postgresql/query.ts", - "./postgresql/query_def.ts": "./datasource/tc_monitor/postgresql/query_def.ts", - "./qaap/datasource": "./datasource/tc_monitor/qaap/datasource.ts", - "./qaap/datasource.ts": "./datasource/tc_monitor/qaap/datasource.ts", - "./qaap/query.ts": "./datasource/tc_monitor/qaap/query.ts", - "./qaap/query_def.ts": "./datasource/tc_monitor/qaap/query_def.ts", - "./redis/datasource": "./datasource/tc_monitor/redis/datasource.ts", - "./redis/datasource.ts": "./datasource/tc_monitor/redis/datasource.ts", - "./redis/query.ts": "./datasource/tc_monitor/redis/query.ts", - "./redis/query_def.ts": "./datasource/tc_monitor/redis/query_def.ts", - "./redis_mem/datasource": "./datasource/tc_monitor/redis_mem/datasource.ts", - "./redis_mem/datasource.ts": "./datasource/tc_monitor/redis_mem/datasource.ts", - "./redis_mem/query.ts": "./datasource/tc_monitor/redis_mem/query.ts", - "./redis_mem/query_def.ts": "./datasource/tc_monitor/redis_mem/query_def.ts", - "./scf/datasource": "./datasource/tc_monitor/scf/datasource.ts", - "./scf/datasource.ts": "./datasource/tc_monitor/scf/datasource.ts", - "./scf/query.ts": "./datasource/tc_monitor/scf/query.ts", - "./scf/query_def.ts": "./datasource/tc_monitor/scf/query_def.ts", - "./sqlserver/datasource": "./datasource/tc_monitor/sqlserver/datasource.ts", - "./sqlserver/datasource.ts": "./datasource/tc_monitor/sqlserver/datasource.ts", - "./sqlserver/query.ts": "./datasource/tc_monitor/sqlserver/query.ts", - "./sqlserver/query_def.ts": "./datasource/tc_monitor/sqlserver/query_def.ts", - "./tcaplus/datasource": "./datasource/tc_monitor/tcaplus/datasource.ts", - "./tcaplus/datasource.ts": "./datasource/tc_monitor/tcaplus/datasource.ts", - "./tcaplus/query.ts": "./datasource/tc_monitor/tcaplus/query.ts", - "./tcaplus/query_def.ts": "./datasource/tc_monitor/tcaplus/query_def.ts", - "./tdmq/datasource": "./datasource/tc_monitor/tdmq/datasource.ts", - "./tdmq/datasource.ts": "./datasource/tc_monitor/tdmq/datasource.ts", - "./tdmq/query.ts": "./datasource/tc_monitor/tdmq/query.ts", - "./tdmq/query_def.ts": "./datasource/tc_monitor/tdmq/query_def.ts", - "./tdmq_rabbitmq/datasource": "./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts", - "./tdmq_rabbitmq/datasource.ts": "./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts", - "./tdmq_rabbitmq/query.ts": "./datasource/tc_monitor/tdmq_rabbitmq/query.ts", - "./tdmq_rabbitmq/query_def.ts": "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts", - "./tdmq_rocketmq/datasource": "./datasource/tc_monitor/tdmq_rocketmq/datasource.ts", - "./tdmq_rocketmq/datasource.ts": "./datasource/tc_monitor/tdmq_rocketmq/datasource.ts", - "./tdmq_rocketmq/query.ts": "./datasource/tc_monitor/tdmq_rocketmq/query.ts", - "./tdmq_rocketmq/query_def.ts": "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts", - "./tke/datasource": "./datasource/tc_monitor/tke/datasource.ts", - "./tke/datasource.ts": "./datasource/tc_monitor/tke/datasource.ts", - "./tke/query.ts": "./datasource/tc_monitor/tke/query.ts", - "./tke/query_def.ts": "./datasource/tc_monitor/tke/query_def.ts", - "./tsf/datasource": "./datasource/tc_monitor/tsf/datasource.ts", - "./tsf/datasource.ts": "./datasource/tc_monitor/tsf/datasource.ts", - "./tsf/query.ts": "./datasource/tc_monitor/tsf/query.ts", - "./tsf/query_def.ts": "./datasource/tc_monitor/tsf/query_def.ts", - "./v_clb/datasource": "./datasource/tc_monitor/v_clb/datasource.ts", - "./v_clb/datasource.ts": "./datasource/tc_monitor/v_clb/datasource.ts", - "./v_clb/query.ts": "./datasource/tc_monitor/v_clb/query.ts", - "./v_clb/query_def.ts": "./datasource/tc_monitor/v_clb/query_def.ts", - "./vbc/datasource": "./datasource/tc_monitor/vbc/datasource.ts", - "./vbc/datasource.ts": "./datasource/tc_monitor/vbc/datasource.ts", - "./vbc/query.ts": "./datasource/tc_monitor/vbc/query.ts", - "./vbc/query_def.ts": "./datasource/tc_monitor/vbc/query_def.ts", - "./vpc_net_detect/datasource": "./datasource/tc_monitor/vpc_net_detect/datasource.ts", - "./vpc_net_detect/datasource.ts": "./datasource/tc_monitor/vpc_net_detect/datasource.ts", - "./vpc_net_detect/query.ts": "./datasource/tc_monitor/vpc_net_detect/query.ts", - "./vpc_net_detect/query_def.ts": "./datasource/tc_monitor/vpc_net_detect/query_def.ts", - "./vpngw/datasource": "./datasource/tc_monitor/vpngw/datasource.ts", - "./vpngw/datasource.ts": "./datasource/tc_monitor/vpngw/datasource.ts", - "./vpngw/query.ts": "./datasource/tc_monitor/vpngw/query.ts", - "./vpngw/query_def.ts": "./datasource/tc_monitor/vpngw/query_def.ts", - "./vpnx/datasource": "./datasource/tc_monitor/vpnx/datasource.ts", - "./vpnx/datasource.ts": "./datasource/tc_monitor/vpnx/datasource.ts", - "./vpnx/query.ts": "./datasource/tc_monitor/vpnx/query.ts", - "./vpnx/query_def.ts": "./datasource/tc_monitor/vpnx/query_def.ts", - "./waf/datasource": "./datasource/tc_monitor/waf/datasource.ts", - "./waf/datasource.ts": "./datasource/tc_monitor/waf/datasource.ts", - "./waf/query.ts": "./datasource/tc_monitor/waf/query.ts", - "./waf/query_def.ts": "./datasource/tc_monitor/waf/query_def.ts" -}; - - -function webpackContext(req) { - var id = webpackContextResolve(req); - return __webpack_require__(id); -} -function webpackContextResolve(req) { - if(!__webpack_require__.o(map, req)) { - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; - } - return map[req]; -} -webpackContext.keys = function webpackContextKeys() { - return Object.keys(map); -}; -webpackContext.resolve = webpackContextResolve; -module.exports = webpackContext; -webpackContext.id = "./datasource/tc_monitor sync recursive ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$"; - -/***/ }), - -/***/ "./datasource/tc_monitor/MonitorDatasource.ts": -/*!****************************************************!*\ - !*** ./datasource/tc_monitor/MonitorDatasource.ts ***! - \****************************************************/ -/*! exports provided: TCMonitorDatasource */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TCMonitorDatasource", function() { return TCMonitorDatasource; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./datasource/tc_monitor/index.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _grafana_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @grafana/data */ "@grafana/data"); -/* harmony import */ var _grafana_data__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_grafana_data__WEBPACK_IMPORTED_MODULE_4__); - - - - - - -var TCMonitorDatasource = -/** @class */ -function () { - TCMonitorDatasource.$inject = ["instanceSettings", "backendSrv", "templateSrv"]; - - /** @ngInject */ - function TCMonitorDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = this; - - this.instanceSettings = instanceSettings; - this.backendSrv = backendSrv; - this.templateSrv = templateSrv; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(_index__WEBPACK_IMPORTED_MODULE_1__["Datasources"], function (_class, key) { - _this[key] = new _class(_this.instanceSettings, _this.backendSrv, _this.templateSrv); - }); - } // 根据 Datasource Config 配置时勾选的监控服务项,获取相应的命名空间 - - - TCMonitorDatasource.prototype.getNamespaces = function () { - var _this = this; - - var namespaces = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(_index__WEBPACK_IMPORTED_MODULE_1__["SERVICES"], function (service) { - if (_this.instanceSettings.jsonData[service.service] === true) { - // namespaces.push(service.namespace); - namespaces.push(service); - } - }); - - return namespaces; - }; - - TCMonitorDatasource.prototype.getCascaderNamespaces = function () { - var _this = this; - - var validServices = _index__WEBPACK_IMPORTED_MODULE_1__["SERVICES"].filter(function (service) { - return _this.instanceSettings.jsonData[service.service]; - }); - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_3__["serviceGroupBy"])(validServices); - }; - - TCMonitorDatasource.prototype.getSelectedServices = function () { - var namespaces = this.getNamespaces(); - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(namespaces, function (_a) { - var namespace = _a.namespace; - return Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])(namespace); - }); - }; - /** - * 根据 Panel 的配置项,获取相应的监控数据 - * - * @param options Panel 的配置参数,示例如下 - * { - * cacheTimeout: undefined, - * dashboardId: 41, - * interval: "30s", - * intervalMs: 30000, - * maxDataPoints: 554, - * panelId: 2, - * range: { - * from: Moment, - * to: Moment, - * raw: {from: "now-6h", to: "now"} - * }, - * rangeRaw: {from: "now-6h", to: "now"}, - * scopedVars: {__interval: {…}, __interval_ms: {…}} - * targets: [ - * { - * namespace: "QCE/CVM", - * refId: "A", - * service: "cvm", - * showInstanceDetails: false, - * cvm: { - * dimensionObject: {InstanceId: {…}} - * instance: "", - * instanceAlias: "InstanceId", - * metricName: "AccOuttraffic", - * metricUnit: "MB", - * period: 10, - * queries: {Filters: {…}, InstanceIds: Array(1), Limit: 20, Offset: 0, filtersChecked: false, …}, - * region: "ap-beijing" - * }, - * cdb: {}, - * }, - * ], - * timezone: "browser" - * } - * @return 返回数据对象,示例如下 - * { - * data: [ - * { - * "target": "AccOuttraffic - ins-123", - * "datapoints": [ - * [861, 1450754160000], - * [767, 1450754220000] - * ] - * } - * ] - * } - */ - - - TCMonitorDatasource.prototype.query = function (options) { - var _this = this; - - var promises = []; - var services = this.getSelectedServices(); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(services, function (service) { - var optionsTemp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(options); - - var targets = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(optionsTemp.targets, function (item) { - return item.service === service; - }); - - optionsTemp.targets = targets; - - if (optionsTemp.targets.length > 0) { - var promiseTemp = _this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].query(optionsTemp); - - if (promiseTemp) { - promises.push(promiseTemp); - } - } - }); - - if (promises.length === 0) { - return Promise.resolve({ - data: [], - state: _grafana_data__WEBPACK_IMPORTED_MODULE_4__["LoadingState"].Done - }); - } - - return Promise.all(promises).then(function (results) { - return { - data: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.flatten(results), - state: _grafana_data__WEBPACK_IMPORTED_MODULE_4__["LoadingState"].Done - }; - }); - }; - /** - * 获取模板变量的选择项列表 - * - * @param query 模板变量配置填写的 Query 参数字符串 - */ - - - TCMonitorDatasource.prototype.metricFindQuery = function (query, options) { - var queries = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ParseMetricQuery"])(query); - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])(queries['namespace'] || ''); - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries) || !queries['namespace'] || !queries['action'] || !service) { - return Promise.resolve([]); - } - - if (this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].metricFindQuery) { - var result = this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].metricFindQuery(queries, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(options, 'variable.regex', undefined)); - - if (result) { - return result; - } - } - - return Promise.resolve([]); - }; - /** - * 获取地域列表 - * @param service - */ - - - TCMonitorDatasource.prototype.getRegions = function (service) { - if (this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getRegions) { - return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getRegions(); - } - - return []; - }; - /** - * 获取监控指标列表 - * @param service - * @param region - */ - - - TCMonitorDatasource.prototype.getMetrics = function (service, region) { - return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getMetrics(region); - }; - /** - * 获取可用区列表 - * @param service - * @param region - */ - - - TCMonitorDatasource.prototype.getZones = function (service, region) { - if (this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getZones) { - return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getZones(region); - } - - return []; - }; - /** - * 获取filter中dropdown列表 - * @param service - * @param param - */ - - - TCMonitorDatasource.prototype.getFilterDropdown = function (service, param) { - if (this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getFilterDropdown) { - return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getFilterDropdown(param); - } - - return []; - }; - /** - * 获取实例列表 - * @param service - * @param region - * @param params - */ - - - TCMonitorDatasource.prototype.getInstances = function (service, region, params) { - return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getInstances(region, params); - }; - /** - * 获取监听器列表 - * @param service - * @param region - * @param params - */ - - - TCMonitorDatasource.prototype.getListeners = function (service, region, instance) { - if (!this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getListeners) { - return []; - } - - return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getListeners(region, instance); - }; - /** - * 获取 私有网络列表 - * @param service - */ - - - TCMonitorDatasource.prototype.getVpcIds = function (service, region) { - if (this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getVpcIds) { - return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getVpcIds(region); - } - }; // 在 Datasource Config 配置时,验证 SerectId、SerectKey 的有效性,并测试勾选的监控服务项的对应 API 连通性 - - - TCMonitorDatasource.prototype.testDatasource = function () { - var _this = this; - - var promises = []; - var services = this.getSelectedServices(); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(services, function (service) { - promises.push(_this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].testDatasource()); - }); - - if (promises.length === 0) { - return Promise.resolve(null); - } - - return Promise.all(promises).then(function (results) { - var status = 'success'; - var message = 'DataSource Connection OK'; - - var errorMsg = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.reduce(results, function (acc, cur) { - if (cur.status === 'error') { - if (acc === '') acc += 'Oops! Found an error in: '; - acc += "".concat(cur.service, ": ").concat(cur.message, "; \n"); - } - - return acc; - }, ''); - - if (errorMsg) { - status = 'error'; - message = errorMsg; - } - - return { - status: status, - message: message, - title: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.upperFirst(status) - }; - }); - }; - - TCMonitorDatasource.prototype.getServiceFn = function (service, fnName) { - var _this = this; - - return function () { - var _a; - - var argu = []; - - for (var _i = 0; _i < arguments.length; _i++) { - argu[_i] = arguments[_i]; - } - - if (!_this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")][fnName]) { - return []; - } - - return (_a = _this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")])[fnName].apply(_a, argu); - }; - }; - - return TCMonitorDatasource; -}(); - - - -/***/ }), - -/***/ "./datasource/tc_monitor/_base/datasource.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/_base/datasource.ts ***! - \***************************************************/ -/*! exports provided: BaseDatasource */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseDatasource", function() { return BaseDatasource; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ "moment"); -/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - -var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; - - - - - - - - -var BaseDatasource = -/** @class */ -function () { - BaseDatasource.$inject = ["instanceSettings", "backendSrv", "templateSrv"]; - - /** @ngInject */ - function BaseDatasource(instanceSettings, backendSrv, templateSrv) { - this.instanceListCache = []; - this.extraMetricDims = []; - this.checkKeys = []; - this.MetricReqConfig = {}; - this.extrasAlias = []; - /* - 一个配置:(用于处理除了InstanceId之外的)(Record中的key是指标修正之后的维度,即通过InvalidDemsion处理后) - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。为空则取即通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。即:templateQueryIdMap中内容。联合上面2的内容筛选出原始sourceMap - 4 通过这个dim和sourceMap获取维度值。即sourceMap[dim] - */ - - this.queryMonitorExtraConfg = {}; - this.CandiateDimensions = {}; - this.instanceSettings = instanceSettings; - this.backendSrv = backendSrv; - this.templateSrv = templateSrv; - this.url = instanceSettings.url; - this.secretId = (instanceSettings.jsonData || {}).secretId || ''; - Object(_locale__WEBPACK_IMPORTED_MODULE_5__["setLanguage"])(instanceSettings.jsonData.language || _locale__WEBPACK_IMPORTED_MODULE_5__["Language"].Chinese); - } - - Object.defineProperty(BaseDatasource.prototype, "namespace", { - get: function get() { - // 需要注意的是this.service来自于原型上,在实例中导入时注入 - return this.Namespace || Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["getNamesapceFromService"])(this.service); - }, - enumerable: false, - configurable: true - }); // 获取额外要显示到图例里的内容 - - BaseDatasource.prototype.getOtherAlias = function (instance, target) { - var _this = this; - - var _a; - - var result = ''; - var alias = instance._InstanceAliasValue; - (_a = this.extrasAlias) === null || _a === void 0 ? void 0 : _a.forEach(function (extra) { - var extraAlia = _this.getVariable(target[extra]); - - if (extraAlia && alias.indexOf(extraAlia) === -1) { - result += " - ".concat(extraAlia); - } - }); - return result; - }; - /* 格式化模板变量上的显示 */ - - - BaseDatasource.prototype.getAliasValue = function (instance, alias) { - var result = instance[alias]; - return Array.isArray(result) ? result.join() : result; - }; - - BaseDatasource.prototype.formatVarDisplay = function (instance, displayTpl, instanceAlias) { - var _this = this; // 获取display=aaa${InstanceName}bbb${InstanceId}ccc - - - if (displayTpl) { - return displayTpl.replace(/\$\{(\w+)\}/g, function (a, b) { - if (!b || !_this.InstanceAliasList.includes(b)) { - return ''; - } - - return _this.getAliasValue(instance, b); - }); - } - - return this.getAliasValue(instance, instanceAlias); - }; - /** - * @param query 模板变量配置填写的 Query 参数对象,由顶层将字符串转换为了对象 - */ - - - BaseDatasource.prototype.metricFindQuery = function (query, regex) { - var _a; - - return __awaiter(this, void 0, void 0, function () { - var action, namespace, display, _b, payload, region, _c, instancealias, regionQuery, result, res, instance, instanceCache, error_1; - - var _this = this; - - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - action = query.action, namespace = query.namespace, display = query.display, _b = query.payload, payload = _b === void 0 ? {} : _b; - region = query.region, _c = query.instancealias, instancealias = _c === void 0 ? this.templateQueryIdMap.instance : _c; - - if (!action || !namespace) { - return [2 - /*return*/ - , []]; - } // 支持payload里传入模板变量 - - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(payload)) { - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(payload, function (value, key) { - payload[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isString(value) ? _this.getVariable(value) : value; - }); - } - - regionQuery = action.match(/^DescribeRegions$/i); - - if (regionQuery) { - return [2 - /*return*/ - , this.getRegions()]; - } - - region = this.getVariable(region); // 将模板region转换为真实值 - - if (!(region && action.match(/^DescribeInstances/i))) return [3 - /*break*/ - , 3]; - return [4 - /*yield*/ - , this.getVariableInstances(region, payload)]; - - case 1: - result = _d.sent(); - instancealias = this.InstanceAliasList.includes(instancealias) ? instancealias : this.templateQueryIdMap.instance; - res = result.flatMap(function (item) { - var insAlias = _this.formatVarDisplay(item, display, instancealias); - - item._InstanceAliasValue = insAlias; // FIXME: - - if (!item[instancealias]) return []; - return [{ - text: insAlias, - value: item[_this.templateQueryIdMap.instance] - }]; - }); // 缓存全量实例列表 - - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].setInstance(this.service, result)]; - - case 2: - // 缓存全量实例列表 - _d.sent(); - - return [2 - /*return*/ - , res]; - - case 3: - instance = this.getVariable(query['instance']); - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(instance)) instance = instance[0]; // 有额外维度,仅支持实例单选情况 - - if (!(region && action && instance)) return [3 - /*break*/ - , 8]; - _d.label = 4; - - case 4: - _d.trys.push([4, 6,, 7]); - - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].getInstance(this.service)]; - - case 5: - instanceCache = _d.sent(); - instance = (_a = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(instanceCache.find(function (item) { - return item[_this.templateQueryIdMap.instance] === instance; - }))) !== null && _a !== void 0 ? _a : {}; - return [3 - /*break*/ - , 7]; - - case 6: - error_1 = _d.sent(); - return [3 - /*break*/ - , 7]; - - case 7: - return [2 - /*return*/ - , this.fetchMetricData(action, region, instance, query)]; - - case 8: - return [2 - /*return*/ - , Promise.resolve([])]; - } - }); - }); - }; // 获取指标数据 - - - BaseDatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , []]; - }); - }); - }; - /** - * 根据 Panel 的配置项,获取相应的监控数据 - * - * @param options Panel 的配置参数 - * @return 返回数据数组,示例如下 - * [ - * { - * "target": "AccOuttraffic - ins-123", - * "datapoints": [ - * [861, 1450754160000], - * [767, 1450754220000] - * ] - * } - * ] - */ - - - BaseDatasource.prototype.dimensionsFormat = function (dimKeys, ins, dimensionObject, target, service, options) { - var _a; - - return __awaiter(this, void 0, void 0, function () { - var _loop_1, this_1, _i, dimKeys_1, key; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _loop_1 = function _loop_1(key) { - var keyTmp, invalidDim, extraDimValue, _c, dim_KeyInStorage, _d, dim_KeyInTarget, dim_KeyInMap_1, dim_KeyInIns, extraIns_1, extraSourceMap, error_2, extraStorage, isStringOrNumber, insAlias, otherAlias; - - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - keyTmp = key; - invalidDim = this_1.InvalidDimensions || this_1.getInvalidDimensions(this_1, target[service]); - - if (invalidDim[key]) { - // 从【维度中】的字段到【实例中】字段的映射。 { functionName: FunctionName } - keyTmp = invalidDim[key]; - ins[key] = ins[keyTmp]; - } - - extraDimValue = this_1.getVariable(target[service][keyTmp]); - if (!this_1.queryMonitorExtraConfg[keyTmp]) return [3 - /*break*/ - , 5]; - _c = this_1.queryMonitorExtraConfg[keyTmp], dim_KeyInStorage = _c.dim_KeyInStorage, _d = _c.dim_KeyInTarget, dim_KeyInTarget = _d === void 0 ? keyTmp : _d, dim_KeyInMap_1 = _c.dim_KeyInMap, dim_KeyInIns = _c.dim_KeyInIns; - extraIns_1 = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ReplaceVariable"])(this_1.templateSrv, options.scopedVars, target[service][dim_KeyInTarget], true); - extraSourceMap = {}; - _e.label = 1; - - case 1: - _e.trys.push([1, 2,, 4]); - - extraSourceMap = JSON.parse(extraIns_1); // 兼容json字符串的 形式 - - return [3 - /*break*/ - , 4]; - - case 2: - error_2 = _e.sent(); - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(extraIns_1)) extraIns_1 = extraIns_1[0]; // 如果多个,取第一个。除了实例ID 暂不支持其他纬度多选 - - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].getExtraStorage(this_1.service, dim_KeyInStorage)]; - - case 3: - extraStorage = _e.sent(); - extraSourceMap = (_a = extraStorage === null || extraStorage === void 0 ? void 0 : extraStorage.find(function (item) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item[dim_KeyInMap_1])) { - return item[dim_KeyInMap_1][0] === extraIns_1; - } - - return item[dim_KeyInMap_1] === extraIns_1; - })) !== null && _a !== void 0 ? _a : {}; - return [3 - /*break*/ - , 4]; - - case 4: - isStringOrNumber = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isString(extraSourceMap) || lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(extraSourceMap); - insAlias = ins._InstanceAliasValue; - otherAlias = isStringOrNumber ? extraSourceMap : extraSourceMap._InstanceAliasValue; - - if (otherAlias && insAlias.indexOf(otherAlias) === -1) { - ins._InstanceAliasValue += " - ".concat(otherAlias); - } - - extraDimValue = isStringOrNumber ? extraSourceMap : extraSourceMap === null || extraSourceMap === void 0 ? void 0 : extraSourceMap[dim_KeyInIns || keyTmp]; - return [3 - /*break*/ - , 6]; - - case 5: - ins._InstanceAliasValue += this_1.getOtherAlias(ins, target[service]); - _e.label = 6; - - case 6: - if (Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["getTimeShiftInMs"])(target[service].timeshift) > 0 && ins._InstanceAliasValue.indexOf(target[service].timeshift) === -1) { - ins._InstanceAliasValue += "_".concat(target[service].timeshift); - } // 设置instance,针对额外的维度,需要注意模板变量的值 - // ins[key] = ins[keyTmp] ?? extraDimValue; - - - ins[key] = this_1.getDimensionsVal(ins, keyTmp, extraDimValue); // cynosdb产品接口返回维度和入参不一致 - - if (this_1.checkKeys.length > 0) { - this_1.checkKeys.forEach(function (Ekey) { - ins[Ekey] = ins[key]; - }); - } - - dimensionObject[key] = { - Name: key, - Value: ins[key] - }; - return [2 - /*return*/ - ]; - } - }); - }; - - this_1 = this; - _i = 0, dimKeys_1 = dimKeys; - _b.label = 1; - - case 1: - if (!(_i < dimKeys_1.length)) return [3 - /*break*/ - , 4]; - key = dimKeys_1[_i]; - return [5 - /*yield**/ - , _loop_1(key)]; - - case 2: - _b.sent(); - - _b.label = 3; - - case 3: - _i++; - return [3 - /*break*/ - , 1]; - - case 4: - return [2 - /*return*/ - , dimensionObject]; - } - }); - }); - }; - - BaseDatasource.prototype.getDimensionsVal = function (ins, key, extraDimValue) { - var dimVal = ins[key]; - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(dimVal) && this.CandiateDimensions[key]) { - dimVal = ins[this.CandiateDimensions[key]]; - } - - return dimVal !== null && dimVal !== void 0 ? dimVal : extraDimValue; - }; - - BaseDatasource.prototype.query = function (options) { - var _this = this; - - var service = this.service; // 强制声明非空 - - var queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(options.targets, function (item) { - // 过滤无效的查询 target - return item.hide !== true && !!item.namespace && !!item[service].metricName && !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ReplaceVariable"])(_this.templateSrv, options.scopedVars, item[service].region, false)) && !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ReplaceVariable"])(_this.templateSrv, options.scopedVars, item[service].instance, true)); - }).reduce(function (prev, target) { - if (Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["getTimeShiftInMs"])(target[service].timeshift) > 0) { - var cloneTarget = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(target); - - cloneTarget[service].timeshift = ''; - return __spreadArray(__spreadArray([], prev, true), [cloneTarget, target], false); - } - - return __spreadArray(__spreadArray([], prev, true), [target], false); - }, []).map(function (target) { - return __awaiter(_this, void 0, void 0, function () { - var instances, instanceCache, timeshift, region, insInReq, _i, instances_1, ins, dimensionObject, dimKeys, dimResult, data; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - instances = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ReplaceVariable"])(this.templateSrv, options.scopedVars, target[service].instance, true); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].getInstance(this.service)]; - - case 1: - instanceCache = _a.sent(); - timeshift = Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["getTimeShiftInMs"])(target[service].timeshift); - instances = [].concat(instances).map(function (inst) { - var _a, _b; - - try { - return JSON.parse(inst); // 兼容json字符串的 形式 - } catch (error) { - // 如果没拿到缓存,取默认实例组 - if (!instanceCache) return (_a = _this.getDefaultInsObj) === null || _a === void 0 ? void 0 : _a.call(_this, inst); - return (_b = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(instanceCache.find(function (item) { - return item[_this.templateQueryIdMap.instance] === inst; - }))) !== null && _b !== void 0 ? _b : {}; - } - }); - region = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ReplaceVariable"])(this.templateSrv, options.scopedVars, target[service].region, false); - insInReq = []; - _i = 0, instances_1 = instances; - _a.label = 2; - - case 2: - if (!(_i < instances_1.length)) return [3 - /*break*/ - , 5]; - ins = instances_1[_i]; - dimensionObject = target[service].dimensionObject; - dimKeys = Object.keys(dimensionObject); - return [4 - /*yield*/ - , this.dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options)]; - - case 3: - dimResult = _a.sent(); - insInReq.push([{ - Dimensions: Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetDimensions"])(dimResult) - }]); - _a.label = 4; - - case 4: - _i++; - return [3 - /*break*/ - , 2]; - - case 5: - data = { - StartTime: moment__WEBPACK_IMPORTED_MODULE_1___default()(options.range.from).subtract(timeshift).format(), - EndTime: moment__WEBPACK_IMPORTED_MODULE_1___default()(options.range.to).subtract(timeshift).format(), - Period: target[service].period || 300, - Instances: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.flatMap(insInReq), - Namespace: target.namespace, - MetricName: target[service].metricName - }; - return [2 - /*return*/ - , this.getMonitorData(data, region, instances, target[service], options)]; - } - }); - }); - }); - - if (queries.length === 0) { - return []; - } - - return Promise.all(queries).then(function (responses) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.flatten(responses); - })["catch"](function (error) { - return []; - }); - }; - - BaseDatasource.prototype.getDefaultInsObj = function (ins) { - return {}; - }; - - BaseDatasource.prototype.getInstanceReqConfig = function (selfIns) { - return {}; - }; - - BaseDatasource.prototype.getInvalidDimensions = function (selfIns, target) { - return {}; - }; // 获取某个变量的实际值,this.templateSrv.replace() 函数返回实际值的字符串 - - - BaseDatasource.prototype.getVariable = function (metric) { - var rs = this.templateSrv.replace((metric || '').trim()); - var valStr = rs.match(/\{([\w-,]+)\}/); // 判断是否为多选 - - if (valStr) { - return valStr[1].split(','); - } - - return rs; - }; - /** - * 获取 监控数据 - * @param params 获取监控数据的请求参数 - * @param region 地域信息 - * @param instances 实例列表,用于对返回结果的匹配解析 - */ - - - BaseDatasource.prototype.getMonitorData = function (params, region, instances, target, options) { - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'monitor'); - var timeshift = Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["getTimeShiftInMs"])(target.timeshift); - return this.doRequest({ - url: this.url + serviceInfo.path, - data: params - }, serviceInfo.service, { - action: 'GetMonitorData', - region: region - }).then(function (response) { - return Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ParseQueryResult"])(response, instances, timeshift); - }); - }; - - BaseDatasource.prototype.getRegions = function () { - return this.doRequest({ - url: this.url + '/cvm' - }, 'cvm', { - action: 'DescribeRegions' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.RegionSet || [], function (item) { - return { - text: item.RegionName, - value: item.Region, - RegionState: item.RegionState - }; - }), function (item) { - return item.RegionState === 'AVAILABLE'; - }); - }); - }; - - BaseDatasource.prototype.getMetrics = function (region) { - var _this = this; - - if (region === void 0) { - region = 'ap-guangzhou'; - } - - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'monitor'); - return this.doRequest({ - url: this.url + serviceInfo.path, - data: { - Namespace: this.namespace - } - }, serviceInfo.service, { - region: region, - action: 'DescribeBaseMetrics' - }).then(function (response) { - var res = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(response.MetricSet || [], function (item) { - return !(item.Namespace !== _this.namespace || !item.MetricName); - })); - - var resFilterFn = _this.MetricReqConfig.resultFilter; - - if (resFilterFn) { - return res.map(function (item) { - return resFilterFn(item); - }); - } - - return res; - }); - }; - - BaseDatasource.prototype.getInstances = function (region, params) { - if (params === void 0) { - params = {}; - } - - var _a = this.InstanceReqConfig || this.getInstanceReqConfig(this), - _b = _a.service, - service = _b === void 0 ? this.service : _b, - action = _a.action, - field = _a.responseField, - interceptor = _a.interceptor; - - params = __assign({ - Offset: 0, - Limit: 100 - }, params); - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, service); - return this.doRequest({ - url: this.url + serviceInfo.path, - data: (interceptor === null || interceptor === void 0 ? void 0 : interceptor.request) ? interceptor.request(params) : params - }, serviceInfo.service, { - region: region, - action: action - }).then(function (response) { - var _a, _b; // 处理异常,则不按正常的情况处理,直接抛出错误 - - - if (response === null || response === void 0 ? void 0 : response.Error) { - console.error(response.Error); - return response; - } - - var result; // 先,field处理 - - if (field) { - result = (_b = (_a = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, field)) !== null && _a !== void 0 ? _a : lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, "Result.".concat(field))) !== null && _b !== void 0 ? _b : []; - } // 后,拦截器处理 - - - if (interceptor === null || interceptor === void 0 ? void 0 : interceptor.response) { - result = interceptor.response(result); - } - - return result; - }); - }; - - BaseDatasource.prototype.getVariableInstances = function (region, query) { - var _this = this; - - if (query === void 0) { - query = {}; - } - - var result = []; - - var params = __assign({ - Offset: 0, - Limit: 100 - }, query); - - var _a = this.InstanceReqConfig || this.getInstanceReqConfig(this), - _b = _a.service, - service = _b === void 0 ? this.service : _b, - action = _a.action, - field = _a.responseField, - interceptor = _a.interceptor; - - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, service); - return this.doRequest({ - url: this.url + serviceInfo.path, - data: (interceptor === null || interceptor === void 0 ? void 0 : interceptor.request) ? interceptor.request(params) : params - }, serviceInfo.service, { - region: region, - action: action - }).then(function (response) { - var _a, _b, _c, _d, _e, _f; - - result = (_b = (_a = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, field)) !== null && _a !== void 0 ? _a : lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, "Result.".concat(field))) !== null && _b !== void 0 ? _b : []; - var total = (_f = (_e = (_d = (_c = response.TotalCount) !== null && _c !== void 0 ? _c : response.TotalCnt) !== null && _d !== void 0 ? _d : response.TotalNumber) !== null && _e !== void 0 ? _e : lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, "Result.TotalCount")) !== null && _f !== void 0 ? _f : 0; - - if (result.length >= total) { - return (interceptor === null || interceptor === void 0 ? void 0 : interceptor.response) ? interceptor.response(result) : result; - } else { - var param = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["SliceLength"])(total, (params === null || params === void 0 ? void 0 : params.Limit) || 100); - var promises_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(param, function (item) { - promises_1.push(_this.getInstances(region, __assign(__assign({}, item), query))); - }); - - return Promise.all(promises_1).then(function (responses) { - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(responses, function (item) { - result = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.concat(result, item); - }); - - return (interceptor === null || interceptor === void 0 ? void 0 : interceptor.response) ? interceptor.response(result) : result; - })["catch"](function (error) { - return (interceptor === null || interceptor === void 0 ? void 0 : interceptor.response) ? interceptor.response(result) : result; - }); - } - }); - }; // 检查某变量字段是否有值 - - - BaseDatasource.prototype.isValidConfigField = function (field) { - return field && field.length > 0; - }; - - BaseDatasource.prototype.testDatasource = function () { - // const { service = this.service, action } = this.InstanceReqConfig; - // const serviceInfo = GetServiceAPIInfo('ap-guangzhou', service); - var _this = this; - - if (!this.isValidConfigField(this.secretId)) { - return { - service: this.service, - status: 'error', - message: 'The SecretId/SecretKey field is required.' - }; - } - - return Promise.all([this.getRegions(), this.getMetrics(), // this.doRequest( - // { - // url: this.url + serviceInfo.path, - // data: { - // Offset: 0, - // Limit: 1, - // }, - // }, - // service, - // { region: 'ap-guangzhou', action }, - // ), - this.getInstances('ap-guangzhou', { - Offset: 0, - Limit: 1 - })]).then(function (responses) { - var cvmErr = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(responses, '[0].Error', {}); - - var monitorErr = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(responses, '[1].Error', {}); - - var serviceErr = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(responses, '[2].Error', {}); // const cvmAuthFail = _.get(cvmErr, 'Code', '').indexOf('AuthFailure') !== -1; - // const monitorAuthFail = _.get(monitorErr, 'Code', '').indexOf('AuthFailure') !== -1; - // const serviceAuthFail = _.get(serviceErr, 'Code', '').indexOf('AuthFailure') !== -1; - - - var cvmAuthFail = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(cvmErr, 'Code', ''); - - var monitorAuthFail = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(monitorErr, 'Code', ''); - - var serviceAuthFail = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(serviceErr, 'Code', ''); - - if (cvmAuthFail || monitorAuthFail || serviceAuthFail) { - var messages = []; - - if (cvmAuthFail) { - messages.push(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(cvmErr, 'Code')); - } - - if (monitorAuthFail) { - messages.push(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(monitorErr, 'Code')); - } - - if (serviceAuthFail) { - messages.push(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(serviceErr, 'Code')); - } - - var message = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.join(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(messages)), '; '); - - return { - service: _this.service, - status: 'error', - message: message - }; - } else { - return { - namespace: _this.namespace, - service: _this.service, - status: 'success', - message: "Successfully queried the ".concat(_this.service, " service."), - title: 'Success' - }; - } - })["catch"](function (error) { - var message = "".concat(_this.service, " service:"); - message += error.statusText ? error.statusText + '; ' : ''; - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(error, 'data.error.code', '')) { - message += error.data.error.code + '. ' + error.data.error.message; - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(error, 'data.error', '')) { - message += error.data.error; - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(error, 'data', '')) { - message += error.data; - } else { - message += "Cannot connect to ".concat(_this.service, " service."); - } - - return { - service: _this.service, - status: 'error', - message: message - }; - }); - }; - - BaseDatasource.prototype.doRequest = function (options, service, signObj) { - if (signObj === void 0) { - signObj = {}; - } - - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetRequestParams"])(options, service, signObj, this.secretId, this.instanceSettings.id, this.backendSrv)]; - - case 1: - options = _a.sent(); - return [2 - /*return*/ - , this.backendSrv.datasourceRequest(options).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, 'data.Response', {}); - })["catch"](function (error) { - throw error; - })]; - } - }); - }); - }; - - return BaseDatasource; -}(); - - - -/***/ }), - -/***/ "./datasource/tc_monitor/_base/query.ts": -/*!**********************************************!*\ - !*** ./datasource/tc_monitor/_base/query.ts ***! - \**********************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); - - - -function classFactory(detailConfig) { - return ( - /** @class */ - function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - Object.assign($scope, detailConfig); - - $scope.getDropdown = function (field) { - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["GetServiceFromNamespace"])($scope.namespace); - return $scope.datasource.getFilterDropdown(service, { - field: field, - region: $scope.region - }); - }; - } - - return QueryCtrl; - }() - ); -} - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n"; - -function queryDDOFactory(QueryCtrl) { - return function queryDDO() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; - }; -} - -/* harmony default export */ __webpack_exports__["default"] = (function (name, config) { - // QueryCtrl._config = config; - var newQueryIns = classFactory(config); - grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(name, queryDDOFactory(newQueryIns)); -}); - -/***/ }), - -/***/ "./datasource/tc_monitor/_base/query_filter.ts": -/*!*****************************************************!*\ - !*** ./datasource/tc_monitor/_base/query_filter.ts ***! - \*****************************************************/ -/*! exports provided: queryDDO, default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryDDO", function() { return queryDDO; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); - - -var SPQueryCtrl = -/** @class */ -function () { - SPQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function SPQueryCtrl($scope, $rootScope) { - Object.assign($scope, SPQueryCtrl._config); - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.init(); - } - - return SPQueryCtrl; -}(); - -var template = "\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n"; -function queryDDO() { - return { - template: template, - controller: SPQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; -} -/* harmony default export */ __webpack_exports__["default"] = (function (name, config) { - SPQueryCtrl._config = config; - grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(name, queryDDO); -}); - -/***/ }), - -/***/ "./datasource/tc_monitor/_base/types.ts": -/*!**********************************************!*\ - !*** ./datasource/tc_monitor/_base/types.ts ***! - \**********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - - -/***/ }), - -/***/ "./datasource/tc_monitor/apigateway/datasource.ts": -/*!********************************************************!*\ - !*** ./datasource/tc_monitor/apigateway/datasource.ts ***! - \********************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/apigateway/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["APIGATEWAYInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["APIGATEWAYInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'apigateway', - action: 'DescribeServicesStatus', - responseField: 'ServiceSet' - }; - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"]; - return _this; - } // getFilterDropdown({ field }) { - // return super.getRegions(); - // } - - - DCDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_5__["t"])(value) - }; - })); - }; - - DCDatasource.prototype.getEnvironmentNameList = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, instanceId, serviceInfo, res, rs; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - region = params.region, instanceId = params.instanceId; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, this.service); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_3__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: 'DescribeServiceEnvironmentList' - }); - }, { - ServiceId: instanceId - }, 'EnvironmentList')]; - - case 1: - res = _a.sent(); - rs = res[0]; - return [2 - /*return*/ - , rs]; - } - }); - }); - }; - - DCDatasource.prototype.fetchMetricData = function (action, region, instance) { - return __awaiter(this, void 0, void 0, function () { - var rs, result; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(action === 'DescribeServiceEnvironmentList')) return [3 - /*break*/ - , 3]; - return [4 - /*yield*/ - , this.getEnvironmentNameList({ - region: region, - instanceId: instance[this.templateQueryIdMap.instance] - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_this.templateQueryIdMap.environmentName]; - return { - text: o[_this.templateQueryIdMap.environmentName], - value: o[_this.templateQueryIdMap.environmentName] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__["default"].setExtraStorage(this.service, this.keyInStorage.environmentList, rs)]; - - case 2: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 3: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/apigateway/query.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/apigateway/query.ts ***! - \***************************************************/ -/*! exports provided: QueryCtrl, sQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/apigateway/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - -var QueryCtrl = -/** @class */ -function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.APIGATEWAYFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["APIGATEWAYFilterFieldsDescriptor"]; - $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - }; - - $scope.getInstanceId = function () { - var instance = $scope.target.instance; - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); // console.log({namespace, service}); - - instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance); - - if (!instance) { - return ''; - } - - try { - instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance]; - } catch (error) {// console.log(); - } - - return instance; - }; - - $scope.getExtraDropdown = function (target) { - return __awaiter(_this, void 0, void 0, function () { - var service, instanceId, region, rs, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - instanceId = $scope.getInstanceId(); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ - region: region, - instanceId: instanceId - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - return { - text: o.EnvironmentName, - value: JSON.stringify(o) - }; - }); - return [2 - /*return*/ - , result]; - } - }); - }); - }; - - $scope.init(); - } - - return QueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n"; -function sQuery() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/apigateway/query_def.ts": -/*!*******************************************************!*\ - !*** ./datasource/tc_monitor/apigateway/query_def.ts ***! - \*******************************************************/ -/*! exports provided: default, APIGATEWAYFilterFieldsDescriptor, templateQueryIdMap, APIGATEWAYInstanceAliasList, APIGATEWAYInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, queryMonitorExtraConfg, keyInStorage, APIGATEWAYGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APIGATEWAYFilterFieldsDescriptor", function() { return APIGATEWAYFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APIGATEWAYInstanceAliasList", function() { return APIGATEWAYInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APIGATEWAYInvalidDemensions", function() { return APIGATEWAYInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APIGATEWAYGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/APIGATEWAY'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'apigatewayQuery'; -var APIGATEWAYInvalidDemensions = { - serviceId: 'ServiceId', - environmentName: 'EnvironmentName', - apiid: 'Apiid', - apiId: 'Apiid' -}; // 需和文件名对应 - -var APIGATEWAYInstanceAliasList = ['ServiceId', 'ServiceName']; -var templateQueryIdMap = { - instance: 'ServiceId', - environmentName: 'EnvironmentName' -}; // 需要缓存到storage的内容的key列表 - -var keyInStorage = { - environmentList: 'EnvironmentList' -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - EnvironmentName: { - dim_KeyInStorage: keyInStorage.environmentList, - dim_KeyInTarget: 'EnvironmentName', - dim_KeyInMap: templateQueryIdMap.environmentName - } -}; // select类型需要注意是{},multi后缀是[],dropdown是'' - -var APIGATEWAYFilterFields = { - Limit: 20, - Offset: 0, - ServiceId: [], - ServiceName: [], - NotUsagePlanId: [], - Environment: [], - IpVersion: [] -}; -var APIGATEWAYFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'ServiceId', - enDescriptor: 'ServiceId', - cnDescriptor: '服务id', - link: '', - type: 'inputMulti' -}, { - key: 'ServiceName', - enDescriptor: 'ServiceName', - cnDescriptor: '服务名称', - link: '', - type: 'inputMulti' -}, { - key: 'NotUsagePlanId', - enDescriptor: 'NotUsagePlanId', - cnDescriptor: 'NotUsagePlanId', - link: '', - type: 'inputMulti' -}, { - key: 'Environment', - enDescriptor: 'Environment', - cnDescriptor: '环境名称', - link: '', - type: 'inputMulti' -}, { - key: 'IpVersion', - enDescriptor: 'IpVersion', - cnDescriptor: 'IP版本', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/628/45198', - namespace: namespace, - fieldDescriptor: APIGATEWAYFilterFieldsDescriptor -}; -var APIGATEWAY_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'ServiceId', - EnvironmentName: '', - queries: APIGATEWAYFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} // regions for dropdown - - -var regionSupported = [{ - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, { - value: 'ap-chongqing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-mumbai' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-shanghai' -}, { - value: 'ap-shanghai-fsi' -}, { - value: 'ap-shenzhen-fsi' -}, { - value: 'ap-singapore' -}, { - value: 'ap-tokyo' -}, { - value: 'eu-frankfurt' -}, { - value: 'na-ashburn' -}, { - value: 'na-siliconvalley' -}, { - value: 'na-toronto' -}]; -/* harmony default export */ __webpack_exports__["default"] = (APIGATEWAY_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/bmIntraLb/datasource.ts": -/*!*******************************************************!*\ - !*** ./datasource/tc_monitor/bmIntraLb/datasource.ts ***! - \*******************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bmIntraLb/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["BMINTRALBInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["BMINTRALBInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'bmlb', - action: 'DescribeLoadBalancers', - responseField: 'LoadBalancerSet', - interceptor: { - request: function request(params) { - return __assign(__assign({}, params), { - LoadBalancerType: 'internal' - }); - } // 设置一些请求参数的 默认值 - - } - }; - _this.RegionMap = {}; - return _this; - } // 重写getRegion - - - DCDatasource.prototype.getRegions = function () { - var _this = this; - - return this.doRequest({ - url: this.url + '/bm' - }, 'bm', { - action: 'DescribeRegions', - region: 'ap-guangzhou' - }).then(function (response) { - // 缓存,后面获取可用区zone - _this.RegionMap = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.keyBy(response.RegionInfoSet, 'Region'); - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.RegionInfoSet || [], function (item) { - return { - text: Object(_locale__WEBPACK_IMPORTED_MODULE_3__["t"])(item.Region), - value: item.Region - }; - }); - }); - }; - - DCDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) { - if (Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["isValidMetric"])(item)) { - return item; - } - - return null; - }))]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/bmIntraLb/query.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/bmIntraLb/query.ts ***! - \**************************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bmIntraLb/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/bmIntraLb/query_def.ts": -/*!******************************************************!*\ - !*** ./datasource/tc_monitor/bmIntraLb/query_def.ts ***! - \******************************************************/ -/*! exports provided: default, BMINTRALBFilterFieldsDescriptor, templateQueryIdMap, BMINTRALBInstanceAliasList, BMINTRALBInvalidDemensions, namespace, queryEditorName, queryEditorConfig, isValidMetric, BMINTRALBGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMINTRALBFilterFieldsDescriptor", function() { return BMINTRALBFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMINTRALBInstanceAliasList", function() { return BMINTRALBInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMINTRALBInvalidDemensions", function() { return BMINTRALBInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMINTRALBGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); - - -var namespace = 'QCE/BM_INTRA_LB'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'bmIntraLbQuery'; -var BMINTRALBInvalidDemensions = { - vip: 'LoadBalancerVips', - vpcId: 'VpcId' -}; // 要和文件名方式一致,ceip_summary=>CEIPSUMMARY - -var BMINTRALBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName']; -var templateQueryIdMap = { - instance: 'LoadBalancerId' -}; // select类型需要注意是{},multi后缀是[],dropdown是类型 - -var BMINTRALBFilterFields = { - Limit: 20, - Offset: 0, - LoadBalancerIds: [], - LoadBalancerName: [], - LoadBalancerVips: [] -}; -var BMINTRALBFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'LoadBalancerIds', - enDescriptor: 'LoadBalancerIds', - cnDescriptor: '负载均衡器ID数组', - link: '', - type: 'inputMulti' -}, { - key: 'LoadBalancerName', - enDescriptor: 'LoadBalancerName', - cnDescriptor: '负载均衡器名称', - link: '', - type: 'inputMulti' -}, { - key: 'LoadBalancerVips', - enDescriptor: 'LoadBalancerVips', - cnDescriptor: '负载均衡获得的公网IP地址', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280', - namespace: namespace, - fieldDescriptor: BMINTRALBFilterFieldsDescriptor -}; -var BMINTRALB_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'LoadBalancerId', - queries: BMINTRALBFilterFields -}; -var BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req']; - -function isValidMetric(metric) { - var validMetrics = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.map(BMLBValidMetricsT, lodash__WEBPACK_IMPORTED_MODULE_1___default.a.toUpper); - - return lodash__WEBPACK_IMPORTED_MODULE_1___default.a.indexOf(validMetrics, lodash__WEBPACK_IMPORTED_MODULE_1___default.a.toUpper(metric.MetricName)) !== -1; -} - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false); -} - -/* harmony default export */ __webpack_exports__["default"] = (BMINTRALB_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/bm_lb/datasource.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/bm_lb/datasource.ts ***! - \***************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bm_lb/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["BMLBInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CPMInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'bmlb', - action: 'DescribeLoadBalancers', - responseField: 'LoadBalancerSet', - interceptor: { - request: function request(params) { - return __assign(__assign({}, params), { - LoadBalancerType: 'open' - }); - } // 设置一些请求参数的 默认值 - - } - }; - _this.RegionMap = {}; - return _this; - } - - DCDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) { - if (Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["isValidMetric"])(item)) { - return item; - } - - return null; - }))]; - } - }); - }); - }; // 重写getRegion - - - DCDatasource.prototype.getRegions = function () { - var _this = this; - - return this.doRequest({ - url: this.url + '/bm' - }, 'bm', { - action: 'DescribeRegions', - region: 'ap-guangzhou' - }).then(function (response) { - // 缓存,后面获取可用区zone - _this.RegionMap = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.keyBy(response.RegionInfoSet, 'Region'); - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.RegionInfoSet || [], function (item) { - return { - text: Object(_locale__WEBPACK_IMPORTED_MODULE_3__["t"])(item.Region), - value: item.Region - }; - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/bm_lb/query.ts": -/*!**********************************************!*\ - !*** ./datasource/tc_monitor/bm_lb/query.ts ***! - \**********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bm_lb/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/bm_lb/query_def.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/bm_lb/query_def.ts ***! - \**************************************************/ -/*! exports provided: default, CPMFilterFieldsDescriptor, templateQueryIdMap, BMLBInstanceAliasList, CPMInvalidDemensions, namespace, queryEditorName, queryEditorConfig, isValidMetric, BMLBGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMFilterFieldsDescriptor", function() { return CPMFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMLBInstanceAliasList", function() { return BMLBInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMInvalidDemensions", function() { return CPMInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMLBGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); - - -var namespace = 'QCE/BM_LB'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'bmLbQuery'; -var CPMInvalidDemensions = { - vip: 'LoadBalancerVips' -}; // 要和文件名方式一致,ceip_summary=>CEIPSUMMARY - -var BMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName']; -var templateQueryIdMap = { - instance: 'LoadBalancerId' -}; // select类型需要注意是{},multi后缀是[],dropdown是类型 - -var CPMFilterFields = { - Limit: 20, - Offset: 0, - LoadBalancerIds: [], - LoadBalancerName: [], - LoadBalancerVips: [] -}; -var CPMFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'LoadBalancerIds', - enDescriptor: 'LoadBalancerIds', - cnDescriptor: '负载均衡器ID数组', - link: '', - type: 'inputMulti' -}, { - key: 'LoadBalancerName', - enDescriptor: 'LoadBalancerName', - cnDescriptor: '负载均衡器名称', - link: '', - type: 'inputMulti' -}, { - key: 'LoadBalancerVips', - enDescriptor: 'LoadBalancerVips', - cnDescriptor: '负载均衡获得的公网IP地址', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280', - namespace: namespace, - fieldDescriptor: CPMFilterFieldsDescriptor -}; -var CPM_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'LoadBalancerId', - queries: CPMFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false); -} - -var BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req']; - -function isValidMetric(metric) { - var validMetrics = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.map(BMLBValidMetricsT, lodash__WEBPACK_IMPORTED_MODULE_1___default.a.toUpper); - - return lodash__WEBPACK_IMPORTED_MODULE_1___default.a.indexOf(validMetrics, lodash__WEBPACK_IMPORTED_MODULE_1___default.a.toUpper(metric.MetricName)) !== -1; -} - -/* harmony default export */ __webpack_exports__["default"] = (CPM_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/bm_pcx/datasource.ts": -/*!****************************************************!*\ - !*** ./datasource/tc_monitor/bm_pcx/datasource.ts ***! - \****************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bm_pcx/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["BMPCXInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["BMPCXInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'bmvpc', - action: 'DescribeVpcPeerConnections', - responseField: 'VpcPeerConnectionSet' - }; - _this.MetricReqConfig = { - resultFilter: _query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"] - }; - _this.RegionMap = {}; - return _this; - } // 重写getRegion - - - DCDatasource.prototype.getRegions = function () { - var _this = this; - - return this.doRequest({ - url: this.url + '/bm' - }, 'bm', { - action: 'DescribeRegions', - region: 'ap-guangzhou' - }).then(function (response) { - // 缓存,后面获取可用区zone - _this.RegionMap = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.keyBy(response.RegionInfoSet, 'Region'); - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.RegionInfoSet || [], function (item) { - return { - text: Object(_locale__WEBPACK_IMPORTED_MODULE_3__["t"])(item.Region), - value: item.Region - }; - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/bm_pcx/query.ts": -/*!***********************************************!*\ - !*** ./datasource/tc_monitor/bm_pcx/query.ts ***! - \***********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bm_pcx/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/bm_pcx/query_def.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/bm_pcx/query_def.ts ***! - \***************************************************/ -/*! exports provided: default, BMPCXFilterFieldsDescriptor, templateQueryIdMap, BMPCXInstanceAliasList, BMPCXInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, BMPCXGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMPCXFilterFieldsDescriptor", function() { return BMPCXFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMPCXInstanceAliasList", function() { return BMPCXInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMPCXInvalidDemensions", function() { return BMPCXInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMPCXGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); - - -var namespace = 'QCE/BM_PCX'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'bmPcxQuery'; -var BMPCXInvalidDemensions = { - peeringConnectionId: 'VpcPeerConnectionId' -}; // 要和文件名方式一致,ceip_summary=>CEIPSUMMARY - -var BMPCXInstanceAliasList = ['VpcPeerConnectionId', 'VpcPeerConnectionName']; -var templateQueryIdMap = { - instance: 'VpcPeerConnectionId' -}; // select类型需要注意是{},multi后缀是[],dropdown是类型 - -var BMPCXFilterFields = { - Limit: 20, - Offset: 0, - VpcPeerConnectionIds: [] -}; -var BMPCXFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'VpcPeerConnectionIds', - enDescriptor: 'VpcPeerConnectionIds', - cnDescriptor: '对等连接实例ID', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/product/1024/36903', - namespace: namespace, - fieldDescriptor: BMPCXFilterFieldsDescriptor -}; -var BMPCX_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'VpcPeerConnectionId', - queries: BMPCXFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false); -} - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['peeringConnectionId']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (BMPCX_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/bwp/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/bwp/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bwp/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - -var BWPDatasource = -/** @class */ -function (_super) { - __extends(BWPDatasource, _super); - - function BWPDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/BWP'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["BWPInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["BWPInvalidDemensions"]; - _this.templateQueryIdMap = { - instance: 'BandwidthPackageId' - }; - _this.InstanceReqConfig = { - service: 'vpc', - action: 'DescribeBandwidthPackages', - responseField: 'BandwidthPackageSet' - }; - return _this; - } - - return BWPDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (BWPDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/bwp/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/bwp/query.ts ***! - \********************************************/ -/*! exports provided: BWPQueryCtrl, bwpQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BWPQueryCtrl", function() { return BWPQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bwpQuery", function() { return bwpQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bwp/query_def.ts"); - - - -var BWPQueryCtrl = -/** @class */ -function () { - BWPQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function BWPQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.BWPFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["BWPFilterFieldsDescriptor"]; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getDropdown = function (field) { - switch (field) { - case 'zone': - return $scope.getZones(); - - default: - return []; - } - }; - - $scope.getZones = function () { - if (!$scope.region) { - return []; - } - - return $scope.datasource.getZones('cvm', $scope.region); - }; - - $scope.init(); - } - - return BWPQueryCtrl; -}(); - - -var template = "\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n"; -function bwpQuery() { - return { - template: template, - controller: BWPQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('bwpQuery', bwpQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/bwp/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/bwp/query_def.ts ***! - \************************************************/ -/*! exports provided: default, BWPFilterFieldsDescriptor, templateQueryIdMap, BWPInstanceAliasList, BWPInvalidDemensions, BWPGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BWPFilterFieldsDescriptor", function() { return BWPFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BWPInstanceAliasList", function() { return BWPInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BWPInvalidDemensions", function() { return BWPInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BWPGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var networkTypes = [{ - text: 'BGP', - value: 'BGP' -}, { - text: 'SINGLEISP', - value: 'SINGLEISP' -}, { - text: 'ANYCAST', - value: 'ANYCAST' -}]; -var chargeTypes = [{ - text: 'top5计费', - value: 'TOP5_POSTPAID_BY_MONTH' -}, { - text: '月95计费', - value: 'PERCENT95_POSTPAID_BY_MONTH' -}]; -var BWPFilterFields = { - 'bandwidth-package_id': [], - 'bandwidth-package-name': [], - 'network-type': [], - 'charge-type': [] -}; -var BWPFilterFieldsDescriptor = [{ - key: 'bandwidth-package_id', - enDescriptor: 'BandwidthPackage Id', - cnDescriptor: '带宽包ID', - link: '', - type: 'inputmulti' -}, { - key: 'bandwidth-package-name', - enDescriptor: 'BandwidthPackage Name', - cnDescriptor: '带宽包名称', - link: '', - type: 'inputmulti' -}, { - key: 'network-type', - enDescriptor: 'network type', - cnDescriptor: '带宽包类型', - link: '', - type: 'select', - list: networkTypes -}, { - key: 'charge-type', - enDescriptor: 'charge type', - cnDescriptor: '带宽包计费类型', - link: '', - type: 'select', - list: chargeTypes -}]; -var BWP_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'BandwidthPackageId', - queries: { - Limit: 20, - Offset: 0, - instanceIdsChecked: false, - filtersChecked: false, - BandwidthPackageIds: [''], - Filters: __assign({}, BWPFilterFields) - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - - if (queries.instanceIdsChecked) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.BandwidthPackageIds)) { - var BandwidthPackageIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.BandwidthPackageIds); - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(BandwidthPackageIds).length > 0) { - params.BandwidthPackageIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(BandwidthPackageIds).slice(0, 100); - } - } - } else if (queries.filtersChecked) { - var Filters_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) { - if (Filters_1.length > 9) { - return; - } - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5) - }); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5) - }); - } - } - }); - - if (Filters_1.length > 0) { - params.Filters = Filters_1; - } - } - } - - return params; -} - -var BWPInstanceAliasList = ['BandwidthPackageId', 'BandwidthPackageName']; -var templateQueryIdMap = { - instance: 'BandwidthPackageId' -}; -var BWPInvalidDemensions = { - bandwidthPackageId: 'BandwidthPackageId' -}; -/* harmony default export */ __webpack_exports__["default"] = (BWP_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/cbs/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/cbs/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cbs/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CBSInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CBSInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'cbs', - action: 'DescribeDisks', - responseField: 'DiskSet' - }; - return _this; - } - - DCDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.filter(rawSet, _query_def__WEBPACK_IMPORTED_MODULE_0__["isValidMetric"])]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cbs/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/cbs/query.ts ***! - \********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cbs/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/cbs/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/cbs/query_def.ts ***! - \************************************************/ -/*! exports provided: default, CBSFilterFieldsDescriptor, templateQueryIdMap, CBSInstanceAliasList, CBSInvalidDemensions, namespace, queryEditorName, queryEditorConfig, isValidMetric, CBSGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CBSFilterFieldsDescriptor", function() { return CBSFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CBSInstanceAliasList", function() { return CBSInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CBSInvalidDemensions", function() { return CBSInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CBSGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - - -var namespace = 'QCE/BLOCK_STORAGE'; -var queryEditorName = 'cbsQuery'; -var CBSInvalidDemensions = { - diskId: 'DiskId', - InstanceId: 'InstanceId', - diskname: 'DiskName', - unInstanceId: 'InstanceId' -}; -var CBSInstanceAliasList = ['DiskId', 'DiskName']; -var templateQueryIdMap = { - instance: 'DiskId' -}; // select类型需要注意是{},multi后缀是[] - -var CBSFilterFields = { - Limit: 20, - Offset: 0, - DiskIds: [], - OrderField: [], - Order: [], - ReturnBindAutoSnapshotPolicy: false -}; -var CBSFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'DiskIds', - enDescriptor: 'DiskIds', - cnDescriptor: '云硬盘ID', - link: '', - type: 'inputMulti' -}, { - key: 'Order', - enDescriptor: 'Order', - cnDescriptor: '排列顺序', - link: '', - type: 'select', - list: [{ - text: '升序排列', - value: 'ASC' - }, { - text: '降序排列', - value: 'DESC' - }] -}, { - key: 'OrderField', - enDescriptor: 'OrderField', - cnDescriptor: '排序的依据字段', - link: '', - type: 'select', - list: [{ - text: '云盘的创建时间排序', - value: 'CREATE_TIME' - }, { - text: '云盘的到期时间排序', - value: 'DEADLINE' - }] -}, { - key: 'ReturnBindAutoSnapshotPolicy', - enDescriptor: 'ReturnBindAutoSnapshotPolicy', - cnDescriptor: '否需要返回云盘绑定的定期快照策略ID', - link: '', - type: 'switch' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/362/16315', - namespace: namespace, - fieldDescriptor: CBSFilterFieldsDescriptor -}; -var CBS_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'DiskId', - queries: CBSFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, false); -} - -function isValidMetric(metricObj) { - if (metricObj === void 0) { - metricObj = {}; - } - - var dimension = lodash__WEBPACK_IMPORTED_MODULE_0__["get"](metricObj, 'Dimensions[0].Dimensions'); // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1); - - - return dimension.length === 1 && lodash__WEBPACK_IMPORTED_MODULE_0__["indexOf"](dimension, 'diskId') !== -1; -} - -/* harmony default export */ __webpack_exports__["default"] = (CBS_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/cdb/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/cdb/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdb/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - -var CDBDatasource = -/** @class */ -function (_super) { - __extends(CDBDatasource, _super); - - function CDBDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/CDB'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["CDBInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["CDBInvalidDemensions"]; - _this.templateQueryIdMap = { - instance: 'InstanceId' - }; - _this.InstanceReqConfig = { - service: 'cdb', - action: 'DescribeDBInstances', - responseField: 'Items' - }; - return _this; - } - - CDBDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(rawSet.map(function (item) { - if (Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["isValidMetric"])(item)) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["modifyDimensons"])(item); - } - - return null; - }))]; - } - }); - }); - }; - /** - * 获取 可用区 - * @param region 地域信息 - */ - - - CDBDatasource.prototype.getZones = function (region) { - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'cvm'); - return this.doRequest({ - url: this.url + serviceInfo.path - }, serviceInfo.service, { - region: region, - action: 'DescribeZones' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.ZoneSet || [], function (item) { - return { - text: item.ZoneName, - value: item.ZoneId, - ZoneState: item.ZoneState, - Zone: item.Zone - }; - }), function (item) { - return item.ZoneState === 'AVAILABLE'; - }); - }); - }; // 仅对维度组合是InstanceId和InstanceType的指标,其他指标不支持 - - - CDBDatasource.prototype.getDefaultInsObj = function (ins) { - var _a; - - return _a = {}, _a[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance] = ins, _a.InstanceType = 1, _a; - }; - - return CDBDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_3__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CDBDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cdb/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/cdb/query.ts ***! - \********************************************/ -/*! exports provided: CDBQueryCtrl, cdbQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDBQueryCtrl", function() { return CDBQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cdbQuery", function() { return cdbQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdb/query_def.ts"); - - - -var CDBQueryCtrl = -/** @class */ -function () { - CDBQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function CDBQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.CDBFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CDBFieldsDescriptor"]; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getDropdown = function (field) { - switch (field) { - case 'ZoneIds': - return $scope.getZones(); - - default: - return []; - } - }; - - $scope.getZones = function () { - if (!$scope.region) { - return []; - } - - return $scope.datasource.getZones('cdb', $scope.region); - }; - - $scope.init(); - } - - return CDBQueryCtrl; -}(); - - -var template = "\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n"; -function cdbQuery() { - return { - template: template, - controller: CDBQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('cdbQuery', cdbQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/cdb/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/cdb/query_def.ts ***! - \************************************************/ -/*! exports provided: default, CDBFieldsDescriptor, CDBInstanceAliasList, templateQueryIdMap, CDBInvalidDemensions, isValidMetric, modifyDimensons, CDBGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDBFieldsDescriptor", function() { return CDBFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDBInstanceAliasList", function() { return CDBInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDBInvalidDemensions", function() { return CDBInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDBGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var InstanceTypes = [{ - text: '主实例', - value: 1 -}, { - text: '备灾实例', - value: 2 -}, { - text: '只读实例', - value: 3 -}]; -var Status = [{ - text: '创建中', - value: 0 -}, { - text: '运行中', - value: 1 -}, { - text: '隔离中', - value: 4 -}, { - text: '已隔离', - value: 5 -}]; -var PayTypes = [{ - text: '包年包月', - value: 0 -}, { - text: '小时计费', - value: 1 -}]; -var TaskStatus = [{ - text: '没有任务', - value: 0 -}, { - text: '升级中', - value: 1 -}, { - text: '数据导入中', - value: 2 -}, { - text: '开放Slave中', - value: 3 -}, { - text: '外网访问开通中', - value: 4 -}, { - text: '批量操作执行中', - value: 5 -}, { - text: '回档中', - value: 6 -}, { - text: '外网访问关闭中', - value: 7 -}, { - text: '密码修改中', - value: 8 -}, { - text: '实例名修改中', - value: 9 -}, { - text: '重启中', - value: 10 -}, { - text: '自建迁移中', - value: 12 -}, { - text: '删除库表中', - value: 13 -}, { - text: '灾备实例创建同步中', - value: 14 -}, { - text: '升级待切换', - value: 15 -}, { - text: '升级切换中', - value: 16 -}, { - text: '升级切换完成', - value: 17 -}]; -var EngineVersions = [{ - text: '5.1', - value: '5.1' -}, { - text: '5.5', - value: '5.5' -}, { - text: '5.6', - value: '5.6' -}, { - text: '5.7', - value: '5.7' -}]; -var OrderBy = [{ - text: 'InstanceId', - value: 'InstanceId' -}, { - text: 'InstanceName', - value: 'InstanceName' -}, { - text: 'CreateTime', - value: 'CreateTime' -}, { - text: 'DeadlineTime', - value: 'DeadlineTime' -}]; -var OrderDirection = [{ - text: 'ASC', - value: 'ASC' -}, { - text: 'DESC', - value: 'DESC' -}]; -var InitFlag = [{ - text: '未初始化', - value: 0 -}, { - text: '初始化', - value: 1 -}]; -var CdbErrors = [{ - text: '未锁定', - value: 0 -}, { - text: '锁定', - value: 1 -}]; -var CDBFields = { - ProjectId: '', - InstanceTypes: {}, - Vips: [], - Status: {}, - Offset: 0, - Limit: 20, - SecurityGroupId: '', - PayTypes: {}, - InstanceNames: [], - TaskStatus: {}, - EngineVersions: {}, - VpcIds: [], - ZoneIds: [], - SubnetIds: [], - CdbErrors: {}, - OrderBy: {}, - OrderDirection: {}, - InstanceIds: [], - InitFlag: {} -}; -var CDBFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputnumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputnumber', - min: 1, - max: 100 -}, { - key: 'InstanceNames', - enDescriptor: 'Instance Name', - cnDescriptor: '实例名称', - link: '', - type: 'inputmulti' -}, { - key: 'InstanceIds', - enDescriptor: 'Instance ID', - cnDescriptor: '实例ID', - link: '', - type: 'inputmulti' -}, { - key: 'ZoneIds', - enDescriptor: 'Zone ID', - cnDescriptor: '可用区的ID', - link: '', - type: 'dropdownmulti' -}, { - key: 'InstanceTypes', - enDescriptor: 'Instance Type', - cnDescriptor: '实例类型', - link: '', - multiple: true, - type: 'select', - list: InstanceTypes -}, { - key: 'EngineVersions', - enDescriptor: 'Engine Version', - cnDescriptor: '实例数据库引擎版本', - link: '', - multiple: true, - type: 'select', - list: EngineVersions -}, { - key: 'TaskStatus', - enDescriptor: 'Task Status', - cnDescriptor: '实例任务', - link: '', - multiple: true, - type: 'select', - list: TaskStatus -}, { - key: 'InitFlag', - enDescriptor: 'Init Flag', - cnDescriptor: '实例初始化状态', - link: '', - multiple: true, - type: 'select', - list: InitFlag -}, { - key: 'PayTypes', - enDescriptor: 'Pay Type', - cnDescriptor: '付费类型', - link: '', - multiple: true, - type: 'select', - list: PayTypes -}, { - key: 'CdbErrors', - enDescriptor: 'CDB Errors', - cnDescriptor: '实例锁定标记', - link: '', - multiple: true, - type: 'select', - list: CdbErrors -}, { - key: 'Status', - enDescriptor: 'Status', - cnDescriptor: '实例状态', - link: '', - multiple: true, - type: 'select', - list: Status -}, { - key: 'OrderBy', - enDescriptor: 'OrderBy', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: OrderBy -}, { - key: 'OrderDirection', - enDescriptor: 'Order Direction', - cnDescriptor: '排序方式', - link: '', - type: 'select', - list: OrderDirection -}, { - key: 'Vips', - enDescriptor: 'Vip', - cnDescriptor: '实例内网IP地址', - link: '', - type: 'inputmulti' -}, { - key: 'VpcIds', - enDescriptor: 'Vpc ID', - cnDescriptor: '私有网络ID', - link: 'https://cloud.tencent.com/document/api/215/15778', - type: 'inputmulti' -}, { - key: 'SubnetIds', - enDescriptor: 'Subnet ID', - cnDescriptor: '子网ID', - link: 'https://cloud.tencent.com/document/api/215/15784', - type: 'inputmulti' -}, { - key: 'ProjectId', - enDescriptor: 'Project ID', - cnDescriptor: '项目ID', - link: 'https://cloud.tencent.com/document/product/378/4400', - type: 'input' -}, { - key: 'SecurityGroupId', - enDescriptor: 'Security Group ID', - cnDescriptor: '安全组ID', - link: 'https://cloud.tencent.com/document/api/236/15854', - type: 'input' -}]; -var CDB_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: __assign({}, CDBFields) -}; -var CDBInstanceAliasList = ['InstanceId', 'InstanceName', 'Vip']; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} - -function isValidMetric(metricObj) { - if (metricObj === void 0) { - metricObj = {}; - } - - var dimension = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(metricObj, 'Dimensions[0].Dimensions'); - - return dimension.length === 2 && (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(dimension, 'instanceid') !== -1 && lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(dimension, 'insttype') !== -1 || lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(dimension, 'InstanceId') !== -1 && lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(dimension, 'InstanceType') !== -1); -} - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = item.Dimensions.map(function (i) { - return CDBInvalidDemensions[i] || i; - }); - }); - return metricTmp; -} - -var CDBInvalidDemensions = { - instanceid: 'InstanceId', - insttype: 'InstanceType', - region: 'Region' -}; -var templateQueryIdMap = { - instance: 'InstanceId' -}; -/* harmony default export */ __webpack_exports__["default"] = (CDB_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/cdn/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/cdn/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdn/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var CDNDatasource = -/** @class */ -function (_super) { - __extends(CDNDatasource, _super); - - function CDNDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/CDN'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CDNInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CDNInvalidDemensions"]; - _this.templateQueryIdMap = { - instance: 'Domain' - }; - _this.InstanceReqConfig = { - service: 'cdn', - action: 'DescribeDomains', - responseField: 'Domains' - }; - return _this; - } - - CDNDatasource.prototype.metricFindQuery = function (query, regex) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), { - region: 'ap-guangzhou' - }), regex)]; - }); - }); - }; - - return CDNDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CDNDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cdn/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/cdn/query.ts ***! - \********************************************/ -/*! exports provided: CDNQueryCtrl, cdnQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNQueryCtrl", function() { return CDNQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cdnQuery", function() { return cdnQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdn/query_def.ts"); - - - -var CDNQueryCtrl = -/** @class */ -function () { - CDNQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function CDNQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.CDNFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CDNFilterFieldsDescriptor"]; - }; // $scope.onChecked = (srcField, dstField) => { - // if ($scope.target.queries[srcField] === true) { - // $scope.target.queries[dstField] = false; - // } - // $scope.onChange(); - // }; - // $scope.getDropdown = (field) => { - // switch (field) { - // case 'zone': - // return $scope.getZones(); - // default: - // return []; - // } - // }; - // $scope.getZones = () => { - // if (!$scope.region) { - // return []; - // } - // return $scope.datasource.getZones('cvm', $scope.region); - // }; - - - $scope.init(); - } - - return CDNQueryCtrl; -}(); - - -var template = "\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n"; -function cdnQuery() { - return { - template: template, - controller: CDNQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('cdnQuery', cdnQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/cdn/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/cdn/query_def.ts ***! - \************************************************/ -/*! exports provided: default, CDNFilterFieldsDescriptor, templateQueryIdMap, CDNInstanceAliasList, CDNInvalidDemensions, CDNGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNFilterFieldsDescriptor", function() { return CDNFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNInstanceAliasList", function() { return CDNInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNInvalidDemensions", function() { return CDNInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var CDNFilterFields = { - origin: [], - domain: [], - resourceId: [], - status: {}, - serviceType: {}, - projectId: [], - domainType: {}, - fullUrlCache: {}, - https: {}, - originPullProtocol: {}, - tagKey: [] -}; -var CDNFilterFieldsDescriptor = [{ - key: 'origin', - enDescriptor: 'origin', - cnDescriptor: '主源站', - link: '', - type: 'inputmulti' -}, { - key: 'domain', - enDescriptor: 'domain', - cnDescriptor: '域名', - link: '', - type: 'inputmulti' -}, { - key: 'resourceId', - enDescriptor: 'resourceId', - cnDescriptor: '域名id', - link: '', - type: 'inputmulti' -}, { - key: 'status', - enDescriptor: 'status', - cnDescriptor: '域名状态', - link: '', - type: 'select', - list: [{ - text: 'online', - value: 'online' - }, { - text: 'offline', - value: 'offline' - }, { - text: 'processing', - value: 'processing' - }] -}, { - key: 'serviceType', - enDescriptor: 'serviceType', - cnDescriptor: '业务类型', - link: '', - type: 'select', - list: [{ - text: 'web', - value: 'web' - }, { - text: 'download', - value: 'download' - }, { - text: 'media', - value: 'media' - }] -}, { - key: 'projectId', - enDescriptor: 'projectId', - cnDescriptor: '项目ID', - link: '', - type: 'inputNumbermulti' -}, { - key: 'domainType', - enDescriptor: 'domainType', - cnDescriptor: '主源站类型', - link: '', - type: 'select', - list: [{ - text: '自有源', - value: 'cname' - }, { - text: 'cos接入', - value: 'cos' - }] -}, { - key: 'fullUrlCache', - enDescriptor: 'fullUrlCache', - cnDescriptor: '全路径缓存', - link: '', - type: 'select', - list: [{ - text: '打开', - value: 'on' - }, { - text: '关闭', - value: 'off' - }] -}, { - key: 'https', - enDescriptor: 'https', - cnDescriptor: '是否配置https', - link: '', - type: 'select', - list: [{ - text: 'on', - value: 'on' - }, { - text: 'off', - value: 'off' - }, { - text: 'processing', - value: 'processing' - }] -}, { - key: 'originPullProtocol', - enDescriptor: 'originPullProtocol', - cnDescriptor: '回源协议类型', - link: '', - type: 'select', - list: [{ - text: 'http', - value: 'http' - }, { - text: 'follow', - value: 'follow' - }, { - text: 'https', - value: 'https' - }] -}, { - key: 'tagKey', - enDescriptor: 'tagKey', - cnDescriptor: '标签键', - link: '', - type: 'inputmulti' -}]; -var CDN_STATE = { - region: 'ap-guangzhou', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'Domain', - queries: { - Limit: 20, - Offset: 0, - Filters: __assign({}, CDNFilterFields) - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - var Filters_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) { - // console.log('item', item, queries); - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - Filters_1.push({ - Name: key, - Value: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5) - }); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) { - Filters_1.push({ - Name: key, - Value: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5) - }); - } - } - }); - - if (Filters_1.length > 0) { - params.Filters = Filters_1; - } - } - - return params; -} - -var CDNInstanceAliasList = ['Domain', 'ProjectId']; -var CDNInvalidDemensions = { - projectId: 'ProjectId', - domain: 'Domain' -}; -var templateQueryIdMap = { - instance: 'Domain' -}; -/* harmony default export */ __webpack_exports__["default"] = (CDN_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/cdn_province/datasource.ts": -/*!**********************************************************!*\ - !*** ./datasource/tc_monitor/cdn_province/datasource.ts ***! - \**********************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdn_province/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CDNPROVINCEInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CDNPROVINCEInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'cdn', - action: 'DescribeDomains', - responseField: 'Domains' - }; - _this.extrasAlias = ['isp', 'district']; - return _this; - } // getFilterDropdown({ field }) { - // return super.getRegions(); - // } - - - DCDatasource.prototype.metricFindQuery = function (query, regex) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), { - region: 'ap-guangzhou' - }), regex)]; - }); - }); - }; - - DCDatasource.prototype.getConsumerList = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, field, serviceInfo, rs; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - region = params.region, field = params.field; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'cdn'); - return [4 - /*yield*/ - , this.doRequest({ - url: this.url + serviceInfo.path, - data: { - Name: field - } - }, serviceInfo.service, { - action: 'DescribeMapInfo' - })]; - - case 1: - rs = _a.sent(); - return [2 - /*return*/ - , (rs.MapInfoList || []).map(function (o) { - return { - text: o.Name, - value: o.Name - }; - })]; - } - }); - }); - }; - - DCDatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - var field, rs; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(action === 'DescribeMapInfo')) return [3 - /*break*/ - , 2]; - field = query.name; - return [4 - /*yield*/ - , this.getConsumerList({ - region: region, - field: field - })]; - - case 1: - rs = _a.sent(); - return [2 - /*return*/ - , rs]; - - case 2: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cdn_province/query.ts": -/*!*****************************************************!*\ - !*** ./datasource/tc_monitor/cdn_province/query.ts ***! - \*****************************************************/ -/*! exports provided: QueryCtrl, sQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdn_province/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var ExtraFields = [{ - label: 'Isp', - field: 'isp' -}, { - label: 'Province', - field: 'district' -}]; - -var QueryCtrl = -/** @class */ -function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.CDNPROVINCEFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CDNPROVINCEFilterFieldsDescriptor"]; - $scope.ExtraFields = ExtraFields; - $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - }; - - $scope.getExtraDropdown = function (target, field) { - return __awaiter(_this, void 0, void 0, function () { - var service, region, rs; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, 'getConsumerList')({ - region: region, - field: field - })]; - - case 1: - rs = _a.sent(); - return [2 - /*return*/ - , rs]; - } - }); - }); - }; - - $scope.init(); - } - - return QueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n"; -function sQuery() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/cdn_province/query_def.ts": -/*!*********************************************************!*\ - !*** ./datasource/tc_monitor/cdn_province/query_def.ts ***! - \*********************************************************/ -/*! exports provided: default, CDNPROVINCEFilterFieldsDescriptor, templateQueryIdMap, CDNPROVINCEInstanceAliasList, CDNPROVINCEInvalidDemensions, namespace, queryEditorName, CDNPROVINCEGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNPROVINCEFilterFieldsDescriptor", function() { return CDNPROVINCEFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNPROVINCEInstanceAliasList", function() { return CDNPROVINCEInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNPROVINCEInvalidDemensions", function() { return CDNPROVINCEInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNPROVINCEGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/CDN_LOG_DATA'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'cdnProvinceQuery'; -var CDNPROVINCEInvalidDemensions = { - domain: 'Domain', - // isp: 'Isp', - projectid: 'ProjectId', - province: 'district', - appid: 'AppId' -}; // 需和文件名对应 - -var CDNPROVINCEInstanceAliasList = ['Domain', 'ProjectId']; -var templateQueryIdMap = { - instance: 'Domain' -}; // select类型需要注意是{},multi后缀是[],dropdown是'' - -var CDNPROVINCEFilterFields = { - Limit: 20, - Offset: 0, - origin: [], - domain: [], - resourceId: [], - status: {}, - serviceType: {}, - projectId: [], - domainType: {}, - fullUrlCache: {}, - https: {}, - originPullProtocol: {}, - tagKey: [] -}; -var CDNPROVINCEFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'origin', - enDescriptor: 'origin', - cnDescriptor: '主源站', - link: '', - type: 'inputMulti' -}, { - key: 'domain', - enDescriptor: 'domain', - cnDescriptor: '域名', - link: '', - type: 'inputMulti' -}, { - key: 'resourceId', - enDescriptor: 'resourceId', - cnDescriptor: '域名id', - link: '', - type: 'inputMulti' -}, { - key: 'status', - enDescriptor: 'status', - cnDescriptor: '域名状态', - link: '', - type: 'select', - list: [{ - text: 'online', - value: 'online' - }, { - text: 'offline', - value: 'offline' - }, { - text: 'processing', - value: 'processing' - }] -}, { - key: 'serviceType', - enDescriptor: 'serviceType', - cnDescriptor: '业务类型', - link: '', - type: 'select', - list: [{ - text: 'web', - value: 'web' - }, { - text: 'download', - value: 'download' - }, { - text: 'media', - value: 'media' - }] -}, { - key: 'projectId', - enDescriptor: 'projectId', - cnDescriptor: '项目ID', - link: '', - type: 'inputNumberMulti' -}, { - key: 'domainType', - enDescriptor: 'domainType', - cnDescriptor: '主源站类型', - link: '', - type: 'select', - list: [{ - text: '自有源', - value: 'cname' - }, { - text: 'cos接入', - value: 'cos' - }] -}, { - key: 'fullUrlCache', - enDescriptor: 'fullUrlCache', - cnDescriptor: '全路径缓存', - link: '', - type: 'select', - list: [{ - text: '打开', - value: 'on' - }, { - text: '关闭', - value: 'off' - }] -}, { - key: 'https', - enDescriptor: 'https', - cnDescriptor: '是否配置https', - link: '', - type: 'select', - list: [{ - text: 'on', - value: 'on' - }, { - text: 'off', - value: 'off' - }, { - text: 'processing', - value: 'processing' - }] -}, { - key: 'originPullProtocol', - enDescriptor: 'originPullProtocol', - cnDescriptor: '回源协议类型', - link: '', - type: 'select', - list: [{ - text: 'http', - value: 'http' - }, { - text: 'follow', - value: 'follow' - }, { - text: 'https', - value: 'https' - }] -}, { - key: 'tagKey', - enDescriptor: 'tagKey', - cnDescriptor: '标签键', - link: '', - type: 'inputMulti' -}]; -var CDNPROVINCE_STATE = { - region: 'ap-guangzhou', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'Domain', - // Isp Province分别在两个接口,单独保存在state - isp: '', - district: '', - queries: CDNPROVINCEFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} // const regionSupported = [ -// { text: '华北地区(北京)', value: 'ap-beijing' }, -// { text: '西南地区(成都)', value: 'ap-chengdu' }, -// { text: '西南地区(重庆)', value: 'ap-chongqing' }, -// { text: '华南地区(广州)', value: 'ap-guangzhou' }, -// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' }, -// { text: '亚太南部(孟买)', value: 'ap-mumbai' }, -// { text: '华东地区(南京)', value: 'ap-nanjing' }, -// { text: '华东地区(上海)', value: 'ap-shanghai' }, -// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' }, -// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' }, -// { text: '亚太东南(新加坡)', value: 'ap-singapore' }, -// { text: '亚太东北(东京)', value: 'ap-tokyo' }, -// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' }, -// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' }, -// { text: '美国西部(硅谷)', value: 'na-siliconvalley' }, -// { text: '北美地区(多伦多)', value: 'na-toronto' }, -// ]; - - -/* harmony default export */ __webpack_exports__["default"] = (CDNPROVINCE_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/ceip_summary/datasource.ts": -/*!**********************************************************!*\ - !*** ./datasource/tc_monitor/ceip_summary/datasource.ts ***! - \**********************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ceip_summary/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CEIPSUMMARYInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CEIPInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'vpc', - action: 'DescribeAddresses', - responseField: 'AddressSet', - interceptor: { - request: function request(params) { - var Filters = params.Filters; - - if (!Filters) { - params.Filters = []; - } - - params.Filters.push({ - Name: 'address-type', - Values: ['AnycastEIP'] - }); - return params; - } // 设置一些请求参数的 默认值 - // response: (data: unknown[]) =>[ - // { - // AddressId: 'AddressId', - // AddressIp: '111.22.3.4' - // }, - // ], - - } - }; - _this.MetricReqConfig = { - resultFilter: _query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"] - }; - return _this; - } - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/ceip_summary/query.ts": -/*!*****************************************************!*\ - !*** ./datasource/tc_monitor/ceip_summary/query.ts ***! - \*****************************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ceip_summary/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/ceip_summary/query_def.ts": -/*!*********************************************************!*\ - !*** ./datasource/tc_monitor/ceip_summary/query_def.ts ***! - \*********************************************************/ -/*! exports provided: default, CEIPFilterFieldsDescriptor, templateQueryIdMap, CEIPSUMMARYInstanceAliasList, CEIPInvalidDemensions, namespace, queryEditorName, modifyDimensons, queryEditorConfig, CEIPSUMMARYGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CEIPFilterFieldsDescriptor", function() { return CEIPFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CEIPSUMMARYInstanceAliasList", function() { return CEIPSUMMARYInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CEIPInvalidDemensions", function() { return CEIPInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CEIPSUMMARYGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - - -var namespace = 'QCE/CEIP_SUMMARY'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'ceipSummaryQuery'; -var CEIPInvalidDemensions = { - vip: 'AddressIp', - eip: 'AddressIp' -}; // 要和文件名方式一致,ceip_summary=>CEIPSUMMARY - -var CEIPSUMMARYInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp']; -var templateQueryIdMap = { - instance: 'AddressId' -}; // select类型需要注意是{},multi后缀是[] - -var CEIPFilterFields = { - Limit: 20, - Offset: 0, - 'address-id': [], - 'address-name': [], - 'address-ip': [], - 'address-status': {}, - 'is-arrears': {}, - 'address-isp': {}, - 'instance-id': [], - 'private-ip-address': [], - 'network-interface-id': [] -}; -var CEIPFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'address-id', - enDescriptor: 'address-id', - cnDescriptor: ' EIP 的唯一 ID', - link: '', - type: 'inputMulti' -}, { - key: 'address-name', - enDescriptor: 'address-name', - cnDescriptor: 'EIP 名称', - link: '', - type: 'inputMulti' -}, { - key: 'address-ip', - enDescriptor: 'address-ip', - cnDescriptor: 'EIP 的 IP 地址', - link: '', - type: 'inputMulti' -}, { - key: 'address-status', - enDescriptor: 'address-status', - cnDescriptor: 'EIP 的状态', - link: '', - type: 'select', - multiple: true, - list: [{ - text: 'CREATING', - value: 'CREATING' - }, { - text: 'BINDING', - value: 'BINDING' - }, { - text: 'BIND', - value: 'BIND' - }, { - text: 'UNBINDING', - value: 'UNBINDING' - }, { - text: 'UNBIND', - value: 'UNBIND' - }, { - text: 'OFFLINING', - value: 'OFFLINING' - }, { - text: 'BIND_ENI', - value: 'BIND_ENI' - }] -}, { - key: 'instance-id', - enDescriptor: 'instance-id', - cnDescriptor: 'EIP 绑定的实例 ID', - link: '', - type: 'inputMulti' -}, { - key: 'private-ip-address', - enDescriptor: 'private-ip-address', - cnDescriptor: 'EIP 绑定的内网 IP ', - link: '', - type: 'inputMulti' -}, { - key: 'network-interface-id', - enDescriptor: 'network-interface-id', - cnDescriptor: ' EIP 绑定的弹性网卡 ID', - link: '', - type: 'inputMulti' -}, { - key: 'is-arrears', - enDescriptor: 'is-arrears', - cnDescriptor: 'EIP 是否欠费', - link: '', - type: 'select', - multiple: true, - list: [{ - text: '欠费状态', - value: 'TRUE' - }, { - text: '费用状态正常', - value: 'FALSE' - }] -}, { - key: 'address-isp', - enDescriptor: 'address-isp', - cnDescriptor: '运营商类型', - link: '', - type: 'select', - multiple: true, - list: [{ - text: 'BGP', - value: 'BGP' - }, { - text: 'CMCC', - value: 'CMCC' - }, { - text: 'CUCC', - value: 'CUCC' - }, { - text: 'CTCC', - value: 'CTCC' - }] -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/215/16702', - namespace: namespace, - fieldDescriptor: CEIPFilterFieldsDescriptor -}; -var CEIP_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'AddressId', - queries: CEIPFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true); -} - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['eip']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (CEIP_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/ces/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/ces/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ces/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CESInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CESInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'es', - action: 'DescribeInstances', - responseField: 'InstanceList' - }; - return _this; - } - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/ces/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/ces/query.ts ***! - \********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ces/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/ces/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/ces/query_def.ts ***! - \************************************************/ -/*! exports provided: default, CESFilterFieldsDescriptor, templateQueryIdMap, CESInstanceAliasList, CESInvalidDemensions, namespace, queryEditorName, queryEditorConfig, CESGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CESFilterFieldsDescriptor", function() { return CESFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CESInstanceAliasList", function() { return CESInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CESInvalidDemensions", function() { return CESInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CESGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/CES'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'cesQuery'; -var CESInvalidDemensions = { - uInstanceId: 'InstanceId' -}; -var CESInstanceAliasList = ['InstanceId', 'InstanceName']; -var templateQueryIdMap = { - instance: 'InstanceId' -}; // select类型需要注意是{},multi后缀是[],dropdown是类型 - -var CESFilterFields = { - Limit: 20, - Offset: 0, - InstanceIds: [], - InstanceNames: [], - OrderByKey: {}, - OrderByType: {}, - IpList: [] -}; -var CESFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'InstanceIds', - enDescriptor: 'InstanceIds', - cnDescriptor: '集群实例ID列表', - link: '', - type: 'inputMulti' -}, { - key: 'InstanceNames', - enDescriptor: 'InstanceNames', - cnDescriptor: '集群实例名称列表', - link: '', - type: 'inputMulti' -}, { - key: 'OrderByKey', - enDescriptor: 'OrderByKey', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: [{ - text: '实例ID', - value: 1 - }, { - text: '实例名称', - value: 2 - }, { - text: '可用区', - value: 3 - }, { - text: '创建时间', - value: 4 - }] -}, { - key: 'OrderByType', - enDescriptor: 'OrderByType', - cnDescriptor: '排序方式', - link: '', - type: 'select', - list: [{ - text: '升序', - value: 0 - }, { - text: '降序', - value: 1 - }] -}, { - key: 'IpList', - enDescriptor: 'IpList', - cnDescriptor: '私有网络vip列表', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/845/30631', - namespace: namespace, - fieldDescriptor: CESFilterFieldsDescriptor -}; -var CES_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: CESFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false); -} - -/* harmony default export */ __webpack_exports__["default"] = (CES_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/cfs/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/cfs/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cfs/query_def.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - - -var CFSDatasource = -/** @class */ -function (_super) { - __extends(CFSDatasource, _super); - - function CFSDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.templateQueryIdMap = { - instance: 'FileSystemId' - }; - _this.extrasAlias = ['version']; - _this.Namespace = 'QCE/CFS'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["CFSInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["CFSInvalidDemensions"]; - _this.InstanceReqConfig = { - service: 'cfs', - action: 'DescribeCfsFileSystems', - responseField: 'FileSystems' - }; - return _this; - } - - CFSDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_1__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_2__["t"])(value) - }; - })); - }; - - return CFSDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_0__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CFSDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cfs/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/cfs/query.ts ***! - \********************************************/ -/*! exports provided: SCFQueryCtrl, scfQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFQueryCtrl", function() { return SCFQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scfQuery", function() { return scfQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cfs/query_def.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var SCFQueryCtrl = -/** @class */ -function () { - SCFQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function SCFQueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.CFSQueryDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CFSQueryDescriptor"]; - }; - - $scope.getVersions = function (target) { - return __awaiter(_this, void 0, void 0, function () { - var instance, region, fetcher; - return __generator(this, function (_a) { - instance = target.instance, region = target.region; - fetcher = $scope.datasource.getServiceFn('scf', 'getVersions'); - if (!instance || !region) return [2 - /*return*/ - , []]; - return [2 - /*return*/ - , fetcher(region, { - FunctionName: JSON.parse(instance).FunctionName - }).then(function (res) { - // console.log(res, 'res'); - return res; - })]; - }); - }); - }; // $scope.onChecked = (srcField, dstField) => { - // if ($scope.target.queries[srcField] === true) { - // $scope.target.queries[dstField] = false; - // } - // $scope.onChange(); - // }; - // $scope.getDropdown = (field) => { - // switch (field) { - // case 'zone': - // return $scope.getZones(); - // default: - // return []; - // } - // }; - // $scope.getZones = () => { - // if (!$scope.region) { - // return []; - // } - // return $scope.datasource.getZones('cvm', $scope.region); - // }; - - - $scope.init(); - } - - return SCFQueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n"; -function scfQuery() { - return { - template: template, - controller: SCFQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('cfsQuery', scfQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/cfs/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/cfs/query_def.ts ***! - \************************************************/ -/*! exports provided: CFSQueryDescriptor, default, CFSInstanceAliasList, CFSInvalidDemensions, templateQueryIdMap, regionSupported, CFSGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CFSQueryDescriptor", function() { return CFSQueryDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CFSInstanceAliasList", function() { return CFSInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CFSInvalidDemensions", function() { return CFSInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CFSGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); - -var CFSQueryDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputnumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputnumber', - min: 1, - max: 100 -}, { - key: 'FileSystemId', - enDescriptor: 'File System Id', - cnDescriptor: '文件系统 ID', - link: '', - type: 'input' -}, { - key: 'VpcId', - enDescriptor: 'VpcId', - cnDescriptor: '私有网络(VPC) ID', - link: '', - type: 'input' -}, { - key: 'SubnetId', - enDescriptor: 'SubnetId', - cnDescriptor: '子网 ID', - link: '', - type: 'input' -}]; -var CFS_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'FileSystemId', - version: '', - queries: { - Offset: 0, - Limit: 20, - FileSystemId: '', - VpcId: '', - SubnetId: '' - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} - -var CFSInstanceAliasList = ['FileSystemId', 'FsName']; // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key - -var CFSInvalidDemensions = {// functionName: 'FunctionName', - // namespace: 'Namespace' -}; -var regionSupported = [{ - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, { - value: 'ap-chongqing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-mumbai' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-seoul' -}, { - value: 'ap-shanghai' -}, { - value: 'ap-shanghai-fsi' -}, { - value: 'ap-shenzhen-fsi' -}, { - value: 'ap-singapore' -}, { - value: 'ap-tokyo' -}, { - value: 'eu-frankfurt' -}, { - value: 'na-siliconvalley' -}, { - value: 'na-toronto' -}]; -var templateQueryIdMap = { - instance: 'InstanceId' -}; -/* harmony default export */ __webpack_exports__["default"] = (CFS_STATE); - // monitor监控数据默认支持的维度 -// export const SCFDefaultDimensionList = ['functionName', 'namespace', 'version']; - -/***/ }), - -/***/ "./datasource/tc_monitor/ckafka/datasource.ts": -/*!****************************************************!*\ - !*** ./datasource/tc_monitor/ckafka/datasource.ts ***! - \****************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ckafka/query_def.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - - -var CKFKADatasource = -/** @class */ -function (_super) { - __extends(CKFKADatasource, _super); - - function CKFKADatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/CKAFKA'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_4__["CKAFKAInstanceAliasList"]; - _this.TopicAliasList = _query_def__WEBPACK_IMPORTED_MODULE_4__["CKAFKATopicAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_4__["CKAFKAInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"]; - _this.InstanceReqConfig = { - service: 'ckafka', - action: 'DescribeInstances', - responseField: 'InstanceList' - }; - _this.extraMetricDims = ['topicId']; // extrasAlias = ['topicId', 'consumerGroup', 'partition']; - - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_4__["keyInStorage"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_4__["queryMonitorExtraConfg"]; - _this.consumerGroupCache = {}; - return _this; - } - - CKFKADatasource.prototype.getConsumerGroups = function (region, params) { - var _a, _b, _c; - - return __awaiter(this, void 0, void 0, function () { - var serviceInfo, InstanceId, _d, groupname, _e, topicid, consumerGoup, topicList, GroupList, TopicList, PartitionList, GroupDetailList, SubscribedInfos, partitions; - - var _this = this; - - return __generator(this, function (_f) { - switch (_f.label) { - case 0: - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["GetServiceAPIInfo"])(region, 'ckafka'); - InstanceId = params.InstanceId, _d = params.groupname, groupname = _d === void 0 ? '' : _d, _e = params.topicid, topicid = _e === void 0 ? '' : _e; - groupname = this.getVariable(groupname); // 将模板转换为真实值 - - topicid = this.getVariable(topicid); // 将模板转换为真实值 - - try { - groupname = JSON.parse(groupname)[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].groupName]; - topicid = JSON.parse(topicid)[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].topicId]; - } catch (e) {} - - consumerGoup = this.consumerGroupCache[InstanceId]; - if (!!consumerGoup) return [3 - /*break*/ - , 3]; - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_2__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: 'DescribeConsumerGroup' - }); - }, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.pick(params, 'InstanceId'), ['GroupListForMonitor', 'TopicListForMonitor', 'PartitionListForMonitor', 'GroupList'])]; - - case 1: - // 从分页数据,获取全量数据 - consumerGoup = _f.sent(); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_2__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: 'DescribeTopic' - }); - }, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.pick(params, 'InstanceId'), ['TopicList'])]; - - case 2: - topicList = _f.sent(); - consumerGoup[1] = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["flattenDeep"])(topicList); - console.log({ - consumerGoup: consumerGoup, - topicList: topicList - }); - this.consumerGroupCache[InstanceId] = consumerGoup; - _f.label = 3; - - case 3: - GroupList = consumerGoup[0], TopicList = consumerGoup[1], PartitionList = consumerGoup[2], GroupDetailList = consumerGoup[3]; // 无重复数组 - - TopicList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniqBy(TopicList, function (item) { - return item.TopicId; - }); - GroupList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniqBy(GroupList, function (item) { - return item.GroupName; - }); - PartitionList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniqBy(PartitionList, function (item) { - return item.PartitionId; - }); - GroupDetailList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniqBy(GroupDetailList, function (item) { - return item.ConsumerGroupName; - }); - SubscribedInfos = ((_a = GroupDetailList.find(function (d) { - return d.ConsumerGroupName === groupname; - })) === null || _a === void 0 ? void 0 : _a.SubscribedInfo) || []; - partitions = ((_c = (_b = SubscribedInfos.find(function (sub) { - return sub.TopicId === topicid; - })) === null || _b === void 0 ? void 0 : _b.Partition) === null || _c === void 0 ? void 0 : _c.map(function (p) { - var _a; - - return _a = {}, _a[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].partition] = p, _a; - })) || []; - return [2 - /*return*/ - , { - GroupList: GroupList, - TopicList: SubscribedInfos.length > 0 ? SubscribedInfos.map(function (_a) { - var TopicId = _a.TopicId, - TopicName = _a.TopicName; - return { - TopicId: TopicId, - TopicName: TopicName - }; - }) : TopicList, - PartitionList: partitions.length > 0 ? partitions : PartitionList - }]; - } - }); - }); - }; - - CKFKADatasource.prototype.formatTopicVarDisplay = function (topic, displayTpl, topicAlias) { - var _this = this; - - if (displayTpl) { - return displayTpl.replace(/\$\{(\w+)\}/g, function (a, b) { - if (!b || !_this.TopicAliasList.includes(b)) { - return ''; - } - - return _this.getAliasValue(topic, b); - }); - } - - return this.getAliasValue(topic, topicAlias); - }; // 查询指标下的数据 - - - CKFKADatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - var topicalias, groupname, topicid, result, display, TopicList, GroupList, PartitionList, rs; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - topicalias = query.topicalias, groupname = query.groupname, topicid = query.topicid; - return [4 - /*yield*/ - , this.getConsumerGroups(region, { - InstanceId: instance.InstanceId, - groupname: groupname, - topicid: topicid - })]; - - case 1: - result = _a.sent(); - display = query.display; - TopicList = result.TopicList, GroupList = result.GroupList, PartitionList = result.PartitionList; - topicalias = this.TopicAliasList.includes(topicalias) ? topicalias : this.templateQueryIdMap.topicId; - rs = { - GroupList: GroupList.map(function (group) { - group._InstanceAliasValue = group.GroupName; - return { - text: group.GroupName, - value: group[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].groupName] - }; - }), - TopicList: TopicList.map(function (topic) { - var topicAlias = _this.formatTopicVarDisplay(topic, display, topicalias); - - topic._InstanceAliasValue = topicAlias || topic[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].topicId]; - return { - text: topicAlias || topic[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].topicId], - value: topic[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].topicId], - TopicName: topic.TopicName - }; - }), - PartitionList: PartitionList.map(function (par) { - par._InstanceAliasValue = par[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].partition]; - return { - text: par[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].partition], - value: par[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].partition] - }; - }) - }; - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.TopicList, TopicList)]; - - case 2: - _a.sent(); - - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.GroupList, GroupList)]; - - case 3: - _a.sent(); - - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.PartitionList, PartitionList)]; - - case 4: - _a.sent(); // console.log({ res1, res2, res3 }); - // console.log({rs}); - // 根据action返回指定的维度数据列表 - - - switch (action) { - case 'DescribeTopicList': - return [2 - /*return*/ - , rs.TopicList]; - - case 'DescribeGroup': - return [2 - /*return*/ - , rs.GroupList]; - - case 'DescribePartion': - return [2 - /*return*/ - , rs.PartitionList]; - - default: - return [2 - /*return*/ - , []]; - } - - return [2 - /*return*/ - ]; - } - }); - }); - }; - - return CKFKADatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_3__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CKFKADatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/ckafka/query.ts": -/*!***********************************************!*\ - !*** ./datasource/tc_monitor/ckafka/query.ts ***! - \***********************************************/ -/*! exports provided: CKAFKAQueryCtrl, scfQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKAQueryCtrl", function() { return CKAFKAQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scfQuery", function() { return scfQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ckafka/query_def.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var ExtraFields = [{ - label: 'ConsumerGroup', - field: 'consumerGroup' -}, { - label: 'TopicId', - field: 'topicId' -}, { - label: 'Partition', - field: 'partition' -}]; - -var CKAFKAQueryCtrl = -/** @class */ -function () { - CKAFKAQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function CKAFKAQueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.CKAFKAQueryDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CKAFKAQueryDescriptor"]; - }; - - $scope.getDropdown = function (field) { - switch (field) { - default: - return []; - } - }; - - $scope.onInstanceChange = function (n, o) { - if (Object(_common_utils__WEBPACK_IMPORTED_MODULE_2__["isTargetEqual"])(n, o, 'LoadBalancerId')) return; - $scope.target.consumerGroup = ''; - $scope.target.topicId = ''; - $scope.target.topicName = ''; - $scope.target.partition = ''; - }; - - $scope.getExtraFields = function () { - return ExtraFields.filter(function (item) { - var _a; - - return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}); - }); - }; - - $scope.getInstanceId = function () { - var instance = $scope.target.instance; - instance = $scope.datasource.getServiceFn('ckafka', 'getVariable')(instance); - if (Array.isArray(instance)) instance = instance[0]; - - if (!instance) { - return ''; - } - - try { - instance = JSON.parse(instance).InstanceId; - } catch (error) {// console.log(); - } - - return instance; - }; - - $scope.getExtraDropdown = function (target, field) { - return __awaiter(_this, void 0, void 0, function () { - var InstanceId, fetcher, region, res, TopicList, GroupList, PartitionList, data; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - InstanceId = $scope.getInstanceId(); - fetcher = $scope.datasource.getServiceFn('ckafka', 'getConsumerGroups'); - region = $scope.datasource.getServiceFn('ckafka', 'getVariable')(target.region); - return [4 - /*yield*/ - , fetcher(region, { - InstanceId: InstanceId, - groupname: target.consumerGroup, - topicid: target.topicId - })]; - - case 1: - res = _a.sent(); - TopicList = res.TopicList, GroupList = res.GroupList, PartitionList = res.PartitionList; - data = { - GroupList: GroupList.map(function (group) { - group._InstanceAliasValue = group.GroupName; - return { - text: group.GroupName, - value: JSON.stringify(group) - }; - }), - TopicList: TopicList.map(function (topic) { - topic._InstanceAliasValue = topic[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].topicId]; - return { - text: topic[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].topicId], - value: JSON.stringify(topic) // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去 - - }; - }), - PartitionList: PartitionList.map(function (par) { - par._InstanceAliasValue = par[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].partition]; - return { - text: String(par[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].partition]), - value: JSON.stringify(par) - }; - }) - }; - - switch (field) { - case 'consumerGroup': - return [2 - /*return*/ - , data.GroupList]; - - case 'topicId': - return [2 - /*return*/ - , data.TopicList]; - - case 'partition': - return [2 - /*return*/ - , data.PartitionList]; - } - - return [2 - /*return*/ - ]; - } - }); - }); - }; - - $scope.init(); - } - - return CKAFKAQueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n
\n"; -function scfQuery() { - return { - template: template, - controller: CKAFKAQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=', - instance: '=' - }, - link: function link(scope, element, attrs) { - scope.$watch('target.instance', function (newValue, oldValue) { - var _a; - - (_a = scope.onInstanceChange) === null || _a === void 0 ? void 0 : _a.call(scope, newValue, oldValue); - }); - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('ckafkaQuery', scfQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/ckafka/query_def.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/ckafka/query_def.ts ***! - \***************************************************/ -/*! exports provided: CKAFKAQueryDescriptor, default, CKAFKAInstanceAliasList, CKAFKATopicAliasList, CKAFKAInvalidDemensions, templateQueryIdMap, keyInStorage, queryMonitorExtraConfg, CKAFKAGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKAQueryDescriptor", function() { return CKAFKAQueryDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKAInstanceAliasList", function() { return CKAFKAInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKATopicAliasList", function() { return CKAFKATopicAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKAInvalidDemensions", function() { return CKAFKAInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKAGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); - -var CKAFKAQueryDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputnumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100', - link: '', - type: 'inputnumber', - min: 1, - max: 100 -}, { - key: 'InstanceId', - enDescriptor: 'InstanceId', - cnDescriptor: '按照实例ID过滤', - link: '', - type: 'input' -}, { - key: 'SearchWord', - enDescriptor: 'SearchWord', - cnDescriptor: '按照实例名称过滤,支持模糊查询', - link: '', - type: 'input' -}, { - key: 'TagKey', - enDescriptor: 'TagKey', - cnDescriptor: '匹配标签key值', - link: '', - type: 'input' -}, { - key: 'Status', - enDescriptor: 'Status', - cnDescriptor: '实例的状态,不填默认返回全部', - link: '', - type: 'select', - multiple: true, - list: [{ - text: '创建中', - value: 0 - }, { - text: '运行中', - value: 1 - }, { - text: '删除中', - value: 2 - }] -}]; -var CKAFKA_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - topicId: '', - topicName: '', - consumerGroup: '', - partition: '', - queries: { - Offset: 0, - Limit: 10, - Status: [], - InstanceId: '', - SearchWord: '', - TagKey: '' - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} - -var CKAFKAInstanceAliasList = ['InstanceId', 'InstanceName']; -var CKAFKATopicAliasList = ['TopicId', 'TopicName']; // 保存在模板变量value中的key - -var templateQueryIdMap = { - instance: 'InstanceId', - topicId: 'TopicId', - groupName: 'GroupName', - partition: 'PartitionId' -}; // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key - -var CKAFKAInvalidDemensions = new Proxy({ - topicId: 'TopicId', - topicName: 'TopicName', - consumerGroup: 'GroupName', - partition: 'PartitionId' -}, { - get: function get(obj, prop) { - if (String(prop).toLocaleLowerCase() === 'instanceid') return 'InstanceId'; - return obj[prop]; - } -}); // 需要缓存到storage的内容的key列表 - -var keyInStorage = { - TopicList: 'TopicList', - GroupList: 'GroupList', - PartitionList: 'PartitionList' -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - TopicId: { - dim_KeyInStorage: keyInStorage.TopicList, - dim_KeyInTarget: 'topicId', - dim_KeyInMap: templateQueryIdMap.topicId - }, - // topicName和topicId是同一个storage中的source,所以根据topicId帅选 - TopicName: { - dim_KeyInStorage: keyInStorage.TopicList, - dim_KeyInTarget: 'topicId', - dim_KeyInMap: templateQueryIdMap.topicId - }, - GroupName: { - dim_KeyInStorage: keyInStorage.GroupList, - dim_KeyInTarget: 'consumerGroup', - dim_KeyInMap: templateQueryIdMap.groupName - }, - PartitionId: { - dim_KeyInStorage: keyInStorage.PartitionList, - dim_KeyInTarget: 'partition', - dim_KeyInMap: templateQueryIdMap.partition - } -}; -/* harmony default export */ __webpack_exports__["default"] = (CKAFKA_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/clb/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/clb/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/clb/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; // Namespace = namespace; - - - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["InstanceAliasList"]; - _this.ListenerAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["LOADBALANCEListenerAliasList"]; - _this.ServerAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["LOADBALANCEServerAliasList"]; - _this.CandiateDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CANDIATEDIMENSIONS"]; // InvalidDimensions = LOADBALANCEVALIDDIMENSIONS; - - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - // InstanceReqConfig = { - // service: 'clb', - // action: 'DescribeLoadBalancers', - // responseField: 'LoadBalancerSet', - // }; - - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"]; - return _this; - } // getFilterDropdown({ field }) { - // return super.getRegions(); - // } - - - DCDatasource.prototype.getInvalidDimensions = function (selfIns, tagret) { - if (selfIns.service === 'lbPrivate' || selfIns.service === 'lbPublic' && tagret.servers) return __assign(__assign({}, _query_def__WEBPACK_IMPORTED_MODULE_0__["LOADBALANCEVALIDDIMENSIONS"]), { - vpcId: 'NumericalVpcId' - }); - return _query_def__WEBPACK_IMPORTED_MODULE_0__["LOADBALANCEVALIDDIMENSIONS"]; - }; - - DCDatasource.prototype.getInstanceReqConfig = function (selfIns) { - var res = { - service: 'clb', - action: 'DescribeLoadBalancers', - responseField: 'LoadBalancerSet' - }; - - if (selfIns.service === 'lbPrivate' || selfIns.service === 'loadBalance') { - res.interceptor = { - request: function request(param) { - return __assign(__assign({}, param), { - LoadBalancerType: 'INTERNAL' - }); - } - }; - } - - if (selfIns.service === 'lbPublic') { - res.interceptor = { - request: function request(param) { - return __assign(__assign({}, param), { - LoadBalancerType: 'OPEN' - }); - } - }; - } - - return res; - }; - - DCDatasource.prototype.getListenerList = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, instanceId, serviceInfo, res, rs; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - region = params.region, instanceId = params.instanceId; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'clb'); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: 'DescribeListeners' - }); - }, { - LoadBalancerId: instanceId - }, 'Listeners')]; - - case 1: - res = _a.sent(); - rs = res[0]; - return [2 - /*return*/ - , rs]; - } - }); - }); - }; - - DCDatasource.prototype.formatVariableDisplay = function (data, displayTpl, alias, aliasList) { - var _this = this; - - if (displayTpl) { - return displayTpl.replace(/\$\{(\w+)\}/g, function (a, b) { - if (!b || !aliasList.includes(b)) { - return ''; - } - - return _this.getAliasValue(data, b); - }); - } - - return this.getAliasValue(data, alias); - }; - - DCDatasource.prototype.getServerList = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, instanceId, listenerId, serviceInfo, res, Listeners, serversList; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - region = params.region, instanceId = params.instanceId, listenerId = params.listenerId; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'clb'); - return [4 - /*yield*/ - , this.doRequest({ - url: this.url + serviceInfo.path, - data: { - LoadBalancerId: instanceId, - ListenerIds: [listenerId] - } - }, serviceInfo.service, { - region: region, - action: 'DescribeTargets' - })]; - - case 1: - res = _a.sent(); - Listeners = res.Listeners; - serversList = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.reduce(Listeners, function (prev, item) { - var Rules = item.Rules, - Targets = item.Targets; - - if (!lodash__WEBPACK_IMPORTED_MODULE_2___default.a.isEmpty(Rules)) { - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.concat(prev, lodash__WEBPACK_IMPORTED_MODULE_2___default.a.flatten(lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(Rules, function (elem) { - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.isEmpty(elem.Targets) ? [] : elem.Targets; - }))); - } - - if (!lodash__WEBPACK_IMPORTED_MODULE_2___default.a.isEmpty(Targets)) { - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.concat(prev, Targets); - } - - return prev; - }, []); - return [2 - /*return*/ - , serversList]; - } - }); - }); - }; - - DCDatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - var display, rs, listeneralias_1, result, listenerid, serverprivateip, serveralias, serverPrivateIp_1, serversList, serverAlias_1, result; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - display = query.display; - if (!(action === 'DescribeListeners')) return [3 - /*break*/ - , 3]; - return [4 - /*yield*/ - , this.getListenerList({ - region: region, - instanceId: instance[this.templateQueryIdMap.instance] - })]; - - case 1: - rs = _a.sent(); - listeneralias_1 = query.listeneralias; - listeneralias_1 = this.ListenerAliasList.includes(listeneralias_1) ? listeneralias_1 : this.templateQueryIdMap.listener; - result = rs.flatMap(function (o) { - var listenAlias = _this.formatVariableDisplay(o, display, listeneralias_1, _this.ListenerAliasList); - - var lisId = o[_this.templateQueryIdMap.listener]; - o._InstanceAliasValue = listenAlias || lisId; // if (!o[listeneralias]) return []; - - return { - text: listenAlias || lisId, - value: lisId - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.listener, rs)]; - - case 2: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 3: - if (!(action === 'DescribeServer' || action === 'DescribeServerPort')) return [3 - /*break*/ - , 6]; - listenerid = query.listenerid, serverprivateip = query.serverprivateip, serveralias = query.serveralias; - serverPrivateIp_1 = this.getVariable(serverprivateip); - return [4 - /*yield*/ - , this.getServerList({ - region: region, - instanceId: instance[this.templateQueryIdMap.instance], - listenerId: this.getVariable(listenerid) - })]; - - case 4: - serversList = _a.sent(); - serverAlias_1 = this.ServerAliasList.includes(serveralias) ? serveralias : this.templateQueryIdMap.servers; - result = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.chain(serversList).filter(function (item) { - if (action === 'DescribeServer') { - return true; - } - - return serverPrivateIp_1 === lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(item, 'PrivateIpAddresses.0'); - }).map(function (item) { - var alias = _this.formatVariableDisplay(item, display, serverAlias_1, _this.ServerAliasList); - - var id = item[_this.templateQueryIdMap.servers][0]; - item._InstanceAliasValue = alias || id; - return action === 'DescribeServer' ? { - text: alias || id, - value: id - } : { - text: "".concat(lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(item, 'Port')), - value: lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(item, 'Port') - }; - }).value(); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.servers, serversList)]; - - case 5: - _a.sent(); - - return [2 - /*return*/ - , action === 'DescribeServer' ? result : lodash__WEBPACK_IMPORTED_MODULE_2___default.a.uniqBy(result, 'text')]; - - case 6: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/clb/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/clb/query.ts ***! - \********************************************/ -/*! exports provided: QueryCtrl, sQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/clb/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - -var QueryCtrl = -/** @class */ -function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.LOADBALANCEFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_2__["LOADBALANCEFieldsDescriptor"]; - $scope.serversList = []; - }; - - $scope.onFieldChange = function (field) { - $scope.onRefresh(); - }; - - $scope.onInstanceChange = function (n, o) { - if (Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["isTargetEqual"])(n, o, 'InstanceId')) return; - $scope.target.listener = ''; - $scope.target.servers = ''; - $scope.target.serverPort = ''; - }; - - $scope.getVariableId = function (data, type) { - var variableData = data; - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])(_query_def__WEBPACK_IMPORTED_MODULE_2__["namespace"]); - variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData); - - if (!variableData) { - return ''; - } - - try { - variableData = JSON.parse(variableData)[_query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"][type]]; - } catch (error) {// console.log(); - } - - return variableData; - }; - - $scope.getExtraDropdown = function (target) { - return __awaiter(_this, void 0, void 0, function () { - var instance, service, instanceId, region, rs, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - instance = $scope.target.instance; - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])(_query_def__WEBPACK_IMPORTED_MODULE_2__["namespace"]); - instanceId = $scope.getVariableId(instance, 'instance'); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, 'getListenerList')({ - region: region, - instanceId: instanceId - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"].listener]; - return { - text: o[_query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"].listener], - value: JSON.stringify(o) - }; - }); - return [2 - /*return*/ - , result]; - } - }); - }); - }; - - $scope.getServersDropdown = function (target) { - return __awaiter(_this, void 0, void 0, function () { - var _a, instance, listener, service, instanceId, listenerId, region, serversList, res; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = $scope.target, instance = _a.instance, listener = _a.listener; - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])(_query_def__WEBPACK_IMPORTED_MODULE_2__["namespace"]); - instanceId = $scope.getVariableId(instance, 'instance'); - listenerId = $scope.getVariableId(listener, 'listener'); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, 'getServerList')({ - region: region, - instanceId: instanceId, - listenerId: listenerId - })]; - - case 1: - serversList = _b.sent(); - $scope.serversList = serversList; - res = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["chain"])(serversList).map(function (item) { - item._InstanceAliasValue = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(item, 'PrivateIpAddresses.0'); - return { - text: Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(item, 'PrivateIpAddresses.0'), - value: JSON.stringify(item) - }; - }).uniqBy('text').value(); - return [2 - /*return*/ - , res]; - } - }); - }); - }; - - $scope.getServerPortDropdown = function (target) { - return __awaiter(_this, void 0, void 0, function () { - var servers, serverPortList, serversSource_1; - return __generator(this, function (_a) { - servers = $scope.target.servers; - serverPortList = []; - - try { - serversSource_1 = JSON.parse(servers); - serverPortList = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["chain"])($scope.serversList).filter(function (item) { - return Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(serversSource_1, 'PrivateIpAddresses.0') === Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(item, 'PrivateIpAddresses.0'); - }).map(function (item) { - item._InstanceAliasValue = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(item, 'Port'); - return { - text: "".concat(Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(item, 'Port')), - value: JSON.stringify(item) - }; - }).value(); - } catch (error) {} - - return [2 - /*return*/ - , serverPortList]; - }); - }); - }; - - $scope.init(); - } - - return QueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n"); -function sQuery() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - namespace: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - }, - link: function link(scope, element, attrs) { - scope.$watch('target.instance', function (newValue, oldValue) { - var _a; - - (_a = scope.onInstanceChange) === null || _a === void 0 ? void 0 : _a.call(scope, newValue, oldValue); - }); - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('clbQuery', sQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/clb/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/clb/query_def.ts ***! - \************************************************/ -/*! exports provided: default, LOADBALANCEFieldsDescriptor, InstanceAliasList, LOADBALANCEListenerAliasList, LOADBALANCEServerAliasList, LOADBALANCEVALIDDIMENSIONS, templateQueryIdMap, CANDIATEDIMENSIONS, queryMonitorExtraConfg, keyInStorage, queryEditorConfig, namespace, queryEditorName, GetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOADBALANCEFieldsDescriptor", function() { return LOADBALANCEFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOADBALANCEListenerAliasList", function() { return LOADBALANCEListenerAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOADBALANCEServerAliasList", function() { return LOADBALANCEServerAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOADBALANCEVALIDDIMENSIONS", function() { return LOADBALANCEVALIDDIMENSIONS; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CANDIATEDIMENSIONS", function() { return CANDIATEDIMENSIONS; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/LOADBALANCE'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'loadBalanceQuery'; -var ForwardTypes = [{ - text: '通用的负载均衡', - value: 1 -}, { - text: '传统的负载均衡', - value: 0 -}]; -var OrderBy = [{ - text: 'LoadBalancerName', - value: 'LoadBalancerName' -}, { - text: 'CreateTime', - value: 'CreateTime' -}, { - text: 'Domain', - value: 'Domain' -}, { - text: 'LoadBalancerType', - value: 'LoadBalancerType' -}]; -var OrderType = [{ - text: '升序', - value: 0 -}, { - text: '降序', - value: 1 -}]; -var WithRs = [{ - text: '没有绑定后端服务', - value: 0 -}, { - text: '绑定后端服务', - value: 1 -}, { - text: '查询全部', - value: -1 -}]; -var LOADBALANCEFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1', - link: '', - type: 'inputNumber', - min: 1 -}, { - key: 'LoadBalancerIds', - enDescriptor: 'LoadBalancer ID', - cnDescriptor: '实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'LoadBalancerName', - enDescriptor: 'LoadBalancer Name', - cnDescriptor: '实例名称', - link: '', - type: 'input' -}, { - key: 'Forward', - enDescriptor: 'Forward', - cnDescriptor: '负载均衡实例类型', - link: '', - type: 'select', - list: ForwardTypes -}, { - key: 'Domain', - enDescriptor: 'Domain', - cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义', - link: '', - type: 'input' -}, { - key: 'LoadBalancerVips', - enDescriptor: 'LoadBalancer Vips', - cnDescriptor: '负载均衡实例的 VIP 地址', - link: '', - type: 'inputMulti' -}, { - key: 'BackendPrivateIps', - enDescriptor: 'BackendPrivate Ips', - cnDescriptor: '负载均衡绑定的后端服务的内网 IP', - link: '', - type: 'inputMulti' -}, { - key: 'BackendPublicIps', - enDescriptor: 'BackendPublic Ips', - cnDescriptor: '负载均衡绑定的后端服务的外网 IP', - link: '', - type: 'inputMulti' -}, { - key: 'ProjectId', - enDescriptor: 'Project ID', - cnDescriptor: '负载均衡实例所属的项目 ID', - link: '', - type: 'inputNumber' -}, { - key: 'VpcId', - enDescriptor: 'Vpc ID', - cnDescriptor: '负载均衡实例所属私有网络', - link: '', - type: 'input' -}, { - key: 'SecurityGroup', - enDescriptor: 'Security Group', - cnDescriptor: '安全组ID', - link: '', - type: 'input' -}, { - key: 'MasterZone', - enDescriptor: 'Master Zone', - cnDescriptor: '主可用区ID', - link: '', - type: 'input' -}, { - key: 'WithRs', - enDescriptor: 'WithRs', - cnDescriptor: '负载均衡是否绑定后端服务', - link: '', - type: 'select', - list: WithRs -}, { - key: 'OrderBy', - enDescriptor: 'OrderBy', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: OrderBy -}, { - key: 'OrderType', - enDescriptor: 'OrderByType', - cnDescriptor: '排序方式', - link: '', - type: 'select', - list: OrderType -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685', - namespace: namespace, - fieldDescriptor: LOADBALANCEFieldsDescriptor -}; -var LBFields = { - LoadBalancerIds: [], - Forward: undefined, - LoadBalancerName: '', - Domain: '', - LoadBalancerVips: [], - BackendPublicIps: [], - BackendPrivateIps: [], - Limit: 20, - Offset: 0, - ProjectId: undefined, - WithRs: {}, - VpcId: '', - SecurityGroup: '', - MasterZone: '', - OrderBy: {}, - OrderType: {} -}; -var LOADBALANCE_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'LoadBalancerId', - Port: '', - Protocol: '', - listener: '', - servers: '', - serverPort: '', - // listenerAlias: 'ListenerId', - queries: LBFields -}; // function GetInstanceQueryParams(queries: any = {}) { -// const params: any = {}; -// if (!_.isEmpty(queries)) { -// params.Limit = _.get(queries, 'Limit', 20) || 20; -// params.Offset = _.get(queries, 'Offset', 0) || 0; -// queries = _.omit(queries, ['Offset', 'Limit']); -// _.forEach(queries, (item: any, key) => { -// if (_.isArray(item)) { -// item = _.compact(item); -// if (item.length > 0) { -// params[key] = _.uniq(item); -// } -// } else if (_.isObject(item)) { -// if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) { -// params[key] = _.get(item, 'value'); -// } -// } else if (_.isNumber(item) || !_.isEmpty(item)) { -// params[key] = item; -// } -// }); -// } -// return params; -// } - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false); -} - -var InstanceAliasList = ['LoadBalancerId', 'LoadBalancerName', 'LoadBalancerVips']; -var LOADBALANCEListenerAliasList = ['ListenerId', 'ListenerName', 'Port']; -var LOADBALANCEServerAliasList = ['PrivateIpAddresses', 'InstanceId']; -var LOADBALANCEVALIDDIMENSIONS = { - vip: 'LoadBalancerVips', - // vpcId: 'NumericalVpcId', - loadBalancerPort: 'Port', - protocol: 'Protocol', - lanIp: 'PrivateIpAddresses', - port: 'ServerPort' -}; // 对于ipv6类型,vip应该取AddressIPv6。 - -var CANDIATEDIMENSIONS = { - LoadBalancerVips: 'AddressIPv6' -}; // dimensionObject[item] = { Name: item, Value: '' }; -// const LOADBALANCE_INSTANCE_DIMENSIONOBJECTS = { -// vip: { Name: 'vip', Value: '' }, -// }; -// const LOADBALANCE_LISTENER_DIMENSIONOBJECTS = { -// vip: { Name: 'vip', Value: '' }, -// loadBalancerPort: { Name: 'loadBalancerPort', Value: '' }, -// protocol: { Name: 'protocol', Value: '' }, -// }; - -var templateQueryIdMap = { - instance: 'LoadBalancerId', - listener: 'ListenerId', - servers: 'PrivateIpAddresses', - port: 'Port' -}; // 需要缓存到storage的内容的key列表 - -var keyInStorage = { - listener: 'ListenerList', - servers: 'ServersList' -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - Port: { - dim_KeyInStorage: keyInStorage.listener, - dim_KeyInTarget: 'listener', - dim_KeyInMap: templateQueryIdMap.listener - }, - Protocol: { - dim_KeyInStorage: keyInStorage.listener, - dim_KeyInTarget: 'listener', - dim_KeyInMap: templateQueryIdMap.listener - }, - PrivateIpAddresses: { - dim_KeyInStorage: keyInStorage.servers, - dim_KeyInTarget: 'servers', - dim_KeyInMap: templateQueryIdMap.servers - }, - ServerPort: { - dim_KeyInStorage: keyInStorage.servers, - dim_KeyInTarget: 'serverPort', - dim_KeyInIns: 'Port', - dim_KeyInMap: templateQueryIdMap.port - } -}; -/* harmony default export */ __webpack_exports__["default"] = (LOADBALANCE_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/cls/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/cls/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cls/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CLSInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CLSInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'cls', - action: 'DescribeTopics', - responseField: 'Topics' - }; - return _this; - } // getFilterDropdown({ field }) { - // return super.getRegions(); - // } - - - DCDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_3__["t"])(value) - }; - })); - }; // async getInstances(region, params = {}) { - // const superRes = await super.getInstances(region, params); - // console.log({ superRes }); - // } - - - DCDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item); - }))]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cls/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/cls/query.ts ***! - \********************************************/ -/*! exports provided: QueryCtrl, sQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cls/query_def.ts"); - - - -var QueryCtrl = -/** @class */ -function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.GSEFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CLSFilterFieldsDescriptor"]; - }; - - $scope.init(); - } - - return QueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n"; -function sQuery() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/cls/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/cls/query_def.ts ***! - \************************************************/ -/*! exports provided: default, CLSFilterFieldsDescriptor, templateQueryIdMap, CLSInstanceAliasList, CLSInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, modifyDimensons, CLSGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CLSFilterFieldsDescriptor", function() { return CLSFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CLSInstanceAliasList", function() { return CLSInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CLSInvalidDemensions", function() { return CLSInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CLSGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); - - -var namespace = 'QCE/CLS'; -var queryEditorName = 'clsQuery'; -var CLSInvalidDemensions = {// instanceid: 'TopicId', -}; // 需和文件名对应 - -var CLSInstanceAliasList = ['TopicId', 'TopicName']; -var templateQueryIdMap = { - instance: 'TopicId' -}; // 需要缓存到storage的内容的key列表 -// const keyInStorage = { -// fleet: 'fleet', // 实例队列 -// queue: 'queueName', // 会话队列 -// }; - -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ -// const queryMonitorExtraConfg = { -// FleetId: { -// dim_KeyInStorage: keyInStorage.fleet, -// dim_KeyInTarget: 'FleetId', -// dim_KeyInMap: templateQueryIdMap.FleetId, -// }, -// Name: { -// dim_KeyInStorage: keyInStorage.queue, -// dim_KeyInTarget: 'Name', -// dim_KeyInMap: templateQueryIdMap.Name, -// }, -// }; -// select类型需要注意是{},multi后缀是[],dropdown是'' - -var CLSFilterFields = { - Limit: 20, - Offset: 0, - topicName: [], - topicId: [], - logsetName: [], - logsetId: [], - tagKey: [], - 'tag:tagKey': [], - storageType: {} -}; -var CLSFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'topicName', - enDescriptor: 'topicName', - cnDescriptor: '日志主题名称', - link: '', - type: 'inputMulti' -}, { - key: 'topicId', - enDescriptor: 'topicId', - cnDescriptor: '日志主题ID', - link: '', - type: 'inputMulti' -}, { - key: 'logsetName', - enDescriptor: 'logsetName', - cnDescriptor: '日志集名称', - link: '', - type: 'inputMulti' -}, { - key: 'logsetId', - enDescriptor: 'logsetId', - cnDescriptor: '日志集ID', - link: '', - type: 'inputMulti' -}, { - key: 'tagKey', - enDescriptor: 'tagKey', - cnDescriptor: '标签键', - link: '', - type: 'inputMulti' -}, { - key: 'tag:tagKey', - enDescriptor: 'tag - tagKey', - cnDescriptor: '标签键值对', - link: '', - type: 'inputMulti' -}, { - key: 'storageType', - enDescriptor: 'storageType', - cnDescriptor: '日志主题的存储类型', - link: '', - type: 'select', - list: [{ - text: '实时存储', - value: 'hot' - }, { - text: '离线存储', - value: 'cold' - }] -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/614/56454', - namespace: namespace, - fieldDescriptor: CLSFilterFieldsDescriptor -}; -var CLS_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'TopicId', - uin: '', - queries: CLSFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} // regions for dropdown - - -var regionSupported = [{ - value: 'ap-bangkok' -}, { - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, { - value: 'ap-chongqing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-jakarta' -}, { - value: 'ap-mumbai' -}, { - value: 'ap-seoul' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-shanghai' -}, { - value: 'ap-shanghai-fsi' -}, { - value: 'ap-shenzhen-fsi' -}, { - value: 'ap-singapore' -}, { - value: 'ap-tokyo' -}, { - value: 'eu-frankfurt' -}, { - value: 'eu-moscow' -}, { - value: 'na-ashburn' -}, { - value: 'na-siliconvalley' -}, { - value: 'na-toronto' -}]; - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - // item.Dimensions = item.Dimensions.map((v) => CLSInvalidDemensions[v] || v); - item.Dimensions = ['uin', 'TopicId']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (CLS_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/cmq/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/cmq/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cmq/query_def.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - -var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; - - - - -var CmqDatasource = -/** @class */ -function (_super) { - __extends(CmqDatasource, _super); - - function CmqDatasource() { - var _this = _super !== null && _super.apply(this, arguments) || this; - - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["InvalidDemensions"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["InstanceAliasList"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"]; - _this.InstanceReqConfig = { - service: 'cmq', - action: 'DescribeQueueDetail', - responseField: 'QueueSet' - }; - return _this; - } - - CmqDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawMetric; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawMetric = _a.sent(); - return [2 - /*return*/ - , rawMetric.map(function (metric) { - var dims = metric.Dimensions[0].Dimensions; - dims = Array.from(new Set(__spreadArray(__spreadArray([], dims, true), ['queueId', 'queueName'], false))); - metric.Dimensions[0].Dimensions = dims; - return metric; - })]; - } - }); - }); - }; - - return CmqDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_0__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CmqDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cmq/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/cmq/query.ts ***! - \********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cmq/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])('cmqQuery', { - fieldDescriptor: _query_def__WEBPACK_IMPORTED_MODULE_1__["InstanceQueryDescriptor"], - instanceDocUrl: 'https://cloud.tencent.com/document/api/406/42624', - namespace: 'QCE/CMQ' -}); - -/***/ }), - -/***/ "./datasource/tc_monitor/cmq/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/cmq/query_def.ts ***! - \************************************************/ -/*! exports provided: InstanceQueryDescriptor, InvalidDemensions, templateQueryIdMap, InstanceAliasList, GetInstanceQueryParams, default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceQueryDescriptor", function() { return InstanceQueryDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InvalidDemensions", function() { return InvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); - -var InstanceQueryDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 50 -}, { - key: 'QueueName', - enDescriptor: 'QueueName', - cnDescriptor: '精确匹配QueueName', - link: '', - type: 'input' -}, { - key: 'TagKey', - enDescriptor: 'TagKey', - cnDescriptor: '标签搜索', - link: '', - type: 'input' -}]; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key - - -var InvalidDemensions = { - queueId: 'QueueId', - queueName: 'QueueName' -}; -var templateQueryIdMap = { - instance: 'QueueName' -}; // 与名称挂钩的变量 - -var InstanceAliasList = ['QueueName', 'QueueId']; - // 界面状态模型,default - -/* harmony default export */ __webpack_exports__["default"] = ({ - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'QueueName', - queries: { - Offset: 0, - Limit: 20, - QueueName: '', - TagKey: '' - } -}); - -/***/ }), - -/***/ "./datasource/tc_monitor/cmq_topic/datasource.ts": -/*!*******************************************************!*\ - !*** ./datasource/tc_monitor/cmq_topic/datasource.ts ***! - \*******************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cmq_topic/query_def.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - -var CmqTopicDatasource = -/** @class */ -function (_super) { - __extends(CmqTopicDatasource, _super); - - function CmqTopicDatasource() { - var _this = _super !== null && _super.apply(this, arguments) || this; - - _this.Namespace = 'QCE/CMQTOPIC'; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_3__["InvalidDemensions"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_3__["InstanceAliasList"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"]; - _this.InstanceReqConfig = { - service: 'cmq', - action: 'DescribeTopicDetail', - responseField: 'TopicSet' - }; - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_3__["keyInStorage"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_3__["queryMonitorExtraConfg"]; - _this.extraMetricDims = ['subscriptionId']; // 多选 - - return _this; - } - - CmqTopicDatasource.prototype.fetchAllSubscription = function (region, params) { - return __awaiter(this, void 0, void 0, function () { - var serviceInfo, rs; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_0__["GetServiceAPIInfo"])(region, 'cmq'); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: 'DescribeSubscriptionDetail' - }); - }, params, 'SubscriptionSet')]; - - case 1: - rs = _a.sent(); - return [2 - /*return*/ - , rs[0]]; - } - }); - }); - }; - - CmqTopicDatasource.prototype.fetchMetricData = function (action, region, instance) { - return __awaiter(this, void 0, void 0, function () { - var result, _a, rs; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = action; - - switch (_a) { - case 'DescribeSubscriptionDetail': - return [3 - /*break*/ - , 1]; - } - - return [3 - /*break*/ - , 4]; - - case 1: - return [4 - /*yield*/ - , this.fetchAllSubscription(region, { - TopicName: instance.TopicName - })]; - - case 2: - result = _b.sent(); - rs = result.map(function (item) { - item._InstanceAliasValue = item.SubscriptionId; - return { - text: item.SubscriptionId, - value: item[_query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"].subscription] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__["default"].setExtraStorage(this.service, this.keyInStorage.subscriptionId, result)]; - - case 3: - _b.sent(); - - return [2 - /*return*/ - , rs]; - - case 4: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - CmqTopicDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawMetric; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawMetric = _a.sent(); - return [2 - /*return*/ - , rawMetric.map(function (metric) { - var dims = metric.Dimensions[0].Dimensions; - dims.push('topicId'); - - if (['NumOfNotify', 'NumOfSuccNotify'].includes(metric.MetricName)) { - dims.push('subscriptionId'); - } - - dims = Array.from(new Set(dims)); - metric.Dimensions[0].Dimensions = dims; - return metric; - })]; - } - }); - }); - }; - - return CmqTopicDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CmqTopicDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cmq_topic/query.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/cmq_topic/query.ts ***! - \**************************************************/ -/*! exports provided: CmqTopicQueryCtrl, scfQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CmqTopicQueryCtrl", function() { return CmqTopicQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scfQuery", function() { return scfQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cmq_topic/query_def.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - -var ExtraFields = [{ - label: 'Subscription(订阅)', - field: 'subscriptionId' -}]; - -var CmqTopicQueryCtrl = -/** @class */ -function () { - CmqTopicQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function CmqTopicQueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.InstanceQueryDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["InstanceQueryDescriptor"]; - }; - - $scope.getDropdown = function (field) { - switch (field) { - default: - return []; - } - }; // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } } - - - $scope.cacheMap = {}; - - $scope.getExtraFields = function () { - return ExtraFields.filter(function (item) { - var _a; - - return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}); - }); - }; - - $scope.getTopicName = function () { - var instance = $scope.target.instance; - instance = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(instance); - - if (!instance) { - return ''; - } - - try { - instance = JSON.parse(instance).TopicName; - } catch (error) {// console.log(); - } - - return instance; - }; - - $scope.onExtraFieldChange = function (field) { - $scope.onRefresh(); - }; - - $scope.getExtraDropdown = function (target, field) { - return __awaiter(_this, void 0, void 0, function () { - var TopicName, data, region, fetcher, datas; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(field === 'subscriptionId')) return [3 - /*break*/ - , 3]; - TopicName = $scope.getTopicName(); - data = $scope.cacheMap[TopicName]; - if (!!data) return [3 - /*break*/ - , 2]; - region = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(target.region); - fetcher = $scope.datasource.getServiceFn('cmqTopic', 'fetchAllSubscription'); - return [4 - /*yield*/ - , fetcher(region, { - TopicName: TopicName - })]; - - case 1: - datas = _a.sent(); - data = datas.map(function (item) { - item._InstanceAliasValue = item.SubscriptionId; - return { - text: item.SubscriptionId, - value: JSON.stringify(item) - }; - }); - _a.label = 2; - - case 2: - // 缓存 - $scope.cacheMap[TopicName] = data; - return [2 - /*return*/ - , data]; - - case 3: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - $scope.init(); - } - - return CmqTopicQueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n
\n"; -function scfQuery() { - return { - template: template, - controller: CmqTopicQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('cmqTopicQuery', scfQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/cmq_topic/query_def.ts": -/*!******************************************************!*\ - !*** ./datasource/tc_monitor/cmq_topic/query_def.ts ***! - \******************************************************/ -/*! exports provided: InstanceQueryDescriptor, InvalidDemensions, templateQueryIdMap, InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage, default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceQueryDescriptor", function() { return InstanceQueryDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InvalidDemensions", function() { return InvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); - -var InstanceQueryDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 50 -}, { - key: 'TopicName', - enDescriptor: 'TopicName', - cnDescriptor: '精确匹配TopicName', - link: '', - type: 'input' -}, { - key: 'TagKey', - enDescriptor: 'TagKey', - cnDescriptor: '标签搜索', - link: '', - type: 'input' -}]; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key - - -var InvalidDemensions = { - topicId: 'TopicId' -}; // 因为cmq那边,以TopciName为主键 - -var templateQueryIdMap = { - instance: 'TopicName', - subscription: 'SubscriptionId' -}; // 需要缓存到storage的内容的key列表 - -var keyInStorage = { - subscriptionId: 'subscriptionId' -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - subscriptionId: { - dim_KeyInStorage: keyInStorage.subscriptionId, - dim_KeyInTarget: 'subscriptionId', - dim_KeyInMap: templateQueryIdMap.subscription - } -}; // 与名称挂钩的变量 - -var InstanceAliasList = ['TopicName', 'TopicId']; - // 界面状态模型,default - -/* harmony default export */ __webpack_exports__["default"] = ({ - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'TopicName', - subscriptionId: '', - queries: { - Offset: 0, - Limit: 20, - TopicName: '', - TagKey: '' - } -}); - -/***/ }), - -/***/ "./datasource/tc_monitor/cos/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/cos/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - -var CosDatasource = -/** @class */ -function (_super) { - __extends(CosDatasource, _super); - - function CosDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.InvalidDimensions = {}; - _this.InstanceAliasList = ['BucketName']; - _this.templateQueryIdMap = { - instance: 'BucketName' - }; - _this.InstanceReqConfig = {}; // 不必要的配置 - - _this.cosURL = "/api/datasources/".concat(_this.instanceSettings.id, "/resources/tc_cos_list"); - return _this; - } - - CosDatasource.prototype.getInstances = function (region) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , this.backendSrv.datasourceRequest({ - url: this.cosURL, - method: 'GET', - params: { - region: region - }, - headers: { - 'Content-Type': 'application/json' - } - }).then(function (res) { - var data = res.data; - data = data || {}; - var Buckets = data.Buckets; - Buckets = Buckets || []; // name contains appid,see detail https://cloud.tencent.com/document/product/436/8291 - - return Buckets.map(function (item) { - return __assign(__assign({}, item), { - BucketName: item.Name, - bucket: item.Name, - appid: item.Name.split('-').slice(-1)[0] - }); - }); - })]; - }); - }); - }; - - CosDatasource.prototype.getVariableInstances = function (region) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , this.getInstances(region)]; - }); - }); - }; - - return CosDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_0__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CosDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cos/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/cos/query_def.ts ***! - \************************************************/ -/*! exports provided: InstanceAliasList, GetInstanceQueryParams, default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); - - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} // 与名称挂钩的变量 - - -var InstanceAliasList = ['BucketName']; - // 界面状态模型,default - -/* harmony default export */ __webpack_exports__["default"] = ({ - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'BucketName', - queries: {} -}); - -/***/ }), - -/***/ "./datasource/tc_monitor/cpm/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/cpm/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cpm/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CPMInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CPMInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'bm', - action: 'DescribeDevices', - responseField: 'DeviceInfoSet' - }; - _this.RegionMap = {}; - return _this; - } // 重写getRegion - - - DCDatasource.prototype.getRegions = function () { - var _this = this; - - return this.doRequest({ - url: this.url + '/bm' - }, 'bm', { - action: 'DescribeRegions', - region: 'ap-guangzhou' - }).then(function (response) { - // 缓存,后面获取可用区zone - _this.RegionMap = lodash__WEBPACK_IMPORTED_MODULE_3___default.a.keyBy(response.RegionInfoSet, 'Region'); - return lodash__WEBPACK_IMPORTED_MODULE_3___default.a.map(response.RegionInfoSet || [], function (item) { - return { - text: Object(_locale__WEBPACK_IMPORTED_MODULE_4__["t"])(item.Region), - value: item.Region - }; - }); - }); - }; - - DCDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item); - })]; - } - }); - }); - }; - - DCDatasource.prototype.getFilterDropdown = function (_a) { - var field = _a.field, - region = _a.region; - - if (field === 'DeviceClassCode') { - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'bm'); - return this.doRequest({ - url: this.url + serviceInfo.path - }, 'bm', { - region: region, - action: 'DescribeDeviceClass' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_3___default.a.map(response.DeviceClassSet || [], function (item) { - return { - text: item.DeviceClassCode, - value: item.DeviceClassCode - }; - }); - }); - } - - return []; - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cpm/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/cpm/query.ts ***! - \********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cpm/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/cpm/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/cpm/query_def.ts ***! - \************************************************/ -/*! exports provided: default, CPMFilterFieldsDescriptor, templateQueryIdMap, CPMInstanceAliasList, CPMInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, CPMGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMFilterFieldsDescriptor", function() { return CPMFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMInstanceAliasList", function() { return CPMInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMInvalidDemensions", function() { return CPMInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); - - -var namespace = 'QCE/CPM'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'cpmQuery'; -var CPMInvalidDemensions = { - instanceId: 'InstanceId' // uniqid: 'InstanceId', - -}; -var CPMInstanceAliasList = ['InstanceId', 'Name']; -var templateQueryIdMap = { - instance: 'InstanceId' -}; // select类型需要注意是{},multi后缀是[],dropdown是'' - -var CPMFilterFields = { - Limit: 20, - Offset: 0, - DeviceClassCode: '', - InstanceIds: [], - WanIps: [], - LanIps: [], - Alias: '', - VagueIp: '', - AutoRenewFlag: {}, - VpcId: '', - SubnetId: '', - DeviceType: {}, - IsLuckyDevice: {} -}; -var CPMFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'DeviceClassCode', - enDescriptor: 'DeviceClassCode', - cnDescriptor: '机型ID', - link: '', - type: 'dropdown' -}, { - key: 'InstanceIds', - enDescriptor: 'InstanceIds', - cnDescriptor: '设备ID数组', - link: '', - type: 'inputMulti' -}, { - key: 'WanIps', - enDescriptor: 'WanIps', - cnDescriptor: '外网IP数组', - link: '', - type: 'inputMulti' -}, { - key: 'LanIps', - enDescriptor: 'LanIps', - cnDescriptor: '内网IP数组', - link: '', - type: 'inputMulti' -}, { - key: 'Alias', - enDescriptor: 'Alias', - cnDescriptor: '设备名称', - link: '', - type: 'input' -}, { - key: 'VagueIp', - enDescriptor: 'VagueIp', - cnDescriptor: '模糊IP查询', - link: '', - type: 'input' -}, { - key: 'AutoRenewFlag', - enDescriptor: 'AutoRenewFlag', - cnDescriptor: '自动续费标志', - link: '', - type: 'select', - list: [{ - text: '不自动续费', - value: 0 - }, { - text: '自动续费', - value: 1 - }] -}, { - key: 'VpcId', - enDescriptor: 'VpcId', - cnDescriptor: '私有网络唯一ID', - link: '', - type: 'input' -}, { - key: 'SubnetId', - enDescriptor: 'SubnetId', - cnDescriptor: '子网唯一ID', - link: '', - type: 'input' -}, { - key: 'DeviceType', - enDescriptor: 'DeviceType', - cnDescriptor: '子网实例ID', - link: '', - type: 'select', - list: [{ - text: '计算型', - value: 'compute' - }, { - text: '标准型', - value: 'standard' - }, { - text: '存储型', - value: 'storage' - }] -}, { - key: 'IsLuckyDevice', - enDescriptor: 'IsLuckyDevice', - cnDescriptor: '竞价实例机器过滤', - link: '', - type: 'select', - list: [{ - text: '非竞价实例机器', - value: 0 - }, { - text: '竞价实例的机器', - value: 1 - }] -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/386/32904', - namespace: namespace, - fieldDescriptor: CPMFilterFieldsDescriptor -}; -var CPM_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: CPMFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false); -} - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['instanceId']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (CPM_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/cvm/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/cvm/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cvm/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - -var CVMDatasource = -/** @class */ -function (_super) { - __extends(CVMDatasource, _super); - - function CVMDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/CVM'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["CVMInstanceAliasList"]; - _this.InvalidDimensions = {}; - _this.templateQueryIdMap = { - instance: 'InstanceId' - }; - _this.InstanceReqConfig = { - service: 'cvm', - action: 'DescribeInstances', - responseField: 'InstanceSet' - }; - return _this; - } - - CVMDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(rawSet.map(function (item) { - if (Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["isValidMetric"])(item)) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["modifyDimensons"])(item); - } - - return null; - }))]; - } - }); - }); - }; - - CVMDatasource.prototype.getRegions = function () { - return this.doRequest({ - url: this.url + '/api', - data: { - Product: 'cvm' - } - }, 'api', { - action: 'DescribeRegions' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.RegionSet || [], function (item) { - return { - text: item.RegionName, - value: item.Region, - RegionState: item.RegionState - }; - }), function (item) { - return item.RegionState === 'AVAILABLE'; - }); - }); - }; - - CVMDatasource.prototype.getZones = function (region) { - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'api'); - return this.doRequest({ - url: this.url + serviceInfo.path, - data: { - Product: 'cvm' - } - }, serviceInfo.service, { - region: region, - action: 'DescribeZones' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.ZoneSet || [], function (item) { - return { - text: item.ZoneName, - value: item.Zone, - ZoneState: item.ZoneState, - Zone: item.Zone - }; - }), function (item) { - return item.ZoneState === 'AVAILABLE'; - }); - }); - }; - - return CVMDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_3__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CVMDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cvm/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/cvm/query.ts ***! - \********************************************/ -/*! exports provided: CVMQueryCtrl, cvmQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CVMQueryCtrl", function() { return CVMQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cvmQuery", function() { return cvmQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cvm/query_def.ts"); - - - -var CVMQueryCtrl = -/** @class */ -function () { - CVMQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function CVMQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.CVMFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CVMFilterFieldsDescriptor"]; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getDropdown = function (field) { - switch (field) { - case 'zone': - return $scope.getZones(); - - default: - return []; - } - }; - - $scope.getZones = function () { - if (!$scope.region) { - return []; - } - - return $scope.datasource.getZones('cvm', $scope.region); - }; - - $scope.init(); - } - - return CVMQueryCtrl; -}(); - - -var template = "\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n"; -function cvmQuery() { - return { - template: template, - controller: CVMQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('cvmQuery', cvmQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/cvm/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/cvm/query_def.ts ***! - \************************************************/ -/*! exports provided: default, CVMFilterFieldsDescriptor, CVMInstanceAliasList, isValidMetric, modifyDimensons, templateQueryIdMap, CVMGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CVMFilterFieldsDescriptor", function() { return CVMFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CVMInstanceAliasList", function() { return CVMInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CVMGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var instanceChargeTypes = [{ - text: '预付费', - value: 'PREPAID' -}, { - text: '后付费', - value: 'POSTPAID_BY_HOUR' -}, { - text: 'CDH付费', - value: 'CDHPAID' -}]; -var CVMFilterFields = { - zone: [], - 'project-id': [], - 'host-id': [], - 'vpc-id': [], - 'subnet-id': [], - 'instance-id': [], - 'security-group-id': [], - 'instance-name': [], - 'instance-charge-type': {}, - 'private-ip-address': [], - 'public-ip-address': [], - 'tag-key': [] -}; -var CVMFilterFieldsDescriptor = [{ - key: 'zone', - enDescriptor: 'Zone', - cnDescriptor: '可用区', - link: '', - type: 'dropdownmulti' -}, { - key: 'project-id', - enDescriptor: 'Project ID', - cnDescriptor: '项目ID', - link: 'https://cloud.tencent.com/document/api/378/4400', - type: 'inputNumbermulti' -}, { - key: 'host-id', - enDescriptor: 'CDH ID', - cnDescriptor: 'CDH ID', - link: 'https://cloud.tencent.com/document/product/416/19730', - type: 'inputmulti' -}, { - key: 'vpc-id', - enDescriptor: 'VPC ID', - cnDescriptor: 'VPC ID', - link: '', - type: 'inputmulti' -}, { - key: 'subnet-id', - enDescriptor: 'Subnet ID', - cnDescriptor: '子网ID', - link: '', - type: 'inputmulti' -}, { - key: 'instance-id', - enDescriptor: 'Instance ID', - cnDescriptor: '实例ID', - link: '', - type: 'inputmulti' -}, { - key: 'security-group-id', - enDescriptor: 'Security Group ID', - cnDescriptor: '安全组ID', - link: '', - type: 'inputmulti' -}, { - key: 'instance-name', - enDescriptor: 'Instance Name', - cnDescriptor: '实例名称', - link: '', - type: 'inputmulti' -}, { - key: 'tag-key', - enDescriptor: '标签简', - cnDescriptor: '标签简', - link: '', - type: 'inputmulti' -}, { - key: 'instance-charge-type', - enDescriptor: 'Instance Charge Type', - cnDescriptor: '实例计费模式', - link: '', - type: 'select', - list: instanceChargeTypes -}, { - key: 'private-ip-address', - enDescriptor: 'Private IP Address', - cnDescriptor: '实例主网卡的内网IP', - link: '', - type: 'inputmulti' -}, { - key: 'public-ip-address', - enDescriptor: 'Public IP Address', - cnDescriptor: '实例主网卡的公网IP,包含实例创建时自动分配的IP和实例创建后手动绑定的弹性IP', - link: '', - type: 'inputmulti' -}]; -var CVM_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: { - Limit: 20, - Offset: 0, - instanceIdsChecked: false, - filtersChecked: false, - InstanceIds: [''], - Filters: __assign({}, CVMFilterFields) - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - - if (queries.instanceIdsChecked) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.InstanceIds)) { - var InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.InstanceIds); - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).length > 0) { - params.InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).slice(0, 100); - } - } - } else if (queries.filtersChecked) { - var Filters_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) { - if (Filters_1.length > 9) { - return; - } - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5) - }); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5) - }); - } - } - }); - - if (Filters_1.length > 0) { - params.Filters = Filters_1; - } - } - } - - return params; -} - -var CVMInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses']; -var CVMValidMetricsT = ['CPUUsage', 'CpuLoadavg', 'Cpuloadavg5m', 'Cpuloadavg15m', 'BaseCpuUsage', 'GpuMemTotal', 'GpuMemUsage', 'GpuMemUsed', 'GpuPowDraw', 'GpuPowLimit', 'GpuPowUsage', 'GpuTemp', 'GpuUtil', 'LanOuttraffic', 'LanIntraffic', 'LanOutpkg', 'LanInpkg', 'WanOuttraffic', 'WanIntraffic', 'WanOutpkg', 'WanInpkg', 'AccOuttraffic', 'TcpCurrEstab', 'TimeOffset', 'MemUsed', 'MemUsage', 'CvmDiskUsage', 'BaseCpuUsage', 'VmDiskReadIops']; // const CVMInvalidDemensions = { -// 'vm_uuid': 'InstanceId', -// 'vmUuid': 'InstanceId', -// }; - -var templateQueryIdMap = { - instance: 'InstanceId' -}; - -function isValidMetric(metric) { - var CVMValidMetrics = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(CVMValidMetricsT, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper); - - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(CVMValidMetrics, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(metric.MetricName)) !== -1; -} - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['InstanceId']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (CVM_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/cynosdb_mysql/datasource.ts": -/*!***********************************************************!*\ - !*** ./datasource/tc_monitor/cynosdb_mysql/datasource.ts ***! - \***********************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cynosdb_mysql/query_def.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - // import { t } from '../../../locale'; - -var CYNOSDBMYSQLDatasource = -/** @class */ -function (_super) { - __extends(CYNOSDBMYSQLDatasource, _super); - - function CYNOSDBMYSQLDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CYNOSDBMYSQLInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CYNOSDBInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; - _this.checkKeys = _query_def__WEBPACK_IMPORTED_MODULE_0__["checkKeys"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'cynosdb', - action: 'DescribeInstances', - responseField: 'InstanceSet' - }; - return _this; - } - - CYNOSDBMYSQLDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item); - })]; - } - }); - }); - }; // getRegions() { - // return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) }))); - // } - - - CYNOSDBMYSQLDatasource.prototype.getRegions = function () { - return this.doRequest({ - url: this.url + '/api', - data: { - Product: 'cynosdbmysql' - } - }, 'api', { - action: 'DescribeRegions' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_1___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_1___default.a.map(response.RegionSet || [], function (item) { - return { - text: item.RegionName, - value: item.Region, - RegionState: item.RegionState - }; - }), function (item) { - return item.RegionState === 'AVAILABLE'; - }); - }); - }; // 仅对维度组合是InstanceId的指标,其他指标不支持 - - - CYNOSDBMYSQLDatasource.prototype.getDefaultInsObj = function (ins) { - var _a; - - return _a = {}, _a[_query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"].instance] = ins, _a; - }; - - return CYNOSDBMYSQLDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CYNOSDBMYSQLDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/cynosdb_mysql/query.ts": -/*!******************************************************!*\ - !*** ./datasource/tc_monitor/cynosdb_mysql/query.ts ***! - \******************************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cynosdb_mysql/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/cynosdb_mysql/query_def.ts": -/*!**********************************************************!*\ - !*** ./datasource/tc_monitor/cynosdb_mysql/query_def.ts ***! - \**********************************************************/ -/*! exports provided: default, cynosdbMysqlFilterFieldsDescriptor, templateQueryIdMap, CYNOSDBMYSQLInstanceAliasList, CYNOSDBInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, modifyDimensons, checkKeys, CYNOSDBMYSQLGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cynosdbMysqlFilterFieldsDescriptor", function() { return cynosdbMysqlFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CYNOSDBMYSQLInstanceAliasList", function() { return CYNOSDBMYSQLInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CYNOSDBInvalidDemensions", function() { return CYNOSDBInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkKeys", function() { return checkKeys; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CYNOSDBMYSQLGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - - -var namespace = 'QCE/CYNOSDB_MYSQL'; // 按照驼峰方式命名,和SERVICES保持一致,abcDeF会成为angular组件名字 - -var queryEditorName = 'cynosdbMysqlQuery'; -var cynosdbMysqlFilterFields = { - Limit: 20, - Offset: 0, - OrderBy: {}, - OrderByType: {}, - InstanceIds: [], - DbType: {} // Status: '', - -}; -var cynosdbMysqlFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 1000 -}, { - key: 'InstanceIds', - enDescriptor: 'InstanceIds', - cnDescriptor: '实例id列表', - link: '', - type: 'inputMulti' -}, { - key: 'OrderBy', - enDescriptor: 'OrderBy', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: [{ - text: '创建时间', - value: 'CREATETIME' - }, { - text: '过期时间', - value: 'PERIODENDTIME' - }] -}, { - key: 'OrderByType', - enDescriptor: 'OrderByType', - cnDescriptor: '排序类型', - link: '', - type: 'select', - list: [{ - text: '升序', - value: 'ASC' - }, { - text: '降序', - value: 'DESC' - }] -}, { - key: 'DbType', - enDescriptor: 'DbType', - cnDescriptor: '引擎类型', - link: '', - type: 'select', - list: [{ - text: 'MYSQL', - value: 'MYSQL' - }, { - text: 'POSTGRESQL', - value: 'POSTGRESQL' - }] -} // { -// key: 'Status', -// enDescriptor: 'Status', -// cnDescriptor: '实例状态', -// link: '', -// type: 'input', -// }, -]; // regions for dropdown - -var regionSupported = [{ - value: 'ap-beijing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-shanghai' -}]; -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/1003/48334', - namespace: namespace, - fieldDescriptor: cynosdbMysqlFilterFieldsDescriptor -}; -var CYNOSDB_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: cynosdbMysqlFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, false); -} // 和文件名字一样CYNOSDBMYSQL - - -var CYNOSDBMYSQLInstanceAliasList = ['InstanceId', 'InstanceName']; -var templateQueryIdMap = { - instance: 'InstanceId' -}; -var CYNOSDBInvalidDemensions = { - instanceid: 'InstanceId', - instanceId: 'InstanceId' -}; -var checkKeys = ['instanceId']; - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['InstanceId']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (CYNOSDB_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/dc/datasource.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/dc/datasource.ts ***! - \************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dc/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCInvalidDemensions"]; - _this.templateQueryIdMap = { - instance: 'DirectConnectId' - }; - _this.InstanceReqConfig = { - service: 'dc', - action: 'DescribeDirectConnects', - responseField: 'DirectConnectSet' - }; - return _this; - } - - DCDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item); - })]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/dc/query.ts": -/*!*******************************************!*\ - !*** ./datasource/tc_monitor/dc/query.ts ***! - \*******************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dc/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/dc/query_def.ts": -/*!***********************************************!*\ - !*** ./datasource/tc_monitor/dc/query_def.ts ***! - \***********************************************/ -/*! exports provided: default, DCFilterFieldsDescriptor, templateQueryIdMap, DCInstanceAliasList, DCInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, DCGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCFilterFieldsDescriptor", function() { return DCFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCInstanceAliasList", function() { return DCInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCInvalidDemensions", function() { return DCInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - - -var namespace = 'QCE/DC'; -var queryEditorName = 'dcQuery'; -var DCFilterFields = { - Limit: 20, - Offset: 0, - DirectConnectIds: [] -}; -var DCFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'DirectConnectIds', - enDescriptor: 'DirectConnectIds', - cnDescriptor: '物理专线 ID', - link: '', - type: 'inputMulti' -}]; -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/216/34826', - namespace: namespace, - fieldDescriptor: DCFilterFieldsDescriptor -}; -var DC_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'DirectConnectId', - queries: DCFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, false); -} - -var DCInstanceAliasList = ['DirectConnectId', 'DirectConnectName']; -var templateQueryIdMap = { - instance: 'DirectConnectId' -}; -var DCInvalidDemensions = { - directConnectId: 'DirectConnectId', - directconnectid: 'DirectConnectId' -}; - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['directConnectId']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (DC_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/dcdb/datasource.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/dcdb/datasource.ts ***! - \**************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcdb/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCDBInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCDBInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'dcdb', - action: 'DescribeDCDBInstances', - responseField: 'Instances' - }; - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"]; - _this.extraActionMap = { - DescribeDCDBShards: { - service: 'dcdb', - action: 'DescribeDCDBShards', - responseField: 'Shards', - pickKey: 'ShardInstanceId' - }, - DescribeDCDBInstanceNodeInfo: { - service: 'dcdb', - action: 'DescribeDCDBInstanceNodeInfo', - responseField: 'NodesInfo', - pickKey: 'NodeId' - } - }; - return _this; - } // 重写getRegion, 入参的region用广州 - - - DCDatasource.prototype.getRegions = function () { - return this.doRequest({ - url: this.url + '/dcdb' - }, 'dcdb', { - action: 'DescribeDCDBSaleInfo', - region: 'ap-guangzhou' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.RegionList || [], function (item) { - return { - text: Object(_locale__WEBPACK_IMPORTED_MODULE_6__["t"])(item.Region), - value: item.Region, - RegionState: item.RegionState - }; - }); - }); - }; - - DCDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item); - }))]; - } - }); - }); - }; - - DCDatasource.prototype.getConsumerList = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, act, payload, _a, service, action, responseField, serviceInfo, rs; - - var _this = this; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - region = params.region, act = params.action, payload = params.payload; - _a = this.extraActionMap[act], service = _a.service, action = _a.action, responseField = _a.responseField; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, service); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: action - }); - }, payload, responseField)]; - - case 1: - rs = _b.sent(); - return [2 - /*return*/ - , rs[0]]; - } - }); - }); - }; - - DCDatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - var payload, rs, pickKey_1, result; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - payload = { - InstanceId: instance[this.templateQueryIdMap.instance], - Limit: 100 - }; - if (!(Object.keys(this.extraActionMap).indexOf(action) !== -1)) return [3 - /*break*/ - , 3]; - return [4 - /*yield*/ - , this.getConsumerList({ - region: region, - action: action, - payload: payload - })]; - - case 1: - rs = _a.sent(); - pickKey_1 = this.extraActionMap[action].pickKey; - result = rs.map(function (o) { - o._InstanceAliasValue = o[_this.templateQueryIdMap[pickKey_1]]; - return { - text: o[_this.templateQueryIdMap[pickKey_1]], - value: o[_this.templateQueryIdMap[pickKey_1]] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage[pickKey_1], rs)]; - - case 2: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 3: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/dcdb/query.ts": -/*!*********************************************!*\ - !*** ./datasource/tc_monitor/dcdb/query.ts ***! - \*********************************************/ -/*! exports provided: QueryCtrl, sQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcdb/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var ExtraFields = [{ - label: 'nodeid', - field: 'NodeId', - action: 'DescribeDCDBInstanceNodeInfo' -}, { - label: 'shardid', - field: 'ShardId', - action: 'DescribeDCDBShards' -}]; -var dropdownTextConfig = { - DescribeDCDBInstanceNodeInfo: 'NodeId', - DescribeDCDBShards: 'ShardInstanceId' -}; - -var QueryCtrl = -/** @class */ -function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.DCDBFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["DCDBFilterFieldsDescriptor"]; - $scope.ExtraFields = ExtraFields; - $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - }; - - $scope.getInstanceId = function () { - var instance = $scope.target.instance; - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance); - - if (!instance) { - return ''; - } - - try { - instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance]; - } catch (error) {// console.log(); - } - - return instance; - }; - - $scope.getExtraFields = function () { - return ExtraFields.filter(function (item) { - var _a, _b; - - return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}) || item.label in ((_b = $scope.dims) !== null && _b !== void 0 ? _b : {}); - }); - }; - - $scope.getExtraDropdown = function (target, action) { - return __awaiter(_this, void 0, void 0, function () { - var service, region, instanceId, payload, rs, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - instanceId = $scope.getInstanceId(); - payload = { - InstanceId: instanceId, - Limit: 100 - }; - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, 'getConsumerList')({ - region: region, - action: action, - payload: payload - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]]; - return { - text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]], - value: JSON.stringify(o) - }; - }); - return [2 - /*return*/ - , result]; - } - }); - }); - }; - - $scope.init(); - } - - return QueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n"; -function sQuery() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/dcdb/query_def.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/dcdb/query_def.ts ***! - \*************************************************/ -/*! exports provided: default, DCDBFilterFieldsDescriptor, templateQueryIdMap, DCDBInstanceAliasList, DCDBInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, keyInStorage, modifyDimensons, queryMonitorExtraConfg, DCDBGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCDBFilterFieldsDescriptor", function() { return DCDBFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCDBInstanceAliasList", function() { return DCDBInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCDBInvalidDemensions", function() { return DCDBInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCDBGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - - -var namespace = 'QCE/TDMYSQL'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'dcdbQuery'; -var DCDBInvalidDemensions = { - nodeid: 'NodeId', - instanceid: 'InstanceId', - shardid: 'ShardInstanceId', - ShardId: 'ShardInstanceId' -}; // 需和文件名对应 - -var DCDBInstanceAliasList = ['InstanceId', 'InstanceName']; -var templateQueryIdMap = { - instance: 'InstanceId', - NodeId: 'NodeId', - ShardInstanceId: 'ShardInstanceId' -}; // select类型需要注意是{},multi后缀是[],dropdown是'' - -var DCDBFilterFields = { - Limit: 20, - Offset: 0, - InstanceIds: [], - SearchName: '', - SearchKey: '', - ProjectIds: [], - // IsFilterVpc - VpcId: '', - SubnetId: '', - OrderBy: {}, - OrderByType: {}, - // IsFilterExcluster: {}, - ExclusterType: {}, - ExclusterIds: [], - FilterInstanceType: {} -}; -var DCDBFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'InstanceIds', - enDescriptor: 'InstanceIds', - cnDescriptor: '实例 ID 查询', - link: '', - type: 'inputMulti' -}, { - key: 'SearchName', - enDescriptor: 'SearchName', - cnDescriptor: '搜索的字段名,当前支持的值有:instancename、vip、all', - link: '', - type: 'input' -}, { - key: 'SearchKey', - enDescriptor: 'SearchKey', - cnDescriptor: '搜索的关键字', - link: '', - type: 'input' -}, { - key: 'ProjectIds', - enDescriptor: 'ProjectIds', - cnDescriptor: '按项目 ID 查询', - link: '', - type: 'inputNumberMulti' -}, { - key: 'VpcId', - enDescriptor: 'VpcId', - cnDescriptor: '私有网络 ID', - link: '', - type: 'input' -}, { - key: 'SubnetId', - enDescriptor: 'SubnetId', - cnDescriptor: '私有网络的子网 ID', - link: '', - type: 'input' -}, { - key: 'OrderBy', - enDescriptor: 'OrderBy', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: [{ - text: 'projectId', - value: 'projectId' - }, { - text: 'createtime', - value: 'createtime' - }, { - text: 'instancename', - value: 'instancename' - }] -}, { - key: 'OrderByType', - enDescriptor: 'OrderByType', - cnDescriptor: '私有网络 ID', - link: '', - type: 'select', - list: [{ - text: 'desc', - value: 'desc' - }, { - text: 'asc', - value: 'asc' - }] -}, { - key: 'ExclusterType', - enDescriptor: 'ExclusterType', - cnDescriptor: '集群类型', - link: '', - type: 'select', - list: [{ - text: '非独享集群', - value: 1 - }, { - text: '独享集群', - value: 2 - }, { - text: '全部', - value: 0 - }, { - text: 'asc', - value: 'asc' - }] -}, { - key: 'ExclusterIds', - enDescriptor: 'ExclusterIds', - cnDescriptor: '独享集群ID', - link: '', - type: 'inputMulti' -}, { - key: 'FilterInstanceType', - enDescriptor: 'FilterInstanceType', - cnDescriptor: '实例类型过滤', - link: '', - type: 'select', - multiple: true, - list: [{ - text: '独享实例', - value: 1 - }, { - text: '主实例', - value: 2 - }, { - text: '灾备实例', - value: 3 - }] -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/557/16140', - namespace: namespace, - fieldDescriptor: DCDBFilterFieldsDescriptor -}; -var DCDB_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - ShardId: '', - NodeId: '', - queries: DCDBFilterFields -}; -var modifyMetricConf = { - shardid: 'ShardId', - instanceid: 'InstanceId', - nodeid: 'NodeId' -}; - -function modifyDimensons(metricItem) { - var metricTmp = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(metricItem); - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = item.Dimensions.map(function (v) { - return modifyMetricConf[v] || v; - }); - }); - return metricTmp; -} - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, false); // 特殊处理 - - params.IsFilterVpc = false; - params.IsFilterExcluster = false; - if (params.VpcId || params.SubnetId) params.IsFilterVpc = true; - if (params.ExclusterType) params.IsFilterExcluster = true; - if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isArray"])(params.FilterInstanceType)) params.FilterInstanceType = params.FilterInstanceType.join(','); - return params; -} // 需要缓存到storage的内容的key列表 - - -var keyInStorage = { - NodeId: 'NodeId', - ShardInstanceId: 'ShardId' -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - NodeId: { - dim_KeyInStorage: keyInStorage.NodeId, - dim_KeyInTarget: 'NodeId', - dim_KeyInMap: templateQueryIdMap.NodeId - }, - ShardInstanceId: { - dim_KeyInStorage: keyInStorage.ShardInstanceId, - dim_KeyInTarget: 'ShardId', - dim_KeyInMap: templateQueryIdMap.ShardInstanceId - } -}; // 和其他产品的展示保持一致 - -var regionSupported = [{ - text: '华北地区(北京)', - value: 'ap-beijing' -}, { - text: '西南地区(成都)', - value: 'ap-chengdu' -}, { - text: '西南地区(重庆)', - value: 'ap-chongqing' -}, { - text: '华南地区(广州)', - value: 'ap-guangzhou' -}, { - text: '港澳台地区(中国香港)', - value: 'ap-hongkong' -}, { - text: '亚太南部(孟买)', - value: 'ap-mumbai' -}, { - text: '华东地区(南京)', - value: 'ap-nanjing' -}, { - text: '华东地区(上海)', - value: 'ap-shanghai' -}, { - text: '华东地区(上海金融)', - value: 'ap-shanghai-fsi' -}, { - text: '华南地区(深圳金融)', - value: 'ap-shenzhen-fsi' -}, { - text: '亚太东南(新加坡)', - value: 'ap-singapore' -}, { - text: '亚太东北(东京)', - value: 'ap-tokyo' -}, { - text: '欧洲地区(法兰克福)', - value: 'eu-frankfurt' -}, { - text: '美国东部(弗吉尼亚)', - value: 'na-ashburn' -}, { - text: '美国西部(硅谷)', - value: 'na-siliconvalley' -}, { - text: '北美地区(多伦多)', - value: 'na-toronto' -}]; -/* harmony default export */ __webpack_exports__["default"] = (DCDB_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/dcg/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/dcg/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcg/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCGInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCGInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'vpc', - action: 'DescribeDirectConnectGateways', - responseField: 'DirectConnectGatewaySet' - }; - return _this; - } - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/dcg/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/dcg/query.ts ***! - \********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcg/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/dcg/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/dcg/query_def.ts ***! - \************************************************/ -/*! exports provided: default, DCGFilterFieldsDescriptor, templateQueryIdMap, DCGInstanceAliasList, DCGInvalidDemensions, namespace, queryEditorName, queryEditorConfig, DCGGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCGFilterFieldsDescriptor", function() { return DCGFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCGInstanceAliasList", function() { return DCGInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCGInvalidDemensions", function() { return DCGInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCGGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/DCG'; -var queryEditorName = 'dcgQuery'; -var DCGInvalidDemensions = { - directConnectGatewayId: 'DirectConnectGatewayId' -}; -var DCGInstanceAliasList = ['DirectConnectGatewayId', 'DirectConnectGatewayName']; -var templateQueryIdMap = { - instance: 'DirectConnectGatewayId' -}; // select类型需要注意是{},multi后缀是[] - -var DCGFilterFields = { - Limit: 20, - Offset: 0, - 'direct-connect-gateway-id': [], - 'direct-connect-gateway-name': [], - 'direct-connect-gateway-ip': [], - 'gateway-type': {}, - 'network-type': {}, - 'ccn-id': [], - 'vpc-id': [] -}; -var DCGFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'direct-connect-gateway-id', - enDescriptor: 'direct-connect-gateway-id', - cnDescriptor: '专线网关唯一ID', - link: '', - type: 'inputMulti' -}, { - key: 'direct-connect-gateway-name', - enDescriptor: 'direct-connect-gateway-name', - cnDescriptor: '专线网关名称', - link: '', - type: 'inputMulti' -}, { - key: 'direct-connect-gateway-ip', - enDescriptor: 'direct-connect-gateway-ip', - cnDescriptor: '专线网关IP', - link: '', - type: 'inputMulti' -}, { - key: 'gateway-type', - enDescriptor: 'gateway-type', - cnDescriptor: '网关类型', - link: '', - type: 'select', - multiple: true, - list: [{ - text: '普通型', - value: 'NORMAL' - }, { - text: 'NAT型', - value: 'NAT' - }] -}, { - key: 'network-type', - enDescriptor: 'network-type', - cnDescriptor: '网络类型', - link: '', - type: 'select', - multiple: true, - list: [{ - text: '私有网络类型', - value: 'VPC' - }, { - text: '云联网类型', - value: 'CCN' - }] -}, { - key: 'ccn-id', - enDescriptor: 'ccn-id', - cnDescriptor: '专线网关所在云联网ID', - link: '', - type: 'inputMulti' -}, { - key: 'vpc-id', - enDescriptor: 'vpc-id', - cnDescriptor: '专线网关所在私有网络ID', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/215/30644', - namespace: namespace, - fieldDescriptor: DCGFilterFieldsDescriptor -}; -var DCG_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'DirectConnectGatewayId', - queries: DCGFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} - -/* harmony default export */ __webpack_exports__["default"] = (DCG_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/dcx/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/dcx/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcx/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var DCXDatasource = -/** @class */ -function (_super) { - __extends(DCXDatasource, _super); - - function DCXDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCXInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCXInvalidDemensions"]; - _this.templateQueryIdMap = { - instance: 'DirectConnectTunnelId' - }; - _this.InstanceReqConfig = { - service: 'dc', - action: 'DescribeDirectConnectTunnels', - responseField: 'DirectConnectTunnelSet' - }; - return _this; - } - - DCXDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item); - })]; - } - }); - }); - }; - - return DCXDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCXDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/dcx/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/dcx/query.ts ***! - \********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcx/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/dcx/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/dcx/query_def.ts ***! - \************************************************/ -/*! exports provided: default, DCXFilterFieldsDescriptor, templateQueryIdMap, DCXInstanceAliasList, DCXInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, DCXGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCXFilterFieldsDescriptor", function() { return DCXFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCXInstanceAliasList", function() { return DCXInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCXInvalidDemensions", function() { return DCXInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCXGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - - -var namespace = 'QCE/DCX'; -var queryEditorName = 'dcxQuery'; -var DCXFilterFields = { - 'direct-connect-tunnel-name': [], - 'direct-connect-tunnel-id': [], - 'direct-connect-id': [] -}; -var DCXFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'direct-connect-tunnel-name', - enDescriptor: 'direct-connect-tunnel-name', - cnDescriptor: '专用通道名称', - link: '', - type: 'inputMulti' -}, { - key: 'direct-connect-tunnel-id', - enDescriptor: 'direct-connect-tunnel-id', - cnDescriptor: '专用通道实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'direct-connect-id', - enDescriptor: 'direct-connect-id', - cnDescriptor: '物理专线实例ID', - link: '', - type: 'inputMulti' -}]; -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/216/19819', - namespace: namespace, - fieldDescriptor: DCXFilterFieldsDescriptor -}; -var DCX_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'DirectConnectTunnelId', - queries: __assign({ - Limit: 20, - Offset: 0 - }, DCXFilterFields) -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true); -} - -var DCXInstanceAliasList = ['DirectConnectTunnelId', 'DirectConnectTunnelName']; -var templateQueryIdMap = { - instance: 'DirectConnectTunnelId' -}; -var DCXInvalidDemensions = { - directconnectconnid: 'DirectConnectTunnelId', - directConnectConnId: 'DirectConnectTunnelId' -}; - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['directConnectConnId']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (DCX_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/ecdn/datasource.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/ecdn/datasource.ts ***! - \**************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecdn/query_def.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var ECDNDatasource = -/** @class */ -function (_super) { - __extends(ECDNDatasource, _super); - - function ECDNDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["ECDNInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["ECDNInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"]; - _this.InstanceReqConfig = { - service: 'ecdn', - action: 'DescribeDomains', - responseField: 'Domains' - }; - return _this; - } - - ECDNDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["modifyDimensons"])(item); - })]; - } - }); - }); - }; - - return ECDNDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_0__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (ECDNDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/ecdn/query.ts": -/*!*********************************************!*\ - !*** ./datasource/tc_monitor/ecdn/query.ts ***! - \*********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecdn/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/ecdn/query_def.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/ecdn/query_def.ts ***! - \*************************************************/ -/*! exports provided: default, ECDNFilterFieldsDescriptor, templateQueryIdMap, ECDNInstanceAliasList, ECDNInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, ECDNGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECDNFilterFieldsDescriptor", function() { return ECDNFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECDNInstanceAliasList", function() { return ECDNInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECDNInvalidDemensions", function() { return ECDNInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECDNGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var namespace = 'QCE/DSA'; -var queryEditorName = 'ecdnQuery'; -var ECDNInstanceAliasList = ['Domain']; -var templateQueryIdMap = { - instance: 'Domain' -}; -var ECDNInvalidDemensions = { - domain: 'Domain', - projectid: 'ProjectId' -}; -var ECDN_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'Domain', - queries: { - Limit: 100, - Offset: 0, - origin: [], - domain: [], - resourceId: [], - status: [], - disable: [], - projectId: [], - fullUrlCache: [], - https: [], - originPullProtocol: [], - area: [], - tagKey: [] - } -}; -var ECDNFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'origin', - enDescriptor: 'Origin', - cnDescriptor: '主源站', - link: '', - type: 'inputMulti' -}, { - key: 'domain', - enDescriptor: 'Domain', - cnDescriptor: '域名', - link: '', - type: 'inputMulti' -}, { - key: 'resourceId', - enDescriptor: 'ResourceId', - cnDescriptor: '域名id', - link: '', - type: 'inputMulti' -}, { - key: 'status', - enDescriptor: 'Status', - cnDescriptor: '域名状态', - link: '', - type: 'select', - list: [{ - text: 'online', - value: 'online' - }, { - text: 'offline', - value: 'offline' - }, { - text: 'processing', - value: 'processing' - }] -}, { - key: 'disable', - enDescriptor: 'Disable', - cnDescriptor: '域名封禁状态', - link: '', - type: 'select', - list: [{ - text: 'normal', - value: 'normal' - }, { - text: 'unlicensed', - value: 'unlicensed' - }] -}, { - key: 'projectId', - enDescriptor: 'ProjectId', - cnDescriptor: '项目ID', - link: '', - type: 'inputMulti' -}, { - key: 'fullUrlCache', - enDescriptor: 'FullUrlCache', - cnDescriptor: '全路径缓存', - link: '', - type: 'select', - list: [{ - text: 'on', - value: 'on' - }, { - text: 'off', - value: 'off' - }] -}, { - key: 'https', - enDescriptor: 'Https', - cnDescriptor: '是否配置https', - link: '', - type: 'select', - list: [{ - text: 'on', - value: 'on' - }, { - text: 'off', - value: 'off' - }, { - text: 'processing', - value: 'processing' - }] -}, { - key: 'originPullProtocol', - enDescriptor: 'OriginPullProtocol', - cnDescriptor: '回源协议类型', - link: '', - type: 'select', - list: [{ - text: 'http', - value: 'http' - }, { - text: 'https', - value: 'https' - }, { - text: 'follow', - value: 'follow' - }] -}, { - key: 'area', - enDescriptor: 'Area', - cnDescriptor: '加速区域', - link: '', - type: 'select', - list: [{ - text: 'mainland', - value: 'mainland' - }, { - text: 'overseas', - value: 'overseas' - }, { - text: 'global', - value: 'global' - }] -}, { - key: 'tagKey', - enDescriptor: 'TagKey', - cnDescriptor: '标签键', - link: '', - type: 'inputMulti' -}]; -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/570/42462', - namespace: namespace, - fieldDescriptor: ECDNFilterFieldsDescriptor -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(queries)) { - params.Limit = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(queries, 'Limit', 20) || 20; - params.Offset = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(queries, 'Offset', 0) || 0; - - var _queries = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["omit"])(queries, ['Offset', 'Limit']); - - var Filters_1 = []; - Object(lodash__WEBPACK_IMPORTED_MODULE_0__["forEach"])(_queries, function (item, key) { - if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isArray"])(item)) { - item = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["compact"])(item); - - if (item.length > 0) { - Filters_1.push({ - Name: key, - Value: Object(lodash__WEBPACK_IMPORTED_MODULE_0__["uniq"])(item).slice(0, 5) - }); - } - } else if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isObject"])(item)) { - if (!Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(item, 'value', []))) { - Filters_1.push({ - Name: key, - Value: [Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(item, 'value', [])].slice(0, 5) - }); - } - } - }); - - if (Filters_1.length > 0) { - params.Filters = Filters_1.map(function (item) { - if (item.Name === 'domain') { - return __assign(__assign({}, item), { - Fuzzy: true - }); - } - - return item; - }); - return params; - } - } - - return params; -} - -function modifyDimensons(metricItem) { - var metricTmp = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(metricItem); - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['domain', 'projectid']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (ECDN_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/ecm/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/ecm/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'ecm', - action: 'DescribeInstances', - responseField: 'InstanceSet' - }; - _this.MetricReqConfig = { - resultFilter: _query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"] - }; - return _this; - } - - DCDatasource.prototype.metricFindQuery = function (query, regex) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), { - region: 'ap-guangzhou' - }), regex)]; - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/ecm/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/ecm/query.ts ***! - \********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/ecm/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/ecm/query_def.ts ***! - \************************************************/ -/*! exports provided: default, ECMFilterFieldsDescriptor, templateQueryIdMap, ECMInstanceAliasList, ECMInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, ECMGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMFilterFieldsDescriptor", function() { return ECMFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMInstanceAliasList", function() { return ECMInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMInvalidDemensions", function() { return ECMInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - - -var namespace = 'QCE/ECM'; -var queryEditorName = 'ecmQuery'; -var ECMInvalidDemensions = { - // diskId: 'InstanceId', - uuid: 'UUID' // unInstanceId: 'InstanceId', - -}; -var ECMInstanceAliasList = ['InstanceId', 'InstanceName']; -var templateQueryIdMap = { - instance: 'InstanceId' -}; // select类型需要注意是{},multi后缀是[] - -var ECMFilterFields = { - Limit: 20, - Offset: 0, - zone: [], - 'zone-name': [], - 'module-id': [], - 'module-name': [], - 'instance-id': [], - 'instance-name': [], - 'ip-address': [], - 'instance-uuid': [], - 'instance-state': {}, - 'internet-service-provider': [], - 'instance-family': [], - 'image-id': [], - 'vpc-id': [], - 'subnet-id': [] -}; -var ECMFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'zone', - enDescriptor: 'zone', - cnDescriptor: '可用区英文标识', - link: '', - type: 'dropdownMulti' -}, { - key: 'zone-name', - enDescriptor: 'zone-name', - cnDescriptor: '排列顺序', - link: '', - type: 'inputMulti' -}, { - key: 'module-id', - enDescriptor: 'module-id', - cnDescriptor: '模块ID', - link: '', - type: 'inputMulti' -}, { - key: 'module-name', - enDescriptor: 'module-name', - cnDescriptor: '模块名称', - link: '', - type: 'inputMulti' -}, { - key: 'instance-id', - enDescriptor: 'instance-id', - cnDescriptor: '实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'instance-name', - enDescriptor: 'instance-name', - cnDescriptor: '实例名称', - link: '', - type: 'inputMulti' -}, { - key: 'ip-address', - enDescriptor: 'ip-address', - cnDescriptor: '内网/公网IP', - link: '', - type: 'inputMulti' -}, { - key: 'instance-uuid', - enDescriptor: 'instance-uuid', - cnDescriptor: '实例uuid', - link: '', - type: 'inputMulti' -}, { - key: 'instance-state', - enDescriptor: 'instance-state', - cnDescriptor: '实例状态', - link: '', - type: 'select', - multiple: true, - list: [{ - text: '创建中', - value: 'PENDING' - }, { - text: '创建失败', - value: 'LAUNCH_FAILED' - }, { - text: '运行中', - value: 'RUNNING' - }, { - text: '关机', - value: 'STOPPED' - }, { - text: '开机中', - value: 'STARTING' - }, { - text: '关机中', - value: 'STOPPING' - }, { - text: '重启中', - value: 'REBOOTING' - }, { - text: '停止待销毁', - value: 'SHUTDOWN' - }, { - text: '销毁中', - value: 'TERMINATING' - }] -}, { - key: 'internet-service-provider', - enDescriptor: 'internet-service-provider', - cnDescriptor: '公网IP所属的运营商', - link: '', - type: 'inputMulti' -}, { - key: 'instance-family', - enDescriptor: 'instance-family', - cnDescriptor: '机型family', - link: '', - type: 'inputMulti' -}, { - key: 'image-id', - enDescriptor: 'image-id', - cnDescriptor: '镜像ID', - link: '', - type: 'inputMulti' -}, { - key: 'vpc-id', - enDescriptor: 'vpc-id', - cnDescriptor: '实例的vpc id', - link: '', - type: 'inputMulti' -}, { - key: 'subnet-id', - enDescriptor: 'subnet-id', - cnDescriptor: '实例的subnet id', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565', - namespace: namespace, - fieldDescriptor: ECMFilterFieldsDescriptor -}; -var ECM_STATE = { - region: 'ap-guangzhou', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: ECMFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true); -} // function isValidMetric(metricObj: any = {}) { -// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions'); -// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1); -// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1); -// } - - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"](metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['UUID']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (ECM_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/ecm_block_storage/datasource.ts": -/*!***************************************************************!*\ - !*** ./datasource/tc_monitor/ecm_block_storage/datasource.ts ***! - \***************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm_block_storage/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMBLOCKSTORAGEInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMBLOCKSTORAGEInvalidDemensions"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'ecm', - action: 'DescribeInstances', - responseField: 'InstanceSet' - }; - return _this; - } - - DCDatasource.prototype.getDiskList = function (params) { - var _a; - - return __awaiter(this, void 0, void 0, function () { - var payload, InstanceId, instanceCache, instanceObj, dataDisks; - - var _this = this; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - payload = params.payload; - InstanceId = payload.InstanceId; - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].getInstance(this.service)]; - - case 1: - instanceCache = _b.sent(); - instanceObj = (_a = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.cloneDeep(instanceCache.find(function (item) { - return item[_this.templateQueryIdMap.instance] === InstanceId; - }))) !== null && _a !== void 0 ? _a : {}; - dataDisks = instanceObj.DataDisks; - return [2 - /*return*/ - , dataDisks]; - } - }); - }); - }; - - DCDatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - var payload, rs, result; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - payload = { - InstanceId: instance, - Limit: 100 - }; - return [4 - /*yield*/ - , this.getDiskList({ - region: region, - action: action, - payload: payload - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_this.templateQueryIdMap.diskId]; - return { - text: o[_this.templateQueryIdMap.diskId], - value: o[_this.templateQueryIdMap.diskId] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].setExtraStorage(this.service, this.keyInStorage.diskId, rs)]; - - case 2: - _a.sent(); - - return [2 - /*return*/ - , result]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/ecm_block_storage/query.ts": -/*!**********************************************************!*\ - !*** ./datasource/tc_monitor/ecm_block_storage/query.ts ***! - \**********************************************************/ -/*! exports provided: QueryCtrl, sQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm_block_storage/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); - - - -var ExtraFields = [// { -// label: 'nodeid', -// field: 'NodeId', -// action: 'DescribeInstanceNodeInfo', -// }, -{ - label: 'diskId', - field: 'diskId' -}]; - -var QueryCtrl = -/** @class */ -function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.ECMBLOCKSTORAGEFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["ECMBLOCKSTORAGEFilterFieldsDescriptor"]; - $scope.ExtraFields = ExtraFields; - $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - }; // $scope.getInstanceId = () => { - // let { instance } = $scope.target; - // const service = GetServiceFromNamespace($scope.namespace); - // instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance); - // if (!instance) { - // return ''; - // } - // try { - // instance = JSON.parse(instance)[templateQueryIdMap.instance]; - // } catch (error) { - // console.log(); - // } - // return instance; - // }; - - - $scope.getExtraFields = function () { - return ExtraFields.filter(function (item) { - var _a, _b; - - return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}) || item.label in ((_b = $scope.dims) !== null && _b !== void 0 ? _b : {}); - }); - }; - - $scope.getExtraDropdown = function (target, action) { - var instance = target.instance; - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance); - - try { - instance = JSON.parse(instance); - var dataDisks = instance.DataDisks; - return dataDisks.map(function (o) { - o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].diskId]; - return { - text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].diskId], - value: JSON.stringify(o) - }; - }); - } catch (error) { - // console.log('instance error', instance); - var payload = { - InstanceId: instance - }; - var rs = $scope.datasource.getServiceFn(service, 'getDiskList')({ - payload: payload - }); - var result = rs.map(function (o) { - return { - text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].diskId], - value: JSON.stringify(o) - }; - }); - return result; - } - }; - - $scope.init(); - } - - return QueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n"; -function sQuery() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/ecm_block_storage/query_def.ts": -/*!**************************************************************!*\ - !*** ./datasource/tc_monitor/ecm_block_storage/query_def.ts ***! - \**************************************************************/ -/*! exports provided: default, ECMBLOCKSTORAGEFilterFieldsDescriptor, templateQueryIdMap, ECMBLOCKSTORAGEInstanceAliasList, ECMBLOCKSTORAGEInvalidDemensions, namespace, queryEditorName, queryEditorConfig, keyInStorage, queryMonitorExtraConfg, ECMBLOCKSTORAGEGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMBLOCKSTORAGEFilterFieldsDescriptor", function() { return ECMBLOCKSTORAGEFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMBLOCKSTORAGEInstanceAliasList", function() { return ECMBLOCKSTORAGEInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMBLOCKSTORAGEInvalidDemensions", function() { return ECMBLOCKSTORAGEInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMBLOCKSTORAGEGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/ECM_BLOCK_STORAGE'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'ecmBlockStorageQuery'; -var ECMBLOCKSTORAGEInvalidDemensions = { - uuid: 'UUID', - diskId: 'DiskId' -}; // 需和文件名对应 - -var ECMBLOCKSTORAGEInstanceAliasList = ['InstanceId', 'InstanceName']; -var templateQueryIdMap = { - instance: 'InstanceId', - diskId: 'DiskId' -}; // select类型需要注意是{},multi后缀是[],dropdown是'' - -var ECMBLOCKSTORAGEFilterFields = { - Limit: 20, - Offset: 0, - 'zone-name': [], - 'module-id': [], - 'module-name': [], - 'instance-id': [], - 'instance-name': [], - 'ip-address': [], - 'instance-uuid': [], - 'instance-state': {}, - 'internet-service-provider': [], - 'instance-family': [], - 'image-id': [], - 'vpc-id': [], - 'subnet-id': [] -}; -var ECMBLOCKSTORAGEFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'zone-name', - enDescriptor: 'zone-name', - cnDescriptor: '排列顺序', - link: '', - type: 'inputMulti' -}, { - key: 'module-id', - enDescriptor: 'module-id', - cnDescriptor: '模块ID', - link: '', - type: 'inputMulti' -}, { - key: 'module-name', - enDescriptor: 'module-name', - cnDescriptor: '模块名称', - link: '', - type: 'inputMulti' -}, { - key: 'instance-id', - enDescriptor: 'instance-id', - cnDescriptor: '实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'instance-name', - enDescriptor: 'instance-name', - cnDescriptor: '实例名称', - link: '', - type: 'inputMulti' -}, { - key: 'ip-address', - enDescriptor: 'ip-address', - cnDescriptor: '内网/公网IP', - link: '', - type: 'inputMulti' -}, { - key: 'instance-uuid', - enDescriptor: 'instance-uuid', - cnDescriptor: '实例uuid', - link: '', - type: 'inputMulti' -}, { - key: 'instance-state', - enDescriptor: 'instance-state', - cnDescriptor: '实例状态', - link: '', - type: 'select', - multiple: true, - list: [{ - text: '创建中', - value: 'PENDING' - }, { - text: '创建失败', - value: 'LAUNCH_FAILED' - }, { - text: '运行中', - value: 'RUNNING' - }, { - text: '关机', - value: 'STOPPED' - }, { - text: '开机中', - value: 'STARTING' - }, { - text: '关机中', - value: 'STOPPING' - }, { - text: '重启中', - value: 'REBOOTING' - }, { - text: '停止待销毁', - value: 'SHUTDOWN' - }, { - text: '销毁中', - value: 'TERMINATING' - }] -}, { - key: 'internet-service-provider', - enDescriptor: 'internet-service-provider', - cnDescriptor: '公网IP所属的运营商', - link: '', - type: 'inputMulti' -}, { - key: 'instance-family', - enDescriptor: 'instance-family', - cnDescriptor: '机型family', - link: '', - type: 'inputMulti' -}, { - key: 'image-id', - enDescriptor: 'image-id', - cnDescriptor: '镜像ID', - link: '', - type: 'inputMulti' -}, { - key: 'vpc-id', - enDescriptor: 'vpc-id', - cnDescriptor: '实例的vpc id', - link: '', - type: 'inputMulti' -}, { - key: 'subnet-id', - enDescriptor: 'subnet-id', - cnDescriptor: '实例的subnet id', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565', - namespace: namespace, - fieldDescriptor: ECMBLOCKSTORAGEFilterFieldsDescriptor -}; -var ECMBLOCKSTORAGE_STATE = { - region: 'ap-guangzhou', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - diskId: '', - queries: ECMBLOCKSTORAGEFilterFields -}; // 需要缓存到storage的内容的key列表 - -var keyInStorage = { - diskId: 'diskId' -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - DiskId: { - dim_KeyInStorage: keyInStorage.diskId, - dim_KeyInTarget: 'diskId', - dim_KeyInMap: templateQueryIdMap.diskId - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} - -/* harmony default export */ __webpack_exports__["default"] = (ECMBLOCKSTORAGE_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/ecm_lb/datasource.ts": -/*!****************************************************!*\ - !*** ./datasource/tc_monitor/ecm_lb/datasource.ts ***! - \****************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm_lb/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMLBInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMLBInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'ecm', - action: 'DescribeLoadBalancers', - responseField: 'LoadBalancerSet' - }; - return _this; - } - - DCDatasource.prototype.metricFindQuery = function (query, regex) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), { - region: 'ap-guangzhou' - }), regex)]; - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/ecm_lb/query.ts": -/*!***********************************************!*\ - !*** ./datasource/tc_monitor/ecm_lb/query.ts ***! - \***********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm_lb/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/ecm_lb/query_def.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/ecm_lb/query_def.ts ***! - \***************************************************/ -/*! exports provided: default, ECMLBFilterFieldsDescriptor, templateQueryIdMap, ECMLBInstanceAliasList, ECMLBInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, ECMLBGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMLBFilterFieldsDescriptor", function() { return ECMLBFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMLBInstanceAliasList", function() { return ECMLBInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMLBInvalidDemensions", function() { return ECMLBInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMLBGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - - -var namespace = 'QCE/ECM_LB'; -var queryEditorName = 'ecmLbQuery'; -var ECMLBInvalidDemensions = { - vip: 'LoadBalancerVips' -}; -var ECMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerName']; -var templateQueryIdMap = { - instance: 'LoadBalancerId' -}; // select类型需要注意是{},multi后缀是[] - -var ECMLBFilterFields = { - Limit: 20, - Offset: 0, - LoadBalancerIds: [], - LoadBalancerName: [], - LoadBalancerVips: [], - BackendPrivateIps: [], - VpcId: '' -}; -var ECMLBFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'LoadBalancerIds', - enDescriptor: 'LoadBalancerIds', - cnDescriptor: '负载均衡器ID数组', - link: '', - type: 'inputMulti' -}, { - key: 'LoadBalancerName', - enDescriptor: 'LoadBalancerName', - cnDescriptor: '负载均衡器名称', - link: '', - type: 'inputMulti' -}, { - key: 'LoadBalancerVips', - enDescriptor: 'LoadBalancerVips', - cnDescriptor: '负载均衡获得的公网IP地址', - link: '', - type: 'inputMulti' -}, { - key: 'BackendPrivateIps', - enDescriptor: 'BackendPrivateIps', - cnDescriptor: '绑定的后端服务的内网 IP', - link: '', - type: 'inputMulti' -}, { - key: 'VpcId', - enDescriptor: 'VpcId', - cnDescriptor: '实例所属私有网络唯一ID', - link: '', - type: 'input' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/48459', - namespace: namespace, - fieldDescriptor: ECMLBFilterFieldsDescriptor -}; -var ECM_STATE = { - region: 'ap-guangzhou', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'LoadBalancerId', - queries: ECMLBFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, false); -} // function isValidMetric(metricObj: any = {}) { -// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions'); -// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1); -// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1); -// } - - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"](metricItem); - - metricTmp.Dimensions.forEach(function (item) {// item.Dimensions = ['UUID']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (ECM_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/gse/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/gse/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/gse/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["GSEInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["GSEInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'gse', - action: 'DescribeInstances', - responseField: 'Instances' - }; - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; - return _this; - } // getFilterDropdown({ field }) { - // return super.getRegions(); - // } - - - DCDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_6__["t"])(value) - }; - })); - }; - - DCDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item); - }))]; - } - }); - }); - }; - - DCDatasource.prototype.getQueueNameList = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, serviceInfo, res, rs; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - region = params.region; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, this.service); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: 'DescribeGameServerSessionQueues' - }); - }, {}, 'GameServerSessionQueues')]; - - case 1: - res = _a.sent(); - rs = res[0]; - return [2 - /*return*/ - , rs]; - } - }); - }); - }; - - DCDatasource.prototype.getFleetList = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, serviceInfo, res, rs; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - region = params.region; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, this.service); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: 'ListFleets' - }); - }, {}, 'FleetIds')]; - - case 1: - res = _a.sent(); - rs = res[0]; - return [2 - /*return*/ - , rs.map(function (r) { - var _a; - - return _a = {}, _a[_this.templateQueryIdMap.FleetId] = r, _a; - })]; - } - }); - }); - }; - - DCDatasource.prototype.fetchMetricData = function (action, region, instance) { - return __awaiter(this, void 0, void 0, function () { - var rs, result, rs, result; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(action === 'DescribeGameServerSessionQueues')) return [3 - /*break*/ - , 3]; - return [4 - /*yield*/ - , this.getQueueNameList({ - region: region, - instanceId: instance[this.templateQueryIdMap.instance] - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_this.templateQueryIdMap.Name]; - return { - text: o[_this.templateQueryIdMap.Name], - value: o[_this.templateQueryIdMap.Name] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.queue, rs)]; - - case 2: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 3: - if (!(action === 'ListFleets')) return [3 - /*break*/ - , 6]; - return [4 - /*yield*/ - , this.getFleetList({ - region: region, - instanceId: instance[this.templateQueryIdMap.instance] - })]; - - case 4: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_this.templateQueryIdMap.FleetId]; - return { - text: o[_this.templateQueryIdMap.FleetId], - value: o[_this.templateQueryIdMap.FleetId] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.fleet, rs)]; - - case 5: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 6: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/gse/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/gse/query.ts ***! - \********************************************/ -/*! exports provided: QueryCtrl, sQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/gse/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var ExtraFields = [{ - label: 'fleetId', - field: 'FleetId' -}, { - label: 'queueName', - field: 'Name' -}]; -var actionMaps = { - FleetId: 'getFleetList', - Name: 'getQueueNameList' -}; - -var QueryCtrl = -/** @class */ -function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.GSEFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["GSEFilterFieldsDescriptor"]; - $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - }; - - $scope.getExtraFields = function () { - return ExtraFields.filter(function (item) { - var _a; - - return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}); - }); - }; - - $scope.getInstanceId = function () { - var instance = $scope.target.instance; - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); // console.log({namespace, service}); - - instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance); - - if (!instance) { - return ''; - } - - try { - instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance]; - } catch (error) {// console.log(); - } - - return instance; - }; - - $scope.getExtraDropdown = function (target, field) { - return __awaiter(_this, void 0, void 0, function () { - var service, instanceId, region, rs, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - instanceId = $scope.getInstanceId(); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, actionMaps[field])({ - region: region, - instanceId: instanceId - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][field]]; - return { - text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][field]], - value: JSON.stringify(o) - }; - }); - return [2 - /*return*/ - , result]; - } - }); - }); - }; - - $scope.init(); - } - - return QueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n"; -function sQuery() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/gse/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/gse/query_def.ts ***! - \************************************************/ -/*! exports provided: default, GSEFilterFieldsDescriptor, templateQueryIdMap, GSEInstanceAliasList, GSEInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, modifyDimensons, queryMonitorExtraConfg, fleetId, keyInStorage, GSEGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GSEFilterFieldsDescriptor", function() { return GSEFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GSEInstanceAliasList", function() { return GSEInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GSEInvalidDemensions", function() { return GSEInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fleetId", function() { return fleetId; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GSEGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); - - -var namespace = 'QCE/GSE'; -var fleetId = 'FleetId'; // 为和cvm其他产品保持一致,即将string[]改为Array<{fleetid: xxx}>,在此声明key -// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'gseQuery'; -var GSEInvalidDemensions = { - instanceid: 'InstanceId', - fleetid: 'FleetId', - queuename: 'Name' -}; // 需和文件名对应 - -var GSEInstanceAliasList = ['InstanceId', 'PrivateIpAddress', 'IpAddress']; -var templateQueryIdMap = { - instance: 'InstanceId', - Name: 'Name', - FleetId: fleetId -}; // 需要缓存到storage的内容的key列表 - -var keyInStorage = { - fleet: 'fleet', - queue: 'queueName' // 会话队列 - -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - FleetId: { - dim_KeyInStorage: keyInStorage.fleet, - dim_KeyInTarget: 'FleetId', - dim_KeyInMap: templateQueryIdMap.FleetId - }, - Name: { - dim_KeyInStorage: keyInStorage.queue, - dim_KeyInTarget: 'Name', - dim_KeyInMap: templateQueryIdMap.Name - } -}; // select类型需要注意是{},multi后缀是[],dropdown是'' - -var GSEFilterFields = { - Limit: 20, - Offset: 0, - InstanceId: '', - FleetId: '' -}; -var GSEFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'InstanceId', - enDescriptor: 'resourceName', - cnDescriptor: '资源名称', - link: '', - type: 'input' -}, { - key: 'FleetId', - enDescriptor: 'tagKey', - cnDescriptor: '标签键', - link: '', - type: 'input' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/1165/42604', - namespace: namespace, - fieldDescriptor: GSEFilterFieldsDescriptor -}; -var GSE_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - FleetId: '', - Name: '', - queries: GSEFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} // regions for dropdown - - -var regionSupported = [{ - value: 'ap-bangkok' -}, { - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, // { value: 'ap-chongqing' }, -{ - value: 'ap-guangzhou' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-mumbai' -}, { - value: 'ap-seoul' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-shanghai' -}, // { value: 'ap-shanghai-fsi' }, -// { value: 'ap-shenzhen-fsi' }, -{ - value: 'ap-singapore' -}, { - value: 'ap-tokyo' -}, { - value: 'eu-frankfurt' -}, { - value: 'na-ashburn' -}, { - value: 'na-siliconvalley' -} // { value: 'na-toronto' }, -]; - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = item.Dimensions.map(function (v) { - return GSEInvalidDemensions[v] || v; - }); - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (GSE_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/index.ts": -/*!****************************************!*\ - !*** ./datasource/tc_monitor/index.ts ***! - \****************************************/ -/*! exports provided: InitServiceState, SERVICES, Datasources, InstanceAliasList, GetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InitServiceState", function() { return InitStates; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SERVICES", function() { return SERVICES; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Datasources", function() { return Datasources; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../locale */ "./locale/index.ts"); -var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; - - -var SERVICES = [{ - service: 'cvm', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CVM'); - }, - - namespace: 'QCE/CVM', - href: 'https://cloud.tencent.com/document/api/213/15688' -}, { - service: 'cdb', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CDB'); - }, - - namespace: 'QCE/CDB', - href: 'https://cloud.tencent.com/document/api/236/15829', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database'); - } - -}, { - service: 'mongoDB', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CMONGO'); - }, - - namespace: 'QCE/CMONGO', - href: 'https://cloud.tencent.com/document/api/240/38568', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database'); - } - -}, { - service: 'postgres', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('POSTGRES'); - }, - - namespace: 'QCE/POSTGRES', - href: 'https://cloud.tencent.com/document/product/248/45105', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database'); - } - -}, { - service: 'redis', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('REDIS'); - }, - - namespace: 'QCE/REDIS', - href: 'https://cloud.tencent.com/document/product/248/45110', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database'); - } - -}, { - service: 'redisMem', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('REDIS_MEM'); - }, - - namespace: 'QCE/REDIS_MEM', - href: 'https://cloud.tencent.com/document/product/248/49729', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database'); - } - -}, { - service: 'sqlserver', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('SQLSERVER'); - }, - - namespace: 'QCE/SQLSERVER', - href: 'https://cloud.tencent.com/document/product/248/45146', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database'); - } - -}, { - service: 'cynosdbMysql', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CYNOSDB_MYSQL'); - }, - - namespace: 'QCE/CYNOSDB_MYSQL', - href: 'https://cloud.tencent.com/document/product/248/45106', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database'); - } - -}, { - service: 'tcaplus', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TCAPLUS'); - }, - - namespace: 'QCE/TCAPLUS', - href: 'https://cloud.tencent.com/document/product/248/45107', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database'); - } - -}, { - service: 'dcdb', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TDMYSQL'); - }, - - namespace: 'QCE/TDMYSQL', - href: 'https://cloud.tencent.com/document/product/248/45108' -}, { - service: 'pcx', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('PCX'); - }, - - namespace: 'QCE/PCX', - href: 'https://cloud.tencent.com/document/product/215/5181', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud'); - } - -}, { - service: 'bwp', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('BWP'); - }, - - namespace: 'QCE/BWP', - href: 'https://cloud.tencent.com/document/api/215/19209', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud'); - } - -}, { - service: 'natGateway', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('NAT_GATEWAY'); - }, - - namespace: 'QCE/NAT_GATEWAY', - href: 'https://cloud.tencent.com/document/api/215/36034', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud'); - } - -}, { - service: 'vpngw', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('VPNGW'); - }, - - namespace: 'QCE/VPNGW', - href: 'https://cloud.tencent.com/document/product/248/45070', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud'); - } - -}, { - service: 'vpnx', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('VPNX'); - }, - - namespace: 'QCE/VPNX', - href: 'https://cloud.tencent.com/document/product/248/45071', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud'); - } - -}, { - service: 'dcg', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('DCG'); - }, - - namespace: 'QCE/DCG', - href: 'https://cloud.tencent.com/document/product/248/45072', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud'); - } - -}, { - service: 'ceipSummary', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CEIP_SUMMARY'); - }, - - namespace: 'QCE/CEIP_SUMMARY', - href: 'https://cloud.tencent.com/document/product/248/50381', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud'); - } - -}, { - service: 'vpcNetDetect', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('VPC_NET_DETECT'); - }, - - namespace: 'QCE/VPC_NET_DETECT', - href: 'https://cloud.tencent.com/document/product/248/50384', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud'); - } - -}, { - service: 'vbc', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('VBC'); - }, - - namespace: 'QCE/VBC', - href: 'https://cloud.tencent.com/document/product/248/45073', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud'); - } - -}, { - service: 'lb', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('LB'); - }, - - namespace: 'QCE/LB', - href: 'https://cloud.tencent.com/document/product/248/45099', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud'); - } - -}, { - service: 'lbPublic', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('LB_PUBLIC'); - }, - - namespace: 'QCE/LB_PUBLIC', - href: 'https://cloud.tencent.com/document/product/248/51898', - - get groupName() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_load_balancer'), "(").concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('multi_scene'), ")"); - } - -}, { - service: 'lbPrivate', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('LB_PRIVATE'); - }, - - namespace: 'QCE/LB_PRIVATE', - href: 'https://cloud.tencent.com/document/product/248/51899', - - get groupName() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_load_balancer'), "(").concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('multi_scene'), ")"); - } - -}, { - service: 'loadBalance', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('LOADBALANCE'); - }, - - namespace: 'QCE/LOADBALANCE', - href: 'https://cloud.tencent.com/document/product/248/51901', - - get groupName() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_load_balancer'), "(").concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('multi_scene'), ")"); - } - -}, { - service: 'vClb', - - get label() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_load_balancer'), "(").concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('lite'), ")"); - }, - - namespace: 'QCE/V_CLB', - href: 'https://cloud.tencent.com/document/product/248/51901', - - get groupName() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_load_balancer'), "(").concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('lite'), ")"); - } - -}, { - service: 'cdn', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CDN'); - }, - - namespace: 'QCE/CDN', - hideRegion: true, - href: 'https://cloud.tencent.com/document/product/248/50386', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('content_delivery_network'); - } - -}, { - service: 'cdnProvince', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CDN_LOG_DATA'); - }, - - namespace: 'QCE/CDN_LOG_DATA', - hideRegion: true, - href: 'https://cloud.tencent.com/document/product/248/50388', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('content_delivery_network'); - } - -}, { - service: 'ovCdn', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('OV_CDN'); - }, - - namespace: 'QCE/OV_CDN', - hideRegion: true, - href: 'https://cloud.tencent.com/document/product/248/50387', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('content_delivery_network'); - } - -}, { - service: 'scf', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('SCF_V2'); - }, - - namespace: 'QCE/SCF_V2', - href: 'https://cloud.tencent.com/document/product/248/45130' -}, { - service: 'cfs', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CFS'); - }, - - namespace: 'QCE/CFS', - href: 'https://cloud.tencent.com/document/product/248/45143' -}, { - service: 'cos', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('COS'); - }, - - namespace: 'QCE/COS', - href: 'https://cloud.tencent.com/document/product/248/45140' -}, { - service: 'ckafka', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CKAFKA'); - }, - - namespace: 'QCE/CKAFKA', - href: 'https://cloud.tencent.com/document/product/248/45121', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue'); - } - -}, { - service: 'cmq', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CMQ'); - }, - - namespace: 'QCE/CMQ', - href: 'https://cloud.tencent.com/document/product/248/45114', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue'); - } - -}, { - service: 'cmqTopic', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CMQTOPIC'); - }, - - namespace: 'QCE/CMQTOPIC', - href: 'https://cloud.tencent.com/document/product/248/45113', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue'); - } - -}, { - service: 'tdmq', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TDMQ'); - }, - - namespace: 'QCE/TDMQ', - href: 'https://cloud.tencent.com/document/product/248/51450', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue'); - } - -}, { - service: 'tdmqRocketmq', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TDMQ_ROCKETMQ'); - }, - - namespace: 'QCE/ROCKETMQ', - href: 'https://cloud.tencent.com/document/product/248/51450', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue'); - } - -}, { - service: 'tdmqRabbitmq', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TDMQ_RABBITMQ'); - }, - - namespace: 'QCE/RABBITMQ', - href: 'https://cloud.tencent.com/document/product/248/51450', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue'); - } - -}, { - service: 'dcx', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('DCX'); - }, - - namespace: 'QCE/DCX', - href: 'https://cloud.tencent.com/document/product/248/45101', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('direct_connect'); - } - -}, { - service: 'dc', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('DC'); - }, - - namespace: 'QCE/DC', - href: 'https://cloud.tencent.com/document/product/248/45102', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('direct_connect'); - } - -}, { - service: 'cpm', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CPM'); - }, - - namespace: 'QCE/CPM', - href: 'https://cloud.tencent.com/document/product/248/45881', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_physical_machine'); - } - -}, { - service: 'bmPcx', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('BM_PCX'); - }, - - namespace: 'QCE/BM_PCX', - href: 'https://cloud.tencent.com/document/product/248/45884', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_physical_machine'); - } - -}, { - service: 'bmLb', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('BM_LB'); - }, - - namespace: 'QCE/BM_LB', - href: 'https://cloud.tencent.com/document/product/248/45886', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_physical_machine'); - } - -}, { - service: 'bmIntraLb', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('BM_INTRA_LB'); - }, - - namespace: 'QCE/BM_INTRA_LB', - href: 'https://cloud.tencent.com/document/product/248/45885', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_physical_machine'); - } - -}, { - service: 'ces', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CES'); - }, - - namespace: 'QCE/CES', - href: 'https://cloud.tencent.com/document/product/248/45129' -}, { - service: 'mrHDFS', - - get label() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(HDFS)"); - }, - - namespace: 'QCE/TXMR_HDFS', - href: 'https://cloud.tencent.com/document/product/248/44797', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'); - } - -}, { - service: 'mrHBASE', - - get label() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(HBASE)"); - }, - - namespace: 'QCE/TXMR_HBASE', - href: 'https://cloud.tencent.com/document/product/248/45567', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'); - } - -}, { - service: 'mrHIVE', - - get label() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(HIVE)"); - }, - - namespace: 'QCE/TXMR_HIVE', - href: 'https://cloud.tencent.com/document/product/248/45569', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'); - } - -}, { - service: 'mrNODE', - - get label() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(NODE)"); - }, - - namespace: 'QCE/TXMR_NODE', - href: 'https://cloud.tencent.com/document/product/248/45570', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'); - } - -}, { - service: 'mrPRESTO', - - get label() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(PRESTO)"); - }, - - namespace: 'QCE/TXMR_PRESTO', - href: 'https://cloud.tencent.com/document/product/248/45571', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'); - } - -}, { - service: 'mrSPARK', - - get label() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(SPARK)"); - }, - - namespace: 'QCE/TXMR_SPARK', - href: 'https://cloud.tencent.com/document/product/248/45572', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'); - } - -}, { - service: 'mrYARN', - - get label() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(YARN)"); - }, - - namespace: 'QCE/TXMR_YARN', - href: 'https://cloud.tencent.com/document/product/248/45573', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'); - } - -}, { - service: 'mrZOOKEEPER', - - get label() { - return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(ZOOKEEPER)"); - }, - - namespace: 'QCE/TXMR_ZOOKEEPER', - href: 'https://cloud.tencent.com/document/product/248/45574', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'); - } - -}, { - service: 'cbs', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('BLOCK_STORAGE'); - }, - - namespace: 'QCE/BLOCK_STORAGE', - href: 'https://cloud.tencent.com/document/product/362/2345' -}, { - service: 'apigateway', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('APIGATEWAY'); - }, - - namespace: 'QCE/APIGATEWAY', - href: 'https://cloud.tencent.com/document/product/248/45127' -}, { - service: 'qaap', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('QAAP'); - }, - - namespace: 'QCE/QAAP', - href: 'https://cloud.tencent.com/document/product/608' -}, { - service: 'ecm', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('ECM'); - }, - - hideRegion: true, - namespace: 'QCE/ECM', - href: 'https://cloud.tencent.com/document/product/1108', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('edge_computing_machine'); - } - -}, { - service: 'ecmBlockStorage', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('ECM_BLOCK_STORAGE'); - }, - - hideRegion: true, - namespace: 'QCE/ECM_BLOCK_STORAGE', - href: 'https://cloud.tencent.com/document/product/1108', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('edge_computing_machine'); - } - -}, { - service: 'ecmLb', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('ECM_LB'); - }, - - hideRegion: true, - namespace: 'QCE/ECM_LB', - href: 'https://cloud.tencent.com/document/product/1108', - - get groupName() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('edge_computing_machine'); - } - -}, { - service: 'gse', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('GSE'); - }, - - namespace: 'QCE/GSE', - href: 'https://cloud.tencent.com/document/product/1165' -}, { - service: 'cls', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CLS'); - }, - - namespace: 'QCE/CLS', - href: 'https://cloud.tencent.com/document/product/614' -}, { - service: 'tke', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TKE'); - }, - - namespace: 'QCE/TKE2', - href: 'https://cloud.tencent.com/document/product/457' -}, { - service: 'ecdn', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('ECDN'); - }, - - namespace: 'QCE/DSA', - href: 'https://cloud.tencent.com/document/product/570' -}, // { -// service: 'lighthouse', -// label: '轻量应用服务器(LIGHTHOUSE)', -// namespace: 'QCE/LIGHTHOUSE', -// href: 'https://cloud.tencent.com/document/product/1207', -// }, -// { -// service: 'tsf', -// label: ' 微服务平台(TSF)', -// namespace: 'QCE/TSF', -// href: 'https://cloud.tencent.com/document/product/649', -// }, -{ - service: 'waf', - - get label() { - return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('WAF'); - }, - - // hideRegion: true, - namespace: 'QCE/WAF', - href: 'https://cloud.tencent.com/document/product/627' -}]; -var Datasources = {}; -var InitStates = {}; -var InstanceAliasList = {}; -var GetInstanceQueryParams = {}; -/** - * 由于目录命名不规范,导致需要使用额外逻辑保证正确性。从目录到具体service的映射 - */ - -var hackModuleName = { - // lb_loadBalance: 'loadBalance', - postgresql: 'postgres', - mongodb: 'mongoDB', - clb: ['lbPrivate', 'lbPublic', 'loadBalance'], - mr: ['mrHDFS', 'mrHBASE', 'mrHIVE', 'mrNODE', 'mrPRESTO', 'mrSPARK', 'mrYARN', 'mrZOOKEEPER'] -}; - -var requireModule = __webpack_require__("./datasource/tc_monitor sync recursive ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$"); - -requireModule.keys().forEach(function (filePath) { - var _a; - - var _b = filePath.split('/'), - moduleName = _b[1], - fileName = _b[2]; // hack: 这里是由于产品目录命名不规范,所以才会多这么一段代码 - - - moduleName = (_a = hackModuleName[moduleName]) !== null && _a !== void 0 ? _a : moduleName; // 目录与模块的映射关系,不管是一对一还是一对多,均按数组进行统一处理 - - [].concat(moduleName).forEach(function (module) { - var _a, _b; // 这个service就是产品配置中的service,需要注意这里的service是根据目录名称算出来的,因此目录名称一定要和service对应 - - - var service = module.replace(/_([a-zA-Z])/g, function (_, b) { - return b.toUpperCase(); - }); - var prefix = service.toUpperCase(); // 命名规则 - // datasource - - if (fileName === 'datasource.ts') { - var Cls_1 = __webpack_require__("./datasource/tc_monitor sync recursive ^.*$")("".concat(filePath))["default"]; // 想办法为实例注入service,不能为prototype或则类本身注入,因为会造成互相污染,详尽mrDatasource - - - Datasources["".concat(prefix, "Datasource")] = - /** @class */ - function () { - function class_1() { - var params = []; - - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - - var target = new (Cls_1.bind.apply(Cls_1, __spreadArray(__spreadArray([void 0], params, false), [service], false)))(); - target.service = service; // eslint-disable-next-line no-constructor-return - - return target; - } - - return class_1; - }(); - } // query - - - if (fileName === 'query.ts') { - __webpack_require__("./datasource/tc_monitor sync recursive ^.*$")("".concat(filePath)); - } // query_def - - - if (fileName === 'query_def.ts') { - var alias = "".concat(prefix, "InstanceAliasList"); - var getParams = "".concat(prefix, "GetInstanceQueryParams"); - - var target = __webpack_require__("./datasource/tc_monitor sync recursive ^.*$")("".concat(filePath)); - - InitStates[service] = target["default"]; // FIXME: 这里需不需要深拷贝? - - InstanceAliasList[alias] = (_a = target[alias]) !== null && _a !== void 0 ? _a : target['InstanceAliasList']; - GetInstanceQueryParams[getParams] = (_b = target[getParams]) !== null && _b !== void 0 ? _b : target['GetInstanceQueryParams']; - } - }); -}); - // console.log(Datasources, InitStates, InstanceAliasList, GetInstanceQueryParams); - -/***/ }), - -/***/ "./datasource/tc_monitor/lb/datasource.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/lb/datasource.ts ***! - \************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/lb/query_def.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var SCFDatasource = -/** @class */ -function (_super) { - __extends(SCFDatasource, _super); - - function SCFDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/LB'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["LBInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["LBInvalidDemensions"]; - _this.templateQueryIdMap = { - instance: 'AddressId' - }; - _this.InstanceReqConfig = { - service: 'vpc', - action: 'DescribeAddresses', - responseField: 'AddressSet', - interceptor: { - request: function request(params) { - var Filters = params.Filters; - - if (!Filters) { - params.Filters = []; - } - - params.Filters.push({ - Name: 'address-type', - Values: ['EIP'] - }); - return params; - } // 设置一些请求参数的 默认值 - - } - }; - return _this; - } - - SCFDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , rawSet.filter(function (item) { - var _a, _b, _c; - /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */ - - - return (_c = (_b = (_a = item.Dimensions) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Dimensions) === null || _c === void 0 ? void 0 : _c.includes('eip'); - })]; - } - }); - }); - }; - - return SCFDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_0__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (SCFDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/lb/query.ts": -/*!*******************************************!*\ - !*** ./datasource/tc_monitor/lb/query.ts ***! - \*******************************************/ -/*! exports provided: LBQueryCtrl, lbQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LBQueryCtrl", function() { return LBQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lbQuery", function() { return lbQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/lb/query_def.ts"); - - - -var LBQueryCtrl = -/** @class */ -function () { - LBQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function LBQueryCtrl($scope, $rootScope) { - $scope.init = function () { - // $scope.LBQueryDescriptor = LBQueryDescriptor; - $scope.LBFilterDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["LBFilterDescriptor"]; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getDropdown = function (field) { - switch (field) { - case 'zone': - return $scope.getZones(); - - default: - return []; - } - }; - - $scope.getZones = function () { - if (!$scope.region) { - return []; - } - - return $scope.datasource.getZones('cvm', $scope.region); - }; - - $scope.init(); - } - - return LBQueryCtrl; -}(); - - -var template = "\n
\n\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n\n\n
\n
\n \n \n \n \n \n
\n
\n\n
\n"; -function lbQuery() { - return { - template: template, - controller: LBQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('lbQuery', lbQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/lb/query_def.ts": -/*!***********************************************!*\ - !*** ./datasource/tc_monitor/lb/query_def.ts ***! - \***********************************************/ -/*! exports provided: LBFilterDescriptor, default, LBInstanceAliasList, LBInvalidDemensions, templateQueryIdMap, LBGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LBFilterDescriptor", function() { return LBFilterDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LBInstanceAliasList", function() { return LBInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LBInvalidDemensions", function() { return LBInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LBGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var _a; - - // export const LBQueryDescriptor = [{ -// key: 'Offset', -// enDescriptor: 'Offset', -// cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', -// link: '', -// type: 'inputnumber', -// min: 0, -// }, -// { -// key: 'Limit', -// enDescriptor: 'Limit', -// cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为2000', -// link: '', -// type: 'inputnumber', -// min: 1, -// max: 2000, -// }, -// { -// key: 'AddressId', -// enDescriptor: 'Address Id', -// cnDescriptor: '标识 EIP 的唯一 ID ', -// link: '', -// type: 'inputmulti', -// } -// ]; - -var LBFilterDescriptor = [{ - key: 'address-id', - enDescriptor: 'Address ID', - cnDescriptor: 'EIP 的唯一 ID ', - link: '', - type: 'inputmulti' -}, { - key: 'address-name', - enDescriptor: 'Address Name', - cnDescriptor: 'EIP 名称 ', - link: '', - type: 'inputmulti' -}, { - key: 'address-ip', - enDescriptor: 'Address IP', - cnDescriptor: 'EIP 的 IP 地址 ', - link: '', - type: 'inputmulti' -}, { - key: 'address-status', - enDescriptor: 'Address Status', - cnDescriptor: 'EIP 的状态', - link: '', - type: 'select', - list: [{ - value: 'CREATING', - text: 'CREATING' - }, { - value: 'BINDING', - text: 'BINDING' - }, { - value: 'BIND', - text: 'BIND' - }, { - value: 'UNBINDING', - text: 'UNBINDING' - }, { - value: 'UNBIND', - text: 'UNBIND' - }, { - value: 'OFFLINING', - text: 'OFFLINING' - }, { - value: 'BIND_ENI', - text: 'BIND_ENI' - }] -}, { - key: 'instance-id', - enDescriptor: 'Instance ID', - cnDescriptor: '实例ID ', - link: '', - type: 'inputmulti' -}, { - key: 'private-ip-address', - enDescriptor: 'Private IP Address', - cnDescriptor: 'EIP 绑定的内网 IP', - link: '', - type: 'inputmulti' -}, { - key: 'network-interface-id', - enDescriptor: 'Network Interface ID', - cnDescriptor: 'EIP 绑定的弹性网卡 ID', - link: '', - type: 'inputmulti' -}, { - key: 'is-arrears', - enDescriptor: 'Arrears', - cnDescriptor: 'EIP 是否欠费 ', - link: '', - type: 'select', - list: [{ - text: '正常', - value: 'FALSE' - }, { - text: '欠费', - value: 'TRUE' - }] -}]; // const LBFilterFields = { -// "address-id": [], -// "address-name": [], -// "address-ip": [], -// "address-status ": [], -// "instance-id ": [], -// "private-ip-address": [], -// "network-interface-id ": [], -// "is-arrears ": [], -// }; - -var InstanceKey = 'AddressIds'; -var LB_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'AddressId', - version: '', - queries: (_a = { - Offset: 0, - Limit: 20 - }, _a[InstanceKey] = [''], _a.Filters = { - 'address-id': [], - 'address-name': [], - 'address-ip': [], - 'address-status ': [], - 'instance-id ': [], - 'private-ip-address': [], - 'network-interface-id ': [], - 'is-arrears ': [] - }, _a) -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - - if (queries.instanceIdsChecked) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries[InstanceKey])) { - var InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries[InstanceKey]); - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).length > 0) { - params[InstanceKey] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).slice(0, 100); - } - } - } else if (queries.filtersChecked) { - var Filters_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) { - if (Filters_1.length > 9) { - return; - } - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5) - }); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5) - }); - } - } - }); - - if (Filters_1.length > 0) { - params.Filters = Filters_1; - } - } - } - - return params; -} - -var LBInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp']; // 维度eip对应于实例中的哪个字段?映射 - -var LBInvalidDemensions = { - eip: 'AddressIp' -}; -var templateQueryIdMap = { - instance: 'AddressId' -}; // 从monitor维度到LB实例对应字段的映射 -// export const metric2Instance = { -// functionName: 'FunctionName', -// namespace: 'Namespace' -// }; - -/* harmony default export */ __webpack_exports__["default"] = (LB_STATE); - // monitor监控数据默认支持的维度 -// export const LBDefaultDimensionList = ['functionName', 'namespace', 'version']; - -/***/ }), - -/***/ "./datasource/tc_monitor/lighthouse/datasource.ts": -/*!********************************************************!*\ - !*** ./datasource/tc_monitor/lighthouse/datasource.ts ***! - \********************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/lighthouse/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - -var LighthouseDatasource = -/** @class */ -function (_super) { - __extends(LighthouseDatasource, _super); - - function LighthouseDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/LIGHTHOUSE'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["LIGHTHOUSEInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["LighthouseInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"]; - _this.InstanceReqConfig = { - service: 'lighthouse', - action: 'DescribeInstances', - responseField: 'InstanceSet' - }; - return _this; - } - - LighthouseDatasource.prototype.getRegions = function () { - return this.doRequest({ - url: this.url + '/api', - data: { - Product: 'lighthouse' - } - }, 'api', { - action: 'DescribeRegions' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.RegionSet || [], function (item) { - return { - text: item.RegionName, - value: item.Region, - RegionState: item.RegionState - }; - }), function (item) { - return item.RegionState === 'AVAILABLE'; - }); - }); - }; - - LighthouseDatasource.prototype.getZones = function (region) { - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'api'); - return this.doRequest({ - url: this.url + serviceInfo.path, - data: { - Product: 'lighthouse' - } - }, serviceInfo.service, { - region: region, - action: 'DescribeZones' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.ZoneSet || [], function (item) { - return { - text: item.ZoneName, - value: item.Zone, - ZoneState: item.ZoneState, - Zone: item.Zone - }; - }), function (item) { - return item.ZoneState === 'AVAILABLE'; - }); - }); - }; - - LighthouseDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["modifyDimensons"])(item); - }))]; - } - }); - }); - }; - - return LighthouseDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_3__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (LighthouseDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/lighthouse/query.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/lighthouse/query.ts ***! - \***************************************************/ -/*! exports provided: LighthouseQueryCtrl, lighthouseQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LighthouseQueryCtrl", function() { return LighthouseQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lighthouseQuery", function() { return lighthouseQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/lighthouse/query_def.ts"); - - - -var LighthouseQueryCtrl = -/** @class */ -function () { - LighthouseQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function LighthouseQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.LighthouseFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["LighthouseFilterFieldsDescriptor"]; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getDropdown = function (field) { - switch (field) { - case 'zone': - return $scope.getZones(); - - default: - return []; - } - }; - - $scope.getZones = function () { - if (!$scope.region) { - return []; - } - - return $scope.datasource.getZones('lighthouse', $scope.region); - }; - - $scope.init(); - } - - return LighthouseQueryCtrl; -}(); - - -var template = "\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n"; -function lighthouseQuery() { - return { - template: template, - controller: LighthouseQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('lighthouseQuery', lighthouseQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/lighthouse/query_def.ts": -/*!*******************************************************!*\ - !*** ./datasource/tc_monitor/lighthouse/query_def.ts ***! - \*******************************************************/ -/*! exports provided: default, LighthouseFilterFieldsDescriptor, LIGHTHOUSEInstanceAliasList, LighthouseInvalidDemensions, templateQueryIdMap, modifyDimensons, LIGHTHOUSEGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LighthouseFilterFieldsDescriptor", function() { return LighthouseFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LIGHTHOUSEInstanceAliasList", function() { return LIGHTHOUSEInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LighthouseInvalidDemensions", function() { return LighthouseInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LIGHTHOUSEGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var LighthouseStateType = [{ - text: '创建中', - value: 'PENDING' -}, { - text: '创建失败', - value: 'LAUNCH_FAILED' -}, { - text: '运行中', - value: 'RUNNING' -}, { - text: '关机', - value: 'STOPPED' -}, { - text: '开机中', - value: 'STARTING' -}, { - text: '关机中', - value: 'STOPPING' -}, { - text: '重启中', - value: 'REBOOTING' -}, { - text: '停止待销毁', - value: 'SHUTDOWN' -}, { - text: '销毁中', - value: 'TERMINATING' -}]; -var LighthouseFilterFields = { - zone: [], - 'instance-name': [], - 'instance-state': {}, - 'private-ip-address': [], - 'public-ip-address': [] -}; -var LighthouseFilterFieldsDescriptor = [{ - key: 'instance-name', - enDescriptor: 'Instance Name', - cnDescriptor: '实例名称', - link: '', - type: 'inputmulti' -}, { - key: 'private-ip-address', - enDescriptor: 'Private IP Address', - cnDescriptor: '实例主网卡的内网IP', - link: '', - type: 'inputmulti' -}, { - key: 'public-ip-address', - enDescriptor: 'Public IP Address', - cnDescriptor: '实例主网卡的公网IP', - link: '', - type: 'inputmulti' -}, { - key: 'zone', - enDescriptor: 'Zone', - cnDescriptor: '可用区', - link: '', - type: 'dropdownmulti' -}, { - key: 'instance-state', - enDescriptor: 'Instance State', - cnDescriptor: '实例状态', - link: '', - type: 'select', - list: LighthouseStateType -}]; -var LIGHTHOUSE_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: { - Limit: 20, - Offset: 0, - instanceIdsChecked: false, - filtersChecked: false, - InstanceIds: [''], - Filters: __assign({}, LighthouseFilterFields) - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - - if (queries.instanceIdsChecked) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.InstanceIds)) { - var InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.InstanceIds); - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).length > 0) { - params.InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).slice(0, 100); - } - } - } else if (queries.filtersChecked) { - var Filters_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) { - if (Filters_1.length > 9) { - return; - } - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5) - }); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5) - }); - } - } - }); - - if (Filters_1.length > 0) { - params.Filters = Filters_1; - } - } - } - - return params; -} - -var LIGHTHOUSEInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses']; -var LighthouseInvalidDemensions = { - instanceid: 'InstanceId' -}; -var templateQueryIdMap = { - instance: 'InstanceId' -}; - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['InstanceId']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (LIGHTHOUSE_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/mongodb/datasource.ts": -/*!*****************************************************!*\ - !*** ./datasource/tc_monitor/mongodb/datasource.ts ***! - \*****************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/mongodb/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - -var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; - - - - - - -var MONGODBDatasource = -/** @class */ -function (_super) { - __extends(MONGODBDatasource, _super); - - function MONGODBDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/CMONGO'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["MONGODBInstanceAliasList"]; - _this.ReplicaAliasList = ['ReplicaSetId', 'ReplicaSetName']; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_1__["queryMonitorExtraConfg"]; - _this.InstanceReqConfig = { - service: 'mongodb', - action: 'DescribeDBInstances', - responseField: 'InstanceDetails' - }; - return _this; - } - - MONGODBDatasource.prototype.getInvalidDimensions = function (selfIns, target) { - if (target.node && target.node !== '') { - return { - target: 'Node' - }; - } - - if (target.replica && target.replica !== '') { - return { - target: 'Replica' - }; - } - - return _query_def__WEBPACK_IMPORTED_MODULE_1__["MONGODBInvalidDemensions"]; - }; - - MONGODBDatasource.prototype.formatVariableDisplay = function (data, displayTpl, alias, aliasList) { - var _this = this; - - if (displayTpl) { - return displayTpl.replace(/\$\{(\w+)\}/g, function (a, b) { - if (!b || !aliasList.includes(b)) { - return ''; - } - - return _this.getAliasValue(data, b); - }); - } - - return this.getAliasValue(data, alias); - }; - - MONGODBDatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - var display, res, replicaalias_1, result, res, replicasetid, targetReplica_1, result; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - display = query.display; - if (!(action === 'DescribeReplicas')) return [3 - /*break*/ - , 3]; - return [4 - /*yield*/ - , this.getInstances(region, { - InstanceIds: [instance[this.templateQueryIdMap.instance]] - })]; - - case 1: - res = _a.sent()[0]; - replicaalias_1 = query.replicaalias; - replicaalias_1 = this.ReplicaAliasList.includes(replicaalias_1) ? replicaalias_1 : this.templateQueryIdMap.replica; - result = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(res, 'ReplicaSets', []), function (item) { - var replicaAlias = _this.formatVariableDisplay(item, display, replicaalias_1, _this.ReplicaAliasList); - - item._InstanceAliasValue = replicaAlias || item[_this.templateQueryIdMap.replica]; - return { - text: item.ReplicaSetId, - value: item.ReplicaSetId - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].setExtraStorage(this.service, this.queryMonitorExtraConfg.Replica.dim_KeyInStorage, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(res, 'ReplicaSets', []))]; - - case 2: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 3: - if (!(action === 'DescribeReplicaNodes')) return [3 - /*break*/ - , 6]; - return [4 - /*yield*/ - , this.getInstances(region, { - InstanceIds: [instance[this.templateQueryIdMap.instance]] - })]; - - case 4: - res = _a.sent()[0]; - replicasetid = query.replicasetid; - targetReplica_1 = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(res, 'ReplicaSets', []), { - ReplicaSetId: this.getVariable(replicasetid) - }); - result = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.times(targetReplica_1.SecondaryNum, function (index) { - var nodeId = "".concat(targetReplica_1.ReplicaSetId, "-node-slave").concat(index); - return { - text: nodeId, - value: nodeId - }; - }); - - if (targetReplica_1) { - result = __spreadArray([{ - text: "".concat(targetReplica_1.ReplicaSetId, "-node-primary"), - value: "".concat(targetReplica_1.ReplicaSetId, "-node-primary") - }], result, true); - } - - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].setExtraStorage(this.service, this.queryMonitorExtraConfg.Node.dim_KeyInStorage, result.map(function (item) { - return { - NodeId: item.value, - _InstanceAliasValue: item.value - }; - }))]; - - case 5: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 6: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return MONGODBDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (MONGODBDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/mongodb/query.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/mongodb/query.ts ***! - \************************************************/ -/*! exports provided: MongoDBQueryCtrl, mongodbQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MongoDBQueryCtrl", function() { return MongoDBQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mongodbQuery", function() { return mongodbQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/mongodb/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - -var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; - - - - - - -var MongoDBQueryCtrl = -/** @class */ -function () { - MongoDBQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function MongoDBQueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.MONGODBFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_2__["MONGODBFieldsDescriptor"]; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getDropdown = function (field) { - switch (field) { - default: - return []; - } - }; - - $scope.onInstanceChange = function (n, o) { - if (n === o) { - return; - } - - $scope.target.replica = ''; - $scope.target.node = ''; - }; - - $scope.getVariableId = function (data, type) { - var variableData = data; - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])('QCE/CMONGO'); - variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData); - - if (!variableData) { - return ''; - } - - try { - variableData = JSON.parse(variableData)[_query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"][type]]; - } catch (error) {// console.log(); - } - - return variableData; - }; - - $scope.getExtraDropdown = function (target, type) { - return __awaiter(_this, void 0, void 0, function () { - var _a, instance, replica, service, instanceId, region, res, replicaId, targetReplica_1, options; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = $scope.target, instance = _a.instance, replica = _a.replica; - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])('QCE/CMONGO'); - instanceId = $scope.getVariableId(instance, 'instance'); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, 'getInstances')(region, { - InstanceIds: [instanceId] - })]; - - case 1: - res = _b.sent()[0]; - - if (type === 'replica') { - return [2 - /*return*/ - , Object(lodash__WEBPACK_IMPORTED_MODULE_1__["map"])(Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(res, 'ReplicaSets', []), function (item) { - item._InstanceAliasValue = item.ReplicaSetId; - return { - text: item.ReplicaSetId, - value: JSON.stringify(item) - }; - })]; - } - - if (type === 'node' && replica !== '') { - replicaId = $scope.getVariableId(replica, 'replica'); - targetReplica_1 = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["find"])(Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(res, 'ReplicaSets', []), { - ReplicaSetId: replicaId - }); - options = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["times"])(targetReplica_1.SecondaryNum, function (index) { - var nodeId = "".concat(targetReplica_1.ReplicaSetId, "-node-slave").concat(index); - return { - text: nodeId, - value: JSON.stringify({ - NodeId: nodeId, - _InstanceAliasValue: "".concat(targetReplica_1.ReplicaSetId, " - ").concat(nodeId) - }) - }; - }); - return [2 - /*return*/ - , __spreadArray([{ - text: "".concat(targetReplica_1.ReplicaSetId, "-node-primary"), - value: JSON.stringify({ - NodeId: "".concat(targetReplica_1.ReplicaSetId, "-node-primary"), - _InstanceAliasValue: "".concat(targetReplica_1.ReplicaSetId, " - ").concat("".concat(targetReplica_1.ReplicaSetId, "-node-primary")) - }) - }], options, true)]; - } - - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - $scope.init(); - } - - return MongoDBQueryCtrl; -}(); - - -var template = "\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n"; -function mongodbQuery() { - return { - template: template, - controller: MongoDBQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - onRefresh: '&', - onChange: '&' - }, - link: function link(scope, element, attrs) { - scope.$watch('target.instance', function (newValue, oldValue) { - var _a; - - (_a = scope.onInstanceChange) === null || _a === void 0 ? void 0 : _a.call(scope, newValue, oldValue); - }); - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('mongodbQuery', mongodbQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/mongodb/query_def.ts": -/*!****************************************************!*\ - !*** ./datasource/tc_monitor/mongodb/query_def.ts ***! - \****************************************************/ -/*! exports provided: default, MONGODBFieldsDescriptor, MONGODBInvalidDemensions, MONGODBInstanceAliasList, templateQueryIdMap, queryMonitorExtraConfg, MONGODBGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MONGODBFieldsDescriptor", function() { return MONGODBFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MONGODBInvalidDemensions", function() { return MONGODBInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MONGODBInstanceAliasList", function() { return MONGODBInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MONGODBGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var InstanceTypes = [{ - text: '所有实例', - value: 0 -}, { - text: '正式实例', - value: 1 -}, { - text: '临时实例', - value: 2 -}, { - text: '只读实例', - value: 3 -}, { - text: '正式,只读,灾备实例', - value: -1 -}]; -var ClusterTypes = [{ - text: '副本集实例', - value: 0 -}, { - text: '分片实例', - value: 1 -}, { - text: '所有实例', - value: -1 -}]; -var Status = [{ - text: '待初始化', - value: 0 -}, { - text: '流程执行中', - value: 1 -}, { - text: '实例有效', - value: 2 -}, { - text: '实例已过期', - value: -2 -}]; -var PayMode = [{ - text: '按量计费', - value: 0 -}, { - text: '包年包月', - value: 1 -}, { - text: '按量包年包月计费', - value: -1 -}]; -var OrderBy = [{ - text: 'ProjectId', - value: 'ProjectId' -}, { - text: 'InstanceName', - value: 'InstanceName' -}, { - text: 'CreateTime', - value: 'CreateTime' -}]; -var OrderByType = [{ - text: '升序', - value: 'ASC' -}, { - text: '降序', - value: 'DESC' -}]; -var MongoDBFields = { - InstanceIds: [], - InstanceType: {}, - ClusterType: {}, - Status: [], - VpcId: '', - SubnetId: '', - PayMode: {}, - Limit: 20, - Offset: 0, - OrderBy: '', - OrderByType: '' -}; -var MONGODBFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputnumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputnumber', - min: 1, - max: 100 -}, { - key: 'InstanceIds', - enDescriptor: 'InstancesIds', - cnDescriptor: '实例名称', - type: 'inputmulti' -}, { - key: 'InstanceType', - enDescriptor: 'InstanceType', - cnDescriptor: '实例类型', - link: '', - type: 'select', - list: InstanceTypes -}, { - key: 'ClusterType', - enDescriptor: 'ClusterType', - cnDescriptor: '集群类型', - link: '', - type: 'select', - list: ClusterTypes -}, { - key: 'Status', - enDescriptor: 'Status', - cnDescriptor: '实例状态', - link: '', - multiple: true, - type: 'select', - list: Status -}, { - key: 'VpcId', - enDescriptor: 'VpcId', - cnDescriptor: '私有网络的ID', - link: '', - type: 'input' -}, { - key: 'SubnetId', - enDescriptor: 'SubnetId', - cnDescriptor: '私有网络的子网ID,基础网络则不传该参数。入参设置该参数的同时,必须设置相应的VpcId', - link: '', - type: 'input' -}, { - key: 'PayMode', - enDescriptor: 'PayMode', - cnDescriptor: '付费类型', - link: '', - type: 'select', - list: PayMode -}, { - key: 'OrderBy', - enDescriptor: 'OrderBy', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: OrderBy -}, { - key: 'OrderByType', - enDescriptor: 'OrderByType', - cnDescriptor: '排序方式', - link: '', - type: 'select', - list: OrderByType -}]; -var MONGODB_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: __assign({}, MongoDBFields) -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - // select 单选 - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} - -var MONGODBInstanceAliasList = ['InstanceId', 'InstanceName']; -var MONGODBInvalidDemensions = { - target: 'InstanceId' -}; -var templateQueryIdMap = { - instance: 'InstanceId', - replica: 'ReplicaSetId' -}; -var queryMonitorExtraConfg = { - Replica: { - dim_KeyInStorage: 'ReplicaSets', - dim_KeyInTarget: 'replica', - dim_KeyInMap: 'ReplicaSetId', - dim_KeyInIns: 'ReplicaSetId' - }, - Node: { - dim_KeyInStorage: 'ReplicaNodeSets', - dim_KeyInTarget: 'node', - dim_KeyInMap: 'NodeId', - dim_KeyInIns: 'NodeId' - } -}; -/* harmony default export */ __webpack_exports__["default"] = (MONGODB_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/mr/datasource.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/mr/datasource.ts ***! - \************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/mr/query_def.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - -var MrHdfsDatasource = -/** @class */ -function (_super) { - __extends(MrHdfsDatasource, _super); - - function MrHdfsDatasource() { - var _this = _super !== null && _super.apply(this, arguments) || this; - - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_3__["InvalidDemensions"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_3__["InstanceAliasList"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"]; - _this.extrasAlias = []; - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_3__["keyInStorage"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_3__["queryMonitorExtraConfg"]; - _this.InstanceReqConfig = { - service: 'emr', - action: 'DescribeInstances', - responseField: 'ClusterList', - interceptor: { - request: function request(params) { - return __assign(__assign({}, params), { - DisplayStrategy: params.DisplayStrategy || 'monitorManage', - ProjectId: params.ProjectId || -1 - }); - }, - response: function response(data) { - return data.map(function (_a) { - var ClusterId = _a.ClusterId, - ClusterName = _a.ClusterName; - return { - ClusterId: ClusterId, - ClusterName: ClusterName - }; - }); - } - } - }; - return _this; - } - - MrHdfsDatasource.prototype.fetchAllNodes = function (region, params) { - return __awaiter(this, void 0, void 0, function () { - var serviceInfo, rs; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_0__["GetServiceAPIInfo"])(region, 'emr'); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: 'DescribeClusterNodes' - }); - }, __assign(__assign({}, params), { - isOffsetPage: true - }), 'NodeList')]; - - case 1: - rs = _a.sent(); // return rs[0].map((item) => ({ text: item.Ip, value: item.Ip })); - - return [2 - /*return*/ - , rs[0]]; - } - }); - }); - }; - - MrHdfsDatasource.prototype.fetchMetricData = function (action, region, instance) { - return __awaiter(this, void 0, void 0, function () { - var result, _a, resultT; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = action; - - switch (_a) { - case 'DescribeClusterNodes': - return [3 - /*break*/ - , 1]; - } - - return [3 - /*break*/ - , 4]; - - case 1: - return [4 - /*yield*/ - , this.fetchAllNodes(region, { - InstanceId: instance.ClusterId, - NodeFlag: 'all' - })]; - - case 2: - resultT = _b.sent(); - result = resultT.map(function (item) { - item._InstanceAliasValue = item[_query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"].node]; - return { - text: item[_query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"].node], - value: item[_query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"].node] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__["default"].setExtraStorage(this.service, this.keyInStorage.node, resultT)]; - - case 3: - _b.sent(); - - return [2 - /*return*/ - , result]; - - case 4: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return MrHdfsDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (MrHdfsDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/mr/query.ts": -/*!*******************************************!*\ - !*** ./datasource/tc_monitor/mr/query.ts ***! - \*******************************************/ -/*! exports provided: MrQueryCtrl, mrQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MrQueryCtrl", function() { return MrQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mrQuery", function() { return mrQuery; }); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/mr/query_def.ts"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_1__); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - -var ExtraFields = [{ - label: 'NodeIP', - field: 'nodeIP' -}]; - -var MrQueryCtrl = -/** @class */ -function () { - MrQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function MrQueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.InstanceQueryDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_0__["InstanceQueryDescriptor"]; - }; - - $scope.getDropdown = function (field) { - switch (field) { - default: - return []; - } - }; // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } } - - - $scope.cacheMap = {}; - - $scope.getExtraFields = function () { - var _a; - - return Object.keys((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}).some(function (item) { - return item.startsWith('host4'); - }) ? ExtraFields : []; // return ExtraFields; - }; - - $scope.getInstanceId = function () { - var instance = $scope.target.instance; - instance = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(instance); - - if (!instance) { - return ''; - } - - try { - instance = JSON.parse(instance).ClusterId; - } catch (error) {// console.log(); - } - - return instance; - }; - - $scope.onExtraFieldChange = function (field) { - $scope.onRefresh(); - }; - - $scope.getExtraDropdown = function (target, field) { - return __awaiter(_this, void 0, void 0, function () { - var InstanceId, data, region, fetcher, dataT; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(field === 'nodeIP')) return [3 - /*break*/ - , 3]; - InstanceId = $scope.getInstanceId(); - data = $scope.cacheMap[InstanceId]; - if (!!data) return [3 - /*break*/ - , 2]; - region = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(target.region); - fetcher = $scope.datasource.getServiceFn('mrHDFS', 'fetchAllNodes'); - return [4 - /*yield*/ - , fetcher(region, { - InstanceId: InstanceId, - NodeFlag: 'all' - })]; - - case 1: - dataT = _a.sent(); - data = dataT.map(function (item) { - item._InstanceAliasValue = item[_query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"].node]; - return { - text: item[_query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"].node], - value: JSON.stringify(item) - }; - }); - _a.label = 2; - - case 2: - // 缓存 - $scope.cacheMap[InstanceId] = data; - return [2 - /*return*/ - , data]; - - case 3: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - $scope.init(); - } - - return MrQueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n
\n\n \n \n
\n
\n
\n
\n\n
\n"; -function mrQuery() { - return { - template: template, - controller: MrQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_1___default.a.directive('mrQuery', mrQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/mr/query_def.ts": -/*!***********************************************!*\ - !*** ./datasource/tc_monitor/mr/query_def.ts ***! - \***********************************************/ -/*! exports provided: InstanceQueryDescriptor, InvalidDemensions, templateQueryIdMap, InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage, default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceQueryDescriptor", function() { return InstanceQueryDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InvalidDemensions", function() { return InvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); - -var InstanceQueryDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputnumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100', - link: '', - type: 'inputnumber', - min: 1, - max: 100 -}, { - key: 'InstanceIds', - enDescriptor: 'InstanceIds', - cnDescriptor: '按照一个或者多个实例ID查询。实例ID形如: emr-xxxxxxxx ', - link: '', - type: 'inputmulti' -}, { - key: 'OrderField', - enDescriptor: 'OrderBy', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: [{ - text: '实例ID', - value: 'clusterId' - }, { - text: '创建时间', - value: 'addTime' - }, { - text: '状态', - value: 'status' - }] -}, { - key: 'Asc', - enDescriptor: 'Order Direction', - cnDescriptor: '排序方式', - link: '', - type: 'select', - list: [{ - text: '降序', - value: 0 - }, { - text: '升序', - value: 1 - }] -}, { - key: 'ProjectId', - enDescriptor: 'ProjectId', - cnDescriptor: '实例所属项目ID', - link: '', - type: 'inputnumber' -}, { - key: 'DisplayStrategy', - enDescriptor: 'DisplayStrategy', - cnDescriptor: '集群筛选策略', - link: '', - type: 'select', - list: [{ - text: '未销毁的实例', - value: 'clusterList' - }, { - text: '正常运行的实例', - value: 'monitorManage' - }] -}]; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key - - -var InvalidDemensions = new Proxy({}, { - get: function get(target, k, receiver) { - if (typeof k === 'string') { - if (k.startsWith('id4')) return 'ClusterId'; // id4**** - - if (k.startsWith('host4')) return 'Ip'; // host4*** - } - - return Reflect.get(target, k, receiver); - }, - has: function has(target, propKey) { - return true; - } -}); -var templateQueryIdMap = { - instance: 'ClusterId', - node: 'Ip' -}; // 需要缓存到storage的内容的key列表 - -var keyInStorage = { - node: 'nodeIP' -}; -/** - * 如果有InstanceId额外的维度,原则上都需要传入此map结构配置 - * - * `key` 的含义: - * 经过InvalidDemensions处理后的string。topicId => TopicId。 - * 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId - * - * `value` 的含义: - * @param {1} dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - * @param {2} dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - * 默认取通过InvalidDemsion处理后的key - * @param {3} dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - * 即:templateQueryIdMap中内容。 - * 联合上面 2 的内容筛选出原始sourceMap - */ - -var queryMonitorExtraConfg = { - Ip: { - dim_KeyInStorage: keyInStorage.node, - dim_KeyInTarget: 'nodeIP', - dim_KeyInMap: templateQueryIdMap.node - } -}; // 与名称挂钩的变量 - -var InstanceAliasList = ['ClusterId', 'ClusterName']; - // 界面状态模型,default - -/* harmony default export */ __webpack_exports__["default"] = ({ - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'ClusterId', - nodeIP: '', - queries: { - Offset: 0, - Limit: 10, - DisplayStrategy: '', - OrderBy: {}, - Order: {}, - InstanceIds: [], - ProjectId: -1, - OrderField: '', - Asc: '' - } -}); - -/***/ }), - -/***/ "./datasource/tc_monitor/nat_gateway/datasource.ts": -/*!*********************************************************!*\ - !*** ./datasource/tc_monitor/nat_gateway/datasource.ts ***! - \*********************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/nat_gateway/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - -var NATGATEWAYDatasource = -/** @class */ -function (_super) { - __extends(NATGATEWAYDatasource, _super); - - function NATGATEWAYDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/NAT_GATEWAY'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["NATGATEWAYInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["NATInvalidDemensions"]; - _this.templateQueryIdMap = { - instance: 'NatGatewayId' - }; - _this.InstanceReqConfig = { - service: 'vpc', - action: 'DescribeNatGateways', - responseField: 'NatGatewaySet' - }; - return _this; - } - - return NATGATEWAYDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (NATGATEWAYDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/nat_gateway/query.ts": -/*!****************************************************!*\ - !*** ./datasource/tc_monitor/nat_gateway/query.ts ***! - \****************************************************/ -/*! exports provided: NatGatewayQueryCtrl, natGatewayQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NatGatewayQueryCtrl", function() { return NatGatewayQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "natGatewayQuery", function() { return natGatewayQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/nat_gateway/query_def.ts"); - - - -var NatGatewayQueryCtrl = -/** @class */ -function () { - NatGatewayQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function NatGatewayQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.NATGatewayFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["NATGatewayFilterFieldsDescriptor"]; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getDropdown = function (field) { - switch (field) { - default: - return []; - } - }; - - $scope.init(); - } - - return NatGatewayQueryCtrl; -}(); - - -var template = "\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n"; -function natGatewayQuery() { - return { - template: template, - controller: NatGatewayQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('natGatewayQuery', natGatewayQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/nat_gateway/query_def.ts": -/*!********************************************************!*\ - !*** ./datasource/tc_monitor/nat_gateway/query_def.ts ***! - \********************************************************/ -/*! exports provided: default, NATGatewayFilterFieldsDescriptor, NATGATEWAYInstanceAliasList, templateQueryIdMap, NATInvalidDemensions, NATGATEWAYGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NATGatewayFilterFieldsDescriptor", function() { return NATGatewayFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NATGATEWAYInstanceAliasList", function() { return NATGATEWAYInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NATInvalidDemensions", function() { return NATInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NATGATEWAYGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var NATGATEWAYInstanceAliasList = ['NatGatewayId', 'NatGatewayName']; -var NATGatewayFilterFields = { - 'nat-gateway-id': [], - 'nat-gateway-name': [], - 'vpc-id': [] -}; -var NATGatewayFilterFieldsDescriptor = [{ - key: 'nat-gateway-id', - enDescriptor: 'NatGateway ID', - cnDescriptor: 'NAT网关统一 ID', - link: '', - type: 'inputmulti' -}, { - key: 'nat-gateway-name', - enDescriptor: 'NatGateway Name', - cnDescriptor: 'NatGateway Name', - link: '', - type: 'inputmulti' -}, { - key: 'vpc-id', - enDescriptor: 'VPC ID', - cnDescriptor: '私有网络 ID', - link: '', - type: 'inputmulti' -}]; -var NATGATEWAY_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'NatGatewayId', - queries: { - Limit: 20, - Offset: 0, - instanceIdsChecked: false, - filtersChecked: false, - NatGatewayIds: [''], - Filters: __assign({}, NATGatewayFilterFields) - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - - if (queries.instanceIdsChecked) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.NatGatewayIds)) { - var NatGatewayIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.NatGatewayIds); - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(NatGatewayIds).length > 0) { - params.InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(NatGatewayIds).slice(0, 100); - } - } - } else if (queries.filtersChecked) { - var Filters_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) { - if (Filters_1.length > 9) { - return; - } - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5) - }); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5) - }); - } - } - }); - - if (Filters_1.length > 0) { - params.Filters = Filters_1; - } - } - } - - return params; -} - -var templateQueryIdMap = { - instance: 'NatGatewayId' -}; -var NATInvalidDemensions = { - natId: 'NatGatewayId' -}; -/* harmony default export */ __webpack_exports__["default"] = (NATGATEWAY_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/ov_cdn/datasource.ts": -/*!****************************************************!*\ - !*** ./datasource/tc_monitor/ov_cdn/datasource.ts ***! - \****************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ov_cdn/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var OVCDNDatasource = -/** @class */ -function (_super) { - __extends(OVCDNDatasource, _super); - - function OVCDNDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/OV_CDN'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["OVCDNInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["OVCDNInvalidDemensions"]; - _this.templateQueryIdMap = { - instance: 'Domain' - }; - _this.InstanceReqConfig = { - service: 'cdn', - action: 'DescribeDomains', - responseField: 'Domains' - }; - return _this; - } - - OVCDNDatasource.prototype.metricFindQuery = function (query, regex) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), { - region: 'ap-guangzhou' - }), regex)]; - }); - }); - }; - - return OVCDNDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (OVCDNDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/ov_cdn/query.ts": -/*!***********************************************!*\ - !*** ./datasource/tc_monitor/ov_cdn/query.ts ***! - \***********************************************/ -/*! exports provided: OVCDNQueryCtrl, ovCdnQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OVCDNQueryCtrl", function() { return OVCDNQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ovCdnQuery", function() { return ovCdnQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ov_cdn/query_def.ts"); - - - -var OVCDNQueryCtrl = -/** @class */ -function () { - OVCDNQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function OVCDNQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.OVCDNFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["OVCDNFilterFieldsDescriptor"]; - }; // $scope.onChecked = (srcField, dstField) => { - // if ($scope.target.queries[srcField] === true) { - // $scope.target.queries[dstField] = false; - // } - // $scope.onChange(); - // }; - // $scope.getDropdown = (field) => { - // switch (field) { - // case 'zone': - // return $scope.getZones(); - // default: - // return []; - // } - // }; - // $scope.getZones = () => { - // if (!$scope.region) { - // return []; - // } - // return $scope.datasource.getZones('cvm', $scope.region); - // }; - - - $scope.init(); - } - - return OVCDNQueryCtrl; -}(); - - -var template = "\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n"; -function ovCdnQuery() { - return { - template: template, - controller: OVCDNQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('ovCdnQuery', ovCdnQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/ov_cdn/query_def.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/ov_cdn/query_def.ts ***! - \***************************************************/ -/*! exports provided: default, OVCDNFilterFieldsDescriptor, OVCDNInstanceAliasList, templateQueryIdMap, OVCDNInvalidDemensions, OVCDNGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OVCDNFilterFieldsDescriptor", function() { return OVCDNFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OVCDNInstanceAliasList", function() { return OVCDNInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OVCDNInvalidDemensions", function() { return OVCDNInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OVCDNGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var CDNFilterFields = { - origin: [], - domain: [], - resourceId: [], - status: [], - serviceType: [], - projectId: [], - domainType: [], - fullUrlCache: [], - https: [], - originPullProtocol: [], - tagKey: [] -}; -var OVCDNFilterFieldsDescriptor = [{ - key: 'origin', - enDescriptor: 'origin', - cnDescriptor: '主源站', - link: '', - type: 'inputmulti' -}, { - key: 'domain', - enDescriptor: 'domain', - cnDescriptor: '域名', - link: '', - type: 'inputmulti' -}, { - key: 'resourceId', - enDescriptor: 'resourceId', - cnDescriptor: '域名id', - link: '', - type: 'inputmulti' -}, { - key: 'status', - enDescriptor: 'status', - cnDescriptor: '域名状态', - link: '', - type: 'select', - list: [{ - text: 'online', - value: 'online' - }, { - text: 'offline', - value: 'offline' - }, { - text: 'processing', - value: 'processing' - }] -}, { - key: 'serviceType', - enDescriptor: 'serviceType', - cnDescriptor: '业务类型', - link: '', - type: 'select', - list: [{ - text: 'web', - value: 'web' - }, { - text: 'download', - value: 'download' - }, { - text: 'media', - value: 'media' - }] -}, { - key: 'projectId', - enDescriptor: 'projectId', - cnDescriptor: '项目ID', - link: '', - type: 'inputNumbermulti' -}, { - key: 'domainType', - enDescriptor: 'domainType', - cnDescriptor: '主源站类型', - link: '', - type: 'select', - list: [{ - text: '自有源', - value: 'cname' - }, { - text: 'cos接入', - value: 'cos' - }] -}, { - key: 'fullUrlCache', - enDescriptor: 'fullUrlCache', - cnDescriptor: '全路径缓存', - link: '', - type: 'select', - list: [{ - text: '打开', - value: 'on' - }, { - text: '关闭', - value: 'off' - }] -}, { - key: 'https', - enDescriptor: 'https', - cnDescriptor: '是否配置https', - link: '', - type: 'select', - list: [{ - text: 'on', - value: 'on' - }, { - text: 'off', - value: 'off' - }, { - text: 'processing', - value: 'processing' - }] -}, { - key: 'originPullProtocol', - enDescriptor: 'originPullProtocol', - cnDescriptor: '回源协议类型', - link: '', - type: 'select', - list: [{ - text: 'http', - value: 'http' - }, { - text: 'follow', - value: 'follow' - }, { - text: 'https', - value: 'https' - }] -}, { - key: 'tagKey', - enDescriptor: 'tagKey', - cnDescriptor: '标签键', - link: '', - type: 'inputmulti' -}]; -var OVCDN_STATE = { - region: 'ap-guangzhou', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'Domain', - queries: { - Limit: 20, - Offset: 0, - Filters: __assign({}, CDNFilterFields) - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - var Filters_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - Filters_1.push({ - Name: key, - Value: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5) - }); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) { - Filters_1.push({ - Name: key, - Value: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5) - }); - } - } - }); - - if (Filters_1.length > 0) { - params.Filters = Filters_1; - } - } - - return params; -} - -var OVCDNInstanceAliasList = ['Domain', 'ResourceId']; -var OVCDNInvalidDemensions = { - projectId: 'ProjectId', - domain: 'Domain' -}; -var templateQueryIdMap = { - instance: 'Domain' -}; -/* harmony default export */ __webpack_exports__["default"] = (OVCDN_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/pcx/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/pcx/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/pcx/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["PCXInstanceAliasList"]; - _this.InvalidDimensions = {}; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'xx', - action: 'xx', - responseField: 'xx' - }; - return _this; - } - - DCDatasource.prototype.getInstances = function (region, params) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - if (params === void 0) { - params = {}; - } - - params = __assign({ - offset: 0, - limit: 50 - }, params); - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'pcx'); - return this.doRequestV2({ - url: this.url + serviceInfo.path, - data: params - }, serviceInfo.service, { - region: region, - action: 'DescribeVpcPeeringConnections' - }).then(function (response) { - return response.data || []; - }); - }; - /** - * 模板变量中获取全量的 PCX 实例列表 - * @param region 地域信息 - */ - - - DCDatasource.prototype.getVariableInstances = function (region, query) { - var _this = this; - - var result = []; - - var params = __assign({ - Offset: 0, - Limit: 50 - }, query); - - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'pcx'); - return this.doRequestV2({ - url: this.url + serviceInfo.path, - data: params - }, serviceInfo.service, { - region: region, - action: 'DescribeVpcPeeringConnections' - }).then(function (response) { - result = response.data || []; - var total = response.totalCount || 0; - - if (result.length >= total) { - return result; - } else { - var param = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["SliceLength"])(total, 50); - var promises_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_2___default.a.forEach(param, function (item) { - promises_1.push(_this.getInstances(region, item)); - }); - - return Promise.all(promises_1).then(function (responses) { - lodash__WEBPACK_IMPORTED_MODULE_2___default.a.forEach(responses, function (item) { - result = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.concat(result, item); - }); - - return result; - })["catch"](function (error) { - return result; - }); - } - }); - }; - - DCDatasource.prototype.getVpcId = function (region, params) { - if (params === void 0) { - params = {}; - } - - params = __assign({ - Offset: 0, - Limit: 20 - }, params); // TODO 等待腾讯云接口查问题 - - params.Offset = String(params.Offset); - params.Limit = String(params.Limit); - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'vpc'); - return this.doRequest({ - url: this.url + serviceInfo.path, - data: params - }, serviceInfo.service, { - region: region, - action: 'DescribeVpcs' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.VpcSet || [], function (item) { - return { - text: item.VpcId, - value: item.VpcId - }; - }); - }); - }; - - DCDatasource.prototype.getVpcIds = function (region) { - var _this = this; - - var result = []; - var params = { - Offset: 0, - Limit: 100 - }; // TODO 等待腾讯云接口查问题 - - params.Offset = String(params.Offset); - params.Limit = String(params.Limit); - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'vpc'); - return this.doRequest({ - url: this.url + serviceInfo.path, - data: params - }, serviceInfo.service, { - region: region, - action: 'DescribeVpcs' - }).then(function (response) { - result = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.VpcSet || [], function (item) { - return { - text: item.VpcId, - value: item.VpcId - }; - }); - var total = response.TotalCount || 0; - - if (result.length >= total) { - return result; - } else { - var param = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["SliceLength"])(total, 100); - var promises_2 = []; - - lodash__WEBPACK_IMPORTED_MODULE_2___default.a.forEach(param, function (item) { - promises_2.push(_this.getVpcId(region, item)); - }); - - return Promise.all(promises_2).then(function (responses) { - lodash__WEBPACK_IMPORTED_MODULE_2___default.a.forEach(responses, function (item) { - result = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.concat(result, item); - }); - - return result; - })["catch"](function (error) { - return result; - }); - } - }); - }; - /** - * 腾讯云 API 2.0 请求接口 - * @param options - * @param service - * @param signObj - */ - - - DCDatasource.prototype.doRequestV2 = function (options, service, signObj) { - if (signObj === void 0) { - signObj = {}; - } - - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetRequestParamsV2"])(options, service, signObj, this.secretId, this.instanceSettings.id, this.backendSrv)]; - - case 1: - options = _a.sent(); - return [2 - /*return*/ - , this.backendSrv.datasourceRequest(options).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(response, 'data', {}); - })["catch"](function (error) { - throw error; - })]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/pcx/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/pcx/query.ts ***! - \********************************************/ -/*! exports provided: PCXQueryCtrl, pcxQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PCXQueryCtrl", function() { return PCXQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pcxQuery", function() { return pcxQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/pcx/query_def.ts"); - - - -var PCXQueryCtrl = -/** @class */ -function () { - PCXQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function PCXQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.PCXFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["PCXFieldsDescriptor"]; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getDropdown = function (field) { - switch (field) { - case 'vpcId': - return $scope.getVpcIds(); - - default: - return []; - } - }; - - $scope.getVpcIds = function () { - if (!$scope.region) { - return []; - } - - return $scope.datasource.getVpcIds('pcx', $scope.region); - }; - - $scope.init(); - } - - return PCXQueryCtrl; -}(); - - -var template = "\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n"; -function pcxQuery() { - return { - template: template, - controller: PCXQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('pcxQuery', pcxQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/pcx/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/pcx/query_def.ts ***! - \************************************************/ -/*! exports provided: default, PCXInstanceAliasList, PCXFieldsDescriptor, templateQueryIdMap, namespace, PCXGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PCXInstanceAliasList", function() { return PCXInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PCXFieldsDescriptor", function() { return PCXFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PCXGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var namespace = 'QCE/PCX'; -var PCXFields = { - limit: 20, - offset: 0, - peeringConnectionId: '', - peeringConnectionName: '', - vpcId: '', - state: undefined -}; -var PCX_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'peeringConnectionId', - queries: __assign({}, PCXFields) -}; -var StateTypes = [{ - text: '申请中', - value: 0 -}, { - text: '连接成功', - value: 1 -}, { - text: '已过期', - value: 2 -}, { - text: '对端已拒绝', - value: 3 -}, { - text: '对端已删除', - value: 4 -}]; -var PCXFieldsDescriptor = [{ - key: 'offset', - enDescriptor: 'offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputnumber', - min: 0 -}, { - key: 'limit', - enDescriptor: 'limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为50', - link: '', - type: 'inputnumber', - min: 1, - max: 50 -}, { - key: 'peeringConnectionId', - enDescriptor: 'PeeringConnection Id', - cnDescriptor: '私有网络对等连接 ID', - link: '', - type: 'input' -}, { - key: 'peeringConnectionName', - enDescriptor: 'PeeringConnection Name', - cnDescriptor: '对等连接名称', - link: '', - type: 'input' -}, { - key: 'vpcId', - enDescriptor: 'vpcId', - cnDescriptor: '发起方私有网络 ID 值', - link: 'https://cloud.tencent.com/document/api/215/1372', - type: 'dropdown' -}, { - key: 'state', - enDescriptor: 'state', - cnDescriptor: '连接状态', - link: '', - type: 'select', - list: StateTypes -}]; -var PCXInstanceAliasList = ['peeringConnectionId', 'peeringConnectionName']; -var templateQueryIdMap = { - instance: 'peeringConnectionId' -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'limit', 20) || 20; - params.offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['offset', 'limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} - -/* harmony default export */ __webpack_exports__["default"] = (PCX_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/postgresql/datasource.ts": -/*!********************************************************!*\ - !*** ./datasource/tc_monitor/postgresql/datasource.ts ***! - \********************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/postgresql/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - -var CDBDatasource = -/** @class */ -function (_super) { - __extends(CDBDatasource, _super); - - function CDBDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["POSTGRESInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["PostgreInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; - _this.InstanceReqConfig = { - service: 'postgres', - action: 'DescribeDBInstances', - responseField: 'DBInstanceSet' - }; - _this.MetricReqConfig = { - resultFilter: _query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"] - }; - return _this; - } - - return CDBDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CDBDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/postgresql/query.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/postgresql/query.ts ***! - \***************************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/postgresql/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/postgresql/query_def.ts": -/*!*******************************************************!*\ - !*** ./datasource/tc_monitor/postgresql/query_def.ts ***! - \*******************************************************/ -/*! exports provided: default, PostgresFieldsDescriptor, POSTGRESInstanceAliasList, templateQueryIdMap, modifyDimensons, namespace, queryEditorName, queryEditorConfig, PostgreInvalidDemensions, POSTGRESGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PostgresFieldsDescriptor", function() { return PostgresFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "POSTGRESInstanceAliasList", function() { return POSTGRESInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PostgreInvalidDemensions", function() { return PostgreInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "POSTGRESGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - - -var namespace = 'QCE/POSTGRES'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'postgresQuery'; -var PostgresFields = { - 'db-instance-id': [], - 'db-instance-name': [] -}; -var PostgresFieldsDescriptor = [{ - key: 'db-instance-id', - enDescriptor: 'DB Instance ID', - cnDescriptor: 'DB 实例ID', - link: '', - type: 'inputMulti', - min: 0 -}, { - key: 'db-instance-name', - enDescriptor: 'DB Instance Name', - cnDescriptor: 'DB 实例名称', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/409/16773', - namespace: namespace, - fieldDescriptor: PostgresFieldsDescriptor -}; -var POSTGRESInstanceAliasList = ['DBInstanceId', 'DBInstanceName']; -var POSTGRES_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'DBInstanceId', - queries: { - Limit: 20, - Offset: 0, - Filters: __assign({}, PostgresFields) - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true); -} - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['resourceId']; - }); - return metricTmp; -} - -var PostgreInvalidDemensions = { - uid: 'DBInstanceId', - resourceId: 'DBInstanceId' -}; -var templateQueryIdMap = { - instance: 'DBInstanceId' -}; -/* harmony default export */ __webpack_exports__["default"] = (POSTGRES_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/qaap/datasource.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/qaap/datasource.ts ***! - \**************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/qaap/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - -var QAAPDatasource = -/** @class */ -function (_super) { - __extends(QAAPDatasource, _super); // MetricReqConfig = { - // resultFilter: modifyDimensons, - // }; - - - function QAAPDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["QAAPInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["QAAPInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'gaap', - action: 'DescribeProxies', - responseField: 'ProxySet', - interceptor: {// response: (data: unknown[]) =>[ - // { - // "NetDetectId": "netd-12345678", - // }, - // ], - } - }; - return _this; - } - - QAAPDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , rawSet.filter(function (item) { - return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(item, 'Dimensions.length') === 1 && Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(item, 'Dimensions[0].Dimensions.length') === 1 && Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(item, 'Dimensions[0].Dimensions[0]') === 'channelId'; - })]; - } - }); - }); - }; - - return QAAPDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (QAAPDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/qaap/query.ts": -/*!*********************************************!*\ - !*** ./datasource/tc_monitor/qaap/query.ts ***! - \*********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/qaap/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/qaap/query_def.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/qaap/query_def.ts ***! - \*************************************************/ -/*! exports provided: default, QAAPFilterFieldsDescriptor, templateQueryIdMap, QAAPInstanceAliasList, QAAPInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, QAAPGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QAAPFilterFieldsDescriptor", function() { return QAAPFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QAAPInstanceAliasList", function() { return QAAPInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QAAPInvalidDemensions", function() { return QAAPInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QAAPGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - - -var namespace = 'QCE/QAAP'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'qaapQuery'; -var QAAPInvalidDemensions = { - channelId: 'InstanceId' -}; -var QAAPInstanceAliasList = ['InstanceId']; -var templateQueryIdMap = { - instance: 'InstanceId' -}; // select类型需要注意是{},multi后缀是[] - -var QAAPFilterFields = { - Limit: 20, - Offset: 0, - ProjectId: [], - AccessRegion: [], - RealServerRegion: [], - GroupId: [] -}; -var QAAPFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'ProjectId', - enDescriptor: 'ProjectId', - cnDescriptor: '项目ID', - link: '', - type: 'inputMulti' -}, { - key: 'AccessRegion', - enDescriptor: 'AccessRegion', - cnDescriptor: '接入地域', - link: '', - type: 'inputMulti' -}, { - key: 'RealServerRegion', - enDescriptor: 'RealServerRegion', - cnDescriptor: '源站地域', - link: '', - type: 'inputMulti' -}, { - key: 'GroupId', - enDescriptor: 'GroupId', - cnDescriptor: '通道组ID', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/608/36963', - namespace: namespace, - fieldDescriptor: QAAPFilterFieldsDescriptor -}; -var QAAP_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: QAAPFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true); -} - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); // metricTmp.Dimensions.forEach((item) => { - // item.Dimensions = ['netDetectId']; - // }); - - - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (QAAP_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/redis/datasource.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/redis/datasource.ts ***! - \***************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/redis/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var REDISDatasource = -/** @class */ -function (_super) { - __extends(REDISDatasource, _super); - - function REDISDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/REDIS'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["REDISInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["RedisInvalidDemensions"]; - _this.templateQueryIdMap = { - instance: 'InstanceId' - }; - _this.InstanceReqConfig = { - service: 'redis', - action: 'DescribeInstances', - responseField: 'InstanceSet', - interceptor: { - request: function request(params) { - return __assign(__assign({}, params), { - MonitorVersion: '1m' - }); - } - } - }; - return _this; - } - - REDISDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , rawSet.filter(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["isValidMetric"])(item); - })]; - } - }); - }); - }; - - return REDISDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (REDISDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/redis/query.ts": -/*!**********************************************!*\ - !*** ./datasource/tc_monitor/redis/query.ts ***! - \**********************************************/ -/*! exports provided: RedisQueryCtrl, redisQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisQueryCtrl", function() { return RedisQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "redisQuery", function() { return redisQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/redis/query_def.ts"); - - - -var RedisQueryCtrl = -/** @class */ -function () { - RedisQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function RedisQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.RedisFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["RedisFieldsDescriptor"]; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getDropdown = function (field) { - switch (field) { - default: - return []; - } - }; - - $scope.init(); - } - - return RedisQueryCtrl; -}(); - - -var template = "\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n"; -function redisQuery() { - return { - template: template, - controller: RedisQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('redisQuery', redisQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/redis/query_def.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/redis/query_def.ts ***! - \**************************************************/ -/*! exports provided: default, RedisFieldsDescriptor, RedisInvalidDemensions, templateQueryIdMap, REDISInstanceAliasList, isValidMetric, REDISGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisFieldsDescriptor", function() { return RedisFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisInvalidDemensions", function() { return RedisInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REDISInstanceAliasList", function() { return REDISInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REDISGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var BillingMode = [{ - text: '按量计费', - value: 'postpaid' -}, { - text: '包年包月', - value: 'prepaid' -}]; -var AutoRenew = [{ - text: '手动续费', - value: 0 -}, { - text: '自动续费', - value: 1 -}, { - text: '明确不自动续费', - value: 2 -}]; -var Status = [{ - text: '待初始化', - value: 0 -}, { - text: '流程执行中', - value: 1 -}, { - text: '运行中', - value: 2 -}, { - text: '已隔离', - value: -2 -}, { - text: '待删除', - value: -3 -}]; -var TypeVersion = [{ - text: '单机版', - value: 1 -}, { - text: '主从版', - value: 2 -}, { - text: '集群版', - value: 3 -}]; -var OrderBy = [{ - text: 'projectId', - value: 'projectId' -}, { - text: 'instancename', - value: 'instancename' -}, { - text: 'createtime', - value: 'createtime' -}, { - text: 'type', - value: 'type' -}, { - text: 'curDeadline', - value: 'curDeadline' -}]; -var OrderType = [{ - text: '升序', - value: 0 -}, { - text: '降序', - value: 1 -}]; -var Type = [{ - text: 'Redis老集群版', - value: 1 -}, { - text: 'Redis 2.8主从版', - value: 2 -}, { - text: 'CKV主从版', - value: 3 -}, { - text: 'CKV集群版', - value: 4 -}, { - text: 'Redis 2.8单机版', - value: 5 -}, { - text: 'Redis 4.0主从版', - value: 6 -}, { - text: 'Redis 4.0集群版', - value: 7 -}, { - text: 'Redis5.0主从版', - value: 8 -}, { - text: 'Redis5.0集群版', - value: 9 -}]; -var RedisFields = { - InstanceId: '', - OrderBy: '', - OrderType: null, - VpcIds: [], - SubnetIds: [], - ProjectIds: [], - SearchKey: '', - InstanceName: '', - UniqVpcIds: [], - UniqSubnetIds: [], - Status: [], - TypeVersion: null, - EngineName: '', - AutoRenew: null, - BillingMode: '', - Type: null -}; -var RedisFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputnumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputnumber', - min: 1, - max: 100 -}, { - key: 'InstanceId', - enDescriptor: 'InstancesId', - cnDescriptor: '实例id', - type: 'input' -}, { - key: 'OrderBy', - enDescriptor: 'OrderBy', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: OrderBy -}, { - key: 'OrderType', - enDescriptor: 'OrderType', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: OrderType -}, { - key: 'VpcIds', - enDescriptor: 'VpcIds', - cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525', - link: '', - type: 'inputmulti' -}, { - key: 'SubnetIds', - enDescriptor: 'SubnetIds', - cnDescriptor: '子网ID数组,数组下标从0开始,如:56854', - link: '', - type: 'inputmulti' -}, { - key: 'ProjectIds', - enDescriptor: 'ProjectIds', - cnDescriptor: '项目ID 组成的数组', - link: '', - type: 'inputmulti' -}, { - key: 'SearchKey', - enDescriptor: 'SearchKey', - cnDescriptor: '查找实例的ID', - link: '', - type: 'input' -}, { - key: 'InstanceName', - enDescriptor: 'InstanceName', - cnDescriptor: '实例名称', - link: '', - type: 'input' -}, { - key: 'UniqVpcIds', - enDescriptor: 'UniqVpcIds', - cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk', - link: '', - type: 'inputmulti' -}, { - key: 'UniqSubnetIds', - enDescriptor: 'UniqSubnetIds', - cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2', - link: '', - type: 'inputmulti' -}, { - key: 'Status', - enDescriptor: 'Status', - cnDescriptor: '实例状态', - multiple: true, - type: 'select', - list: Status -}, { - key: 'TypeVersion', - enDescriptor: 'TypeVersion', - cnDescriptor: '类型版本', - link: '', - type: 'select', - list: TypeVersion -}, { - key: 'EngineName', - enDescriptor: 'EngineName', - cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV', - link: '', - type: 'input' -}, { - key: 'AutoRenew', - enDescriptor: 'AutoRenew', - cnDescriptor: '续费模式', - multiple: true, - type: 'select', - list: AutoRenew -}, { - key: 'BillingMode', - enDescriptor: 'BillingMode', - cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月', - link: '', - type: 'select', - list: BillingMode -}, { - key: 'Type', - enDescriptor: 'Type', - cnDescriptor: '实例类型', - link: '', - type: 'select', - list: Type -}]; -var REDIS_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: __assign({}, RedisFields) -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - // select 单选 - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} - -function isValidMetric(metricObj) { - if (metricObj === void 0) { - metricObj = {}; - } - - var dimension = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(metricObj, 'Dimensions[0].Dimensions'); - - return dimension.length === 1 && lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(dimension, 'instanceid') !== -1; -} - -var REDISInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp']; -var RedisInvalidDemensions = { - redis_uuid: 'InstanceId', - instanceid: 'InstanceId' -}; -var templateQueryIdMap = { - instance: 'InstanceId' -}; -/* harmony default export */ __webpack_exports__["default"] = (REDIS_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/redis_mem/datasource.ts": -/*!*******************************************************!*\ - !*** ./datasource/tc_monitor/redis_mem/datasource.ts ***! - \*******************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/redis_mem/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - -var REDISDatasource = -/** @class */ -function (_super) { - __extends(REDISDatasource, _super); - - function REDISDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["REDISMEMInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["RedisMemInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"]; - _this.extrasAlias = [_query_def__WEBPACK_IMPORTED_MODULE_1__["RedisMemInvalidDemensions"].pnodeid, _query_def__WEBPACK_IMPORTED_MODULE_1__["RedisMemInvalidDemensions"].rnodeid]; - _this.InstanceReqConfig = { - service: 'redis', - action: 'DescribeInstances', - responseField: 'InstanceSet', - interceptor: { - request: function request(params) { - return __assign(__assign({}, params), { - MonitorVersion: '5s' - }); - } - } - }; - return _this; - } - - REDISDatasource.prototype.getInstanceNodeInfo = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, instanceId, serviceInfo, res; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - region = params.region, instanceId = params.instanceId; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'redis'); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: 'DescribeInstanceNodeInfo' - }); - }, { - InstanceId: instanceId - }, _query_def__WEBPACK_IMPORTED_MODULE_1__["NodeType"])]; - - case 1: - res = _a.sent(); - return [2 - /*return*/ - , res]; - } - }); - }); - }; - - REDISDatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - var rs, nodetype, ndoeTypeIndex; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(action === 'DescribeInstanceNodeInfo')) return [3 - /*break*/ - , 2]; - return [4 - /*yield*/ - , this.getInstanceNodeInfo({ - region: region, - instanceId: instance[this.templateQueryIdMap.instance] - })]; - - case 1: - rs = _a.sent(); - nodetype = query.nodetype; - ndoeTypeIndex = _query_def__WEBPACK_IMPORTED_MODULE_1__["NodeType"].indexOf(nodetype); - return [2 - /*return*/ - , ndoeTypeIndex === -1 ? [] : lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(rs[ndoeTypeIndex], function (item) { - return { - text: item.NodeId, - value: item.NodeId - }; - })]; - - case 2: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return REDISDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (REDISDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/redis_mem/query.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/redis_mem/query.ts ***! - \**************************************************/ -/*! exports provided: RedisMemQueryCtrl, redisMemQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisMemQueryCtrl", function() { return RedisMemQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "redisMemQuery", function() { return redisMemQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/redis_mem/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - -var RedisMemQueryCtrl = -/** @class */ -function () { - RedisMemQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function RedisMemQueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.RedisMemFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_2__["RedisMemFieldsDescriptor"]; - }; - - $scope.clearExtrasAlias = function () { - $scope.target.rnodeid = ''; - $scope.target.pnodeid = ''; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getDropdown = function (field) { - switch (field) { - default: - return []; - } - }; - - $scope.getVariableId = function (data, type) { - var variableData = data; - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])(_query_def__WEBPACK_IMPORTED_MODULE_2__["namespace"]); - variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData); - - if (!variableData) { - return ''; - } - - try { - variableData = JSON.parse(variableData)[_query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"][type]]; - } catch (error) {} - - return variableData; - }; - - $scope.getExtraDropdown = function (target, nodetype) { - return __awaiter(_this, void 0, void 0, function () { - var instance, service, instanceId, region, rs, ndoeTypeIndex; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - instance = $scope.target.instance; - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])(_query_def__WEBPACK_IMPORTED_MODULE_2__["namespace"]); - instanceId = $scope.getVariableId(instance, 'instance'); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, 'getInstanceNodeInfo')({ - region: region, - instanceId: instanceId - })]; - - case 1: - rs = _a.sent(); - ndoeTypeIndex = _query_def__WEBPACK_IMPORTED_MODULE_2__["NodeType"].indexOf(nodetype); - return [2 - /*return*/ - , ndoeTypeIndex === -1 ? [] : Object(lodash__WEBPACK_IMPORTED_MODULE_1__["map"])(rs[ndoeTypeIndex], function (item) { - return { - text: item.NodeId, - value: item.NodeId - }; - })]; - } - }); - }); - }; - - $scope.init(); - } - - return RedisMemQueryCtrl; -}(); - - -var template = "\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n"; -function redisMemQuery() { - return { - template: template, - controller: RedisMemQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - onChange: '&', - onRefresh: '&', - dims: '=' - }, - link: function link(scope, element, attrs) { - scope.$watch('target.instance', function () { - var _a; - - (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope); - }); - scope.$watch('target.metricName', function () { - var _a; - - (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope); - }); - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('redisMemQuery', redisMemQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/redis_mem/query_def.ts": -/*!******************************************************!*\ - !*** ./datasource/tc_monitor/redis_mem/query_def.ts ***! - \******************************************************/ -/*! exports provided: default, RedisMemFieldsDescriptor, RedisMemInvalidDemensions, REDISMEMInstanceAliasList, templateQueryIdMap, namespace, NodeType, REDISMEMGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisMemFieldsDescriptor", function() { return RedisMemFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisMemInvalidDemensions", function() { return RedisMemInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REDISMEMInstanceAliasList", function() { return REDISMEMInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodeType", function() { return NodeType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REDISMEMGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - - -var namespace = 'QCE/REDIS_MEM'; -var BillingMode = [{ - text: '按量计费', - value: 'postpaid' -}, { - text: '包年包月', - value: 'prepaid' -}]; -var AutoRenew = [{ - text: '手动续费', - value: 0 -}, { - text: '自动续费', - value: 1 -}, { - text: '明确不自动续费', - value: 2 -}]; -var Status = [{ - text: '待初始化', - value: 0 -}, { - text: '流程执行中', - value: 1 -}, { - text: '运行中', - value: 2 -}, { - text: '已隔离', - value: -2 -}, { - text: '待删除', - value: -3 -}]; -var TypeVersion = [{ - text: '单机版', - value: 1 -}, { - text: '主从版', - value: 2 -}, { - text: '集群版', - value: 3 -}]; -var OrderBy = [{ - text: 'projectId', - value: 'projectId' -}, { - text: 'instancename', - value: 'instancename' -}, { - text: 'createtime', - value: 'createtime' -}, { - text: 'type', - value: 'type' -}, { - text: 'curDeadline', - value: 'curDeadline' -}]; -var OrderType = [{ - text: '升序', - value: 0 -}, { - text: '降序', - value: 1 -}]; -var Type = [{ - text: 'Redis老集群版', - value: 1 -}, { - text: 'Redis 2.8主从版', - value: 2 -}, { - text: 'CKV主从版', - value: 3 -}, { - text: 'CKV集群版', - value: 4 -}, { - text: 'Redis 2.8单机版', - value: 5 -}, { - text: 'Redis 4.0主从版', - value: 6 -}, { - text: 'Redis 4.0集群版', - value: 7 -}, { - text: 'Redis5.0主从版', - value: 8 -}, { - text: 'Redis5.0集群版', - value: 9 -}]; -var RedisFields = { - InstanceId: '', - OrderBy: '', - OrderType: null, - VpcIds: [], - SubnetIds: [], - ProjectIds: [], - SearchKey: '', - InstanceName: '', - UniqVpcIds: [], - UniqSubnetIds: [], - Status: [], - TypeVersion: null, - EngineName: '', - AutoRenew: null, - BillingMode: '', - Type: null -}; -var RedisMemFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputnumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputnumber', - min: 1, - max: 100 -}, { - key: 'InstanceId', - enDescriptor: 'InstancesId', - cnDescriptor: '实例id', - type: 'input' -}, { - key: 'OrderBy', - enDescriptor: 'OrderBy', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: OrderBy -}, { - key: 'OrderType', - enDescriptor: 'OrderType', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: OrderType -}, { - key: 'VpcIds', - enDescriptor: 'VpcIds', - cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525', - link: '', - type: 'inputmulti' -}, { - key: 'SubnetIds', - enDescriptor: 'SubnetIds', - cnDescriptor: '子网ID数组,数组下标从0开始,如:56854', - link: '', - type: 'inputmulti' -}, { - key: 'ProjectIds', - enDescriptor: 'ProjectIds', - cnDescriptor: '项目ID 组成的数组', - link: '', - type: 'inputmulti' -}, { - key: 'SearchKey', - enDescriptor: 'SearchKey', - cnDescriptor: '查找实例的ID', - link: '', - type: 'input' -}, { - key: 'InstanceName', - enDescriptor: 'InstanceName', - cnDescriptor: '实例名称', - link: '', - type: 'input' -}, { - key: 'UniqVpcIds', - enDescriptor: 'UniqVpcIds', - cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk', - link: '', - type: 'inputmulti' -}, { - key: 'UniqSubnetIds', - enDescriptor: 'UniqSubnetIds', - cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2', - link: '', - type: 'inputmulti' -}, { - key: 'Status', - enDescriptor: 'Status', - cnDescriptor: '实例状态', - multiple: true, - type: 'select', - list: Status -}, { - key: 'TypeVersion', - enDescriptor: 'TypeVersion', - cnDescriptor: '类型版本', - link: '', - type: 'select', - list: TypeVersion -}, { - key: 'EngineName', - enDescriptor: 'EngineName', - cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV', - link: '', - type: 'input' -}, { - key: 'AutoRenew', - enDescriptor: 'AutoRenew', - cnDescriptor: '续费模式', - multiple: true, - type: 'select', - list: AutoRenew -}, { - key: 'BillingMode', - enDescriptor: 'BillingMode', - cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月', - link: '', - type: 'select', - list: BillingMode -}, { - key: 'Type', - enDescriptor: 'Type', - cnDescriptor: '实例类型', - link: '', - type: 'select', - list: Type -}]; -var REDISMEM_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: __assign({}, RedisFields), - rnodeid: '', - pnodeid: '' -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - // select 单选 - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} - -var REDISMEMInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp']; -var RedisMemInvalidDemensions = { - instanceid: 'InstanceId', - rnodeid: 'rnodeid', - pnodeid: 'pnodeid' -}; -var templateQueryIdMap = { - instance: 'InstanceId', - rnodeid: 'rnodeid', - pnodeid: 'pnodeid' -}; -var NodeType = ['Redis', 'Proxy']; -/* harmony default export */ __webpack_exports__["default"] = (REDISMEM_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/scf/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/scf/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/scf/query_def.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - -var SCFDatasource = -/** @class */ -function (_super) { - __extends(SCFDatasource, _super); - - function SCFDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_2__["queryMonitorExtraConfg"]; - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_2__["keyInStorage"]; - _this.Namespace = 'QCE/SCF_V2'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_2__["SCFInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_2__["SCFInvalidDemensions"]; - _this.InstanceReqConfig = { - service: 'scf', - action: 'ListFunctions', - responseField: 'Functions' - }; - return _this; - } - - SCFDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_2__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_4__["t"])(value) - }; - })); - }; - - SCFDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , rawSet.filter(function (item) { - var _a, _b, _c, _d, _e, _f; - /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含functionName的指标 */ - - - return ((_c = (_b = (_a = item.Dimensions) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Dimensions) === null || _c === void 0 ? void 0 : _c.includes('functionName')) && ((_f = (_e = (_d = item.Dimensions) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.Dimensions) === null || _f === void 0 ? void 0 : _f.includes('namespace')) && !item.MetricName.startsWith('Name'); - })]; - } - }); - }); - }; - - SCFDatasource.prototype.getVersions = function (region, params) { - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_0__["GetServiceAPIInfo"])(region, 'scf'); - return this.doRequest({ - url: this.url + serviceInfo.path, - data: params - }, serviceInfo.service, { - region: region, - action: 'ListVersionByFunction' - }).then(function (response) { - return response.Versions; - }); - }; - - SCFDatasource.prototype.fetchMetricData = function (action, region, instance) { - return __awaiter(this, void 0, void 0, function () { - var rs, result; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(action === 'ListVersionByFunction')) return [3 - /*break*/ - , 3]; - return [4 - /*yield*/ - , this.getVersions(region, { - FunctionName: instance[this.templateQueryIdMap.instance] - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_this.templateQueryIdMap.version]; - return { - text: o[_this.templateQueryIdMap.version], - value: o[_this.templateQueryIdMap.version] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].setExtraStorage(this.service, this.keyInStorage.version, rs)]; - - case 2: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 3: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return SCFDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (SCFDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/scf/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/scf/query.ts ***! - \********************************************/ -/*! exports provided: SCFQueryCtrl, scfQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFQueryCtrl", function() { return SCFQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scfQuery", function() { return scfQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/scf/query_def.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var SCFQueryCtrl = -/** @class */ -function () { - SCFQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function SCFQueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.SCFQueryDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["SCFQueryDescriptor"]; - }; - - $scope.getInstanceId = function () { - var instance = $scope.target.instance; - instance = $scope.datasource.getServiceFn('scf', 'getVariable')(instance); - - if (!instance) { - return ''; - } - - try { - instance = JSON.parse(instance).FunctionName; - } catch (error) {// console.log(); - } - - return instance; - }; - - $scope.getVersions = function (target) { - return __awaiter(_this, void 0, void 0, function () { - var FunctionName, region, fetcher; - return __generator(this, function (_a) { - FunctionName = $scope.getInstanceId(); - region = $scope.datasource.getServiceFn('scf', 'getVariable')(target.region); - if (!FunctionName || !region) return [2 - /*return*/ - , []]; - fetcher = $scope.datasource.getServiceFn('scf', 'getVersions'); - return [2 - /*return*/ - , fetcher(region, { - FunctionName: FunctionName - }).then(function (res) { - // console.log(res, 'res'); - var result = res.map(function (o) { - o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].version]; - return { - text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].version], - value: JSON.stringify(o) - }; - }); - return result; - })]; - }); - }); - }; // $scope.onChecked = (srcField, dstField) => { - // if ($scope.target.queries[srcField] === true) { - // $scope.target.queries[dstField] = false; - // } - // $scope.onChange(); - // }; - // $scope.getDropdown = (field) => { - // switch (field) { - // case 'zone': - // return $scope.getZones(); - // default: - // return []; - // } - // }; - // $scope.getZones = () => { - // if (!$scope.region) { - // return []; - // } - // return $scope.datasource.getZones('cvm', $scope.region); - // }; - - - $scope.init(); - } - - return SCFQueryCtrl; -}(); - - -var template = "\n
\n\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n"; -function scfQuery() { - return { - template: template, - controller: SCFQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('scfQuery', scfQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/scf/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/scf/query_def.ts ***! - \************************************************/ -/*! exports provided: SCFQueryDescriptor, default, SCFInstanceAliasList, SCFInvalidDemensions, queryMonitorExtraConfg, regionSupported, templateQueryIdMap, keyInStorage, SCFGetInstanceQueryParams, SCFDefaultDimensionList */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFQueryDescriptor", function() { return SCFQueryDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFInstanceAliasList", function() { return SCFInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFInvalidDemensions", function() { return SCFInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFDefaultDimensionList", function() { return SCFDefaultDimensionList; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); - -var SCFQueryDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputnumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputnumber', - min: 1, - max: 100 -}, { - key: 'SearchKey', - enDescriptor: 'SearchKey', - cnDescriptor: '支持FunctionName模糊匹配', - link: '', - type: 'input' -}, { - key: 'Namespace', - enDescriptor: 'Namespace', - cnDescriptor: '云函数命名空间', - link: '', - type: 'input' -}, { - key: 'Description', - enDescriptor: 'Description', - cnDescriptor: '函数描述,支持模糊搜索', - link: '', - type: 'input' -}, { - key: 'OrderBy', - enDescriptor: 'OrderBy', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: [{ - text: 'AddTime', - value: 'AddTime' - }, { - text: 'ModTime', - value: 'ModTime' - }, { - text: 'FunctionName', - value: 'FunctionName' - }] -}, { - key: 'Order', - enDescriptor: 'Order Direction', - cnDescriptor: '排序方式', - link: '', - type: 'select', - list: [{ - text: 'ASC', - value: 'ASC' - }, { - text: 'DESC', - value: 'DESC' - }] -} // { -// key: 'Filters', -// enDescriptor: 'Filters', -// cnDescriptor: '按照标签键值对进行过滤', -// link: '', -// type: 'dropdownmulti', -// }, -]; -var SCF_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'FunctionName', - version: '', - queries: { - Offset: 0, - Limit: 20, - OrderBy: {}, - Order: {}, - SearchKey: '', - Namespace: '', - Description: '' // Filters: {}, - - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']); - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - params[key] = item; - } - }); - } - - return params; -} - -var SCFInstanceAliasList = ['FunctionId', 'FunctionName']; // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key - -var SCFInvalidDemensions = { - functionName: 'FunctionName', - namespace: 'Namespace', - version: 'Version' -}; -var templateQueryIdMap = { - instance: 'FunctionName', - version: 'Version' -}; -var regionSupported = [{ - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, { - value: 'ap-chongqing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-mumbai' -}, { - value: 'ap-shanghai' -}, { - value: 'ap-shanghai-fsi' -}, { - value: 'ap-shenzhen-fsi' -}, { - value: 'ap-singapore' -}, { - value: 'ap-tokyo' -}, { - value: 'eu-frankfurt' -}, { - value: 'na-siliconvalley' -}, { - value: 'na-toronto' -}]; // 需要缓存到storage的内容的key列表 - -var keyInStorage = { - version: 'version' -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - Version: { - dim_KeyInStorage: keyInStorage.version, - dim_KeyInTarget: 'version', - dim_KeyInMap: templateQueryIdMap.version - } -}; -/* harmony default export */ __webpack_exports__["default"] = (SCF_STATE); - // monitor监控数据默认支持的维度 - -var SCFDefaultDimensionList = ['functionName', 'namespace', 'version']; - -/***/ }), - -/***/ "./datasource/tc_monitor/sqlserver/datasource.ts": -/*!*******************************************************!*\ - !*** ./datasource/tc_monitor/sqlserver/datasource.ts ***! - \*******************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/sqlserver/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["SQLSERVERInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["SQLSERVERInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'sqlserver', - action: 'DescribeDBInstances', - responseField: 'DBInstances' - }; - return _this; - } - - DCDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_3___default.a.compact(rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item); - }))]; - } - }); - }); - }; - - DCDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_4__["t"])(value) - }; - })); - }; - - DCDatasource.prototype.getFilterDropdown = function (_a) { - var field = _a.field, - region = _a.region; - - if (field === 'Zone') { - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'cvm'); - return this.doRequest({ - url: this.url + serviceInfo.path - }, serviceInfo.service, { - region: region, - action: 'DescribeZones' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_3___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_3___default.a.map(response.ZoneSet || [], function (item) { - return { - text: item.ZoneName, - value: item.Zone, - ZoneState: item.ZoneState, - Zone: item.Zone - }; - }), function (item) { - return item.ZoneState === 'AVAILABLE'; - }); - }); - } - - return []; - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/sqlserver/query.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/sqlserver/query.ts ***! - \**************************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/sqlserver/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/sqlserver/query_def.ts": -/*!******************************************************!*\ - !*** ./datasource/tc_monitor/sqlserver/query_def.ts ***! - \******************************************************/ -/*! exports provided: default, SQLSERVERNETFilterFieldsDescriptor, templateQueryIdMap, SQLSERVERInstanceAliasList, SQLSERVERInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, modifyDimensons, SQLSERVERGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SQLSERVERNETFilterFieldsDescriptor", function() { return SQLSERVERNETFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SQLSERVERInstanceAliasList", function() { return SQLSERVERInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SQLSERVERInvalidDemensions", function() { return SQLSERVERInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SQLSERVERGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); - - -var namespace = 'QCE/SQLSERVER'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'sqlserverQuery'; -var SQLSERVERInvalidDemensions = { - resourceId: 'InstanceId' -}; -var SQLSERVERInstanceAliasList = ['InstanceId', 'Name']; -var templateQueryIdMap = { - instance: 'InstanceId' -}; // select类型需要注意是{},multi后缀是[] - -var SQLSERVERNETFilterFields = { - Limit: 20, - Offset: 0, - ProjectId: null, - Status: {}, - InstanceIdSet: [], - PayMode: {}, - VpcId: '', - SubnetId: '', - VipSet: [], - InstanceNameSet: [], - VersionSet: [], - Zone: '' -}; -var SQLSERVERNETFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'ProjectId', - enDescriptor: 'ProjectId', - cnDescriptor: '项目ID', - link: '', - type: 'inputNumber' -}, { - key: 'Status', - enDescriptor: 'Status', - cnDescriptor: '实例状态', - link: '', - type: 'select', - list: [{ - text: '申请中', - value: 1 - }, { - text: '运行中', - value: 2 - }, { - text: '受限运行中 (主备切换中)', - value: 3 - }, { - text: '已隔离', - value: 4 - }, { - text: '回收中', - value: 5 - }, { - text: '已回收', - value: 6 - }, { - text: '任务执行中', - value: 7 - }, { - text: '已下线', - value: 8 - }, { - text: '实例扩容中', - value: 9 - }, { - text: '实例迁移中', - value: 10 - }, { - text: '只读', - value: 11 - }, { - text: '重启中', - value: 12 - }] -}, { - key: 'InstanceIdSet', - enDescriptor: 'InstanceIdSet', - cnDescriptor: '实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'PayMode', - enDescriptor: 'PayMode', - cnDescriptor: '子网实例ID', - link: '', - type: 'select', - list: [{ - text: '包年包月', - value: 1 - }, { - text: '按量计费', - value: 0 - }] -}, { - key: 'VpcId', - enDescriptor: 'VpcId', - cnDescriptor: '实例所属VPC的唯一字符串ID', - link: '', - type: 'input' -}, { - key: 'SubnetId', - enDescriptor: 'SubnetId', - cnDescriptor: '实例所属子网的唯一字符串ID', - link: '', - type: 'input' -}, { - key: 'VipSet', - enDescriptor: 'VipSet', - cnDescriptor: '实例内网地址列表', - link: '', - type: 'inputMulti' -}, { - key: 'InstanceNameSet', - enDescriptor: 'InstanceNameSet', - cnDescriptor: '实例名称列表, 模糊查询', - link: '', - type: 'inputMulti' -}, { - key: 'VersionSet', - enDescriptor: 'VersionSet', - cnDescriptor: '实例版本代号列表', - link: '', - type: 'inputMulti' -}, { - key: 'Zone', - enDescriptor: 'Zone', - cnDescriptor: '实例可用区', - link: '', - type: 'dropdown' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/238/19969', - namespace: namespace, - fieldDescriptor: SQLSERVERNETFilterFieldsDescriptor -}; // regions for dropdown - -var regionSupported = [{ - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, { - value: 'ap-chongqing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-seoul' -}, { - value: 'ap-shanghai' -}, { - value: 'ap-shanghai-fsi' -}, { - value: 'ap-shenzhen-fsi' -}, { - value: 'ap-singapore' -}, { - value: 'ap-tokyo' -}, { - value: 'eu-moscow' -}, { - value: 'na-siliconvalley' -}]; -var SQLSERVER_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - queries: SQLSERVERNETFilterFields -}; - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['resourceId']; - }); - return metricTmp; -} - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false); -} - -/* harmony default export */ __webpack_exports__["default"] = (SQLSERVER_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/tcaplus/datasource.ts": -/*!*****************************************************!*\ - !*** ./datasource/tc_monitor/tcaplus/datasource.ts ***! - \*****************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tcaplus/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["TCAPLUSInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["TCAPLUSInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'tcaplusdb', - action: 'DescribeTables', - responseField: 'TableInfos' - }; - return _this; - } // 重写getRegion - - - DCDatasource.prototype.getRegions = function () { - return this.doRequest({ - url: this.url + '/tcaplusdb' - }, 'tcaplusdb', { - action: 'DescribeRegions', - region: 'ap-guangzhou' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.RegionInfos || [], function (item) { - return { - text: Object(_locale__WEBPACK_IMPORTED_MODULE_3__["t"])(item.RegionName), - value: item.RegionName - }; - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/tcaplus/query.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/tcaplus/query.ts ***! - \************************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tcaplus/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/tcaplus/query_def.ts": -/*!****************************************************!*\ - !*** ./datasource/tc_monitor/tcaplus/query_def.ts ***! - \****************************************************/ -/*! exports provided: default, TCAPLUSFilterFieldsDescriptor, templateQueryIdMap, TCAPLUSInstanceAliasList, TCAPLUSInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regonsMap, TCAPLUSGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TCAPLUSFilterFieldsDescriptor", function() { return TCAPLUSFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TCAPLUSInstanceAliasList", function() { return TCAPLUSInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TCAPLUSInvalidDemensions", function() { return TCAPLUSInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regonsMap", function() { return regonsMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TCAPLUSGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); - -var namespace = 'QCE/TCAPLUS'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'tcaplusQuery'; -var TCAPLUSInvalidDemensions = {// TableInstanceId: 'TableInstanceId', - // ClusterId: 'ClusterId', -}; // 需和文件名对应 - -var TCAPLUSInstanceAliasList = ['TableInstanceId', 'TableName']; -var templateQueryIdMap = { - instance: 'TableInstanceId' -}; // select类型需要注意是{},multi后缀是[],dropdown是类型 - -var TCAPLUSFilterFields = { - Limit: 20, - Offset: 0, - ClusterId: '', - TableGroupIds: [], - TableName: '', - TableInstanceId: '', - TableIdlType: {}, - TableType: {}, - ListElementNum: null, - ReservedVolume: null, - ReservedReadQps: null, - ReservedWriteQps: null, - Memo: '', - FileName: '', - FileExtType: '', - FileSize: null, - FileContent: '' -}; -var TCAPLUSFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'ClusterId', - enDescriptor: 'ClusterId', - cnDescriptor: '表格所属集群ID', - link: '', - type: 'input' -}, { - key: 'TableGroupIds', - enDescriptor: 'TableGroupIds', - cnDescriptor: '表格组ID列表', - link: '', - type: 'inputMulti' -}, { - key: 'TableName', - enDescriptor: 'TableName', - cnDescriptor: '表格名称', - link: '', - type: 'input' -}, { - key: 'TableInstanceId', - enDescriptor: 'TableInstanceId', - cnDescriptor: '表实例ID', - link: '', - type: 'input' -}, { - key: 'TableIdlType', - enDescriptor: 'TableIdlType', - cnDescriptor: '表格描述语言类型', - link: '', - type: 'select', - list: [{ - text: 'PROTO', - value: 'PROTO' - }, { - text: 'TDR', - value: 'TDR' - }] -}, { - key: 'TableType', - enDescriptor: 'TableType', - cnDescriptor: '表格数据结构类型', - link: '', - type: 'select', - list: [{ - text: 'GENERIC', - value: 'GENERIC' - }, { - text: 'LIST', - value: 'LIST' - }] -}, { - key: 'ListElementNum', - enDescriptor: 'ListElementNum', - cnDescriptor: 'LIST表元素个数', - link: '', - type: 'inputNumber' -}, { - key: 'ReservedVolume', - enDescriptor: 'ReservedVolume', - cnDescriptor: '表格预留容量(GB)', - link: '', - type: 'inputNumber' -}, { - key: 'ReservedReadQps', - enDescriptor: 'ReservedReadQps', - cnDescriptor: '表格预留读CU', - link: '', - type: 'inputNumber' -}, { - key: 'ReservedWriteQps', - enDescriptor: 'ReservedWriteQps', - cnDescriptor: '表格预留写CU', - link: '', - type: 'inputNumber' -}, { - key: 'Memo', - enDescriptor: 'Memo', - cnDescriptor: '表格备注信息', - link: '', - type: 'input' -}, { - key: 'FileName', - enDescriptor: 'FileName', - cnDescriptor: 'Key回档文件名,回档专用', - link: '', - type: 'input' -}, { - key: 'FileExtType', - enDescriptor: 'FileExtType', - cnDescriptor: 'Key回档文件扩展名,回档专用', - link: '', - type: 'input' -}, { - key: 'FileSize', - enDescriptor: 'FileSize', - cnDescriptor: 'Key回档文件大小,回档专用', - link: '', - type: 'inputNumber' -}, { - key: 'FileContent', - enDescriptor: 'FileContent', - cnDescriptor: 'Key回档文件内容,回档专用', - link: '', - type: 'input' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/596/39664', - namespace: namespace, - fieldDescriptor: TCAPLUSFilterFieldsDescriptor -}; -var TCAPLUS_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'TableInstanceId', - queries: TCAPLUSFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - params.ClusterId = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'ClusterId', '') || ''; - params.TableGroupIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'TableGroupIds', []) || []; - queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit', 'TableGroupIds', 'ClusterId']); - var SelectedTables = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - SelectedTables[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) { - SelectedTables[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value'); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) { - SelectedTables[key] = item; - } - }); - - params.SelectedTables = SelectedTables; - return params; -} // 和其他产品的展示保持一致 - - -var regonsMap = { - 'ap-beijing': '华北地区(北京)', - 'ap-guangzhou': '华南地区(广州)', - 'ap-hongkong': '港澳台地区(中国香港)', - 'ap-seoul': '亚太东北(首尔)', - 'ap-shanghai': '华东地区(上海)', - 'ap-singapore': '亚太东南(新加坡)', - 'ap-tokyo': '亚太东北(东京)', - 'eu-frankfurt': '欧洲地区(法兰克福)', - 'na-ashburn': '美国东部(弗吉尼亚)', - 'na-siliconvalley': '美国西部(硅谷)' -}; -/* harmony default export */ __webpack_exports__["default"] = (TCAPLUS_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/tdmq/datasource.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/tdmq/datasource.ts ***! - \**************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - - - -var TDMQDatasource = -/** @class */ -function (_super) { - __extends(TDMQDatasource, _super); - - function TDMQDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"]; - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'tdmq', - action: 'DescribeClusters', - responseField: 'ClusterSet' - }; - _this.extraActionMap = { - DescribeTopics: { - service: 'tdmq', - action: 'DescribeTopics', - responseField: 'TopicSets', - pickKey: 'TopicName' - }, - DescribeEnvironments: { - service: 'tdmq', - action: 'DescribeEnvironments', - responseField: 'EnvironmentSet', - pickKey: 'EnvironmentId' - } - }; - return _this; - } // getFilterDropdown({ field }) { - // return super.getRegions(); - // } - - - TDMQDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_6__["t"])(value) - }; - })); - }; - - TDMQDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item); - }))]; - } - }); - }); - }; - - TDMQDatasource.prototype.getConsumerList = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, act, payload, _a, service, action, responseField, serviceInfo, rs; - - var _this = this; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - region = params.region, act = params.action, payload = params.payload; - _a = this.extraActionMap[act], service = _a.service, action = _a.action, responseField = _a.responseField; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, service); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: action - }); - }, payload, responseField)]; - - case 1: - rs = _b.sent(); // console.log({ rs }); - - return [2 - /*return*/ - , rs[0]]; - } - }); - }); - }; - - TDMQDatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - var payload, rs, pickKey_1, result; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - payload = { - Limit: 100, - ClusterId: instance[this.templateQueryIdMap.instance] - }; - if (!(Object.keys(this.extraActionMap).indexOf(action) !== -1)) return [3 - /*break*/ - , 3]; - - if (action === 'DescribeTopics') { - payload.EnvironmentId = this.getVariable(query['environmentid']); - } - - return [4 - /*yield*/ - , this.getConsumerList({ - region: region, - action: action, - payload: payload - })]; - - case 1: - rs = _a.sent(); - pickKey_1 = this.extraActionMap[action].pickKey; - result = rs.map(function (o) { - o._InstanceAliasValue = o[_this.templateQueryIdMap[pickKey_1]]; - return { - text: o[_this.templateQueryIdMap[pickKey_1]], - value: o[_this.templateQueryIdMap[pickKey_1]] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage[pickKey_1], rs)]; - - case 2: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 3: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return TDMQDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (TDMQDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/tdmq/query.ts": -/*!*********************************************!*\ - !*** ./datasource/tc_monitor/tdmq/query.ts ***! - \*********************************************/ -/*! exports provided: QueryCtrl, sQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var ExtraFields = [{ - label: 'environmentId', - field: 'environmentId', - action: 'DescribeEnvironments' -}, { - label: 'topicName', - field: 'topicName', - action: 'DescribeTopics' -}]; -var dropdownTextConfig = { - DescribeTopics: 'topicName', - DescribeEnvironments: 'environmentId' -}; - -var QueryCtrl = -/** @class */ -function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.TDMQFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["TDMQFilterFieldsDescriptor"]; - $scope.ExtraFields = ExtraFields; - $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - }; - - $scope.getInstanceId = function () { - var instance = $scope.target.instance; - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance); - - if (!instance) { - return ''; - } - - try { - instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance]; - } catch (error) {// console.log(); - } - - return instance; - }; - - $scope.getExtraFields = function () { - return ExtraFields.filter(function (item) { - var _a, _b; - - return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}) || item.label in ((_b = $scope.dims) !== null && _b !== void 0 ? _b : {}); - }); - }; - - $scope.getExtraDropdown = function (target, action) { - return __awaiter(_this, void 0, void 0, function () { - var service, region, payload, evId, rs, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - payload = { - Limit: 100, - ClusterId: $scope.getInstanceId() - }; - - if (action === 'DescribeTopics') { - evId = $scope.target.environmentId; - - try { - evId = JSON.parse(evId); - evId = evId[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].environmentId]; - } catch (e) {} - - payload.EnvironmentId = evId; - } - - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, 'getConsumerList')({ - region: region, - action: action, - payload: payload - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]]; - return { - text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]], - label: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]], - value: JSON.stringify(o) - }; - }); - return [2 - /*return*/ - , result]; - } - }); - }); - }; - - $scope.init(); - } - - return QueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n"; -function sQuery() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/tdmq/query_def.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/tdmq/query_def.ts ***! - \*************************************************/ -/*! exports provided: default, TDMQFilterFieldsDescriptor, templateQueryIdMap, TDMQInstanceAliasList, TDMQInvalidDemensions, namespace, queryEditorName, queryMonitorExtraConfg, keyInStorage, modifyDimensons, regionSupported, TDMQGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQFilterFieldsDescriptor", function() { return TDMQFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQInstanceAliasList", function() { return TDMQInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQInvalidDemensions", function() { return TDMQInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); - - -var namespace = 'QCE/TDMQ'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'tdmqQuery'; -var TDMQInvalidDemensions = { - tenantId: 'ClusterId', - tenant: 'ClusterId', - topicName: 'TopicName', - environmentId: 'EnvironmentId' -}; // 需和文件名对应 - -var TDMQInstanceAliasList = ['ClusterId', 'ClusterName']; -var templateQueryIdMap = { - instance: 'ClusterId', - topicName: 'TopicName', - environmentId: 'EnvironmentId' -}; // select类型需要注意是{},multi后缀是[],dropdown是'' - -var TDMQFilterFields = { - Limit: 20, - Offset: 0 -}; -var TDMQFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}]; -var CDNPROVINCE_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'ClusterId', - // 此处key应该是经过TDMQInvalidDemensions处理后的 - topicName: '', - environmentId: '', - queries: TDMQFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} - -var regionSupported = [{ - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, { - value: 'ap-chongqing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-shenzhen-fsi' -}, { - value: 'ap-shanghai' -}, { - value: 'ap-shanghai-fsi' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-tokyo' -}, { - value: 'ap-seoul' -}, { - value: 'ap-singapore' -}, { - value: 'ap-bangkok' -}, { - value: 'ap-jakarta' -}, { - value: 'ap-mumbai' -}, { - value: 'eu-frankfurt' -}, { - value: 'eu-moscow' -}, { - value: 'na-ashburn' -}, { - value: 'na-siliconvalley' -}, { - value: 'na-toronto' -}]; - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - if (item.Dimensions.indexOf('topicName') !== -1 && item.Dimensions.indexOf('environmentId') === -1) { - item.Dimensions.push('environmentId'); - } - }); - return metricTmp; -} // 需要缓存到storage的内容的key列表 - - -var keyInStorage = { - topicName: 'topicName', - environmentId: 'environmentId' -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - TopicName: { - dim_KeyInStorage: keyInStorage.topicName, - dim_KeyInTarget: 'topicName', - dim_KeyInMap: templateQueryIdMap.topicName - }, - EnvironmentId: { - dim_KeyInStorage: keyInStorage.environmentId, - dim_KeyInTarget: 'environmentId', - dim_KeyInMap: templateQueryIdMap.environmentId - } -}; -/* harmony default export */ __webpack_exports__["default"] = (CDNPROVINCE_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts": -/*!***********************************************************!*\ - !*** ./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts ***! - \***********************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - - -var TDMQDatasource = -/** @class */ -function (_super) { - __extends(TDMQDatasource, _super); - - function TDMQDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQRABBITMQInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"]; - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'tdmq', - action: 'DescribeRabbitMQVipInstances', - responseField: 'Instances' - }; - _this.extraActionMap = { - DescribeRabbitMQNodeList: { - service: 'tdmq', - action: 'DescribeRabbitMQNodeList', - responseField: 'NodeList', - pickKey: 'node' - } - }; - return _this; - } - - TDMQDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_5__["t"])(value) - }; - })); - }; - - TDMQDatasource.prototype.getConsumerList = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, act, payload, _a, service, action, responseField, serviceInfo, rs; - - var _this = this; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - region = params.region, act = params.action, payload = params.payload; - _a = this.extraActionMap[act], service = _a.service, action = _a.action, responseField = _a.responseField; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, service); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_3__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: action - }); - }, payload, responseField)]; - - case 1: - rs = _b.sent(); - return [2 - /*return*/ - , rs[0]]; - } - }); - }); - }; - - TDMQDatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - var payload, rs, pickKey_1, result; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - payload = { - Limit: 100, - InstanceId: instance[this.templateQueryIdMap.instance] - }; - if (!(Object.keys(this.extraActionMap).indexOf(action) !== -1)) return [3 - /*break*/ - , 3]; - return [4 - /*yield*/ - , this.getConsumerList({ - region: region, - action: action, - payload: payload - })]; - - case 1: - rs = _a.sent(); - pickKey_1 = this.extraActionMap[action].pickKey; - result = rs.map(function (o) { - o._InstanceAliasValue = o[_this.templateQueryIdMap[pickKey_1]]; - return { - text: o[_this.templateQueryIdMap[pickKey_1]], - value: o[_this.templateQueryIdMap[pickKey_1]] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__["default"].setExtraStorage(this.service, this.keyInStorage[pickKey_1], rs)]; - - case 2: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 3: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return TDMQDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (TDMQDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/tdmq_rabbitmq/query.ts": -/*!******************************************************!*\ - !*** ./datasource/tc_monitor/tdmq_rabbitmq/query.ts ***! - \******************************************************/ -/*! exports provided: QueryCtrl, sQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var ExtraFields = [{ - label: 'Node', - field: 'node', - action: 'DescribeRabbitMQNodeList' -}]; -var dropdownTextConfig = { - DescribeRabbitMQNodeList: 'node' -}; - -var QueryCtrl = -/** @class */ -function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.TDMQFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["TDMQFilterFieldsDescriptor"]; - $scope.ExtraFields = ExtraFields; - $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - }; - - $scope.clearExtrasAlias = function () { - $scope.target.node = ''; - }; - - $scope.getInstanceId = function () { - var instance = $scope.target.instance; - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance); - - if (!instance) { - return ''; - } - - try { - instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance]; - } catch (error) {// console.log(); - } - - return instance; - }; - - $scope.getExtraFields = function () { - return ExtraFields.filter(function (item) { - var _a, _b; - - return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}) || item.label in ((_b = $scope.dims) !== null && _b !== void 0 ? _b : {}); - }); - }; - - $scope.getExtraDropdown = function (target, action) { - return __awaiter(_this, void 0, void 0, function () { - var service, region, payload, rs, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - payload = { - Limit: 100, - InstanceId: $scope.getInstanceId() - }; - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, 'getConsumerList')({ - region: region, - action: action, - payload: payload - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]]; - return { - text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]], - label: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]], - value: JSON.stringify(o) - }; - }); - return [2 - /*return*/ - , result]; - } - }); - }); - }; - - $scope.init(); - } - - return QueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n"; -function sQuery() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - }, - link: function link(scope, element, attrs) { - scope.$watch('target.instance', function () { - var _a; - - (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope); - }); - scope.$watch('target.metricName', function () { - var _a; - - (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope); - }); - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('tdmqRabbitmqQuery', sQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts": -/*!**********************************************************!*\ - !*** ./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts ***! - \**********************************************************/ -/*! exports provided: default, TDMQFilterFieldsDescriptor, templateQueryIdMap, TDMQRABBITMQInstanceAliasList, TDMQInvalidDemensions, namespace, queryEditorName, queryMonitorExtraConfg, keyInStorage, regionSupported, TDMQGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQFilterFieldsDescriptor", function() { return TDMQFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQRABBITMQInstanceAliasList", function() { return TDMQRABBITMQInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQInvalidDemensions", function() { return TDMQInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/RABBITMQ'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'tdmqQuery'; -var TDMQInvalidDemensions = { - instanceid: 'InstanceId', - node: 'NodeName' -}; // 需和文件名对应 - -var TDMQRABBITMQInstanceAliasList = ['InstanceId', 'InstanceName']; -var templateQueryIdMap = { - instance: 'InstanceId', - node: 'NodeName' -}; // select类型需要注意是{},multi后缀是[],dropdown是'' - -var TDMQFilterFields = { - Limit: 20, - Offset: 0 -}; -var TDMQFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}]; -var TDMQ_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'InstanceId', - // 此处key应该是经过TDMQInvalidDemensions处理后的 - node: '', - queries: TDMQFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} - -var regionSupported = [{ - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, { - value: 'ap-chongqing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-shenzhen-fsi' -}, { - value: 'ap-shanghai' -}, { - value: 'ap-shanghai-fsi' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-tokyo' -}, { - value: 'ap-seoul' -}, { - value: 'ap-singapore' -}, { - value: 'ap-bangkok' -}, { - value: 'ap-jakarta' -}, { - value: 'ap-mumbai' -}, { - value: 'eu-frankfurt' -}, { - value: 'eu-moscow' -}, { - value: 'na-ashburn' -}, { - value: 'na-siliconvalley' -}, { - value: 'na-toronto' -}]; // 需要缓存到storage的内容的key列表 - -var keyInStorage = { - node: 'NodeName' -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - NodeName: { - dim_KeyInStorage: keyInStorage.node, - dim_KeyInTarget: 'node', - dim_KeyInMap: templateQueryIdMap.node - } -}; -/* harmony default export */ __webpack_exports__["default"] = (TDMQ_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/tdmq_rocketmq/datasource.ts": -/*!***********************************************************!*\ - !*** ./datasource/tc_monitor/tdmq_rocketmq/datasource.ts ***! - \***********************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - - - -var TDMQDatasource = -/** @class */ -function (_super) { - __extends(TDMQDatasource, _super); - - function TDMQDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQROCKETMQInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; - _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"]; - _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'tdmq', - action: 'DescribeRocketMQClusters', - responseField: 'ClusterList', - interceptor: { - response: function response(result) { - return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(result, function (item) { - return __assign(__assign({}, item), { - ClusterId: lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(item, 'Info.ClusterId', ''), - ClusterName: lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(item, 'Info.ClusterName', '') - }); - }); - } - } - }; - _this.extraActionMap = { - DescribeRocketMQNamespaces: { - service: 'tdmq', - action: 'DescribeRocketMQNamespaces', - responseField: 'Namespaces', - pickKey: 'namespace' - }, - DescribeRocketMQGroups: { - service: 'tdmq', - action: 'DescribeRocketMQGroups', - responseField: 'Groups', - pickKey: 'group' - } - }; - return _this; - } - - TDMQDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , _super.prototype.getMetrics.call(this, region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , rawSet.filter(function (item) { - var _a, _b, _c; - - return !((_c = (_b = (_a = item.Dimensions) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Dimensions) === null || _c === void 0 ? void 0 : _c.includes('rmqcluster')); - })]; - } - }); - }); - }; - - TDMQDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_6__["t"])(value) - }; - })); - }; - - TDMQDatasource.prototype.getConsumerList = function (params) { - return __awaiter(this, void 0, void 0, function () { - var region, act, payload, _a, service, action, responseField, serviceInfo, rs; - - var _this = this; - - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - region = params.region, act = params.action, payload = params.payload; - _a = this.extraActionMap[act], service = _a.service, action = _a.action, responseField = _a.responseField; - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, service); - return [4 - /*yield*/ - , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) { - return _this.doRequest({ - url: _this.url + serviceInfo.path, - data: data - }, serviceInfo.service, { - region: region, - action: action - }); - }, payload, responseField)]; - - case 1: - rs = _b.sent(); - return [2 - /*return*/ - , rs[0]]; - } - }); - }); - }; - - TDMQDatasource.prototype.fetchMetricData = function (action, region, instance, query) { - return __awaiter(this, void 0, void 0, function () { - var payload, rs, pickKey_1, result; - - var _this = this; - - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - payload = { - Limit: 100, - ClusterId: instance[this.templateQueryIdMap.instance] - }; - if (!(Object.keys(this.extraActionMap).indexOf(action) !== -1)) return [3 - /*break*/ - , 3]; - - if (action === 'DescribeRocketMQGroups') { - payload.NamespaceId = this.getVariable(query['clusternamespace']); - } - - return [4 - /*yield*/ - , this.getConsumerList({ - region: region, - action: action, - payload: payload - })]; - - case 1: - rs = _a.sent(); - pickKey_1 = this.extraActionMap[action].pickKey; - result = rs.map(function (o) { - o._InstanceAliasValue = o[_this.templateQueryIdMap[pickKey_1]]; - return { - text: o[_this.templateQueryIdMap[pickKey_1]], - value: o[_this.templateQueryIdMap[pickKey_1]] - }; - }); - return [4 - /*yield*/ - , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage[pickKey_1], rs)]; - - case 2: - _a.sent(); - - return [2 - /*return*/ - , result]; - - case 3: - return [2 - /*return*/ - , []]; - } - }); - }); - }; - - return TDMQDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (TDMQDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/tdmq_rocketmq/query.ts": -/*!******************************************************!*\ - !*** ./datasource/tc_monitor/tdmq_rocketmq/query.ts ***! - \******************************************************/ -/*! exports provided: TdmqRocketmqQueryCtrl, tdmqRocketmqQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TdmqRocketmqQueryCtrl", function() { return TdmqRocketmqQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tdmqRocketmqQuery", function() { return tdmqRocketmqQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var ExtraFields = [{ - label: 'Namespace', - field: 'namespace', - action: 'DescribeRocketMQNamespaces' -}, { - label: 'Group', - field: 'group', - action: 'DescribeRocketMQGroups' -}]; -var dropdownTextConfig = { - DescribeRocketMQNamespaces: 'namespace', - DescribeRocketMQGroups: 'group' -}; - -var TdmqRocketmqQueryCtrl = -/** @class */ -function () { - TdmqRocketmqQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function TdmqRocketmqQueryCtrl($scope, $rootScope) { - var _this = this; - - $scope.init = function () { - $scope.TDMQFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["TDMQFilterFieldsDescriptor"]; - $scope.ExtraFields = ExtraFields; - $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - }; - - $scope.clearExtrasAlias = function () { - $scope.target.namespace = ''; - $scope.target.group = ''; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.getInstanceId = function () { - var instance = $scope.target.instance; - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance); - - if (!instance) { - return ''; - } - - try { - instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance]; - } catch (error) {// console.log(); - } - - return instance; - }; - - $scope.getExtraFields = function () { - return ExtraFields.filter(function (item) { - var _a, _b; - - return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}) || item.label in ((_b = $scope.dims) !== null && _b !== void 0 ? _b : {}); - }); - }; - - $scope.getExtraDropdown = function (target, action) { - return __awaiter(_this, void 0, void 0, function () { - var service, region, payload, namespace_1, rs, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); - region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region); - payload = { - Limit: 100, - ClusterId: $scope.getInstanceId() - }; - - if (action === 'DescribeRocketMQGroups') { - namespace_1 = $scope.target.namespace; - - try { - namespace_1 = JSON.parse(namespace_1)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].namespace]; - } catch (e) {} - - payload.NamespaceId = $scope.datasource.getServiceFn(service, 'getVariable')(namespace_1); - } - - return [4 - /*yield*/ - , $scope.datasource.getServiceFn(service, 'getConsumerList')({ - region: region, - action: action, - payload: payload - })]; - - case 1: - rs = _a.sent(); - result = rs.map(function (o) { - o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]]; - return { - text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]], - value: JSON.stringify(o) - }; - }); - return [2 - /*return*/ - , result]; - } - }); - }); - }; - - $scope.init(); - } - - return TdmqRocketmqQueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n"; -function tdmqRocketmqQuery() { - return { - template: template, - controller: TdmqRocketmqQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - }, - link: function link(scope, element, attrs) { - scope.$watch('target.instance', function () { - var _a; - - (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope); - }); - scope.$watch('target.metricName', function () { - var _a; - - (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope); - }); - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('tdmqRocketmqQuery', tdmqRocketmqQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts": -/*!**********************************************************!*\ - !*** ./datasource/tc_monitor/tdmq_rocketmq/query_def.ts ***! - \**********************************************************/ -/*! exports provided: default, TDMQFilterFieldsDescriptor, templateQueryIdMap, TDMQROCKETMQInstanceAliasList, TDMQInvalidDemensions, namespace, queryMonitorExtraConfg, keyInStorage, regionSupported, TDMQROCKETMQGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQFilterFieldsDescriptor", function() { return TDMQFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQROCKETMQInstanceAliasList", function() { return TDMQROCKETMQInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQInvalidDemensions", function() { return TDMQInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQROCKETMQGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); - -var namespace = 'QCE/ROCKETMQ'; -var TDMQInvalidDemensions = { - tenant: 'ClusterId', - namespace: 'NamespaceId', - group: 'Name' -}; // 需和文件名对应 - -var TDMQROCKETMQInstanceAliasList = ['ClusterId', 'ClusterName']; -var templateQueryIdMap = { - instance: 'ClusterId', - namespace: 'NamespaceId', - group: 'Name' -}; // select类型需要注意是{},multi后缀是[],dropdown是'' - -var TDMQFilterFields = { - Limit: 20, - Offset: 0, - instanceIdsChecked: false, - filtersChecked: true, - ClusterIdList: [''], - Filters: { - includeVip: { - text: '是', - value: 'true' - } - } -}; -var TDMQFilterFieldsDescriptor = [{ - key: 'includeVip', - enDescriptor: 'includeVip', - cnDescriptor: '包含专享集群', - link: '', - type: 'select', - list: [{ - text: '是', - value: 'true' - }, { - text: '否', - value: 'false' - }] -}]; -var TDMQ_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'ClusterId', - // 此处key应该是经过TDMQInvalidDemensions处理后的 - namespace: '', - group: '', - queries: TDMQFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - - if (queries.instanceIdsChecked) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.ClusterIdList)) { - var ClusterIdList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.ClusterIdList); - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(ClusterIdList).length > 0) { - params.ClusterIdList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(ClusterIdList).slice(0, 100); - } - } - } else if (queries.filtersChecked) { - var Filters_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) { - if (Filters_1.length > 9) { - return; - } - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5) - }); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) { - Filters_1.push({ - Name: key, - Values: [lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', [])].slice(0, 5) - }); - } - } - }); - - if (Filters_1.length > 0) { - params.Filters = Filters_1; - } - } - } - - return params; -} - -var regionSupported = [{ - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, { - value: 'ap-chongqing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-shenzhen-fsi' -}, { - value: 'ap-shanghai' -}, { - value: 'ap-shanghai-fsi' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-tokyo' -}, { - value: 'ap-seoul' -}, { - value: 'ap-singapore' -}, { - value: 'ap-bangkok' -}, { - value: 'ap-jakarta' -}, { - value: 'ap-mumbai' -}, { - value: 'eu-frankfurt' -}, { - value: 'eu-moscow' -}, { - value: 'na-ashburn' -}, { - value: 'na-siliconvalley' -}, { - value: 'na-toronto' -}]; // 需要缓存到storage的内容的key列表 - -var keyInStorage = { - namespace: 'NamespaceId', - group: 'Name' -}; -/* -如果有InstanceId额外的维度,原则上都需要传入此map结构配置 -key的含义: - 经过InvalidDemensions处理后的string。topicId =》TopicId。 - 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId -value的含义: - 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、 - 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。 - 默认取通过InvalidDemsion处理后的key - 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。 - 即:templateQueryIdMap中内容。 - 联合上面2的内容筛选出原始sourceMap -*/ - -var queryMonitorExtraConfg = { - NamespaceId: { - dim_KeyInStorage: keyInStorage.namespace, - dim_KeyInTarget: 'namespace', - dim_KeyInMap: templateQueryIdMap.namespace - }, - Name: { - dim_KeyInStorage: keyInStorage.group, - dim_KeyInTarget: 'group', - dim_KeyInMap: templateQueryIdMap.group - } -}; -/* harmony default export */ __webpack_exports__["default"] = (TDMQ_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/tke/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/tke/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; - - - - - - -var variableToArray = function variableToArray(variable) { - if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(variable)) { - return []; - } - - if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isArray"])(variable)) { - return variable; - } - - if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isString"])(variable)) { - return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["split"])(variable, ',').map(function (item) { - return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["trim"])(item); - }); - } - - return []; -}; - -var TKEDatasource = -/** @class */ -function (_super) { - __extends(TKEDatasource, _super); - - function TKEDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.InstanceAliasList = ['ClusterId', 'ClusterName']; - _this.templateQueryIdMap = { - instance: 'ClusterId' - }; - _this.InvalidDimensions = { - tke_cluster_instance_id: 'ClusterId' - }; - _this.InstanceReqConfig = { - service: 'tke', - action: 'DescribeClusters', - responseField: 'Clusters' - }; - return _this; - } - - TKEDatasource.prototype.getMonitorData = function (params, region, instances, target, options) { - var _this = this; - - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["GetServiceAPIInfo"])(region, 'monitor'); - var timeshift = Object(_common_utils__WEBPACK_IMPORTED_MODULE_2__["getTimeShiftInMs"])(target.timeshift); - var conditions = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["reduce"])(target.conditions, function (prev, item) { - if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(item.Key) || Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(item.Operator) || Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(item.Value)) { - return prev; - } - - return __spreadArray(__spreadArray([], Object(lodash__WEBPACK_IMPORTED_MODULE_0__["filter"])(prev, function (e) { - return e.Key !== item.Key; - }), true), [{ - Key: Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["ReplaceVariable"])(_this.templateSrv, options.scopedVars, item.Key, false), - Operator: Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["ReplaceVariable"])(_this.templateSrv, options.scopedVars, item.Operator, false), - Value: variableToArray(Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["ReplaceVariable"])(_this.templateSrv, options.scopedVars, item.Value, true)) - }], false); - }, [{ - Key: 'tke_cluster_instance_id', - Operator: '=', - Value: instances.map(function (item) { - return item['ClusterId']; - }) - }]); - return this.doRequest({ - url: this.url + serviceInfo.path, - data: { - Period: params.Period, - MetricNames: [params.MetricName], - Module: 'monitor', - Namespace: 'QCE/TKE', - EndTime: params.EndTime, - StartTime: params.StartTime, - Conditions: conditions, - GroupBys: variableToArray(Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["ReplaceVariable"])(this.templateSrv, options.scopedVars, target.groupBys, true)) - } - }, serviceInfo.service, { - action: 'DescribeStatisticData', - region: region - }).then(function (response) { - return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["flatten"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(response.Data, function (data) { - return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(data.Points, function (point) { - var dimensionSort = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["sortBy"])(point.Dimensions, ['Name']); - - var dimensionString = __spreadArray(__spreadArray([], dimensionSort.splice(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["findIndex"])(dimensionSort, { - Name: 'tke_cluster_instance_id' - }), 1), true), dimensionSort, true).map(function (dimension) { - return dimension.Value; - }).join(' - '); - - var timeshiftString = timeshift > 0 ? "_".concat(target.timeshift) : ''; - return { - target: "".concat(data.MetricName, " - ").concat(dimensionString).concat(timeshiftString), - datapoints: Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(point.Values, function (value) { - return [value.Value, value.Timestamp * 1000 + timeshift]; - }) - }; - }); - })); - }); - }; - - return TKEDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_3__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (TKEDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/tke/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/tke/query.ts ***! - \********************************************/ -/*! exports provided: QueryCtrl, sQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tke/query_def.ts"); - - - - -var QueryCtrl = -/** @class */ -function () { - QueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function QueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.TKEFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_2__["TKEFilterFieldsDescriptor"]; - }; - - $scope.onChecked = function (srcField, dstField) { - if ($scope.target.queries[srcField] === true) { - $scope.target.queries[dstField] = false; - } - - $scope.onChange(); - }; - - $scope.addCondition = function () { - $scope.target.conditions.push({ - Key: '', - Operator: '=', - Value: '' - }); - }; - - $scope.deleteCondition = function (index) { - var targetCondition = $scope.target.conditions[index]; - - if (Object(lodash__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(targetCondition.Key) || Object(lodash__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(targetCondition.Operator) || Object(lodash__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(targetCondition.Value)) { - $scope.target.conditions.splice(index, 1); - } else { - $scope.target.conditions.splice(index, 1); - $scope.onRefresh(); - } - }; - - $scope.getOperator = function () { - return Promise.resolve([{ - text: '=', - value: '=' - }, { - text: 'in', - value: 'in' - }]); - }; - - $scope.init(); - } - - return QueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n \n \n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n"; -function sQuery() { - return { - template: template, - controller: QueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('tkeQuery', sQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/tke/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/tke/query_def.ts ***! - \************************************************/ -/*! exports provided: default, TKEFilterFieldsDescriptor, TKEInstanceAliasList, TKEGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TKEFilterFieldsDescriptor", function() { return TKEFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TKEInstanceAliasList", function() { return TKEInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TKEGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); - -var TKE_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'ClusterId', - conditions: [], - groupBys: '', - queries: { - Limit: 20, - Offset: 0, - instanceIdsChecked: false, - filtersChecked: true, - ClusterIds: [''], - Filters: { - ClusterName: [], - ClusterType: [], - ClusterStatus: [], - 'tag-key': [] - } - } -}; -var TKEFilterFieldsDescriptor = [{ - key: 'ClusterName', - enDescriptor: 'Cluster Name', - cnDescriptor: '集群名', - link: '', - type: 'input' -}, { - key: 'ClusterType', - enDescriptor: 'Cluster Type', - cnDescriptor: '集群类型', - link: '', - type: 'inputmulti' -}, { - key: 'ClusterStatus', - enDescriptor: 'Cluster Status', - cnDescriptor: '集群状态', - link: '', - type: 'inputmulti' -}, { - key: 'Tags', - enDescriptor: 'Tags', - cnDescriptor: '标签键值对', - link: '', - type: 'inputmulti' -}, { - key: 'vpc-id', - enDescriptor: 'VPC', - cnDescriptor: 'VPC', - link: '', - type: 'input' -}, { - key: 'tag-key', - enDescriptor: 'Tag Key', - cnDescriptor: '标签键', - link: '', - type: 'inputmulti' -}, { - key: 'tag-value', - enDescriptor: 'Tag Value', - cnDescriptor: '标签值', - link: '', - type: 'inputmulti' -}]; -var TKEInstanceAliasList = ['ClusterId', 'ClusterName']; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - var params = {}; - - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) { - params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20; - params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0; - - if (queries.instanceIdsChecked) { - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.InstanceIds)) { - var InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.InstanceIds); - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).length > 0) { - params.InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).slice(0, 100); - } - } - } else if (queries.filtersChecked) { - var Filters_1 = []; - - lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) { - if (Filters_1.length > 9) { - return; - } - - if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) { - item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item); - - if (item.length > 0) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5) - }); - } - } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) { - if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) { - Filters_1.push({ - Name: key, - Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5) - }); - } - } - }); - - if (Filters_1.length > 0) { - params.Filters = Filters_1; - } - } - } - - return params; -} - -/* harmony default export */ __webpack_exports__["default"] = (TKE_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/tsf/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/tsf/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tsf/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - -var TSFDatasource = -/** @class */ -function (_super) { - __extends(TSFDatasource, _super); - - function TSFDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = 'QCE/TSF'; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["TSFInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["TSFInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; - _this.InstanceReqConfig = { - service: 'tsf', - action: 'DescribeApplications', - responseField: 'Content' - }; - return _this; - } - - return TSFDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (TSFDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/tsf/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/tsf/query.ts ***! - \********************************************/ -/*! exports provided: TSFQueryCtrl, tsfQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TSFQueryCtrl", function() { return TSFQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsfQuery", function() { return tsfQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tsf/query_def.ts"); - - - -var TSFQueryCtrl = -/** @class */ -function () { - TSFQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function TSFQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.TSFFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["TSFFieldsDescriptor"]; - }; - - $scope.init(); - } - - return TSFQueryCtrl; -}(); - - -var template = "\n
\n \n
\n
\n \n \n \n \n \n
\n
\n\n
\n"; -function tsfQuery() { - return { - template: template, - controller: TSFQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - onChange: '&' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('tsfQuery', tsfQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/tsf/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/tsf/query_def.ts ***! - \************************************************/ -/*! exports provided: default, TSFInvalidDemensions, templateQueryIdMap, TSFInstanceAliasList, TSFFieldsDescriptor, TSFGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TSFInvalidDemensions", function() { return TSFInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TSFInstanceAliasList", function() { return TSFInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TSFFieldsDescriptor", function() { return TSFFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TSFGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var ApplicationType = [{ - text: '所有', - value: '' -}, { - text: '容器应用', - value: 'C' -}, { - text: '普通应用/虚拟机应用', - value: 'V' -}]; -var MicroserviceType = [{ - text: '所有', - value: '' -}, { - text: '普通应用', - value: 'N' -}, { - text: 'Mesh应用', - value: 'M' -}, { - text: '微服务网关应用', - value: 'G' -}, { - text: '原生应用', - value: 'NATIVE' -}]; -var ApplicationResourceType = [{ - text: '默认资源类型', - value: 'DEF' -}, { - text: '微服务网关资源', - value: 'GW' -}]; -var TSFFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputnumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputnumber', - min: 1, - max: 100 -}, { - key: 'SearchWord', - enDescriptor: 'SearchWord', - cnDescriptor: '搜索关键字', - link: '', - type: 'input' -}, { - key: 'ApplicationIdList', - enDescriptor: 'ApplicationIdList', - cnDescriptor: '应用ID 组成的数组', - link: '', - type: 'inputmulti' -}, { - key: 'ApplicationType', - enDescriptor: 'ApplicationType', - cnDescriptor: '应用类型', - link: '', - type: 'select', - list: ApplicationType -}, { - key: 'MicroserviceType', - enDescriptor: 'MicroserviceType', - cnDescriptor: '应用的微服务类型', - link: '', - type: 'select', - list: MicroserviceType -}, { - key: 'ApplicationResourceTypeList', - enDescriptor: 'ApplicationResourceTypeList', - cnDescriptor: '应用资源类型数组', - link: '', - type: 'select', - multiple: true, - list: ApplicationResourceType -}]; -var TSF_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'ApplicationId', - queries: { - Limit: 20, - Offset: 0, - SearchWord: '', - OrderBy: '', - OrderType: null, - ApplicationType: '', - MicroserviceType: '', - ApplicationResourceTypeList: [], - ApplicationIdList: [] - } -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false); -} - -var TSFInstanceAliasList = ['ApplicationId', 'ApplicationName']; -var TSFInvalidDemensions = { - applicationid: 'ApplicationId' -}; -var templateQueryIdMap = { - instance: 'ApplicationId' -}; -/* harmony default export */ __webpack_exports__["default"] = (TSF_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/v_clb/datasource.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/v_clb/datasource.ts ***! - \***************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/v_clb/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["VCLBInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["VCLBInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'clb', - action: 'DescribeLoadBalancers', - responseField: 'LoadBalancerSet' - }; - return _this; - } - - DCDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_4__["t"])(value) - }; - })); - }; - - DCDatasource.prototype.getAllMetrics = function (region) { - return __awaiter(this, void 0, void 0, function () { - var serviceInfo, public_metrics, private_metrics, res; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'monitor'); - return [4 - /*yield*/ - , this.doRequest({ - url: this.url + serviceInfo.path, - data: { - Namespace: _query_def__WEBPACK_IMPORTED_MODULE_0__["clbNamespaceMap"]["public"] - } - }, serviceInfo.service, { - region: region, - action: 'DescribeBaseMetrics' - })]; - - case 1: - public_metrics = _a.sent().MetricSet; - return [4 - /*yield*/ - , this.doRequest({ - url: this.url + serviceInfo.path, - data: { - Namespace: _query_def__WEBPACK_IMPORTED_MODULE_0__["clbNamespaceMap"]["private"] - } - }, serviceInfo.service, { - region: region, - action: 'DescribeBaseMetrics' - })]; - - case 2: - private_metrics = _a.sent().MetricSet; - res = Object.values(lodash__WEBPACK_IMPORTED_MODULE_2___default.a.keyBy(lodash__WEBPACK_IMPORTED_MODULE_2___default.a.concat(private_metrics, public_metrics), 'MetricName')); - return [2 - /*return*/ - , res.map(function (t) { - return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(t); - })]; - } - }); - }); - }; - - DCDatasource.prototype.getMetrics = function (region) { - if (region === void 0) { - region = 'ap-guangzhou'; - } - - return __awaiter(this, void 0, void 0, function () { - var rawSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 - /*yield*/ - , this.getAllMetrics(region)]; - - case 1: - rawSet = _a.sent(); - return [2 - /*return*/ - , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet)]; - } - }); - }); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/v_clb/query.ts": -/*!**********************************************!*\ - !*** ./datasource/tc_monitor/v_clb/query.ts ***! - \**********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/v_clb/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/v_clb/query_def.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/v_clb/query_def.ts ***! - \**************************************************/ -/*! exports provided: default, VCLBFilterFieldsDescriptor, templateQueryIdMap, VCLBInstanceAliasList, VCLBInvalidDemensions, namespace, queryEditorName, queryEditorConfig, clbNamespaceMap, modifyDimensons, regionSupported, BMLBGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCLBFilterFieldsDescriptor", function() { return VCLBFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCLBInstanceAliasList", function() { return VCLBInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCLBInvalidDemensions", function() { return VCLBInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clbNamespaceMap", function() { return clbNamespaceMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMLBGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); - - -var namespace = 'QCE/V_CLB'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'vClbQuery'; -var VCLBInvalidDemensions = { - InstanceId: 'LoadBalancerId' // vip: 'LoadBalancerVips', - // loadBalancerPort: 'Port', - // protocol: 'Protocol', - -}; // 要和文件名方式一致,ceip_summary=>CEIPSUMMARY - -var VCLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName']; -var templateQueryIdMap = { - instance: 'LoadBalancerId' -}; -var ForwardTypes = [{ - text: '通用的负载均衡', - value: 1 -}, { - text: '传统的负载均衡', - value: 0 -}]; -var OrderBy = [{ - text: 'LoadBalancerName', - value: 'LoadBalancerName' -}, { - text: 'CreateTime', - value: 'CreateTime' -}, { - text: 'Domain', - value: 'Domain' -}, { - text: 'LoadBalancerType', - value: 'LoadBalancerType' -}]; -var OrderType = [{ - text: '升序', - value: 0 -}, { - text: '降序', - value: 1 -}]; -var WithRs = [{ - text: '没有绑定后端服务', - value: 0 -}, { - text: '绑定后端服务', - value: 1 -}, { - text: '查询全部', - value: -1 -}]; -var VCLBFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1', - link: '', - type: 'inputNumber', - min: 1 -}, { - key: 'LoadBalancerIds', - enDescriptor: 'LoadBalancer ID', - cnDescriptor: '实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'LoadBalancerName', - enDescriptor: 'LoadBalancer Name', - cnDescriptor: '实例名称', - link: '', - type: 'input' -}, { - key: 'Forward', - enDescriptor: 'Forward', - cnDescriptor: '负载均衡实例类型', - link: '', - type: 'select', - list: ForwardTypes -}, { - key: 'Domain', - enDescriptor: 'Domain', - cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义', - link: '', - type: 'input' -}, { - key: 'LoadBalancerVips', - enDescriptor: 'LoadBalancer Vips', - cnDescriptor: '负载均衡实例的 VIP 地址', - link: '', - type: 'inputMulti' -}, { - key: 'BackendPrivateIps', - enDescriptor: 'BackendPrivate Ips', - cnDescriptor: '负载均衡绑定的后端服务的内网 IP', - link: '', - type: 'inputMulti' -}, { - key: 'BackendPublicIps', - enDescriptor: 'BackendPublic Ips', - cnDescriptor: '负载均衡绑定的后端服务的外网 IP', - link: '', - type: 'inputMulti' -}, { - key: 'ProjectId', - enDescriptor: 'Project ID', - cnDescriptor: '负载均衡实例所属的项目 ID', - link: '', - type: 'inputNumber' -}, { - key: 'VpcId', - enDescriptor: 'Vpc ID', - cnDescriptor: '负载均衡实例所属私有网络', - link: '', - type: 'input' -}, { - key: 'SecurityGroup', - enDescriptor: 'Security Group', - cnDescriptor: '安全组ID', - link: '', - type: 'input' -}, { - key: 'MasterZone', - enDescriptor: 'Master Zone', - cnDescriptor: '主可用区ID', - link: '', - type: 'input' -}, { - key: 'WithRs', - enDescriptor: 'WithRs', - cnDescriptor: '负载均衡是否绑定后端服务', - link: '', - type: 'select', - list: WithRs -}, { - key: 'OrderBy', - enDescriptor: 'OrderBy', - cnDescriptor: '排序字段', - link: '', - type: 'select', - list: OrderBy -}, { - key: 'OrderType', - enDescriptor: 'OrderByType', - cnDescriptor: '排序方式', - link: '', - type: 'select', - list: OrderType -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685', - namespace: namespace, - fieldDescriptor: VCLBFilterFieldsDescriptor -}; -var LBFields = { - LoadBalancerIds: [], - Forward: undefined, - LoadBalancerName: '', - Domain: '', - LoadBalancerVips: [], - BackendPublicIps: [], - BackendPrivateIps: [], - Limit: 20, - Offset: 0, - ProjectId: undefined, - WithRs: {}, - VpcId: '', - SecurityGroup: '', - MasterZone: '', - OrderBy: {}, - OrderType: {} -}; -var VCLB_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'LoadBalancerId', - Port: '', - Protocol: '', - listener: '', - // listenerAlias: 'ListenerId', - queries: LBFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false); -} // regions for dropdown - - -var regionSupported = [{ - value: 'ap-bangkok' -}, { - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, { - value: 'ap-chongqing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-jakarta' -}, { - value: 'ap-mumbai' -}, { - value: 'ap-seoul' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-shanghai' -}, { - value: 'ap-shanghai-fsi' -}, { - value: 'ap-shenzhen-fsi' -}, { - value: 'ap-singapore' -}, { - value: 'ap-tokyo' -}, { - value: 'eu-frankfurt' -}, { - value: 'eu-moscow' -}, { - value: 'na-ashburn' -}, { - value: 'na-siliconvalley' -}, { - value: 'na-toronto' -}]; -var clbNamespaceMap = { - "public": 'QCE/LB_PUBLIC', - "private": 'QCE/LB_PRIVATE' -}; - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['InstanceId']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (VCLB_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/vbc/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/vbc/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vbc/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["VBCInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["VBCInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'vpc', - action: 'DescribeCcns', - responseField: 'CcnSet' - }; - return _this; - } - - DCDatasource.prototype.getFilterDropdown = function (_a) { - var field = _a.field; - return _super.prototype.getRegions.call(this); - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/vbc/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/vbc/query.ts ***! - \********************************************/ -/*! exports provided: VBCQueryCtrl, scfQuery */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VBCQueryCtrl", function() { return VBCQueryCtrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scfQuery", function() { return scfQuery; }); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module"); -/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vbc/query_def.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); - - - -var ExtraFields = [// { - // label: 'SRegion', - // field: 'SRegion', - // }, - // { - // label: 'DRegion', - // field: 'DRegion', - // }, -]; - -var VBCQueryCtrl = -/** @class */ -function () { - VBCQueryCtrl.$inject = ["$scope", "$rootScope"]; - - /** @ngInject */ - function VBCQueryCtrl($scope, $rootScope) { - $scope.init = function () { - $scope.VBCFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["VBCFilterFieldsDescriptor"]; - $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"]; - }; - - $scope.getExtraFields = function () { - return ExtraFields.filter(function (item) { - var _a; - - return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}); - }); - }; - - $scope.getExtraDropdown = function (field) { - var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); // return $scope.datasource.getServiceFn(service, 'getFilterDropdown')({ field }) - - return $scope.datasource.getFilterDropdown(service, { - field: field - }); - }; - - $scope.init(); - } - - return VBCQueryCtrl; -}(); - - -var template = "\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n"; -function scfQuery() { - return { - template: template, - controller: VBCQueryCtrl, - restrict: 'E', - scope: { - target: '=', - showDetail: '=', - region: '=', - datasource: '=', - getDropdownOptions: '&', - onChange: '&', - onRefresh: '&', - dims: '=' - } - }; -} -grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('vbcQuery', scfQuery); - -/***/ }), - -/***/ "./datasource/tc_monitor/vbc/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/vbc/query_def.ts ***! - \************************************************/ -/*! exports provided: default, VBCFilterFieldsDescriptor, templateQueryIdMap, VBCInstanceAliasList, VBCInvalidDemensions, namespace, queryEditorName, queryEditorConfig, VBCGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VBCFilterFieldsDescriptor", function() { return VBCFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VBCInstanceAliasList", function() { return VBCInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VBCInvalidDemensions", function() { return VBCInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VBCGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/VBC'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'vbcQuery'; -var VBCInvalidDemensions = {// CcnId: 'CcnId', -}; // 需和文件名对应 - -var VBCInstanceAliasList = ['CcnId', 'CcnName']; -var templateQueryIdMap = { - instance: 'CcnId' -}; // select类型需要注意是{},multi后缀是[],dropdown是'' - -var VBCFilterFields = { - Limit: 20, - Offset: 0, - 'ccn-id': [], - 'ccn-name': [], - 'ccn-description': [], - state: {} -}; -var VBCFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'ccn-id', - enDescriptor: 'ccn-id', - cnDescriptor: 'CCN实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'ccn-name', - enDescriptor: 'ccn-name', - cnDescriptor: 'CCN名称', - link: '', - type: 'inputMulti' -}, { - key: 'ccn-description', - enDescriptor: 'ccn-description', - cnDescriptor: 'CCN描述', - link: '', - type: 'inputMulti' -}, { - key: 'state', - enDescriptor: 'state', - cnDescriptor: '实例状态', - link: '', - type: 'select', - multiple: true, - list: [{ - text: '隔离中', - value: 'ISOLATED' - }, { - text: '运行中', - value: 'AVAILABLE' - }] -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/215/19199', - namespace: namespace, - fieldDescriptor: VBCFilterFieldsDescriptor -}; -var VBC_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'CcnId', - DRegion: '', - SRegion: '', - queries: VBCFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false); -} // const regionSupported = [ -// { text: '华北地区(北京)', value: 'ap-beijing' }, -// { text: '西南地区(成都)', value: 'ap-chengdu' }, -// { text: '西南地区(重庆)', value: 'ap-chongqing' }, -// { text: '华南地区(广州)', value: 'ap-guangzhou' }, -// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' }, -// { text: '亚太南部(孟买)', value: 'ap-mumbai' }, -// { text: '华东地区(南京)', value: 'ap-nanjing' }, -// { text: '华东地区(上海)', value: 'ap-shanghai' }, -// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' }, -// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' }, -// { text: '亚太东南(新加坡)', value: 'ap-singapore' }, -// { text: '亚太东北(东京)', value: 'ap-tokyo' }, -// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' }, -// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' }, -// { text: '美国西部(硅谷)', value: 'na-siliconvalley' }, -// { text: '北美地区(多伦多)', value: 'na-toronto' }, -// ]; - - -/* harmony default export */ __webpack_exports__["default"] = (VBC_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/vpc_net_detect/datasource.ts": -/*!************************************************************!*\ - !*** ./datasource/tc_monitor/vpc_net_detect/datasource.ts ***! - \************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpc_net_detect/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPCNETDETECTInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPCNETInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'vpc', - action: 'DescribeNetDetects', - responseField: 'NetDetectSet', - interceptor: {// response: (data: unknown[]) =>[ - // { - // "NetDetectId": "netd-12345678", - // }, - // ], - } - }; - _this.MetricReqConfig = { - resultFilter: _query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"] - }; - return _this; - } - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/vpc_net_detect/query.ts": -/*!*******************************************************!*\ - !*** ./datasource/tc_monitor/vpc_net_detect/query.ts ***! - \*******************************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpc_net_detect/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/vpc_net_detect/query_def.ts": -/*!***********************************************************!*\ - !*** ./datasource/tc_monitor/vpc_net_detect/query_def.ts ***! - \***********************************************************/ -/*! exports provided: default, VPCNETFilterFieldsDescriptor, templateQueryIdMap, VPCNETDETECTInstanceAliasList, VPCNETInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, VPCNETDETECTGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPCNETFilterFieldsDescriptor", function() { return VPCNETFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPCNETDETECTInstanceAliasList", function() { return VPCNETDETECTInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPCNETInvalidDemensions", function() { return VPCNETInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPCNETDETECTGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - - -var namespace = 'QCE/VPC_NET_DETECT'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称 - -var queryEditorName = 'vpcNetDetectQuery'; -var VPCNETInvalidDemensions = { - netdetectid: 'NetDetectId', - netDetectId: 'NetDetectId' -}; -var VPCNETDETECTInstanceAliasList = ['NetDetectId', 'NetDetectName']; -var templateQueryIdMap = { - instance: 'NetDetectId' -}; // select类型需要注意是{},multi后缀是[] - -var VPCNETFilterFields = { - Limit: 20, - Offset: 0, - 'vpc-id': [], - 'net-detect-id': [], - 'subnet-id': [], - 'net-detect-name': [] -}; -var VPCNETFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'vpc-id', - enDescriptor: 'vpc-id', - cnDescriptor: 'VPC实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'net-detect-id', - enDescriptor: 'net-detect-id', - cnDescriptor: '网络探测实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'subnet-id', - enDescriptor: 'subnet-id', - cnDescriptor: '子网实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'net-detect-name', - enDescriptor: 'net-detect-name', - cnDescriptor: '网络探测名称', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/215/38696', - namespace: namespace, - fieldDescriptor: VPCNETFilterFieldsDescriptor -}; -var VPCNET_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'NetDetectId', - queries: VPCNETFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true); -} - -function modifyDimensons(metricItem) { - var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); - - metricTmp.Dimensions.forEach(function (item) { - item.Dimensions = ['netDetectId']; - }); - return metricTmp; -} - -/* harmony default export */ __webpack_exports__["default"] = (VPCNET_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/vpngw/datasource.ts": -/*!***************************************************!*\ - !*** ./datasource/tc_monitor/vpngw/datasource.ts ***! - \***************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpngw/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ "lodash"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPNGWInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPNGWInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'vpc', - action: 'DescribeVpnGateways', - responseField: 'VpnGatewaySet' - }; - return _this; - } - - DCDatasource.prototype.getFilterDropdown = function (_a) { - var field = _a.field, - region = _a.region; - - if (field === 'zone') { - var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'cvm'); - return this.doRequest({ - url: this.url + serviceInfo.path - }, serviceInfo.service, { - region: region, - action: 'DescribeZones' - }).then(function (response) { - return lodash__WEBPACK_IMPORTED_MODULE_3___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_3___default.a.map(response.ZoneSet || [], function (item) { - return { - text: item.ZoneName, - value: item.Zone, - ZoneState: item.ZoneState, - Zone: item.Zone - }; - }), function (item) { - return item.ZoneState === 'AVAILABLE'; - }); - }); - } - - return []; - }; - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/vpngw/query.ts": -/*!**********************************************!*\ - !*** ./datasource/tc_monitor/vpngw/query.ts ***! - \**********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpngw/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/vpngw/query_def.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/vpngw/query_def.ts ***! - \**************************************************/ -/*! exports provided: default, VPNGWFilterFieldsDescriptor, templateQueryIdMap, VPNGWInstanceAliasList, VPNGWInvalidDemensions, namespace, queryEditorName, queryEditorConfig, VPNGWGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNGWFilterFieldsDescriptor", function() { return VPNGWFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNGWInstanceAliasList", function() { return VPNGWInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNGWInvalidDemensions", function() { return VPNGWInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNGWGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/VPNGW'; -var queryEditorName = 'vpngwQuery'; -var VPNGWInvalidDemensions = { - vpnGwId: 'VpnGatewayId' -}; -var VPNGWInstanceAliasList = ['VpnGatewayId', 'VpnGatewayName']; -var templateQueryIdMap = { - instance: 'VpnGatewayId' -}; // select类型需要注意是{},multi后缀是[] - -var VPNGWFilterFields = { - Limit: 20, - Offset: 0, - 'vpc-id': [], - 'vpn-gateway-id': [], - 'vpn-gateway-name': [], - type: {}, - 'public-ip-address': [], - 'renew-flag': {}, - zone: [] -}; -var VPNGWFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'vpc-id', - enDescriptor: 'vpc-id', - cnDescriptor: 'VPC实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'vpn-gateway-id', - enDescriptor: 'vpn-gateway-id', - cnDescriptor: 'VPN实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'vpn-gateway-name', - enDescriptor: 'vpn-gateway-name', - cnDescriptor: 'VPN实例名称', - link: '', - type: 'inputMulti' -}, { - key: 'type', - enDescriptor: 'type', - cnDescriptor: 'VPN网关类型', - link: '', - type: 'select', - multiple: true, - list: [{ - text: 'IPSEC', - value: 'IPSEC' - }, { - text: 'SSL', - value: 'SSL' - }] -}, { - key: 'public-ip-address', - enDescriptor: 'public-ip-address', - cnDescriptor: '公网IP', - link: '', - type: 'inputMulti' -}, { - key: 'renew-flag', - enDescriptor: 'renew-flag', - cnDescriptor: '网关续费类型', - link: '', - type: 'select', - multiple: true, - list: [{ - text: '手动续费', - value: 'NOTIFY_AND_MANUAL_RENEW' - }, { - text: '自动续费', - value: 'NOTIFY_AND_AUTO_RENEW' - }] -}, { - key: 'zone', - enDescriptor: 'zone', - cnDescriptor: 'VPN所在可用区', - link: '', - type: 'dropdownMulti' -}]; -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17514', - namespace: namespace, - fieldDescriptor: VPNGWFilterFieldsDescriptor -}; -var VPNGW_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'VpnGatewayId', - queries: VPNGWFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} - -/* harmony default export */ __webpack_exports__["default"] = (VPNGW_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/vpnx/datasource.ts": -/*!**************************************************!*\ - !*** ./datasource/tc_monitor/vpnx/datasource.ts ***! - \**************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpnx/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - -var DCDatasource = -/** @class */ -function (_super) { - __extends(DCDatasource, _super); - - function DCDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPNXInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPNXInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致 - - _this.InstanceReqConfig = { - service: 'vpc', - action: 'DescribeVpnConnections', - responseField: 'VpnConnectionSet' - }; - return _this; - } - - return DCDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (DCDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/vpnx/query.ts": -/*!*********************************************!*\ - !*** ./datasource/tc_monitor/vpnx/query.ts ***! - \*********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpnx/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/vpnx/query_def.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/vpnx/query_def.ts ***! - \*************************************************/ -/*! exports provided: default, VPNXFilterFieldsDescriptor, templateQueryIdMap, VPNXInstanceAliasList, VPNXInvalidDemensions, namespace, queryEditorName, queryEditorConfig, VPNXGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNXFilterFieldsDescriptor", function() { return VPNXFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNXInstanceAliasList", function() { return VPNXInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNXInvalidDemensions", function() { return VPNXInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNXGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/VPNX'; -var queryEditorName = 'vpnxQuery'; -var VPNXInvalidDemensions = { - vpnConnId: 'VpnConnectionId' -}; -var VPNXInstanceAliasList = ['VpnConnectionId', 'VpnConnectionName']; -var templateQueryIdMap = { - instance: 'VpnConnectionId' -}; // select类型需要注意是{},multi后缀是[] - -var VPNXFilterFields = { - Limit: 20, - Offset: 0, - 'vpc-id': [], - 'vpn-gateway-id': [], - 'customer-gateway-id': [], - 'vpn-connection-name': [], - 'vpn-connection-id': [] -}; -var VPNXFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'vpc-id', - enDescriptor: 'vpc-id', - cnDescriptor: 'VPC实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'vpn-gateway-id', - enDescriptor: 'vpn-gateway-id', - cnDescriptor: 'VPN实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'customer-gateway-id ', - enDescriptor: 'customer-gateway-id ', - cnDescriptor: '对端网关实例ID', - link: '', - type: 'inputMulti' -}, { - key: 'vpn-connection-name', - enDescriptor: 'vpn-connection-name', - cnDescriptor: '通道名称', - link: '', - type: 'inputMulti' -}, { - key: 'vpn-connection-id', - enDescriptor: 'vpn-connection-id', - cnDescriptor: '通道实例ID', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17515', - namespace: namespace, - fieldDescriptor: VPNXFilterFieldsDescriptor -}; -var VPNX_STATE = { - region: '', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'VpnConnectionId', - queries: VPNXFilterFields -}; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} - -/* harmony default export */ __webpack_exports__["default"] = (VPNX_STATE); - - -/***/ }), - -/***/ "./datasource/tc_monitor/waf/datasource.ts": -/*!*************************************************!*\ - !*** ./datasource/tc_monitor/waf/datasource.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/waf/query_def.ts"); -/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts"); -/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts"); -var __extends = undefined && undefined.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - - for (var p in s) { - if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - } - - return t; - }; - - return __assign.apply(this, arguments); -}; - -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function sent() { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - - while (_) { - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - - switch (op[0]) { - case 0: - case 1: - t = op; - break; - - case 4: - _.label++; - return { - value: op[1], - done: false - }; - - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - - case 7: - op = _.ops.pop(); - - _.trys.pop(); - - continue; - - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - - if (t && _.label < t[2]) { - _.label = t[2]; - - _.ops.push(op); - - break; - } - - if (t[2]) _.ops.pop(); - - _.trys.pop(); - - continue; - } - - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - } - - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - -var CDNDatasource = -/** @class */ -function (_super) { - __extends(CDNDatasource, _super); - - function CDNDatasource(instanceSettings, backendSrv, templateSrv) { - var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; - - _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"]; - _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["WAFInstanceAliasList"]; - _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["WAFInvalidDemensions"]; - _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; - _this.InstanceReqConfig = { - // service: 'waf', - action: 'DescribeDomains', - responseField: 'Domains' - }; - return _this; - } - - CDNDatasource.prototype.getRegions = function () { - return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) { - var value = _a.value; - return { - value: value, - text: Object(_locale__WEBPACK_IMPORTED_MODULE_2__["t"])(value) - }; - })); - }; - - CDNDatasource.prototype.metricFindQuery = function (query, regex) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), { - region: 'ap-guangzhou' - }), regex)]; - }); - }); - }; - - return CDNDatasource; -}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]); - -/* harmony default export */ __webpack_exports__["default"] = (CDNDatasource); - -/***/ }), - -/***/ "./datasource/tc_monitor/waf/query.ts": -/*!********************************************!*\ - !*** ./datasource/tc_monitor/waf/query.ts ***! - \********************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts"); -/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/waf/query_def.ts"); - - -Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]); - -/***/ }), - -/***/ "./datasource/tc_monitor/waf/query_def.ts": -/*!************************************************!*\ - !*** ./datasource/tc_monitor/waf/query_def.ts ***! - \************************************************/ -/*! exports provided: default, WAFFilterFieldsDescriptor, templateQueryIdMap, WAFInstanceAliasList, WAFInvalidDemensions, namespace, regionSupported, queryEditorName, queryEditorConfig, WAFGetInstanceQueryParams */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WAFFilterFieldsDescriptor", function() { return WAFFilterFieldsDescriptor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WAFInstanceAliasList", function() { return WAFInstanceAliasList; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WAFInvalidDemensions", function() { return WAFInvalidDemensions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WAFGetInstanceQueryParams", function() { return GetInstanceQueryParams; }); -/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts"); - -var namespace = 'QCE/WAF'; -var queryEditorName = 'wafQuery'; -var WAFFilterFields = { - Limit: 20, - Offset: 0, - origin: [], - domain: [], - resourceId: [], - status: {}, - serviceType: {}, - projectId: [], - domainType: {}, - fullUrlCache: {}, - https: {}, - originPullProtocol: {}, - tagKey: [] -}; -var WAFFilterFieldsDescriptor = [{ - key: 'Offset', - enDescriptor: 'Offset', - cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项', - link: '', - type: 'inputNumber', - min: 0 -}, { - key: 'Limit', - enDescriptor: 'Limit', - cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100', - link: '', - type: 'inputNumber', - min: 1, - max: 100 -}, { - key: 'origin', - enDescriptor: 'origin', - cnDescriptor: '主源站', - link: '', - type: 'inputMulti' -}, { - key: 'domain', - enDescriptor: 'domain', - cnDescriptor: '域名', - link: '', - type: 'inputMulti' -}, { - key: 'resourceId', - enDescriptor: 'resourceId', - cnDescriptor: '域名id', - link: '', - type: 'inputMulti' -}, { - key: 'status', - enDescriptor: 'status', - cnDescriptor: '域名状态', - link: '', - type: 'select', - list: [{ - text: 'online', - value: 'online' - }, { - text: 'offline', - value: 'offline' - }, { - text: 'processing', - value: 'processing' - }] -}, { - key: 'serviceType', - enDescriptor: 'serviceType', - cnDescriptor: '业务类型', - link: '', - type: 'select', - list: [{ - text: 'web', - value: 'web' - }, { - text: 'download', - value: 'download' - }, { - text: 'media', - value: 'media' - }] -}, { - key: 'projectId', - enDescriptor: 'projectId', - cnDescriptor: '项目ID', - link: '', - type: 'inputNumberMulti' -}, { - key: 'domainType', - enDescriptor: 'domainType', - cnDescriptor: '主源站类型', - link: '', - type: 'select', - list: [{ - text: '自有源', - value: 'cname' - }, { - text: 'cos接入', - value: 'cos' - }] -}, { - key: 'fullUrlCache', - enDescriptor: 'fullUrlCache', - cnDescriptor: '全路径缓存', - link: '', - type: 'select', - list: [{ - text: '打开', - value: 'on' - }, { - text: '关闭', - value: 'off' - }] -}, { - key: 'https', - enDescriptor: 'https', - cnDescriptor: '是否配置https', - link: '', - type: 'select', - list: [{ - text: 'on', - value: 'on' - }, { - text: 'off', - value: 'off' - }, { - text: 'processing', - value: 'processing' - }] -}, { - key: 'originPullProtocol', - enDescriptor: 'originPullProtocol', - cnDescriptor: '回源协议类型', - link: '', - type: 'select', - list: [{ - text: 'http', - value: 'http' - }, { - text: 'follow', - value: 'follow' - }, { - text: 'https', - value: 'https' - }] -}, { - key: 'tagKey', - enDescriptor: 'tagKey', - cnDescriptor: '标签键', - link: '', - type: 'inputMulti' -}]; // 各产品实例列表detail配置 - -var queryEditorConfig = { - instanceDocUrl: 'https://cloud.tencent.com/document/api/228/41118', - namespace: namespace, - fieldDescriptor: WAFFilterFieldsDescriptor -}; -var WAF_STATE = { - region: 'ap-guangzhou', - metricName: '', - metricUnit: '', - period: undefined, - dimensionObject: null, - instance: '', - instanceAlias: 'Domain', - queries: WAFFilterFields -}; -var regionSupported = [{ - value: 'ap-beijing' -}, { - value: 'ap-chengdu' -}, { - value: 'ap-chongqing' -}, { - value: 'ap-guangzhou' -}, { - value: 'ap-hongkong' -}, { - value: 'ap-nanjing' -}, { - value: 'ap-shanghai' -}, { - value: 'ap-shanghai-fsi' -}, { - value: 'ap-seoul' -}, { - value: 'ap-singapore' -}]; - -function GetInstanceQueryParams(queries) { - if (queries === void 0) { - queries = {}; - } - - return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true); -} - -var WAFInstanceAliasList = ['Domain', 'ProjectId']; -var WAFInvalidDemensions = { - projectId: 'ProjectId', - domain: 'Domain' -}; -var templateQueryIdMap = { - instance: 'Domain' -}; -/* harmony default export */ __webpack_exports__["default"] = (WAF_STATE); - - -/***/ }), - -/***/ "./locale/en_US.ts": -/*!*************************!*\ - !*** ./locale/en_US.ts ***! - \*************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -var en_US = { - language: 'Language', - enable_intranet_API_mode: 'Enable Intranet API Mode', - cloud_database: 'Cloud Database', - cloud_load_balancer: 'Cloud Load Balancer', - virtual_private_cloud: 'Virtual Private Cloud', - content_delivery_network: 'Content Delivery Network', - message_queue: 'Message Queue', - direct_connect: 'Direct Connect', - cloud_physical_machine: 'Cloud Physical Machine', - elastic_mapReduce: 'Elastic MapReduce', - edge_computing_machine: 'Edge Computing Machine', - // namespace - RUM: 'Real User Monitoring(RUM)', - CLS: 'Cloud Log Service(CLS)', - CVM: 'Cloud Virtual Machine(CVM)', - CDB: 'TencentDB for MySQL(CDB)', - CMONGO: 'TencentDB for MongoDB(CMONGO)', - POSTGRES: 'TencentDB for PostgreSQL(POSTGRES)', - REDIS: 'TencentDB for Redis(REDIS)', - REDIS_MEM: 'TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)', - SQLSERVER: 'TencentDB for SQL Server(SQLSERVER)', - CYNOSDB_MYSQL: 'TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)', - TCAPLUS: 'TencentDB for TcaplusDB(TCAPLUS)', - TDMYSQL: 'TDSQL for MySQL(TDMYSQL)', - PCX: 'Peering Connection(PCX)', - BWP: 'Bandwidth Packet(BWP)', - NAT_GATEWAY: 'NAT Gateway(NAT_GATEWAY)', - VPNGW: 'VPN Gateway(VPNGW)', - VPNX: 'VPN Tunnel(VPNX)', - DCG: 'Direct Connect Gateway(DCG)', - CEIP_SUMMARY: 'Anycast EIP(CEIP_SUMMARY)', - VPC_NET_DETECT: 'Network Detection(VPC_NET_DETECT)', - VBC: 'Cloud Connect Network(VBC)', - LB: 'Elastic IP(LB)', - LB_PUBLIC: 'Public Network CLB(LB_PUBLIC)', - LB_PRIVATE: 'Private Network CLB Layer-4 Protocol(LB_PRIVATE)', - LOADBALANCE: 'Private Network CLB Layer-7 Protocol(LOADBALANCE)', - CDN: 'Chinese Mainland Domain(CDN)', - CDN_LOG_DATA: 'Province(CDN_LOG_DATA)', - OV_CDN: 'Overseas Domain(OV_CDN)', - SCF_V2: 'Serverless Cloud Function(SCF)', - CFS: 'Cloud File Storage(CFS)', - COS: 'Cloud Object Storage(COS)', - CKAFKA: 'Message Queue CKafka(CKAFKA)', - CMQ: 'Message Queue for Queue Service(CMQ)', - CMQTOPIC: 'Message Queue for Topic Subscription(CMQTOPIC)', - TDMQ: 'Tencent Distributed Message Queue for Pulsar(TDMQ)', - TDMQ_ROCKETMQ: 'Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)', - TDMQ_RABBITMQ: 'Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)', - DCX: 'Direct Connect for Dedicated Tunnel(DCX)', - DC: 'Direct Connect for Connection(DC)', - CPM: 'Cloud Physical Machine(CPM)', - BM_PCX: 'Cloud Physical Machine for Peering Connection(BM_PCX)', - BM_LB: 'Cloud Physical Machine for Public Network CLB(BM_LB)', - BM_INTRA_LB: 'Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)', - CES: 'Elasticsearch Service(CES)', - BLOCK_STORAGE: 'Cloud Block Storage(BLOCK_STORAGE)', - APIGATEWAY: 'API Gateway(APIGATEWAY)', - QAAP: 'Global Application Acceleration Platform(GAAP)', - ECM: 'Edge Computing Machine for Computation and Networking(ECM)', - ECM_BLOCK_STORAGE: 'Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)', - ECM_LB: 'Edge Computing Machine for Layer-4 CLB(ECM_LB)', - GSE: 'Game Server Elastic-scaling(GSE)', - TKE: 'Tencent Kubernetes Engine(TKE)', - ECDN: 'Enterprise Content Delivery Network(ECDN)', - WAF: 'Web Application Firewall(WAF)', - // others - multi_scene: 'Multi-Scene', - lite: 'Lite', - cloud_monitor: 'Cloud Monitor', - cloud_log_service: 'Cloud Log Service', - real_user_monitoring: 'Real User Monitoring', - apm_monitoring: 'Application Monitoring', - region: 'Region', - log_topic: 'Log Topic', - syntax_rule: 'Syntax Rule', - max_result_num: 'Maximum result number', - search_statement: 'Search Statement', - time_unit: 'Time unit', - seconds: 'seconds', - search_description: 'Search for instances according to specific query conditions, and pull the first 20 instances by default', - // region - 'ap-guangzhou': 'South China(Guangzhou)', - 'ap-shenzhen-fsi': 'South China(Shenzhen Finance)', - 'ap-guangzhou-open': 'South China(Guangzhou OPEN)', - 'ap-shenzhen': 'South China(Shenzhen)', - 'ap-qingyuan': 'South China(Qingyuan)', - 'ap-shanghai': 'East China(Shanghai)', - 'ap-shanghai-fsi': 'East China(Shanghai Finance)', - 'ap-jinan-ec': 'East China(Jinan)', - 'ap-hangzhou-ec': 'East China(Hangzhou)', - 'ap-nanjing': 'East China(Nanjing)', - 'ap-fuzhou-ec': 'East China(Fuzhou)', - 'ap-hefei-ec': 'East China(Hefei)', - 'ap-beijing': 'North China region(Beijing)', - 'ap-tianjin': 'North China region(Tianjin)', - 'ap-beijing-fsi': 'North China region(Beijing Finance)', - 'ap-shijiazhuang-ec': 'North China region(Shijiazhuang)', - 'ap-wuhan-ec': 'Central China(Wuhan)', - 'ap-changsha-ec': 'Central China(Changsha)', - 'ap-zhengzhou-ec': 'Central China(Zhengzhou)', - 'ap-chengdu': 'Southwest China(Chengdu)', - 'ap-chongqing': 'Southwest China(Chongqing)', - 'ap-xian-ec': "Northwest region(Xi'an)", - 'ap-shenyang-ec': 'Northeast China(Shenyang)', - 'ap-taipei': 'Hong Kong, Macau and Taiwan (China)(Taipei, China)', - 'ap-hongkong': 'Hong Kong, Macau and Taiwan (China)(Hong Kong, China)', - 'ap-seoul': 'Northeast Asia(Seoul)', - 'ap-tokyo': 'Northeast Asia(Tokyo)', - 'ap-singapore': 'Southeast Asia(Singapore)', - 'ap-bangkok': 'Southeast Asia(Bangkok)', - 'ap-jakarta': 'Southeast Asia(Jakarta)', - 'na-siliconvalley': 'US West(Silicon Valley)', - 'eu-frankfurt': 'Europe(Frankfurt)', - 'eu-moscow': 'Europe(Northeastern Europe)', - 'ap-mumbai': 'South Asia(Mumbai)', - 'na-ashburn': 'US East(Virginia)', - 'sa-saopaulo': 'South America(São Paulo)', - 'na-toronto': 'North America(Toronto)' -}; -/* harmony default export */ __webpack_exports__["default"] = (en_US); - -/***/ }), - -/***/ "./locale/index.ts": -/*!*************************!*\ - !*** ./locale/index.ts ***! - \*************************/ -/*! exports provided: Language, t, setLanguage, getLanguage */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Language", function() { return Language; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return t; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLanguage", function() { return setLanguage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLanguage", function() { return getLanguage; }); -/* harmony import */ var _zh_CN__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./zh_CN */ "./locale/zh_CN.ts"); -/* harmony import */ var _en_US__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./en_US */ "./locale/en_US.ts"); - - -var locale_language = 'zh-CN'; -var Language; - -(function (Language) { - Language["Chinese"] = "zh-CN"; - Language["English"] = "en-US"; -})(Language || (Language = {})); - -var t = function t(key) { - if (locale_language === Language.Chinese) { - return _zh_CN__WEBPACK_IMPORTED_MODULE_0__["default"][key]; - } - - return _en_US__WEBPACK_IMPORTED_MODULE_1__["default"][key]; -}; -var setLanguage = function setLanguage(language) { - locale_language = language; -}; -var getLanguage = function getLanguage() { - return locale_language; -}; - -/***/ }), - -/***/ "./locale/zh_CN.ts": -/*!*************************!*\ - !*** ./locale/zh_CN.ts ***! - \*************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -var zh_CN = { - language: '语言', - enable_intranet_API_mode: '开启内网API模式', - cloud_database: '云数据库', - cloud_load_balancer: '负载均衡', - virtual_private_cloud: '私有网络', - content_delivery_network: '内容分发网络', - message_queue: '消息队列', - direct_connect: '专线接入', - cloud_physical_machine: '黑石物理服务器', - elastic_mapReduce: '弹性 MapReduce', - edge_computing_machine: '边缘计算机器', - // namespace - RUM: '前端性能监控(RUM)', - APM: '应用性能监控(APM)', - CLS: '日志服务(CLS)', - CVM: '云服务器(CVM)', - CDB: '云数据库 MySQL(CDB)', - CMONGO: '云数据库 MongoDB(CMONGO)', - POSTGRES: '云数据库 PostgreSQL(POSTGRES)', - REDIS: '云数据库 Redis(REDIS)', - REDIS_MEM: '云数据库 Redis内存版(5s)(REDIS_MEM)', - SQLSERVER: '云数据库 SQL Server(SQLSERVER)', - CYNOSDB_MYSQL: '云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)', - TCAPLUS: '云数据库 TcaplusDB(TCAPLUS)', - TDMYSQL: '分布式数据库 TDSQL MySQL(TDMYSQL)', - PCX: '私有网络-对等连接(PCX)', - BWP: '私有网络-带宽包(BWP)', - NAT_GATEWAY: '私有网络-NAT 网关(NAT_GATEWAY)', - VPNGW: '私有网络-VPN 网关(VPNGW)', - VPNX: '私有网络-VPN 通道(VPNX)', - DCG: '私有网络-专线网关(DCG)', - CEIP_SUMMARY: '私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)', - VPC_NET_DETECT: '私有网络-网络探测(VPC_NET_DETECT)', - VBC: '私有网络-云联网(VBC)', - LB: '私有网络-弹性公网IP(LB)', - LB_PUBLIC: '公网负载均衡监控指标(LB_PUBLIC)', - LB_PRIVATE: '内网负载均衡四层协议监控指标(LB_PRIVATE)', - LOADBALANCE: '内网负载均衡七层协议监控指标(LOADBALANCE)', - CDN: '国内域名(CDN)', - CDN_LOG_DATA: '省份域名(CDN_LOG_DATA)', - OV_CDN: '国外域名(OV_CDN)', - SCF_V2: '云函数(SCF)', - CFS: '文件存储(CFS)', - COS: '对象存储(COS)', - CKAFKA: '消息队列 CKafka(CKAFKA)', - CMQ: '消息队列-队列服务监控(CMQ)', - CMQTOPIC: '消息队列-主题订阅监控(CMQTOPIC)', - TDMQ: '消息队列 Pulsar 版(TDMQ)', - TDMQ_ROCKETMQ: '消息队列 RocketMQ 版(ROCKETMQ)', - TDMQ_RABBITMQ: '消息队列 RabbitMQ 版(RABBITMQ)', - DCX: '专线接入-专用通道(DCX)', - DC: '专线接入-物理专线(DC)', - CPM: '黑石物理服务器(CPM)', - BM_PCX: '黑石对等连接(BM_PCX)', - BM_LB: '黑石外网负载均衡(BM_LB)', - BM_INTRA_LB: '黑石内网负载均衡(BM_INTRA_LB)', - CES: 'Elasticsearch指标(CES)', - BLOCK_STORAGE: '云硬盘(BLOCK_STORAGE)', - APIGATEWAY: 'API 网关(APIGATEWAY)', - QAAP: '全球应用加速(GAAP)', - ECM: '边缘计算和网络监控(ECM)', - ECM_BLOCK_STORAGE: '边缘计算存储监控(ECM_BLOCK_STORAGE)', - ECM_LB: '边缘计算负载均衡(ECM_LB)', - GSE: '游戏服务器伸缩(GSE)', - TKE: '容器服务(TKE)', - ECDN: '全站加速网络(ECDN)', - WAF: 'Web 应用防火墙(WAF)', - // others - multi_scene: '多场景版', - lite: '精简版', - cloud_monitor: '云监控', - cloud_log_service: '日志服务', - real_user_monitoring: '前端性能监控', - apm_monitoring: '应用性能监控', - region: '地域', - log_topic: '日志主题', - syntax_rule: '语法规则', - max_result_num: '最大结果条数', - search_statement: '检索语句', - time_unit: 'Time unit', - seconds: 'seconds', - search_description: '按照具体的查询条件搜索实例,默认拉取前 20 条实例', - // region - 'ap-guangzhou': '华南地区(广州)', - 'ap-shenzhen-fsi': '华南地区(深圳金融)', - 'ap-guangzhou-open': '华南地区(广州OPEN)', - 'ap-shenzhen': '华南地区(深圳)', - 'ap-qingyuan': '华南地区(清远)', - 'ap-shanghai': '华东地区(上海)', - 'ap-shanghai-fsi': '华东地区(上海金融)', - 'ap-jinan-ec': '华东地区(济南)', - 'ap-hangzhou-ec': '华东地区(杭州)', - 'ap-nanjing': '华东地区(南京)', - 'ap-fuzhou-ec': '华东地区(福州)', - 'ap-hefei-ec': '华东地区(合肥)', - 'ap-beijing': '华北地区(北京)', - 'ap-tianjin': '华北地区(天津)', - 'ap-beijing-fsi': '华北地区(北京金融)', - 'ap-shijiazhuang-ec': '华北地区(石家庄)', - 'ap-wuhan-ec': '华中地区(武汉)', - 'ap-changsha-ec': '华中地区(长沙)', - 'ap-zhengzhou-ec': '华中地区(郑州)', - 'ap-chengdu': '西南地区(成都)', - 'ap-chongqing': '西南地区(重庆)', - 'ap-xian-ec': '西北地区(西安)', - 'ap-shenyang-ec': '东北地区(沈阳)', - 'ap-taipei': '港澳台地区(中国台北)', - 'ap-hongkong': '港澳台地区(中国香港)', - 'ap-seoul': '亚太东北(首尔)', - 'ap-tokyo': '亚太东北(东京)', - 'ap-singapore': '亚太东南(新加坡)', - 'ap-bangkok': '亚太东南(曼谷)', - 'ap-jakarta': '亚太东南(雅加达)', - 'na-siliconvalley': '美国西部(硅谷)', - 'eu-frankfurt': '欧洲地区(法兰克福)', - 'eu-moscow': '欧洲地区(莫斯科)', - 'ap-mumbai': '亚太南部(孟买)', - 'na-ashburn': '美国东部(弗吉尼亚)', - 'sa-saopaulo': '南美地区(圣保罗)', - 'na-toronto': '北美地区(多伦多)' -}; -/* harmony default export */ __webpack_exports__["default"] = (zh_CN); - -/***/ }), - -/***/ "@grafana/data": -/*!********************************!*\ - !*** external "@grafana/data" ***! - \********************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE__grafana_data__; - -/***/ }), - -/***/ "@grafana/runtime": -/*!***********************************!*\ - !*** external "@grafana/runtime" ***! - \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE__grafana_runtime__; - -/***/ }), - -/***/ "grafana/app/core/core_module": -/*!***************************************!*\ - !*** external "app/core/core_module" ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_grafana_app_core_core_module__; - -/***/ }), - -/***/ "lodash": -/*!*************************!*\ - !*** external "lodash" ***! - \*************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_lodash__; - -/***/ }), - -/***/ "moment": -/*!*************************!*\ - !*** external "moment" ***! - \*************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_moment__; - -/***/ }) - -/******/ })});; +define("TencentCloudMonitorGrafanaApp",["lodash","app/core/core_module","@grafana/data","@grafana/runtime","moment"],(function(e,t,n,r,i){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=212)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r={language:"语言",enable_intranet_API_mode:"开启内网API模式",cloud_database:"云数据库",cloud_load_balancer:"负载均衡",virtual_private_cloud:"私有网络",content_delivery_network:"内容分发网络",message_queue:"消息队列",direct_connect:"专线接入",cloud_physical_machine:"黑石物理服务器",elastic_mapReduce:"弹性 MapReduce",edge_computing_machine:"边缘计算机器",RUM:"前端性能监控(RUM)",APM:"应用性能监控(APM)",CLS:"日志服务(CLS)",CVM:"云服务器(CVM)",CDB:"云数据库 MySQL(CDB)",CMONGO:"云数据库 MongoDB(CMONGO)",POSTGRES:"云数据库 PostgreSQL(POSTGRES)",REDIS:"云数据库 Redis(REDIS)",REDIS_MEM:"云数据库 Redis内存版(5s)(REDIS_MEM)",SQLSERVER:"云数据库 SQL Server(SQLSERVER)",CYNOSDB_MYSQL:"云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)",TCAPLUS:"云数据库 TcaplusDB(TCAPLUS)",TDMYSQL:"分布式数据库 TDSQL MySQL(TDMYSQL)",PCX:"私有网络-对等连接(PCX)",BWP:"私有网络-带宽包(BWP)",NAT_GATEWAY:"私有网络-NAT 网关(NAT_GATEWAY)",VPNGW:"私有网络-VPN 网关(VPNGW)",VPNX:"私有网络-VPN 通道(VPNX)",DCG:"私有网络-专线网关(DCG)",CEIP_SUMMARY:"私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)",VPC_NET_DETECT:"私有网络-网络探测(VPC_NET_DETECT)",VBC:"私有网络-云联网(VBC)",LB:"私有网络-弹性公网IP(LB)",LB_PUBLIC:"公网负载均衡监控指标(LB_PUBLIC)",LB_PRIVATE:"内网负载均衡四层协议监控指标(LB_PRIVATE)",LOADBALANCE:"内网负载均衡七层协议监控指标(LOADBALANCE)",CDN:"国内域名(CDN)",CDN_LOG_DATA:"省份域名(CDN_LOG_DATA)",OV_CDN:"国外域名(OV_CDN)",SCF_V2:"云函数(SCF)",CFS:"文件存储(CFS)",COS:"对象存储(COS)",CKAFKA:"消息队列 CKafka(CKAFKA)",CMQ:"消息队列-队列服务监控(CMQ)",CMQTOPIC:"消息队列-主题订阅监控(CMQTOPIC)",TDMQ:"消息队列 Pulsar 版(TDMQ)",TDMQ_ROCKETMQ:"消息队列 RocketMQ 版(ROCKETMQ)",TDMQ_RABBITMQ:"消息队列 RabbitMQ 版(RABBITMQ)",DCX:"专线接入-专用通道(DCX)",DC:"专线接入-物理专线(DC)",CPM:"黑石物理服务器(CPM)",BM_PCX:"黑石对等连接(BM_PCX)",BM_LB:"黑石外网负载均衡(BM_LB)",BM_INTRA_LB:"黑石内网负载均衡(BM_INTRA_LB)",CES:"Elasticsearch指标(CES)",BLOCK_STORAGE:"云硬盘(BLOCK_STORAGE)",APIGATEWAY:"API 网关(APIGATEWAY)",QAAP:"全球应用加速(GAAP)",ECM:"边缘计算和网络监控(ECM)",ECM_BLOCK_STORAGE:"边缘计算存储监控(ECM_BLOCK_STORAGE)",ECM_LB:"边缘计算负载均衡(ECM_LB)",GSE:"游戏服务器伸缩(GSE)",TKE:"容器服务(TKE)",ECDN:"全站加速网络(ECDN)",WAF:"Web 应用防火墙(WAF)",multi_scene:"多场景版",lite:"精简版",cloud_monitor:"云监控",cloud_log_service:"日志服务",real_user_monitoring:"前端性能监控",apm_monitoring:"应用性能监控",region:"地域",log_topic:"日志主题",syntax_rule:"语法规则",max_result_num:"最大结果条数",search_statement:"检索语句",time_unit:"Time unit",seconds:"seconds",search_description:"按照具体的查询条件搜索实例,默认拉取前 20 条实例","ap-guangzhou":"华南地区(广州)","ap-shenzhen-fsi":"华南地区(深圳金融)","ap-guangzhou-open":"华南地区(广州OPEN)","ap-shenzhen":"华南地区(深圳)","ap-qingyuan":"华南地区(清远)","ap-shanghai":"华东地区(上海)","ap-shanghai-fsi":"华东地区(上海金融)","ap-jinan-ec":"华东地区(济南)","ap-hangzhou-ec":"华东地区(杭州)","ap-nanjing":"华东地区(南京)","ap-fuzhou-ec":"华东地区(福州)","ap-hefei-ec":"华东地区(合肥)","ap-beijing":"华北地区(北京)","ap-tianjin":"华北地区(天津)","ap-beijing-fsi":"华北地区(北京金融)","ap-shijiazhuang-ec":"华北地区(石家庄)","ap-wuhan-ec":"华中地区(武汉)","ap-changsha-ec":"华中地区(长沙)","ap-zhengzhou-ec":"华中地区(郑州)","ap-chengdu":"西南地区(成都)","ap-chongqing":"西南地区(重庆)","ap-xian-ec":"西北地区(西安)","ap-shenyang-ec":"东北地区(沈阳)","ap-taipei":"港澳台地区(中国台北)","ap-hongkong":"港澳台地区(中国香港)","ap-seoul":"亚太东北(首尔)","ap-tokyo":"亚太东北(东京)","ap-singapore":"亚太东南(新加坡)","ap-bangkok":"亚太东南(曼谷)","ap-jakarta":"亚太东南(雅加达)","na-siliconvalley":"美国西部(硅谷)","eu-frankfurt":"欧洲地区(法兰克福)","eu-moscow":"欧洲地区(莫斯科)","ap-mumbai":"亚太南部(孟买)","na-ashburn":"美国东部(弗吉尼亚)","sa-saopaulo":"南美地区(圣保罗)","na-toronto":"北美地区(多伦多)"},i={language:"Language",enable_intranet_API_mode:"Enable Intranet API Mode",cloud_database:"Cloud Database",cloud_load_balancer:"Cloud Load Balancer",virtual_private_cloud:"Virtual Private Cloud",content_delivery_network:"Content Delivery Network",message_queue:"Message Queue",direct_connect:"Direct Connect",cloud_physical_machine:"Cloud Physical Machine",elastic_mapReduce:"Elastic MapReduce",edge_computing_machine:"Edge Computing Machine",RUM:"Real User Monitoring(RUM)",CLS:"Cloud Log Service(CLS)",CVM:"Cloud Virtual Machine(CVM)",CDB:"TencentDB for MySQL(CDB)",CMONGO:"TencentDB for MongoDB(CMONGO)",POSTGRES:"TencentDB for PostgreSQL(POSTGRES)",REDIS:"TencentDB for Redis(REDIS)",REDIS_MEM:"TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)",SQLSERVER:"TencentDB for SQL Server(SQLSERVER)",CYNOSDB_MYSQL:"TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)",TCAPLUS:"TencentDB for TcaplusDB(TCAPLUS)",TDMYSQL:"TDSQL for MySQL(TDMYSQL)",PCX:"Peering Connection(PCX)",BWP:"Bandwidth Packet(BWP)",NAT_GATEWAY:"NAT Gateway(NAT_GATEWAY)",VPNGW:"VPN Gateway(VPNGW)",VPNX:"VPN Tunnel(VPNX)",DCG:"Direct Connect Gateway(DCG)",CEIP_SUMMARY:"Anycast EIP(CEIP_SUMMARY)",VPC_NET_DETECT:"Network Detection(VPC_NET_DETECT)",VBC:"Cloud Connect Network(VBC)",LB:"Elastic IP(LB)",LB_PUBLIC:"Public Network CLB(LB_PUBLIC)",LB_PRIVATE:"Private Network CLB Layer-4 Protocol(LB_PRIVATE)",LOADBALANCE:"Private Network CLB Layer-7 Protocol(LOADBALANCE)",CDN:"Chinese Mainland Domain(CDN)",CDN_LOG_DATA:"Province(CDN_LOG_DATA)",OV_CDN:"Overseas Domain(OV_CDN)",SCF_V2:"Serverless Cloud Function(SCF)",CFS:"Cloud File Storage(CFS)",COS:"Cloud Object Storage(COS)",CKAFKA:"Message Queue CKafka(CKAFKA)",CMQ:"Message Queue for Queue Service(CMQ)",CMQTOPIC:"Message Queue for Topic Subscription(CMQTOPIC)",TDMQ:"Tencent Distributed Message Queue for Pulsar(TDMQ)",TDMQ_ROCKETMQ:"Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)",TDMQ_RABBITMQ:"Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)",DCX:"Direct Connect for Dedicated Tunnel(DCX)",DC:"Direct Connect for Connection(DC)",CPM:"Cloud Physical Machine(CPM)",BM_PCX:"Cloud Physical Machine for Peering Connection(BM_PCX)",BM_LB:"Cloud Physical Machine for Public Network CLB(BM_LB)",BM_INTRA_LB:"Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)",CES:"Elasticsearch Service(CES)",BLOCK_STORAGE:"Cloud Block Storage(BLOCK_STORAGE)",APIGATEWAY:"API Gateway(APIGATEWAY)",QAAP:"Global Application Acceleration Platform(GAAP)",ECM:"Edge Computing Machine for Computation and Networking(ECM)",ECM_BLOCK_STORAGE:"Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)",ECM_LB:"Edge Computing Machine for Layer-4 CLB(ECM_LB)",GSE:"Game Server Elastic-scaling(GSE)",TKE:"Tencent Kubernetes Engine(TKE)",ECDN:"Enterprise Content Delivery Network(ECDN)",WAF:"Web Application Firewall(WAF)",multi_scene:"Multi-Scene",lite:"Lite",cloud_monitor:"Cloud Monitor",cloud_log_service:"Cloud Log Service",real_user_monitoring:"Real User Monitoring",apm_monitoring:"Application Monitoring",region:"Region",log_topic:"Log Topic",syntax_rule:"Syntax Rule",max_result_num:"Maximum result number",search_statement:"Search Statement",time_unit:"Time unit",seconds:"seconds",search_description:"Search for instances according to specific query conditions, and pull the first 20 instances by default","ap-guangzhou":"South China(Guangzhou)","ap-shenzhen-fsi":"South China(Shenzhen Finance)","ap-guangzhou-open":"South China(Guangzhou OPEN)","ap-shenzhen":"South China(Shenzhen)","ap-qingyuan":"South China(Qingyuan)","ap-shanghai":"East China(Shanghai)","ap-shanghai-fsi":"East China(Shanghai Finance)","ap-jinan-ec":"East China(Jinan)","ap-hangzhou-ec":"East China(Hangzhou)","ap-nanjing":"East China(Nanjing)","ap-fuzhou-ec":"East China(Fuzhou)","ap-hefei-ec":"East China(Hefei)","ap-beijing":"North China region(Beijing)","ap-tianjin":"North China region(Tianjin)","ap-beijing-fsi":"North China region(Beijing Finance)","ap-shijiazhuang-ec":"North China region(Shijiazhuang)","ap-wuhan-ec":"Central China(Wuhan)","ap-changsha-ec":"Central China(Changsha)","ap-zhengzhou-ec":"Central China(Zhengzhou)","ap-chengdu":"Southwest China(Chengdu)","ap-chongqing":"Southwest China(Chongqing)","ap-xian-ec":"Northwest region(Xi'an)","ap-shenyang-ec":"Northeast China(Shenyang)","ap-taipei":"Hong Kong, Macau and Taiwan (China)(Taipei, China)","ap-hongkong":"Hong Kong, Macau and Taiwan (China)(Hong Kong, China)","ap-seoul":"Northeast Asia(Seoul)","ap-tokyo":"Northeast Asia(Tokyo)","ap-singapore":"Southeast Asia(Singapore)","ap-bangkok":"Southeast Asia(Bangkok)","ap-jakarta":"Southeast Asia(Jakarta)","na-siliconvalley":"US West(Silicon Valley)","eu-frankfurt":"Europe(Frankfurt)","eu-moscow":"Europe(Northeastern Europe)","ap-mumbai":"South Asia(Mumbai)","na-ashburn":"US East(Virginia)","sa-saopaulo":"South America(São Paulo)","na-toronto":"North America(Toronto)"};n.d(t,"a",(function(){return o})),n.d(t,"d",(function(){return c})),n.d(t,"c",(function(){return s})),n.d(t,"b",(function(){return u}));var o,a="zh-CN";!function(e){e.Chinese="zh-CN",e.English="en-US"}(o||(o={}));var c=function(e){return a===o.Chinese?r[e]:i[e]},s=function(e){a=e},u=function(){return a}},function(e,t,n){"use strict";var r=n(0),i=n.n(r),o=n(197),a=n.n(o),c=n(20),s=n(69),u=n.n(s),l=function(){return(l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&-1===t._InstanceAliasValue.indexOf(r[o].timeshift)&&(t._InstanceAliasValue+="_".concat(r[o].timeshift)),t[e]=d.getDimensionsVal(t,p,y),d.checkKeys.length>0&&d.checkKeys.forEach((function(n){t[n]=t[e]})),n[e]={Name:e,Value:t[e]},[2]}}))},d=this,m=0,y=e,g.label=1;case 1:return m0){var r=i.a.cloneDeep(t);return r[n].timeshift="",m(m([],e,!0),[r,t],!1)}return m(m([],e,!0),[t],!1)}),[]).map((function(r){return d(t,void 0,void 0,(function(){var t,o,l,p,d,m,y,h,g,v,b,I,D=this;return f(this,(function(f){switch(f.label){case 0:return t=Object(c.j)(this.templateSrv,e.scopedVars,r[n].instance,!0),[4,s.a.getInstance(this.service)];case 1:o=f.sent(),l=Object(u.c)(r[n].timeshift),t=[].concat(t).map((function(e){var t,n;try{return JSON.parse(e)}catch(r){return o?null!==(n=i.a.cloneDeep(o.find((function(t){return t[D.templateQueryIdMap.instance]===e}))))&&void 0!==n?n:{}:null===(t=D.getDefaultInsObj)||void 0===t?void 0:t.call(D,e)}})),p=Object(c.j)(this.templateSrv,e.scopedVars,r[n].region,!1),d=[],m=0,y=t,f.label=2;case 2:return m=g)return(null==f?void 0:f.response)?f.response(r):r;var v=Object(c.k)(g,(null==o?void 0:o.Limit)||100),b=[];return i.a.forEach(v,(function(r){b.push(n.getInstances(e,p(p({},r),t)))})),Promise.all(b).then((function(e){return i.a.forEach(e,(function(e){r=i.a.concat(r,e)})),(null==f?void 0:f.response)?f.response(r):r})).catch((function(e){return(null==f?void 0:f.response)?f.response(r):r}))}))},e.prototype.isValidConfigField=function(e){return e&&e.length>0},e.prototype.testDatasource=function(){var e=this;return this.isValidConfigField(this.secretId)?Promise.all([this.getRegions(),this.getMetrics(),this.getInstances("ap-guangzhou",{Offset:0,Limit:1})]).then((function(t){var n=i.a.get(t,"[0].Error",{}),r=i.a.get(t,"[1].Error",{}),o=i.a.get(t,"[2].Error",{}),a=i.a.get(n,"Code",""),c=i.a.get(r,"Code",""),s=i.a.get(o,"Code","");if(a||c||s){var u=[];a&&u.push(i.a.get(n,"Code")),c&&u.push(i.a.get(r,"Code")),s&&u.push(i.a.get(o,"Code"));var l=i.a.join(i.a.compact(i.a.uniq(u)),"; ");return{service:e.service,status:"error",message:l}}return{namespace:e.namespace,service:e.service,status:"success",message:"Successfully queried the ".concat(e.service," service."),title:"Success"}})).catch((function(t){var n="".concat(e.service," service:");return n+=t.statusText?t.statusText+"; ":"",i.a.get(t,"data.error.code","")?n+=t.data.error.code+". "+t.data.error.message:i.a.get(t,"data.error","")?n+=t.data.error:i.a.get(t,"data","")?n+=t.data:n+="Cannot connect to ".concat(e.service," service."),{service:e.service,status:"error",message:n}})):{service:this.service,status:"error",message:"The SecretId/SecretKey field is required."}},e.prototype.doRequest=function(e,t,n){return void 0===n&&(n={}),d(this,void 0,void 0,(function(){return f(this,(function(r){switch(r.label){case 0:return[4,Object(c.c)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return i.a.get(e,"data.Response",{})})).catch((function(e){throw e}))]}}))}))},e}()},,function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"d",(function(){return p})),n.d(t,"b",(function(){return d})),n.d(t,"f",(function(){return f})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return y}));var r=n(0),i=n.n(r),o=n(20),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t?r.push({Name:o,Values:i.a.uniq(e).slice(0,5)}):n[o]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t?r.push({Name:o,Values:i.a.get(e,"value",[]).slice(0,5)}):n[o]=i.a.get(e,"value")):null!=e&&""!==e&&(t?r.push({Name:o,Values:e}):n[o]=e)})),t&&r.length>0)return n.Filters=r,n}return n}function d(e){return i.a.get(i.a.find(o.SERVICES,(function(t){return t.service===e})),"namespace")}function f(e){return e.reduce((function(e,t){var n=t.namespace,r=t.label,i=t.groupName,o=void 0===i?r:i,a=e.find((function(e){return e.label===o}));return a?(a.items.push({label:r,value:n}),e):(e.push({label:o,value:o,items:[{label:r,value:n}]}),e)}),[]).map((function(e){return 1===e.items.length?{label:e.items[0].label,value:e.items[0].value}:e}))}var m=function(e,t,n){try{var r=JSON.parse(e),i=JSON.parse(t);return r[n]===i[n]}catch(n){return e===t}},y=function(e){var t=/^(\d+)([d|h|m|s])$/.exec(e);if(!t)return 0;var n=parseInt(t[1],10);switch(t[2]){case"d":return 86400*n*1e3;case"h":return 3600*n*1e3;case"m":return 60*n*1e3;case"s":return 1e3*n}return 0}},function(e,n){e.exports=t},function(e,t,n){"use strict";n.r(t);var r=n(6),i=n.n(r),o=n(2);t.default=function(e,t){var n,r,a=(n=t,function(){function e(e,t){Object.assign(e,n),e.getDropdown=function(t){var n=Object(o.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t,region:e.region})}}return e.$inject=["$scope","$rootScope"],e}());i.a.directive(e,(r=a,function(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n',controller:r,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}))}},function(e,t){e.exports=n},function(e,t,n){"use strict";var r=function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["InstanceId","InstanceName"],u=["TopicId","TopicName"],l={instance:"InstanceId",topicId:"TopicId",groupName:"GroupName",partition:"PartitionId"},p=new Proxy({topicId:"TopicId",topicName:"TopicName",consumerGroup:"GroupName",partition:"PartitionId"},{get:function(e,t){return"instanceid"===String(t).toLocaleLowerCase()?"InstanceId":e[t]}}),d={TopicList:"TopicList",GroupList:"GroupList",PartitionList:"PartitionList"},f={TopicId:{dim_KeyInStorage:d.TopicList,dim_KeyInTarget:"topicId",dim_KeyInMap:l.topicId},TopicName:{dim_KeyInStorage:d.TopicList,dim_KeyInTarget:"topicId",dim_KeyInMap:l.topicId},GroupName:{dim_KeyInStorage:d.GroupList,dim_KeyInTarget:"consumerGroup",dim_KeyInMap:l.groupName},PartitionId:{dim_KeyInStorage:d.PartitionList,dim_KeyInTarget:"partition",dim_KeyInMap:l.partition}};t.default=a},function(e,t,n){"use strict";n.r(t),n.d(t,"LOADBALANCEFieldsDescriptor",(function(){return a})),n.d(t,"InstanceAliasList",(function(){return l})),n.d(t,"LOADBALANCEListenerAliasList",(function(){return p})),n.d(t,"LOADBALANCEServerAliasList",(function(){return d})),n.d(t,"LOADBALANCEVALIDDIMENSIONS",(function(){return f})),n.d(t,"templateQueryIdMap",(function(){return y})),n.d(t,"CANDIATEDIMENSIONS",(function(){return m})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"keyInStorage",(function(){return h})),n.d(t,"queryEditorConfig",(function(){return c})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"GetInstanceQueryParams",(function(){return u}));var r=n(5),i="QCE/LOADBALANCE",o="loadBalanceQuery",a=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1",link:"",type:"inputNumber",min:1},{key:"LoadBalancerIds",enDescriptor:"LoadBalancer ID",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancer Name",cnDescriptor:"实例名称",link:"",type:"input"},{key:"Forward",enDescriptor:"Forward",cnDescriptor:"负载均衡实例类型",link:"",type:"select",list:[{text:"通用的负载均衡",value:1},{text:"传统的负载均衡",value:0}]},{key:"Domain",enDescriptor:"Domain",cnDescriptor:"域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义",link:"",type:"input"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancer Vips",cnDescriptor:"负载均衡实例的 VIP 地址",link:"",type:"inputMulti"},{key:"BackendPrivateIps",enDescriptor:"BackendPrivate Ips",cnDescriptor:"负载均衡绑定的后端服务的内网 IP",link:"",type:"inputMulti"},{key:"BackendPublicIps",enDescriptor:"BackendPublic Ips",cnDescriptor:"负载均衡绑定的后端服务的外网 IP",link:"",type:"inputMulti"},{key:"ProjectId",enDescriptor:"Project ID",cnDescriptor:"负载均衡实例所属的项目 ID",link:"",type:"inputNumber"},{key:"VpcId",enDescriptor:"Vpc ID",cnDescriptor:"负载均衡实例所属私有网络",link:"",type:"input"},{key:"SecurityGroup",enDescriptor:"Security Group",cnDescriptor:"安全组ID",link:"",type:"input"},{key:"MasterZone",enDescriptor:"Master Zone",cnDescriptor:"主可用区ID",link:"",type:"input"},{key:"WithRs",enDescriptor:"WithRs",cnDescriptor:"负载均衡是否绑定后端服务",link:"",type:"select",list:[{text:"没有绑定后端服务",value:0},{text:"绑定后端服务",value:1},{text:"查询全部",value:-1}]},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"LoadBalancerName",value:"LoadBalancerName"},{text:"CreateTime",value:"CreateTime"},{text:"Domain",value:"Domain"},{text:"LoadBalancerType",value:"LoadBalancerType"}]},{key:"OrderType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]}],c={instanceDocUrl:"https://cloud.tencent.com/document/api/214/30685",namespace:i,fieldDescriptor:a},s={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",Port:"",Protocol:"",listener:"",servers:"",serverPort:"",queries:{LoadBalancerIds:[],Forward:void 0,LoadBalancerName:"",Domain:"",LoadBalancerVips:[],BackendPublicIps:[],BackendPrivateIps:[],Limit:20,Offset:0,ProjectId:void 0,WithRs:{},VpcId:"",SecurityGroup:"",MasterZone:"",OrderBy:{},OrderType:{}}};function u(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var l=["LoadBalancerId","LoadBalancerName","LoadBalancerVips"],p=["ListenerId","ListenerName","Port"],d=["PrivateIpAddresses","InstanceId"],f={vip:"LoadBalancerVips",loadBalancerPort:"Port",protocol:"Protocol",lanIp:"PrivateIpAddresses",port:"ServerPort"},m={LoadBalancerVips:"AddressIPv6"},y={instance:"LoadBalancerId",listener:"ListenerId",servers:"PrivateIpAddresses",port:"Port"},h={listener:"ListenerList",servers:"ServersList"},g={Port:{dim_KeyInStorage:h.listener,dim_KeyInTarget:"listener",dim_KeyInMap:y.listener},Protocol:{dim_KeyInStorage:h.listener,dim_KeyInTarget:"listener",dim_KeyInMap:y.listener},PrivateIpAddresses:{dim_KeyInStorage:h.servers,dim_KeyInTarget:"servers",dim_KeyInMap:y.servers},ServerPort:{dim_KeyInStorage:h.servers,dim_KeyInTarget:"serverPort",dim_KeyInIns:"Port",dim_KeyInMap:y.port}};t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"TDMQInstanceAliasList",(function(){return u})),n.d(t,"TDMQInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"keyInStorage",(function(){return h})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"regionSupported",(function(){return m})),n.d(t,"TDMQGetInstanceQueryParams",(function(){return f}));var r=n(5),i=n(0),o=n.n(i),a="QCE/TDMQ",c="tdmqQuery",s={tenantId:"ClusterId",tenant:"ClusterId",topicName:"TopicName",environmentId:"EnvironmentId"},u=["ClusterId","ClusterName"],l={instance:"ClusterId",topicName:"TopicName",environmentId:"EnvironmentId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100}],d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",topicName:"",environmentId:"",queries:{Limit:20,Offset:0}};function f(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var m=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}];function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){-1!==e.Dimensions.indexOf("topicName")&&-1===e.Dimensions.indexOf("environmentId")&&e.Dimensions.push("environmentId")})),t}var h={topicName:"topicName",environmentId:"environmentId"},g={TopicName:{dim_KeyInStorage:h.topicName,dim_KeyInTarget:"topicName",dim_KeyInMap:l.topicName},EnvironmentId:{dim_KeyInStorage:h.environmentId,dim_KeyInTarget:"environmentId",dim_KeyInMap:l.environmentId}};t.default=d},,function(e,t,n){"use strict";n.r(t),n.d(t,"GSEFilterFieldsDescriptor",(function(){return m})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"GSEInstanceAliasList",(function(){return l})),n.d(t,"GSEInvalidDemensions",(function(){return u})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return y})),n.d(t,"regionSupported",(function(){return v})),n.d(t,"modifyDimensons",(function(){return b})),n.d(t,"queryMonitorExtraConfg",(function(){return f})),n.d(t,"fleetId",(function(){return c})),n.d(t,"keyInStorage",(function(){return d})),n.d(t,"GSEGetInstanceQueryParams",(function(){return g}));var r=n(5),i=n(0),o=n.n(i),a="QCE/GSE",c="FleetId",s="gseQuery",u={instanceid:"InstanceId",fleetid:"FleetId",queuename:"Name"},l=["InstanceId","PrivateIpAddress","IpAddress"],p={instance:"InstanceId",Name:"Name",FleetId:c},d={fleet:"fleet",queue:"queueName"},f={FleetId:{dim_KeyInStorage:d.fleet,dim_KeyInTarget:"FleetId",dim_KeyInMap:p.FleetId},Name:{dim_KeyInStorage:d.queue,dim_KeyInTarget:"Name",dim_KeyInMap:p.Name}},m=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceId",enDescriptor:"resourceName",cnDescriptor:"资源名称",link:"",type:"input"},{key:"FleetId",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"input"}],y={instanceDocUrl:"https://cloud.tencent.com/document/api/1165/42604",namespace:a,fieldDescriptor:m},h={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",FleetId:"",Name:"",queries:{Limit:20,Offset:0,InstanceId:"",FleetId:""}};function g(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var v=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-ashburn"},{value:"na-siliconvalley"}];function b(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return u[e]||e}))})),t}t.default=h},function(e,t,n){"use strict";n.r(t),n.d(t,"DCDBFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"DCDBInstanceAliasList",(function(){return s})),n.d(t,"DCDBInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"regionSupported",(function(){return v})),n.d(t,"keyInStorage",(function(){return h})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"DCDBGetInstanceQueryParams",(function(){return y}));var r=n(0),i=n(5),o="QCE/TDMYSQL",a="dcdbQuery",c={nodeid:"NodeId",instanceid:"InstanceId",shardid:"ShardInstanceId",ShardId:"ShardInstanceId"},s=["InstanceId","InstanceName"],u={instance:"InstanceId",NodeId:"NodeId",ShardInstanceId:"ShardInstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"实例 ID 查询",link:"",type:"inputMulti"},{key:"SearchName",enDescriptor:"SearchName",cnDescriptor:"搜索的字段名,当前支持的值有:instancename、vip、all",link:"",type:"input"},{key:"SearchKey",enDescriptor:"SearchKey",cnDescriptor:"搜索的关键字",link:"",type:"input"},{key:"ProjectIds",enDescriptor:"ProjectIds",cnDescriptor:"按项目 ID 查询",link:"",type:"inputNumberMulti"},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络 ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"私有网络的子网 ID",link:"",type:"input"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"projectId",value:"projectId"},{text:"createtime",value:"createtime"},{text:"instancename",value:"instancename"}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"私有网络 ID",link:"",type:"select",list:[{text:"desc",value:"desc"},{text:"asc",value:"asc"}]},{key:"ExclusterType",enDescriptor:"ExclusterType",cnDescriptor:"集群类型",link:"",type:"select",list:[{text:"非独享集群",value:1},{text:"独享集群",value:2},{text:"全部",value:0},{text:"asc",value:"asc"}]},{key:"ExclusterIds",enDescriptor:"ExclusterIds",cnDescriptor:"独享集群ID",link:"",type:"inputMulti"},{key:"FilterInstanceType",enDescriptor:"FilterInstanceType",cnDescriptor:"实例类型过滤",link:"",type:"select",multiple:!0,list:[{text:"独享实例",value:1},{text:"主实例",value:2},{text:"灾备实例",value:3}]}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/557/16140",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",ShardId:"",NodeId:"",queries:{Limit:20,Offset:0,InstanceIds:[],SearchName:"",SearchKey:"",ProjectIds:[],VpcId:"",SubnetId:"",OrderBy:{},OrderByType:{},ExclusterType:{},ExclusterIds:[],FilterInstanceType:{}}},f={shardid:"ShardId",instanceid:"InstanceId",nodeid:"NodeId"};function m(e){var t=Object(r.cloneDeep)(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return f[e]||e}))})),t}function y(e){void 0===e&&(e={});var t=Object(i.d)(e,!1);return t.IsFilterVpc=!1,t.IsFilterExcluster=!1,(t.VpcId||t.SubnetId)&&(t.IsFilterVpc=!0),t.ExclusterType&&(t.IsFilterExcluster=!0),Object(r.isArray)(t.FilterInstanceType)&&(t.FilterInstanceType=t.FilterInstanceType.join(",")),t}var h={NodeId:"NodeId",ShardInstanceId:"ShardId"},g={NodeId:{dim_KeyInStorage:h.NodeId,dim_KeyInTarget:"NodeId",dim_KeyInMap:u.NodeId},ShardInstanceId:{dim_KeyInStorage:h.ShardInstanceId,dim_KeyInTarget:"ShardId",dim_KeyInMap:u.ShardInstanceId}},v=[{text:"华北地区(北京)",value:"ap-beijing"},{text:"西南地区(成都)",value:"ap-chengdu"},{text:"西南地区(重庆)",value:"ap-chongqing"},{text:"华南地区(广州)",value:"ap-guangzhou"},{text:"港澳台地区(中国香港)",value:"ap-hongkong"},{text:"亚太南部(孟买)",value:"ap-mumbai"},{text:"华东地区(南京)",value:"ap-nanjing"},{text:"华东地区(上海)",value:"ap-shanghai"},{text:"华东地区(上海金融)",value:"ap-shanghai-fsi"},{text:"华南地区(深圳金融)",value:"ap-shenzhen-fsi"},{text:"亚太东南(新加坡)",value:"ap-singapore"},{text:"亚太东北(东京)",value:"ap-tokyo"},{text:"欧洲地区(法兰克福)",value:"eu-frankfurt"},{text:"美国东部(弗吉尼亚)",value:"na-ashburn"},{text:"美国西部(硅谷)",value:"na-siliconvalley"},{text:"北美地区(多伦多)",value:"na-toronto"}];t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisMemFieldsDescriptor",(function(){return c})),n.d(t,"RedisMemInvalidDemensions",(function(){return p})),n.d(t,"REDISMEMInstanceAliasList",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return d})),n.d(t,"namespace",(function(){return a})),n.d(t,"NodeType",(function(){return f})),n.d(t,"REDISMEMGetInstanceQueryParams",(function(){return u}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var l=["InstanceId","InstanceName","WanIp"],p={instanceid:"InstanceId",rnodeid:"rnodeid",pnodeid:"pnodeid"},d={instance:"InstanceId",rnodeid:"rnodeid",pnodeid:"pnodeid"},f=["Redis","Proxy"];t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"TDMQRABBITMQInstanceAliasList",(function(){return c})),n.d(t,"TDMQInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryMonitorExtraConfg",(function(){return m})),n.d(t,"keyInStorage",(function(){return f})),n.d(t,"regionSupported",(function(){return d})),n.d(t,"TDMQGetInstanceQueryParams",(function(){return p}));var r=n(5),i="QCE/RABBITMQ",o="tdmqQuery",a={instanceid:"InstanceId",node:"NodeName"},c=["InstanceId","InstanceName"],s={instance:"InstanceId",node:"NodeName"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100}],l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",node:"",queries:{Limit:20,Offset:0}};function p(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var d=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],f={node:"NodeName"},m={NodeName:{dim_KeyInStorage:f.node,dim_KeyInTarget:"node",dim_KeyInMap:s.node}};t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"TDMQROCKETMQInstanceAliasList",(function(){return c})),n.d(t,"TDMQInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryMonitorExtraConfg",(function(){return m})),n.d(t,"keyInStorage",(function(){return f})),n.d(t,"regionSupported",(function(){return d})),n.d(t,"TDMQROCKETMQGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o="QCE/ROCKETMQ",a={tenant:"ClusterId",namespace:"NamespaceId",group:"Name"},c=["ClusterId","ClusterName"],s={instance:"ClusterId",namespace:"NamespaceId",group:"Name"},u=[{key:"includeVip",enDescriptor:"includeVip",cnDescriptor:"包含专享集群",link:"",type:"select",list:[{text:"是",value:"true"},{text:"否",value:"false"}]}],l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",namespace:"",group:"",queries:{Limit:20,Offset:0,instanceIdsChecked:!1,filtersChecked:!0,ClusterIdList:[""],Filters:{includeVip:{text:"是",value:"true"}}}};function p(e){void 0===e&&(e={});var t={};if(!i.a.isEmpty(e))if(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(i.a.isArray(e.ClusterIdList)){var n=i.a.compact(e.ClusterIdList);i.a.uniq(n).length>0&&(t.ClusterIdList=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:[i.a.get(e,"value",[])].slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var d=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],f={namespace:"NamespaceId",group:"Name"},m={NamespaceId:{dim_KeyInStorage:f.namespace,dim_KeyInTarget:"namespace",dim_KeyInMap:s.namespace},Name:{dim_KeyInStorage:f.group,dim_KeyInTarget:"group",dim_KeyInMap:s.group}};t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"InitServiceState",(function(){return c})),n.d(t,"SERVICES",(function(){return o})),n.d(t,"Datasources",(function(){return a})),n.d(t,"InstanceAliasList",(function(){return s})),n.d(t,"GetInstanceQueryParams",(function(){return u}));var r=n(1),i=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c=new Proxy({},{get:function(e,t,n){if("string"==typeof t){if(t.startsWith("id4"))return"ClusterId";if(t.startsWith("host4"))return"Ip"}return Reflect.get(e,t,n)},has:function(e,t){return!0}}),s={instance:"ClusterId",node:"Ip"},u={node:"nodeIP"},l={Ip:{dim_KeyInStorage:u.node,dim_KeyInTarget:"nodeIP",dim_KeyInMap:s.node}},p=["ClusterId","ClusterName"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",nodeIP:"",queries:{Offset:0,Limit:10,DisplayStrategy:"",OrderBy:{},Order:{},InstanceIds:[],ProjectId:-1,OrderField:"",Asc:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"VCLBFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"VCLBInstanceAliasList",(function(){return u})),n.d(t,"VCLBInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"clbNamespaceMap",(function(){return h})),n.d(t,"modifyDimensons",(function(){return g})),n.d(t,"regionSupported",(function(){return y})),n.d(t,"BMLBGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/V_CLB",c="vClbQuery",s={InstanceId:"LoadBalancerId"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1",link:"",type:"inputNumber",min:1},{key:"LoadBalancerIds",enDescriptor:"LoadBalancer ID",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancer Name",cnDescriptor:"实例名称",link:"",type:"input"},{key:"Forward",enDescriptor:"Forward",cnDescriptor:"负载均衡实例类型",link:"",type:"select",list:[{text:"通用的负载均衡",value:1},{text:"传统的负载均衡",value:0}]},{key:"Domain",enDescriptor:"Domain",cnDescriptor:"域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义",link:"",type:"input"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancer Vips",cnDescriptor:"负载均衡实例的 VIP 地址",link:"",type:"inputMulti"},{key:"BackendPrivateIps",enDescriptor:"BackendPrivate Ips",cnDescriptor:"负载均衡绑定的后端服务的内网 IP",link:"",type:"inputMulti"},{key:"BackendPublicIps",enDescriptor:"BackendPublic Ips",cnDescriptor:"负载均衡绑定的后端服务的外网 IP",link:"",type:"inputMulti"},{key:"ProjectId",enDescriptor:"Project ID",cnDescriptor:"负载均衡实例所属的项目 ID",link:"",type:"inputNumber"},{key:"VpcId",enDescriptor:"Vpc ID",cnDescriptor:"负载均衡实例所属私有网络",link:"",type:"input"},{key:"SecurityGroup",enDescriptor:"Security Group",cnDescriptor:"安全组ID",link:"",type:"input"},{key:"MasterZone",enDescriptor:"Master Zone",cnDescriptor:"主可用区ID",link:"",type:"input"},{key:"WithRs",enDescriptor:"WithRs",cnDescriptor:"负载均衡是否绑定后端服务",link:"",type:"select",list:[{text:"没有绑定后端服务",value:0},{text:"绑定后端服务",value:1},{text:"查询全部",value:-1}]},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"LoadBalancerName",value:"LoadBalancerName"},{text:"CreateTime",value:"CreateTime"},{text:"Domain",value:"Domain"},{text:"LoadBalancerType",value:"LoadBalancerType"}]},{key:"OrderType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/214/30685",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",Port:"",Protocol:"",listener:"",queries:{LoadBalancerIds:[],Forward:void 0,LoadBalancerName:"",Domain:"",LoadBalancerVips:[],BackendPublicIps:[],BackendPrivateIps:[],Limit:20,Offset:0,ProjectId:void 0,WithRs:{},VpcId:"",SecurityGroup:"",MasterZone:"",OrderBy:{},OrderType:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var y=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],h={public:"QCE/LB_PUBLIC",private:"QCE/LB_PRIVATE"};function g(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=f},,function(e,t,n){"use strict";n.r(t),n.d(t,"cynosdbMysqlFilterFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return m})),n.d(t,"CYNOSDBMYSQLInstanceAliasList",(function(){return f})),n.d(t,"CYNOSDBInvalidDemensions",(function(){return y})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"regionSupported",(function(){return u})),n.d(t,"modifyDimensons",(function(){return g})),n.d(t,"checkKeys",(function(){return h})),n.d(t,"CYNOSDBMYSQLGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n.n(r),o=n(5),a="QCE/CYNOSDB_MYSQL",c="cynosdbMysqlQuery",s=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:1e3},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"实例id列表",link:"",type:"inputMulti"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"创建时间",value:"CREATETIME"},{text:"过期时间",value:"PERIODENDTIME"}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"排序类型",link:"",type:"select",list:[{text:"升序",value:"ASC"},{text:"降序",value:"DESC"}]},{key:"DbType",enDescriptor:"DbType",cnDescriptor:"引擎类型",link:"",type:"select",list:[{text:"MYSQL",value:"MYSQL"},{text:"POSTGRESQL",value:"POSTGRESQL"}]}],u=[{value:"ap-beijing"},{value:"ap-guangzhou"},{value:"ap-nanjing"},{value:"ap-shanghai"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/1003/48334",namespace:a,fieldDescriptor:s},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,OrderBy:{},OrderByType:{},InstanceIds:[],DbType:{}}};function d(e){return void 0===e&&(e={}),Object(o.d)(e,!1)}var f=["InstanceId","InstanceName"],m={instance:"InstanceId"},y={instanceid:"InstanceId",instanceId:"InstanceId"},h=["instanceId"];function g(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryDescriptor",(function(){return o})),n.d(t,"SCFInstanceAliasList",(function(){return s})),n.d(t,"SCFInvalidDemensions",(function(){return u})),n.d(t,"queryMonitorExtraConfg",(function(){return f})),n.d(t,"regionSupported",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"keyInStorage",(function(){return d})),n.d(t,"SCFGetInstanceQueryParams",(function(){return c})),n.d(t,"SCFDefaultDimensionList",(function(){return m}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"SearchKey",enDescriptor:"SearchKey",cnDescriptor:"支持FunctionName模糊匹配",link:"",type:"input"},{key:"Namespace",enDescriptor:"Namespace",cnDescriptor:"云函数命名空间",link:"",type:"input"},{key:"Description",enDescriptor:"Description",cnDescriptor:"函数描述,支持模糊搜索",link:"",type:"input"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"AddTime",value:"AddTime"},{text:"ModTime",value:"ModTime"},{text:"FunctionName",value:"FunctionName"}]},{key:"Order",enDescriptor:"Order Direction",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"ASC",value:"ASC"},{text:"DESC",value:"DESC"}]}],a={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"FunctionName",version:"",queries:{Offset:0,Limit:20,OrderBy:{},Order:{},SearchKey:"",Namespace:"",Description:""}};function c(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["FunctionId","FunctionName"],u={functionName:"FunctionName",namespace:"Namespace",version:"Version"},l={instance:"FunctionName",version:"Version"},p=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-siliconvalley"},{value:"na-toronto"}],d={version:"version"},f={Version:{dim_KeyInStorage:d.version,dim_KeyInTarget:"version",dim_KeyInMap:l.version}};t.default=a;var m=["functionName","namespace","version"]},function(e,t,n){"use strict";n.r(t),n.d(t,"CLSFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CLSInstanceAliasList",(function(){return u})),n.d(t,"CLSInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"regionSupported",(function(){return y})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"CLSGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/CLS",c="clsQuery",s={},u=["TopicId","TopicName"],l={instance:"TopicId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"topicName",enDescriptor:"topicName",cnDescriptor:"日志主题名称",link:"",type:"inputMulti"},{key:"topicId",enDescriptor:"topicId",cnDescriptor:"日志主题ID",link:"",type:"inputMulti"},{key:"logsetName",enDescriptor:"logsetName",cnDescriptor:"日志集名称",link:"",type:"inputMulti"},{key:"logsetId",enDescriptor:"logsetId",cnDescriptor:"日志集ID",link:"",type:"inputMulti"},{key:"tagKey",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"inputMulti"},{key:"tag:tagKey",enDescriptor:"tag - tagKey",cnDescriptor:"标签键值对",link:"",type:"inputMulti"},{key:"storageType",enDescriptor:"storageType",cnDescriptor:"日志主题的存储类型",link:"",type:"select",list:[{text:"实时存储",value:"hot"},{text:"离线存储",value:"cold"}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/614/56454",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TopicId",uin:"",queries:{Limit:20,Offset:0,topicName:[],topicId:[],logsetName:[],logsetId:[],tagKey:[],"tag:tagKey":[],storageType:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var y=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}];function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["uin","TopicId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"SQLSERVERNETFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"SQLSERVERInstanceAliasList",(function(){return u})),n.d(t,"SQLSERVERInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"regionSupported",(function(){return f})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"SQLSERVERGetInstanceQueryParams",(function(){return h}));var r=n(5),i=n(0),o=n.n(i),a="QCE/SQLSERVER",c="sqlserverQuery",s={resourceId:"InstanceId"},u=["InstanceId","Name"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ProjectId",enDescriptor:"ProjectId",cnDescriptor:"项目ID",link:"",type:"inputNumber"},{key:"Status",enDescriptor:"Status",cnDescriptor:"实例状态",link:"",type:"select",list:[{text:"申请中",value:1},{text:"运行中",value:2},{text:"受限运行中 (主备切换中)",value:3},{text:"已隔离",value:4},{text:"回收中",value:5},{text:"已回收",value:6},{text:"任务执行中",value:7},{text:"已下线",value:8},{text:"实例扩容中",value:9},{text:"实例迁移中",value:10},{text:"只读",value:11},{text:"重启中",value:12}]},{key:"InstanceIdSet",enDescriptor:"InstanceIdSet",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"PayMode",enDescriptor:"PayMode",cnDescriptor:"子网实例ID",link:"",type:"select",list:[{text:"包年包月",value:1},{text:"按量计费",value:0}]},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"实例所属VPC的唯一字符串ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"实例所属子网的唯一字符串ID",link:"",type:"input"},{key:"VipSet",enDescriptor:"VipSet",cnDescriptor:"实例内网地址列表",link:"",type:"inputMulti"},{key:"InstanceNameSet",enDescriptor:"InstanceNameSet",cnDescriptor:"实例名称列表, 模糊查询",link:"",type:"inputMulti"},{key:"VersionSet",enDescriptor:"VersionSet",cnDescriptor:"实例版本代号列表",link:"",type:"inputMulti"},{key:"Zone",enDescriptor:"Zone",cnDescriptor:"实例可用区",link:"",type:"dropdown"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/238/19969",namespace:a,fieldDescriptor:p},f=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-nanjing"},{value:"ap-seoul"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-moscow"},{value:"na-siliconvalley"}],m={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,ProjectId:null,Status:{},InstanceIdSet:[],PayMode:{},VpcId:"",SubnetId:"",VipSet:[],InstanceNameSet:[],VersionSet:[],Zone:""}};function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["resourceId"]})),t}function h(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=m},function(e,t,n){"use strict";n.r(t),n.d(t,"BMINTRALBFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMINTRALBInstanceAliasList",(function(){return u})),n.d(t,"BMINTRALBInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"isValidMetric",(function(){return y})),n.d(t,"BMINTRALBGetInstanceQueryParams",(function(){return h}));var r=n(5),i=n(0),o=n.n(i),a="QCE/BM_INTRA_LB",c="bmIntraLbQuery",s={vip:"LoadBalancerVips",vpcId:"VpcId"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"LoadBalancerIds",enDescriptor:"LoadBalancerIds",cnDescriptor:"负载均衡器ID数组",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancerName",cnDescriptor:"负载均衡器名称",link:"",type:"inputMulti"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancerVips",cnDescriptor:"负载均衡获得的公网IP地址",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/1027/33280",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",queries:{Limit:20,Offset:0,LoadBalancerIds:[],LoadBalancerName:[],LoadBalancerVips:[]}},m=["Inpkg","Outpkg","Intraffic","Outtraffic","Connum","Req"];function y(e){var t=o.a.map(m,o.a.toUpper);return-1!==o.a.indexOf(t,o.a.toUpper(e.MetricName))}function h(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"CPMFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMLBInstanceAliasList",(function(){return u})),n.d(t,"CPMInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"isValidMetric",(function(){return h})),n.d(t,"BMLBGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/BM_LB",c="bmLbQuery",s={vip:"LoadBalancerVips"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"LoadBalancerIds",enDescriptor:"LoadBalancerIds",cnDescriptor:"负载均衡器ID数组",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancerName",cnDescriptor:"负载均衡器名称",link:"",type:"inputMulti"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancerVips",cnDescriptor:"负载均衡获得的公网IP地址",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/1027/33280",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",queries:{Limit:20,Offset:0,LoadBalancerIds:[],LoadBalancerName:[],LoadBalancerVips:[]}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var y=["Inpkg","Outpkg","Intraffic","Outtraffic","Connum","Req"];function h(e){var t=o.a.map(y,o.a.toUpper);return-1!==o.a.indexOf(t,o.a.toUpper(e.MetricName))}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"BMPCXFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMPCXInstanceAliasList",(function(){return u})),n.d(t,"BMPCXInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"BMPCXGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/BM_PCX",c="bmPcxQuery",s={peeringConnectionId:"VpcPeerConnectionId"},u=["VpcPeerConnectionId","VpcPeerConnectionName"],l={instance:"VpcPeerConnectionId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"VpcPeerConnectionIds",enDescriptor:"VpcPeerConnectionIds",cnDescriptor:"对等连接实例ID",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/product/1024/36903",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpcPeerConnectionId",queries:{Limit:20,Offset:0,VpcPeerConnectionIds:[]}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["peeringConnectionId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"CBSFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"CBSInstanceAliasList",(function(){return s})),n.d(t,"CBSInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"isValidMetric",(function(){return m})),n.d(t,"CBSGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n(5),o="QCE/BLOCK_STORAGE",a="cbsQuery",c={diskId:"DiskId",InstanceId:"InstanceId",diskname:"DiskName",unInstanceId:"InstanceId"},s=["DiskId","DiskName"],u={instance:"DiskId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DiskIds",enDescriptor:"DiskIds",cnDescriptor:"云硬盘ID",link:"",type:"inputMulti"},{key:"Order",enDescriptor:"Order",cnDescriptor:"排列顺序",link:"",type:"select",list:[{text:"升序排列",value:"ASC"},{text:"降序排列",value:"DESC"}]},{key:"OrderField",enDescriptor:"OrderField",cnDescriptor:"排序的依据字段",link:"",type:"select",list:[{text:"云盘的创建时间排序",value:"CREATE_TIME"},{text:"云盘的到期时间排序",value:"DEADLINE"}]},{key:"ReturnBindAutoSnapshotPolicy",enDescriptor:"ReturnBindAutoSnapshotPolicy",cnDescriptor:"否需要返回云盘绑定的定期快照策略ID",link:"",type:"switch"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/362/16315",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DiskId",queries:{Limit:20,Offset:0,DiskIds:[],OrderField:[],Order:[],ReturnBindAutoSnapshotPolicy:!1}};function f(e){return void 0===e&&(e={}),Object(i.d)(e,!1)}function m(e){void 0===e&&(e={});var t=r.get(e,"Dimensions[0].Dimensions");return 1===t.length&&-1!==r.indexOf(t,"diskId")}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNPROVINCEFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"CDNPROVINCEInstanceAliasList",(function(){return c})),n.d(t,"CDNPROVINCEInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"CDNPROVINCEGetInstanceQueryParams",(function(){return p}));var r=n(5),i="QCE/CDN_LOG_DATA",o="cdnProvinceQuery",a={domain:"Domain",projectid:"ProjectId",province:"district",appid:"AppId"},c=["Domain","ProjectId"],s={instance:"Domain"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"origin",enDescriptor:"origin",cnDescriptor:"主源站",link:"",type:"inputMulti"},{key:"domain",enDescriptor:"domain",cnDescriptor:"域名",link:"",type:"inputMulti"},{key:"resourceId",enDescriptor:"resourceId",cnDescriptor:"域名id",link:"",type:"inputMulti"},{key:"status",enDescriptor:"status",cnDescriptor:"域名状态",link:"",type:"select",list:[{text:"online",value:"online"},{text:"offline",value:"offline"},{text:"processing",value:"processing"}]},{key:"serviceType",enDescriptor:"serviceType",cnDescriptor:"业务类型",link:"",type:"select",list:[{text:"web",value:"web"},{text:"download",value:"download"},{text:"media",value:"media"}]},{key:"projectId",enDescriptor:"projectId",cnDescriptor:"项目ID",link:"",type:"inputNumberMulti"},{key:"domainType",enDescriptor:"domainType",cnDescriptor:"主源站类型",link:"",type:"select",list:[{text:"自有源",value:"cname"},{text:"cos接入",value:"cos"}]},{key:"fullUrlCache",enDescriptor:"fullUrlCache",cnDescriptor:"全路径缓存",link:"",type:"select",list:[{text:"打开",value:"on"},{text:"关闭",value:"off"}]},{key:"https",enDescriptor:"https",cnDescriptor:"是否配置https",link:"",type:"select",list:[{text:"on",value:"on"},{text:"off",value:"off"},{text:"processing",value:"processing"}]},{key:"originPullProtocol",enDescriptor:"originPullProtocol",cnDescriptor:"回源协议类型",link:"",type:"select",list:[{text:"http",value:"http"},{text:"follow",value:"follow"},{text:"https",value:"https"}]},{key:"tagKey",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"inputMulti"}],l={region:"ap-guangzhou",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"Domain",isp:"",district:"",queries:{Limit:20,Offset:0,origin:[],domain:[],resourceId:[],status:{},serviceType:{},projectId:[],domainType:{},fullUrlCache:{},https:{},originPullProtocol:{},tagKey:[]}};function p(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"CEIPFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CEIPSUMMARYInstanceAliasList",(function(){return u})),n.d(t,"CEIPInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"CEIPSUMMARYGetInstanceQueryParams",(function(){return m}));var r=n(0),i=n.n(r),o=n(5),a="QCE/CEIP_SUMMARY",c="ceipSummaryQuery",s={vip:"AddressIp",eip:"AddressIp"},u=["AddressId","AddressName","AddressIp"],l={instance:"AddressId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"address-id",enDescriptor:"address-id",cnDescriptor:" EIP 的唯一 ID",link:"",type:"inputMulti"},{key:"address-name",enDescriptor:"address-name",cnDescriptor:"EIP 名称",link:"",type:"inputMulti"},{key:"address-ip",enDescriptor:"address-ip",cnDescriptor:"EIP 的 IP 地址",link:"",type:"inputMulti"},{key:"address-status",enDescriptor:"address-status",cnDescriptor:"EIP 的状态",link:"",type:"select",multiple:!0,list:[{text:"CREATING",value:"CREATING"},{text:"BINDING",value:"BINDING"},{text:"BIND",value:"BIND"},{text:"UNBINDING",value:"UNBINDING"},{text:"UNBIND",value:"UNBIND"},{text:"OFFLINING",value:"OFFLINING"},{text:"BIND_ENI",value:"BIND_ENI"}]},{key:"instance-id",enDescriptor:"instance-id",cnDescriptor:"EIP 绑定的实例 ID",link:"",type:"inputMulti"},{key:"private-ip-address",enDescriptor:"private-ip-address",cnDescriptor:"EIP 绑定的内网 IP ",link:"",type:"inputMulti"},{key:"network-interface-id",enDescriptor:"network-interface-id",cnDescriptor:" EIP 绑定的弹性网卡 ID",link:"",type:"inputMulti"},{key:"is-arrears",enDescriptor:"is-arrears",cnDescriptor:"EIP 是否欠费",link:"",type:"select",multiple:!0,list:[{text:"欠费状态",value:"TRUE"},{text:"费用状态正常",value:"FALSE"}]},{key:"address-isp",enDescriptor:"address-isp",cnDescriptor:"运营商类型",link:"",type:"select",multiple:!0,list:[{text:"BGP",value:"BGP"},{text:"CMCC",value:"CMCC"},{text:"CUCC",value:"CUCC"},{text:"CTCC",value:"CTCC"}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/215/16702",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"AddressId",queries:{Limit:20,Offset:0,"address-id":[],"address-name":[],"address-ip":[],"address-status":{},"is-arrears":{},"address-isp":{},"instance-id":[],"private-ip-address":[],"network-interface-id":[]}};function m(e){return void 0===e&&(e={}),Object(o.d)(e,!0)}function y(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["eip"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceQueryDescriptor",(function(){return o})),n.d(t,"InvalidDemensions",(function(){return c})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"InstanceAliasList",(function(){return p})),n.d(t,"GetInstanceQueryParams",(function(){return a})),n.d(t,"queryMonitorExtraConfg",(function(){return l})),n.d(t,"keyInStorage",(function(){return u}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为10,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:50},{key:"TopicName",enDescriptor:"TopicName",cnDescriptor:"精确匹配TopicName",link:"",type:"input"},{key:"TagKey",enDescriptor:"TagKey",cnDescriptor:"标签搜索",link:"",type:"input"}];function a(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c={topicId:"TopicId"},s={instance:"TopicName",subscription:"SubscriptionId"},u={subscriptionId:"subscriptionId"},l={subscriptionId:{dim_KeyInStorage:u.subscriptionId,dim_KeyInTarget:"subscriptionId",dim_KeyInMap:s.subscription}},p=["TopicName","TopicId"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TopicName",subscriptionId:"",queries:{Offset:0,Limit:20,TopicName:"",TagKey:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"CPMFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CPMInstanceAliasList",(function(){return u})),n.d(t,"CPMInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"CPMGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/CPM",c="cpmQuery",s={instanceId:"InstanceId"},u=["InstanceId","Name"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DeviceClassCode",enDescriptor:"DeviceClassCode",cnDescriptor:"机型ID",link:"",type:"dropdown"},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"设备ID数组",link:"",type:"inputMulti"},{key:"WanIps",enDescriptor:"WanIps",cnDescriptor:"外网IP数组",link:"",type:"inputMulti"},{key:"LanIps",enDescriptor:"LanIps",cnDescriptor:"内网IP数组",link:"",type:"inputMulti"},{key:"Alias",enDescriptor:"Alias",cnDescriptor:"设备名称",link:"",type:"input"},{key:"VagueIp",enDescriptor:"VagueIp",cnDescriptor:"模糊IP查询",link:"",type:"input"},{key:"AutoRenewFlag",enDescriptor:"AutoRenewFlag",cnDescriptor:"自动续费标志",link:"",type:"select",list:[{text:"不自动续费",value:0},{text:"自动续费",value:1}]},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络唯一ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"子网唯一ID",link:"",type:"input"},{key:"DeviceType",enDescriptor:"DeviceType",cnDescriptor:"子网实例ID",link:"",type:"select",list:[{text:"计算型",value:"compute"},{text:"标准型",value:"standard"},{text:"存储型",value:"storage"}]},{key:"IsLuckyDevice",enDescriptor:"IsLuckyDevice",cnDescriptor:"竞价实例机器过滤",link:"",type:"select",list:[{text:"非竞价实例机器",value:0},{text:"竞价实例的机器",value:1}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/386/32904",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,DeviceClassCode:"",InstanceIds:[],WanIps:[],LanIps:[],Alias:"",VagueIp:"",AutoRenewFlag:{},VpcId:"",SubnetId:"",DeviceType:{},IsLuckyDevice:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["instanceId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"ECDNFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"ECDNInstanceAliasList",(function(){return c})),n.d(t,"ECDNInvalidDemensions",(function(){return u})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"ECDNGetInstanceQueryParams",(function(){return f}));var r=n(0),i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o.push({Name:t,Value:Object(r.uniq)(e).slice(0,5)}):Object(r.isObject)(e)&&(Object(r.isEmpty)(Object(r.get)(e,"value",[]))||o.push({Name:t,Value:[Object(r.get)(e,"value",[])].slice(0,5)}))})),o.length>0)return t.Filters=o.map((function(e){return"domain"===e.Name?i(i({},e),{Fuzzy:!0}):e})),t}return t}function m(e){var t=Object(r.cloneDeep)(e);return t.Dimensions.forEach((function(e){e.Dimensions=["domain","projectid"]})),t}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"ECMFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"ECMInstanceAliasList",(function(){return s})),n.d(t,"ECMInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"ECMGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n(5),o="QCE/ECM",a="ecmQuery",c={uuid:"UUID"},s=["InstanceId","InstanceName"],u={instance:"InstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"zone",enDescriptor:"zone",cnDescriptor:"可用区英文标识",link:"",type:"dropdownMulti"},{key:"zone-name",enDescriptor:"zone-name",cnDescriptor:"排列顺序",link:"",type:"inputMulti"},{key:"module-id",enDescriptor:"module-id",cnDescriptor:"模块ID",link:"",type:"inputMulti"},{key:"module-name",enDescriptor:"module-name",cnDescriptor:"模块名称",link:"",type:"inputMulti"},{key:"instance-id",enDescriptor:"instance-id",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"instance-name",enDescriptor:"instance-name",cnDescriptor:"实例名称",link:"",type:"inputMulti"},{key:"ip-address",enDescriptor:"ip-address",cnDescriptor:"内网/公网IP",link:"",type:"inputMulti"},{key:"instance-uuid",enDescriptor:"instance-uuid",cnDescriptor:"实例uuid",link:"",type:"inputMulti"},{key:"instance-state",enDescriptor:"instance-state",cnDescriptor:"实例状态",link:"",type:"select",multiple:!0,list:[{text:"创建中",value:"PENDING"},{text:"创建失败",value:"LAUNCH_FAILED"},{text:"运行中",value:"RUNNING"},{text:"关机",value:"STOPPED"},{text:"开机中",value:"STARTING"},{text:"关机中",value:"STOPPING"},{text:"重启中",value:"REBOOTING"},{text:"停止待销毁",value:"SHUTDOWN"},{text:"销毁中",value:"TERMINATING"}]},{key:"internet-service-provider",enDescriptor:"internet-service-provider",cnDescriptor:"公网IP所属的运营商",link:"",type:"inputMulti"},{key:"instance-family",enDescriptor:"instance-family",cnDescriptor:"机型family",link:"",type:"inputMulti"},{key:"image-id",enDescriptor:"image-id",cnDescriptor:"镜像ID",link:"",type:"inputMulti"},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"实例的vpc id",link:"",type:"inputMulti"},{key:"subnet-id",enDescriptor:"subnet-id",cnDescriptor:"实例的subnet id",link:"",type:"inputMulti"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/1108/42565",namespace:o,fieldDescriptor:l},d={region:"ap-guangzhou",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,zone:[],"zone-name":[],"module-id":[],"module-name":[],"instance-id":[],"instance-name":[],"ip-address":[],"instance-uuid":[],"instance-state":{},"internet-service-provider":[],"instance-family":[],"image-id":[],"vpc-id":[],"subnet-id":[]}};function f(e){return void 0===e&&(e={}),Object(i.d)(e,!0)}function m(e){var t=r.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["UUID"]})),t}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"PostgresFieldsDescriptor",(function(){return u})),n.d(t,"POSTGRESInstanceAliasList",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return h})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"namespace",(function(){return c})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"PostgreInvalidDemensions",(function(){return y})),n.d(t,"POSTGRESGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n.n(r),o=n(5),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}function l(e){void 0===e&&(e={});var t=i.a.get(e,"Dimensions[0].Dimensions");return 2===t.length&&(-1!==i.a.indexOf(t,"instanceid")&&-1!==i.a.indexOf(t,"insttype")||-1!==i.a.indexOf(t,"InstanceId")&&-1!==i.a.indexOf(t,"InstanceType"))}function p(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return d[e]||e}))})),t}var d={instanceid:"InstanceId",insttype:"InstanceType",region:"Region"},f={instance:"InstanceId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CESFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"CESInstanceAliasList",(function(){return c})),n.d(t,"CESInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"CESGetInstanceQueryParams",(function(){return d}));var r=n(5),i="QCE/CES",o="cesQuery",a={uInstanceId:"InstanceId"},c=["InstanceId","InstanceName"],s={instance:"InstanceId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"集群实例ID列表",link:"",type:"inputMulti"},{key:"InstanceNames",enDescriptor:"InstanceNames",cnDescriptor:"集群实例名称列表",link:"",type:"inputMulti"},{key:"OrderByKey",enDescriptor:"OrderByKey",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"实例ID",value:1},{text:"实例名称",value:2},{text:"可用区",value:3},{text:"创建时间",value:4}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]},{key:"IpList",enDescriptor:"IpList",cnDescriptor:"私有网络vip列表",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/845/30631",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,InstanceIds:[],InstanceNames:[],OrderByKey:{},OrderByType:{},IpList:[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"DCFilterFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return f})),n.d(t,"DCInstanceAliasList",(function(){return d})),n.d(t,"DCInvalidDemensions",(function(){return m})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return u})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"DCGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o=n(5),a="QCE/DC",c="dcQuery",s=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DirectConnectIds",enDescriptor:"DirectConnectIds",cnDescriptor:"物理专线 ID",link:"",type:"inputMulti"}],u={instanceDocUrl:"https://cloud.tencent.com/document/api/216/34826",namespace:a,fieldDescriptor:s},l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DirectConnectId",queries:{Limit:20,Offset:0,DirectConnectIds:[]}};function p(e){return void 0===e&&(e={}),Object(o.d)(e,!1)}var d=["DirectConnectId","DirectConnectName"],f={instance:"DirectConnectId"},m={directConnectId:"DirectConnectId",directconnectid:"DirectConnectId"};function y(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["directConnectId"]})),t}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"DCGFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"DCGInstanceAliasList",(function(){return c})),n.d(t,"DCGInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"DCGGetInstanceQueryParams",(function(){return d}));var r=n(5),i="QCE/DCG",o="dcgQuery",a={directConnectGatewayId:"DirectConnectGatewayId"},c=["DirectConnectGatewayId","DirectConnectGatewayName"],s={instance:"DirectConnectGatewayId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"direct-connect-gateway-id",enDescriptor:"direct-connect-gateway-id",cnDescriptor:"专线网关唯一ID",link:"",type:"inputMulti"},{key:"direct-connect-gateway-name",enDescriptor:"direct-connect-gateway-name",cnDescriptor:"专线网关名称",link:"",type:"inputMulti"},{key:"direct-connect-gateway-ip",enDescriptor:"direct-connect-gateway-ip",cnDescriptor:"专线网关IP",link:"",type:"inputMulti"},{key:"gateway-type",enDescriptor:"gateway-type",cnDescriptor:"网关类型",link:"",type:"select",multiple:!0,list:[{text:"普通型",value:"NORMAL"},{text:"NAT型",value:"NAT"}]},{key:"network-type",enDescriptor:"network-type",cnDescriptor:"网络类型",link:"",type:"select",multiple:!0,list:[{text:"私有网络类型",value:"VPC"},{text:"云联网类型",value:"CCN"}]},{key:"ccn-id",enDescriptor:"ccn-id",cnDescriptor:"专线网关所在云联网ID",link:"",type:"inputMulti"},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"专线网关所在私有网络ID",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/30644",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DirectConnectGatewayId",queries:{Limit:20,Offset:0,"direct-connect-gateway-id":[],"direct-connect-gateway-name":[],"direct-connect-gateway-ip":[],"gateway-type":{},"network-type":{},"ccn-id":[],"vpc-id":[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"DCXFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return m})),n.d(t,"DCXInstanceAliasList",(function(){return f})),n.d(t,"DCXInvalidDemensions",(function(){return y})),n.d(t,"namespace",(function(){return c})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"DCXGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n.n(r),o=n(5),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var u=["InstanceId","InstanceName"],l={target:"InstanceId"},p={instance:"InstanceId",replica:"ReplicaSetId"},d={Replica:{dim_KeyInStorage:"ReplicaSets",dim_KeyInTarget:"replica",dim_KeyInMap:"ReplicaSetId",dim_KeyInIns:"ReplicaSetId"},Node:{dim_KeyInStorage:"ReplicaNodeSets",dim_KeyInTarget:"node",dim_KeyInMap:"NodeId",dim_KeyInIns:"NodeId"}};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"QAAPFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"QAAPInstanceAliasList",(function(){return u})),n.d(t,"QAAPInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"QAAPGetInstanceQueryParams",(function(){return m}));var r=n(0),i=n.n(r),o=n(5),a="QCE/QAAP",c="qaapQuery",s={channelId:"InstanceId"},u=["InstanceId"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ProjectId",enDescriptor:"ProjectId",cnDescriptor:"项目ID",link:"",type:"inputMulti"},{key:"AccessRegion",enDescriptor:"AccessRegion",cnDescriptor:"接入地域",link:"",type:"inputMulti"},{key:"RealServerRegion",enDescriptor:"RealServerRegion",cnDescriptor:"源站地域",link:"",type:"inputMulti"},{key:"GroupId",enDescriptor:"GroupId",cnDescriptor:"通道组ID",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/608/36963",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,ProjectId:[],AccessRegion:[],RealServerRegion:[],GroupId:[]}};function m(e){return void 0===e&&(e={}),Object(o.d)(e,!0)}function y(e){return i.a.cloneDeep(e)}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"TCAPLUSFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"TCAPLUSInstanceAliasList",(function(){return s})),n.d(t,"TCAPLUSInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"regonsMap",(function(){return m})),n.d(t,"TCAPLUSGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n.n(r),o="QCE/TCAPLUS",a="tcaplusQuery",c={},s=["TableInstanceId","TableName"],u={instance:"TableInstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ClusterId",enDescriptor:"ClusterId",cnDescriptor:"表格所属集群ID",link:"",type:"input"},{key:"TableGroupIds",enDescriptor:"TableGroupIds",cnDescriptor:"表格组ID列表",link:"",type:"inputMulti"},{key:"TableName",enDescriptor:"TableName",cnDescriptor:"表格名称",link:"",type:"input"},{key:"TableInstanceId",enDescriptor:"TableInstanceId",cnDescriptor:"表实例ID",link:"",type:"input"},{key:"TableIdlType",enDescriptor:"TableIdlType",cnDescriptor:"表格描述语言类型",link:"",type:"select",list:[{text:"PROTO",value:"PROTO"},{text:"TDR",value:"TDR"}]},{key:"TableType",enDescriptor:"TableType",cnDescriptor:"表格数据结构类型",link:"",type:"select",list:[{text:"GENERIC",value:"GENERIC"},{text:"LIST",value:"LIST"}]},{key:"ListElementNum",enDescriptor:"ListElementNum",cnDescriptor:"LIST表元素个数",link:"",type:"inputNumber"},{key:"ReservedVolume",enDescriptor:"ReservedVolume",cnDescriptor:"表格预留容量(GB)",link:"",type:"inputNumber"},{key:"ReservedReadQps",enDescriptor:"ReservedReadQps",cnDescriptor:"表格预留读CU",link:"",type:"inputNumber"},{key:"ReservedWriteQps",enDescriptor:"ReservedWriteQps",cnDescriptor:"表格预留写CU",link:"",type:"inputNumber"},{key:"Memo",enDescriptor:"Memo",cnDescriptor:"表格备注信息",link:"",type:"input"},{key:"FileName",enDescriptor:"FileName",cnDescriptor:"Key回档文件名,回档专用",link:"",type:"input"},{key:"FileExtType",enDescriptor:"FileExtType",cnDescriptor:"Key回档文件扩展名,回档专用",link:"",type:"input"},{key:"FileSize",enDescriptor:"FileSize",cnDescriptor:"Key回档文件大小,回档专用",link:"",type:"inputNumber"},{key:"FileContent",enDescriptor:"FileContent",cnDescriptor:"Key回档文件内容,回档专用",link:"",type:"input"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/596/39664",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TableInstanceId",queries:{Limit:20,Offset:0,ClusterId:"",TableGroupIds:[],TableName:"",TableInstanceId:"",TableIdlType:{},TableType:{},ListElementNum:null,ReservedVolume:null,ReservedReadQps:null,ReservedWriteQps:null,Memo:"",FileName:"",FileExtType:"",FileSize:null,FileContent:""}};function f(e){void 0===e&&(e={});var t={};t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,t.ClusterId=i.a.get(e,"ClusterId","")||"",t.TableGroupIds=i.a.get(e,"TableGroupIds",[])||[],e=i.a.omit(e,["Offset","Limit","TableGroupIds","ClusterId"]);var n=[];return i.a.forEach(e,(function(e,t){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(n[t]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(n[t]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(n[t]=e)})),t.SelectedTables=n,t}var m={"ap-beijing":"华北地区(北京)","ap-guangzhou":"华南地区(广州)","ap-hongkong":"港澳台地区(中国香港)","ap-seoul":"亚太东北(首尔)","ap-shanghai":"华东地区(上海)","ap-singapore":"亚太东南(新加坡)","ap-tokyo":"亚太东北(东京)","eu-frankfurt":"欧洲地区(法兰克福)","na-ashburn":"美国东部(弗吉尼亚)","na-siliconvalley":"美国西部(硅谷)"};t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"VBCFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VBCInstanceAliasList",(function(){return c})),n.d(t,"VBCInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VBCGetInstanceQueryParams",(function(){return d}));var r=n(5),i="QCE/VBC",o="vbcQuery",a={},c=["CcnId","CcnName"],s={instance:"CcnId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ccn-id",enDescriptor:"ccn-id",cnDescriptor:"CCN实例ID",link:"",type:"inputMulti"},{key:"ccn-name",enDescriptor:"ccn-name",cnDescriptor:"CCN名称",link:"",type:"inputMulti"},{key:"ccn-description",enDescriptor:"ccn-description",cnDescriptor:"CCN描述",link:"",type:"inputMulti"},{key:"state",enDescriptor:"state",cnDescriptor:"实例状态",link:"",type:"select",multiple:!0,list:[{text:"隔离中",value:"ISOLATED"},{text:"运行中",value:"AVAILABLE"}]}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/19199",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"CcnId",DRegion:"",SRegion:"",queries:{Limit:20,Offset:0,"ccn-id":[],"ccn-name":[],"ccn-description":[],state:{}}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"VPNGWFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VPNGWInstanceAliasList",(function(){return c})),n.d(t,"VPNGWInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VPNGWGetInstanceQueryParams",(function(){return d}));var r=n(5),i="QCE/VPNGW",o="vpngwQuery",a={vpnGwId:"VpnGatewayId"},c=["VpnGatewayId","VpnGatewayName"],s={instance:"VpnGatewayId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"VPC实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-id",enDescriptor:"vpn-gateway-id",cnDescriptor:"VPN实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-name",enDescriptor:"vpn-gateway-name",cnDescriptor:"VPN实例名称",link:"",type:"inputMulti"},{key:"type",enDescriptor:"type",cnDescriptor:"VPN网关类型",link:"",type:"select",multiple:!0,list:[{text:"IPSEC",value:"IPSEC"},{text:"SSL",value:"SSL"}]},{key:"public-ip-address",enDescriptor:"public-ip-address",cnDescriptor:"公网IP",link:"",type:"inputMulti"},{key:"renew-flag",enDescriptor:"renew-flag",cnDescriptor:"网关续费类型",link:"",type:"select",multiple:!0,list:[{text:"手动续费",value:"NOTIFY_AND_MANUAL_RENEW"},{text:"自动续费",value:"NOTIFY_AND_AUTO_RENEW"}]},{key:"zone",enDescriptor:"zone",cnDescriptor:"VPN所在可用区",link:"",type:"dropdownMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/17514",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpnGatewayId",queries:{Limit:20,Offset:0,"vpc-id":[],"vpn-gateway-id":[],"vpn-gateway-name":[],type:{},"public-ip-address":[],"renew-flag":{},zone:[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"VPNXFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VPNXInstanceAliasList",(function(){return c})),n.d(t,"VPNXInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VPNXGetInstanceQueryParams",(function(){return d}));var r=n(5),i="QCE/VPNX",o="vpnxQuery",a={vpnConnId:"VpnConnectionId"},c=["VpnConnectionId","VpnConnectionName"],s={instance:"VpnConnectionId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"VPC实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-id",enDescriptor:"vpn-gateway-id",cnDescriptor:"VPN实例ID",link:"",type:"inputMulti"},{key:"customer-gateway-id ",enDescriptor:"customer-gateway-id ",cnDescriptor:"对端网关实例ID",link:"",type:"inputMulti"},{key:"vpn-connection-name",enDescriptor:"vpn-connection-name",cnDescriptor:"通道名称",link:"",type:"inputMulti"},{key:"vpn-connection-id",enDescriptor:"vpn-connection-id",cnDescriptor:"通道实例ID",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/17515",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpnConnectionId",queries:{Limit:20,Offset:0,"vpc-id":[],"vpn-gateway-id":[],"customer-gateway-id":[],"vpn-connection-name":[],"vpn-connection-id":[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"LighthouseFilterFieldsDescriptor",(function(){return a})),n.d(t,"LIGHTHOUSEInstanceAliasList",(function(){return u})),n.d(t,"LighthouseInvalidDemensions",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"modifyDimensons",(function(){return d})),n.d(t,"LIGHTHOUSEGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["InstanceId","InstanceName","PrivateIpAddresses","PublicIpAddresses"],l={instanceid:"InstanceId"},p={instance:"InstanceId"};function d(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CFSQueryDescriptor",(function(){return o})),n.d(t,"CFSInstanceAliasList",(function(){return s})),n.d(t,"CFSInvalidDemensions",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"regionSupported",(function(){return l})),n.d(t,"CFSGetInstanceQueryParams",(function(){return c}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"FileSystemId",enDescriptor:"File System Id",cnDescriptor:"文件系统 ID",link:"",type:"input"},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络(VPC) ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"子网 ID",link:"",type:"input"}],a={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"FileSystemId",version:"",queries:{Offset:0,Limit:20,FileSystemId:"",VpcId:"",SubnetId:""}};function c(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["FileSystemId","FsName"],u={},l=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-nanjing"},{value:"ap-seoul"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-siliconvalley"},{value:"na-toronto"}],p={instance:"InstanceId"};t.default=a},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceQueryDescriptor",(function(){return o})),n.d(t,"InvalidDemensions",(function(){return c})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"InstanceAliasList",(function(){return u})),n.d(t,"GetInstanceQueryParams",(function(){return a}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为10,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:50},{key:"QueueName",enDescriptor:"QueueName",cnDescriptor:"精确匹配QueueName",link:"",type:"input"},{key:"TagKey",enDescriptor:"TagKey",cnDescriptor:"标签搜索",link:"",type:"input"}];function a(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c={queueId:"QueueId",queueName:"QueueName"},s={instance:"QueueName"},u=["QueueName","QueueId"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"QueueName",queries:{Offset:0,Limit:20,QueueName:"",TagKey:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"CVMFilterFieldsDescriptor",(function(){return a})),n.d(t,"CVMInstanceAliasList",(function(){return u})),n.d(t,"isValidMetric",(function(){return d})),n.d(t,"modifyDimensons",(function(){return f})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"CVMGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["InstanceId","InstanceName","PrivateIpAddresses","PublicIpAddresses"],l=["CPUUsage","CpuLoadavg","Cpuloadavg5m","Cpuloadavg15m","BaseCpuUsage","GpuMemTotal","GpuMemUsage","GpuMemUsed","GpuPowDraw","GpuPowLimit","GpuPowUsage","GpuTemp","GpuUtil","LanOuttraffic","LanIntraffic","LanOutpkg","LanInpkg","WanOuttraffic","WanIntraffic","WanOutpkg","WanInpkg","AccOuttraffic","TcpCurrEstab","TimeOffset","MemUsed","MemUsage","CvmDiskUsage","BaseCpuUsage","VmDiskReadIops"],p={instance:"InstanceId"};function d(e){var t=i.a.map(l,i.a.toUpper);return-1!==i.a.indexOf(t,i.a.toUpper(e.MetricName))}function f(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"PCXInstanceAliasList",(function(){return u})),n.d(t,"PCXFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"namespace",(function(){return a})),n.d(t,"PCXGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisFieldsDescriptor",(function(){return a})),n.d(t,"RedisInvalidDemensions",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return d})),n.d(t,"REDISInstanceAliasList",(function(){return l})),n.d(t,"isValidMetric",(function(){return u})),n.d(t,"REDISGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}function u(e){void 0===e&&(e={});var t=i.a.get(e,"Dimensions[0].Dimensions");return 1===t.length&&-1!==i.a.indexOf(t,"instanceid")}var l=["InstanceId","InstanceName","WanIp"],p={redis_uuid:"InstanceId",instanceid:"InstanceId"},d={instance:"InstanceId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"TSFInvalidDemensions",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"TSFInstanceAliasList",(function(){return c})),n.d(t,"TSFFieldsDescriptor",(function(){return i})),n.d(t,"TSFGetInstanceQueryParams",(function(){return a}));var r=n(5),i=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"SearchWord",enDescriptor:"SearchWord",cnDescriptor:"搜索关键字",link:"",type:"input"},{key:"ApplicationIdList",enDescriptor:"ApplicationIdList",cnDescriptor:"应用ID 组成的数组",link:"",type:"inputmulti"},{key:"ApplicationType",enDescriptor:"ApplicationType",cnDescriptor:"应用类型",link:"",type:"select",list:[{text:"所有",value:""},{text:"容器应用",value:"C"},{text:"普通应用/虚拟机应用",value:"V"}]},{key:"MicroserviceType",enDescriptor:"MicroserviceType",cnDescriptor:"应用的微服务类型",link:"",type:"select",list:[{text:"所有",value:""},{text:"普通应用",value:"N"},{text:"Mesh应用",value:"M"},{text:"微服务网关应用",value:"G"},{text:"原生应用",value:"NATIVE"}]},{key:"ApplicationResourceTypeList",enDescriptor:"ApplicationResourceTypeList",cnDescriptor:"应用资源类型数组",link:"",type:"select",multiple:!0,list:[{text:"默认资源类型",value:"DEF"},{text:"微服务网关资源",value:"GW"}]}],o={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ApplicationId",queries:{Limit:20,Offset:0,SearchWord:"",OrderBy:"",OrderType:null,ApplicationType:"",MicroserviceType:"",ApplicationResourceTypeList:[],ApplicationIdList:[]}};function a(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var c=["ApplicationId","ApplicationName"],s={applicationid:"ApplicationId"},u={instance:"ApplicationId"};t.default=o},function(e,t,n){"use strict";n.r(t),n.d(t,"BWPFilterFieldsDescriptor",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BWPInstanceAliasList",(function(){return u})),n.d(t,"BWPInvalidDemensions",(function(){return p})),n.d(t,"BWPGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.BandwidthPackageIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["BandwidthPackageId","BandwidthPackageName"],l={instance:"BandwidthPackageId"},p={bandwidthPackageId:"BandwidthPackageId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNFilterFieldsDescriptor",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"CDNInstanceAliasList",(function(){return u})),n.d(t,"CDNInvalidDemensions",(function(){return l})),n.d(t,"CDNGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&n.push({Name:t,Value:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||n.push({Name:t,Value:i.a.get(e,"value",[]).slice(0,5)}))})),n.length>0&&(t.Filters=n)}return t}var u=["Domain","ProjectId"],l={projectId:"ProjectId",domain:"Domain"},p={instance:"Domain"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"LBFilterDescriptor",(function(){return a})),n.d(t,"LBInstanceAliasList",(function(){return u})),n.d(t,"LBInvalidDemensions",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"LBGetInstanceQueryParams",(function(){return s}));var r,i=n(0),o=n.n(i),a=[{key:"address-id",enDescriptor:"Address ID",cnDescriptor:"EIP 的唯一 ID ",link:"",type:"inputmulti"},{key:"address-name",enDescriptor:"Address Name",cnDescriptor:"EIP 名称 ",link:"",type:"inputmulti"},{key:"address-ip",enDescriptor:"Address IP",cnDescriptor:"EIP 的 IP 地址 ",link:"",type:"inputmulti"},{key:"address-status",enDescriptor:"Address Status",cnDescriptor:"EIP 的状态",link:"",type:"select",list:[{value:"CREATING",text:"CREATING"},{value:"BINDING",text:"BINDING"},{value:"BIND",text:"BIND"},{value:"UNBINDING",text:"UNBINDING"},{value:"UNBIND",text:"UNBIND"},{value:"OFFLINING",text:"OFFLINING"},{value:"BIND_ENI",text:"BIND_ENI"}]},{key:"instance-id",enDescriptor:"Instance ID",cnDescriptor:"实例ID ",link:"",type:"inputmulti"},{key:"private-ip-address",enDescriptor:"Private IP Address",cnDescriptor:"EIP 绑定的内网 IP",link:"",type:"inputmulti"},{key:"network-interface-id",enDescriptor:"Network Interface ID",cnDescriptor:"EIP 绑定的弹性网卡 ID",link:"",type:"inputmulti"},{key:"is-arrears",enDescriptor:"Arrears",cnDescriptor:"EIP 是否欠费 ",link:"",type:"select",list:[{text:"正常",value:"FALSE"},{text:"欠费",value:"TRUE"}]}],c={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"AddressId",version:"",queries:(r={Offset:0,Limit:20},r.AddressIds=[""],r.Filters={"address-id":[],"address-name":[],"address-ip":[],"address-status ":[],"instance-id ":[],"private-ip-address":[],"network-interface-id ":[],"is-arrears ":[]},r)};function s(e){void 0===e&&(e={});var t={};if(!o.a.isEmpty(e))if(t.Limit=o.a.get(e,"Limit",20)||20,t.Offset=o.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(o.a.isArray(e.AddressIds)){var n=o.a.compact(e.AddressIds);o.a.uniq(n).length>0&&(t.AddressIds=o.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];o.a.forEach(e.Filters,(function(e,t){r.length>9||(o.a.isArray(e)?(e=o.a.compact(e)).length>0&&r.push({Name:t,Values:o.a.uniq(e).slice(0,5)}):o.a.isObject(e)&&(o.a.isEmpty(o.a.get(e,"value",[]))||r.push({Name:t,Values:o.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["AddressId","AddressName","AddressIp"],l={eip:"AddressIp"},p={instance:"AddressId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"NATGatewayFilterFieldsDescriptor",(function(){return c})),n.d(t,"NATGATEWAYInstanceAliasList",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"NATInvalidDemensions",(function(){return p})),n.d(t,"NATGATEWAYGetInstanceQueryParams",(function(){return u}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var l={instance:"NatGatewayId"},p={natId:"NatGatewayId"};t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"OVCDNFilterFieldsDescriptor",(function(){return a})),n.d(t,"OVCDNInstanceAliasList",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"OVCDNInvalidDemensions",(function(){return l})),n.d(t,"OVCDNGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&n.push({Name:t,Value:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||n.push({Name:t,Value:i.a.get(e,"value",[]).slice(0,5)}))})),n.length>0&&(t.Filters=n)}return t}var u=["Domain","ResourceId"],l={projectId:"ProjectId",domain:"Domain"},p={instance:"Domain"};t.default=c},,function(e,t){e.exports=i},,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"TKEFilterFieldsDescriptor",(function(){return a})),n.d(t,"TKEInstanceAliasList",(function(){return c})),n.d(t,"TKEGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",conditions:[],groupBys:"",queries:{Limit:20,Offset:0,instanceIdsChecked:!1,filtersChecked:!0,ClusterIds:[""],Filters:{ClusterName:[],ClusterType:[],ClusterStatus:[],"tag-key":[]}}},a=[{key:"ClusterName",enDescriptor:"Cluster Name",cnDescriptor:"集群名",link:"",type:"input"},{key:"ClusterType",enDescriptor:"Cluster Type",cnDescriptor:"集群类型",link:"",type:"inputmulti"},{key:"ClusterStatus",enDescriptor:"Cluster Status",cnDescriptor:"集群状态",link:"",type:"inputmulti"},{key:"Tags",enDescriptor:"Tags",cnDescriptor:"标签键值对",link:"",type:"inputmulti"},{key:"vpc-id",enDescriptor:"VPC",cnDescriptor:"VPC",link:"",type:"input"},{key:"tag-key",enDescriptor:"Tag Key",cnDescriptor:"标签键",link:"",type:"inputmulti"},{key:"tag-value",enDescriptor:"Tag Value",cnDescriptor:"标签值",link:"",type:"inputmulti"}],c=["ClusterId","ClusterName"];function s(e){void 0===e&&(e={});var t={};if(!i.a.isEmpty(e))if(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(i.a.isArray(e.InstanceIds)){var n=i.a.compact(e.InstanceIds);i.a.uniq(n).length>0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}t.default=o},function(e,t,n){"use strict";n.r(t);var r,i=n(23),o=n(3),a=n(2),c=n(5),s=n(9),u=n(1),l=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},d=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?w.map((function(e){return{TopicId:e.TopicId,TopicName:e.TopicName}})):I,PartitionList:C.length>0?C:D}]}}))}))},t.prototype.formatTopicVarDisplay=function(e,t,n){var r=this;return t?t.replace(/\$\{(\w+)\}/g,(function(t,n){return n&&r.TopicAliasList.includes(n)?r.getAliasValue(e,n):""})):this.getAliasValue(e,n)},t.prototype.fetchMetricData=function(e,t,n,r){return d(this,void 0,void 0,(function(){var i,o,a,c,s,p,d,m,y,h=this;return f(this,(function(f){switch(f.label){case 0:return i=r.topicalias,o=r.groupname,a=r.topicid,[4,this.getConsumerGroups(t,{InstanceId:n.InstanceId,groupname:o,topicid:a})];case 1:return c=f.sent(),s=r.display,p=c.TopicList,d=c.GroupList,m=c.PartitionList,i=this.TopicAliasList.includes(i)?i:this.templateQueryIdMap.topicId,y={GroupList:d.map((function(e){return e._InstanceAliasValue=e.GroupName,{text:e.GroupName,value:e[u.templateQueryIdMap.groupName]}})),TopicList:p.map((function(e){var t=h.formatTopicVarDisplay(e,s,i);return e._InstanceAliasValue=t||e[u.templateQueryIdMap.topicId],{text:t||e[u.templateQueryIdMap.topicId],value:e[u.templateQueryIdMap.topicId],TopicName:e.TopicName}})),PartitionList:m.map((function(e){return e._InstanceAliasValue=e[u.templateQueryIdMap.partition],{text:e[u.templateQueryIdMap.partition],value:e[u.templateQueryIdMap.partition]}}))},[4,l.a.setExtraStorage(this.service,this.keyInStorage.TopicList,p)];case 2:return f.sent(),[4,l.a.setExtraStorage(this.service,this.keyInStorage.GroupList,d)];case 3:return f.sent(),[4,l.a.setExtraStorage(this.service,this.keyInStorage.PartitionList,m)];case 4:switch(f.sent(),e){case"DescribeTopicList":return[2,y.TopicList];case"DescribeGroup":return[2,y.GroupList];case"DescribePartion":return[2,y.PartitionList];default:return[2,[]]}return[2]}}))}))},t}(s.BaseDatasource);t.default=m},function(e,t,n){"use strict";n.r(t);var r,i=n(12),o=n(3),a=n(0),c=n.n(a),s=n(2),u=n(5),l=n(9),p=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=i)return r;var o=Object(s.k)(i,50),a=[];return c.a.forEach(o,(function(t){a.push(n.getInstances(e,t))})),Promise.all(a).then((function(e){return c.a.forEach(e,(function(e){r=c.a.concat(r,e)})),r})).catch((function(e){return r}))}))},t.prototype.getVpcId=function(e,t){void 0===t&&(t={}),(t=l({Offset:0,Limit:20},t)).Offset=String(t.Offset),t.Limit=String(t.Limit);var n=Object(s.e)(e,"vpc");return this.doRequest({url:this.url+n.path,data:t},n.service,{region:e,action:"DescribeVpcs"}).then((function(e){return c.a.map(e.VpcSet||[],(function(e){return{text:e.VpcId,value:e.VpcId}}))}))},t.prototype.getVpcIds=function(e){var t=this,n=[],r={Offset:0,Limit:100};r.Offset=String(r.Offset),r.Limit=String(r.Limit);var i=Object(s.e)(e,"vpc");return this.doRequest({url:this.url+i.path,data:r},i.service,{region:e,action:"DescribeVpcs"}).then((function(r){n=c.a.map(r.VpcSet||[],(function(e){return{text:e.VpcId,value:e.VpcId}}));var i=r.TotalCount||0;if(n.length>=i)return n;var o=Object(s.k)(i,100),a=[];return c.a.forEach(o,(function(n){a.push(t.getVpcId(e,n))})),Promise.all(a).then((function(e){return c.a.forEach(e,(function(e){n=c.a.concat(n,e)})),n})).catch((function(e){return n}))}))},t.prototype.doRequestV2=function(e,t,n){return void 0===n&&(n={}),p(this,void 0,void 0,(function(){return d(this,(function(r){switch(r.label){case 0:return[4,Object(s.d)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return c.a.get(e,"data",{})})).catch((function(e){throw e}))]}}))}))},t}(o.BaseDatasource);t.default=f},function(e,t,n){"use strict";n.r(t);var r,i=n(41),o=n(3),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.Namespace=i.namespace,o.InstanceAliasList=i.POSTGRESInstanceAliasList,o.InvalidDimensions=i.PostgreInvalidDemensions,o.templateQueryIdMap=i.templateQueryIdMap,o.InstanceReqConfig={service:"postgres",action:"DescribeDBInstances",responseField:"DBInstanceSet"},o.MetricReqConfig={resultFilter:i.modifyDimensons},o}return a(t,e),t}(o.BaseDatasource);t.default=c},function(e,t,n){"use strict";n.r(t);var r,i=n(0),o=n(51),a=n(3),c=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?"_".concat(r.timeshift):"";return{target:"".concat(e.MetricName," - ").concat(o).concat(a),datapoints:Object(i.map)(t.Values,(function(e){return[e.Value,1e3*e.Timestamp+d]}))}}))})))}))},t}(c.BaseDatasource);t.default=p},function(e,t,n){"use strict";n.r(t);var r,i=n(62),o=n(3),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.Namespace="QCE/TSF",o.InstanceAliasList=i.TSFInstanceAliasList,o.InvalidDimensions=i.TSFInvalidDemensions,o.templateQueryIdMap=i.templateQueryIdMap,o.InstanceReqConfig={service:"tsf",action:"DescribeApplications",responseField:"Content"},o}return a(t,e),t}(o.BaseDatasource);t.default=c},function(e,t,n){"use strict";n.r(t);var r,i=n(25),o=n(3),a=n(0),c=n.n(a),s=n(2),u=n(1),l=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},d=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,l)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(31);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(32);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(33);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"BWPQueryCtrl",(function(){return a})),n.d(t,"bwpQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(63),a=function(){function e(e,t){e.init=function(){e.BWPFilterFieldsDescriptor=o.BWPFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("bwpQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(34);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"CDBQueryCtrl",(function(){return a})),n.d(t,"cdbQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(44),a=function(){function e(e,t){e.init=function(){e.CDBFieldsDescriptor=o.CDBFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"ZoneIds":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cdb",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cdbQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNQueryCtrl",(function(){return a})),n.d(t,"cdnQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(64),a=function(){function e(e,t){e.init=function(){e.CDNFilterFieldsDescriptor=o.CDNFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cdnQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return l})),n.d(t,"sQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(35),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,p)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(36);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(45);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(57),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n \n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cfsQuery",u)},function(e,t,n){"use strict";n.r(t),n.d(t,"CKAFKAQueryCtrl",(function(){return l})),n.d(t,"scfQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(11),a=n(5),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 主题,消费分组,分区 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n \n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"=",instance:"="},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("ckafkaQuery",p)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return f}));var r=n(6),i=n.n(r),o=n(0),a=n(12),c=n(2),s=n(5),u=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},l=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n\x3c!--Listener维度部分--\x3e\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n');function f(){return{template:d,controller:p,restrict:"E",scope:{target:"=",namespace:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("clbQuery",f)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return a})),n.d(t,"sQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(29),a=function(){function e(e,t){e.init=function(){e.GSEFilterFieldsDescriptor=o.CLSFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n \n
\n
\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(58);Object(r.default)("cmqQuery",{fieldDescriptor:i.InstanceQueryDescriptor,instanceDocUrl:"https://cloud.tencent.com/document/api/406/42624",namespace:"QCE/CMQ"})},function(e,t,n){"use strict";n.r(t),n.d(t,"CmqTopicQueryCtrl",(function(){return u})),n.d(t,"scfQuery",(function(){return l}));var r=n(6),i=n.n(r),o=n(37),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 主题的ui --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n \n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("cmqTopicQuery",l)},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceAliasList",(function(){return a})),n.d(t,"GetInstanceQueryParams",(function(){return o}));var r=n(0),i=n.n(r);function o(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var a=["BucketName"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"BucketName",queries:{}}},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(38);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"CVMQueryCtrl",(function(){return a})),n.d(t,"cvmQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(59),a=function(){function e(e,t){e.init=function(){e.CVMFilterFieldsDescriptor=o.CVMFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cvmQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(27);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(46);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(16),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(47);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(48);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(39);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(40);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return s})),n.d(t,"sQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(21),a=n(2),c=[{label:"diskId",field:"diskId"}],s=function(){function e(e,t){e.init=function(){e.ECMBLOCKSTORAGEFilterFieldsDescriptor=o.ECMBLOCKSTORAGEFilterFieldsDescriptor,e.ExtraFields=c,e.namespace=o.namespace},e.getExtraFields=function(){return c.filter((function(t){var n,r;return t.field in(null!==(n=e.dims)&&void 0!==n?n:{})||t.label in(null!==(r=e.dims)&&void 0!==r?r:{})}))},e.getExtraDropdown=function(t,n){var r=t.instance,i=Object(a.f)(e.namespace);r=e.datasource.getServiceFn(i,"getVariable")(r);try{return(r=JSON.parse(r)).DataDisks.map((function(e){return e._InstanceAliasValue=e[o.templateQueryIdMap.diskId],{text:e[o.templateQueryIdMap.diskId],value:JSON.stringify(e)}}))}catch(t){var c={InstanceId:r};return e.datasource.getServiceFn(i,"getDiskList")({payload:c}).map((function(e){return{text:e[o.templateQueryIdMap.diskId],value:JSON.stringify(e)}}))}},e.init()}return e.$inject=["$scope","$rootScope"],e}();function u(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(49);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(15),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t),n.d(t,"LBQueryCtrl",(function(){return a})),n.d(t,"lbQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(65),a=function(){function e(e,t){e.init=function(){e.LBFilterDescriptor=o.LBFilterDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n\n\x3c!--Filters部分--\x3e\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("lbQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"LighthouseQueryCtrl",(function(){return a})),n.d(t,"lighthouseQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(56),a=function(){function e(e,t){e.init=function(){e.LighthouseFilterFieldsDescriptor=o.LighthouseFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("lighthouse",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("lighthouseQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"MongoDBQueryCtrl",(function(){return p})),n.d(t,"mongodbQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(0),a=n(50),c=n(2),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onRefresh:"&",onChange:"&"},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("mongodbQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"MrQueryCtrl",(function(){return u})),n.d(t,"mrQuery",(function(){return l}));var r=n(24),i=n(6),o=n.n(i),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\x3c!-- 主题的ui --\x3e\n
\n
\n
\n \n
\n\n \n \n
\n
\n
\n
\n\n \n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}o.a.directive("mrQuery",l)},function(e,t,n){"use strict";n.r(t),n.d(t,"NatGatewayQueryCtrl",(function(){return a})),n.d(t,"natGatewayQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(66),a=function(){function e(e,t){e.init=function(){e.NATGatewayFilterFieldsDescriptor=o.NATGatewayFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(e){return[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("natGatewayQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"OVCDNQueryCtrl",(function(){return a})),n.d(t,"ovCdnQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(67),a=function(){function e(e,t){e.init=function(){e.OVCDNFilterFieldsDescriptor=o.OVCDNFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("ovCdnQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"PCXQueryCtrl",(function(){return a})),n.d(t,"pcxQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(60),a=function(){function e(e,t){e.init=function(){e.PCXFieldsDescriptor=o.PCXFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"vpcId":return e.getVpcIds();default:return[]}},e.getVpcIds=function(){return e.region?e.datasource.getVpcIds("pcx",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("pcxQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(41);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(51);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisQueryCtrl",(function(){return a})),n.d(t,"redisQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(61),a=function(){function e(e,t){e.init=function(){e.RedisFieldsDescriptor=o.RedisFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(e){return[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("redisQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisMemQueryCtrl",(function(){return l})),n.d(t,"redisMemQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(0),a=n(17),c=n(2),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("redisMemQuery",p)},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(28),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- version部分 --\x3e\n
\n
\n \n
\n \n \n
\n
\n
\n\n \n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&"}}}i.a.directive("scfQuery",u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(30);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(52);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(13),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(18),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("tdmqRabbitmqQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"TdmqRocketmqQueryCtrl",(function(){return p})),n.d(t,"tdmqRocketmqQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(19),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("tdmqRocketmqQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return c})),n.d(t,"sQuery",(function(){return s}));var r=n(6),i=n.n(r),o=n(0),a=n(74),c=function(){function e(e,t){e.init=function(){e.TKEFilterFieldsDescriptor=a.TKEFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.addCondition=function(){e.target.conditions.push({Key:"",Operator:"=",Value:""})},e.deleteCondition=function(t){var n=e.target.conditions[t];Object(o.isEmpty)(n.Key)||Object(o.isEmpty)(n.Operator)||Object(o.isEmpty)(n.Value)?e.target.conditions.splice(t,1):(e.target.conditions.splice(t,1),e.onRefresh())},e.getOperator=function(){return Promise.resolve([{text:"=",value:"="},{text:"in",value:"in"}])},e.init()}return e.$inject=["$scope","$rootScope"],e}();function s(){return{template:'\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n \n \n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n',controller:c,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("tkeQuery",s)},function(e,t,n){"use strict";n.r(t),n.d(t,"TSFQueryCtrl",(function(){return a})),n.d(t,"tsfQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(62),a=function(){function e(e,t){e.init=function(){e.TSFFieldsDescriptor=o.TSFFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("tsfQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(25);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"VBCQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(53),a=n(2),c=[],s=function(){function e(e,t){e.init=function(){e.VBCFilterFieldsDescriptor=o.VBCFilterFieldsDescriptor,e.namespace=o.namespace},e.getExtraFields=function(){return c.filter((function(t){var n;return t.field in(null!==(n=e.dims)&&void 0!==n?n:{})}))},e.getExtraDropdown=function(t){var n=Object(a.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t})},e.init()}return e.$inject=["$scope","$rootScope"],e}();function u(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("vbcQuery",u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(42);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(54);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(55);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(43);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){var r={".":20,"./":20,"./MonitorDatasource":188,"./MonitorDatasource.ts":188,"./_base/datasource":3,"./_base/datasource.ts":3,"./_base/query":7,"./_base/query.ts":7,"./_base/query_filter":195,"./_base/query_filter.ts":195,"./_base/types":196,"./_base/types.ts":196,"./apigateway/datasource":75,"./apigateway/datasource.ts":75,"./apigateway/query":131,"./apigateway/query.ts":131,"./apigateway/query_def":23,"./apigateway/query_def.ts":23,"./bmIntraLb/datasource":76,"./bmIntraLb/datasource.ts":76,"./bmIntraLb/query":132,"./bmIntraLb/query.ts":132,"./bmIntraLb/query_def":31,"./bmIntraLb/query_def.ts":31,"./bm_lb/datasource":77,"./bm_lb/datasource.ts":77,"./bm_lb/query":133,"./bm_lb/query.ts":133,"./bm_lb/query_def":32,"./bm_lb/query_def.ts":32,"./bm_pcx/datasource":78,"./bm_pcx/datasource.ts":78,"./bm_pcx/query":134,"./bm_pcx/query.ts":134,"./bm_pcx/query_def":33,"./bm_pcx/query_def.ts":33,"./bwp/datasource":79,"./bwp/datasource.ts":79,"./bwp/query":135,"./bwp/query.ts":135,"./bwp/query_def":63,"./bwp/query_def.ts":63,"./cbs/datasource":80,"./cbs/datasource.ts":80,"./cbs/query":136,"./cbs/query.ts":136,"./cbs/query_def":34,"./cbs/query_def.ts":34,"./cdb/datasource":81,"./cdb/datasource.ts":81,"./cdb/query":137,"./cdb/query.ts":137,"./cdb/query_def":44,"./cdb/query_def.ts":44,"./cdn/datasource":82,"./cdn/datasource.ts":82,"./cdn/query":138,"./cdn/query.ts":138,"./cdn/query_def":64,"./cdn/query_def.ts":64,"./cdn_province/datasource":83,"./cdn_province/datasource.ts":83,"./cdn_province/query":139,"./cdn_province/query.ts":139,"./cdn_province/query_def":35,"./cdn_province/query_def.ts":35,"./ceip_summary/datasource":84,"./ceip_summary/datasource.ts":84,"./ceip_summary/query":140,"./ceip_summary/query.ts":140,"./ceip_summary/query_def":36,"./ceip_summary/query_def.ts":36,"./ces/datasource":85,"./ces/datasource.ts":85,"./ces/query":141,"./ces/query.ts":141,"./ces/query_def":45,"./ces/query_def.ts":45,"./cfs/datasource":86,"./cfs/datasource.ts":86,"./cfs/query":142,"./cfs/query.ts":142,"./cfs/query_def":57,"./cfs/query_def.ts":57,"./ckafka/datasource":87,"./ckafka/datasource.ts":87,"./ckafka/query":143,"./ckafka/query.ts":143,"./ckafka/query_def":11,"./ckafka/query_def.ts":11,"./clb/datasource":88,"./clb/datasource.ts":88,"./clb/query":144,"./clb/query.ts":144,"./clb/query_def":12,"./clb/query_def.ts":12,"./cls/datasource":89,"./cls/datasource.ts":89,"./cls/query":145,"./cls/query.ts":145,"./cls/query_def":29,"./cls/query_def.ts":29,"./cmq/datasource":90,"./cmq/datasource.ts":90,"./cmq/query":146,"./cmq/query.ts":146,"./cmq/query_def":58,"./cmq/query_def.ts":58,"./cmq_topic/datasource":91,"./cmq_topic/datasource.ts":91,"./cmq_topic/query":147,"./cmq_topic/query.ts":147,"./cmq_topic/query_def":37,"./cmq_topic/query_def.ts":37,"./cos/datasource":92,"./cos/datasource.ts":92,"./cos/query_def":148,"./cos/query_def.ts":148,"./cpm/datasource":93,"./cpm/datasource.ts":93,"./cpm/query":149,"./cpm/query.ts":149,"./cpm/query_def":38,"./cpm/query_def.ts":38,"./cvm/datasource":94,"./cvm/datasource.ts":94,"./cvm/query":150,"./cvm/query.ts":150,"./cvm/query_def":59,"./cvm/query_def.ts":59,"./cynosdb_mysql/datasource":95,"./cynosdb_mysql/datasource.ts":95,"./cynosdb_mysql/query":151,"./cynosdb_mysql/query.ts":151,"./cynosdb_mysql/query_def":27,"./cynosdb_mysql/query_def.ts":27,"./dc/datasource":96,"./dc/datasource.ts":96,"./dc/query":152,"./dc/query.ts":152,"./dc/query_def":46,"./dc/query_def.ts":46,"./dcdb/datasource":97,"./dcdb/datasource.ts":97,"./dcdb/query":153,"./dcdb/query.ts":153,"./dcdb/query_def":16,"./dcdb/query_def.ts":16,"./dcg/datasource":98,"./dcg/datasource.ts":98,"./dcg/query":154,"./dcg/query.ts":154,"./dcg/query_def":47,"./dcg/query_def.ts":47,"./dcx/datasource":99,"./dcx/datasource.ts":99,"./dcx/query":155,"./dcx/query.ts":155,"./dcx/query_def":48,"./dcx/query_def.ts":48,"./ecdn/datasource":100,"./ecdn/datasource.ts":100,"./ecdn/query":156,"./ecdn/query.ts":156,"./ecdn/query_def":39,"./ecdn/query_def.ts":39,"./ecm/datasource":101,"./ecm/datasource.ts":101,"./ecm/query":157,"./ecm/query.ts":157,"./ecm/query_def":40,"./ecm/query_def.ts":40,"./ecm_block_storage/datasource":102,"./ecm_block_storage/datasource.ts":102,"./ecm_block_storage/query":158,"./ecm_block_storage/query.ts":158,"./ecm_block_storage/query_def":21,"./ecm_block_storage/query_def.ts":21,"./ecm_lb/datasource":103,"./ecm_lb/datasource.ts":103,"./ecm_lb/query":159,"./ecm_lb/query.ts":159,"./ecm_lb/query_def":49,"./ecm_lb/query_def.ts":49,"./gse/datasource":104,"./gse/datasource.ts":104,"./gse/query":160,"./gse/query.ts":160,"./gse/query_def":15,"./gse/query_def.ts":15,"./index":20,"./index.ts":20,"./lb/datasource":105,"./lb/datasource.ts":105,"./lb/query":161,"./lb/query.ts":161,"./lb/query_def":65,"./lb/query_def.ts":65,"./lighthouse/datasource":106,"./lighthouse/datasource.ts":106,"./lighthouse/query":162,"./lighthouse/query.ts":162,"./lighthouse/query_def":56,"./lighthouse/query_def.ts":56,"./mongodb/datasource":107,"./mongodb/datasource.ts":107,"./mongodb/query":163,"./mongodb/query.ts":163,"./mongodb/query_def":50,"./mongodb/query_def.ts":50,"./mr/datasource":108,"./mr/datasource.ts":108,"./mr/query":164,"./mr/query.ts":164,"./mr/query_def":24,"./mr/query_def.ts":24,"./nat_gateway/datasource":109,"./nat_gateway/datasource.ts":109,"./nat_gateway/query":165,"./nat_gateway/query.ts":165,"./nat_gateway/query_def":66,"./nat_gateway/query_def.ts":66,"./ov_cdn/datasource":110,"./ov_cdn/datasource.ts":110,"./ov_cdn/query":166,"./ov_cdn/query.ts":166,"./ov_cdn/query_def":67,"./ov_cdn/query_def.ts":67,"./pcx/datasource":111,"./pcx/datasource.ts":111,"./pcx/query":167,"./pcx/query.ts":167,"./pcx/query_def":60,"./pcx/query_def.ts":60,"./postgresql/datasource":112,"./postgresql/datasource.ts":112,"./postgresql/query":168,"./postgresql/query.ts":168,"./postgresql/query_def":41,"./postgresql/query_def.ts":41,"./qaap/datasource":113,"./qaap/datasource.ts":113,"./qaap/query":169,"./qaap/query.ts":169,"./qaap/query_def":51,"./qaap/query_def.ts":51,"./redis/datasource":114,"./redis/datasource.ts":114,"./redis/query":170,"./redis/query.ts":170,"./redis/query_def":61,"./redis/query_def.ts":61,"./redis_mem/datasource":115,"./redis_mem/datasource.ts":115,"./redis_mem/query":171,"./redis_mem/query.ts":171,"./redis_mem/query_def":17,"./redis_mem/query_def.ts":17,"./scf/datasource":116,"./scf/datasource.ts":116,"./scf/query":172,"./scf/query.ts":172,"./scf/query_def":28,"./scf/query_def.ts":28,"./sqlserver/datasource":117,"./sqlserver/datasource.ts":117,"./sqlserver/query":173,"./sqlserver/query.ts":173,"./sqlserver/query_def":30,"./sqlserver/query_def.ts":30,"./tcaplus/datasource":118,"./tcaplus/datasource.ts":118,"./tcaplus/query":174,"./tcaplus/query.ts":174,"./tcaplus/query_def":52,"./tcaplus/query_def.ts":52,"./tdmq/datasource":119,"./tdmq/datasource.ts":119,"./tdmq/query":175,"./tdmq/query.ts":175,"./tdmq/query_def":13,"./tdmq/query_def.ts":13,"./tdmq_rabbitmq/datasource":120,"./tdmq_rabbitmq/datasource.ts":120,"./tdmq_rabbitmq/query":176,"./tdmq_rabbitmq/query.ts":176,"./tdmq_rabbitmq/query_def":18,"./tdmq_rabbitmq/query_def.ts":18,"./tdmq_rocketmq/datasource":121,"./tdmq_rocketmq/datasource.ts":121,"./tdmq_rocketmq/query":177,"./tdmq_rocketmq/query.ts":177,"./tdmq_rocketmq/query_def":19,"./tdmq_rocketmq/query_def.ts":19,"./tke/datasource":122,"./tke/datasource.ts":122,"./tke/query":178,"./tke/query.ts":178,"./tke/query_def":74,"./tke/query_def.ts":74,"./tsf/datasource":123,"./tsf/datasource.ts":123,"./tsf/query":179,"./tsf/query.ts":179,"./tsf/query_def":62,"./tsf/query_def.ts":62,"./v_clb/datasource":124,"./v_clb/datasource.ts":124,"./v_clb/query":180,"./v_clb/query.ts":180,"./v_clb/query_def":25,"./v_clb/query_def.ts":25,"./vbc/datasource":125,"./vbc/datasource.ts":125,"./vbc/query":181,"./vbc/query.ts":181,"./vbc/query_def":53,"./vbc/query_def.ts":53,"./vpc_net_detect/datasource":126,"./vpc_net_detect/datasource.ts":126,"./vpc_net_detect/query":182,"./vpc_net_detect/query.ts":182,"./vpc_net_detect/query_def":42,"./vpc_net_detect/query_def.ts":42,"./vpngw/datasource":127,"./vpngw/datasource.ts":127,"./vpngw/query":183,"./vpngw/query.ts":183,"./vpngw/query_def":54,"./vpngw/query_def.ts":54,"./vpnx/datasource":128,"./vpnx/datasource.ts":128,"./vpnx/query":184,"./vpnx/query.ts":184,"./vpnx/query_def":55,"./vpnx/query_def.ts":55,"./waf/datasource":129,"./waf/datasource.ts":129,"./waf/query":185,"./waf/query.ts":185,"./waf/query_def":43,"./waf/query_def.ts":43};function i(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=186},,function(e,t,n){"use strict";n.r(t),n.d(t,"TCMonitorDatasource",(function(){return u}));var r=n(0),i=n.n(r),o=n(20),a=n(2),c=n(5),s=n(8),u=function(){function e(e,t,n){var r=this;this.instanceSettings=e,this.backendSrv=t,this.templateSrv=n,i.a.forEach(o.Datasources,(function(e,t){r[t]=new e(r.instanceSettings,r.backendSrv,r.templateSrv)}))}return e.$inject=["instanceSettings","backendSrv","templateSrv"],e.prototype.getNamespaces=function(){var e=this,t=[];return i.a.forEach(o.SERVICES,(function(n){!0===e.instanceSettings.jsonData[n.service]&&t.push(n)})),t},e.prototype.getCascaderNamespaces=function(){var e=this,t=o.SERVICES.filter((function(t){return e.instanceSettings.jsonData[t.service]}));return Object(c.f)(t)},e.prototype.getSelectedServices=function(){var e=this.getNamespaces();return i.a.map(e,(function(e){var t=e.namespace;return Object(a.f)(t)}))},e.prototype.query=function(e){var t=this,n=[],r=this.getSelectedServices();return i.a.forEach(r,(function(r){var o=i.a.cloneDeep(e),a=i.a.filter(o.targets,(function(e){return e.service===r}));if(o.targets=a,o.targets.length>0){var c=t["".concat(i.a.toUpper(r),"Datasource")].query(o);c&&n.push(c)}})),0===n.length?Promise.resolve({data:[],state:s.LoadingState.Done}):Promise.all(n).then((function(e){return{data:i.a.flatten(e),state:s.LoadingState.Done}}))},e.prototype.metricFindQuery=function(e,t){var n=Object(a.h)(e),r=Object(a.f)(n.namespace||"");if(i.a.isEmpty(n)||!n.namespace||!n.action||!r)return Promise.resolve([]);if(this["".concat(i.a.toUpper(r),"Datasource")].metricFindQuery){var o=this["".concat(i.a.toUpper(r),"Datasource")].metricFindQuery(n,i.a.get(t,"variable.regex",void 0));if(o)return o}return Promise.resolve([])},e.prototype.getRegions=function(e){return this["".concat(i.a.toUpper(e),"Datasource")].getRegions?this["".concat(i.a.toUpper(e),"Datasource")].getRegions():[]},e.prototype.getMetrics=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getMetrics(t)},e.prototype.getZones=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getZones?this["".concat(i.a.toUpper(e),"Datasource")].getZones(t):[]},e.prototype.getFilterDropdown=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getFilterDropdown?this["".concat(i.a.toUpper(e),"Datasource")].getFilterDropdown(t):[]},e.prototype.getInstances=function(e,t,n){return this["".concat(i.a.toUpper(e),"Datasource")].getInstances(t,n)},e.prototype.getListeners=function(e,t,n){return this["".concat(i.a.toUpper(e),"Datasource")].getListeners?this["".concat(i.a.toUpper(e),"Datasource")].getListeners(t,n):[]},e.prototype.getVpcIds=function(e,t){if(this["".concat(i.a.toUpper(e),"Datasource")].getVpcIds)return this["".concat(i.a.toUpper(e),"Datasource")].getVpcIds(t)},e.prototype.testDatasource=function(){var e=this,t=[],n=this.getSelectedServices();return i.a.forEach(n,(function(n){t.push(e["".concat(i.a.toUpper(n),"Datasource")].testDatasource())})),0===t.length?Promise.resolve(null):Promise.all(t).then((function(e){var t="success",n="DataSource Connection OK",r=i.a.reduce(e,(function(e,t){return"error"===t.status&&(""===e&&(e+="Oops! Found an error in: "),e+="".concat(t.service,": ").concat(t.message,"; \n")),e}),"");return r&&(t="error",n=r),{status:t,message:n,title:i.a.upperFirst(t)}}))},e.prototype.getServiceFn=function(e,t){var n=this;return function(){for(var r,o=[],a=0;a=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?n+=t.charAt(r):o<128?n+=i[o]:o<2048?n+=i[192|o>>6]+i[128|63&o]:o<55296||o>=57344?n+=i[224|o>>12]+i[128|o>>6&63]+i[128|63&o]:(r+=1,o=65536+((1023&o)<<10|1023&t.charCodeAt(r)),n+=i[240|o>>18]+i[128|o>>12&63]+i[128|o>>6&63]+i[128|63&o])}return n},isBuffer:function(e){return null!=e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},merge:function e(t,n,i){if(!n)return t;if("object"!=typeof n){if(Array.isArray(t))t.push(n);else{if("object"!=typeof t)return[t,n];(i.plainObjects||i.allowPrototypes||!r.call(Object.prototype,n))&&(t[n]=!0)}return t}if("object"!=typeof t)return[t].concat(n);var a=t;return Array.isArray(t)&&!Array.isArray(n)&&(a=o(t,i)),Array.isArray(t)&&Array.isArray(n)?(n.forEach((function(n,o){r.call(t,o)?t[o]&&"object"==typeof t[o]?t[o]=e(t[o],n,i):t.push(n):t[o]=n})),t):Object.keys(n).reduce((function(t,o){var a=n[o];return r.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t}),a)}}},function(e,t,n){"use strict";var r=String.prototype.replace,i=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return r.call(e,i,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(e,t,n){"use strict";n.r(t),n.d(t,"queryDDO",(function(){return a}));var r=n(6),i=n.n(r),o=function(){function e(t,n){Object.assign(t,e._config),t.onChecked=function(e,n){!0===t.target.queries[e]&&(t.target.queries[n]=!1),t.onChange()},t.init()}return e.$inject=["$scope","$rootScope"],e}();function a(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n',controller:o,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}t.default=function(e,t){o._config=t,i.a.directive(e,a)}},function(e,t,n){"use strict";n.r(t)},function(e,t,n){"use strict";var r=n(207),i=n(208),o=n(194);e.exports={formats:o,parse:i,stringify:r}},function(e){e.exports=JSON.parse('{"type":"datasource","name":"Tencent Cloud Monitoring","id":"tencentcloud-monitor-datasource","backend":true,"alerting":true,"logs":true,"metrics":true,"annotations":false,"executable":"tencentcloud-monitor-app-backend","queryOptions":{"maxDataPoints":true},"routes":[{"path":"cls-internal","url":"https://cls.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"region-internal","url":"https://region.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"api-internal","url":"https://api.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cmq-internal","url":"https://cmq.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shanghai-internal","url":"https://cmq.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shenzhen-internal","url":"https://cmq.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"emr-internal","url":"https://emr.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shanghai-internal","url":"https://emr.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shenzhen-internal","url":"https://emr.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"scf-internal","url":"https://scf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shanghai-internal","url":"https://scf.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shenzhen-internal","url":"https://scf.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cfs-internal","url":"https://cfs.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shanghai-internal","url":"https://cfs.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shenzhen-internal","url":"https://cfs.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ckafka-internal","url":"https://ckafka.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shanghai-internal","url":"https://ckafka.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shenzhen-internal","url":"https://ckafka.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"clb-internal","url":"https://clb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shanghai-internal","url":"https://clb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shenzhen-internal","url":"https://clb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"mongodb-internal","url":"https://mongodb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shanghai-internal","url":"https://mongodb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shenzhen-internal","url":"https://mongodb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"vpc-internal","url":"https://vpc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shanghai-internal","url":"https://vpc.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shenzhen-internal","url":"https://vpc.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"pcx-internal","url":"https://vpc.api.qcloud.com.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/x-www-form-urlencoded"}]},{"path":"cvm-internal","url":"https://cvm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shanghai-internal","url":"https://cvm.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shenzhen-internal","url":"https://cvm.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"monitor-internal","url":"https://monitor.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shanghai-internal","url":"https://monitor.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shenzhen-internal","url":"https://monitor.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdb-internal","url":"https://cdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shanghai-internal","url":"https://cdb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shenzhen-internal","url":"https://cdb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"postgres-internal","url":"https://postgres.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shanghai-internal","url":"https://postgres.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shenzhen-internal","url":"https://postgres.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdn-internal","url":"https://cdn.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"redis-internal","url":"https://redis.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dcdb-internal","url":"https://dcdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dc-internal","url":"https://dc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cynosdb-internal","url":"https://cynosdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"sqlserver-internal","url":"https://sqlserver.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmeip-internal","url":"https://bmeip.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmvpc-internal","url":"https://bmvpc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmlb-internal","url":"https://bmlb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bm-internal","url":"https://bm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"es-internal","url":"https://es.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cbs-internal","url":"https://cbs.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tcaplusdb-internal","url":"https://tcaplusdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apigateway-internal","url":"https://apigateway.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tdmq-internal","url":"https://tdmq.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gaap-internal","url":"https://gaap.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecm-internal","url":"https://ecm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gse-internal","url":"https://gse.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"lighthouse-internal","url":"https://lighthouse.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tsf-internal","url":"https://tsf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"rum-internal","url":"https://rum.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tke-internal","url":"https://tke.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecdn-internal","url":"https://ecdn.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"waf-internal","url":"https://waf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apigateway","url":"https://apigateway.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"api","url":"https://api.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cmq","url":"https://cmq.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shanghai","url":"https://cmq.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shenzhen","url":"https://cmq.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"emr","url":"https://emr.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shanghai","url":"https://emr.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shenzhen","url":"https://emr.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"scf","url":"https://scf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shanghai","url":"https://scf.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shenzhen","url":"https://scf.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cfs","url":"https://cfs.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shanghai","url":"https://cfs.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shenzhen","url":"https://cfs.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ckafka","url":"https://ckafka.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shanghai","url":"https://ckafka.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shenzhen","url":"https://ckafka.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"clb","url":"https://clb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shanghai","url":"https://clb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shenzhen","url":"https://clb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"mongodb","url":"https://mongodb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shanghai","url":"https://mongodb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shenzhen","url":"https://mongodb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"vpc","url":"https://vpc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shanghai","url":"https://vpc.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shenzhen","url":"https://vpc.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"pcx","url":"https://vpc.api.qcloud.com","headers":[{"name":"Content-Type","content":"application/x-www-form-urlencoded"}]},{"path":"cvm","url":"https://cvm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shanghai","url":"https://cvm.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shenzhen","url":"https://cvm.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"monitor","url":"https://monitor.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shanghai","url":"https://monitor.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shenzhen","url":"https://monitor.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdb","url":"https://cdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shanghai","url":"https://cdb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shenzhen","url":"https://cdb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"postgres","url":"https://postgres.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shanghai","url":"https://postgres.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shenzhen","url":"https://postgres.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdn","url":"https://cdn.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"redis","url":"https://redis.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dcdb","url":"https://dcdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dc","url":"https://dc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cynosdb","url":"https://cynosdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"sqlserver","url":"https://sqlserver.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmeip","url":"https://bmeip.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmvpc","url":"https://bmvpc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmlb","url":"https://bmlb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bm","url":"https://bm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"es","url":"https://es.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cbs","url":"https://cbs.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tcaplusdb","url":"https://tcaplusdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tdmq","url":"https://tdmq.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gaap","url":"https://gaap.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecm","url":"https://ecm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gse","url":"https://gse.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cls","url":"https://cls.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cls/shanghai","url":"https://cls.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cls/shenzhen","url":"https://cls.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"region","url":"https://region.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"lighthouse","url":"https://lighthouse.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tsf","url":"https://tsf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"rum","url":"https://rum.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apm","url":"https://apm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tke","url":"https://tke.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecdn","url":"https://ecdn.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"waf","url":"https://waf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]}],"info":{"author":{"name":"Tencent Cloud"},"logos":{"small":"img/tencent-cloud.svg","large":"img/tencent-cloud.svg"},"description":"Data source for Tencent Cloud monitoring service"}}')},,,,,,,,,function(e,t,n){"use strict";var r=n(193),i=n(194),o={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},a=Date.prototype.toISOString,c={delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,serializeDate:function(e){return a.call(e)},skipNulls:!1,strictNullHandling:!1},s=function e(t,n,i,o,a,s,u,l,p,d,f,m){var y=t;if("function"==typeof u)y=u(n,y);else if(y instanceof Date)y=d(y);else if(null===y){if(o)return s&&!m?s(n,c.encoder):n;y=""}if("string"==typeof y||"number"==typeof y||"boolean"==typeof y||r.isBuffer(y))return s?[f(m?n:s(n,c.encoder))+"="+f(s(y,c.encoder))]:[f(n)+"="+f(String(y))];var h,g=[];if(void 0===y)return g;if(Array.isArray(u))h=u;else{var v=Object.keys(y);h=l?v.sort(l):v}for(var b=0;b0?_+x:""}},function(e,t,n){"use strict";var r=n(193),i=Object.prototype.hasOwnProperty,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:r.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},a=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/g,a=/(\[[^[\]]*])/.exec(r),c=a?r.slice(0,a.index):r,s=[];if(c){if(!n.plainObjects&&i.call(Object.prototype,c)&&!n.allowPrototypes)return;s.push(c)}for(var u=0;null!==(a=o.exec(r))&&u=0;--i){var o,a=e[i];if("[]"===a)o=(o=[]).concat(r);else{o=n.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,s=parseInt(c,10);!isNaN(s)&&a!==c&&String(s)===c&&s>=0&&n.parseArrays&&s<=n.arrayLimit?(o=[])[s]=r:o[c]=r}r=o}return r}(s,t,n)}};e.exports=function(e,t){var n=t?r.assign({},t):{};if(null!==n.decoder&&void 0!==n.decoder&&"function"!=typeof n.decoder)throw new TypeError("Decoder has to be a function.");if(n.ignoreQueryPrefix=!0===n.ignoreQueryPrefix,n.delimiter="string"==typeof n.delimiter||r.isRegExp(n.delimiter)?n.delimiter:o.delimiter,n.depth="number"==typeof n.depth?n.depth:o.depth,n.arrayLimit="number"==typeof n.arrayLimit?n.arrayLimit:o.arrayLimit,n.parseArrays=!1!==n.parseArrays,n.decoder="function"==typeof n.decoder?n.decoder:o.decoder,n.allowDots="boolean"==typeof n.allowDots?n.allowDots:o.allowDots,n.plainObjects="boolean"==typeof n.plainObjects?n.plainObjects:o.plainObjects,n.allowPrototypes="boolean"==typeof n.allowPrototypes?n.allowPrototypes:o.allowPrototypes,n.parameterLimit="number"==typeof n.parameterLimit?n.parameterLimit:o.parameterLimit,n.strictNullHandling="boolean"==typeof n.strictNullHandling?n.strictNullHandling:o.strictNullHandling,""===e||null==e)return n.plainObjects?Object.create(null):{};for(var c="string"==typeof e?function(e,t){for(var n={},r=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,a=t.parameterLimit===1/0?void 0:t.parameterLimit,c=r.split(t.delimiter,a),s=0;s0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(this.configured=!0))}return e.$inject=["$scope","$injector","$q"],e.prototype.moveToFolder=function(e,t){return o(this,void 0,void 0,(function(){var n;return a(this,(function(r){switch(r.label){case 0:return[4,c.get("/api/dashboards/uid/".concat(e))];case 1:return n=r.sent().dashboard,[4,c.post("/api/dashboards/db/",{dashboard:n,folderId:t,message:"",overwrite:!0})];case 2:return r.sent(),[2]}}))}))},e.prototype.reviseDashboard=function(){var e;return o(this,void 0,void 0,(function(){var t,n,r,i,o,s=this;return a(this,(function(a){switch(a.label){case 0:return[4,l()];case 1:return t=a.sent(),n=t[0],r=t[1],[4,c.get("/api/plugins/".concat(null===(e=this.appModel)||void 0===e?void 0:e.id,"/dashboards"))];case 2:return i=a.sent(),o=i.map((function(e){var t=e.importedUrl,i=e.path,o=t.split("/")[2];return o?s.moveToFolder(o,i.endsWith("_en_dashboard.json")?r:n):Promise.resolve()})),[2,Promise.all(o)]}}))}))},e.prototype.postUpdate=function(){var e;return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return(null===(e=this.appModel)||void 0===e?void 0:e.enabled)?[4,this.reviseDashboard()]:[2];case 1:return t.sent(),[2,this.$q.resolve(!0)]}}))}))},e.templateUrl="components/config.html",e}()}])})); //# sourceMappingURL=config.js.map \ No newline at end of file diff --git a/dist/components/config.js.map b/dist/components/config.js.map index f49cc12..8254fb3 100644 --- a/dist/components/config.js.map +++ b/dist/components/config.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://TencentCloudMonitorGrafanaApp/webpack/bootstrap","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/formats.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/index.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/parse.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/stringify.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/utils.js","webpack://TencentCloudMonitorGrafanaApp/./components/config.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/constants.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/datasourceStorage.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/indexedDB.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/sign.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/signV2.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/utils.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor sync ^.*$","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor sync ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/MonitorDatasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/query_filter.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cos/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cos/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/index.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/en_US.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/index.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/zh_CN.ts","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/data\"","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/runtime\"","webpack://TencentCloudMonitorGrafanaApp/external \"app/core/core_module\"","webpack://TencentCloudMonitorGrafanaApp/external \"lodash\"","webpack://TencentCloudMonitorGrafanaApp/external \"moment\""],"names":[],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;;ACjBa;;AAEb,gBAAgB,mBAAO,CAAC,wDAAa;AACrC,YAAY,mBAAO,CAAC,gDAAS;AAC7B,cAAc,mBAAO,CAAC,oDAAW;;AAEjC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACVa;;AAEb,YAAY,mBAAO,CAAC,gDAAS;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wCAAwC;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;AC7Ka;;AAEb,YAAY,mBAAO,CAAC,gDAAS;AAC7B,cAAc,mBAAO,CAAC,oDAAW;;AAEjC;AACA,yCAAyC;AACzC;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA,KAAK;AACL,qCAAqC;AACrC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wCAAwC;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACjNa;;AAEb;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,OAAO,WAAW,aAAa;AACjD;;AAEA,mBAAmB,kBAAkB;AACrC;AACA;;AAEA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnNA;AACA;AAEA,IAAM,UAAU,GAAG,sEAAa,EAAhC;AAEA,IAAM,QAAQ,GAAG;AACf,KAAG,EAAE,uBADU;AAEf,OAAK,EAAE,OAFQ;AAGf,UAAQ,EAAE;AAHK,CAAjB;AAMA,IAAM,WAAW,GAAG;AAClB,KAAG,EAAE,+BADa;AAElB,OAAK,EAAE,uBAFW;AAGlB,UAAQ,EAAE;AAHQ,CAApB;AAMA;;;AAGG;;AACH,SAAe,WAAf,GAA0B;;;;;;;;AACxB,cAAI,QAAQ,CAAC,QAAT,IAAqB,WAAW,CAAC,QAArC,EAA+C;AAC7C;AAAA;AAAA,cAAO,CAAC,QAAQ,CAAC,QAAV,EAAoB,WAAW,CAAC,QAAhC,CAAP;AACD;;AACsB;AAAA;AAAA,YAAM,UAAU,CAAC,GAAX,CAAe,cAAf,CAAN;;;AAAjB,iBAAO,GAAU,SAAjB;AACF,kBAAQ,GAAG,aAAO,CAAC,IAAR,CAAa,UAAC,IAAD,EAAK;AAAK,uBAAI,CAAC,GAAL,KAAa,QAAQ,CAArB;AAAyB,WAAhD,OAAiD,IAAjD,IAAiD,aAAjD,GAAiD,MAAjD,GAAiD,GAAE,EAA9D;AACA,oBAAU,GAAG,aAAO,CAAC,IAAR,CAAa,UAAC,IAAD,EAAK;AAAK,uBAAI,CAAC,GAAL,KAAa,WAAW,CAAxB;AAA4B,WAAnD,OAAoD,IAApD,IAAoD,aAApD,GAAoD,MAApD,GAAoD,GAAE,EAAnE;eACA,CAAC,Q,EAAD;AAAA;AAAA;AACa;AAAA;AAAA,YAAM,UAAU,CAAC,IAAX,CAAgB,cAAhB,EAAgC,QAAhC,CAAN;;;AAAT,gBAAM,GAAG,SAAT;AACN,kBAAQ,GAAG,OAAM,SAAN,UAAM,WAAN,GAAM,MAAN,SAAM,CAAE,EAAR,KAAc,CAAzB;;;;eAEE,CAAC,U,EAAD;AAAA;AAAA;AACe;AAAA;AAAA,YAAM,UAAU,CAAC,IAAX,CAAgB,cAAhB,EAAgC,WAAhC,CAAN;;;AAAX,kBAAQ,GAAG,SAAX;AACN,oBAAU,GAAG,SAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE,EAAV,KAAgB,CAA7B;;;;AAEF,kBAAQ,CAAC,QAAT,GAAoB,QAApB;AACA,qBAAW,CAAC,QAAZ,GAAuB,UAAvB;AACA;AAAA;AAAA,YAAO,CAAC,QAAD,EAAW,UAAX,CAAP;;;;AACD;AAED;;AAEG;;;AACH,SAAS,kBAAT,GAA2B;AAA3B;;AACE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAX,CAAgB,IAAhB,CAAqB,sEAAa,EAAlC,CAAhB;AACA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAP,CAAgB,QAAhB,CAAyB,KAAzB,CAA+B,GAA/B,EAAoC,MAApC,CAA2C,UAAC,IAAD,EAAK;AAAK;AAAI,GAAzD,EAA2D,CAA3D,CAAjB;;AACA,YAAU,CAAC,IAAX,GAAkB,UAAO,GAAP,EAAY,IAAZ,EAAgB;AAAA;;;;;;gBAE5B,KAAG,KAAK,wBAAR,IAAoC,IAAI,CAAC,QAAL,KAAkB,QAAtD,C,EAAA;AAAA;AAAA;AAC6B;AAAA;AAAA,cAAM,WAAW,EAAjB;;;AAAzB,iBAAyB,SAAzB,EAAC,QAAQ,QAAT,EAAW,UAAU,QAArB;AACN,gBAAI,CAAC,QAAL,GAAgB,IAAI,CAAC,IAAL,CAAU,QAAV,CAAmB,oBAAnB,IAA2C,UAA3C,GAAwD,QAAxE;;;;AAEF;AAAA;AAAA,cAAO,OAAO,CAAC,GAAD,EAAM,IAAN,CAAd;;;KANgC;AAOjC,GAPD;AAQD;;AAED,kBAAkB;;AAElB;AAAA;AAAA;AAAA;;AAOE;AACA,gCAAY,MAAZ,EAAyB,SAAzB,EAAyC,EAAzC,EAAgD;;;AAC9C,SAAK,WAAL,CAAiB,iBAAjB,CAAmC,KAAK,UAAL,CAAgB,IAAhB,CAAqB,IAArB,CAAnC;AACA,SAAK,EAAL,GAAU,EAAV,CAF8C,CAG9C;;AACA,QAAI,CAAC,KAAK,QAAV,EAAoB;AAClB;AACA,WAAK,QAAL,GAAgB,EAAhB;AACD,KAP6C,CAS9C;;;AACA,QAAM,QAAQ,GAAG,KAAK,QAAtB;;AACA,QAAI,CAAC,QAAQ,CAAC,QAAd,EAAwB;AACtB,cAAQ,CAAC,QAAT,GAAoB,EAApB;AACD;;AACD,SAAK,UAAL,GAAkB,KAAlB;;AACA,QAAI,WAAK,QAAL,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,OAAnB,EAA4B;AAC1B,UAAM,WAAW,GAAG,MAAM,CAAC,MAAP,CAAc,uDAAM,CAAC,WAArB,EAAkC,MAAlC,CAAyC,UAAC,EAAD,EAAG;AAC9D,eAAO,EAAE,CAAC,IAAH,KAAY,2EAAnB;AACD,OAFmB,CAApB;;AAGA,UAAI,WAAW,CAAC,MAAZ,GAAqB,CAAzB,EAA4B;AAC1B,aAAK,UAAL,GAAkB,IAAlB;AACD;AACF;AACF;;AAEK,gDAAN,UAAmB,YAAnB,EAAyC,QAAzC,EAAyD;;;;;;AAEjC;AAAA;AAAA,cAAM,UAAU,CAAC,GAAX,CAAe,8BAAuB,YAAvB,CAAf,CAAN;;;AAAd,qBAAS,GAAK,UAAL,SAAT,C,CACR;;AACA;AAAA;AAAA,cAAM,UAAU,CAAC,IAAX,CAAgB,qBAAhB,EAAuC;AAC3C,uBAAS,WADkC;AAE3C,sBAAQ,UAFmC;AAG3C,qBAAO,EAAE,EAHkC;AAI3C,uBAAS,EAAE;AAJgC,aAAvC,CAAN;;;AADA;AACA;;;;;;;;AAMD,GAVK;;AAYA,mDAAN;;;;;;;;;;;AAEiC;AAAA;AAAA,cAAM,WAAW,EAAjB;;;AAAzB,iBAAyB,SAAzB,EAAC,QAAQ,QAAT,EAAW,UAAU,QAArB;AAEK;AAAA;AAAA,cAAM,UAAU,CAAC,GAAX,CAAe,uBAAgB,WAAK,QAAL,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,EAA/B,EAAiC,aAAjC,CAAf,CAAN;;;AAAL,cAAE,GAAG,SAAL;AAGA,kBAAM,GAAG,EAAE,CAAC,GAAH,CAAO,UAAC,IAAD,EAAK;AACjB,6BAAW,GAAW,IAAI,CAAf,WAAX;AAAA,kBAAa,IAAI,GAAK,IAAI,CAAT,IAAjB;AACR,kBAAM,GAAG,GAAG,WAAW,CAAC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAZ;;AACA,kBAAI,GAAJ,EAAS;AACP,uBAAO,KAAI,CAAC,YAAL,CAAkB,GAAlB,EAAuB,IAAI,CAAC,QAAL,CAAc,oBAAd,IAAsC,UAAtC,GAAmD,QAA1E,CAAP;AACD,eAFD,MAEO;AACL,uBAAO,OAAO,CAAC,OAAR,EAAP;AACD;AACF,aARc,CAAT;AAUN;AAAA;AAAA,cAAO,OAAO,CAAC,GAAR,CAAY,MAAZ,CAAP;;;;AACD,GAlBK;;AAoBA,8CAAN;;;;;;;AACE,gBAAI,EAAC,WAAK,QAAL,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,OAAhB,CAAJ,EAA6B;AAC3B;AAAA;AAAA;AACD,a,CACD;;;AACA;AAAA;AAAA,cAAM,KAAK,eAAL,EAAN;;;AADA;AACA;;AACA;AAAA;AAAA,cAAO,KAAK,EAAL,CAAQ,OAAR,CAAgB,IAAhB,CAAP;;;;AACD,GAPK;;AAhEC,qCAAc,wBAAd;AAwET;AAAC,CAzED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACO,IAAM,cAAc,GAAG,yCAAW,CAAC,EAAnC,C,CAEP;;AACA,IAAM,cAAc,GAAG,CAAC,iBAAD,EAAoB,iBAApB,CAAvB;AACA,IAAM,iBAAiB,GAAG;AACxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GADmB;AAOxB;AACA,SAAO,EAAE;AACP,WAAO,EAAE,SADF;AAEP,WAAO,EAAE,YAFF;AAGP,QAAI,EAAE,UAHC;AAIP,QAAI,EAAE;AAJC,GARe;AAcxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAfmB;AAqBxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAtBmB;AA4BxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA7BmB;AAmCxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,EAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GApCmB;AA0CxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA3CmB;AAiDxB;AACA,SAAO,EAAE;AACP,WAAO,EAAE,SADF;AAEP,WAAO,EAAE,YAFF;AAGP,QAAI,EAAE,UAHC;AAIP,QAAI,EAAE;AAJC,GAlDe;AAwDxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAzDmB;AA+DxB;AACA,UAAQ,EAAE;AACR,WAAO,EAAE,UADD;AAER,WAAO,EAAE,YAFD;AAGR,QAAI,EAAE,WAHE;AAIR,QAAI,EAAE;AAJE,GAhEc;AAsExB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAvEmB;AA6ExB;AACA,OAAK,EAAE;AACL,WAAO,EAAE,OADJ;AAEL,WAAO,EAAE,YAFJ;AAGL,QAAI,EAAE,QAHD;AAIL,QAAI,EAAE;AAJD,GA9EiB;AAoFxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GApFmB;AA0FxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA1FmB;AAgGxB,QAAM,EAAE;AACN,WAAO,EAAE,QADH;AAEN,WAAO,EAAE,YAFH;AAGN,QAAI,EAAE,SAHA;AAIN,QAAI,EAAE;AAJA,GAhGgB;AAsGxB;AACA,IAAE,EAAE;AACF,WAAO,EAAE,IADP;AAEF,WAAO,EAAE,YAFP;AAGF,QAAI,EAAE,KAHJ;AAIF,QAAI,EAAE;AAJJ,GAvGoB;AA6GxB;AACA,SAAO,EAAE;AACP,WAAO,EAAE,SADF;AAEP,WAAO,EAAE,YAFF;AAGP,QAAI,EAAE,UAHC;AAIP,QAAI,EAAE;AAJC,GA9Ge;AAoHxB;AACA,WAAS,EAAE;AACT,WAAO,EAAE,WADA;AAET,WAAO,EAAE,YAFA;AAGT,QAAI,EAAE,YAHG;AAIT,QAAI,EAAE;AAJG,GArHa;AA2HxB;AACA,IAAE,EAAE;AACF,WAAO,EAAE,IADP;AAEF,WAAO,EAAE,YAFP;AAGF,QAAI,EAAE,KAHJ;AAIF,QAAI,EAAE;AAJJ,GA5HoB;AAkIxB,OAAK,EAAE;AACL,WAAO,EAAE,OADJ;AAEL,WAAO,EAAE,YAFJ;AAGL,QAAI,EAAE,QAHD;AAIL,QAAI,EAAE;AAJD,GAlIiB;AAwIxB,OAAK,EAAE;AACL,WAAO,EAAE,OADJ;AAEL,WAAO,EAAE,YAFJ;AAGL,QAAI,EAAE,QAHD;AAIL,QAAI,EAAE;AAJD,GAxIiB;AA8IxB,MAAI,EAAE;AACJ,WAAO,EAAE,MADL;AAEJ,WAAO,EAAE,YAFL;AAGJ,QAAI,EAAE,OAHF;AAIJ,QAAI,EAAE;AAJF,GA9IkB;AAoJxB;AACA,IAAE,EAAE;AACF,WAAO,EAAE,IADP;AAEF,WAAO,EAAE,YAFP;AAGF,QAAI,EAAE,KAHJ;AAIF,QAAI,EAAE;AAJJ,GArJoB;AA2JxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA5JmB;AAkKxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAnKmB;AAyKxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAzKmB;AA+KxB;AACA,WAAS,EAAE;AACT,WAAO,EAAE,WADA;AAET,WAAO,EAAE,YAFA;AAGT,QAAI,EAAE,YAHG;AAIT,QAAI,EAAE;AAJG,GAhLa;AAsLxB;AACA,MAAI,EAAE;AACJ,WAAO,EAAE,MADL;AAEJ,WAAO,EAAE,YAFL;AAGJ,QAAI,EAAE,OAHF;AAIJ,QAAI,EAAE;AAJF,GAvLkB;AA6LxB;AACA,YAAU,EAAE;AACV,WAAO,EAAE,YADC;AAEV,WAAO,EAAE,YAFC;AAGV,QAAI,EAAE,aAHI;AAIV,QAAI,EAAE;AAJI,GA9LY;AAoMxB,MAAI,EAAE;AACJ,WAAO,EAAE,MADL;AAEJ,WAAO,EAAE,YAFL;AAGJ,QAAI,EAAE,OAHF;AAIJ,QAAI,EAAE;AAJF,GApMkB;AA0MxB,eAAa,EAAE;AACb,WAAO,EAAE,MADI;AAEb,WAAO,EAAE,YAFI;AAGb,QAAI,EAAE,OAHO;AAIb,QAAI,EAAE;AAJO,GA1MS;AAgNxB,eAAa,EAAE;AACb,WAAO,EAAE,MADI;AAEb,WAAO,EAAE,YAFI;AAGb,QAAI,EAAE,OAHO;AAIb,QAAI,EAAE;AAJO,GAhNS;AAsNxB,MAAI,EAAE;AACJ,WAAO,EAAE,MADL;AAEJ,WAAO,EAAE,YAFL;AAGJ,QAAI,EAAE,OAHF;AAIJ,QAAI,EAAE;AAJF,GAtNkB;AA4NxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA5NmB;AAkOxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAlOmB;AAwOxB,YAAU,EAAE;AACV,WAAO,EAAE,YADC;AAEV,WAAO,EAAE,YAFC;AAGV,QAAI,EAAE,aAHI;AAIV,QAAI,EAAE;AAJI,GAxOY;AA8OxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA9OmB;AAoPxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GApPmB;AA0PxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA1PmB;AAgQxB,MAAI,EAAE;AACJ,WAAO,EAAE,MADL;AAEJ,WAAO,EAAE,YAFL;AAGJ,QAAI,EAAE,OAHF;AAIJ,QAAI,EAAE;AAJF,GAhQkB;AAsQxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAtQmB;AA4QxB,QAAM,EAAE;AACN,WAAO,EAAE,QADH;AAEN,WAAO,EAAE,YAFH;AAGN,QAAI,EAAE,SAHA;AAIN,QAAI,EAAE;AAJA,GA5QgB;AAkRxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAlRmB,CAwRxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AArSwB,CAA1B;AAwSA,IAAM,WAAW,GAAG;AAClB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GADa;AAWlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GAXa;AAqBlB,QAAM,EAAE;AACN,uBAAmB;AACjB,UAAI,EAAE,sBADW;AAEjB,UAAI,EAAE;AAFW,KADb;AAKN,uBAAmB;AACjB,UAAI,EAAE,sBADW;AAEjB,UAAI,EAAE;AAFW;AALb,GArBU;AA+BlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GA/Ba;AAyClB,SAAO,EAAE;AACP,uBAAmB;AACjB,UAAI,EAAE,uBADW;AAEjB,UAAI,EAAE;AAFW,KADZ;AAKP,uBAAmB;AACjB,UAAI,EAAE,uBADW;AAEjB,UAAI,EAAE;AAFW;AALZ,GAzCS;AAmDlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GAnDa;AA6DlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GA7Da;AAuElB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GAvEa;AAiFlB,SAAO,EAAE;AACP,uBAAmB;AACjB,UAAI,EAAE,uBADW;AAEjB,UAAI,EAAE;AAFW,KADZ;AAKP,uBAAmB;AACjB,UAAI,EAAE,uBADW;AAEjB,UAAI,EAAE;AAFW;AALZ,GAjFS;AA2FlB,UAAQ,EAAE;AACR,uBAAmB;AACjB,UAAI,EAAE,wBADW;AAEjB,UAAI,EAAE;AAFW,KADX;AAKR,uBAAmB;AACjB,UAAI,EAAE,wBADW;AAEjB,UAAI,EAAE;AAFW;AALX,GA3FQ;AAqGlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GArGa;AA+GlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GA/Ga;AAyHlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB;AAzHa,CAApB,C,CAqIA;;AACM,SAAU,iBAAV,CAA4B,MAA5B,EAAoC,OAApC,EAA2C;AAC/C,+BAAa,iBAAiB,CAAC,OAAD,CAAjB,IAA8B,EAA3C,GAAmD,cAAc,CAAC,MAAD,EAAS,OAAT,CAAjE;AACD,C,CAED;;AACA,SAAS,cAAT,CAAwB,MAAxB,EAAgC,OAAhC,EAAuC;AACrC,MAAI,6CAAC,CAAC,OAAF,CAAU,cAAV,EAA0B,MAA1B,MAAsC,CAAC,CAA3C,EAA8C;AAC5C,WAAO,EAAP;AACD;;AACD,SACE,6CAAC,CAAC,IAAF,CACE,6CAAC,CAAC,IAAF,CAAO,WAAP,EAAoB,UAAC,EAAD,EAAK,GAAL,EAAQ;AAAK,cAAG,KAAH;AAAe,GAAhD,CADF,EAEE,UAAC,EAAD,EAAK,GAAL,EAAQ;AAAK,cAAG,KAAH;AAAc,GAF7B,KAGK,EAJP;AAMD,C,CAED;;;AACO,IAAM,cAAc,GAAG,eAAvB;AAED,SAAU,uBAAV,CAAkC,SAAlC,EAA2C;AAC/C,SAAO,6CAAC,CAAC,GAAF,CACL,6CAAC,CAAC,IAAF,CAAO,oDAAP,EAAiB,UAAC,OAAD,EAAQ;AAAK,kBAAO,CAAC,SAAR;AAA+B,GAA7D,CADK,EAEL,SAFK,CAAP;AAID,C,CACD;;AACM,SAAU,qBAAV,CAAgC,SAAhC,EAAyC;AAC7C,SAAO,6CAAC,CAAC,GAAF,CACL,6CAAC,CAAC,IAAF,CAAO,oDAAP,EAAiB,UAAC,OAAD,EAAQ;AAAK,kBAAO,CAAC,SAAR,KAAsB,SAAtB,IAAmC,OAAO,CAAC,KAAR,KAAnC;AAA8D,GAA5F,CADK,EAEL,OAFK,CAAP;AAID,C,CACD;;AACM,SAAU,gBAAV,CAA2B,KAA3B,EAAqC;AAAV;AAAA;AAAU;;AACzC,MAAI,CAAC,KAAL,EAAY;AACV,WAAO,EAAP;AACD;;AACD,MAAM,MAAM,GAAG,EAAf;;AACA,MAAM,OAAO,GAAG,6CAAC,CAAC,KAAF,CAAQ,KAAR,EAAe,GAAf,CAAhB;;AACA,+CAAC,CAAC,OAAF,CAAU,OAAV,EAAmB,UAAC,IAAD,EAAK;AACtB,QAAM,GAAG,GAAG,6CAAC,CAAC,KAAF,CAAQ,IAAR,EAAc,GAAd,CAAZ;;AACA,QAAI,6CAAC,CAAC,IAAF,CAAO,6CAAC,CAAC,GAAF,CAAM,GAAN,EAAW,GAAX,EAAgB,EAAhB,CAAP,CAAJ,EAAiC;AAC/B,UAAI,GAAG,GAAG,6CAAC,CAAC,IAAF,CAAO,6CAAC,CAAC,GAAF,CAAM,GAAN,EAAW,GAAX,EAAgB,EAAhB,CAAP,CAAV;;AACA,UAAI;AACF,WAAG,GAAG,IAAI,CAAC,KAAL,CAAW,GAAX,CAAN;AACD,OAFD,CAEE,OAAO,CAAP,EAAU,CACV;AACD;;AACD,YAAM,CAAC,6CAAC,CAAC,OAAF,CAAU,6CAAC,CAAC,IAAF,CAAO,6CAAC,CAAC,GAAF,CAAM,GAAN,EAAW,GAAX,EAAgB,EAAhB,CAAP,CAAV,CAAD,CAAN,GAAiD,GAAjD;AACD;AACF,GAXD;;AAYA,SAAO,MAAP;AACD,C,CAED;;AACM,SAAU,gBAAV,CAA2B,KAA3B,EAAqC;AAAV;AAAA;AAAU;;AACzC,MAAI,CAAC,KAAL,EAAY;AACV,WAAO,EAAP;AACD;;AACD,OAAK,GAAG,KAAK,CAAC,OAAN,CAAc,IAAd,EAAoB,GAApB,CAAR;AACA,OAAK,GAAG,KAAK,CAAC,OAAN,CAAc,IAAd,EAAoB,GAApB,CAAR;AACA,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAD,CAApC;AACA,MAAM,MAAM,GAAU,EAAtB;;AACA,+CAAC,CAAC,OAAF,CAAU,WAAV,EAAuB,UAAC,KAAD,EAAQ,GAAR,EAAW;AAChC,QAAI,GAAG,KAAK,aAAZ,EAA2B;AACzB,UAAM,SAAS,GAAG,6CAAC,CAAC,KAAF,CAAQ,KAAR,EAAe,GAAf,CAAlB;;AACA,mDAAC,CAAC,OAAF,CAAU,SAAV,EAAqB,UAAC,IAAD,EAAK;AACxB,YAAM,IAAI,GAAG,6CAAC,CAAC,KAAF,CAAQ,IAAR,EAAc,GAAd,CAAb;;AACA,YAAI,IAAI,CAAC,MAAL,KAAgB,CAApB,EAAuB;AACrB,gBAAM,CAAC,IAAP,CAAY;AAAE,gBAAI,EAAE,cAAO,IAAI,CAAC,CAAD,CAAX,CAAR;AAA0B,kBAAM,EAAE,IAAI,CAAC,KAAL,CAAW,CAAX;AAAlC,WAAZ;AACD;AACF,OALD;AAMD,KARD,MAQO;AACL,YAAM,CAAC,IAAP,CAAY;AAAE,YAAI,EAAE,GAAR;AAAa,cAAM,EAAE,6CAAC,CAAC,KAAF,CAAQ,KAAR,EAAe,GAAf;AAArB,OAAZ;AACD;AACF,GAZD;;AAaA,SAAO,MAAP;AACD,C,CAED;;AACA,SAAS,mBAAT,CAA6B,OAA7B,EAA4C;AAC1C,SAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAZ,CAAhB,CAD0C,CAE1C;;AACA,MAAI,OAAO,GAAG,KAAd;AACA,MAAM,UAAU,GAAG,OAAO,CAAC,KAAR,CAAc,cAAd,CAAnB;;AACA,MAAI,UAAJ,EAAgB;AACd,WAAO,GAAG,IAAV;AACA,WAAO,GAAG,YAAO,UAAU,CAAC,CAAD,CAAjB,EAAoB,QAApB,CAAV;AACD,GARyC,CAS1C;;;AACA,MAAM,UAAU,GAAG,OAAO,CAAC,KAAR,CAAc,wBAAd,CAAnB;;AACA,MAAI,UAAJ,EAAgB;AACd,WAAO,GAAG,IAAV;AACA,WAAO,GAAG,YAAO,UAAU,CAAC,CAAD,CAAjB,EAAoB,QAApB,CAAV;AACD;;AACD,SAAO;AAAE,WAAO,SAAT;AAAW,WAAO;AAAlB,GAAP;AACD;;AAEK,SAAU,eAAV,CAA0B,WAA1B,EAAuC,UAAvC,EAAmD,KAAnD,EAA0D,QAA1D,EAA0E;AAAhB;AAAA;AAAgB;;AACxE,WAAuB,mBAAmB,CAAC,KAAD,CAA1C;AAAA,MAAE,OAAO,aAAT;AAAA,MAAW,OAAO,aAAlB;;AACN,MAAI,UAAU,GAAG,WAAW,CAAC,OAAZ,CAAoB,OAApB,EAA6B,UAA7B,CAAjB;;AACA,MAAI,OAAJ,EAAa;AACX,QAAI;AACF,gBAAU,GAAG,IAAI,CAAC,KAAL,CAAW,UAAX,CAAb;AACD,KAFD,CAEE,OAAO,KAAP,EAAc,CAAE;AACnB;;AACD,MAAI,CAAC,QAAD,IAAa,6CAAC,CAAC,OAAF,CAAU,UAAV,CAAjB,EAAwC;AACtC,cAAU,GAAG,6CAAC,CAAC,GAAF,CAAM,UAAN,EAAkB,GAAlB,EAAuB,EAAvB,CAAb;AACD;;AACD,SAAO,UAAP;AACD,C,CAED;;AACM,SAAU,aAAV,CAAwB,GAAxB,EAA2B;AAC/B,MAAI,6CAAC,CAAC,OAAF,CAAU,GAAV,CAAJ,EAAoB;AAClB,WAAO,EAAP;AACD;;AACD,MAAM,UAAU,GAAU,EAA1B;;AACA,+CAAC,CAAC,OAAF,CAAU,GAAV,EAAe,UAAC,IAAD,EAAK;AAClB,QAAI,IAAI,CAAC,KAAL,KAAe,IAAf,IAAuB,IAAI,CAAC,KAAL,KAAe,SAAtC,IAAmD,IAAI,CAAC,KAAL,KAAe,EAAtE,EAA0E;AACxE,gBAAU,CAAC,IAAX,CAAgB;AAAE,YAAI,EAAE,IAAI,CAAC,IAAb;AAAmB,aAAK,EAAE,OAAO,IAAI,CAAC,KAAZ,KAAsB,QAAtB,GAAiC,IAAI,CAAC,KAAtC,GAA8C,UAAG,IAAI,CAAC,KAAR;AAAxE,OAAhB;AACD;AACF,GAJD;;AAKA,SAAO,UAAP;AACD,C,CAED;;AACM,SAAU,gBAAV,CAA2B,QAA3B,EAAqC,SAArC,EAA4D,SAA5D,EAAyE;AAApC;AAAA;AAAqB;;AAAE;AAAA;AAAa;;AAC7E,MAAM,YAAY,GAAG,6CAAC,CAAC,SAAF,CAAY,SAAZ,CAArB;;AAEA,MAAM,UAAU,GAAG,6CAAC,CAAC,GAAF,CAAM,QAAN,EAAgB,YAAhB,EAA8B,EAA9B,CAAnB;;AACA,SAAO,6CAAC,CAAC,GAAF,CAAM,UAAN,EAAkB,UAAC,SAAD,EAAU;AACjC,QAAI,kBAAkB,GAAG,6CAAC,CAAC,GAAF,CAAM,SAAN,EAAiB,qBAAjB,CAAzB;;AACA,SAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,YAAY,CAAC,MAAjC,EAAyC,CAAC,EAA1C,EAA8C;AAC5C,UAAI,eAAe,CAAC,YAAY,CAAC,CAAD,CAAb,EAAkB,6CAAC,CAAC,GAAF,CAAM,SAAN,EAAiB,YAAjB,EAA+B,EAA/B,CAAlB,CAAnB,EAA0E;AACxE,0BAAkB,GAAG,YAAY,CAAC,CAAD,CAAZ,CAAgB,mBAArC;AACA,oBAAY,CAAC,MAAb,CAAoB,CAApB,EAAuB,CAAvB;AACA;AACD;AACF;;AACD,WAAO;AACL,YAAM,EAAE,UAAG,QAAQ,CAAC,UAAZ,EAAsB,KAAtB,EAAsB,MAAtB,CAA4B,kBAA5B,CADH;AAEL,gBAAU,EAAE,cAAc,CAAC,SAAD,EAAY,SAAZ;AAFrB,KAAP;AAID,GAbM,CAAP;AAcD,C,CAED;;AACA,SAAS,cAAT,CAAwB,SAAxB,EAAmC,SAAnC,EAAgD;AAAb;AAAA;AAAa;;AAC9C,MAAM,UAAU,GAAG,6CAAC,CAAC,GAAF,CAAM,SAAN,EAAiB,YAAjB,EAA+B,EAA/B,CAAnB;;AACA,MAAM,MAAM,GAAG,6CAAC,CAAC,GAAF,CAAM,SAAN,EAAiB,QAAjB,EAA2B,EAA3B,CAAf;;AACA,MAAM,MAAM,GAAG,UAAU,CAAC,GAAX,CAAe,UAAC,SAAD,EAAY,KAAZ,EAAiB;AAC7C,WAAO,CAAC,MAAM,CAAC,KAAD,CAAP,EAAgB,SAAS,GAAG,IAAZ,GAAmB,SAAnC,CAAP;AACD,GAFc,CAAf;AAIA,SAAO,MAAP;AACD,C,CAED;;;AACA,SAAS,eAAT,CAAyB,QAAzB,EAAmC,UAAnC,EAA6C;AAC3C,MAAI,KAAK,GAAG,IAAZ,CAD2C,CAE3C;;AACA,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,UAAU,CAAC,MAA/B,EAAuC,CAAC,EAAxC,EAA4C;AAC1C,QAAI,6CAAC,CAAC,GAAF,CAAM,QAAN,EAAgB,UAAU,CAAC,CAAD,CAAV,CAAc,IAA9B,EAAoC,EAApC,EAAwC,QAAxC,OAAuD,UAAU,CAAC,CAAD,CAAV,CAAc,KAAd,CAAoB,QAApB,EAA3D,EAA2F;AACzF,WAAK,GAAG,KAAR;AACA;AACD;AACF;;AACD,SAAO,KAAP;AACD;AAED;;;;AAIG;;;AACG,SAAU,UAAV,CAAqB,KAArB,EAA0B;AAC9B,MAAI,KAAK,KAAK,KAAK,CAAC,KAAN,CAAY,cAAZ,KAA+B,KAAK,CAAC,KAAN,CAAY,wBAAZ,CAApC,CAAT,EAAqF;AACnF,WAAO,IAAP;AACD;;AACD,SAAO,KAAP;AACD;AAED;;;;;;;AAOG;;AACG,SAAgB,gBAAhB,CAAiC,OAAjC,EAA0C,OAA1C,EAAmD,OAAnD,EAAsE,QAAtE,EAAgF,YAAhF,EAA8F,UAA9F,EAAwG;AAArD;AAAA;AAAiB;;;;;;;;AAClE,oBAAU;AACd,oBAAQ,UADM;AAEd,mBAAO,EAAE,OAAO,CAAC,IAAR,IAAgB;AAFX,aAGX,OAHW,GAIV,6CAAC,CAAC,IAAF,CAAO,iBAAiB,CAAC,OAAO,CAAC,MAAR,IAAkB,EAAnB,EAAuB,OAAvB,CAAxB,EAAyD,CAAC,SAAD,EAAY,MAAZ,EAAoB,SAApB,CAAzD,KAA4F,EAJlF,GAIqF;AACnG,sBAAU,YADyF;AAEnG,wBAAY,cAFuF;AAGnG,kBAAM,EAAE;AAH2F,WAJrF,CAAV;AASA,cAAI,GAAG,IAAI,6CAAJ,CAAS,UAAT,CAAP;AACgC;AAAA;AAAA,YAAM,IAAI,CAAC,SAAL,EAAN;;;AAAhC,eAAgC,SAAhC,EAAE,QAAQ,cAAV,EAAe,YAAY,cAA3B,YAA2B,CAA3B,C,CACN;AACA;;AACA,iBAAO,CAAC,OAAR,GAAkB,MAAM,CAAC,MAAP,CAAc,OAAO,CAAC,OAAR,IAAmB,EAAjC,EAAmC,aAAO,YAAP,CAAnC,EAA0D;AAAE,6BAAiB,2DAAW;AAA9B,WAA1D,CAAlB;AACA,iBAAO,CAAC,MAAR,GAAiB,MAAjB;;AACA,cAAI,QAAJ,EAAc;AACZ,mBAAO,CAAC,GAAR,IAAe,WAAf;AACD;;AACD;AAAA;AAAA,YAAO,OAAP;;;;AACD;AAED;;;;;;;AAOG;;AACG,SAAgB,kBAAhB,CACJ,OADI,EAEJ,OAFI,EAGJ,OAHI,EAIJ,QAJI,EAKJ,YALI,EAMJ,UANI,EAMM;AALV;AAAA;AAAiB;;AAEjB;AAAA;AAAiB;;;;;;;;AAKX,cAAI,GAAG,OAAO,CAAC,IAAR,IAAgB,EAAvB;AACA,oBAAU;AACd,oBAAQ,UADM;AAEd,gBAAI;AAFU,aAGX,OAHW,GAIV,6CAAC,CAAC,IAAF,CAAO,iBAAiB,CAAC,OAAO,CAAC,MAAR,IAAkB,EAAnB,EAAuB,OAAvB,CAAxB,EAAyD,CAAC,MAAD,EAAS,SAAT,CAAzD,KAAiF,EAJvE,GAI0E;AACxF,sBAAU,YAD8E;AAExF,wBAAY;AAF4E,WAJ1E,CAAV;AAQN,iBAAO,CAAC,MAAR,GAAiB,MAAjB;AACM,cAAI,GAAG,IAAI,+CAAJ,CAAW,UAAX,CAAP;AACN,iBAAO,CAAC,OAAR,GAAkB,MAAM,CAAC,MAAP,CAAc,OAAO,CAAC,OAAR,IAAmB,EAAjC,EAAqC;AAAE,4BAAgB;AAAlB,WAArC,CAAlB;AAC8C;AAAA;AAAA,YAAM,IAAI,CAAC,mBAAL,EAAN;;;AAAxC,eAAwC,SAAxC,EAAE,WAAW,iBAAb,EAAe,IAAI,UAAnB,EAAqB,IAAI,UAAzB,EAA2B,QAAQ,cAAnC;AACN,iBAAO,CAAC,IAAR,GAAe,yCAAE,CAAC,SAAH,CAAY,+BACtB,OAAO,CAAC,IADc,GAEtB,WAFsB,GAGrB,IAAI,IAAI;AAAE,gBAAI,EAAE;AAAR,WAHa,CAAZ,CAAf;;AAKA,cAAI,QAAJ,EAAc;AACZ;AACA,mBAAO,CAAC,GAAR,CAAY,0BAAZ;AACD;;AACD,iBAAO,CAAC,GAAR,IAAe,IAAf;AACA;AAAA;AAAA,YAAO,OAAP;;;;AACD;AAEK,SAAU,WAAV,CAAsB,KAAtB,EAAiC,GAAjC,EAAwC;AAAlB;AAAA;AAAS;;AAAE;AAAA;AAAO;;AAC5C,MAAM,MAAM,GAAU,EAAtB;AACA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAL,CAAU,KAAK,GAAG,GAAlB,CAAZ;;AACA,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,GAApB,EAAyB,CAAC,EAA1B,EAA8B;AAC5B,UAAM,CAAC,IAAP,CAAY;AAAE,YAAM,EAAE,GAAG,GAAG;AAAhB,KAAZ;AACD;;AACD,SAAO,MAAP;AACD;AAEM,IAAM,UAAU,GAAG,CAAC,WAAD,EAAc,QAAd,EAAwB,OAAxB,EAAiC,WAAjC,EAA8C,aAA9C,EAA6D,SAA7D,EAAwE,OAAxE,CAAnB;AAED,SAAU,0BAAV,CAAqC,GAArC,EAAwC;AACpC,UAAI,GAAK,4EAAmB,CAAC,GAAD,CAAnB,CAAL,IAAJ;AACR,SAAO;AACL,iBAAa,EAAE,6CAAC,CAAC,GAAF,CAAM,IAAN,EAAY,iBAAZ,EAA+B,EAA/B;AADV,GAAP;AAGD;AAED;;AACO,IAAM,0BAA0B,GAAG,EAAE,kBAAyB,YAA3B,CAAnC;AAEP;;AAEG;;AACH,IAAY,OAAZ;;AAAA,WAAY,OAAZ,EAAmB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACD,CARD,EAAY,OAAO,KAAP,OAAO,MAAnB,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACntBA;;AACA;AAAA;AAAA;AAKE;AAJA;AACA;AACA,kBAAS,WAAT;AACA,oBAAW,EAAX;AACgB;;AAChB,oDAAY,OAAZ,EAA6B,KAA7B,EAAuD;AACrD,WAAO,KAAK,UAAL,CAAgB,OAAhB,EAAyB,KAAK,MAA9B,EAAsC,KAAtC,EAA6C,IAA7C,CAAP;AACD,GAFD;;AAGM,0CAAN,UAAkB,OAAlB,EAAiC;;;AAC/B;AAAA;AAAA,UAAO,KAAK,UAAL,CAAgB,OAAhB,EAAyB,KAAK,MAA9B,CAAP;;;AACD,GAFK;;AAGN,wDAAgB,OAAhB,EAAiC,IAAjC,EAA+C,MAA/C,EAA0E;AACxE,WAAO,KAAK,UAAL,CAAgB,OAAhB,EAAyB,IAAzB,EAA+B,MAA/B,EAAuC,KAAvC,CAAP;AACD,GAFD;;AAGM,8CAAN,UAAsB,OAAtB,EAAuC,IAAvC,EAAmD;;;AACjD;AAAA;AAAA,UAAO,KAAK,UAAL,CAAgB,OAAhB,EAAyB,IAAzB,CAAP;;;AACD,GAFK;;AAGE,yCAAR,UAAmB,UAAnB,EAAuC,GAAvC,EAAoD,KAApD,EAAgF,OAAhF,EAA+F;;;AAAf;AAAA;AAAe,MAC7F;;;AACA,WAAO,kDAAS,CAAC,OAAV,EAAiB;AAEpB,aAAO,EAAE;AAFW,OAGpB,GAAC,GAAD,IAAO,KAHa,E,EAAjB,GAKL,OALK,CAAP;AAOD,GATO,CAlBV,CA4BE;;;AACc,yCAAd,UAAyB,OAAzB,EAA0C,GAA1C,EAAsD;;;;;;AACpC;AAAA;AAAA,cAAM,kDAAS,CAAC,OAAV,CAAkB,OAAlB,CAAN;;;AAAV,mBAAO,GAAG,SAAV,C,CACN;;AACA;AAAA;AAAA,cAAO,GAAG,GAAG,OAAO,SAAP,WAAO,WAAP,GAAO,MAAP,UAAO,CAAG,GAAH,CAAV,GAAoB,OAA9B;;;;AACD,GAJa;;AAKhB;AAAC,CAlCD;;AAmCe,mEAAI,eAAJ,EAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCbA;AACA;AACA;AACA;AACA;AACA;;;AAEA,IAAM,KAAK,GAAc;AACvB,MAAI,EAAE,qBADiB;AAEvB,KAAG,EAAE;AAFkB,CAAzB;;AAIA,IAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,OAAD,EAAe,IAAf,EAA4B;AAC5C,SAAO,IAAI,OAAJ,CAAiB,UAAC,OAAD,EAAU,MAAV,EAAgB;AACtC,WAAO,CAAC,SAAR,GAAoB,UAAC,KAAD,EAAe;AACjC,UAAM,SAAS,GAAQ;AACrB,aAAK,EAAE,KAAK,CAAC,MAAN,CAAa,MADC;AAErB,eAAO,EAAE,OAAO,CAAC,MAFI;AAGrB,WAAG,EAAE;AAHgB,OAAvB;AAKA,aAAO,CAAC,SAAS,CAAC,IAAI,IAAI,KAAT,CAAV,CAAP;AACD,KAPD;;AAQA,WAAO,CAAC,OAAR,GAAkB,UAAC,KAAD,EAAe;AAAK,mBAAM,CAAC,KAAK,CAAC,MAAN,CAAa,KAAb,IAAP,MAAM,CAAN;AAAoC,KAA1E;AACD,GAVM,CAAP;AAWD,CAZD,C,CAaA;;;AACA;AAAA;AAAA;AAIE,qBAAY,KAAZ,EAA0B;AAH1B,gBAAO,iBAAP;AACA,mBAAU,CAAV;AAGU,aAA0C,KAAK,CAA9B,IAAjB;AAAA,YAAI,mBAAG,UAAH,GAAa,EAAjB;AAAA,QAAmB,KAAuB,KAAK,CAAjB,OAA9B;AAAA,QAAmB,OAAO,mBAAG,CAAH,GAAI,EAA9B;AAAA,QAAgC,KAAK,GAAK,KAAK,CAAV,KAArC;AACR,SAAK,IAAL,GAAY,IAAZ;AACA,SAAK,OAAL,GAAe,OAAf;AAEA,SAAK,MAAL,CAAY,KAAZ;AACD;AAED;;;AAGG;;;AACH,yCAAO,KAAP,EAAuB;AACrB,QAAM,SAAS,GAAG,MAAM,CAAC,SAAP,IAAoB,MAAM,CAAC,eAA3B,IAA8C,MAAM,CAAC,YAArD,IAAqE,MAAM,CAAC,WAA9F;AACA,QAAM,OAAO,GAAG,SAAS,CAAC,IAAV,CAAe,KAAK,IAApB,EAA0B,KAAK,OAA/B,CAAhB;;AAEA,WAAO,CAAC,eAAR,GAA0B,UAAC,KAAD,EAA6B;AACrD,UAAM,EAAE,GAAI,KAAK,CAAC,MAAN,CAAkC,MAA9C;;AACA,UAAI,EAAE,CAAC,gBAAH,CAAoB,QAApB,CAA6B,KAAK,CAAC,IAAnC,CAAJ,EAA8C,CAC5C;AACD,OAJoD,CAMrD;;;AACA,QAAE,CAAC,iBAAH,CAAqB,KAAK,CAAC,IAA3B,EAAiC;AAC/B,eAAO,EAAE,KAAK,CAAC;AADgB,OAAjC;AAGD,KAVD;;AAWA,WAAO,CAAC,OAAR,GAAkB;AAAM,oBAAO,CAAC,MAAR,CAAe,IAAI,KAAJ,CAAf,UAAe,CAAf;AAAqC,KAA7D;;AACA,WAAO,CAAC,SAAR,GAAoB;AAAM,oBAAO,CAAC,OAAR;AAA2B,KAArD;AACD,GAjBD;;AAmBA;AACE,QAAM,SAAS,GAAG,MAAM,CAAC,SAAP,IAAoB,MAAM,CAAC,eAA3B,IAA8C,MAAM,CAAC,YAArD,IAAqE,MAAM,CAAC,WAA9F;AACA,QAAM,OAAO,GAAG,SAAS,CAAC,IAAV,CAAe,KAAK,IAApB,EAA0B,KAAK,OAA/B,CAAhB;AAEA,WAAO,SAAS,CAAC,OAAD,EAAU,OAAV,CAAhB;AACD,GALD;AAOA;;;;AAIG;;;AACG,mCAAN,UAAiB,SAAjB,EAAoC,IAApC,EAA6C;;;;;;;;AAG9B;AAAA;AAAA,cAAM,KAAK,MAAL,EAAN;;;AAAL,cAAE,GAAG,SAAL;AACA,4BAAc,EAAE,CAAC,WAAH,CAAe,SAAf,EAA0B,WAA1B,CAAd;AACA,uBAAW,GAAG,aAAW,CAAC,WAAZ,CAAwB,SAAxB,CAAd;AAEN,uBAAW,CAAC,GAAZ,CAAgB,IAAhB,E,CACA;;AAEA;AAAA;AAAA,cAAO,IAAI,OAAJ,CAAY,UAAC,OAAD,EAAU,MAAV,EAAgB;AACjC,2BAAW,CAAC,UAAZ,GAAyB;AACvB;AACA,uBAAO,CAAC,UAAD,CAAP;AACD,eAHD;;AAKA,2BAAW,CAAC,OAAZ,GAAsB,UAAU,KAAV,EAAe;AACnC,sBAAM,CAAC,KAAD,CAAN;AACD,eAFD;AAGD,aATM,CAAP;;;;AAWA;AAAA;AAAA,cAAO,OAAO,CAAC,MAAR,CAAe,OAAf,CAAP;;;;;;;;;AAEH,GAvBK;AAyBN;;;AAGG;;;AACG,gCAAN,UAAc,IAAd,EAA8B,OAA9B,EAA+C;;;;;;;;AAGrC,qBAAS,GAAG,KAAK,CAAC,IAAlB;AACU;AAAA;AAAA,cAAM,KAAK,OAAL,CAAa,IAAI,CAAC,OAAlB,CAAN;;;AAAV,mBAAO,GAAG,SAAV;AACc;AAAA;AAAA,cAAM,KAAK,cAAL,CAAoB,SAApB,EAA+B,WAA/B,CAAN;;;AAAd,uBAAW,GAAG,SAAd;;AAEN,gBAAI,CAAC,OAAL,EAAc;AACZ;AACA,mBAAK,UAAL,CAAgB,SAAhB,EAA2B,IAA3B;AACD;;AAEG,mBAAO,yBAAa,OAAb,GAAyB,IAAzB,CAAP;AACJ,gBAAI,OAAJ,EAAa,OAAO,GAAG,IAAV,C,CAAgB;;AAEvB,yBAAa,GAAG,WAAW,CAAC,GAAZ,CAAgB,OAAhB,CAAhB,C,CACN;;AACA;AAAA;AAAA,cAAO,SAAS,CAAC,aAAD,CAAhB;;;;AAEA;AAAA;AAAA,cAAO,OAAO,CAAC,MAAR,CAAe,OAAf,CAAP;;;;;;;;;AAEH,GArBK;AAuBN;;;;;AAKG;;;AACG,gCAAN,UAAc,UAAd,EAAgC;;;;;;;;AAGtB,qBAAS,GAAG,KAAK,CAAC,IAAlB;AACc;AAAA;AAAA,cAAM,KAAK,cAAL,CAAoB,SAApB,CAAN;;;AAAd,uBAAW,GAAG,SAAd;AACA,mBAAO,GAAG,WAAW,CAAC,GAAZ,CAAgB,UAAhB,CAAV,C,CACN;;AACA;AAAA;AAAA,cAAO,SAAS,CAAC,OAAD,EAAU,SAAV,CAAhB;;;;AAEA;AAAA;AAAA,cAAO,OAAO,CAAC,MAAR,CAAe,OAAf,CAAP;;;;;;;;;AAEH,GAXK;;AAYA,mCAAN,UAAiB,SAAjB,EAAkC;;;;;;;;AAGV;AAAA;AAAA,cAAM,KAAK,cAAL,CAAoB,SAApB,CAAN;;;AAAd,uBAAW,GAAG,SAAd;AACA,mBAAO,GAAG,WAAW,CAAC,MAAZ,EAAV;AACS;AAAA;AAAA,cAAM,SAAS,CAAC,OAAD,EAAU,SAAV,CAAf;;;AAAT,kBAAM,GAAG,SAAT,C,CACN;;AACA;AAAA;AAAA,cAAO,MAAM,GAAG,MAAH,GAAY,EAAzB;;;;AAEA;AAAA;AAAA,cAAO,OAAO,CAAC,MAAR,CAAe,OAAf,CAAP;;;;;;;;;AAEH,GAXK;AAYN;;;;AAIG;;;AACW,uCAAd,UAA6B,SAA7B,EAAgD,IAAhD,EAA0D;mCAAG,O,EAAO;;;;;;;AAErD;AAAA;AAAA,cAAM,KAAK,MAAL,EAAN;;;AAAL,cAAE,GAAG,SAAL;AACN;AAAA;AAAA,cAAO,EAAE,CAAC,WAAH,CAAe,SAAf,EAA0B,IAA1B,EAAgC,WAAhC,CAA4C,SAA5C,CAAP;;;;AAEA;AAAA;AAAA,cAAO,OAAO,CAAC,MAAR,CAAe,OAAf,CAAP;;;;;;;;;AAEH,GAPa;;AAQhB;AAAC,CA9ID,G,CA+IA;AACA;AACA;AACA;AACA;;;AACe,mEAAI,SAAJ,CAAc;AAAE,OAAK;AAAP,CAAd,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMA;AAEA,IAAM,iBAAiB,GAAG,MAA1B;AACA,IAAM,YAAY,GAAG,GAArB;AACA,IAAM,oBAAoB,GAAG,EAA7B;AACA,IAAM,WAAW,GAAG,kBAApB;;AAEA;AAAA;AAAA;AAyBE,gBAAY,OAAZ,EAAmB;AACT,gBAAQ,GAAqF,OAAO,CAA5F,QAAR;AAAA,QAAU,OAAO,GAA4E,OAAO,CAAnF,OAAjB;AAAA,QAAmB,MAAM,GAAoE,OAAO,CAA3E,MAAzB;AAAA,QAA2B,IAAI,GAA8D,OAAO,CAArE,IAA/B;AAAA,QAAiC,OAAO,GAAqD,OAAO,CAA5D,OAAxC;AAAA,QAA0C,KAAmD,OAAO,CAA9C,OAAtD;AAAA,QAA0C,OAAO,mBAAG,EAAH,GAAK,EAAtD;AAAA,QAAwD,MAAM,GAA+B,OAAO,CAAtC,MAA9D;AAAA,QAAgE,UAAU,GAAmB,OAAO,CAA1B,UAA1E;AAAA,QAA4E,YAAY,GAAK,OAAO,CAAZ,YAAxF;AACR,SAAK,QAAL,GAAgB,QAAhB,CAFiB,CAGjB;;AACA,SAAK,OAAL,GAAe,OAAf;AACA,SAAK,MAAL,GAAc,MAAd;AACA,SAAK,IAAL,GAAY,IAAZ;AACA,SAAK,OAAL,GAAe,OAAf;AACA,SAAK,OAAL,GAAe,OAAO,OAAP,KAAmB,QAAnB,GAA8B,OAA9B,GAAwC,IAAI,CAAC,SAAL,CAAe,OAAf,CAAvD;AACA,SAAK,MAAL,GAAc,MAAd;AACA,QAAM,OAAO,GAAG,6CAAM,GAAG,GAAT,EAAhB;AACA,SAAK,SAAL,GAAiB,OAAO,CAAC,IAAR,EAAjB;AACA,SAAK,IAAL,GAAY,OAAO,CAAC,MAAR,CAAe,YAAf,CAAZ;AACA,SAAK,UAAL,GAAkB,UAAlB;AACA,SAAK,YAAL,GAAoB,YAApB;AACD;;AAEK,6BAAN;;;AACE;AAAA;AAAA,UAAO,KAAK,iBAAL,EAAP;;;AACD,GAFK;;AAIA,qCAAN;;;;;;;;AACM,eAAG,GAAmE,EAAtE;;;;;;AAEW;AAAA;AAAA,cAAM,KAAK,UAAL,CAAgB,iBAAhB,CAAkC;AACnD,iBAAG,EAAE,2BAAoB,KAAK,YAAzB,EAAqC,oBAArC,CAD8C;AAEnD,oBAAM,EAAE,MAF2C;AAGnD,qBAAO,EAAE;AAAE,gCAAgB;AAAlB,eAH0C;AAInD,kBAAI,EAAE;AACJ,oBAAI,EAAE,KAAK,IADP;AAEJ,uBAAO,EAAE,KAAK,OAFV;AAGJ,uBAAO,EAAE,KAAK,OAHV;AAIJ,sBAAM,EAAE,KAAK,MAJT;AAKJ,sBAAM,EAAE,KAAK,MALT;AAMJ,yBAAS,EAAE,KAAK,SANZ;AAOJ,sBAAM,EAAE,iBAPJ;AAQJ,mBAAG,EAAE,YARD;AASJ,qBAAK,EAAE,oBATH;AAUJ,oBAAI,EAAE,KAAK,OAVP;AAWJ,uBAAO,EAAE;AACP,kCAAgB,WADT;AAEP,sBAAI,EAAE,KAAK;AAFJ;AAXL;AAJ6C,aAAlC,CAAN;;;AAAP,gBAAI,GAAG,SAAP;AAqBN,eAAG,GAAG,IAAI,CAAC,IAAX;;;;;;;;;;;;AAEM,yBAAa,GAAsB,GAAG,CAAzB,aAAb,EAAe,KAAK,GAAe,GAAG,CAAlB,KAApB,EAAsB,QAAQ,GAAK,GAAG,CAAR,QAA9B;AACF,0BAAc,GAAG,mBAAC,MAAc,CAAC,eAAhB,MAA+B,IAA/B,IAA+B,aAA/B,GAA+B,MAA/B,GAA+B,GAAE,QAAjC,MAAyC,IAAzC,IAAyC,aAAzC,GAAyC,MAAzC,GAAyC,GAAE,SAA3C,MAAoD,IAApD,IAAoD,aAApD,GAAoD,MAApD,GAAoD,GAAE,OAAtD,KAAiE,OAAlF;AACA,mBAAO;AACX,2BAAa,EAAE,aADJ;AAEX,8BAAgB,WAFL;AAGX,6BAAe,KAAK,MAHT;AAIX,gCAAkB,KAAK,SAAL,CAAe,QAAf,EAJP;AAKX,8BAAgB,KAAK,OALV;AAMX,oCAAsB,aAAM,cAAN,EAAoB,SAApB,EAAoB,MAApB,CAA8B,OAA9B;AANX,eAOP,KAAK,MAAL,IAAe;AACjB,6BAAe,KAAK;AADH,aAPR,GAUP,KAAK,IAAI;AACX,4BAAc;AADH,aAVF,GAYT;AACF,sBAAQ,EAAE;AADR,aAZS,CAAP;AAeN;AAAA;AAAA,cAAO,OAAP;;;;AACD,GA5CK;;AA6CR;AAAC,CA3FD;;;;;;;;;;;;;;ACPA;AAAA;;;;;;;;AAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH;AAAA;AAAA;AAOE,kBAAY,QAAZ,EAA8B;AAA9B;;AAAY;AAAA;AAAkB;;AAN9B,oBAAgB;AACd,UAAI,EAAE,eADQ;AAEd,YAAM,EAAE;AAFM,KAAhB;;AAaA,+BAAsB;AAAA;;AACpB;AAAA;AAAA,YAAO,KAAK,sBAAL,EAAP;;OADoB;AAErB,KAFD;;AANE,SAAK,QAAL,GAAgB,MAAM,CAAC,MAAP,CAAc,KAAK,QAAnB,EAA6B,QAA7B,CAAhB;AACA,SAAK,QAAL,CAAc,SAAd,GAA0B,EAA1B;AACA,SAAK,UAAL,GAAkB,QAAQ,CAAC,UAA3B;AACA,SAAK,YAAL,GAAoB,QAAQ,CAAC,YAA7B;AACD;;AAMK,4CAAN;;;;;;AACM,eAAG,GAA4E,EAA/E;;;;;;AAEM,gBAAI,GAAK,KAAK,QAAL,CAAL,IAAJ;AACF,mBAAO,GAAG,OAAO,IAAP,KAAgB,QAAhB,GAA2B,IAA3B,GAAkC,IAAI,CAAC,SAAL,CAAe,IAAf,CAA5C;AACO;AAAA;AAAA,cAAM,KAAK,UAAL,CAAgB,iBAAhB,CAAkC;AACnD,iBAAG,EAAE,2BAAoB,KAAK,YAAzB,EAAqC,oBAArC,CAD8C;AAEnD,oBAAM,EAAE,MAF2C;AAGnD,qBAAO,EAAE;AAAE,gCAAgB;AAAlB,eAH0C;AAInD,kBAAI,EAAE;AACJ,oBAAI,EAAE,KAAK,QAAL,CAAc,IADhB;AAEJ,sBAAM,EAAE,KAAK,QAAL,CAAc,MAFlB;AAGJ,uBAAO,EAAE,KAAK,QAAL,CAAc,OAHnB;AAIJ,sBAAM,EAAE,KAAK,QAAL,CAAc,MAJlB;AAKJ,sBAAM,EAAE,KAAK,QAAL,CAAc,MALlB;AAMJ,mBAAG,EAAE,KAAK,QAAL,CAAc,IANf;AAOJ,qBAAK,EAAE,EAPH;AAQJ,oBAAI,EAAE;AARF;AAJ6C,aAAlC,CAAN;;;AAAP,gBAAI,GAAG,SAAP;AAeN,eAAG,GAAG,IAAI,CAAC,IAAX;;;;;;;;;;;;AAEM,gBAAI,GAAkC,GAAG,CAArC,IAAJ,EAAM,WAAW,GAAqB,GAAG,CAAxB,WAAjB,EAAmB,IAAI,GAAe,GAAG,CAAlB,IAAvB,EAAyB,QAAQ,GAAK,GAAG,CAAR,QAAjC;AACR;AAAA;AAAA,cAAO;AAAE,yBAAW,EAAE,WAAf;AAA4B,kBAAI,EAAE,IAAlC;AAAwC,kBAAI,EAAE,IAA9C;AAAoD,sBAAQ,EAAE;AAA9D,aAAP;;;;AACD,GAxBK;;AAyBR;AAAC,CA3CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVA;AACA;AAEA;;AACA,IAAM,QAAQ,GAAG,EAAjB;;AACA,SAAS,cAAT,CAAwB,KAAxB,EAA+B,MAA/B,EAAqC;AACnC,SAAO,MAAM,CAAC,GAAP,CAAW,UAAC,IAAD,EAAK;AAAK,wDAAC,CAAC,GAAF,CAAM,KAAN,EAAa,IAAb,EAAmB,6CAAC,CAAC,GAAF,CAAM,KAAN,EAAa,iBAAU,IAAV,CAAb,EAAnB,EAAmB,CAAnB;AAAsD,GAA3E,CAAP;AACD;;AAEK,SAAgB,eAAhB,CAAgC,OAAhC,EAAsE,OAAtE,EAAoF,KAApF,EAA4G;;;;;;;;AAC1G,gBAAM,gBAAQ,6CAAC,CAAC,IAAF,CAAO,OAAP,EAAgB,CAAC,cAAD,CAAhB,CAAR,CAAN;AACN,gBAAM,CAAC,KAAP,GAAe,MAAM,CAAC,KAAP,IAAgB,QAA/B,C,CAAyC;;AACzC,gBAAM,CAAC,MAAP,GAAgB,YAAM,CAAC,MAAP,MAAa,IAAb,IAAa,aAAb,GAAa,EAAb,GAAiB,CAAjC,C,CAAoC;;AAGxB;AAAA;AAAA,YAAM,OAAO,CAAC,MAAD,CAAb;;;AAAN,YAAE,GAAG,MAAC,SAAD,MAAuB,IAAvB,IAAuB,aAAvB,GAAuB,EAAvB,GAA2B,EAAhC;AACA,gBAAM,GAAG,KAAK,CAAC,OAAN,CAAc,KAAd,IAAuB,KAAvB,GAA+B,CAAC,KAAD,CAAxC;AAIA,oBAAU,GAAG,0BAAE,CAAC,UAAH,MAAa,IAAb,IAAa,aAAb,GAAa,EAAb,GAAiB,QAAE,CAAC,MAAH,MAAS,IAAT,IAAS,aAAT,GAAS,MAAT,GAAS,GAAE,UAA5B,MAAsC,IAAtC,IAAsC,aAAtC,GAAsC,EAAtC,GAA0C,EAAE,CAAC,QAA7C,MAAqD,IAArD,IAAqD,aAArD,GAAqD,EAArD,GAAyD,QAAE,CAAC,MAAH,MAAS,IAAT,IAAS,aAAT,GAAS,MAAT,GAAS,GAAE,QAApE,MAA4E,IAA5E,IAA4E,aAA5E,GAA4E,EAA5E,GAAgF,CAA7F;AACA,oBAAU,GAAG,cAAc,CAAC,EAAD,EAAK,MAAL,CAA3B;;AAEN,cAAI,UAAU,KAAK,CAAf,IAAoB,UAAU,CAAC,CAAD,CAAV,CAAc,MAAd,KAAyB,UAAjD,EAA6D;AAC3D;AACA;AAAA;AAAA,cAAO,UAAP;AACD;;AAGK,eAAK,GAAG,UAAU,GAAG,UAAU,CAAC,CAAD,CAAV,CAAc,MAAnC;AACA,oBAAU,GAAG,IAAI,CAAC,IAAL,CAAU,KAAK,GAAG,QAAlB,CAAb;AACA,gBAAM,GAAG,IAAI,KAAJ,CAAU,UAAV,EAAsB,IAAtB,CAA2B,CAA3B,EAA8B,GAA9B,CAAkC,UAAC,CAAD,EAAI,KAAJ,EAAS;AACxD,kBAAM,CAAC,MAAP,GAAgB,OAAO,CAAC,YAAR,GAAuB,IAAI,KAA3B,GAAmC,CAAC,IAAI,KAAL,IAAc,MAAM,CAAC,KAAxE;AACA,mBAAO,OAAO,CAAC,MAAD,CAAd;AACD,WAHc,CAAT;AAMa;AAAA;AAAA,YAAM,OAAO,CAAC,GAAR,CAAY,MAAZ,CAAN;;;AAAb,oBAAU,GAAG,SAAb;AAEN;AAAA;AAAA,YAAO,UAAU,CAAC,MAAX,CAAkB,UAAC,GAAD,EAAM,GAAN,EAAS;AAChC,gBAAM,KAAK,GAAG,cAAc,CAAC,GAAD,EAAM,MAAN,CAA5B,CADgC,CAEhC;;AACA,eAAG,CAAC,OAAJ,CAAY,UAAC,IAAD,EAAO,KAAP,EAAY;AAAK,yBAAI,CAAC,IAAL,CAAS,KAAT,OAAa,KAAK,CAAlB,KAAkB,CAAlB;AAA0B,aAAvD;AACA,mBAAO,GAAP;AACD,WALM,EAKJ,UALI,CAAP;;;;AAMD;AAED;;;;;AAKG;;AACG,SAAU,4BAAV,CAAuC,OAAvC,EAAqD,QAArD,EAAsE;AAC1E,MAAM,MAAM,GAAQ,EAApB;;AACA,MAAI,CAAC,6CAAC,CAAC,OAAF,CAAU,OAAV,CAAL,EAAyB;AACvB,UAAM,CAAC,KAAP,GAAe,6CAAC,CAAC,GAAF,CAAM,OAAN,EAAe,OAAf,EAAwB,EAAxB,KAA+B,EAA9C;AACA,UAAM,CAAC,MAAP,GAAgB,6CAAC,CAAC,GAAF,CAAM,OAAN,EAAe,QAAf,EAAyB,CAAzB,KAA+B,CAA/C;AACA,WAAO,GAAG,6CAAC,CAAC,IAAF,CAAO,OAAP,EAAgB,CAAC,QAAD,EAAW,OAAX,CAAhB,CAAV;AACA,QAAM,SAAO,GAAU,EAAvB;;AACA,iDAAC,CAAC,OAAF,CAAU,OAAV,EAAmB,UAAC,IAAD,EAAY,GAAZ,EAAe;AAChC,UAAI,6CAAC,CAAC,OAAF,CAAU,IAAV,CAAJ,EAAqB;AACnB,YAAI,GAAG,6CAAC,CAAC,OAAF,CAAU,IAAV,CAAP;;AACA,YAAI,IAAI,CAAC,MAAL,GAAc,CAAlB,EAAqB;AACnB,cAAI,QAAJ,EAAc;AACZ,qBAAO,CAAC,IAAR,CAAa;AAAE,kBAAI,EAAE,GAAR;AAAa,oBAAM,EAAE,6CAAC,CAAC,IAAF,CAAO,IAAP,EAAa,KAAb,CAAmB,CAAnB,EAAsB,CAAtB;AAArB,aAAb;AACD,WAFD,MAEO;AACL,kBAAM,CAAC,GAAD,CAAN,GAAc,6CAAC,CAAC,IAAF,CAAO,IAAP,CAAd;AACD;AACF;AACF,OATD,MASO,IAAI,6CAAC,CAAC,QAAF,CAAW,IAAX,CAAJ,EAAsB;AAC3B,YAAI,6CAAC,CAAC,QAAF,CAAW,6CAAC,CAAC,GAAF,CAAM,IAAN,EAAY,OAAZ,EAAqB,SAArB,CAAX,KAA+C,CAAC,6CAAC,CAAC,OAAF,CAAU,6CAAC,CAAC,GAAF,CAAM,IAAN,EAAY,OAAZ,EAAqB,SAArB,CAAV,CAApD,EAAgG;AAC9F,cAAI,QAAJ,EAAc;AACZ,qBAAO,CAAC,IAAR,CAAa;AAAE,kBAAI,EAAE,GAAR;AAAa,oBAAM,EAAE,6CAAC,CAAC,GAAF,CAAM,IAAN,EAAY,OAAZ,EAAqB,EAArB,EAAyB,KAAzB,CAA+B,CAA/B,EAAkC,CAAlC;AAArB,aAAb;AACD,WAFD,MAEO;AACL,kBAAM,CAAC,GAAD,CAAN,GAAc,6CAAC,CAAC,GAAF,CAAM,IAAN,EAAY,OAAZ,CAAd;AACD;AACF;AACF,OARM,MAQA,IAAI,IAAI,KAAK,IAAT,IAAiB,IAAI,KAAK,SAA1B,IAAuC,IAAI,KAAK,EAApD,EAAwD;AAC7D,YAAI,QAAJ,EAAc;AACZ,mBAAO,CAAC,IAAR,CAAa;AAAE,gBAAI,EAAE,GAAR;AAAa,kBAAM,EAAE;AAArB,WAAb;AACD,SAFD,MAEO;AACL,gBAAM,CAAC,GAAD,CAAN,GAAc,IAAd;AACD;AACF;AACF,KAzBD;;AA0BA,QAAI,QAAQ,IAAI,SAAO,CAAC,MAAR,GAAiB,CAAjC,EAAoC;AAClC,YAAM,CAAC,OAAP,GAAiB,SAAjB;AACA,aAAO,MAAP;AACD;AACF;;AACD,SAAO,MAAP;AACD;AAEK,SAAU,uBAAV,CAAkC,WAAlC,EAAqD;AACzD,SAAO,6CAAC,CAAC,GAAF,CACL,6CAAC,CAAC,IAAF,CAAO,oDAAP,EAAiB,UAAC,OAAD,EAAQ;AAAK,kBAAO,CAAC,OAAR;AAA+B,GAA7D,CADK,EAEL,WAFK,CAAP;AAID;AAEK,SAAU,cAAV,CACJ,QADI,EAC+F;AAEnG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAT,CAAgB,UAAC,GAAD,EAAM,GAAN,EAAS;AAC9B,iBAAS,GAA+B,GAAG,CAAlC,SAAT;AAAA,QAAW,KAAK,GAAwB,GAAG,CAA3B,KAAhB;AAAA,QAAkB,KAAsB,GAAG,CAAR,SAAnC;AAAA,QAAkB,SAAS,mBAAG,KAAH,GAAQ,EAAnC;AAER,QAAM,YAAY,GAAG,GAAG,CAAC,IAAJ,CAAS,UAAC,IAAD,EAAK;AAAK,iBAAI,CAAC,KAAL;AAAwB,KAA3C,CAArB;;AACA,QAAI,CAAC,YAAL,EAAmB;AACjB,SAAG,CAAC,IAAJ,CAAS;AAAE,aAAK,EAAE,SAAT;AAAoB,aAAK,EAAE,SAA3B;AAAsC,aAAK,EAAE,CAAC;AAAE,eAAK,OAAP;AAAS,eAAK,EAAE;AAAhB,SAAD;AAA7C,OAAT;AACA,aAAO,GAAP;AACD;;AAED,gBAAY,CAAC,KAAb,CAAmB,IAAnB,CAAwB;AAAE,WAAK,OAAP;AAAS,WAAK,EAAE;AAAhB,KAAxB;AACA,WAAO,GAAP;AACD,GAXc,EAWZ,EAXY,CAAf,CAFmG,CAenG;;AACA,MAAM,EAAE,GAAG,MAAM,CAAC,GAAP,CAAW,UAAC,IAAD,EAAK;AACzB,eAAI,CAAC,KAAL,CAAW,MAAX,KAAsB,CAAtB,GAA0B;AAAE,WAAK,EAAE,IAAI,CAAC,KAAL,CAAW,CAAX,EAAc,KAAvB;AAA8B,WAAK,EAAE,IAAI,CAAC,KAAL,CAAW,CAAX,EAAc;AAAnD,KAA1B,GAAuF,IAAvF;AAA2F,GADlF,CAAX;AAGA,SAAO,EAAP;AACD;AAEM,IAAM,aAAa,GAAG,SAAhB,aAAgB,CAAC,eAAD,EAA0B,eAA1B,EAAmD,GAAnD,EAA8D;AACzF,MAAI;AACF,QAAM,SAAS,GAAG,IAAI,CAAC,KAAL,CAAW,eAAX,CAAlB;AACA,QAAM,SAAS,GAAG,IAAI,CAAC,KAAL,CAAW,eAAX,CAAlB;AACA,WAAO,SAAS,CAAC,GAAD,CAAT,KAAmB,SAAS,CAAC,GAAD,CAAnC;AACD,GAJD,CAIE,OAAO,CAAP,EAAU;AACV,WAAO,eAAe,KAAK,eAA3B;AACD;AACF,CARM;AAUA,IAAM,gBAAgB,GAAG,SAAnB,gBAAmB,CAAC,SAAD,EAAe;AAC7C,MAAM,KAAK,GAAG,qBAAqB,IAArB,CAA0B,SAA1B,CAAd;;AACA,MAAI,CAAC,KAAL,EAAY;AACV,WAAO,CAAP;AACD;;AACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAAvB;AACA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAD,CAAlB;;AACA,UAAQ,IAAR;AACE,SAAK,GAAL;AACE,aAAO,MAAM,GAAG,KAAT,GAAiB,IAAxB;;AACF,SAAK,GAAL;AACE,aAAO,MAAM,GAAG,IAAT,GAAgB,IAAvB;;AACF,SAAK,GAAL;AACE,aAAO,MAAM,GAAG,EAAT,GAAc,IAArB;;AACF,SAAK,GAAL;AACE,aAAO,MAAM,GAAG,IAAhB;AARJ;;AAUA,SAAO,CAAP;AACD,CAlBM,C;;;;;;;;;;;;;;;;;;;;;;ACtIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kE;;;;;;;;;;;AC3WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qH;;;;;;;;;;;;ACjPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAeA;AAAA;AAAA;AAAA;;AAKE;AACA,+BAAY,gBAAZ,EAA8B,UAA9B,EAA0C,WAA1C,EAAqD;AAArD;;AACE,SAAK,gBAAL,GAAwB,gBAAxB;AACA,SAAK,UAAL,GAAkB,UAAlB;AACA,SAAK,WAAL,GAAmB,WAAnB;;AACA,iDAAC,CAAC,OAAF,CAAU,kDAAV,EAAuB,UAAC,MAAD,EAAc,GAAd,EAAiB;AACtC,WAAI,CAAC,GAAD,CAAJ,GAAY,IAAI,MAAJ,CAAW,KAAI,CAA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","file":"components/config.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./components/config.ts\");\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return value;\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]') {\n obj = [];\n obj = obj.concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) { // eslint-disable-line func-name-matching\n return prefix + '[]';\n },\n indices: function indices(prefix, key) { // eslint-disable-line func-name-matching\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) { // eslint-disable-line func-name-matching\n return prefix;\n }\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify( // eslint-disable-line func-name-matching\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (Array.isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (Array.isArray(obj)) {\n values = values.concat(stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n values = values.concat(stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (Array.isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n keys = keys.concat(stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (typeof target === 'object') {\n if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n if (target[i] && typeof target[i] === 'object') {\n target[i] = merge(target[i], item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","import { PluginMeta } from '@grafana/data';\nimport { config, getBackendSrv } from '@grafana/runtime';\nimport { TcDataSourceId } from '../datasource/common/constants';\n\nconst backendSrv = getBackendSrv();\n\nconst tcFolder = {\n uid: 'tencent-cloud-monitor',\n title: '腾讯云监控',\n folderId: null,\n};\n\nconst tcFolder_EN = {\n uid: 'tencent-cloud-monitor-english',\n title: 'Tencent Cloud Monitor',\n folderId: null,\n};\n\n/**\n * 生成腾讯云专用目录\n * @returns\n */\nasync function getFolderId() {\n if (tcFolder.folderId && tcFolder_EN.folderId) {\n return [tcFolder.folderId, tcFolder_EN.folderId];\n }\n const folders: any[] = await backendSrv.get('/api/folders');\n let folderId = folders.find((item) => item.uid === tcFolder.uid)?.id;\n let folderEnId = folders.find((item) => item.uid === tcFolder_EN.uid)?.id;\n if (!folderId) {\n const folder = await backendSrv.post('/api/folders', tcFolder);\n folderId = folder?.id || 0;\n }\n if (!folderEnId) {\n const folderEn = await backendSrv.post('/api/folders', tcFolder_EN);\n folderEnId = folderEn?.id || 0;\n }\n tcFolder.folderId = folderId;\n tcFolder_EN.folderId = folderEnId;\n return [folderId, folderEnId];\n}\n\n/**\n * 请求拦截器,拦截导入按钮的接口请求\n */\nfunction backendInterceptor() {\n const oldPost = backendSrv.post.bind(getBackendSrv());\n const pluginId = window.location.pathname.split('/').filter((item) => item)[1];\n backendSrv.post = async (url, data) => {\n // 拦截判断:拦截指定接口\n if (url === '/api/dashboards/import' && data.pluginId === pluginId) {\n const [folderId, folderEnId] = await getFolderId();\n data.folderId = data.path.endsWith('_en_dashboard.json') ? folderEnId : folderId;\n }\n return oldPost(url, data);\n };\n}\n\nbackendInterceptor();\n\nexport class MonitorAppConfigCtrl {\n static templateUrl = 'components/config.html';\n appEditCtrl: any;\n appModel?: PluginMeta;\n $q: any;\n configured: boolean;\n\n /** @ngInject */\n constructor($scope: any, $injector: any, $q: any) {\n this.appEditCtrl.setPostUpdateHook(this.postUpdate.bind(this));\n this.$q = $q;\n // Make sure it has a JSON Data spot\n if (!this.appModel) {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n this.appModel = {} as PluginMeta;\n }\n\n // Required until we get the types sorted on appModel :(\n const appModel = this.appModel as any;\n if (!appModel.jsonData) {\n appModel.jsonData = {};\n }\n this.configured = false;\n if (this.appModel?.enabled) {\n const datasources = Object.values(config.datasources).filter((ds) => {\n return ds.type === TcDataSourceId;\n });\n if (datasources.length > 0) {\n this.configured = true;\n }\n }\n }\n\n async moveToFolder(dashbaordUid: string, folderId: number) {\n // 获取dashboard\n const { dashboard } = await backendSrv.get(`/api/dashboards/uid/${dashbaordUid}`);\n // 移动目录\n await backendSrv.post('/api/dashboards/db/', {\n dashboard,\n folderId,\n message: '',\n overwrite: true,\n });\n }\n\n async reviseDashboard() {\n // 1. 生成腾讯云目录\n const [folderId, folderEnId] = await getFolderId();\n // 2. 获取所有腾讯云插件下的dashboard\n const rs = await backendSrv.get(`/api/plugins/${this.appModel?.id}/dashboards`);\n\n // 3. 调用api更新dashboard\n const pmlist = rs.map((item) => {\n const { importedUrl, path } = item;\n const uid = importedUrl.split('/')[2];\n if (uid) {\n return this.moveToFolder(uid, path.endsWith('_en_dashboard.json') ? folderEnId : folderId);\n } else {\n return Promise.resolve();\n }\n });\n\n return Promise.all(pmlist);\n }\n\n async postUpdate() {\n if (!this.appModel?.enabled) {\n return;\n }\n // enable或者update时,对预设dashboard进行修改\n await this.reviseDashboard();\n return this.$q.resolve(true);\n }\n}\n","import _ from 'lodash';\nimport qs from 'qs';\nimport { SERVICES } from '../tc_monitor';\nimport Sign from './sign';\nimport SignV2 from './signV2';\nimport { toDataQueryResponse } from '@grafana/runtime';\nimport { getLanguage } from '../../locale';\n\nimport packageInfo from '../plugin.json';\nexport const TcDataSourceId = packageInfo.id;\n\n// the services of tencentcloud monitor api\nconst FINACE_REGIONS = ['ap-shanghai-fsi', 'ap-shenzhen-fsi'];\nconst SERVICES_API_INFO = {\n api: {\n service: 'api',\n version: '2020-11-06',\n path: '/api',\n host: 'api.tencentcloudapi.com',\n },\n // monitor api info\n monitor: {\n service: 'monitor',\n version: '2018-07-24',\n path: '/monitor',\n host: 'monitor.tencentcloudapi.com',\n },\n // cls api info\n cls: {\n service: 'cls',\n version: '2020-10-16',\n path: '/cls',\n host: 'cls.tencentcloudapi.com',\n },\n // cvm api info\n cvm: {\n service: 'cvm',\n version: '2017-03-12',\n path: '/cvm',\n host: 'cvm.tencentcloudapi.com',\n },\n // cdb api info\n cdb: {\n service: 'cdb',\n version: '2017-03-20',\n path: '/cdb',\n host: 'cdb.tencentcloudapi.com',\n },\n // pcx api info\n pcx: {\n service: 'pcx',\n version: '',\n path: '/pcx',\n host: 'vpc.api.qcloud.com',\n },\n // vpc api info\n vpc: {\n service: 'vpc',\n version: '2017-03-12',\n path: '/vpc',\n host: 'vpc.tencentcloudapi.com',\n },\n // mongodb api info\n mongodb: {\n service: 'mongodb',\n version: '2019-07-25',\n path: '/mongodb',\n host: 'mongodb.tencentcloudapi.com',\n },\n // 负载均衡 clb\n clb: {\n service: 'clb',\n version: '2018-03-17',\n path: '/clb',\n host: 'clb.tencentcloudapi.com',\n },\n // postgresql api info\n postgres: {\n service: 'postgres',\n version: '2017-03-12',\n path: '/postgres',\n host: 'postgres.tencentcloudapi.com',\n },\n // cdn info\n cdn: {\n service: 'cdn',\n version: '2018-06-06',\n path: '/cdn',\n host: 'cdn.tencentcloudapi.com',\n },\n // redis info\n redis: {\n service: 'redis',\n version: '2018-04-12',\n path: '/redis',\n host: 'redis.tencentcloudapi.com',\n },\n scf: {\n service: 'scf',\n version: '2018-04-16',\n path: '/scf',\n host: 'scf.tencentcloudapi.com',\n },\n cfs: {\n service: 'cfs',\n version: '2019-07-19',\n path: '/cfs',\n host: 'cfs.tencentcloudapi.com',\n },\n ckafka: {\n service: 'ckafka',\n version: '2019-08-19',\n path: '/ckafka',\n host: 'ckafka.tencentcloudapi.com',\n },\n // 专线接入实例列表\n dc: {\n service: 'dc',\n version: '2018-04-10',\n path: '/dc',\n host: 'dc.tencentcloudapi.com',\n },\n // cynosdb实例列表\n cynosdb: {\n service: 'cynosdb',\n version: '2019-01-07',\n path: '/cynosdb',\n host: 'cynosdb.tencentcloudapi.com',\n },\n // sqlserver实例列表\n sqlserver: {\n service: 'sqlserver',\n version: '2018-03-28',\n path: '/sqlserver',\n host: 'sqlserver.tencentcloudapi.com',\n },\n // bm实例列表\n bm: {\n service: 'bm',\n version: '2018-04-23',\n path: '/bm',\n host: 'bm.tencentcloudapi.com',\n },\n bmeip: {\n service: 'bmeip',\n version: '2018-06-25',\n path: '/bmeip',\n host: 'bmeip.tencentcloudapi.com',\n },\n bmvpc: {\n service: 'bmvpc',\n version: '2018-06-25',\n path: '/bmvpc',\n host: 'bmvpc.tencentcloudapi.com',\n },\n bmlb: {\n service: 'bmlb',\n version: '2018-06-25',\n path: '/bmlb',\n host: 'bmlb.tencentcloudapi.com',\n },\n // ES集群实例\n es: {\n service: 'es',\n version: '2018-04-16',\n path: '/es',\n host: 'es.tencentcloudapi.com',\n },\n // MapReduce\n emr: {\n service: 'emr',\n version: '2019-01-03',\n path: '/emr',\n host: 'emr.tencentcloudapi.com',\n },\n // CMQ消息队列\n cmq: {\n service: 'cmq',\n version: '2019-03-04',\n path: '/cmq',\n host: 'cmq.tencentcloudapi.com',\n },\n cbs: {\n service: 'cbs',\n version: '2017-03-12',\n path: '/cbs',\n host: 'cbs.tencentcloudapi.com',\n },\n // tcaplus实例\n tcaplusdb: {\n service: 'tcaplusdb',\n version: '2019-08-23',\n path: '/tcaplusdb',\n host: 'tcaplusdb.tencentcloudapi.com',\n },\n // tcaplus实例\n dcdb: {\n service: 'dcdb',\n version: '2018-04-11',\n path: '/dcdb',\n host: 'dcdb.tencentcloudapi.com',\n },\n // apigateway实例\n apigateway: {\n service: 'apigateway',\n version: '2018-08-08',\n path: '/apigateway',\n host: 'apigateway.tencentcloudapi.com',\n },\n tdmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n tdmq_rabbitmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n tdmq_rocketmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n gaap: {\n service: 'gaap',\n version: '2018-05-29',\n path: '/gaap',\n host: 'gaap.tencentcloudapi.com',\n },\n ecm: {\n service: 'ecm',\n version: '2019-07-19',\n path: '/ecm',\n host: 'ecm.tencentcloudapi.com',\n },\n gse: {\n service: 'gse',\n version: '2019-11-12',\n path: '/gse',\n host: 'gse.tencentcloudapi.com',\n },\n lighthouse: {\n service: 'lighthouse',\n version: '2020-03-24',\n path: '/lighthouse',\n host: 'lighthouse.tencentcloudapi.com',\n },\n tsf: {\n service: 'tsf',\n version: '2018-03-26',\n path: '/tsf',\n host: 'tsf.tencentcloudapi.com',\n },\n rum: {\n service: 'rum',\n version: '2021-06-22',\n path: '/rum',\n host: 'rum.tencentcloudapi.com',\n },\n tke: {\n service: 'tke',\n version: '2018-05-25',\n path: '/tke',\n host: 'tke.tencentcloudapi.com',\n },\n ecdn: {\n service: 'ecdn',\n version: '2019-10-12',\n path: '/ecdn',\n host: 'ecdn.tencentcloudapi.com',\n },\n waf: {\n service: 'waf',\n version: '2018-01-25',\n path: '/waf',\n host: 'waf.tencentcloudapi.com',\n },\n region: {\n service: 'region',\n version: '2022-06-27',\n path: '/region',\n host: 'region.tencentcloudapi.com',\n },\n apm: {\n service: 'apm',\n version: '2021-06-22',\n path: '/apm',\n host: 'apm.tencentcloudapi.com',\n },\n // 不单独定义lb,因为lb同样用的是vpc的配置,同上\n // lb: {\n // service: 'lb',\n // version: '2017-03-12',\n // path: '/lb',\n // host: 'vpc.tencentcloudapi.com'\n // }\n // 负载均衡四层协议 lbPrivate\n // lbPrivate: {\n // service: 'lbPrivate',\n // version: '2018-03-17',\n // path: '/clb',\n // host: 'clb.tencentcloudapi.com',\n // },\n};\n\nconst FINACE_HOST = {\n scf: {\n 'ap-shanghai-fsi': {\n path: '/fsi/scf/shanghai',\n host: 'scf.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/scf/shenzhen',\n host: 'scf.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cfs: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cfs/shanghai',\n host: 'cfs.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cfs/shenzhen',\n host: 'cfs.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n ckafka: {\n 'ap-shanghai-fsi': {\n path: '/fsi/ckafka/shanghai',\n host: 'ckafka.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/ckafka/shenzhen',\n host: 'ckafka.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n clb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/clb/shanghai',\n host: 'clb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/clb/shenzhen',\n host: 'clb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n mongodb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/mongodb/shanghai',\n host: 'mongodb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/mongodb/shenzhen',\n host: 'mongodb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n vpc: {\n 'ap-shanghai-fsi': {\n path: '/fsi/vpc/shanghai',\n host: 'vpc.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/vpc/shenzhen',\n host: 'vpc.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cvm: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cvm/shanghai',\n host: 'cvm.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cvm/shenzhen',\n host: 'cvm.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cdb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cdb/shanghai',\n host: 'cdb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cdb/shenzhen',\n host: 'cdb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n monitor: {\n 'ap-shanghai-fsi': {\n path: '/fsi/monitor/shanghai',\n host: 'monitor.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/monitor/shenzhen',\n host: 'monitor.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n postgres: {\n 'ap-shanghai-fsi': {\n path: '/fsi/postgres/shanghai',\n host: 'postgres.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/postgres/shenzhen',\n host: 'postgres.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n emr: {\n 'ap-shanghai-fsi': {\n path: '/fsi/emr/shanghai',\n host: 'emr.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/emr/shenzhen',\n host: 'emr.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cmq: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cmq/shanghai',\n host: 'cmq.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cmq/shenzhen',\n host: 'cmq.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cls: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cls/shanghai',\n host: 'cls.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cls/shenzhen',\n host: 'cls.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n};\n\n// 获取对应业务的 API 接口信息\nexport function GetServiceAPIInfo(region, service) {\n return { ...(SERVICES_API_INFO[service] || {}), ...getHostAndPath(region, service) };\n}\n\n// get host and path for finance regions\nfunction getHostAndPath(region, service) {\n if (_.indexOf(FINACE_REGIONS, region) === -1) {\n return {};\n }\n return (\n _.find(\n _.find(FINACE_HOST, (__, key) => key === service),\n (__, key) => key === region\n ) || {}\n );\n}\n\n// 变量替换指定实例按照那个字段展示\nexport const VARIABLE_ALIAS = 'instancealias';\n\nexport function GetServiceFromNamespace(namespace) {\n return _.get(\n _.find(SERVICES, (service) => service.namespace === namespace),\n 'service'\n );\n}\n// 处理存量target中保存的qce/cvm\nexport function GetLabelFromNamespace(namespace) {\n return _.get(\n _.find(SERVICES, (service) => service.namespace === namespace || service.label === namespace),\n 'label'\n );\n}\n// parse template variable query params\nexport function ParseMetricQuery(query = '') {\n if (!query) {\n return {};\n }\n const result = {};\n const queries = _.split(query, '&');\n _.forEach(queries, (item) => {\n const str = _.split(item, '=');\n if (_.trim(_.get(str, '0', ''))) {\n let val = _.trim(_.get(str, '1', ''));\n try {\n val = JSON.parse(val);\n } catch (e) {\n // console.log({ val });\n }\n result[_.toLower(_.trim(_.get(str, '0', '')))] = val;\n }\n });\n return result;\n}\n\n// parse template variable regex params\nexport function ParseMetricRegex(regex = '') {\n if (!regex) {\n return [];\n }\n regex = regex.replace(/:/g, ':');\n regex = regex.replace(/,/g, ',');\n const regexParams = ParseMetricQuery(regex);\n const result: any[] = [];\n _.forEach(regexParams, (value, key) => {\n if (key === 'tag:tag-key') {\n const valuesArr = _.split(value, ',');\n _.forEach(valuesArr, (item) => {\n const temp = _.split(item, ':');\n if (temp.length === 2) {\n result.push({ Name: `tag:${temp[0]}`, Values: temp.slice(1) });\n }\n });\n } else {\n result.push({ Name: key, Values: _.split(value, ',') });\n }\n });\n return result;\n}\n\n// get the actual value of template variable\nfunction parseVariableFormat(varname: string) {\n varname = String(varname || '');\n // $varname\n let varFlag = false;\n const regResult1 = varname.match(/^\\${?(\\w+)}?/);\n if (regResult1) {\n varFlag = true;\n varname = `\\$\\{${regResult1[1]}\\:json\\}`;\n }\n // [[varname]]\n const regResult2 = varname.match(/^\\[\\[(\\w+)(\\:\\w+)?\\]\\]/);\n if (regResult2) {\n varFlag = true;\n varname = `\\$\\{${regResult2[1]}\\:json\\}`;\n }\n return { varname, varFlag };\n}\n\nexport function ReplaceVariable(templateSrv, scopedVars, field, multiple = false) {\n const { varname, varFlag } = parseVariableFormat(field);\n let replaceVar = templateSrv.replace(varname, scopedVars);\n if (varFlag) {\n try {\n replaceVar = JSON.parse(replaceVar);\n } catch (error) {}\n }\n if (!multiple && _.isArray(replaceVar)) {\n replaceVar = _.get(replaceVar, '0', '');\n }\n return replaceVar;\n}\n\n// get dimensions for instance query param\nexport function GetDimensions(obj) {\n if (_.isEmpty(obj)) {\n return [];\n }\n const dimensions: any[] = [];\n _.forEach(obj, (item) => {\n if (item.Value !== null && item.Value !== undefined && item.Value !== '') {\n dimensions.push({ Name: item.Name, Value: typeof item.Value === 'string' ? item.Value : `${item.Value}` });\n }\n });\n return dimensions;\n}\n\n// parse query data result for panel\nexport function ParseQueryResult(response, instances: any[] = [], timeshift = 0) {\n const instanceList = _.cloneDeep(instances);\n\n const dataPoints = _.get(response, 'DataPoints', []);\n return _.map(dataPoints, (dataPoint) => {\n let instanceAliasValue = _.get(dataPoint, 'Dimensions[0].Value');\n for (let i = 0; i < instanceList.length; i++) {\n if (isInstanceMatch(instanceList[i], _.get(dataPoint, 'Dimensions', []))) {\n instanceAliasValue = instanceList[i]._InstanceAliasValue;\n instanceList.splice(i, 1);\n break;\n }\n }\n return {\n target: `${response.MetricName} - ${instanceAliasValue}`,\n datapoints: parseDataPoint(dataPoint, timeshift),\n };\n });\n}\n\n// parse tencent cloud monitor response data to grafana panel data\nfunction parseDataPoint(dataPoint, timeshift = 0) {\n const timestamps = _.get(dataPoint, 'Timestamps', []);\n const values = _.get(dataPoint, 'Values', []);\n const result = timestamps.map((timestamp, index) => {\n return [values[index], timestamp * 1000 + timeshift];\n });\n\n return result;\n}\n\n// check whether instance is match or not\nfunction isInstanceMatch(instance, dimensions) {\n let match = true;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < dimensions.length; i++) {\n if (_.get(instance, dimensions[i].Name, '').toString() !== dimensions[i].Value.toString()) {\n match = false;\n break;\n }\n }\n return match;\n}\n\n/**\n * 检查某个变量是否模板变量,即是否匹配 ${varnam} 或 [[varname]]\n *\n * @param field 变量字段名\n */\nexport function isVariable(value) {\n if (value && (value.match(/^\\${?(\\w+)}?/) || value.match(/^\\[\\[(\\w+)(\\:\\w+)?\\]\\]/))) {\n return true;\n }\n return false;\n}\n\n/**\n * 腾讯云 API 3.0 接口协议\n * @param options 接口请求对象 { url: string, data?: object }\n * @param service 产品名字 'cvm'\n * @param signObj 接口请求相关信息 { region?: string, action: string }\n * @param secretId\n * @param secretKey\n */\nexport async function GetRequestParams(options, service, signObj: any = {}, secretId, datasourceId, backendSrv) {\n const signParams = {\n secretId,\n payload: options.data || '',\n ...signObj,\n ...(_.pick(GetServiceAPIInfo(signObj.region || '', service), ['service', 'host', 'version']) || {}),\n backendSrv,\n datasourceId,\n region: 'ap-guangzhou',\n };\n const sign = new Sign(signParams);\n const { intranet, ...headerSigned } = await sign.getHeader();\n // 传入x-tc-language实现国际化\n // zh-CN en-US ko-KR ja-JP\n options.headers = Object.assign(options.headers || {}, { ...headerSigned }, { 'x-tc-language': getLanguage() });\n options.method = 'POST';\n if (intranet) {\n options.url += '-internal';\n }\n return options;\n}\n\n/**\n * 腾讯云 API 2.0 接口协议\n * @param options 接口请求对象 { url: string, data?: object }\n * @param service 产品名字 'cvm'\n * @param signObj 接口请求相关信息 { region?: string, action: string }\n * @param secretId\n * @param secretKey\n */\nexport async function GetRequestParamsV2(\n options: any = {},\n service,\n signObj: any = {},\n secretId,\n datasourceId,\n backendSrv\n) {\n const data = options.data || {};\n const signParams = {\n secretId,\n data,\n ...signObj,\n ...(_.pick(GetServiceAPIInfo(signObj.region || '', service), ['host', 'version']) || {}),\n backendSrv,\n datasourceId,\n };\n options.method = 'POST';\n const sign = new SignV2(signParams);\n options.headers = Object.assign(options.headers || {}, { 'Content-Type': 'application/x-www-form-urlencoded' });\n const { queryString, path, host, intranet } = await sign.generateQueryString();\n options.data = qs.stringify({\n ...options.data,\n ...queryString,\n ...(host && { host: host }),\n });\n if (intranet) {\n // TODO: qcloud.com intranet host\n console.log('got intranet for sign v2');\n }\n options.url += path;\n return options;\n}\n\nexport function SliceLength(total = 0, len = 1) {\n const result: any[] = [];\n const num = Math.ceil(total / len);\n for (let i = 1; i < num; i++) {\n result.push({ Offset: len * i });\n }\n return result;\n}\n\nexport const FilterKeys = ['Namespace', 'Offset', 'Limit', 'SearchKey', 'Description', 'OrderBy', 'Order'];\n\nexport function parseDataFromBackendPlugin(res) {\n const { data } = toDataQueryResponse(res);\n return {\n authorization: _.get(data, '[0].meta.custom', ''),\n };\n}\n\n/** 当前环境是否为非生产环境 */\nexport const IS_DEVELOPMENT_ENVIRONMENT = !(process.env.NODE_ENV === 'production');\n\n/**\n * @link https://github.com/grafana/grafana/blob/3c6e0e8ef85048af952367751e478c08342e17b4/packages/grafana-data/src/types/app.ts#L12\n */\nexport enum CoreApp {\n CloudAlerting = 'cloud-alerting',\n UnifiedAlerting = 'unified-alerting',\n Dashboard = 'dashboard',\n Explore = 'explore',\n Unknown = 'unknown',\n PanelEditor = 'panel-editor',\n PanelViewer = 'panel-viewer',\n}\n","import indexedDB from './indexedDB';\nclass InstanceStorage {\n // prefix = 'Datasource';\n // storageKey = 'grafanaInstanceCache';\n insKey = 'Instances';\n cacheWay = '';\n constructor() {}\n setInstance(service: string, value: Record) {\n return this.setStorage(service, this.insKey, value, true);\n }\n async getInstance(service: string) {\n return this.getStorage(service, this.insKey);\n }\n setExtraStorage(service: string, Ekey: string, EValue: Record) {\n return this.setStorage(service, Ekey, EValue, false);\n }\n async getExtraStorage(service: string, Ekey: string) {\n return this.getStorage(service, Ekey);\n }\n private setStorage(serviceKey: string, key: string, value: Record, isCover = false) {\n // console.log('set', serviceKey, key, value);\n return indexedDB.addData(\n {\n service: serviceKey,\n [key]: value,\n },\n isCover\n );\n }\n // 获取到模版变量信息\n private async getStorage(service: string, key?: string) {\n const storage = await indexedDB.getData(service);\n // console.log('get', key, storage);\n return key ? storage?.[key] : storage;\n }\n}\nexport default new InstanceStorage();\n","interface DBEvent {\n target: { result: any; error: any };\n}\n// 数据库结构\ninterface DBTypes {\n store: StoreType;\n name?: string;\n version?: number;\n}\n// store表结构\ninterface StoreType {\n name: string; // 表名\n key: string; // 主键名\n cursorIndex?: { name: string; unique: boolean }[]; // 索引列表\n}\n\n// 数据结构\n// {service: 'cvm', instance: [{ins: 23}]}\ninterface DataType {\n service: string;\n [x: string]: any; // 有产品需缓存其他列表\n}\n\n// interface UpdateProps {\n// storeName: string;\n// cursorKey: string;\n// cursorValue?: any;\n// data: any;\n// }\n\nconst store: StoreType = {\n name: 'grafanaInstanceList',\n key: 'service',\n};\nconst promisify = (request: any, type?: string) => {\n return new Promise((resolve, reject) => {\n request.onsuccess = (event: DBEvent) => {\n const returnMap: any = {\n event: event.target.result,\n request: request.result,\n msg: '操作成功',\n };\n resolve(returnMap[type || 'msg']);\n };\n request.onerror = (event: DBEvent) => reject(event.target.error || '操作失败');\n });\n};\n// 固定表名和数据库名\nclass IndexedDB {\n name = 'grafanaDatabase';\n version = 1;\n\n constructor(props: DBTypes) {\n const { name = 'database', version = 1, store } = props;\n this.name = name;\n this.version = version;\n\n this.initDB(store);\n }\n\n /**\n * 初始化数据库\n * @param store 库表的结构\n */\n initDB(store: StoreType) {\n const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;\n const request = indexeddb.open(this.name, this.version);\n\n request.onupgradeneeded = (event: IDBVersionChangeEvent) => {\n const db = (event.target as IDBOpenDBRequest).result;\n if (db.objectStoreNames.contains(store.name)) {\n // 存在表store\n }\n\n // 遍历store,设置数据表结构\n db.createObjectStore(store.name, {\n keyPath: store.key,\n });\n };\n request.onerror = () => Promise.reject(new Error('初始化数据库失败'));\n request.onsuccess = () => Promise.resolve('初始化数据库成功');\n }\n\n openDB() {\n const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;\n const request = indexeddb.open(this.name, this.version);\n\n return promisify(request, 'event');\n }\n\n /**\n * 新增数据\n * @param storeName 表名\n * @param data 添加的数据\n */\n async insertData(storeName: string, data: any) {\n try {\n // console.time('insertData');\n const db = await this.openDB();\n const transaction = db.transaction(storeName, 'readwrite');\n const objectStore = transaction.objectStore(storeName);\n\n objectStore.add(data);\n // console.timeEnd('insertData');\n\n return new Promise((resolve, reject) => {\n transaction.oncomplete = function () {\n // console.timeEnd('insertData');\n resolve('所有数据插入成功');\n };\n\n transaction.onerror = function (event) {\n reject(event);\n };\n });\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n /**\n * 更新数据\n * @param props 查询数据的参数以及要修改的值的参数\n */\n async addData(data: DataType, isCover?: boolean) {\n try {\n // console.log('addData');\n const storeName = store.name; // 表名\n const oldData = await this.getData(data.service);\n const objectStore = await this.getObjectStore(storeName, 'readwrite');\n\n if (!oldData) {\n // 不存在则新建\n this.insertData(storeName, data);\n }\n // 存在则更新\n let newData: any = { ...oldData, ...data };\n if (isCover) newData = data; // 需要覆盖之前内容\n // 把更新过的对象放回数据库\n const requestUpdate = objectStore.put(newData);\n // console.timeEnd('updateData');\n return promisify(requestUpdate);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n /**\n * 获取数据库的值,返回查询到的第一项\n * @param storeName 表名/存储对象的键\n * @param cursorKey key\n * @param cursorValue 要查询索引的值\n */\n async getData(seviceName: string) {\n try {\n // console.time('getData');\n const storeName = store.name;\n const objectStore = await this.getObjectStore(storeName);\n const request = objectStore.get(seviceName);\n // console.timeEnd('getData');\n return promisify(request, 'request');\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async getAllData(storeName: string) {\n try {\n // console.time('getAllData');\n const objectStore = await this.getObjectStore(storeName);\n const request = objectStore.getAll();\n const result = await promisify(request, 'request');\n // console.timeEnd('getAllData');\n return result ? result : [];\n } catch (error) {\n return Promise.reject(error);\n }\n }\n /**\n * 获取对象仓库\n * @param storeName 表名\n * @param type readonly 或者 readwrite等\n */\n private async getObjectStore(storeName: string, type?: any): Promise {\n try {\n const db = await this.openDB();\n return db.transaction(storeName, type).objectStore(storeName);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n// console.log('testDDB')\n// const indexDB = new IndexedDB({store});\n// indexDB.addData({service: 'cvm', instance: [{ins: 23}]}).then(e=>{\n// indexDB.getData('cvm').then(dd=>{console.log({dd})})\n// })\nexport default new IndexedDB({ store });\n","import moment from 'moment';\n\nconst HttpRequestMethod = 'POST';\nconst CanonicalUri = '/';\nconst CanonicalQueryString = '';\nconst ContentType = 'application/json';\n\nexport default class Sign {\n /**\n * Tencent Cloud API Signature v3 reference: https://cloud.tencent.com/document/api/213/30654\n * secretId: SecretId for identifying identity that is applied for on Cloud API Key.\n * A SecretId corresponds to a unique SecretKey, which is used to generate the request Signature.\n * secretKey: SecretKey is used to encrypt the signature string and verify the signature string on the server\n * service: the name of service, which must be consistent with the request domain, such as cvm\n * action: The name of the API for the desired operation\n * host: the domain of service,which must be consistent with the request domain, such as cvm.tencentcloudapi.com\n * version: PI version, such as 2017-03-12\n * payload: The request parameters\n */\n\n secretId: string;\n\n service: string;\n action: string;\n host: string;\n version: string;\n payload: Record | string;\n region: string;\n timestamp: number;\n date: string;\n backendSrv: any;\n datasourceId: Number;\n constructor(options) {\n const { secretId, service, action, host, version, payload = '', region, backendSrv, datasourceId } = options;\n this.secretId = secretId;\n // this.secretKey = secretKey;\n this.service = service;\n this.action = action;\n this.host = host;\n this.version = version;\n this.payload = typeof payload === 'string' ? payload : JSON.stringify(payload);\n this.region = region;\n const nowDate = moment().utc();\n this.timestamp = nowDate.unix();\n this.date = nowDate.format('YYYY-MM-DD');\n this.backendSrv = backendSrv;\n this.datasourceId = datasourceId;\n }\n\n async getHeader() {\n return this.getResourceHeader();\n }\n\n async getResourceHeader() {\n let res: { authorization?: string; token?: string; intranet?: boolean } = {};\n try {\n const resp = await this.backendSrv.datasourceRequest({\n url: `/api/datasources/${this.datasourceId}/resources/sign_v3`,\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: {\n Host: this.host,\n Service: this.service,\n Version: this.version,\n Action: this.action,\n Region: this.region,\n Timestamp: this.timestamp,\n Method: HttpRequestMethod,\n Uri: CanonicalUri,\n Query: CanonicalQueryString,\n Body: this.payload,\n Headers: {\n 'content-type': ContentType,\n host: this.host,\n },\n },\n });\n res = resp.data;\n } catch (err) {}\n const { authorization, token, intranet } = res;\n const grafanaVersion = (window as any).grafanaBootData?.settings?.buildInfo?.version || '0.0.0';\n const headers = {\n Authorization: authorization,\n 'Content-Type': ContentType,\n 'X-TC-Action': this.action,\n 'X-TC-Timestamp': this.timestamp.toString(),\n 'X-TC-Version': this.version,\n 'X-TC-RequestClient': `GF_${grafanaVersion}_PL_CM_${process.env.TENCENT_CLOUD_MONITOR_GRAFANA_PLUGIN_VERSION}`,\n ...(this.region && {\n 'X-TC-Region': this.region,\n }),\n ...(token && {\n 'X-TC-Token': token,\n }),\n intranet: intranet,\n };\n return headers;\n }\n}\n","/**\n *\n * @param defaults 为对象\n * secretId\n * secretKey\n * action\n * region\n * host\n */\n\nexport default class SignV2 {\n defaults: any = {\n path: '/v2/index.php',\n method: 'POST',\n };\n backendSrv: any;\n datasourceId: Number;\n constructor(defaults: any = {}) {\n this.defaults = Object.assign(this.defaults, defaults);\n this.defaults.secretKey = '';\n this.backendSrv = defaults.backendSrv;\n this.datasourceId = defaults.datasourceId;\n }\n\n generateQueryString = async () => {\n return this.getResourceQueryString();\n };\n\n async getResourceQueryString() {\n let res: { path?: string; querystring?: any; host?: string; intranet?: boolean } = {};\n try {\n const { data } = this.defaults;\n const payload = typeof data === 'string' ? data : JSON.stringify(data);\n const resp = await this.backendSrv.datasourceRequest({\n url: `/api/datasources/${this.datasourceId}/resources/sign_v2`,\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: {\n Host: this.defaults.host,\n Action: this.defaults.action,\n Version: this.defaults.version,\n Region: this.defaults.region,\n Method: this.defaults.method,\n Uri: this.defaults.path,\n Query: '',\n Body: payload,\n },\n });\n res = resp.data;\n } catch (err) {}\n const { path, querystring, host, intranet } = res;\n return { queryString: querystring, path: path, host: host, intranet: intranet };\n }\n}\n","import _ from 'lodash';\nimport { SERVICES } from '../tc_monitor';\n\n/* 从分页数据获取全量数据 */\nconst PageSize = 50;\nfunction getFieldsValue(value, fields) {\n return fields.map((item) => _.get(value, item, _.get(value, `Result.${item}`, [])));\n}\n\nexport async function fetchAllFactory(fetcher: (args: any) => Promise, _params: any, field: string | string[]) {\n const params = { ..._.omit(_params, ['isOffsetPage']) };\n params.Limit = params.Limit || PageSize; // 默认给个Limit大小为50\n params.Offset = params.Offset ?? 0; // 默认给个Offset为0\n\n // 第一次请求,获取总数\n const rs = (await fetcher(params)) ?? {};\n const fields = Array.isArray(field) ? field : [field];\n\n // rs.TotalCount = rs.TotalCount ?? rs.Result.TotalCount ?? [];\n // const { TotalCount } = rs;\n const TotalCount = rs.TotalCount ?? rs.Result?.TotalCount ?? rs.TotalCnt ?? rs.Result?.TotalCnt ?? 0;\n const firstLists = getFieldsValue(rs, fields);\n\n if (TotalCount === 0 || firstLists[0].length === TotalCount) {\n // 只有一页,结束\n return firstLists;\n }\n\n // 批量请求\n const delta = TotalCount - firstLists[0].length;\n const batchCount = Math.ceil(delta / PageSize);\n const pmList = new Array(batchCount).fill(0).map((_, index) => {\n params.Offset = _params.isOffsetPage ? 1 + index : (1 + index) * params.Limit;\n return fetcher(params);\n });\n\n // 合并\n const resultList = await Promise.all(pmList); // [ {a: [], b[] }, { a: [], b:[] }]\n\n return resultList.reduce((acc, cur) => {\n const lists = getFieldsValue(cur, fields);\n // [[], [], []] + [[], [], []]\n acc.forEach((list, index) => list.push(...lists[index]));\n return acc;\n }, firstLists);\n}\n\n/**\n * 实例列表接口入参处理\n *\n * @param queries 表单键入内容\n * @param isFilter 是否需要设置为Filters格式\n */\nexport function instanceQueryParamsBaseParse(queries: any, isFilter: boolean) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n const Filters: any[] = [];\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n if (isFilter) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n } else {\n params[key] = _.uniq(item);\n }\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n if (isFilter) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n } else {\n params[key] = _.get(item, 'value');\n }\n }\n } else if (item !== null && item !== undefined && item !== '') {\n if (isFilter) {\n Filters.push({ Name: key, Values: item });\n } else {\n params[key] = item;\n }\n }\n });\n if (isFilter && Filters.length > 0) {\n params.Filters = Filters;\n return params;\n }\n }\n return params;\n}\n\nexport function getNamesapceFromService(serviceName: string) {\n return _.get(\n _.find(SERVICES, (service) => service.service === serviceName),\n 'namespace'\n );\n}\n\nexport function serviceGroupBy(\n services: { service: string; label: string; namespace: string; href: string; groupName?: string }[]\n) {\n const result = services.reduce((acc, cur) => {\n const { namespace, label, groupName = label } = cur;\n\n const existedGroup = acc.find((item) => item.label === groupName);\n if (!existedGroup) {\n acc.push({ label: groupName, value: groupName, items: [{ label, value: namespace }] });\n return acc;\n }\n\n existedGroup.items.push({ label, value: namespace });\n return acc;\n }, [] as any[]);\n\n // 将只有一个子元素的项目进行特殊处理\n const rs = result.map((item) =>\n item.items.length === 1 ? { label: item.items[0].label, value: item.items[0].value } : item\n );\n return rs;\n}\n\nexport const isTargetEqual = (newTargetString: string, oldTargetString: string, key: string) => {\n try {\n const newTarget = JSON.parse(newTargetString);\n const oldTarget = JSON.parse(oldTargetString);\n return newTarget[key] === oldTarget[key];\n } catch (e) {\n return newTargetString === oldTargetString;\n }\n};\n\nexport const getTimeShiftInMs = (timeShift: any) => {\n const parts = /^(\\d+)([d|h|m|s])$/.exec(timeShift);\n if (!parts) {\n return 0;\n }\n const amount = parseInt(parts[1], 10);\n const unit = parts[2];\n switch (unit) {\n case 'd':\n return amount * 86400 * 1000;\n case 'h':\n return amount * 3600 * 1000;\n case 'm':\n return amount * 60 * 1000;\n case 's':\n return amount * 1000;\n }\n return 0;\n};\n","var map = {\n\t\".\": \"./datasource/tc_monitor/index.ts\",\n\t\"./\": \"./datasource/tc_monitor/index.ts\",\n\t\"./MonitorDatasource\": \"./datasource/tc_monitor/MonitorDatasource.ts\",\n\t\"./MonitorDatasource.ts\": \"./datasource/tc_monitor/MonitorDatasource.ts\",\n\t\"./_base/datasource\": \"./datasource/tc_monitor/_base/datasource.ts\",\n\t\"./_base/datasource.ts\": \"./datasource/tc_monitor/_base/datasource.ts\",\n\t\"./_base/query\": \"./datasource/tc_monitor/_base/query.ts\",\n\t\"./_base/query.ts\": \"./datasource/tc_monitor/_base/query.ts\",\n\t\"./_base/query_filter\": \"./datasource/tc_monitor/_base/query_filter.ts\",\n\t\"./_base/query_filter.ts\": \"./datasource/tc_monitor/_base/query_filter.ts\",\n\t\"./_base/types\": \"./datasource/tc_monitor/_base/types.ts\",\n\t\"./_base/types.ts\": \"./datasource/tc_monitor/_base/types.ts\",\n\t\"./apigateway/datasource\": \"./datasource/tc_monitor/apigateway/datasource.ts\",\n\t\"./apigateway/datasource.ts\": \"./datasource/tc_monitor/apigateway/datasource.ts\",\n\t\"./apigateway/query\": \"./datasource/tc_monitor/apigateway/query.ts\",\n\t\"./apigateway/query.ts\": \"./datasource/tc_monitor/apigateway/query.ts\",\n\t\"./apigateway/query_def\": \"./datasource/tc_monitor/apigateway/query_def.ts\",\n\t\"./apigateway/query_def.ts\": \"./datasource/tc_monitor/apigateway/query_def.ts\",\n\t\"./bmIntraLb/datasource\": \"./datasource/tc_monitor/bmIntraLb/datasource.ts\",\n\t\"./bmIntraLb/datasource.ts\": \"./datasource/tc_monitor/bmIntraLb/datasource.ts\",\n\t\"./bmIntraLb/query\": \"./datasource/tc_monitor/bmIntraLb/query.ts\",\n\t\"./bmIntraLb/query.ts\": \"./datasource/tc_monitor/bmIntraLb/query.ts\",\n\t\"./bmIntraLb/query_def\": \"./datasource/tc_monitor/bmIntraLb/query_def.ts\",\n\t\"./bmIntraLb/query_def.ts\": \"./datasource/tc_monitor/bmIntraLb/query_def.ts\",\n\t\"./bm_lb/datasource\": \"./datasource/tc_monitor/bm_lb/datasource.ts\",\n\t\"./bm_lb/datasource.ts\": \"./datasource/tc_monitor/bm_lb/datasource.ts\",\n\t\"./bm_lb/query\": \"./datasource/tc_monitor/bm_lb/query.ts\",\n\t\"./bm_lb/query.ts\": \"./datasource/tc_monitor/bm_lb/query.ts\",\n\t\"./bm_lb/query_def\": \"./datasource/tc_monitor/bm_lb/query_def.ts\",\n\t\"./bm_lb/query_def.ts\": \"./datasource/tc_monitor/bm_lb/query_def.ts\",\n\t\"./bm_pcx/datasource\": \"./datasource/tc_monitor/bm_pcx/datasource.ts\",\n\t\"./bm_pcx/datasource.ts\": \"./datasource/tc_monitor/bm_pcx/datasource.ts\",\n\t\"./bm_pcx/query\": \"./datasource/tc_monitor/bm_pcx/query.ts\",\n\t\"./bm_pcx/query.ts\": \"./datasource/tc_monitor/bm_pcx/query.ts\",\n\t\"./bm_pcx/query_def\": \"./datasource/tc_monitor/bm_pcx/query_def.ts\",\n\t\"./bm_pcx/query_def.ts\": \"./datasource/tc_monitor/bm_pcx/query_def.ts\",\n\t\"./bwp/datasource\": \"./datasource/tc_monitor/bwp/datasource.ts\",\n\t\"./bwp/datasource.ts\": \"./datasource/tc_monitor/bwp/datasource.ts\",\n\t\"./bwp/query\": \"./datasource/tc_monitor/bwp/query.ts\",\n\t\"./bwp/query.ts\": \"./datasource/tc_monitor/bwp/query.ts\",\n\t\"./bwp/query_def\": \"./datasource/tc_monitor/bwp/query_def.ts\",\n\t\"./bwp/query_def.ts\": \"./datasource/tc_monitor/bwp/query_def.ts\",\n\t\"./cbs/datasource\": \"./datasource/tc_monitor/cbs/datasource.ts\",\n\t\"./cbs/datasource.ts\": \"./datasource/tc_monitor/cbs/datasource.ts\",\n\t\"./cbs/query\": \"./datasource/tc_monitor/cbs/query.ts\",\n\t\"./cbs/query.ts\": \"./datasource/tc_monitor/cbs/query.ts\",\n\t\"./cbs/query_def\": \"./datasource/tc_monitor/cbs/query_def.ts\",\n\t\"./cbs/query_def.ts\": \"./datasource/tc_monitor/cbs/query_def.ts\",\n\t\"./cdb/datasource\": \"./datasource/tc_monitor/cdb/datasource.ts\",\n\t\"./cdb/datasource.ts\": \"./datasource/tc_monitor/cdb/datasource.ts\",\n\t\"./cdb/query\": \"./datasource/tc_monitor/cdb/query.ts\",\n\t\"./cdb/query.ts\": \"./datasource/tc_monitor/cdb/query.ts\",\n\t\"./cdb/query_def\": \"./datasource/tc_monitor/cdb/query_def.ts\",\n\t\"./cdb/query_def.ts\": \"./datasource/tc_monitor/cdb/query_def.ts\",\n\t\"./cdn/datasource\": \"./datasource/tc_monitor/cdn/datasource.ts\",\n\t\"./cdn/datasource.ts\": \"./datasource/tc_monitor/cdn/datasource.ts\",\n\t\"./cdn/query\": \"./datasource/tc_monitor/cdn/query.ts\",\n\t\"./cdn/query.ts\": \"./datasource/tc_monitor/cdn/query.ts\",\n\t\"./cdn/query_def\": \"./datasource/tc_monitor/cdn/query_def.ts\",\n\t\"./cdn/query_def.ts\": \"./datasource/tc_monitor/cdn/query_def.ts\",\n\t\"./cdn_province/datasource\": \"./datasource/tc_monitor/cdn_province/datasource.ts\",\n\t\"./cdn_province/datasource.ts\": \"./datasource/tc_monitor/cdn_province/datasource.ts\",\n\t\"./cdn_province/query\": \"./datasource/tc_monitor/cdn_province/query.ts\",\n\t\"./cdn_province/query.ts\": \"./datasource/tc_monitor/cdn_province/query.ts\",\n\t\"./cdn_province/query_def\": \"./datasource/tc_monitor/cdn_province/query_def.ts\",\n\t\"./cdn_province/query_def.ts\": \"./datasource/tc_monitor/cdn_province/query_def.ts\",\n\t\"./ceip_summary/datasource\": \"./datasource/tc_monitor/ceip_summary/datasource.ts\",\n\t\"./ceip_summary/datasource.ts\": \"./datasource/tc_monitor/ceip_summary/datasource.ts\",\n\t\"./ceip_summary/query\": \"./datasource/tc_monitor/ceip_summary/query.ts\",\n\t\"./ceip_summary/query.ts\": \"./datasource/tc_monitor/ceip_summary/query.ts\",\n\t\"./ceip_summary/query_def\": \"./datasource/tc_monitor/ceip_summary/query_def.ts\",\n\t\"./ceip_summary/query_def.ts\": \"./datasource/tc_monitor/ceip_summary/query_def.ts\",\n\t\"./ces/datasource\": \"./datasource/tc_monitor/ces/datasource.ts\",\n\t\"./ces/datasource.ts\": \"./datasource/tc_monitor/ces/datasource.ts\",\n\t\"./ces/query\": \"./datasource/tc_monitor/ces/query.ts\",\n\t\"./ces/query.ts\": \"./datasource/tc_monitor/ces/query.ts\",\n\t\"./ces/query_def\": \"./datasource/tc_monitor/ces/query_def.ts\",\n\t\"./ces/query_def.ts\": \"./datasource/tc_monitor/ces/query_def.ts\",\n\t\"./cfs/datasource\": \"./datasource/tc_monitor/cfs/datasource.ts\",\n\t\"./cfs/datasource.ts\": \"./datasource/tc_monitor/cfs/datasource.ts\",\n\t\"./cfs/query\": \"./datasource/tc_monitor/cfs/query.ts\",\n\t\"./cfs/query.ts\": \"./datasource/tc_monitor/cfs/query.ts\",\n\t\"./cfs/query_def\": \"./datasource/tc_monitor/cfs/query_def.ts\",\n\t\"./cfs/query_def.ts\": \"./datasource/tc_monitor/cfs/query_def.ts\",\n\t\"./ckafka/datasource\": \"./datasource/tc_monitor/ckafka/datasource.ts\",\n\t\"./ckafka/datasource.ts\": \"./datasource/tc_monitor/ckafka/datasource.ts\",\n\t\"./ckafka/query\": \"./datasource/tc_monitor/ckafka/query.ts\",\n\t\"./ckafka/query.ts\": \"./datasource/tc_monitor/ckafka/query.ts\",\n\t\"./ckafka/query_def\": \"./datasource/tc_monitor/ckafka/query_def.ts\",\n\t\"./ckafka/query_def.ts\": \"./datasource/tc_monitor/ckafka/query_def.ts\",\n\t\"./clb/datasource\": \"./datasource/tc_monitor/clb/datasource.ts\",\n\t\"./clb/datasource.ts\": \"./datasource/tc_monitor/clb/datasource.ts\",\n\t\"./clb/query\": \"./datasource/tc_monitor/clb/query.ts\",\n\t\"./clb/query.ts\": \"./datasource/tc_monitor/clb/query.ts\",\n\t\"./clb/query_def\": \"./datasource/tc_monitor/clb/query_def.ts\",\n\t\"./clb/query_def.ts\": \"./datasource/tc_monitor/clb/query_def.ts\",\n\t\"./cls/datasource\": \"./datasource/tc_monitor/cls/datasource.ts\",\n\t\"./cls/datasource.ts\": \"./datasource/tc_monitor/cls/datasource.ts\",\n\t\"./cls/query\": \"./datasource/tc_monitor/cls/query.ts\",\n\t\"./cls/query.ts\": \"./datasource/tc_monitor/cls/query.ts\",\n\t\"./cls/query_def\": \"./datasource/tc_monitor/cls/query_def.ts\",\n\t\"./cls/query_def.ts\": \"./datasource/tc_monitor/cls/query_def.ts\",\n\t\"./cmq/datasource\": \"./datasource/tc_monitor/cmq/datasource.ts\",\n\t\"./cmq/datasource.ts\": \"./datasource/tc_monitor/cmq/datasource.ts\",\n\t\"./cmq/query\": \"./datasource/tc_monitor/cmq/query.ts\",\n\t\"./cmq/query.ts\": \"./datasource/tc_monitor/cmq/query.ts\",\n\t\"./cmq/query_def\": \"./datasource/tc_monitor/cmq/query_def.ts\",\n\t\"./cmq/query_def.ts\": \"./datasource/tc_monitor/cmq/query_def.ts\",\n\t\"./cmq_topic/datasource\": \"./datasource/tc_monitor/cmq_topic/datasource.ts\",\n\t\"./cmq_topic/datasource.ts\": \"./datasource/tc_monitor/cmq_topic/datasource.ts\",\n\t\"./cmq_topic/query\": \"./datasource/tc_monitor/cmq_topic/query.ts\",\n\t\"./cmq_topic/query.ts\": \"./datasource/tc_monitor/cmq_topic/query.ts\",\n\t\"./cmq_topic/query_def\": \"./datasource/tc_monitor/cmq_topic/query_def.ts\",\n\t\"./cmq_topic/query_def.ts\": \"./datasource/tc_monitor/cmq_topic/query_def.ts\",\n\t\"./cos/datasource\": \"./datasource/tc_monitor/cos/datasource.ts\",\n\t\"./cos/datasource.ts\": \"./datasource/tc_monitor/cos/datasource.ts\",\n\t\"./cos/query_def\": \"./datasource/tc_monitor/cos/query_def.ts\",\n\t\"./cos/query_def.ts\": \"./datasource/tc_monitor/cos/query_def.ts\",\n\t\"./cpm/datasource\": \"./datasource/tc_monitor/cpm/datasource.ts\",\n\t\"./cpm/datasource.ts\": \"./datasource/tc_monitor/cpm/datasource.ts\",\n\t\"./cpm/query\": \"./datasource/tc_monitor/cpm/query.ts\",\n\t\"./cpm/query.ts\": \"./datasource/tc_monitor/cpm/query.ts\",\n\t\"./cpm/query_def\": \"./datasource/tc_monitor/cpm/query_def.ts\",\n\t\"./cpm/query_def.ts\": \"./datasource/tc_monitor/cpm/query_def.ts\",\n\t\"./cvm/datasource\": \"./datasource/tc_monitor/cvm/datasource.ts\",\n\t\"./cvm/datasource.ts\": \"./datasource/tc_monitor/cvm/datasource.ts\",\n\t\"./cvm/query\": \"./datasource/tc_monitor/cvm/query.ts\",\n\t\"./cvm/query.ts\": \"./datasource/tc_monitor/cvm/query.ts\",\n\t\"./cvm/query_def\": \"./datasource/tc_monitor/cvm/query_def.ts\",\n\t\"./cvm/query_def.ts\": \"./datasource/tc_monitor/cvm/query_def.ts\",\n\t\"./cynosdb_mysql/datasource\": \"./datasource/tc_monitor/cynosdb_mysql/datasource.ts\",\n\t\"./cynosdb_mysql/datasource.ts\": \"./datasource/tc_monitor/cynosdb_mysql/datasource.ts\",\n\t\"./cynosdb_mysql/query\": \"./datasource/tc_monitor/cynosdb_mysql/query.ts\",\n\t\"./cynosdb_mysql/query.ts\": \"./datasource/tc_monitor/cynosdb_mysql/query.ts\",\n\t\"./cynosdb_mysql/query_def\": \"./datasource/tc_monitor/cynosdb_mysql/query_def.ts\",\n\t\"./cynosdb_mysql/query_def.ts\": \"./datasource/tc_monitor/cynosdb_mysql/query_def.ts\",\n\t\"./dc/datasource\": \"./datasource/tc_monitor/dc/datasource.ts\",\n\t\"./dc/datasource.ts\": \"./datasource/tc_monitor/dc/datasource.ts\",\n\t\"./dc/query\": \"./datasource/tc_monitor/dc/query.ts\",\n\t\"./dc/query.ts\": \"./datasource/tc_monitor/dc/query.ts\",\n\t\"./dc/query_def\": \"./datasource/tc_monitor/dc/query_def.ts\",\n\t\"./dc/query_def.ts\": \"./datasource/tc_monitor/dc/query_def.ts\",\n\t\"./dcdb/datasource\": \"./datasource/tc_monitor/dcdb/datasource.ts\",\n\t\"./dcdb/datasource.ts\": \"./datasource/tc_monitor/dcdb/datasource.ts\",\n\t\"./dcdb/query\": \"./datasource/tc_monitor/dcdb/query.ts\",\n\t\"./dcdb/query.ts\": \"./datasource/tc_monitor/dcdb/query.ts\",\n\t\"./dcdb/query_def\": \"./datasource/tc_monitor/dcdb/query_def.ts\",\n\t\"./dcdb/query_def.ts\": \"./datasource/tc_monitor/dcdb/query_def.ts\",\n\t\"./dcg/datasource\": \"./datasource/tc_monitor/dcg/datasource.ts\",\n\t\"./dcg/datasource.ts\": \"./datasource/tc_monitor/dcg/datasource.ts\",\n\t\"./dcg/query\": \"./datasource/tc_monitor/dcg/query.ts\",\n\t\"./dcg/query.ts\": \"./datasource/tc_monitor/dcg/query.ts\",\n\t\"./dcg/query_def\": \"./datasource/tc_monitor/dcg/query_def.ts\",\n\t\"./dcg/query_def.ts\": \"./datasource/tc_monitor/dcg/query_def.ts\",\n\t\"./dcx/datasource\": \"./datasource/tc_monitor/dcx/datasource.ts\",\n\t\"./dcx/datasource.ts\": \"./datasource/tc_monitor/dcx/datasource.ts\",\n\t\"./dcx/query\": \"./datasource/tc_monitor/dcx/query.ts\",\n\t\"./dcx/query.ts\": \"./datasource/tc_monitor/dcx/query.ts\",\n\t\"./dcx/query_def\": \"./datasource/tc_monitor/dcx/query_def.ts\",\n\t\"./dcx/query_def.ts\": \"./datasource/tc_monitor/dcx/query_def.ts\",\n\t\"./ecdn/datasource\": \"./datasource/tc_monitor/ecdn/datasource.ts\",\n\t\"./ecdn/datasource.ts\": \"./datasource/tc_monitor/ecdn/datasource.ts\",\n\t\"./ecdn/query\": \"./datasource/tc_monitor/ecdn/query.ts\",\n\t\"./ecdn/query.ts\": \"./datasource/tc_monitor/ecdn/query.ts\",\n\t\"./ecdn/query_def\": \"./datasource/tc_monitor/ecdn/query_def.ts\",\n\t\"./ecdn/query_def.ts\": \"./datasource/tc_monitor/ecdn/query_def.ts\",\n\t\"./ecm/datasource\": \"./datasource/tc_monitor/ecm/datasource.ts\",\n\t\"./ecm/datasource.ts\": \"./datasource/tc_monitor/ecm/datasource.ts\",\n\t\"./ecm/query\": \"./datasource/tc_monitor/ecm/query.ts\",\n\t\"./ecm/query.ts\": \"./datasource/tc_monitor/ecm/query.ts\",\n\t\"./ecm/query_def\": \"./datasource/tc_monitor/ecm/query_def.ts\",\n\t\"./ecm/query_def.ts\": \"./datasource/tc_monitor/ecm/query_def.ts\",\n\t\"./ecm_block_storage/datasource\": \"./datasource/tc_monitor/ecm_block_storage/datasource.ts\",\n\t\"./ecm_block_storage/datasource.ts\": \"./datasource/tc_monitor/ecm_block_storage/datasource.ts\",\n\t\"./ecm_block_storage/query\": \"./datasource/tc_monitor/ecm_block_storage/query.ts\",\n\t\"./ecm_block_storage/query.ts\": \"./datasource/tc_monitor/ecm_block_storage/query.ts\",\n\t\"./ecm_block_storage/query_def\": \"./datasource/tc_monitor/ecm_block_storage/query_def.ts\",\n\t\"./ecm_block_storage/query_def.ts\": \"./datasource/tc_monitor/ecm_block_storage/query_def.ts\",\n\t\"./ecm_lb/datasource\": \"./datasource/tc_monitor/ecm_lb/datasource.ts\",\n\t\"./ecm_lb/datasource.ts\": \"./datasource/tc_monitor/ecm_lb/datasource.ts\",\n\t\"./ecm_lb/query\": \"./datasource/tc_monitor/ecm_lb/query.ts\",\n\t\"./ecm_lb/query.ts\": \"./datasource/tc_monitor/ecm_lb/query.ts\",\n\t\"./ecm_lb/query_def\": \"./datasource/tc_monitor/ecm_lb/query_def.ts\",\n\t\"./ecm_lb/query_def.ts\": \"./datasource/tc_monitor/ecm_lb/query_def.ts\",\n\t\"./gse/datasource\": \"./datasource/tc_monitor/gse/datasource.ts\",\n\t\"./gse/datasource.ts\": \"./datasource/tc_monitor/gse/datasource.ts\",\n\t\"./gse/query\": \"./datasource/tc_monitor/gse/query.ts\",\n\t\"./gse/query.ts\": \"./datasource/tc_monitor/gse/query.ts\",\n\t\"./gse/query_def\": \"./datasource/tc_monitor/gse/query_def.ts\",\n\t\"./gse/query_def.ts\": \"./datasource/tc_monitor/gse/query_def.ts\",\n\t\"./index\": \"./datasource/tc_monitor/index.ts\",\n\t\"./index.ts\": \"./datasource/tc_monitor/index.ts\",\n\t\"./lb/datasource\": \"./datasource/tc_monitor/lb/datasource.ts\",\n\t\"./lb/datasource.ts\": \"./datasource/tc_monitor/lb/datasource.ts\",\n\t\"./lb/query\": \"./datasource/tc_monitor/lb/query.ts\",\n\t\"./lb/query.ts\": \"./datasource/tc_monitor/lb/query.ts\",\n\t\"./lb/query_def\": \"./datasource/tc_monitor/lb/query_def.ts\",\n\t\"./lb/query_def.ts\": \"./datasource/tc_monitor/lb/query_def.ts\",\n\t\"./lighthouse/datasource\": \"./datasource/tc_monitor/lighthouse/datasource.ts\",\n\t\"./lighthouse/datasource.ts\": \"./datasource/tc_monitor/lighthouse/datasource.ts\",\n\t\"./lighthouse/query\": \"./datasource/tc_monitor/lighthouse/query.ts\",\n\t\"./lighthouse/query.ts\": \"./datasource/tc_monitor/lighthouse/query.ts\",\n\t\"./lighthouse/query_def\": \"./datasource/tc_monitor/lighthouse/query_def.ts\",\n\t\"./lighthouse/query_def.ts\": \"./datasource/tc_monitor/lighthouse/query_def.ts\",\n\t\"./mongodb/datasource\": \"./datasource/tc_monitor/mongodb/datasource.ts\",\n\t\"./mongodb/datasource.ts\": \"./datasource/tc_monitor/mongodb/datasource.ts\",\n\t\"./mongodb/query\": \"./datasource/tc_monitor/mongodb/query.ts\",\n\t\"./mongodb/query.ts\": \"./datasource/tc_monitor/mongodb/query.ts\",\n\t\"./mongodb/query_def\": \"./datasource/tc_monitor/mongodb/query_def.ts\",\n\t\"./mongodb/query_def.ts\": \"./datasource/tc_monitor/mongodb/query_def.ts\",\n\t\"./mr/datasource\": \"./datasource/tc_monitor/mr/datasource.ts\",\n\t\"./mr/datasource.ts\": \"./datasource/tc_monitor/mr/datasource.ts\",\n\t\"./mr/query\": \"./datasource/tc_monitor/mr/query.ts\",\n\t\"./mr/query.ts\": \"./datasource/tc_monitor/mr/query.ts\",\n\t\"./mr/query_def\": \"./datasource/tc_monitor/mr/query_def.ts\",\n\t\"./mr/query_def.ts\": \"./datasource/tc_monitor/mr/query_def.ts\",\n\t\"./nat_gateway/datasource\": \"./datasource/tc_monitor/nat_gateway/datasource.ts\",\n\t\"./nat_gateway/datasource.ts\": \"./datasource/tc_monitor/nat_gateway/datasource.ts\",\n\t\"./nat_gateway/query\": \"./datasource/tc_monitor/nat_gateway/query.ts\",\n\t\"./nat_gateway/query.ts\": \"./datasource/tc_monitor/nat_gateway/query.ts\",\n\t\"./nat_gateway/query_def\": \"./datasource/tc_monitor/nat_gateway/query_def.ts\",\n\t\"./nat_gateway/query_def.ts\": \"./datasource/tc_monitor/nat_gateway/query_def.ts\",\n\t\"./ov_cdn/datasource\": \"./datasource/tc_monitor/ov_cdn/datasource.ts\",\n\t\"./ov_cdn/datasource.ts\": \"./datasource/tc_monitor/ov_cdn/datasource.ts\",\n\t\"./ov_cdn/query\": \"./datasource/tc_monitor/ov_cdn/query.ts\",\n\t\"./ov_cdn/query.ts\": \"./datasource/tc_monitor/ov_cdn/query.ts\",\n\t\"./ov_cdn/query_def\": \"./datasource/tc_monitor/ov_cdn/query_def.ts\",\n\t\"./ov_cdn/query_def.ts\": \"./datasource/tc_monitor/ov_cdn/query_def.ts\",\n\t\"./pcx/datasource\": \"./datasource/tc_monitor/pcx/datasource.ts\",\n\t\"./pcx/datasource.ts\": \"./datasource/tc_monitor/pcx/datasource.ts\",\n\t\"./pcx/query\": \"./datasource/tc_monitor/pcx/query.ts\",\n\t\"./pcx/query.ts\": \"./datasource/tc_monitor/pcx/query.ts\",\n\t\"./pcx/query_def\": \"./datasource/tc_monitor/pcx/query_def.ts\",\n\t\"./pcx/query_def.ts\": \"./datasource/tc_monitor/pcx/query_def.ts\",\n\t\"./postgresql/datasource\": \"./datasource/tc_monitor/postgresql/datasource.ts\",\n\t\"./postgresql/datasource.ts\": \"./datasource/tc_monitor/postgresql/datasource.ts\",\n\t\"./postgresql/query\": \"./datasource/tc_monitor/postgresql/query.ts\",\n\t\"./postgresql/query.ts\": \"./datasource/tc_monitor/postgresql/query.ts\",\n\t\"./postgresql/query_def\": \"./datasource/tc_monitor/postgresql/query_def.ts\",\n\t\"./postgresql/query_def.ts\": \"./datasource/tc_monitor/postgresql/query_def.ts\",\n\t\"./qaap/datasource\": \"./datasource/tc_monitor/qaap/datasource.ts\",\n\t\"./qaap/datasource.ts\": \"./datasource/tc_monitor/qaap/datasource.ts\",\n\t\"./qaap/query\": \"./datasource/tc_monitor/qaap/query.ts\",\n\t\"./qaap/query.ts\": \"./datasource/tc_monitor/qaap/query.ts\",\n\t\"./qaap/query_def\": \"./datasource/tc_monitor/qaap/query_def.ts\",\n\t\"./qaap/query_def.ts\": \"./datasource/tc_monitor/qaap/query_def.ts\",\n\t\"./redis/datasource\": \"./datasource/tc_monitor/redis/datasource.ts\",\n\t\"./redis/datasource.ts\": \"./datasource/tc_monitor/redis/datasource.ts\",\n\t\"./redis/query\": \"./datasource/tc_monitor/redis/query.ts\",\n\t\"./redis/query.ts\": \"./datasource/tc_monitor/redis/query.ts\",\n\t\"./redis/query_def\": \"./datasource/tc_monitor/redis/query_def.ts\",\n\t\"./redis/query_def.ts\": \"./datasource/tc_monitor/redis/query_def.ts\",\n\t\"./redis_mem/datasource\": \"./datasource/tc_monitor/redis_mem/datasource.ts\",\n\t\"./redis_mem/datasource.ts\": \"./datasource/tc_monitor/redis_mem/datasource.ts\",\n\t\"./redis_mem/query\": \"./datasource/tc_monitor/redis_mem/query.ts\",\n\t\"./redis_mem/query.ts\": \"./datasource/tc_monitor/redis_mem/query.ts\",\n\t\"./redis_mem/query_def\": \"./datasource/tc_monitor/redis_mem/query_def.ts\",\n\t\"./redis_mem/query_def.ts\": \"./datasource/tc_monitor/redis_mem/query_def.ts\",\n\t\"./scf/datasource\": \"./datasource/tc_monitor/scf/datasource.ts\",\n\t\"./scf/datasource.ts\": \"./datasource/tc_monitor/scf/datasource.ts\",\n\t\"./scf/query\": \"./datasource/tc_monitor/scf/query.ts\",\n\t\"./scf/query.ts\": \"./datasource/tc_monitor/scf/query.ts\",\n\t\"./scf/query_def\": \"./datasource/tc_monitor/scf/query_def.ts\",\n\t\"./scf/query_def.ts\": \"./datasource/tc_monitor/scf/query_def.ts\",\n\t\"./sqlserver/datasource\": \"./datasource/tc_monitor/sqlserver/datasource.ts\",\n\t\"./sqlserver/datasource.ts\": \"./datasource/tc_monitor/sqlserver/datasource.ts\",\n\t\"./sqlserver/query\": \"./datasource/tc_monitor/sqlserver/query.ts\",\n\t\"./sqlserver/query.ts\": \"./datasource/tc_monitor/sqlserver/query.ts\",\n\t\"./sqlserver/query_def\": \"./datasource/tc_monitor/sqlserver/query_def.ts\",\n\t\"./sqlserver/query_def.ts\": \"./datasource/tc_monitor/sqlserver/query_def.ts\",\n\t\"./tcaplus/datasource\": \"./datasource/tc_monitor/tcaplus/datasource.ts\",\n\t\"./tcaplus/datasource.ts\": \"./datasource/tc_monitor/tcaplus/datasource.ts\",\n\t\"./tcaplus/query\": \"./datasource/tc_monitor/tcaplus/query.ts\",\n\t\"./tcaplus/query.ts\": \"./datasource/tc_monitor/tcaplus/query.ts\",\n\t\"./tcaplus/query_def\": \"./datasource/tc_monitor/tcaplus/query_def.ts\",\n\t\"./tcaplus/query_def.ts\": \"./datasource/tc_monitor/tcaplus/query_def.ts\",\n\t\"./tdmq/datasource\": \"./datasource/tc_monitor/tdmq/datasource.ts\",\n\t\"./tdmq/datasource.ts\": \"./datasource/tc_monitor/tdmq/datasource.ts\",\n\t\"./tdmq/query\": \"./datasource/tc_monitor/tdmq/query.ts\",\n\t\"./tdmq/query.ts\": \"./datasource/tc_monitor/tdmq/query.ts\",\n\t\"./tdmq/query_def\": \"./datasource/tc_monitor/tdmq/query_def.ts\",\n\t\"./tdmq/query_def.ts\": \"./datasource/tc_monitor/tdmq/query_def.ts\",\n\t\"./tdmq_rabbitmq/datasource\": \"./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts\",\n\t\"./tdmq_rabbitmq/datasource.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts\",\n\t\"./tdmq_rabbitmq/query\": \"./datasource/tc_monitor/tdmq_rabbitmq/query.ts\",\n\t\"./tdmq_rabbitmq/query.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/query.ts\",\n\t\"./tdmq_rabbitmq/query_def\": \"./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts\",\n\t\"./tdmq_rabbitmq/query_def.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts\",\n\t\"./tdmq_rocketmq/datasource\": \"./datasource/tc_monitor/tdmq_rocketmq/datasource.ts\",\n\t\"./tdmq_rocketmq/datasource.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/datasource.ts\",\n\t\"./tdmq_rocketmq/query\": \"./datasource/tc_monitor/tdmq_rocketmq/query.ts\",\n\t\"./tdmq_rocketmq/query.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/query.ts\",\n\t\"./tdmq_rocketmq/query_def\": \"./datasource/tc_monitor/tdmq_rocketmq/query_def.ts\",\n\t\"./tdmq_rocketmq/query_def.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/query_def.ts\",\n\t\"./tke/datasource\": \"./datasource/tc_monitor/tke/datasource.ts\",\n\t\"./tke/datasource.ts\": \"./datasource/tc_monitor/tke/datasource.ts\",\n\t\"./tke/query\": \"./datasource/tc_monitor/tke/query.ts\",\n\t\"./tke/query.ts\": \"./datasource/tc_monitor/tke/query.ts\",\n\t\"./tke/query_def\": \"./datasource/tc_monitor/tke/query_def.ts\",\n\t\"./tke/query_def.ts\": \"./datasource/tc_monitor/tke/query_def.ts\",\n\t\"./tsf/datasource\": \"./datasource/tc_monitor/tsf/datasource.ts\",\n\t\"./tsf/datasource.ts\": \"./datasource/tc_monitor/tsf/datasource.ts\",\n\t\"./tsf/query\": \"./datasource/tc_monitor/tsf/query.ts\",\n\t\"./tsf/query.ts\": \"./datasource/tc_monitor/tsf/query.ts\",\n\t\"./tsf/query_def\": \"./datasource/tc_monitor/tsf/query_def.ts\",\n\t\"./tsf/query_def.ts\": \"./datasource/tc_monitor/tsf/query_def.ts\",\n\t\"./v_clb/datasource\": \"./datasource/tc_monitor/v_clb/datasource.ts\",\n\t\"./v_clb/datasource.ts\": \"./datasource/tc_monitor/v_clb/datasource.ts\",\n\t\"./v_clb/query\": \"./datasource/tc_monitor/v_clb/query.ts\",\n\t\"./v_clb/query.ts\": \"./datasource/tc_monitor/v_clb/query.ts\",\n\t\"./v_clb/query_def\": \"./datasource/tc_monitor/v_clb/query_def.ts\",\n\t\"./v_clb/query_def.ts\": \"./datasource/tc_monitor/v_clb/query_def.ts\",\n\t\"./vbc/datasource\": \"./datasource/tc_monitor/vbc/datasource.ts\",\n\t\"./vbc/datasource.ts\": \"./datasource/tc_monitor/vbc/datasource.ts\",\n\t\"./vbc/query\": \"./datasource/tc_monitor/vbc/query.ts\",\n\t\"./vbc/query.ts\": \"./datasource/tc_monitor/vbc/query.ts\",\n\t\"./vbc/query_def\": \"./datasource/tc_monitor/vbc/query_def.ts\",\n\t\"./vbc/query_def.ts\": \"./datasource/tc_monitor/vbc/query_def.ts\",\n\t\"./vpc_net_detect/datasource\": \"./datasource/tc_monitor/vpc_net_detect/datasource.ts\",\n\t\"./vpc_net_detect/datasource.ts\": \"./datasource/tc_monitor/vpc_net_detect/datasource.ts\",\n\t\"./vpc_net_detect/query\": \"./datasource/tc_monitor/vpc_net_detect/query.ts\",\n\t\"./vpc_net_detect/query.ts\": \"./datasource/tc_monitor/vpc_net_detect/query.ts\",\n\t\"./vpc_net_detect/query_def\": \"./datasource/tc_monitor/vpc_net_detect/query_def.ts\",\n\t\"./vpc_net_detect/query_def.ts\": \"./datasource/tc_monitor/vpc_net_detect/query_def.ts\",\n\t\"./vpngw/datasource\": \"./datasource/tc_monitor/vpngw/datasource.ts\",\n\t\"./vpngw/datasource.ts\": \"./datasource/tc_monitor/vpngw/datasource.ts\",\n\t\"./vpngw/query\": \"./datasource/tc_monitor/vpngw/query.ts\",\n\t\"./vpngw/query.ts\": \"./datasource/tc_monitor/vpngw/query.ts\",\n\t\"./vpngw/query_def\": \"./datasource/tc_monitor/vpngw/query_def.ts\",\n\t\"./vpngw/query_def.ts\": \"./datasource/tc_monitor/vpngw/query_def.ts\",\n\t\"./vpnx/datasource\": \"./datasource/tc_monitor/vpnx/datasource.ts\",\n\t\"./vpnx/datasource.ts\": \"./datasource/tc_monitor/vpnx/datasource.ts\",\n\t\"./vpnx/query\": \"./datasource/tc_monitor/vpnx/query.ts\",\n\t\"./vpnx/query.ts\": \"./datasource/tc_monitor/vpnx/query.ts\",\n\t\"./vpnx/query_def\": \"./datasource/tc_monitor/vpnx/query_def.ts\",\n\t\"./vpnx/query_def.ts\": \"./datasource/tc_monitor/vpnx/query_def.ts\",\n\t\"./waf/datasource\": \"./datasource/tc_monitor/waf/datasource.ts\",\n\t\"./waf/datasource.ts\": \"./datasource/tc_monitor/waf/datasource.ts\",\n\t\"./waf/query\": \"./datasource/tc_monitor/waf/query.ts\",\n\t\"./waf/query.ts\": \"./datasource/tc_monitor/waf/query.ts\",\n\t\"./waf/query_def\": \"./datasource/tc_monitor/waf/query_def.ts\",\n\t\"./waf/query_def.ts\": \"./datasource/tc_monitor/waf/query_def.ts\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./datasource/tc_monitor sync recursive ^.*$\";","var map = {\n\t\"./_base/query.ts\": \"./datasource/tc_monitor/_base/query.ts\",\n\t\"./apigateway/datasource\": \"./datasource/tc_monitor/apigateway/datasource.ts\",\n\t\"./apigateway/datasource.ts\": \"./datasource/tc_monitor/apigateway/datasource.ts\",\n\t\"./apigateway/query.ts\": \"./datasource/tc_monitor/apigateway/query.ts\",\n\t\"./apigateway/query_def.ts\": \"./datasource/tc_monitor/apigateway/query_def.ts\",\n\t\"./bmIntraLb/datasource\": \"./datasource/tc_monitor/bmIntraLb/datasource.ts\",\n\t\"./bmIntraLb/datasource.ts\": \"./datasource/tc_monitor/bmIntraLb/datasource.ts\",\n\t\"./bmIntraLb/query.ts\": \"./datasource/tc_monitor/bmIntraLb/query.ts\",\n\t\"./bmIntraLb/query_def.ts\": \"./datasource/tc_monitor/bmIntraLb/query_def.ts\",\n\t\"./bm_lb/datasource\": \"./datasource/tc_monitor/bm_lb/datasource.ts\",\n\t\"./bm_lb/datasource.ts\": \"./datasource/tc_monitor/bm_lb/datasource.ts\",\n\t\"./bm_lb/query.ts\": \"./datasource/tc_monitor/bm_lb/query.ts\",\n\t\"./bm_lb/query_def.ts\": \"./datasource/tc_monitor/bm_lb/query_def.ts\",\n\t\"./bm_pcx/datasource\": \"./datasource/tc_monitor/bm_pcx/datasource.ts\",\n\t\"./bm_pcx/datasource.ts\": \"./datasource/tc_monitor/bm_pcx/datasource.ts\",\n\t\"./bm_pcx/query.ts\": \"./datasource/tc_monitor/bm_pcx/query.ts\",\n\t\"./bm_pcx/query_def.ts\": \"./datasource/tc_monitor/bm_pcx/query_def.ts\",\n\t\"./bwp/datasource\": \"./datasource/tc_monitor/bwp/datasource.ts\",\n\t\"./bwp/datasource.ts\": \"./datasource/tc_monitor/bwp/datasource.ts\",\n\t\"./bwp/query.ts\": \"./datasource/tc_monitor/bwp/query.ts\",\n\t\"./bwp/query_def.ts\": \"./datasource/tc_monitor/bwp/query_def.ts\",\n\t\"./cbs/datasource\": \"./datasource/tc_monitor/cbs/datasource.ts\",\n\t\"./cbs/datasource.ts\": \"./datasource/tc_monitor/cbs/datasource.ts\",\n\t\"./cbs/query.ts\": \"./datasource/tc_monitor/cbs/query.ts\",\n\t\"./cbs/query_def.ts\": \"./datasource/tc_monitor/cbs/query_def.ts\",\n\t\"./cdb/datasource\": \"./datasource/tc_monitor/cdb/datasource.ts\",\n\t\"./cdb/datasource.ts\": \"./datasource/tc_monitor/cdb/datasource.ts\",\n\t\"./cdb/query.ts\": \"./datasource/tc_monitor/cdb/query.ts\",\n\t\"./cdb/query_def.ts\": \"./datasource/tc_monitor/cdb/query_def.ts\",\n\t\"./cdn/datasource\": \"./datasource/tc_monitor/cdn/datasource.ts\",\n\t\"./cdn/datasource.ts\": \"./datasource/tc_monitor/cdn/datasource.ts\",\n\t\"./cdn/query.ts\": \"./datasource/tc_monitor/cdn/query.ts\",\n\t\"./cdn/query_def.ts\": \"./datasource/tc_monitor/cdn/query_def.ts\",\n\t\"./cdn_province/datasource\": \"./datasource/tc_monitor/cdn_province/datasource.ts\",\n\t\"./cdn_province/datasource.ts\": \"./datasource/tc_monitor/cdn_province/datasource.ts\",\n\t\"./cdn_province/query.ts\": \"./datasource/tc_monitor/cdn_province/query.ts\",\n\t\"./cdn_province/query_def.ts\": \"./datasource/tc_monitor/cdn_province/query_def.ts\",\n\t\"./ceip_summary/datasource\": \"./datasource/tc_monitor/ceip_summary/datasource.ts\",\n\t\"./ceip_summary/datasource.ts\": \"./datasource/tc_monitor/ceip_summary/datasource.ts\",\n\t\"./ceip_summary/query.ts\": \"./datasource/tc_monitor/ceip_summary/query.ts\",\n\t\"./ceip_summary/query_def.ts\": \"./datasource/tc_monitor/ceip_summary/query_def.ts\",\n\t\"./ces/datasource\": \"./datasource/tc_monitor/ces/datasource.ts\",\n\t\"./ces/datasource.ts\": \"./datasource/tc_monitor/ces/datasource.ts\",\n\t\"./ces/query.ts\": \"./datasource/tc_monitor/ces/query.ts\",\n\t\"./ces/query_def.ts\": \"./datasource/tc_monitor/ces/query_def.ts\",\n\t\"./cfs/datasource\": \"./datasource/tc_monitor/cfs/datasource.ts\",\n\t\"./cfs/datasource.ts\": \"./datasource/tc_monitor/cfs/datasource.ts\",\n\t\"./cfs/query.ts\": \"./datasource/tc_monitor/cfs/query.ts\",\n\t\"./cfs/query_def.ts\": \"./datasource/tc_monitor/cfs/query_def.ts\",\n\t\"./ckafka/datasource\": \"./datasource/tc_monitor/ckafka/datasource.ts\",\n\t\"./ckafka/datasource.ts\": \"./datasource/tc_monitor/ckafka/datasource.ts\",\n\t\"./ckafka/query.ts\": \"./datasource/tc_monitor/ckafka/query.ts\",\n\t\"./ckafka/query_def.ts\": \"./datasource/tc_monitor/ckafka/query_def.ts\",\n\t\"./clb/datasource\": \"./datasource/tc_monitor/clb/datasource.ts\",\n\t\"./clb/datasource.ts\": \"./datasource/tc_monitor/clb/datasource.ts\",\n\t\"./clb/query.ts\": \"./datasource/tc_monitor/clb/query.ts\",\n\t\"./clb/query_def.ts\": \"./datasource/tc_monitor/clb/query_def.ts\",\n\t\"./cls/datasource\": \"./datasource/tc_monitor/cls/datasource.ts\",\n\t\"./cls/datasource.ts\": \"./datasource/tc_monitor/cls/datasource.ts\",\n\t\"./cls/query.ts\": \"./datasource/tc_monitor/cls/query.ts\",\n\t\"./cls/query_def.ts\": \"./datasource/tc_monitor/cls/query_def.ts\",\n\t\"./cmq/datasource\": \"./datasource/tc_monitor/cmq/datasource.ts\",\n\t\"./cmq/datasource.ts\": \"./datasource/tc_monitor/cmq/datasource.ts\",\n\t\"./cmq/query.ts\": \"./datasource/tc_monitor/cmq/query.ts\",\n\t\"./cmq/query_def.ts\": \"./datasource/tc_monitor/cmq/query_def.ts\",\n\t\"./cmq_topic/datasource\": \"./datasource/tc_monitor/cmq_topic/datasource.ts\",\n\t\"./cmq_topic/datasource.ts\": \"./datasource/tc_monitor/cmq_topic/datasource.ts\",\n\t\"./cmq_topic/query.ts\": \"./datasource/tc_monitor/cmq_topic/query.ts\",\n\t\"./cmq_topic/query_def.ts\": \"./datasource/tc_monitor/cmq_topic/query_def.ts\",\n\t\"./cos/datasource\": \"./datasource/tc_monitor/cos/datasource.ts\",\n\t\"./cos/datasource.ts\": \"./datasource/tc_monitor/cos/datasource.ts\",\n\t\"./cos/query_def.ts\": \"./datasource/tc_monitor/cos/query_def.ts\",\n\t\"./cpm/datasource\": \"./datasource/tc_monitor/cpm/datasource.ts\",\n\t\"./cpm/datasource.ts\": \"./datasource/tc_monitor/cpm/datasource.ts\",\n\t\"./cpm/query.ts\": \"./datasource/tc_monitor/cpm/query.ts\",\n\t\"./cpm/query_def.ts\": \"./datasource/tc_monitor/cpm/query_def.ts\",\n\t\"./cvm/datasource\": \"./datasource/tc_monitor/cvm/datasource.ts\",\n\t\"./cvm/datasource.ts\": \"./datasource/tc_monitor/cvm/datasource.ts\",\n\t\"./cvm/query.ts\": \"./datasource/tc_monitor/cvm/query.ts\",\n\t\"./cvm/query_def.ts\": \"./datasource/tc_monitor/cvm/query_def.ts\",\n\t\"./cynosdb_mysql/datasource\": \"./datasource/tc_monitor/cynosdb_mysql/datasource.ts\",\n\t\"./cynosdb_mysql/datasource.ts\": \"./datasource/tc_monitor/cynosdb_mysql/datasource.ts\",\n\t\"./cynosdb_mysql/query.ts\": \"./datasource/tc_monitor/cynosdb_mysql/query.ts\",\n\t\"./cynosdb_mysql/query_def.ts\": \"./datasource/tc_monitor/cynosdb_mysql/query_def.ts\",\n\t\"./dc/datasource\": \"./datasource/tc_monitor/dc/datasource.ts\",\n\t\"./dc/datasource.ts\": \"./datasource/tc_monitor/dc/datasource.ts\",\n\t\"./dc/query.ts\": \"./datasource/tc_monitor/dc/query.ts\",\n\t\"./dc/query_def.ts\": \"./datasource/tc_monitor/dc/query_def.ts\",\n\t\"./dcdb/datasource\": \"./datasource/tc_monitor/dcdb/datasource.ts\",\n\t\"./dcdb/datasource.ts\": \"./datasource/tc_monitor/dcdb/datasource.ts\",\n\t\"./dcdb/query.ts\": \"./datasource/tc_monitor/dcdb/query.ts\",\n\t\"./dcdb/query_def.ts\": \"./datasource/tc_monitor/dcdb/query_def.ts\",\n\t\"./dcg/datasource\": \"./datasource/tc_monitor/dcg/datasource.ts\",\n\t\"./dcg/datasource.ts\": \"./datasource/tc_monitor/dcg/datasource.ts\",\n\t\"./dcg/query.ts\": \"./datasource/tc_monitor/dcg/query.ts\",\n\t\"./dcg/query_def.ts\": \"./datasource/tc_monitor/dcg/query_def.ts\",\n\t\"./dcx/datasource\": \"./datasource/tc_monitor/dcx/datasource.ts\",\n\t\"./dcx/datasource.ts\": \"./datasource/tc_monitor/dcx/datasource.ts\",\n\t\"./dcx/query.ts\": \"./datasource/tc_monitor/dcx/query.ts\",\n\t\"./dcx/query_def.ts\": \"./datasource/tc_monitor/dcx/query_def.ts\",\n\t\"./ecdn/datasource\": \"./datasource/tc_monitor/ecdn/datasource.ts\",\n\t\"./ecdn/datasource.ts\": \"./datasource/tc_monitor/ecdn/datasource.ts\",\n\t\"./ecdn/query.ts\": \"./datasource/tc_monitor/ecdn/query.ts\",\n\t\"./ecdn/query_def.ts\": \"./datasource/tc_monitor/ecdn/query_def.ts\",\n\t\"./ecm/datasource\": \"./datasource/tc_monitor/ecm/datasource.ts\",\n\t\"./ecm/datasource.ts\": \"./datasource/tc_monitor/ecm/datasource.ts\",\n\t\"./ecm/query.ts\": \"./datasource/tc_monitor/ecm/query.ts\",\n\t\"./ecm/query_def.ts\": \"./datasource/tc_monitor/ecm/query_def.ts\",\n\t\"./ecm_block_storage/datasource\": \"./datasource/tc_monitor/ecm_block_storage/datasource.ts\",\n\t\"./ecm_block_storage/datasource.ts\": \"./datasource/tc_monitor/ecm_block_storage/datasource.ts\",\n\t\"./ecm_block_storage/query.ts\": \"./datasource/tc_monitor/ecm_block_storage/query.ts\",\n\t\"./ecm_block_storage/query_def.ts\": \"./datasource/tc_monitor/ecm_block_storage/query_def.ts\",\n\t\"./ecm_lb/datasource\": \"./datasource/tc_monitor/ecm_lb/datasource.ts\",\n\t\"./ecm_lb/datasource.ts\": \"./datasource/tc_monitor/ecm_lb/datasource.ts\",\n\t\"./ecm_lb/query.ts\": \"./datasource/tc_monitor/ecm_lb/query.ts\",\n\t\"./ecm_lb/query_def.ts\": \"./datasource/tc_monitor/ecm_lb/query_def.ts\",\n\t\"./gse/datasource\": \"./datasource/tc_monitor/gse/datasource.ts\",\n\t\"./gse/datasource.ts\": \"./datasource/tc_monitor/gse/datasource.ts\",\n\t\"./gse/query.ts\": \"./datasource/tc_monitor/gse/query.ts\",\n\t\"./gse/query_def.ts\": \"./datasource/tc_monitor/gse/query_def.ts\",\n\t\"./lb/datasource\": \"./datasource/tc_monitor/lb/datasource.ts\",\n\t\"./lb/datasource.ts\": \"./datasource/tc_monitor/lb/datasource.ts\",\n\t\"./lb/query.ts\": \"./datasource/tc_monitor/lb/query.ts\",\n\t\"./lb/query_def.ts\": \"./datasource/tc_monitor/lb/query_def.ts\",\n\t\"./lighthouse/datasource\": \"./datasource/tc_monitor/lighthouse/datasource.ts\",\n\t\"./lighthouse/datasource.ts\": \"./datasource/tc_monitor/lighthouse/datasource.ts\",\n\t\"./lighthouse/query.ts\": \"./datasource/tc_monitor/lighthouse/query.ts\",\n\t\"./lighthouse/query_def.ts\": \"./datasource/tc_monitor/lighthouse/query_def.ts\",\n\t\"./mongodb/datasource\": \"./datasource/tc_monitor/mongodb/datasource.ts\",\n\t\"./mongodb/datasource.ts\": \"./datasource/tc_monitor/mongodb/datasource.ts\",\n\t\"./mongodb/query.ts\": \"./datasource/tc_monitor/mongodb/query.ts\",\n\t\"./mongodb/query_def.ts\": \"./datasource/tc_monitor/mongodb/query_def.ts\",\n\t\"./mr/datasource\": \"./datasource/tc_monitor/mr/datasource.ts\",\n\t\"./mr/datasource.ts\": \"./datasource/tc_monitor/mr/datasource.ts\",\n\t\"./mr/query.ts\": \"./datasource/tc_monitor/mr/query.ts\",\n\t\"./mr/query_def.ts\": \"./datasource/tc_monitor/mr/query_def.ts\",\n\t\"./nat_gateway/datasource\": \"./datasource/tc_monitor/nat_gateway/datasource.ts\",\n\t\"./nat_gateway/datasource.ts\": \"./datasource/tc_monitor/nat_gateway/datasource.ts\",\n\t\"./nat_gateway/query.ts\": \"./datasource/tc_monitor/nat_gateway/query.ts\",\n\t\"./nat_gateway/query_def.ts\": \"./datasource/tc_monitor/nat_gateway/query_def.ts\",\n\t\"./ov_cdn/datasource\": \"./datasource/tc_monitor/ov_cdn/datasource.ts\",\n\t\"./ov_cdn/datasource.ts\": \"./datasource/tc_monitor/ov_cdn/datasource.ts\",\n\t\"./ov_cdn/query.ts\": \"./datasource/tc_monitor/ov_cdn/query.ts\",\n\t\"./ov_cdn/query_def.ts\": \"./datasource/tc_monitor/ov_cdn/query_def.ts\",\n\t\"./pcx/datasource\": \"./datasource/tc_monitor/pcx/datasource.ts\",\n\t\"./pcx/datasource.ts\": \"./datasource/tc_monitor/pcx/datasource.ts\",\n\t\"./pcx/query.ts\": \"./datasource/tc_monitor/pcx/query.ts\",\n\t\"./pcx/query_def.ts\": \"./datasource/tc_monitor/pcx/query_def.ts\",\n\t\"./postgresql/datasource\": \"./datasource/tc_monitor/postgresql/datasource.ts\",\n\t\"./postgresql/datasource.ts\": \"./datasource/tc_monitor/postgresql/datasource.ts\",\n\t\"./postgresql/query.ts\": \"./datasource/tc_monitor/postgresql/query.ts\",\n\t\"./postgresql/query_def.ts\": \"./datasource/tc_monitor/postgresql/query_def.ts\",\n\t\"./qaap/datasource\": \"./datasource/tc_monitor/qaap/datasource.ts\",\n\t\"./qaap/datasource.ts\": \"./datasource/tc_monitor/qaap/datasource.ts\",\n\t\"./qaap/query.ts\": \"./datasource/tc_monitor/qaap/query.ts\",\n\t\"./qaap/query_def.ts\": \"./datasource/tc_monitor/qaap/query_def.ts\",\n\t\"./redis/datasource\": \"./datasource/tc_monitor/redis/datasource.ts\",\n\t\"./redis/datasource.ts\": \"./datasource/tc_monitor/redis/datasource.ts\",\n\t\"./redis/query.ts\": \"./datasource/tc_monitor/redis/query.ts\",\n\t\"./redis/query_def.ts\": \"./datasource/tc_monitor/redis/query_def.ts\",\n\t\"./redis_mem/datasource\": \"./datasource/tc_monitor/redis_mem/datasource.ts\",\n\t\"./redis_mem/datasource.ts\": \"./datasource/tc_monitor/redis_mem/datasource.ts\",\n\t\"./redis_mem/query.ts\": \"./datasource/tc_monitor/redis_mem/query.ts\",\n\t\"./redis_mem/query_def.ts\": \"./datasource/tc_monitor/redis_mem/query_def.ts\",\n\t\"./scf/datasource\": \"./datasource/tc_monitor/scf/datasource.ts\",\n\t\"./scf/datasource.ts\": \"./datasource/tc_monitor/scf/datasource.ts\",\n\t\"./scf/query.ts\": \"./datasource/tc_monitor/scf/query.ts\",\n\t\"./scf/query_def.ts\": \"./datasource/tc_monitor/scf/query_def.ts\",\n\t\"./sqlserver/datasource\": \"./datasource/tc_monitor/sqlserver/datasource.ts\",\n\t\"./sqlserver/datasource.ts\": \"./datasource/tc_monitor/sqlserver/datasource.ts\",\n\t\"./sqlserver/query.ts\": \"./datasource/tc_monitor/sqlserver/query.ts\",\n\t\"./sqlserver/query_def.ts\": \"./datasource/tc_monitor/sqlserver/query_def.ts\",\n\t\"./tcaplus/datasource\": \"./datasource/tc_monitor/tcaplus/datasource.ts\",\n\t\"./tcaplus/datasource.ts\": \"./datasource/tc_monitor/tcaplus/datasource.ts\",\n\t\"./tcaplus/query.ts\": \"./datasource/tc_monitor/tcaplus/query.ts\",\n\t\"./tcaplus/query_def.ts\": \"./datasource/tc_monitor/tcaplus/query_def.ts\",\n\t\"./tdmq/datasource\": \"./datasource/tc_monitor/tdmq/datasource.ts\",\n\t\"./tdmq/datasource.ts\": \"./datasource/tc_monitor/tdmq/datasource.ts\",\n\t\"./tdmq/query.ts\": \"./datasource/tc_monitor/tdmq/query.ts\",\n\t\"./tdmq/query_def.ts\": \"./datasource/tc_monitor/tdmq/query_def.ts\",\n\t\"./tdmq_rabbitmq/datasource\": \"./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts\",\n\t\"./tdmq_rabbitmq/datasource.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts\",\n\t\"./tdmq_rabbitmq/query.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/query.ts\",\n\t\"./tdmq_rabbitmq/query_def.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts\",\n\t\"./tdmq_rocketmq/datasource\": \"./datasource/tc_monitor/tdmq_rocketmq/datasource.ts\",\n\t\"./tdmq_rocketmq/datasource.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/datasource.ts\",\n\t\"./tdmq_rocketmq/query.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/query.ts\",\n\t\"./tdmq_rocketmq/query_def.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/query_def.ts\",\n\t\"./tke/datasource\": \"./datasource/tc_monitor/tke/datasource.ts\",\n\t\"./tke/datasource.ts\": \"./datasource/tc_monitor/tke/datasource.ts\",\n\t\"./tke/query.ts\": \"./datasource/tc_monitor/tke/query.ts\",\n\t\"./tke/query_def.ts\": \"./datasource/tc_monitor/tke/query_def.ts\",\n\t\"./tsf/datasource\": \"./datasource/tc_monitor/tsf/datasource.ts\",\n\t\"./tsf/datasource.ts\": \"./datasource/tc_monitor/tsf/datasource.ts\",\n\t\"./tsf/query.ts\": \"./datasource/tc_monitor/tsf/query.ts\",\n\t\"./tsf/query_def.ts\": \"./datasource/tc_monitor/tsf/query_def.ts\",\n\t\"./v_clb/datasource\": \"./datasource/tc_monitor/v_clb/datasource.ts\",\n\t\"./v_clb/datasource.ts\": \"./datasource/tc_monitor/v_clb/datasource.ts\",\n\t\"./v_clb/query.ts\": \"./datasource/tc_monitor/v_clb/query.ts\",\n\t\"./v_clb/query_def.ts\": \"./datasource/tc_monitor/v_clb/query_def.ts\",\n\t\"./vbc/datasource\": \"./datasource/tc_monitor/vbc/datasource.ts\",\n\t\"./vbc/datasource.ts\": \"./datasource/tc_monitor/vbc/datasource.ts\",\n\t\"./vbc/query.ts\": \"./datasource/tc_monitor/vbc/query.ts\",\n\t\"./vbc/query_def.ts\": \"./datasource/tc_monitor/vbc/query_def.ts\",\n\t\"./vpc_net_detect/datasource\": \"./datasource/tc_monitor/vpc_net_detect/datasource.ts\",\n\t\"./vpc_net_detect/datasource.ts\": \"./datasource/tc_monitor/vpc_net_detect/datasource.ts\",\n\t\"./vpc_net_detect/query.ts\": \"./datasource/tc_monitor/vpc_net_detect/query.ts\",\n\t\"./vpc_net_detect/query_def.ts\": \"./datasource/tc_monitor/vpc_net_detect/query_def.ts\",\n\t\"./vpngw/datasource\": \"./datasource/tc_monitor/vpngw/datasource.ts\",\n\t\"./vpngw/datasource.ts\": \"./datasource/tc_monitor/vpngw/datasource.ts\",\n\t\"./vpngw/query.ts\": \"./datasource/tc_monitor/vpngw/query.ts\",\n\t\"./vpngw/query_def.ts\": \"./datasource/tc_monitor/vpngw/query_def.ts\",\n\t\"./vpnx/datasource\": \"./datasource/tc_monitor/vpnx/datasource.ts\",\n\t\"./vpnx/datasource.ts\": \"./datasource/tc_monitor/vpnx/datasource.ts\",\n\t\"./vpnx/query.ts\": \"./datasource/tc_monitor/vpnx/query.ts\",\n\t\"./vpnx/query_def.ts\": \"./datasource/tc_monitor/vpnx/query_def.ts\",\n\t\"./waf/datasource\": \"./datasource/tc_monitor/waf/datasource.ts\",\n\t\"./waf/datasource.ts\": \"./datasource/tc_monitor/waf/datasource.ts\",\n\t\"./waf/query.ts\": \"./datasource/tc_monitor/waf/query.ts\",\n\t\"./waf/query_def.ts\": \"./datasource/tc_monitor/waf/query_def.ts\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./datasource/tc_monitor sync recursive ^\\\\.\\\\/[a-zA-Z]\\\\w+\\\\/(datasource)|(query(_def)?)\\\\.ts$\";","import _ from 'lodash';\nimport { Datasources, SERVICES } from './index';\nimport { GetServiceFromNamespace, ParseMetricQuery } from '../common/constants';\nimport { serviceGroupBy } from '../common/utils';\nimport { LoadingState } from '@grafana/data';\n\nexport default interface DatasourceInterface {\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n query: (options: any) => any;\n testDatasource: () => any;\n metricFindQuery: (query: any) => any;\n getRegions?: (service: string) => any;\n getMetrics: (service: string, region: string) => any;\n getInstances: (service: string, region: string, params: any) => any;\n getZones?: (service: string, region: string) => any;\n}\n\nexport class TCMonitorDatasource implements DatasourceInterface {\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n\n /** @ngInject */\n constructor(instanceSettings, backendSrv, templateSrv) {\n this.instanceSettings = instanceSettings;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n _.forEach(Datasources, (_class: any, key) => {\n this[key] = new _class(this.instanceSettings, this.backendSrv, this.templateSrv);\n });\n }\n\n // 根据 Datasource Config 配置时勾选的监控服务项,获取相应的命名空间\n getNamespaces() {\n const namespaces: any[] = [];\n _.forEach(SERVICES, (service) => {\n if (this.instanceSettings.jsonData[service.service] === true) {\n // namespaces.push(service.namespace);\n namespaces.push(service);\n }\n });\n return namespaces;\n }\n\n getCascaderNamespaces() {\n const validServices = SERVICES.filter((service) => this.instanceSettings.jsonData[service.service]);\n return serviceGroupBy(validServices);\n }\n\n getSelectedServices() {\n const namespaces = this.getNamespaces();\n return _.map(namespaces, ({ namespace }) => {\n return GetServiceFromNamespace(namespace);\n });\n }\n\n /**\n * 根据 Panel 的配置项,获取相应的监控数据\n *\n * @param options Panel 的配置参数,示例如下\n * {\n * cacheTimeout: undefined,\n * dashboardId: 41,\n * interval: \"30s\",\n * intervalMs: 30000,\n * maxDataPoints: 554,\n * panelId: 2,\n * range: {\n * from: Moment,\n * to: Moment,\n * raw: {from: \"now-6h\", to: \"now\"}\n * },\n * rangeRaw: {from: \"now-6h\", to: \"now\"},\n * scopedVars: {__interval: {…}, __interval_ms: {…}}\n * targets: [\n * {\n * namespace: \"QCE/CVM\",\n * refId: \"A\",\n * service: \"cvm\",\n * showInstanceDetails: false,\n * cvm: {\n * dimensionObject: {InstanceId: {…}}\n * instance: \"\",\n * instanceAlias: \"InstanceId\",\n * metricName: \"AccOuttraffic\",\n * metricUnit: \"MB\",\n * period: 10,\n * queries: {Filters: {…}, InstanceIds: Array(1), Limit: 20, Offset: 0, filtersChecked: false, …},\n * region: \"ap-beijing\"\n * },\n * cdb: {},\n * },\n * ],\n * timezone: \"browser\"\n * }\n * @return 返回数据对象,示例如下\n * {\n * data: [\n * {\n * \"target\": \"AccOuttraffic - ins-123\",\n * \"datapoints\": [\n * [861, 1450754160000],\n * [767, 1450754220000]\n * ]\n * }\n * ]\n * }\n */\n query(options: any) {\n const promises: any[] = [];\n const services = this.getSelectedServices();\n _.forEach(services, (service) => {\n const optionsTemp = _.cloneDeep(options);\n const targets = _.filter(optionsTemp.targets, (item) => item.service === service);\n optionsTemp.targets = targets;\n if (optionsTemp.targets.length > 0) {\n const promiseTemp = this[`${_.toUpper(service)}Datasource`].query(optionsTemp);\n if (promiseTemp) {\n promises.push(promiseTemp);\n }\n }\n });\n if (promises.length === 0) {\n return Promise.resolve({ data: [], state: LoadingState.Done });\n }\n return Promise.all(promises).then((results) => {\n return { data: _.flatten(results), state: LoadingState.Done };\n });\n }\n\n /**\n * 获取模板变量的选择项列表\n *\n * @param query 模板变量配置填写的 Query 参数字符串\n */\n metricFindQuery(query: string, options?: any) {\n const queries = ParseMetricQuery(query);\n const service = GetServiceFromNamespace(queries['namespace'] || '');\n\n if (_.isEmpty(queries) || !queries['namespace'] || !queries['action'] || !service) {\n return Promise.resolve([]);\n }\n if (this[`${_.toUpper(service)}Datasource`].metricFindQuery) {\n const result = this[`${_.toUpper(service)}Datasource`].metricFindQuery(\n queries,\n _.get(options, 'variable.regex', undefined)\n );\n if (result) {\n return result;\n }\n }\n return Promise.resolve([]);\n }\n\n /**\n * 获取地域列表\n * @param service\n */\n getRegions(service) {\n if (this[`${_.toUpper(service)}Datasource`].getRegions) {\n return this[`${_.toUpper(service)}Datasource`].getRegions();\n }\n return [];\n }\n\n /**\n * 获取监控指标列表\n * @param service\n * @param region\n */\n getMetrics(service, region) {\n return this[`${_.toUpper(service)}Datasource`].getMetrics(region);\n }\n\n /**\n * 获取可用区列表\n * @param service\n * @param region\n */\n getZones(service, region) {\n if (this[`${_.toUpper(service)}Datasource`].getZones) {\n return this[`${_.toUpper(service)}Datasource`].getZones(region);\n }\n return [];\n }\n\n /**\n * 获取filter中dropdown列表\n * @param service\n * @param param\n */\n getFilterDropdown(service, param) {\n if (this[`${_.toUpper(service)}Datasource`].getFilterDropdown) {\n return this[`${_.toUpper(service)}Datasource`].getFilterDropdown(param);\n }\n return [];\n }\n\n /**\n * 获取实例列表\n * @param service\n * @param region\n * @param params\n */\n getInstances(service, region, params) {\n return this[`${_.toUpper(service)}Datasource`].getInstances(region, params);\n }\n\n /**\n * 获取监听器列表\n * @param service\n * @param region\n * @param params\n */\n getListeners(service, region, instance) {\n if (!this[`${_.toUpper(service)}Datasource`].getListeners) {\n return [];\n }\n return this[`${_.toUpper(service)}Datasource`].getListeners(region, instance);\n }\n\n /**\n * 获取 私有网络列表\n * @param service\n */\n getVpcIds(service, region) {\n if (this[`${_.toUpper(service)}Datasource`].getVpcIds) {\n return this[`${_.toUpper(service)}Datasource`].getVpcIds(region);\n }\n }\n\n // 在 Datasource Config 配置时,验证 SerectId、SerectKey 的有效性,并测试勾选的监控服务项的对应 API 连通性\n testDatasource() {\n const promises: any[] = [];\n const services = this.getSelectedServices();\n _.forEach(services, (service) => {\n promises.push(this[`${_.toUpper(service)}Datasource`].testDatasource());\n });\n if (promises.length === 0) {\n return Promise.resolve(null);\n }\n\n return Promise.all(promises).then((results) => {\n let status = 'success';\n let message = 'DataSource Connection OK';\n\n const errorMsg = _.reduce(\n results,\n (acc, cur) => {\n if (cur.status === 'error') {\n if (acc === '') acc += 'Oops! Found an error in: ';\n acc += `${cur.service}: ${cur.message}; \\n`;\n }\n return acc;\n },\n ''\n );\n\n if (errorMsg) {\n status = 'error';\n message = errorMsg;\n }\n\n return {\n status,\n message,\n title: _.upperFirst(status),\n };\n });\n }\n\n getServiceFn(service, fnName) {\n return (...argu) => {\n if (!this[`${_.toUpper(service)}Datasource`][fnName]) {\n return [];\n }\n return this[`${_.toUpper(service)}Datasource`][fnName](...argu);\n };\n }\n}\n","import _ from 'lodash';\nimport moment from 'moment';\nimport DatasourceInterface from '../MonitorDatasource';\nimport {\n GetRequestParams,\n GetServiceAPIInfo,\n ReplaceVariable,\n GetDimensions,\n ParseQueryResult,\n SliceLength,\n} from '../../common/constants';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { MetricQuery } from './types';\nimport { getNamesapceFromService, getTimeShiftInMs } from '../../common/utils';\nimport { Language, setLanguage } from '../../../locale';\n\nexport interface TemplateQueryIdType {\n instance: string;\n listener?: string;\n}\n\ninterface queryConfigType {\n dim_KeyInStorage: string;\n dim_KeyInTarget?: string;\n dim_KeyInIns?: string;\n dim_KeyInMap: string;\n}\n\nexport abstract class BaseDatasource implements DatasourceInterface {\n Namespace?: string;\n service: string;\n instanceListCache: any[] = [];\n extraMetricDims: string[] = [];\n url: string;\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n secretId: string;\n checkKeys: string[] = [];\n MetricReqConfig: {\n resultFilter?: Function;\n } = {};\n extrasAlias?: string[] = [];\n /*\n 一个配置:(用于处理除了InstanceId之外的)(Record中的key是指标修正之后的维度,即通过InvalidDemsion处理后)\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。为空则取即通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。即:templateQueryIdMap中内容。联合上面2的内容筛选出原始sourceMap\n 4 通过这个dim和sourceMap获取维度值。即sourceMap[dim]\n */\n queryMonitorExtraConfg: Record = {};\n CandiateDimensions?: Record = {};\n\n InstanceReqConfig?: {\n service?: string;\n action: string;\n responseField: string;\n interceptor?: {\n request?: (params: unknown) => unknown;\n response?: (data: unknown) => unknown;\n };\n };\n InvalidDimensions?: Record;\n\n abstract InstanceAliasList: string[];\n abstract templateQueryIdMap: TemplateQueryIdType; // 必须为标识\n\n /** @ngInject */\n constructor(instanceSettings, backendSrv, templateSrv) {\n this.instanceSettings = instanceSettings;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n this.url = instanceSettings.url;\n this.secretId = (instanceSettings.jsonData || {}).secretId || '';\n setLanguage(instanceSettings.jsonData.language || Language.Chinese);\n }\n\n get namespace() {\n // 需要注意的是this.service来自于原型上,在实例中导入时注入\n return this.Namespace || getNamesapceFromService(this.service);\n }\n\n // 获取额外要显示到图例里的内容\n getOtherAlias(instance: any, target: any): string {\n let result = '';\n const alias = instance._InstanceAliasValue;\n this.extrasAlias?.forEach((extra) => {\n const extraAlia = this.getVariable(target[extra]);\n if (extraAlia && alias.indexOf(extraAlia) === -1) {\n result += ` - ${extraAlia}`;\n }\n });\n return result;\n }\n\n /* 格式化模板变量上的显示 */\n getAliasValue(instance: Record, alias: string) {\n const result = instance[alias];\n return Array.isArray(result) ? result.join() : result;\n }\n\n formatVarDisplay(instance: Record, displayTpl: string | undefined, instanceAlias: string) {\n // 获取display=aaa${InstanceName}bbb${InstanceId}ccc\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !this.InstanceAliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(instance, b);\n });\n }\n return this.getAliasValue(instance, instanceAlias);\n }\n /**\n * @param query 模板变量配置填写的 Query 参数对象,由顶层将字符串转换为了对象\n */\n async metricFindQuery(query: MetricQuery, regex?: string) {\n const { action, namespace, display, payload = {} } = query;\n let { region, instancealias = this.templateQueryIdMap.instance } = query;\n if (!action || !namespace) {\n return [];\n }\n // 支持payload里传入模板变量\n if (_.isObject(payload)) {\n _.forEach(payload, (value, key) => {\n payload[key] = _.isString(value) ? this.getVariable(value) : value;\n });\n }\n\n // 查询地域列表\n const regionQuery = action.match(/^DescribeRegions$/i);\n if (regionQuery) {\n return this.getRegions();\n }\n\n region = this.getVariable(region); // 将模板region转换为真实值\n\n // 查询实例列表\n if (region && action.match(/^DescribeInstances/i)) {\n const result = await this.getVariableInstances(region, payload);\n instancealias = this.InstanceAliasList.includes(instancealias) ? instancealias : this.templateQueryIdMap.instance;\n\n const res = result.flatMap((item) => {\n const insAlias = this.formatVarDisplay(item, display, instancealias);\n\n item._InstanceAliasValue = insAlias; // FIXME:\n\n if (!item[instancealias]) return [];\n return [\n {\n text: insAlias,\n value: item[this.templateQueryIdMap.instance],\n },\n ];\n });\n\n // 缓存全量实例列表\n await instanceStorage.setInstance(this.service, result);\n return res;\n }\n\n // 在instance实例的基础上查询其他数据\n let instance = this.getVariable(query['instance']);\n if (_.isArray(instance)) instance = instance[0]; // 有额外维度,仅支持实例单选情况\n if (region && action && instance) {\n try {\n // instance = JSON.parse(instance);\n const instanceCache = await instanceStorage.getInstance(this.service);\n\n instance = _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === instance)) ?? {};\n // eslint-disable-next-line no-empty\n } catch (error) {}\n return this.fetchMetricData(action, region, instance, query);\n }\n\n return Promise.resolve([]);\n }\n // 获取指标数据\n async fetchMetricData(action: string, region: string, instance: any, query?: any) {\n return [];\n }\n\n /**\n * 根据 Panel 的配置项,获取相应的监控数据\n *\n * @param options Panel 的配置参数\n * @return 返回数据数组,示例如下\n * [\n * {\n * \"target\": \"AccOuttraffic - ins-123\",\n * \"datapoints\": [\n * [861, 1450754160000],\n * [767, 1450754220000]\n * ]\n * }\n * ]\n */\n async dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options) {\n for (let key of dimKeys) {\n let keyTmp = key;\n const invalidDim = this.InvalidDimensions || this.getInvalidDimensions(this, target[service]);\n if (invalidDim[key]) {\n // 从【维度中】的字段到【实例中】字段的映射。 { functionName: FunctionName }\n keyTmp = invalidDim[key];\n ins[key] = ins[keyTmp];\n }\n\n let extraDimValue = this.getVariable(target[service][keyTmp]);\n if (this.queryMonitorExtraConfg[keyTmp]) {\n const {\n dim_KeyInStorage,\n dim_KeyInTarget = keyTmp,\n dim_KeyInMap,\n dim_KeyInIns,\n } = this.queryMonitorExtraConfg[keyTmp];\n let extraIns = ReplaceVariable(this.templateSrv, options.scopedVars, target[service][dim_KeyInTarget], true);\n let extraSourceMap: any = {};\n try {\n extraSourceMap = JSON.parse(extraIns); // 兼容json字符串的 形式\n } catch (error) {\n if (_.isArray(extraIns)) extraIns = extraIns[0]; // 如果多个,取第一个。除了实例ID 暂不支持其他纬度多选\n const extraStorage = await instanceStorage.getExtraStorage(this.service, dim_KeyInStorage);\n\n extraSourceMap =\n extraStorage?.find((item) => {\n if (_.isArray(item[dim_KeyInMap])) {\n return item[dim_KeyInMap][0] === extraIns;\n }\n return item[dim_KeyInMap] === extraIns;\n }) ?? {};\n }\n const isStringOrNumber = _.isString(extraSourceMap) || _.isNumber(extraSourceMap);\n // 增加ins实例之外的alias,填入到ins._InstanceAliasValue\n const insAlias = ins._InstanceAliasValue;\n const otherAlias = isStringOrNumber ? extraSourceMap : extraSourceMap._InstanceAliasValue;\n if (otherAlias && insAlias.indexOf(otherAlias) === -1) {\n ins._InstanceAliasValue += ` - ${otherAlias}`;\n }\n\n extraDimValue = isStringOrNumber ? extraSourceMap : extraSourceMap?.[dim_KeyInIns || keyTmp];\n } else {\n ins._InstanceAliasValue += this.getOtherAlias(ins, target[service]);\n }\n\n if (\n getTimeShiftInMs(target[service].timeshift) > 0 &&\n ins._InstanceAliasValue.indexOf(target[service].timeshift) === -1\n ) {\n ins._InstanceAliasValue += `_${target[service].timeshift}`;\n }\n // 设置instance,针对额外的维度,需要注意模板变量的值\n // ins[key] = ins[keyTmp] ?? extraDimValue;\n ins[key] = this.getDimensionsVal(ins, keyTmp, extraDimValue);\n // cynosdb产品接口返回维度和入参不一致\n if (this.checkKeys.length > 0) {\n this.checkKeys.forEach((Ekey) => {\n ins[Ekey] = ins[key];\n });\n }\n dimensionObject[key] = { Name: key, Value: ins[key] };\n }\n return dimensionObject;\n }\n getDimensionsVal(ins: Record, key: string, extraDimValue: string) {\n let dimVal = ins[key];\n if (_.isEmpty(dimVal) && this.CandiateDimensions[key]) {\n dimVal = ins[this.CandiateDimensions[key]];\n }\n return dimVal ?? extraDimValue;\n }\n query(options: any) {\n const service = this.service!; // 强制声明非空\n\n const queries = _.filter(options.targets, (item) => {\n // 过滤无效的查询 target\n return (\n item.hide !== true &&\n !!item.namespace &&\n !!item[service].metricName &&\n !_.isEmpty(ReplaceVariable(this.templateSrv, options.scopedVars, item[service].region, false)) &&\n !_.isEmpty(ReplaceVariable(this.templateSrv, options.scopedVars, item[service].instance, true))\n );\n })\n .reduce((prev, target) => {\n if (getTimeShiftInMs(target[service].timeshift) > 0) {\n const cloneTarget = _.cloneDeep(target);\n cloneTarget[service].timeshift = '';\n return [...prev, cloneTarget, target];\n }\n return [...prev, target];\n }, [])\n .map(async (target) => {\n // 实例 instances 可能为模板变量,需先获取实际值\n // 针对JSON字符串和id的形式,分开做处理\n let instances = ReplaceVariable(this.templateSrv, options.scopedVars, target[service].instance, true);\n const instanceCache = await instanceStorage.getInstance(this.service);\n const timeshift = getTimeShiftInMs(target[service].timeshift);\n\n instances = [].concat(instances).map((inst) => {\n try {\n return JSON.parse(inst); // 兼容json字符串的 形式\n } catch (error) {\n // 如果没拿到缓存,取默认实例组\n if (!instanceCache) return this.getDefaultInsObj?.(inst);\n return _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === inst)) ?? {};\n }\n });\n const region = ReplaceVariable(this.templateSrv, options.scopedVars, target[service].region, false);\n const insInReq: any = [];\n for (let ins of instances) {\n const dimensionObject = target[service].dimensionObject;\n // 处理dimensions的值\n const dimKeys = Object.keys(dimensionObject);\n const dimResult = await this.dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options);\n\n insInReq.push([{ Dimensions: GetDimensions(dimResult) }]);\n }\n const data = {\n StartTime: moment(options.range.from).subtract(timeshift).format(),\n EndTime: moment(options.range.to).subtract(timeshift).format(),\n Period: target[service].period || 300,\n Instances: _.flatMap(insInReq),\n Namespace: target.namespace,\n MetricName: target[service].metricName,\n };\n return this.getMonitorData(data, region, instances, target[service], options);\n });\n\n if (queries.length === 0) {\n return [];\n }\n\n return Promise.all(queries)\n .then((responses) => {\n return _.flatten(responses);\n })\n .catch((error) => {\n return [];\n });\n }\n getDefaultInsObj(ins: string) {\n return {} as any;\n }\n getInstanceReqConfig(selfIns: any) {\n return {} as any;\n }\n getInvalidDimensions(selfIns: any, target?: any) {\n return {} as any;\n }\n // 获取某个变量的实际值,this.templateSrv.replace() 函数返回实际值的字符串\n getVariable(metric?: string) {\n const rs = this.templateSrv.replace((metric || '').trim());\n const valStr = rs.match(/\\{([\\w-,]+)\\}/);\n // 判断是否为多选\n if (valStr) {\n return valStr[1].split(',');\n }\n return rs;\n }\n\n /**\n * 获取 监控数据\n * @param params 获取监控数据的请求参数\n * @param region 地域信息\n * @param instances 实例列表,用于对返回结果的匹配解析\n */\n getMonitorData(params, region, instances, target, options) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const timeshift = getTimeShiftInMs(target.timeshift);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { action: 'GetMonitorData', region }\n ).then((response) => {\n return ParseQueryResult(response, instances, timeshift);\n });\n }\n\n getRegions(): any {\n return this.doRequest(\n {\n url: this.url + '/cvm',\n },\n 'cvm',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getMetrics(region = 'ap-guangzhou'): Promise {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: this.namespace,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n ).then((response) => {\n const res = _.filter(\n _.filter(response.MetricSet || [], (item) => !(item.Namespace !== this.namespace || !item.MetricName))\n );\n const resFilterFn = this.MetricReqConfig.resultFilter;\n if (resFilterFn) {\n return res.map((item) => resFilterFn(item));\n }\n return res;\n });\n }\n\n getInstances(region, params = {}) {\n const {\n service = this.service,\n action,\n responseField: field,\n interceptor,\n } = this.InstanceReqConfig || this.getInstanceReqConfig(this);\n params = { Offset: 0, Limit: 100, ...params };\n const serviceInfo = GetServiceAPIInfo(region, service);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: interceptor?.request ? interceptor.request(params) : params,\n },\n serviceInfo.service,\n { region, action }\n ).then((response) => {\n // 处理异常,则不按正常的情况处理,直接抛出错误\n if (response?.Error) {\n console.error(response.Error);\n return response;\n }\n\n let result;\n // 先,field处理\n if (field) {\n result = _.get(response, field) ?? _.get(response, `Result.${field}`) ?? [];\n }\n\n // 后,拦截器处理\n if (interceptor?.response) {\n result = interceptor.response(result);\n }\n return result;\n });\n }\n\n getVariableInstances(region, query = {}): Promise {\n let result: any[] = [];\n const params = { ...{ Offset: 0, Limit: 100 }, ...query };\n\n const {\n service = this.service,\n action,\n responseField: field,\n interceptor,\n } = this.InstanceReqConfig || this.getInstanceReqConfig(this);\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: interceptor?.request ? interceptor.request(params) : params,\n },\n serviceInfo.service,\n { region, action }\n ).then((response) => {\n result = _.get(response, field) ?? _.get(response, `Result.${field}`) ?? [];\n const total =\n response.TotalCount ?? response.TotalCnt ?? response.TotalNumber ?? _.get(response, `Result.TotalCount`) ?? 0;\n if (result.length >= total) {\n return interceptor?.response ? interceptor.response(result) : result;\n } else {\n const param = SliceLength(total, params?.Limit || 100);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getInstances(region, { ...item, ...query }));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return interceptor?.response ? interceptor.response(result) : result;\n })\n .catch((error) => {\n return interceptor?.response ? interceptor.response(result) : result;\n });\n }\n });\n }\n\n // 检查某变量字段是否有值\n isValidConfigField(field: string) {\n return field && field.length > 0;\n }\n\n testDatasource() {\n // const { service = this.service, action } = this.InstanceReqConfig;\n // const serviceInfo = GetServiceAPIInfo('ap-guangzhou', service);\n\n if (!this.isValidConfigField(this.secretId)) {\n return {\n service: this.service,\n status: 'error',\n message: 'The SecretId/SecretKey field is required.',\n };\n }\n\n return Promise.all([\n this.getRegions(),\n this.getMetrics(),\n // this.doRequest(\n // {\n // url: this.url + serviceInfo.path,\n // data: {\n // Offset: 0,\n // Limit: 1,\n // },\n // },\n // service,\n // { region: 'ap-guangzhou', action },\n // ),\n this.getInstances('ap-guangzhou', {\n Offset: 0,\n Limit: 1,\n }),\n ])\n .then((responses) => {\n const cvmErr = _.get(responses, '[0].Error', {});\n const monitorErr = _.get(responses, '[1].Error', {});\n const serviceErr = _.get(responses, '[2].Error', {});\n // const cvmAuthFail = _.get(cvmErr, 'Code', '').indexOf('AuthFailure') !== -1;\n // const monitorAuthFail = _.get(monitorErr, 'Code', '').indexOf('AuthFailure') !== -1;\n // const serviceAuthFail = _.get(serviceErr, 'Code', '').indexOf('AuthFailure') !== -1;\n const cvmAuthFail = _.get(cvmErr, 'Code', '');\n const monitorAuthFail = _.get(monitorErr, 'Code', '');\n const serviceAuthFail = _.get(serviceErr, 'Code', '');\n if (cvmAuthFail || monitorAuthFail || serviceAuthFail) {\n const messages: any[] = [];\n if (cvmAuthFail) {\n messages.push(_.get(cvmErr, 'Code'));\n }\n if (monitorAuthFail) {\n messages.push(_.get(monitorErr, 'Code'));\n }\n if (serviceAuthFail) {\n messages.push(_.get(serviceErr, 'Code'));\n }\n const message = _.join(_.compact(_.uniq(messages)), '; ');\n return {\n service: this.service,\n status: 'error',\n message,\n };\n } else {\n return {\n namespace: this.namespace,\n service: this.service,\n status: 'success',\n message: `Successfully queried the ${this.service} service.`,\n title: 'Success',\n };\n }\n })\n .catch((error) => {\n let message = `${this.service} service:`;\n message += error.statusText ? error.statusText + '; ' : '';\n if (_.get(error, 'data.error.code', '')) {\n message += error.data.error.code + '. ' + error.data.error.message;\n } else if (_.get(error, 'data.error', '')) {\n message += error.data.error;\n } else if (_.get(error, 'data', '')) {\n message += error.data;\n } else {\n message += `Cannot connect to ${this.service} service.`;\n }\n return {\n service: this.service,\n status: 'error',\n message: message,\n };\n });\n }\n\n async doRequest(options, service, signObj: any = {}) {\n options = await GetRequestParams(\n options,\n service,\n signObj,\n this.secretId,\n this.instanceSettings.id,\n this.backendSrv\n );\n return this.backendSrv\n .datasourceRequest(options)\n .then((response) => {\n return _.get(response, 'data.Response', {});\n })\n .catch((error) => {\n throw error;\n });\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { DetailQueryConfig } from './types';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nfunction classFactory(detailConfig) {\n return class QueryCtrl {\n static _config: DetailQueryConfig;\n\n /** @ngInject */\n constructor($scope, $rootScope) {\n Object.assign($scope, detailConfig);\n\n $scope.getDropdown = (field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n return $scope.datasource.getFilterDropdown(service, { field, region: $scope.region });\n };\n }\n };\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n`;\nfunction queryDDOFactory(QueryCtrl) {\n return function queryDDO() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n };\n}\n\nexport default (name: string, config: DetailQueryConfig) => {\n // QueryCtrl._config = config;\n const newQueryIns = classFactory(config);\n coreModule.directive(name, queryDDOFactory(newQueryIns));\n};\n","import coreModule from 'grafana/app/core/core_module';\nimport { DetailQueryConfig } from './types';\n\nclass SPQueryCtrl {\n static _config: DetailQueryConfig;\n\n /** @ngInject */\n constructor($scope, $rootScope) {\n Object.assign($scope, SPQueryCtrl._config);\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n`;\n\nexport function queryDDO() {\n return {\n template: template,\n controller: SPQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\nexport default (name: string, config: DetailQueryConfig) => {\n SPQueryCtrl._config = config;\n coreModule.directive(name, queryDDO);\n};\n","import {\n APIGATEWAYInstanceAliasList,\n APIGATEWAYInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = APIGATEWAYInstanceAliasList;\n InvalidDimensions = APIGATEWAYInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'apigateway',\n action: 'DescribeServicesStatus',\n responseField: 'ServiceSet',\n };\n\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async getEnvironmentNameList(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeServiceEnvironmentList' }\n );\n },\n {\n ServiceId: instanceId,\n },\n 'EnvironmentList'\n );\n const [rs] = res;\n return rs;\n }\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'DescribeServiceEnvironmentList') {\n const rs = await this.getEnvironmentNameList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.environmentName];\n return {\n text: o[this.templateQueryIdMap.environmentName],\n value: o[this.templateQueryIdMap.environmentName],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.environmentList, rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { APIGATEWAYFilterFieldsDescriptor, templateQueryIdMap, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.APIGATEWAYFilterFieldsDescriptor = APIGATEWAYFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n // console.log({namespace, service});\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraDropdown = async (target) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const instanceId = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ region, instanceId });\n\n const result = rs.map((o) => {\n return {\n text: o.EnvironmentName,\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/APIGATEWAY';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'apigatewayQuery';\n\nconst APIGATEWAYInvalidDemensions = {\n serviceId: 'ServiceId',\n environmentName: 'EnvironmentName',\n apiid: 'Apiid',\n apiId: 'Apiid',\n};\n\n// 需和文件名对应\nconst APIGATEWAYInstanceAliasList = ['ServiceId', 'ServiceName'];\n\nconst templateQueryIdMap = {\n instance: 'ServiceId',\n environmentName: 'EnvironmentName',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n environmentList: 'EnvironmentList',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n EnvironmentName: {\n dim_KeyInStorage: keyInStorage.environmentList,\n dim_KeyInTarget: 'EnvironmentName',\n dim_KeyInMap: templateQueryIdMap.environmentName,\n },\n};\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst APIGATEWAYFilterFields = {\n Limit: 20,\n Offset: 0,\n ServiceId: [],\n ServiceName: [],\n NotUsagePlanId: [],\n Environment: [],\n IpVersion: [],\n};\n\nconst APIGATEWAYFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ServiceId',\n enDescriptor: 'ServiceId',\n cnDescriptor: '服务id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ServiceName',\n enDescriptor: 'ServiceName',\n cnDescriptor: '服务名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'NotUsagePlanId',\n enDescriptor: 'NotUsagePlanId',\n cnDescriptor: 'NotUsagePlanId',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Environment',\n enDescriptor: 'Environment',\n cnDescriptor: '环境名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'IpVersion',\n enDescriptor: 'IpVersion',\n cnDescriptor: 'IP版本',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/628/45198',\n namespace,\n fieldDescriptor: APIGATEWAYFilterFieldsDescriptor,\n};\n\nconst APIGATEWAY_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ServiceId',\n EnvironmentName: '',\n queries: APIGATEWAYFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nexport default APIGATEWAY_STATE;\nexport {\n APIGATEWAYFilterFieldsDescriptor,\n templateQueryIdMap,\n APIGATEWAYInstanceAliasList,\n APIGATEWAYInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as APIGATEWAYGetInstanceQueryParams,\n};\n","import {\n BMINTRALBInstanceAliasList,\n BMINTRALBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n isValidMetric,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMINTRALBInstanceAliasList;\n InvalidDimensions = BMINTRALBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmlb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n interceptor: {\n request: (params) => ({\n ...params,\n LoadBalancerType: 'internal',\n }), // 设置一些请求参数的 默认值\n },\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return item;\n }\n return null;\n })\n );\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_INTRA_LB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmIntraLbQuery';\n\nconst BMINTRALBInvalidDemensions = {\n vip: 'LoadBalancerVips',\n vpcId: 'VpcId',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMINTRALBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst BMINTRALBFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n};\n\nconst BMINTRALBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',\n namespace,\n fieldDescriptor: BMINTRALBFilterFieldsDescriptor,\n};\n\nconst BMINTRALB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: BMINTRALBFilterFields,\n};\nconst BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];\nfunction isValidMetric(metric) {\n const validMetrics = _.map(BMLBValidMetricsT, _.toUpper);\n return _.indexOf(validMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default BMINTRALB_STATE;\nexport {\n BMINTRALBFilterFieldsDescriptor,\n templateQueryIdMap,\n BMINTRALBInstanceAliasList,\n BMINTRALBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMINTRALBGetInstanceQueryParams,\n};\n","import { BMLBInstanceAliasList, CPMInvalidDemensions, namespace, templateQueryIdMap, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMLBInstanceAliasList;\n InvalidDimensions = CPMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmlb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n interceptor: {\n request: (params) => ({\n ...params,\n LoadBalancerType: 'open',\n }), // 设置一些请求参数的 默认值\n },\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return item;\n }\n return null;\n })\n );\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_LB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmLbQuery';\n\nconst CPMInvalidDemensions = {\n vip: 'LoadBalancerVips',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst CPMFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n};\n\nconst CPMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',\n namespace,\n fieldDescriptor: CPMFilterFieldsDescriptor,\n};\n\nconst CPM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: CPMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nconst BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];\nfunction isValidMetric(metric) {\n const validMetrics = _.map(BMLBValidMetricsT, _.toUpper);\n return _.indexOf(validMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nexport default CPM_STATE;\nexport {\n CPMFilterFieldsDescriptor,\n templateQueryIdMap,\n BMLBInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMLBGetInstanceQueryParams,\n};\n","import {\n BMPCXInstanceAliasList,\n BMPCXInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMPCXInstanceAliasList;\n InvalidDimensions = BMPCXInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmvpc',\n action: 'DescribeVpcPeerConnections',\n responseField: 'VpcPeerConnectionSet',\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_PCX';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmPcxQuery';\n\nconst BMPCXInvalidDemensions = {\n peeringConnectionId: 'VpcPeerConnectionId',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMPCXInstanceAliasList = ['VpcPeerConnectionId', 'VpcPeerConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'VpcPeerConnectionId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst BMPCXFilterFields = {\n Limit: 20,\n Offset: 0,\n VpcPeerConnectionIds: [],\n};\n\nconst BMPCXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'VpcPeerConnectionIds',\n enDescriptor: 'VpcPeerConnectionIds',\n cnDescriptor: '对等连接实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/product/1024/36903',\n namespace,\n fieldDescriptor: BMPCXFilterFieldsDescriptor,\n};\n\nconst BMPCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpcPeerConnectionId',\n queries: BMPCXFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['peeringConnectionId'];\n });\n return metricTmp;\n}\nexport default BMPCX_STATE;\nexport {\n BMPCXFilterFieldsDescriptor,\n templateQueryIdMap,\n BMPCXInstanceAliasList,\n BMPCXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMPCXGetInstanceQueryParams,\n};\n","import { BWPInstanceAliasList, BWPInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class BWPDatasource extends BaseDatasource {\n Namespace = 'QCE/BWP';\n InstanceAliasList = BWPInstanceAliasList;\n InvalidDimensions = BWPInvalidDemensions;\n templateQueryIdMap = {\n instance: 'BandwidthPackageId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeBandwidthPackages',\n responseField: 'BandwidthPackageSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { BWPFilterFieldsDescriptor } from './query_def';\n\nexport class BWPQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.BWPFilterFieldsDescriptor = BWPFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function bwpQuery() {\n return {\n template: template,\n controller: BWPQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('bwpQuery', bwpQuery);\n","import _ from 'lodash';\nconst networkTypes = [\n { text: 'BGP', value: 'BGP' },\n { text: 'SINGLEISP', value: 'SINGLEISP' },\n { text: 'ANYCAST', value: 'ANYCAST' },\n];\n\nconst chargeTypes = [\n { text: 'top5计费', value: 'TOP5_POSTPAID_BY_MONTH' },\n { text: '月95计费', value: 'PERCENT95_POSTPAID_BY_MONTH' },\n];\nconst BWPFilterFields = {\n 'bandwidth-package_id': [],\n 'bandwidth-package-name': [],\n 'network-type': [],\n 'charge-type': [],\n};\n\nconst BWPFilterFieldsDescriptor = [\n {\n key: 'bandwidth-package_id',\n enDescriptor: 'BandwidthPackage Id',\n cnDescriptor: '带宽包ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'bandwidth-package-name',\n enDescriptor: 'BandwidthPackage Name',\n cnDescriptor: '带宽包名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'network-type',\n enDescriptor: 'network type',\n cnDescriptor: '带宽包类型',\n link: '',\n type: 'select',\n list: networkTypes,\n },\n {\n key: 'charge-type',\n enDescriptor: 'charge type',\n cnDescriptor: '带宽包计费类型',\n link: '',\n type: 'select',\n list: chargeTypes,\n },\n];\n\nconst BWP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'BandwidthPackageId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n BandwidthPackageIds: [''],\n Filters: { ...BWPFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.BandwidthPackageIds)) {\n const BandwidthPackageIds = _.compact(queries.BandwidthPackageIds);\n if (_.uniq(BandwidthPackageIds).length > 0) {\n params.BandwidthPackageIds = _.uniq(BandwidthPackageIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst BWPInstanceAliasList = ['BandwidthPackageId', 'BandwidthPackageName'];\n\nconst templateQueryIdMap = {\n instance: 'BandwidthPackageId',\n};\n\nconst BWPInvalidDemensions = {\n bandwidthPackageId: 'BandwidthPackageId',\n};\nexport default BWP_STATE;\nexport {\n BWPFilterFieldsDescriptor,\n templateQueryIdMap,\n BWPInstanceAliasList,\n BWPInvalidDemensions,\n GetInstanceQueryParams as BWPGetInstanceQueryParams,\n};\n","import { CBSInstanceAliasList, CBSInvalidDemensions, namespace, templateQueryIdMap, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CBSInstanceAliasList;\n InvalidDimensions = CBSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cbs',\n action: 'DescribeDisks',\n responseField: 'DiskSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.filter(rawSet, isValidMetric);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/BLOCK_STORAGE';\nconst queryEditorName = 'cbsQuery';\n\nconst CBSInvalidDemensions = {\n diskId: 'DiskId',\n InstanceId: 'InstanceId',\n diskname: 'DiskName',\n unInstanceId: 'InstanceId',\n};\n\nconst CBSInstanceAliasList = ['DiskId', 'DiskName'];\n\nconst templateQueryIdMap = {\n instance: 'DiskId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst CBSFilterFields = {\n Limit: 20,\n Offset: 0,\n DiskIds: [],\n OrderField: [],\n Order: [],\n ReturnBindAutoSnapshotPolicy: false,\n};\n\nconst CBSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DiskIds',\n enDescriptor: 'DiskIds',\n cnDescriptor: '云硬盘ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Order',\n enDescriptor: 'Order',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'select',\n list: [\n { text: '升序排列', value: 'ASC' },\n { text: '降序排列', value: 'DESC' },\n ],\n },\n {\n key: 'OrderField',\n enDescriptor: 'OrderField',\n cnDescriptor: '排序的依据字段',\n link: '',\n type: 'select',\n list: [\n { text: '云盘的创建时间排序', value: 'CREATE_TIME' },\n { text: '云盘的到期时间排序', value: 'DEADLINE' },\n ],\n },\n {\n key: 'ReturnBindAutoSnapshotPolicy',\n enDescriptor: 'ReturnBindAutoSnapshotPolicy',\n cnDescriptor: '否需要返回云盘绑定的定期快照策略ID',\n link: '',\n type: 'switch',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/362/16315',\n namespace,\n fieldDescriptor: CBSFilterFieldsDescriptor,\n};\n\nconst CBS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DiskId',\n queries: CBSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n return dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1;\n}\nexport default CBS_STATE;\nexport {\n CBSFilterFieldsDescriptor,\n templateQueryIdMap,\n CBSInstanceAliasList,\n CBSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n GetInstanceQueryParams as CBSGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport {\n CDBInstanceAliasList,\n CDBInvalidDemensions,\n isValidMetric,\n modifyDimensons,\n templateQueryIdMap,\n} from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDBDatasource extends BaseDatasource {\n Namespace = 'QCE/CDB';\n InstanceAliasList = CDBInstanceAliasList;\n InvalidDimensions = CDBInvalidDemensions;\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'cdb',\n action: 'DescribeDBInstances',\n responseField: 'Items',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return modifyDimensons(item);\n }\n return null;\n })\n );\n }\n /**\n * 获取 可用区\n * @param region 地域信息\n */\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.ZoneId, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n // 仅对维度组合是InstanceId和InstanceType的指标,其他指标不支持\n getDefaultInsObj(ins: string) {\n return {\n [templateQueryIdMap.instance]: ins,\n InstanceType: 1,\n };\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDBFieldsDescriptor } from './query_def';\n\nexport class CDBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDBFieldsDescriptor = CDBFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'ZoneIds':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cdb', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n`;\n\nexport function cdbQuery() {\n return {\n template: template,\n controller: CDBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cdbQuery', cdbQuery);\n","import _ from 'lodash';\n\nconst InstanceTypes = [\n { text: '主实例', value: 1 },\n { text: '备灾实例', value: 2 },\n { text: '只读实例', value: 3 },\n];\n\nconst Status = [\n { text: '创建中', value: 0 },\n { text: '运行中', value: 1 },\n { text: '隔离中', value: 4 },\n { text: '已隔离', value: 5 },\n];\n\nconst PayTypes = [\n { text: '包年包月', value: 0 },\n { text: '小时计费', value: 1 },\n];\n\nconst TaskStatus = [\n { text: '没有任务', value: 0 },\n { text: '升级中', value: 1 },\n { text: '数据导入中', value: 2 },\n { text: '开放Slave中', value: 3 },\n { text: '外网访问开通中', value: 4 },\n { text: '批量操作执行中', value: 5 },\n { text: '回档中', value: 6 },\n { text: '外网访问关闭中', value: 7 },\n { text: '密码修改中', value: 8 },\n { text: '实例名修改中', value: 9 },\n { text: '重启中', value: 10 },\n { text: '自建迁移中', value: 12 },\n { text: '删除库表中', value: 13 },\n { text: '灾备实例创建同步中', value: 14 },\n { text: '升级待切换', value: 15 },\n { text: '升级切换中', value: 16 },\n { text: '升级切换完成', value: 17 },\n];\n\nconst EngineVersions = [\n { text: '5.1', value: '5.1' },\n { text: '5.5', value: '5.5' },\n { text: '5.6', value: '5.6' },\n { text: '5.7', value: '5.7' },\n];\n\nconst OrderBy = [\n { text: 'InstanceId', value: 'InstanceId' },\n { text: 'InstanceName', value: 'InstanceName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'DeadlineTime', value: 'DeadlineTime' },\n];\n\nconst OrderDirection = [\n { text: 'ASC', value: 'ASC' },\n { text: 'DESC', value: 'DESC' },\n];\n\nconst InitFlag = [\n { text: '未初始化', value: 0 },\n { text: '初始化', value: 1 },\n];\n\nconst CdbErrors = [\n { text: '未锁定', value: 0 },\n { text: '锁定', value: 1 },\n];\n\nconst CDBFields = {\n ProjectId: '',\n InstanceTypes: {},\n Vips: [],\n Status: {},\n Offset: 0,\n Limit: 20,\n SecurityGroupId: '',\n PayTypes: {},\n InstanceNames: [],\n TaskStatus: {},\n EngineVersions: {},\n VpcIds: [],\n ZoneIds: [],\n SubnetIds: [],\n CdbErrors: {},\n OrderBy: {},\n OrderDirection: {},\n InstanceIds: [],\n InitFlag: {},\n};\n\nconst CDBFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceNames',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ZoneIds',\n enDescriptor: 'Zone ID',\n cnDescriptor: '可用区的ID',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'InstanceTypes',\n enDescriptor: 'Instance Type',\n cnDescriptor: '实例类型',\n link: '',\n multiple: true,\n type: 'select',\n list: InstanceTypes,\n },\n {\n key: 'EngineVersions',\n enDescriptor: 'Engine Version',\n cnDescriptor: '实例数据库引擎版本',\n link: '',\n multiple: true,\n type: 'select',\n list: EngineVersions,\n },\n {\n key: 'TaskStatus',\n enDescriptor: 'Task Status',\n cnDescriptor: '实例任务',\n link: '',\n multiple: true,\n type: 'select',\n list: TaskStatus,\n },\n {\n key: 'InitFlag',\n enDescriptor: 'Init Flag',\n cnDescriptor: '实例初始化状态',\n link: '',\n multiple: true,\n type: 'select',\n list: InitFlag,\n },\n {\n key: 'PayTypes',\n enDescriptor: 'Pay Type',\n cnDescriptor: '付费类型',\n link: '',\n multiple: true,\n type: 'select',\n list: PayTypes,\n },\n {\n key: 'CdbErrors',\n enDescriptor: 'CDB Errors',\n cnDescriptor: '实例锁定标记',\n link: '',\n multiple: true,\n type: 'select',\n list: CdbErrors,\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderDirection',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderDirection,\n },\n {\n key: 'Vips',\n enDescriptor: 'Vip',\n cnDescriptor: '实例内网IP地址',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'VpcIds',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '私有网络ID',\n link: 'https://cloud.tencent.com/document/api/215/15778',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'Subnet ID',\n cnDescriptor: '子网ID',\n link: 'https://cloud.tencent.com/document/api/215/15784',\n type: 'inputmulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '项目ID',\n link: 'https://cloud.tencent.com/document/product/378/4400',\n type: 'input',\n },\n {\n key: 'SecurityGroupId',\n enDescriptor: 'Security Group ID',\n cnDescriptor: '安全组ID',\n link: 'https://cloud.tencent.com/document/api/236/15854',\n type: 'input',\n },\n];\n\nconst CDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...CDBFields },\n};\n\nconst CDBInstanceAliasList = ['InstanceId', 'InstanceName', 'Vip'];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n return (\n dimension.length === 2 &&\n ((_.indexOf(dimension, 'instanceid') !== -1 && _.indexOf(dimension, 'insttype') !== -1) ||\n (_.indexOf(dimension, 'InstanceId') !== -1 && _.indexOf(dimension, 'InstanceType') !== -1))\n );\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((i) => CDBInvalidDemensions[i] || i);\n });\n return metricTmp;\n}\nconst CDBInvalidDemensions = {\n instanceid: 'InstanceId',\n insttype: 'InstanceType',\n region: 'Region',\n};\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default CDB_STATE;\n\nexport {\n CDBFieldsDescriptor,\n CDBInstanceAliasList,\n templateQueryIdMap,\n CDBInvalidDemensions,\n isValidMetric,\n modifyDimensons,\n GetInstanceQueryParams as CDBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { CDNInstanceAliasList, CDNInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDNDatasource extends BaseDatasource {\n Namespace = 'QCE/CDN';\n InstanceAliasList = CDNInstanceAliasList;\n InvalidDimensions = CDNInvalidDemensions;\n templateQueryIdMap = {\n instance: 'Domain',\n };\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDNFilterFieldsDescriptor } from './query_def';\n\nexport class CDNQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDNFilterFieldsDescriptor = CDNFilterFieldsDescriptor;\n };\n\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n`;\n\nexport function cdnQuery() {\n return {\n template: template,\n controller: CDNQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cdnQuery', cdnQuery);\n","import _ from 'lodash';\nconst CDNFilterFields = {\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst CDNFilterFieldsDescriptor = [\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumbermulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst CDN_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...CDNFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n // console.log('item', item, queries);\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Value: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n return params;\n}\n\nconst CDNInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst CDNInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default CDN_STATE;\nexport {\n CDNFilterFieldsDescriptor,\n templateQueryIdMap,\n CDNInstanceAliasList,\n CDNInvalidDemensions,\n GetInstanceQueryParams as CDNGetInstanceQueryParams,\n};\n","import { CDNPROVINCEInstanceAliasList, CDNPROVINCEInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CDNPROVINCEInstanceAliasList;\n InvalidDimensions = CDNPROVINCEInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n extrasAlias = ['isp', 'district'];\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n async getConsumerList(params: any) {\n const { region, field } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'cdn');\n\n // 从分页数据,获取全量数据\n const rs = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Name: field,\n },\n },\n serviceInfo.service,\n { action: 'DescribeMapInfo' }\n );\n return (rs.MapInfoList || []).map((o) => {\n return {\n text: o.Name,\n value: o.Name,\n };\n });\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n if (action === 'DescribeMapInfo') {\n const { name: field } = query;\n const rs = await this.getConsumerList({ region, field });\n return rs;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDNPROVINCEFilterFieldsDescriptor, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Isp',\n field: 'isp',\n },\n {\n label: 'Province',\n field: 'district',\n },\n];\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDNPROVINCEFilterFieldsDescriptor = CDNPROVINCEFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, field });\n return rs;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CDN_LOG_DATA';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cdnProvinceQuery';\n\nconst CDNPROVINCEInvalidDemensions = {\n domain: 'Domain',\n // isp: 'Isp',\n projectid: 'ProjectId',\n province: 'district',\n appid: 'AppId',\n};\n\n// 需和文件名对应\nconst CDNPROVINCEInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CDNPROVINCEFilterFields = {\n Limit: 20,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst CDNPROVINCEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst CDNPROVINCE_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n // Isp Province分别在两个接口,单独保存在state\n isp: '',\n district: '',\n queries: CDNPROVINCEFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// const regionSupported = [\n// { text: '华北地区(北京)', value: 'ap-beijing' },\n// { text: '西南地区(成都)', value: 'ap-chengdu' },\n// { text: '西南地区(重庆)', value: 'ap-chongqing' },\n// { text: '华南地区(广州)', value: 'ap-guangzhou' },\n// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n// { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n// { text: '华东地区(南京)', value: 'ap-nanjing' },\n// { text: '华东地区(上海)', value: 'ap-shanghai' },\n// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n// { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n// { text: '亚太东北(东京)', value: 'ap-tokyo' },\n// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n// { text: '北美地区(多伦多)', value: 'na-toronto' },\n// ];\nexport default CDNPROVINCE_STATE;\nexport {\n CDNPROVINCEFilterFieldsDescriptor,\n templateQueryIdMap,\n CDNPROVINCEInstanceAliasList,\n CDNPROVINCEInvalidDemensions,\n namespace,\n queryEditorName,\n // regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CDNPROVINCEGetInstanceQueryParams,\n};\n","import {\n CEIPSUMMARYInstanceAliasList,\n CEIPInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CEIPSUMMARYInstanceAliasList;\n InvalidDimensions = CEIPInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeAddresses',\n responseField: 'AddressSet',\n interceptor: {\n request: (params) => {\n const { Filters } = params;\n if (!Filters) {\n params.Filters = [];\n }\n params.Filters.push({\n Name: 'address-type',\n Values: ['AnycastEIP'],\n });\n return params;\n }, // 设置一些请求参数的 默认值\n // response: (data: unknown[]) =>[\n // {\n // AddressId: 'AddressId',\n // AddressIp: '111.22.3.4'\n // },\n // ],\n },\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n // async getInstances(region, params = {}) {\n // const rawSet = await super.getInstances(region, params);\n // return rawSet.filter((item) => item.AddressType === 'AnycastEIP');\n // }\n\n // async getVariableInstances(region, query = {}) {\n // const rawSet = await super.getVariableInstances(region, query);\n // return rawSet.filter((item) => item.AddressType === 'AnycastEIP');\n // }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CEIP_SUMMARY';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'ceipSummaryQuery';\n\nconst CEIPInvalidDemensions = {\n vip: 'AddressIp',\n eip: 'AddressIp',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst CEIPSUMMARYInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];\n\nconst templateQueryIdMap = {\n instance: 'AddressId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst CEIPFilterFields = {\n Limit: 20,\n Offset: 0,\n 'address-id': [],\n 'address-name': [],\n 'address-ip': [],\n 'address-status': {},\n 'is-arrears': {},\n 'address-isp': {},\n 'instance-id': [],\n 'private-ip-address': [],\n 'network-interface-id': [],\n};\n\nconst CEIPFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'address-id',\n enDescriptor: 'address-id',\n cnDescriptor: ' EIP 的唯一 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-name',\n enDescriptor: 'address-name',\n cnDescriptor: 'EIP 名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-ip',\n enDescriptor: 'address-ip',\n cnDescriptor: 'EIP 的 IP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-status',\n enDescriptor: 'address-status',\n cnDescriptor: 'EIP 的状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'CREATING', value: 'CREATING' },\n { text: 'BINDING', value: 'BINDING' },\n { text: 'BIND', value: 'BIND' },\n { text: 'UNBINDING', value: 'UNBINDING' },\n { text: 'UNBIND', value: 'UNBIND' },\n { text: 'OFFLINING', value: 'OFFLINING' },\n { text: 'BIND_ENI', value: 'BIND_ENI' },\n ],\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: 'EIP 绑定的实例 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'private-ip-address',\n cnDescriptor: 'EIP 绑定的内网 IP ',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'network-interface-id',\n enDescriptor: 'network-interface-id',\n cnDescriptor: ' EIP 绑定的弹性网卡 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'is-arrears',\n enDescriptor: 'is-arrears',\n cnDescriptor: 'EIP 是否欠费',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '欠费状态', value: 'TRUE' },\n { text: '费用状态正常', value: 'FALSE' },\n ],\n },\n {\n key: 'address-isp',\n enDescriptor: 'address-isp',\n cnDescriptor: '运营商类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'BGP', value: 'BGP' },\n { text: 'CMCC', value: 'CMCC' },\n { text: 'CUCC', value: 'CUCC' },\n { text: 'CTCC', value: 'CTCC' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/16702',\n namespace,\n fieldDescriptor: CEIPFilterFieldsDescriptor,\n};\n\nconst CEIP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'AddressId',\n queries: CEIPFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['eip'];\n });\n return metricTmp;\n}\nexport default CEIP_STATE;\nexport {\n CEIPFilterFieldsDescriptor,\n templateQueryIdMap,\n CEIPSUMMARYInstanceAliasList,\n CEIPInvalidDemensions,\n namespace,\n queryEditorName,\n modifyDimensons,\n queryEditorConfig,\n GetInstanceQueryParams as CEIPSUMMARYGetInstanceQueryParams,\n};\n","import { CESInstanceAliasList, CESInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CESInstanceAliasList;\n InvalidDimensions = CESInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'es',\n action: 'DescribeInstances',\n responseField: 'InstanceList',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CES';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cesQuery';\n\nconst CESInvalidDemensions = {\n uInstanceId: 'InstanceId',\n};\n\nconst CESInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst CESFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceIds: [],\n InstanceNames: [],\n OrderByKey: {},\n OrderByType: {},\n IpList: [],\n};\n\nconst CESFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '集群实例ID列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'InstanceNames',\n enDescriptor: 'InstanceNames',\n cnDescriptor: '集群实例名称列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'OrderByKey',\n enDescriptor: 'OrderByKey',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '实例ID', value: 1 },\n { text: '实例名称', value: 2 },\n { text: '可用区', value: 3 },\n { text: '创建时间', value: 4 },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n ],\n },\n {\n key: 'IpList',\n enDescriptor: 'IpList',\n cnDescriptor: '私有网络vip列表',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/845/30631',\n namespace,\n fieldDescriptor: CESFilterFieldsDescriptor,\n};\n\nconst CES_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: CESFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default CES_STATE;\nexport {\n CESFilterFieldsDescriptor,\n templateQueryIdMap,\n CESInstanceAliasList,\n CESInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CESGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\nimport { CFSInstanceAliasList, CFSInvalidDemensions, regionSupported } from './query_def';\nimport { t } from '../../../locale';\nexport default class CFSDatasource extends BaseDatasource {\n InstanceKey: string;\n Namespace: string;\n InstanceAliasList: string[];\n InvalidDimensions: Record;\n templateQueryIdMap = {\n instance: 'FileSystemId',\n };\n extrasAlias = ['version'];\n InstanceReqConfig: { service?: string | undefined; action: string; responseField: string };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n\n this.Namespace = 'QCE/CFS';\n this.InstanceAliasList = CFSInstanceAliasList;\n this.InvalidDimensions = CFSInvalidDemensions;\n this.InstanceReqConfig = {\n service: 'cfs',\n action: 'DescribeCfsFileSystems',\n responseField: 'FileSystems',\n };\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CFSQueryDescriptor } from './query_def';\n\nexport class SCFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CFSQueryDescriptor = CFSQueryDescriptor;\n };\n\n $scope.getVersions = async (target) => {\n // console.log(2222);\n\n // return [{ text: 1, value: 1 }];\n // console.log(target, 'target');\n const { instance, region } = target;\n const fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');\n if (!instance || !region) return [];\n\n return fetcher(region, { FunctionName: JSON.parse(instance).FunctionName }).then((res) => {\n // console.log(res, 'res');\n\n return res;\n });\n };\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: SCFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\ncoreModule.directive('cfsQuery', scfQuery);\n","import _ from 'lodash';\n\nexport const CFSQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'FileSystemId',\n enDescriptor: 'File System Id',\n cnDescriptor: '文件系统 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络(VPC) ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '子网 ID',\n link: '',\n type: 'input',\n },\n];\n\nconst CFS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'FileSystemId',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n FileSystemId: '',\n VpcId: '',\n SubnetId: '',\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst CFSInstanceAliasList = ['FileSystemId', 'FsName'];\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst CFSInvalidDemensions = {\n // functionName: 'FunctionName',\n // namespace: 'Namespace'\n};\n\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-nanjing' },\n { value: 'ap-seoul' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default CFS_STATE;\nexport {\n CFSInstanceAliasList,\n CFSInvalidDemensions,\n templateQueryIdMap,\n regionSupported,\n GetInstanceQueryParams as CFSGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\n// export const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import _, { flattenDeep } from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n CKAFKAInstanceAliasList,\n CKAFKATopicAliasList,\n CKAFKAInvalidDemensions,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\n\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class CKFKADatasource extends BaseDatasource {\n Namespace = 'QCE/CKAFKA';\n InstanceAliasList = CKAFKAInstanceAliasList;\n TopicAliasList = CKAFKATopicAliasList;\n InvalidDimensions = CKAFKAInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'ckafka',\n action: 'DescribeInstances',\n responseField: 'InstanceList',\n };\n extraMetricDims = ['topicId'];\n // extrasAlias = ['topicId', 'consumerGroup', 'partition'];\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n consumerGroupCache = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getConsumerGroups(region, params) {\n const serviceInfo = GetServiceAPIInfo(region, 'ckafka');\n let { InstanceId, groupname = '', topicid = '' } = params;\n groupname = this.getVariable(groupname); // 将模板转换为真实值\n topicid = this.getVariable(topicid); // 将模板转换为真实值\n try {\n groupname = JSON.parse(groupname)[templateQueryIdMap.groupName];\n topicid = JSON.parse(topicid)[templateQueryIdMap.topicId];\n } catch (e) {}\n let consumerGoup = this.consumerGroupCache[InstanceId];\n if (!consumerGoup) {\n // 从分页数据,获取全量数据\n consumerGoup = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeConsumerGroup' }\n );\n },\n _.pick(params, 'InstanceId'),\n ['GroupListForMonitor', 'TopicListForMonitor', 'PartitionListForMonitor', 'GroupList']\n );\n // topick数据从DescribeTopic\n const topicList = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeTopic' }\n );\n },\n _.pick(params, 'InstanceId'),\n ['TopicList']\n );\n consumerGoup[1] = flattenDeep(topicList);\n console.log({ consumerGoup, topicList });\n this.consumerGroupCache[InstanceId] = consumerGoup;\n }\n\n let [GroupList, TopicList, PartitionList, GroupDetailList] = consumerGoup;\n // 无重复数组\n TopicList = _.uniqBy(TopicList, (item) => (item as any).TopicId);\n GroupList = _.uniqBy(GroupList, (item) => (item as any).GroupName);\n PartitionList = _.uniqBy(PartitionList, (item) => (item as any).PartitionId);\n GroupDetailList = _.uniqBy(GroupDetailList, (item) => (item as any).ConsumerGroupName);\n // 如果传入消费者信息,consumergroupname,获取该用户的订阅信息列表\n const SubscribedInfos = GroupDetailList.find((d) => d.ConsumerGroupName === groupname)?.SubscribedInfo || [];\n // 这里为了兼容PartitonList格式,最后转化为数组对象的方式\n const partitions =\n SubscribedInfos.find((sub) => sub.TopicId === topicid)?.Partition?.map((p) => ({\n [templateQueryIdMap.partition]: p,\n })) || [];\n return {\n GroupList,\n TopicList:\n SubscribedInfos.length > 0\n ? SubscribedInfos.map(({ TopicId, TopicName }) => ({ TopicId, TopicName }))\n : TopicList,\n PartitionList: partitions.length > 0 ? partitions : PartitionList,\n };\n }\n formatTopicVarDisplay(topic: Record, displayTpl: string | undefined, topicAlias: string) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !this.TopicAliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(topic, b);\n });\n }\n return this.getAliasValue(topic, topicAlias);\n }\n // 查询指标下的数据\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n let { topicalias, groupname, topicid } = query;\n const result = await this.getConsumerGroups(region, {\n InstanceId: instance.InstanceId,\n groupname,\n topicid,\n });\n let { display } = query;\n const { TopicList, GroupList, PartitionList } = result;\n topicalias = this.TopicAliasList.includes(topicalias) ? topicalias : this.templateQueryIdMap.topicId;\n\n const rs = {\n GroupList: GroupList.map((group) => {\n group._InstanceAliasValue = group.GroupName;\n return {\n text: group.GroupName,\n value: group[templateQueryIdMap.groupName],\n };\n }),\n TopicList: TopicList.map((topic) => {\n const topicAlias = this.formatTopicVarDisplay(topic, display, topicalias);\n topic._InstanceAliasValue = topicAlias || topic[templateQueryIdMap.topicId];\n return {\n text: topicAlias || topic[templateQueryIdMap.topicId],\n value: topic[templateQueryIdMap.topicId], // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去\n TopicName: topic.TopicName,\n };\n }),\n PartitionList: PartitionList.map((par) => {\n par._InstanceAliasValue = par[templateQueryIdMap.partition];\n return {\n text: par[templateQueryIdMap.partition],\n value: par[templateQueryIdMap.partition],\n };\n }),\n };\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.TopicList, TopicList);\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.GroupList, GroupList);\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.PartitionList, PartitionList);\n // console.log({ res1, res2, res3 });\n // console.log({rs});\n // 根据action返回指定的维度数据列表\n switch (action) {\n case 'DescribeTopicList':\n return rs.TopicList;\n case 'DescribeGroup':\n return rs.GroupList;\n case 'DescribePartion':\n return rs.PartitionList;\n default:\n return [];\n }\n }\n\n // async getOtherAlias(datapoints) {\n // let dimension;\n // for(let j = 0; j < datapoints.Dimensions.length; j++){\n // if(datapoints.Dimensions[j] !== 'InstanceName'){\n // dimension.push(datapoints.Dimensions[j])\n // }\n // }\n // console.log(dimension);\n\n // return dimension\n // }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CKAFKAQueryDescriptor, templateQueryIdMap } from './query_def';\nimport { isTargetEqual } from '../../common/utils';\n\nconst ExtraFields = [\n {\n label: 'ConsumerGroup',\n field: 'consumerGroup',\n },\n {\n label: 'TopicId',\n field: 'topicId',\n },\n {\n label: 'Partition',\n field: 'partition',\n },\n];\n\nexport class CKAFKAQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CKAFKAQueryDescriptor = CKAFKAQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n $scope.onInstanceChange = (n, o) => {\n if (isTargetEqual(n, o, 'LoadBalancerId')) return;\n $scope.target.consumerGroup = '';\n $scope.target.topicId = '';\n $scope.target.topicName = '';\n $scope.target.partition = '';\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('ckafka', 'getVariable')(instance);\n if (Array.isArray(instance)) instance = instance[0];\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).InstanceId;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n const InstanceId = $scope.getInstanceId();\n const fetcher = $scope.datasource.getServiceFn('ckafka', 'getConsumerGroups');\n const region = $scope.datasource.getServiceFn('ckafka', 'getVariable')(target.region);\n const res = await fetcher(region, { InstanceId, groupname: target.consumerGroup, topicid: target.topicId });\n\n const { TopicList, GroupList, PartitionList } = res;\n const data = {\n GroupList: GroupList.map((group) => {\n group._InstanceAliasValue = group.GroupName;\n return {\n text: group.GroupName,\n value: JSON.stringify(group),\n };\n }),\n TopicList: TopicList.map((topic) => {\n topic._InstanceAliasValue = topic[templateQueryIdMap.topicId];\n return {\n text: topic[templateQueryIdMap.topicId],\n value: JSON.stringify(topic), // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去\n };\n }),\n PartitionList: PartitionList.map((par) => {\n par._InstanceAliasValue = par[templateQueryIdMap.partition];\n return {\n text: String(par[templateQueryIdMap.partition]),\n value: JSON.stringify(par),\n };\n }),\n };\n\n switch (field) {\n case 'consumerGroup':\n return data.GroupList;\n case 'topicId':\n return data.TopicList;\n case 'partition':\n return data.PartitionList;\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: CKAFKAQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n instance: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\ncoreModule.directive('ckafkaQuery', scfQuery);\n","import _ from 'lodash';\n\nexport const CKAFKAQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstanceId',\n cnDescriptor: '按照实例ID过滤',\n link: '',\n type: 'input',\n },\n {\n key: 'SearchWord',\n enDescriptor: 'SearchWord',\n cnDescriptor: '按照实例名称过滤,支持模糊查询',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '匹配标签key值',\n link: '',\n type: 'input',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例的状态,不填默认返回全部',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 0 },\n { text: '运行中', value: 1 },\n { text: '删除中', value: 2 },\n ],\n },\n];\n\nconst CKAFKA_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n topicId: '',\n topicName: '',\n consumerGroup: '',\n partition: '',\n queries: {\n Offset: 0,\n Limit: 10,\n Status: [],\n InstanceId: '',\n SearchWord: '',\n TagKey: '',\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst CKAFKAInstanceAliasList = ['InstanceId', 'InstanceName'];\nconst CKAFKATopicAliasList = ['TopicId', 'TopicName'];\n// 保存在模板变量value中的key\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n topicId: 'TopicId',\n groupName: 'GroupName',\n partition: 'PartitionId',\n};\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst CKAFKAInvalidDemensions = new Proxy(\n {\n topicId: 'TopicId',\n topicName: 'TopicName',\n consumerGroup: 'GroupName',\n partition: 'PartitionId',\n },\n {\n get: (obj, prop) => {\n if (String(prop).toLocaleLowerCase() === 'instanceid') return 'InstanceId';\n return obj[prop];\n },\n }\n);\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n TopicList: 'TopicList',\n GroupList: 'GroupList',\n PartitionList: 'PartitionList',\n};\n\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n TopicId: {\n dim_KeyInStorage: keyInStorage.TopicList,\n dim_KeyInTarget: 'topicId',\n dim_KeyInMap: templateQueryIdMap.topicId,\n },\n // topicName和topicId是同一个storage中的source,所以根据topicId帅选\n TopicName: {\n dim_KeyInStorage: keyInStorage.TopicList,\n dim_KeyInTarget: 'topicId',\n dim_KeyInMap: templateQueryIdMap.topicId,\n },\n GroupName: {\n dim_KeyInStorage: keyInStorage.GroupList,\n dim_KeyInTarget: 'consumerGroup',\n dim_KeyInMap: templateQueryIdMap.groupName,\n },\n PartitionId: {\n dim_KeyInStorage: keyInStorage.PartitionList,\n dim_KeyInTarget: 'partition',\n dim_KeyInMap: templateQueryIdMap.partition,\n },\n};\nexport default CKAFKA_STATE;\nexport {\n CKAFKAInstanceAliasList,\n CKAFKATopicAliasList,\n CKAFKAInvalidDemensions,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n GetInstanceQueryParams as CKAFKAGetInstanceQueryParams,\n};\n","import {\n InstanceAliasList,\n LOADBALANCEListenerAliasList,\n LOADBALANCEServerAliasList,\n LOADBALANCEVALIDDIMENSIONS,\n templateQueryIdMap,\n keyInStorage,\n CANDIATEDIMENSIONS,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class DCDatasource extends BaseDatasource {\n // Namespace = namespace;\n InstanceAliasList = InstanceAliasList;\n ListenerAliasList = LOADBALANCEListenerAliasList;\n ServerAliasList = LOADBALANCEServerAliasList;\n CandiateDimensions = CANDIATEDIMENSIONS;\n // InvalidDimensions = LOADBALANCEVALIDDIMENSIONS;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n // InstanceReqConfig = {\n // service: 'clb',\n // action: 'DescribeLoadBalancers',\n // responseField: 'LoadBalancerSet',\n // };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getInvalidDimensions(selfIns: any, tagret: any) {\n if (selfIns.service === 'lbPrivate' || (selfIns.service === 'lbPublic' && tagret.servers))\n return { ...LOADBALANCEVALIDDIMENSIONS, vpcId: 'NumericalVpcId' };\n return LOADBALANCEVALIDDIMENSIONS;\n }\n getInstanceReqConfig(selfIns: any) {\n const res: any = {\n service: 'clb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n if (selfIns.service === 'lbPrivate' || selfIns.service === 'loadBalance') {\n res.interceptor = {\n request: (param) => ({ ...param, LoadBalancerType: 'INTERNAL' }),\n };\n }\n if (selfIns.service === 'lbPublic') {\n res.interceptor = {\n request: (param) => ({ ...param, LoadBalancerType: 'OPEN' }),\n };\n }\n return res;\n }\n async getListenerList(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'clb');\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeListeners' }\n );\n },\n {\n LoadBalancerId: instanceId,\n },\n 'Listeners'\n );\n const [rs] = res;\n return rs;\n }\n formatVariableDisplay(data: Record, displayTpl: string | undefined, alias: string, aliasList: string[]) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !aliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(data, b);\n });\n }\n return this.getAliasValue(data, alias);\n }\n async getServerList(params: any) {\n const { region, instanceId, listenerId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'clb');\n\n const res = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { LoadBalancerId: instanceId, ListenerIds: [listenerId] },\n },\n serviceInfo.service,\n { region, action: 'DescribeTargets' }\n );\n const { Listeners } = res;\n const serversList = _.reduce(\n Listeners,\n (prev, item) => {\n const { Rules, Targets } = item;\n if (!_.isEmpty(Rules)) {\n return _.concat(prev, _.flatten(_.map(Rules, (elem) => (_.isEmpty(elem.Targets) ? [] : elem.Targets))));\n }\n if (!_.isEmpty(Targets)) {\n return _.concat(prev, Targets);\n }\n return prev;\n },\n []\n );\n return serversList;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const { display } = query;\n if (action === 'DescribeListeners') {\n const rs = await this.getListenerList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n let { listeneralias } = query;\n listeneralias = this.ListenerAliasList.includes(listeneralias) ? listeneralias : this.templateQueryIdMap.listener;\n const result = rs.flatMap((o) => {\n const listenAlias = this.formatVariableDisplay(o, display, listeneralias, this.ListenerAliasList);\n const lisId = o[this.templateQueryIdMap.listener];\n o._InstanceAliasValue = listenAlias || lisId;\n // if (!o[listeneralias]) return [];\n return {\n text: listenAlias || lisId,\n value: lisId,\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.listener, rs);\n return result;\n }\n if (action === 'DescribeServer' || action === 'DescribeServerPort') {\n const { listenerid, serverprivateip, serveralias } = query;\n const serverPrivateIp = this.getVariable(serverprivateip);\n const serversList = await this.getServerList({\n region,\n instanceId: instance[this.templateQueryIdMap.instance],\n listenerId: this.getVariable(listenerid),\n });\n const serverAlias = this.ServerAliasList.includes(serveralias) ? serveralias : this.templateQueryIdMap.servers;\n const result = _.chain(serversList)\n .filter((item) => {\n if (action === 'DescribeServer') {\n return true;\n }\n return serverPrivateIp === _.get(item, 'PrivateIpAddresses.0');\n })\n .map((item) => {\n const alias = this.formatVariableDisplay(item, display, serverAlias, this.ServerAliasList);\n const id = item[this.templateQueryIdMap.servers][0];\n item._InstanceAliasValue = alias || id;\n return action === 'DescribeServer'\n ? {\n text: alias || id,\n value: id,\n }\n : {\n text: `${_.get(item, 'Port')}`,\n value: _.get(item, 'Port'),\n };\n })\n .value();\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.servers, serversList);\n return action === 'DescribeServer' ? result : _.uniqBy(result, 'text');\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { get, chain } from 'lodash';\nimport { LOADBALANCEFieldsDescriptor, templateQueryIdMap, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\nimport { isTargetEqual } from '../../common/utils';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.LOADBALANCEFieldsDescriptor = LOADBALANCEFieldsDescriptor;\n $scope.serversList = [];\n };\n $scope.onFieldChange = (field) => {\n $scope.onRefresh();\n };\n $scope.onInstanceChange = (n, o) => {\n if (isTargetEqual(n, o, 'InstanceId')) return;\n $scope.target.listener = '';\n $scope.target.servers = '';\n $scope.target.serverPort = '';\n };\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace(namespace);\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {\n // console.log();\n }\n return variableData;\n };\n $scope.getExtraDropdown = async (target) => {\n const { instance } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getListenerList')({ region, instanceId });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.listener];\n return {\n text: o[templateQueryIdMap.listener],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n $scope.getServersDropdown = async (target) => {\n const { instance, listener } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const listenerId = $scope.getVariableId(listener, 'listener');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const serversList = await $scope.datasource.getServiceFn(\n service,\n 'getServerList'\n )({ region, instanceId, listenerId });\n $scope.serversList = serversList;\n const res = chain(serversList)\n .map((item) => {\n item._InstanceAliasValue = get(item, 'PrivateIpAddresses.0');\n return {\n text: get(item, 'PrivateIpAddresses.0'),\n value: JSON.stringify(item),\n };\n })\n .uniqBy('text')\n .value();\n return res;\n };\n $scope.getServerPortDropdown = async (target) => {\n const { servers } = $scope.target;\n let serverPortList: any[] = [];\n try {\n const serversSource = JSON.parse(servers);\n serverPortList = chain($scope.serversList)\n .filter((item) => get(serversSource, 'PrivateIpAddresses.0') === get(item, 'PrivateIpAddresses.0'))\n .map((item) => {\n item._InstanceAliasValue = get(item, 'Port');\n return {\n text: `${get(item, 'Port')}`,\n value: JSON.stringify(item),\n };\n })\n .value();\n } catch (error) {}\n return serverPortList;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n namespace: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\ncoreModule.directive('clbQuery', sQuery);\n","import _ from 'lodash';\n\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/LOADBALANCE';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'loadBalanceQuery';\n\nconst ForwardTypes = [\n { text: '通用的负载均衡', value: 1 },\n { text: '传统的负载均衡', value: 0 },\n];\n\nconst OrderBy = [\n { text: 'LoadBalancerName', value: 'LoadBalancerName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'Domain', value: 'Domain' },\n { text: 'LoadBalancerType', value: 'LoadBalancerType' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\n\nconst WithRs = [\n { text: '没有绑定后端服务', value: 0 },\n { text: '绑定后端服务', value: 1 },\n { text: '查询全部', value: -1 },\n];\nconst LOADBALANCEFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',\n link: '',\n type: 'inputNumber',\n min: 1,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancer ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancer Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'Forward',\n enDescriptor: 'Forward',\n cnDescriptor: '负载均衡实例类型',\n link: '',\n type: 'select',\n list: ForwardTypes,\n },\n {\n key: 'Domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',\n link: '',\n type: 'input',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancer Vips',\n cnDescriptor: '负载均衡实例的 VIP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivate Ips',\n cnDescriptor: '负载均衡绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPublicIps',\n enDescriptor: 'BackendPublic Ips',\n cnDescriptor: '负载均衡绑定的后端服务的外网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '负载均衡实例所属的项目 ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'VpcId',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '负载均衡实例所属私有网络',\n link: '',\n type: 'input',\n },\n {\n key: 'SecurityGroup',\n enDescriptor: 'Security Group',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'input',\n },\n {\n key: 'MasterZone',\n enDescriptor: 'Master Zone',\n cnDescriptor: '主可用区ID',\n link: '',\n type: 'input',\n },\n {\n key: 'WithRs',\n enDescriptor: 'WithRs',\n cnDescriptor: '负载均衡是否绑定后端服务',\n link: '',\n type: 'select',\n list: WithRs,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderType,\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',\n namespace,\n fieldDescriptor: LOADBALANCEFieldsDescriptor,\n};\nconst LBFields = {\n LoadBalancerIds: [],\n Forward: undefined,\n LoadBalancerName: '',\n Domain: '',\n LoadBalancerVips: [],\n BackendPublicIps: [],\n BackendPrivateIps: [],\n Limit: 20,\n Offset: 0,\n ProjectId: undefined,\n WithRs: {},\n VpcId: '',\n SecurityGroup: '',\n MasterZone: '',\n OrderBy: {},\n OrderType: {},\n};\n\nconst LOADBALANCE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n Port: '',\n Protocol: '',\n listener: '',\n servers: '',\n serverPort: '',\n // listenerAlias: 'ListenerId',\n queries: LBFields,\n};\n\n// function GetInstanceQueryParams(queries: any = {}) {\n// const params: any = {};\n// if (!_.isEmpty(queries)) {\n// params.Limit = _.get(queries, 'Limit', 20) || 20;\n// params.Offset = _.get(queries, 'Offset', 0) || 0;\n// queries = _.omit(queries, ['Offset', 'Limit']);\n// _.forEach(queries, (item: any, key) => {\n// if (_.isArray(item)) {\n// item = _.compact(item);\n// if (item.length > 0) {\n// params[key] = _.uniq(item);\n// }\n// } else if (_.isObject(item)) {\n// if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n// params[key] = _.get(item, 'value');\n// }\n// } else if (_.isNumber(item) || !_.isEmpty(item)) {\n// params[key] = item;\n// }\n// });\n// }\n// return params;\n// }\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nconst InstanceAliasList = ['LoadBalancerId', 'LoadBalancerName', 'LoadBalancerVips'];\nconst LOADBALANCEListenerAliasList = ['ListenerId', 'ListenerName', 'Port'];\nconst LOADBALANCEServerAliasList = ['PrivateIpAddresses', 'InstanceId'];\nconst LOADBALANCEVALIDDIMENSIONS = {\n vip: 'LoadBalancerVips',\n // vpcId: 'NumericalVpcId',\n loadBalancerPort: 'Port',\n protocol: 'Protocol',\n lanIp: 'PrivateIpAddresses',\n port: 'ServerPort',\n};\n// 对于ipv6类型,vip应该取AddressIPv6。\nconst CANDIATEDIMENSIONS = {\n LoadBalancerVips: 'AddressIPv6',\n};\n// dimensionObject[item] = { Name: item, Value: '' };\n// const LOADBALANCE_INSTANCE_DIMENSIONOBJECTS = {\n// vip: { Name: 'vip', Value: '' },\n// };\n// const LOADBALANCE_LISTENER_DIMENSIONOBJECTS = {\n// vip: { Name: 'vip', Value: '' },\n// loadBalancerPort: { Name: 'loadBalancerPort', Value: '' },\n// protocol: { Name: 'protocol', Value: '' },\n// };\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n listener: 'ListenerId',\n servers: 'PrivateIpAddresses',\n port: 'Port',\n};\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n listener: 'ListenerList',\n servers: 'ServersList',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n Port: {\n dim_KeyInStorage: keyInStorage.listener,\n dim_KeyInTarget: 'listener',\n dim_KeyInMap: templateQueryIdMap.listener,\n },\n Protocol: {\n dim_KeyInStorage: keyInStorage.listener,\n dim_KeyInTarget: 'listener',\n dim_KeyInMap: templateQueryIdMap.listener,\n },\n PrivateIpAddresses: {\n dim_KeyInStorage: keyInStorage.servers,\n dim_KeyInTarget: 'servers',\n dim_KeyInMap: templateQueryIdMap.servers,\n },\n ServerPort: {\n dim_KeyInStorage: keyInStorage.servers,\n dim_KeyInTarget: 'serverPort',\n dim_KeyInIns: 'Port',\n dim_KeyInMap: templateQueryIdMap.port,\n },\n};\nexport default LOADBALANCE_STATE;\nexport {\n LOADBALANCEFieldsDescriptor,\n InstanceAliasList,\n LOADBALANCEListenerAliasList,\n LOADBALANCEServerAliasList,\n LOADBALANCEVALIDDIMENSIONS,\n templateQueryIdMap,\n CANDIATEDIMENSIONS,\n // LOADBALANCE_LISTENER_DIMENSIONOBJECTS,\n // LOADBALANCE_INSTANCE_DIMENSIONOBJECTS,\n queryMonitorExtraConfg,\n keyInStorage,\n queryEditorConfig,\n namespace,\n queryEditorName,\n GetInstanceQueryParams,\n};\n","import {\n CLSInstanceAliasList,\n CLSInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CLSInstanceAliasList;\n InvalidDimensions = CLSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cls',\n action: 'DescribeTopics',\n responseField: 'Topics',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n // async getInstances(region, params = {}) {\n // const superRes = await super.getInstances(region, params);\n // console.log({ superRes });\n // }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CLSFilterFieldsDescriptor, queryEditorName } from './query_def';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.GSEFilterFieldsDescriptor = CLSFilterFieldsDescriptor;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/CLS';\nconst queryEditorName = 'clsQuery';\n\nconst CLSInvalidDemensions = {\n // instanceid: 'TopicId',\n};\n\n// 需和文件名对应\nconst CLSInstanceAliasList = ['TopicId', 'TopicName'];\n\nconst templateQueryIdMap = {\n instance: 'TopicId',\n};\n\n// 需要缓存到storage的内容的key列表\n// const keyInStorage = {\n// fleet: 'fleet', // 实例队列\n// queue: 'queueName', // 会话队列\n// };\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\n// const queryMonitorExtraConfg = {\n// FleetId: {\n// dim_KeyInStorage: keyInStorage.fleet,\n// dim_KeyInTarget: 'FleetId',\n// dim_KeyInMap: templateQueryIdMap.FleetId,\n// },\n// Name: {\n// dim_KeyInStorage: keyInStorage.queue,\n// dim_KeyInTarget: 'Name',\n// dim_KeyInMap: templateQueryIdMap.Name,\n// },\n// };\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CLSFilterFields = {\n Limit: 20,\n Offset: 0,\n topicName: [],\n topicId: [],\n logsetName: [],\n logsetId: [],\n tagKey: [],\n 'tag:tagKey': [],\n storageType: {},\n};\n\nconst CLSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'topicName',\n enDescriptor: 'topicName',\n cnDescriptor: '日志主题名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'topicId',\n enDescriptor: 'topicId',\n cnDescriptor: '日志主题ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'logsetName',\n enDescriptor: 'logsetName',\n cnDescriptor: '日志集名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'logsetId',\n enDescriptor: 'logsetId',\n cnDescriptor: '日志集ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'tag:tagKey',\n enDescriptor: 'tag - tagKey',\n cnDescriptor: '标签键值对',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'storageType',\n enDescriptor: 'storageType',\n cnDescriptor: '日志主题的存储类型',\n link: '',\n type: 'select',\n list: [\n { text: '实时存储', value: 'hot' },\n { text: '离线存储', value: 'cold' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/614/56454',\n namespace,\n fieldDescriptor: CLSFilterFieldsDescriptor,\n};\n\nconst CLS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TopicId',\n uin: '',\n queries: CLSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = item.Dimensions.map((v) => CLSInvalidDemensions[v] || v);\n item.Dimensions = ['uin', 'TopicId'];\n });\n return metricTmp;\n}\nexport default CLS_STATE;\nexport {\n CLSFilterFieldsDescriptor,\n templateQueryIdMap,\n CLSInstanceAliasList,\n CLSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n // queryMonitorExtraConfg,\n // fleetId,\n // keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CLSGetInstanceQueryParams,\n};\n","import { BaseDatasource } from '../_base/datasource';\nimport { InvalidDemensions, InstanceAliasList, templateQueryIdMap } from './query_def';\n\nexport default class CmqDatasource extends BaseDatasource {\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'cmq',\n action: 'DescribeQueueDetail',\n responseField: 'QueueSet',\n };\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawMetric = await super.getMetrics(region);\n return rawMetric.map((metric) => {\n let dims = metric.Dimensions[0].Dimensions;\n dims = Array.from(new Set([...dims, 'queueId', 'queueName']));\n metric.Dimensions[0].Dimensions = dims;\n return metric;\n });\n }\n}\n","import createQuery from '../_base/query';\nimport { InstanceQueryDescriptor } from './query_def';\n\ncreateQuery('cmqQuery', {\n fieldDescriptor: InstanceQueryDescriptor,\n instanceDocUrl: 'https://cloud.tencent.com/document/api/406/42624',\n namespace: 'QCE/CMQ',\n});\n","import _ from 'lodash';\nimport { FildDescriptorType } from '../_base/types';\n\nexport const InstanceQueryDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 50,\n },\n {\n key: 'QueueName',\n enDescriptor: 'QueueName',\n cnDescriptor: '精确匹配QueueName',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签搜索',\n link: '',\n type: 'input',\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = {\n queueId: 'QueueId',\n queueName: 'QueueName',\n};\n\nexport const templateQueryIdMap = {\n instance: 'QueueName',\n};\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['QueueName', 'QueueId'];\nexport { InstanceAliasList, GetInstanceQueryParams };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'QueueName',\n queries: {\n Offset: 0,\n Limit: 20,\n QueueName: '',\n TagKey: '',\n },\n};\n","import { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n InvalidDemensions,\n InstanceAliasList,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class CmqTopicDatasource extends BaseDatasource {\n Namespace = 'QCE/CMQTOPIC';\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'cmq',\n action: 'DescribeTopicDetail',\n responseField: 'TopicSet',\n };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n extraMetricDims = ['subscriptionId']; // 多选\n\n async fetchAllSubscription(region: string, params: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'cmq');\n // console.log(serviceInfo, 'serviceinfo');\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeSubscriptionDetail' }\n );\n },\n params,\n 'SubscriptionSet'\n );\n\n return rs[0];\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n let result;\n switch (action) {\n case 'DescribeSubscriptionDetail':\n result = await this.fetchAllSubscription(region, { TopicName: instance.TopicName });\n // eslint-disable-next-line no-case-declarations\n const rs = result.map((item) => {\n item._InstanceAliasValue = item.SubscriptionId;\n return { text: item.SubscriptionId, value: item[templateQueryIdMap.subscription] };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.subscriptionId, result);\n return rs;\n default:\n return [];\n }\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawMetric = await super.getMetrics(region);\n return rawMetric.map((metric) => {\n let dims = metric.Dimensions[0].Dimensions;\n dims.push('topicId');\n if (['NumOfNotify', 'NumOfSuccNotify'].includes(metric.MetricName)) {\n dims.push('subscriptionId');\n }\n\n dims = Array.from(new Set(dims));\n metric.Dimensions[0].Dimensions = dims;\n return metric;\n });\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { InstanceQueryDescriptor } from './query_def';\n\nconst ExtraFields = [\n {\n label: 'Subscription(订阅)',\n field: 'subscriptionId',\n },\n];\n\nexport class CmqTopicQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.InstanceQueryDescriptor = InstanceQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }\n $scope.cacheMap = {};\n\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getTopicName = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).TopicName;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.onExtraFieldChange = (field) => {\n $scope.onRefresh();\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n if (field === 'subscriptionId') {\n const TopicName = $scope.getTopicName();\n let data = $scope.cacheMap[TopicName];\n\n if (!data) {\n const region = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(target.region);\n const fetcher = $scope.datasource.getServiceFn('cmqTopic', 'fetchAllSubscription');\n const datas = await fetcher(region, { TopicName });\n data = datas.map((item) => {\n item._InstanceAliasValue = item.SubscriptionId;\n return { text: item.SubscriptionId, value: JSON.stringify(item) };\n });\n }\n\n // 缓存\n $scope.cacheMap[TopicName] = data;\n return data;\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: CmqTopicQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('cmqTopicQuery', scfQuery);\n","import _ from 'lodash';\nimport { FildDescriptorType } from '../_base/types';\n\nexport const InstanceQueryDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 50,\n },\n {\n key: 'TopicName',\n enDescriptor: 'TopicName',\n cnDescriptor: '精确匹配TopicName',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签搜索',\n link: '',\n type: 'input',\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = {\n topicId: 'TopicId',\n};\n\n// 因为cmq那边,以TopciName为主键\nexport const templateQueryIdMap = {\n instance: 'TopicName',\n subscription: 'SubscriptionId',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n subscriptionId: 'subscriptionId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n subscriptionId: {\n dim_KeyInStorage: keyInStorage.subscriptionId,\n dim_KeyInTarget: 'subscriptionId',\n dim_KeyInMap: templateQueryIdMap.subscription,\n },\n};\n// 与名称挂钩的变量\nconst InstanceAliasList = ['TopicName', 'TopicId'];\nexport { InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TopicName',\n subscriptionId: '',\n queries: {\n Offset: 0,\n Limit: 20,\n TopicName: '',\n TagKey: '',\n },\n};\n","import { BaseDatasource } from '../_base/datasource';\n\ninterface BucketListResult {\n Owner: { ID: 'string'; DisplayName: 'string' };\n Buckets: { Name: string; Region: string }[];\n}\n\nexport default class CosDatasource extends BaseDatasource {\n InvalidDimensions: Record = {};\n InstanceAliasList: string[] = ['BucketName'];\n templateQueryIdMap = {\n instance: 'BucketName',\n };\n InstanceReqConfig = {} as any; // 不必要的配置\n cosURL: string;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n this.cosURL = `/api/datasources/${this.instanceSettings.id}/resources/tc_cos_list`;\n }\n async getInstances(region: string) {\n return this.backendSrv\n .datasourceRequest({\n url: this.cosURL,\n method: 'GET',\n params: { region },\n headers: { 'Content-Type': 'application/json' },\n })\n .then((res) => {\n let { data }: { data: BucketListResult } = res;\n data = data || ({} as any);\n let { Buckets } = data;\n Buckets = Buckets || [];\n\n // name contains appid,see detail https://cloud.tencent.com/document/product/436/8291\n return Buckets.map((item) => ({\n ...item,\n BucketName: item.Name,\n bucket: item.Name,\n appid: item.Name.split('-').slice(-1)[0],\n }));\n });\n }\n\n async getVariableInstances(region) {\n return this.getInstances(region);\n }\n}\n","import _ from 'lodash';\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['BucketName'];\nexport { InstanceAliasList, GetInstanceQueryParams };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'BucketName',\n queries: {},\n};\n","import {\n CPMInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CPMInstanceAliasList;\n InvalidDimensions = CPMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bm',\n action: 'DescribeDevices',\n responseField: 'DeviceInfoSet',\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n\n getFilterDropdown({ field, region }) {\n if (field === 'DeviceClassCode') {\n const serviceInfo = GetServiceAPIInfo(region, 'bm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n 'bm',\n { region, action: 'DescribeDeviceClass' }\n ).then((response) => {\n return _.map(response.DeviceClassSet || [], (item) => {\n return { text: item.DeviceClassCode, value: item.DeviceClassCode };\n });\n });\n }\n return [];\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/CPM';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cpmQuery';\n\nconst CPMInvalidDemensions = {\n instanceId: 'InstanceId',\n // uniqid: 'InstanceId',\n};\n\nconst CPMInstanceAliasList = ['InstanceId', 'Name'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CPMFilterFields = {\n Limit: 20,\n Offset: 0,\n DeviceClassCode: '',\n InstanceIds: [],\n WanIps: [],\n LanIps: [],\n Alias: '',\n VagueIp: '',\n AutoRenewFlag: {},\n VpcId: '',\n SubnetId: '',\n DeviceType: {},\n IsLuckyDevice: {},\n};\n\nconst CPMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DeviceClassCode',\n enDescriptor: 'DeviceClassCode',\n cnDescriptor: '机型ID',\n link: '',\n type: 'dropdown',\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '设备ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'WanIps',\n enDescriptor: 'WanIps',\n cnDescriptor: '外网IP数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LanIps',\n enDescriptor: 'LanIps',\n cnDescriptor: '内网IP数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Alias',\n enDescriptor: 'Alias',\n cnDescriptor: '设备名称',\n link: '',\n type: 'input',\n },\n {\n key: 'VagueIp',\n enDescriptor: 'VagueIp',\n cnDescriptor: '模糊IP查询',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenewFlag',\n enDescriptor: 'AutoRenewFlag',\n cnDescriptor: '自动续费标志',\n link: '',\n type: 'select',\n list: [\n { text: '不自动续费', value: 0 },\n { text: '自动续费', value: 1 },\n ],\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络唯一ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '子网唯一ID',\n link: '',\n type: 'input',\n },\n {\n key: 'DeviceType',\n enDescriptor: 'DeviceType',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'select',\n list: [\n { text: '计算型', value: 'compute' },\n { text: '标准型', value: 'standard' },\n { text: '存储型', value: 'storage' },\n ],\n },\n {\n key: 'IsLuckyDevice',\n enDescriptor: 'IsLuckyDevice',\n cnDescriptor: '竞价实例机器过滤',\n link: '',\n type: 'select',\n list: [\n { text: '非竞价实例机器', value: 0 },\n { text: '竞价实例的机器', value: 1 },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/386/32904',\n namespace,\n fieldDescriptor: CPMFilterFieldsDescriptor,\n};\n\nconst CPM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: CPMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['instanceId'];\n });\n return metricTmp;\n}\nexport default CPM_STATE;\nexport {\n CPMFilterFieldsDescriptor,\n templateQueryIdMap,\n CPMInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CPMGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { CVMInstanceAliasList, isValidMetric, modifyDimensons } from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CVMDatasource extends BaseDatasource {\n Namespace = 'QCE/CVM';\n InstanceAliasList = CVMInstanceAliasList;\n InvalidDimensions = {};\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'cvm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return modifyDimensons(item);\n }\n return null;\n })\n );\n }\n\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'cvm' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'api');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { Product: 'cvm' },\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CVMFilterFieldsDescriptor } from './query_def';\n\nexport class CVMQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CVMFilterFieldsDescriptor = CVMFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function cvmQuery() {\n return {\n template: template,\n controller: CVMQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cvmQuery', cvmQuery);\n","import _ from 'lodash';\nconst instanceChargeTypes = [\n { text: '预付费', value: 'PREPAID' },\n { text: '后付费', value: 'POSTPAID_BY_HOUR' },\n { text: 'CDH付费', value: 'CDHPAID' },\n];\n\nconst CVMFilterFields = {\n zone: [],\n 'project-id': [],\n 'host-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n 'instance-id': [],\n 'security-group-id': [],\n 'instance-name': [],\n 'instance-charge-type': {},\n 'private-ip-address': [],\n 'public-ip-address': [],\n 'tag-key': [],\n};\n\nconst CVMFilterFieldsDescriptor = [\n {\n key: 'zone',\n enDescriptor: 'Zone',\n cnDescriptor: '可用区',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'project-id',\n enDescriptor: 'Project ID',\n cnDescriptor: '项目ID',\n link: 'https://cloud.tencent.com/document/api/378/4400',\n type: 'inputNumbermulti',\n },\n {\n key: 'host-id',\n enDescriptor: 'CDH ID',\n cnDescriptor: 'CDH ID',\n link: 'https://cloud.tencent.com/document/product/416/19730',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC ID',\n cnDescriptor: 'VPC ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'Subnet ID',\n cnDescriptor: '子网ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'security-group-id',\n enDescriptor: 'Security Group ID',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'tag-key',\n enDescriptor: '标签简',\n cnDescriptor: '标签简',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-charge-type',\n enDescriptor: 'Instance Charge Type',\n cnDescriptor: '实例计费模式',\n link: '',\n type: 'select',\n list: instanceChargeTypes,\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: '实例主网卡的内网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'Public IP Address',\n cnDescriptor: '实例主网卡的公网IP,包含实例创建时自动分配的IP和实例创建后手动绑定的弹性IP',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst CVM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n InstanceIds: [''],\n Filters: { ...CVMFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst CVMInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];\n\nconst CVMValidMetricsT = [\n 'CPUUsage',\n 'CpuLoadavg',\n 'Cpuloadavg5m',\n 'Cpuloadavg15m',\n 'BaseCpuUsage',\n 'GpuMemTotal',\n 'GpuMemUsage',\n 'GpuMemUsed',\n 'GpuPowDraw',\n 'GpuPowLimit',\n 'GpuPowUsage',\n 'GpuTemp',\n 'GpuUtil',\n 'LanOuttraffic',\n 'LanIntraffic',\n 'LanOutpkg',\n 'LanInpkg',\n 'WanOuttraffic',\n 'WanIntraffic',\n 'WanOutpkg',\n 'WanInpkg',\n 'AccOuttraffic',\n 'TcpCurrEstab',\n 'TimeOffset',\n 'MemUsed',\n 'MemUsage',\n 'CvmDiskUsage',\n 'BaseCpuUsage',\n 'VmDiskReadIops',\n];\n// const CVMInvalidDemensions = {\n// 'vm_uuid': 'InstanceId',\n// 'vmUuid': 'InstanceId',\n// };\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nfunction isValidMetric(metric) {\n const CVMValidMetrics = _.map(CVMValidMetricsT, _.toUpper);\n return _.indexOf(CVMValidMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\nexport default CVM_STATE;\nexport {\n CVMFilterFieldsDescriptor,\n CVMInstanceAliasList,\n isValidMetric,\n modifyDimensons,\n templateQueryIdMap,\n // CVMInvalidDemensions,\n GetInstanceQueryParams as CVMGetInstanceQueryParams,\n};\n","import {\n CYNOSDBMYSQLInstanceAliasList,\n CYNOSDBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n checkKeys,\n} from './query_def';\nimport _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\n// import { t } from '../../../locale';\n\nexport default class CYNOSDBMYSQLDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CYNOSDBMYSQLInstanceAliasList;\n InvalidDimensions = CYNOSDBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n checkKeys = checkKeys;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cynosdb',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n // getRegions() {\n // return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n // }\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'cynosdbmysql' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n // 仅对维度组合是InstanceId的指标,其他指标不支持\n getDefaultInsObj(ins: string) {\n return {\n [templateQueryIdMap.instance]: ins,\n };\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CYNOSDB_MYSQL';\n\n// 按照驼峰方式命名,和SERVICES保持一致,abcDeF会成为angular组件名字\nconst queryEditorName = 'cynosdbMysqlQuery';\n\nconst cynosdbMysqlFilterFields = {\n Limit: 20,\n Offset: 0,\n OrderBy: {},\n OrderByType: {},\n InstanceIds: [],\n DbType: {},\n // Status: '',\n};\n\nconst cynosdbMysqlFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 1000,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '实例id列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '创建时间', value: 'CREATETIME' },\n { text: '过期时间', value: 'PERIODENDTIME' },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序类型',\n link: '',\n type: 'select',\n list: [\n { text: '升序', value: 'ASC' },\n { text: '降序', value: 'DESC' },\n ],\n },\n {\n key: 'DbType',\n enDescriptor: 'DbType',\n cnDescriptor: '引擎类型',\n link: '',\n type: 'select',\n list: [\n { text: 'MYSQL', value: 'MYSQL' },\n { text: 'POSTGRESQL', value: 'POSTGRESQL' },\n ],\n },\n // {\n // key: 'Status',\n // enDescriptor: 'Status',\n // cnDescriptor: '实例状态',\n // link: '',\n // type: 'input',\n // },\n];\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n];\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1003/48334',\n namespace,\n fieldDescriptor: cynosdbMysqlFilterFieldsDescriptor,\n};\n\nconst CYNOSDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: cynosdbMysqlFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// 和文件名字一样CYNOSDBMYSQL\nconst CYNOSDBMYSQLInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\nconst CYNOSDBInvalidDemensions = {\n instanceid: 'InstanceId',\n instanceId: 'InstanceId',\n};\nconst checkKeys = ['instanceId'];\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\n\nexport default CYNOSDB_STATE;\nexport {\n cynosdbMysqlFilterFieldsDescriptor,\n templateQueryIdMap,\n CYNOSDBMYSQLInstanceAliasList,\n CYNOSDBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n checkKeys,\n // params前缀为service的全大写\n GetInstanceQueryParams as CYNOSDBMYSQLGetInstanceQueryParams,\n};\n","import { DCInstanceAliasList, DCInvalidDemensions, namespace, modifyDimensons } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCInstanceAliasList;\n InvalidDimensions = DCInvalidDemensions;\n templateQueryIdMap = {\n instance: 'DirectConnectId',\n };\n InstanceReqConfig = {\n service: 'dc',\n action: 'DescribeDirectConnects',\n responseField: 'DirectConnectSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DC';\nconst queryEditorName = 'dcQuery';\n\nconst DCFilterFields = {\n Limit: 20,\n Offset: 0,\n DirectConnectIds: [],\n};\n\nconst DCFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DirectConnectIds',\n enDescriptor: 'DirectConnectIds',\n cnDescriptor: '物理专线 ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/216/34826',\n namespace,\n fieldDescriptor: DCFilterFieldsDescriptor,\n};\n\nconst DC_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectId',\n queries: DCFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nconst DCInstanceAliasList = ['DirectConnectId', 'DirectConnectName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectId',\n};\n\nconst DCInvalidDemensions = {\n directConnectId: 'DirectConnectId',\n directconnectid: 'DirectConnectId',\n};\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['directConnectId'];\n });\n return metricTmp;\n}\nexport default DC_STATE;\nexport {\n DCFilterFieldsDescriptor,\n templateQueryIdMap,\n DCInstanceAliasList,\n DCInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as DCGetInstanceQueryParams,\n};\n","import {\n DCDBInstanceAliasList,\n DCDBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCDBInstanceAliasList;\n InvalidDimensions = DCDBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'dcdb',\n action: 'DescribeDCDBInstances',\n responseField: 'Instances',\n };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n extraActionMap = {\n DescribeDCDBShards: {\n service: 'dcdb',\n action: 'DescribeDCDBShards',\n responseField: 'Shards',\n pickKey: 'ShardInstanceId',\n },\n DescribeDCDBInstanceNodeInfo: {\n service: 'dcdb',\n action: 'DescribeDCDBInstanceNodeInfo',\n responseField: 'NodesInfo',\n pickKey: 'NodeId',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion, 入参的region用广州\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/dcdb',\n },\n 'dcdb',\n { action: 'DescribeDCDBSaleInfo', region: 'ap-guangzhou' }\n ).then((response) => {\n return _.map(response.RegionList || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n RegionState: item.RegionState,\n };\n });\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n InstanceId: instance[this.templateQueryIdMap.instance],\n Limit: 100,\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { DCDBFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'nodeid',\n field: 'NodeId',\n action: 'DescribeDCDBInstanceNodeInfo',\n },\n {\n label: 'shardid',\n field: 'ShardId',\n action: 'DescribeDCDBShards',\n },\n];\nconst dropdownTextConfig = {\n DescribeDCDBInstanceNodeInfo: 'NodeId',\n DescribeDCDBShards: 'ShardInstanceId',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.DCDBFilterFieldsDescriptor = DCDBFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const instanceId = $scope.getInstanceId();\n const payload: any = {\n InstanceId: instanceId,\n Limit: 100,\n };\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { isArray, cloneDeep } from 'lodash';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/TDMYSQL';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'dcdbQuery';\n\nconst DCDBInvalidDemensions = {\n nodeid: 'NodeId',\n instanceid: 'InstanceId',\n shardid: 'ShardInstanceId',\n ShardId: 'ShardInstanceId',\n};\n\n// 需和文件名对应\nconst DCDBInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n NodeId: 'NodeId',\n ShardInstanceId: 'ShardInstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst DCDBFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceIds: [],\n SearchName: '',\n SearchKey: '',\n ProjectIds: [],\n // IsFilterVpc\n VpcId: '',\n SubnetId: '',\n\n OrderBy: {},\n OrderByType: {},\n // IsFilterExcluster: {},\n ExclusterType: {},\n\n ExclusterIds: [],\n FilterInstanceType: {},\n};\n\nconst DCDBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '实例 ID 查询',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'SearchName',\n enDescriptor: 'SearchName',\n cnDescriptor: '搜索的字段名,当前支持的值有:instancename、vip、all',\n link: '',\n type: 'input',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '搜索的关键字',\n link: '',\n type: 'input',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '按项目 ID 查询',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '私有网络的子网 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: 'projectId', value: 'projectId' },\n { text: 'createtime', value: 'createtime' },\n { text: 'instancename', value: 'instancename' },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'select',\n list: [\n { text: 'desc', value: 'desc' },\n { text: 'asc', value: 'asc' },\n ],\n },\n {\n key: 'ExclusterType',\n enDescriptor: 'ExclusterType',\n cnDescriptor: '集群类型',\n link: '',\n type: 'select',\n list: [\n { text: '非独享集群', value: 1 },\n { text: '独享集群', value: 2 },\n { text: '全部', value: 0 },\n { text: 'asc', value: 'asc' },\n ],\n },\n {\n key: 'ExclusterIds',\n enDescriptor: 'ExclusterIds',\n cnDescriptor: '独享集群ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'FilterInstanceType',\n enDescriptor: 'FilterInstanceType',\n cnDescriptor: '实例类型过滤',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '独享实例', value: 1 },\n { text: '主实例', value: 2 },\n { text: '灾备实例', value: 3 },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/557/16140',\n namespace,\n fieldDescriptor: DCDBFilterFieldsDescriptor,\n};\n\nconst DCDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n ShardId: '',\n NodeId: '',\n queries: DCDBFilterFields,\n};\nconst modifyMetricConf = {\n shardid: 'ShardId',\n instanceid: 'InstanceId',\n nodeid: 'NodeId',\n};\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((v) => modifyMetricConf[v] || v);\n });\n return metricTmp;\n}\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params = instanceQueryParamsBaseParse(queries, false);\n // 特殊处理\n params.IsFilterVpc = false;\n params.IsFilterExcluster = false;\n if (params.VpcId || params.SubnetId) params.IsFilterVpc = true;\n if (params.ExclusterType) params.IsFilterExcluster = true;\n if (isArray(params.FilterInstanceType)) params.FilterInstanceType = params.FilterInstanceType.join(',');\n return params;\n}\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n NodeId: 'NodeId',\n ShardInstanceId: 'ShardId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NodeId: {\n dim_KeyInStorage: keyInStorage.NodeId,\n dim_KeyInTarget: 'NodeId',\n dim_KeyInMap: templateQueryIdMap.NodeId,\n },\n ShardInstanceId: {\n dim_KeyInStorage: keyInStorage.ShardInstanceId,\n dim_KeyInTarget: 'ShardId',\n dim_KeyInMap: templateQueryIdMap.ShardInstanceId,\n },\n};\n// 和其他产品的展示保持一致\nconst regionSupported = [\n { text: '华北地区(北京)', value: 'ap-beijing' },\n { text: '西南地区(成都)', value: 'ap-chengdu' },\n { text: '西南地区(重庆)', value: 'ap-chongqing' },\n { text: '华南地区(广州)', value: 'ap-guangzhou' },\n { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n { text: '华东地区(南京)', value: 'ap-nanjing' },\n { text: '华东地区(上海)', value: 'ap-shanghai' },\n { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n { text: '亚太东北(东京)', value: 'ap-tokyo' },\n { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n { text: '北美地区(多伦多)', value: 'na-toronto' },\n];\nexport default DCDB_STATE;\nexport {\n DCDBFilterFieldsDescriptor,\n templateQueryIdMap,\n DCDBInstanceAliasList,\n DCDBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n keyInStorage,\n modifyDimensons,\n queryMonitorExtraConfg,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as DCDBGetInstanceQueryParams,\n};\n","import { DCGInstanceAliasList, DCGInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCGInstanceAliasList;\n InvalidDimensions = DCGInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeDirectConnectGateways',\n responseField: 'DirectConnectGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DCG';\nconst queryEditorName = 'dcgQuery';\n\nconst DCGInvalidDemensions = {\n directConnectGatewayId: 'DirectConnectGatewayId',\n};\n\nconst DCGInstanceAliasList = ['DirectConnectGatewayId', 'DirectConnectGatewayName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectGatewayId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst DCGFilterFields = {\n Limit: 20,\n Offset: 0,\n 'direct-connect-gateway-id': [],\n 'direct-connect-gateway-name': [],\n 'direct-connect-gateway-ip': [],\n 'gateway-type': {},\n 'network-type': {},\n 'ccn-id': [],\n 'vpc-id': [],\n};\n\nconst DCGFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'direct-connect-gateway-id',\n enDescriptor: 'direct-connect-gateway-id',\n cnDescriptor: '专线网关唯一ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-gateway-name',\n enDescriptor: 'direct-connect-gateway-name',\n cnDescriptor: '专线网关名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-gateway-ip',\n enDescriptor: 'direct-connect-gateway-ip',\n cnDescriptor: '专线网关IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'gateway-type',\n enDescriptor: 'gateway-type',\n cnDescriptor: '网关类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '普通型', value: 'NORMAL' },\n { text: 'NAT型', value: 'NAT' },\n ],\n },\n {\n key: 'network-type',\n enDescriptor: 'network-type',\n cnDescriptor: '网络类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '私有网络类型', value: 'VPC' },\n { text: '云联网类型', value: 'CCN' },\n ],\n },\n {\n key: 'ccn-id',\n enDescriptor: 'ccn-id',\n cnDescriptor: '专线网关所在云联网ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '专线网关所在私有网络ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/30644',\n namespace,\n fieldDescriptor: DCGFilterFieldsDescriptor,\n};\n\nconst DCG_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectGatewayId',\n queries: DCGFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default DCG_STATE;\nexport {\n DCGFilterFieldsDescriptor,\n templateQueryIdMap,\n DCGInstanceAliasList,\n DCGInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as DCGGetInstanceQueryParams,\n};\n","import { DCXInstanceAliasList, DCXInvalidDemensions, namespace, modifyDimensons } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCXDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCXInstanceAliasList;\n InvalidDimensions = DCXInvalidDemensions;\n templateQueryIdMap = {\n instance: 'DirectConnectTunnelId',\n };\n InstanceReqConfig = {\n service: 'dc',\n action: 'DescribeDirectConnectTunnels',\n responseField: 'DirectConnectTunnelSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DCX';\nconst queryEditorName = 'dcxQuery';\n\nconst DCXFilterFields = {\n 'direct-connect-tunnel-name': [],\n 'direct-connect-tunnel-id': [],\n 'direct-connect-id': [],\n};\n\nconst DCXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'direct-connect-tunnel-name',\n enDescriptor: 'direct-connect-tunnel-name',\n cnDescriptor: '专用通道名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-tunnel-id',\n enDescriptor: 'direct-connect-tunnel-id',\n cnDescriptor: '专用通道实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-id',\n enDescriptor: 'direct-connect-id',\n cnDescriptor: '物理专线实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/216/19819',\n namespace,\n fieldDescriptor: DCXFilterFieldsDescriptor,\n};\n\nconst DCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectTunnelId',\n queries: {\n Limit: 20,\n Offset: 0,\n ...DCXFilterFields,\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n\nconst DCXInstanceAliasList = ['DirectConnectTunnelId', 'DirectConnectTunnelName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectTunnelId',\n};\n\nconst DCXInvalidDemensions = {\n directconnectconnid: 'DirectConnectTunnelId',\n directConnectConnId: 'DirectConnectTunnelId',\n};\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['directConnectConnId'];\n });\n return metricTmp;\n}\nexport default DCX_STATE;\nexport {\n DCXFilterFieldsDescriptor,\n templateQueryIdMap,\n DCXInstanceAliasList,\n DCXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as DCXGetInstanceQueryParams,\n};\n","import { BaseDatasource } from '../_base/datasource';\nimport {\n ECDNInstanceAliasList,\n ECDNInvalidDemensions,\n modifyDimensons,\n namespace,\n templateQueryIdMap,\n} from './query_def';\n\nexport default class ECDNDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECDNInstanceAliasList;\n InvalidDimensions = ECDNInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'ecdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import { cloneDeep, compact, forEach, get, isArray, isEmpty, isObject, omit, uniq } from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\n\nconst namespace = 'QCE/DSA';\nconst queryEditorName = 'ecdnQuery';\n\nconst ECDNInstanceAliasList = ['Domain'];\n\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\n\nconst ECDNInvalidDemensions = {\n domain: 'Domain',\n projectid: 'ProjectId',\n};\n\nconst ECDN_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 100,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: [],\n disable: [],\n projectId: [],\n fullUrlCache: [],\n https: [],\n originPullProtocol: [],\n area: [],\n tagKey: [],\n },\n};\n\nconst ECDNFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'Origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'ResourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'Status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'disable',\n enDescriptor: 'Disable',\n cnDescriptor: '域名封禁状态',\n link: '',\n type: 'select',\n list: [\n { text: 'normal', value: 'normal' },\n { text: 'unlicensed', value: 'unlicensed' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'FullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'Https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'OriginPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'https', value: 'https' },\n { text: 'follow', value: 'follow' },\n ],\n },\n {\n key: 'area',\n enDescriptor: 'Area',\n cnDescriptor: '加速区域',\n link: '',\n type: 'select',\n list: [\n { text: 'mainland', value: 'mainland' },\n { text: 'overseas', value: 'overseas' },\n { text: 'global', value: 'global' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/570/42462',\n namespace,\n fieldDescriptor: ECDNFilterFieldsDescriptor,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!isEmpty(queries)) {\n params.Limit = get(queries, 'Limit', 20) || 20;\n params.Offset = get(queries, 'Offset', 0) || 0;\n const _queries = omit(queries, ['Offset', 'Limit']);\n const Filters: any[] = [];\n forEach(_queries, (item: any, key) => {\n if (isArray(item)) {\n item = compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: uniq(item).slice(0, 5) });\n }\n } else if (isObject(item)) {\n if (!isEmpty(get(item, 'value', []))) {\n Filters.push({ Name: key, Value: [get(item, 'value', [])].slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters.map((item) => {\n if (item.Name === 'domain') {\n return { ...item, Fuzzy: true };\n }\n return item;\n });\n return params;\n }\n }\n return params;\n}\n\nfunction modifyDimensons(metricItem) {\n const metricTmp = cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['domain', 'projectid'];\n });\n return metricTmp;\n}\n\nexport default ECDN_STATE;\n\nexport {\n ECDNFilterFieldsDescriptor,\n templateQueryIdMap,\n ECDNInstanceAliasList,\n ECDNInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECDNGetInstanceQueryParams,\n};\n","import {\n ECMInstanceAliasList,\n ECMInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMInstanceAliasList;\n InvalidDimensions = ECMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM';\nconst queryEditorName = 'ecmQuery';\n\nconst ECMInvalidDemensions = {\n // diskId: 'InstanceId',\n uuid: 'UUID',\n // unInstanceId: 'InstanceId',\n};\n\nconst ECMInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst ECMFilterFields = {\n Limit: 20,\n Offset: 0,\n zone: [],\n 'zone-name': [],\n 'module-id': [],\n 'module-name': [],\n 'instance-id': [],\n 'instance-name': [],\n 'ip-address': [],\n 'instance-uuid': [],\n 'instance-state': {},\n 'internet-service-provider': [],\n 'instance-family': [],\n 'image-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n};\n\nconst ECMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'zone',\n enDescriptor: 'zone',\n cnDescriptor: '可用区英文标识',\n link: '',\n type: 'dropdownMulti',\n },\n {\n key: 'zone-name',\n enDescriptor: 'zone-name',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-id',\n enDescriptor: 'module-id',\n cnDescriptor: '模块ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-name',\n enDescriptor: 'module-name',\n cnDescriptor: '模块名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'instance-name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ip-address',\n enDescriptor: 'ip-address',\n cnDescriptor: '内网/公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-uuid',\n enDescriptor: 'instance-uuid',\n cnDescriptor: '实例uuid',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'instance-state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n ],\n },\n {\n key: 'internet-service-provider',\n enDescriptor: 'internet-service-provider',\n cnDescriptor: '公网IP所属的运营商',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-family',\n enDescriptor: 'instance-family',\n cnDescriptor: '机型family',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'image-id',\n enDescriptor: 'image-id',\n cnDescriptor: '镜像ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '实例的vpc id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '实例的subnet id',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',\n namespace,\n fieldDescriptor: ECMFilterFieldsDescriptor,\n};\n\nconst ECM_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: ECMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// function isValidMetric(metricObj: any = {}) {\n// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);\n// }\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['UUID'];\n });\n return metricTmp;\n}\nexport default ECM_STATE;\nexport {\n ECMFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMInstanceAliasList,\n ECMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECMGetInstanceQueryParams,\n};\n","import {\n ECMBLOCKSTORAGEInstanceAliasList,\n ECMBLOCKSTORAGEInvalidDemensions,\n namespace,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMBLOCKSTORAGEInstanceAliasList;\n InvalidDimensions = ECMBLOCKSTORAGEInvalidDemensions;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n templateQueryIdMap = templateQueryIdMap;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getDiskList(params: any) {\n const { payload } = params;\n const { InstanceId } = payload;\n const instanceCache = await instanceStorage.getInstance(this.service);\n const instanceObj: any =\n _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === InstanceId)) ?? {};\n const { DataDisks: dataDisks } = instanceObj;\n return dataDisks;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n InstanceId: instance,\n Limit: 100,\n };\n const rs = await this.getDiskList({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.diskId];\n return {\n text: o[this.templateQueryIdMap.diskId],\n value: o[this.templateQueryIdMap.diskId],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.diskId, rs);\n return result;\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { ECMBLOCKSTORAGEFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n // {\n // label: 'nodeid',\n // field: 'NodeId',\n // action: 'DescribeInstanceNodeInfo',\n // },\n {\n label: 'diskId',\n field: 'diskId',\n },\n];\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.ECMBLOCKSTORAGEFilterFieldsDescriptor = ECMBLOCKSTORAGEFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n // $scope.getInstanceId = () => {\n // let { instance } = $scope.target;\n // const service = GetServiceFromNamespace($scope.namespace);\n // instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n // if (!instance) {\n // return '';\n // }\n // try {\n // instance = JSON.parse(instance)[templateQueryIdMap.instance];\n // } catch (error) {\n // console.log();\n // }\n // return instance;\n // };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = (target, action) => {\n let { instance } = target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n try {\n instance = JSON.parse(instance);\n const { DataDisks: dataDisks } = instance;\n return dataDisks.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.diskId];\n return {\n text: o[templateQueryIdMap.diskId],\n value: JSON.stringify(o),\n };\n });\n } catch (error) {\n // console.log('instance error', instance);\n const payload: any = {\n InstanceId: instance,\n };\n const rs = $scope.datasource.getServiceFn(service, 'getDiskList')({ payload });\n const result = rs.map((o) => {\n return {\n text: o[templateQueryIdMap.diskId],\n value: JSON.stringify(o),\n };\n });\n return result;\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM_BLOCK_STORAGE';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'ecmBlockStorageQuery';\n\nconst ECMBLOCKSTORAGEInvalidDemensions = {\n uuid: 'UUID',\n diskId: 'DiskId',\n};\n\n// 需和文件名对应\nconst ECMBLOCKSTORAGEInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n diskId: 'DiskId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst ECMBLOCKSTORAGEFilterFields = {\n Limit: 20,\n Offset: 0,\n 'zone-name': [],\n 'module-id': [],\n 'module-name': [],\n 'instance-id': [],\n 'instance-name': [],\n 'ip-address': [],\n 'instance-uuid': [],\n 'instance-state': {},\n 'internet-service-provider': [],\n 'instance-family': [],\n 'image-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n};\n\nconst ECMBLOCKSTORAGEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'zone-name',\n enDescriptor: 'zone-name',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-id',\n enDescriptor: 'module-id',\n cnDescriptor: '模块ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-name',\n enDescriptor: 'module-name',\n cnDescriptor: '模块名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'instance-name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ip-address',\n enDescriptor: 'ip-address',\n cnDescriptor: '内网/公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-uuid',\n enDescriptor: 'instance-uuid',\n cnDescriptor: '实例uuid',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'instance-state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n ],\n },\n {\n key: 'internet-service-provider',\n enDescriptor: 'internet-service-provider',\n cnDescriptor: '公网IP所属的运营商',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-family',\n enDescriptor: 'instance-family',\n cnDescriptor: '机型family',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'image-id',\n enDescriptor: 'image-id',\n cnDescriptor: '镜像ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '实例的vpc id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '实例的subnet id',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',\n namespace,\n fieldDescriptor: ECMBLOCKSTORAGEFilterFieldsDescriptor,\n};\n\nconst ECMBLOCKSTORAGE_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n diskId: '',\n queries: ECMBLOCKSTORAGEFilterFields,\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n diskId: 'diskId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n DiskId: {\n dim_KeyInStorage: keyInStorage.diskId,\n dim_KeyInTarget: 'diskId',\n dim_KeyInMap: templateQueryIdMap.diskId,\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default ECMBLOCKSTORAGE_STATE;\nexport {\n ECMBLOCKSTORAGEFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMBLOCKSTORAGEInstanceAliasList,\n ECMBLOCKSTORAGEInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n keyInStorage,\n queryMonitorExtraConfg,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as ECMBLOCKSTORAGEGetInstanceQueryParams,\n};\n","import { ECMLBInstanceAliasList, ECMLBInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMLBInstanceAliasList;\n InvalidDimensions = ECMLBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM_LB';\nconst queryEditorName = 'ecmLbQuery';\n\nconst ECMLBInvalidDemensions = {\n vip: 'LoadBalancerVips',\n};\n\nconst ECMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst ECMLBFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n BackendPrivateIps: [],\n VpcId: '',\n};\n\nconst ECMLBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivateIps',\n cnDescriptor: '绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '实例所属私有网络唯一ID',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/48459',\n namespace,\n fieldDescriptor: ECMLBFilterFieldsDescriptor,\n};\n\nconst ECM_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: ECMLBFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// function isValidMetric(metricObj: any = {}) {\n// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);\n// }\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = ['UUID'];\n });\n return metricTmp;\n}\nexport default ECM_STATE;\nexport {\n ECMLBFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMLBInstanceAliasList,\n ECMLBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECMLBGetInstanceQueryParams,\n};\n","import {\n GSEInstanceAliasList,\n GSEInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n keyInStorage,\n queryMonitorExtraConfg,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = GSEInstanceAliasList;\n InvalidDimensions = GSEInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'gse',\n action: 'DescribeInstances',\n responseField: 'Instances',\n };\n\n keyInStorage = keyInStorage;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n async getQueueNameList(params: any) {\n const { region } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeGameServerSessionQueues' }\n );\n },\n {},\n 'GameServerSessionQueues'\n );\n const [rs] = res;\n return rs;\n }\n async getFleetList(params: any) {\n const { region } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'ListFleets' }\n );\n },\n {},\n 'FleetIds'\n );\n const [rs] = res;\n return rs.map((r) => ({ [this.templateQueryIdMap.FleetId]: r }));\n }\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'DescribeGameServerSessionQueues') {\n const rs = await this.getQueueNameList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.Name];\n return {\n text: o[this.templateQueryIdMap.Name],\n value: o[this.templateQueryIdMap.Name],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.queue, rs);\n return result;\n }\n if (action === 'ListFleets') {\n const rs = await this.getFleetList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.FleetId];\n return {\n text: o[this.templateQueryIdMap.FleetId],\n value: o[this.templateQueryIdMap.FleetId],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.fleet, rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { GSEFilterFieldsDescriptor, templateQueryIdMap, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'fleetId',\n field: 'FleetId',\n },\n {\n label: 'queueName',\n field: 'Name',\n },\n];\nconst actionMaps = {\n FleetId: 'getFleetList',\n Name: 'getQueueNameList',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.GSEFilterFieldsDescriptor = GSEFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n // console.log({namespace, service});\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraDropdown = async (target, field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const instanceId = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n // const rs = await $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ region, instanceId });\n let rs = await $scope.datasource.getServiceFn(service, actionMaps[field])({ region, instanceId });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[field]];\n return {\n text: o[templateQueryIdMap[field]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/GSE';\nconst fleetId = 'FleetId'; // 为和cvm其他产品保持一致,即将string[]改为Array<{fleetid: xxx}>,在此声明key\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'gseQuery';\n\nconst GSEInvalidDemensions = {\n instanceid: 'InstanceId',\n fleetid: 'FleetId',\n queuename: 'Name',\n};\n\n// 需和文件名对应\nconst GSEInstanceAliasList = ['InstanceId', 'PrivateIpAddress', 'IpAddress'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n Name: 'Name',\n FleetId: fleetId,\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n fleet: 'fleet', // 实例队列\n queue: 'queueName', // 会话队列\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n FleetId: {\n dim_KeyInStorage: keyInStorage.fleet,\n dim_KeyInTarget: 'FleetId',\n dim_KeyInMap: templateQueryIdMap.FleetId,\n },\n Name: {\n dim_KeyInStorage: keyInStorage.queue,\n dim_KeyInTarget: 'Name',\n dim_KeyInMap: templateQueryIdMap.Name,\n },\n};\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst GSEFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceId: '',\n FleetId: '',\n};\n\nconst GSEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'resourceName',\n cnDescriptor: '资源名称',\n link: '',\n type: 'input',\n },\n {\n key: 'FleetId',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1165/42604',\n namespace,\n fieldDescriptor: GSEFilterFieldsDescriptor,\n};\n\nconst GSE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n FleetId: '', // 服务器实例\n Name: '', // 队列名称\n queries: GSEFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n // { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n // { value: 'ap-shanghai-fsi' },\n // { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n // { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((v) => GSEInvalidDemensions[v] || v);\n });\n return metricTmp;\n}\nexport default GSE_STATE;\nexport {\n GSEFilterFieldsDescriptor,\n templateQueryIdMap,\n GSEInstanceAliasList,\n GSEInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n queryMonitorExtraConfg,\n fleetId,\n keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as GSEGetInstanceQueryParams,\n};\n","import { t } from '../../locale';\n// name (产品名称), service(对应的真实service)\ninterface ServiceType {\n service: string;\n label: string;\n namespace: string;\n href: string;\n groupName?: string;\n hideRegion?: boolean;\n}\nconst SERVICES: ServiceType[] = [\n {\n service: 'cvm',\n get label() {\n return t('CVM');\n },\n namespace: 'QCE/CVM',\n href: 'https://cloud.tencent.com/document/api/213/15688',\n },\n {\n service: 'cdb',\n get label() {\n return t('CDB');\n },\n namespace: 'QCE/CDB',\n href: 'https://cloud.tencent.com/document/api/236/15829',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'mongoDB',\n get label() {\n return t('CMONGO');\n },\n namespace: 'QCE/CMONGO',\n href: 'https://cloud.tencent.com/document/api/240/38568',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'postgres',\n get label() {\n return t('POSTGRES');\n },\n namespace: 'QCE/POSTGRES',\n href: 'https://cloud.tencent.com/document/product/248/45105',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'redis',\n get label() {\n return t('REDIS');\n },\n namespace: 'QCE/REDIS',\n href: 'https://cloud.tencent.com/document/product/248/45110',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'redisMem',\n get label() {\n return t('REDIS_MEM');\n },\n namespace: 'QCE/REDIS_MEM',\n href: 'https://cloud.tencent.com/document/product/248/49729',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'sqlserver',\n get label() {\n return t('SQLSERVER');\n },\n namespace: 'QCE/SQLSERVER',\n href: 'https://cloud.tencent.com/document/product/248/45146',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'cynosdbMysql',\n get label() {\n return t('CYNOSDB_MYSQL');\n },\n namespace: 'QCE/CYNOSDB_MYSQL',\n href: 'https://cloud.tencent.com/document/product/248/45106',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'tcaplus',\n get label() {\n return t('TCAPLUS');\n },\n namespace: 'QCE/TCAPLUS',\n href: 'https://cloud.tencent.com/document/product/248/45107',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'dcdb',\n get label() {\n return t('TDMYSQL');\n },\n namespace: 'QCE/TDMYSQL',\n href: 'https://cloud.tencent.com/document/product/248/45108',\n },\n {\n service: 'pcx',\n get label() {\n return t('PCX');\n },\n namespace: 'QCE/PCX',\n href: 'https://cloud.tencent.com/document/product/215/5181',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'bwp',\n get label() {\n return t('BWP');\n },\n namespace: 'QCE/BWP',\n href: 'https://cloud.tencent.com/document/api/215/19209',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'natGateway',\n get label() {\n return t('NAT_GATEWAY');\n },\n namespace: 'QCE/NAT_GATEWAY',\n href: 'https://cloud.tencent.com/document/api/215/36034',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpngw',\n get label() {\n return t('VPNGW');\n },\n namespace: 'QCE/VPNGW',\n href: 'https://cloud.tencent.com/document/product/248/45070',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpnx',\n get label() {\n return t('VPNX');\n },\n namespace: 'QCE/VPNX',\n href: 'https://cloud.tencent.com/document/product/248/45071',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'dcg',\n get label() {\n return t('DCG');\n },\n namespace: 'QCE/DCG',\n href: 'https://cloud.tencent.com/document/product/248/45072',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'ceipSummary',\n get label() {\n return t('CEIP_SUMMARY');\n },\n namespace: 'QCE/CEIP_SUMMARY',\n href: 'https://cloud.tencent.com/document/product/248/50381',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpcNetDetect',\n get label() {\n return t('VPC_NET_DETECT');\n },\n namespace: 'QCE/VPC_NET_DETECT',\n href: 'https://cloud.tencent.com/document/product/248/50384',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vbc',\n get label() {\n return t('VBC');\n },\n namespace: 'QCE/VBC',\n href: 'https://cloud.tencent.com/document/product/248/45073',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'lb',\n get label() {\n return t('LB');\n },\n namespace: 'QCE/LB',\n href: 'https://cloud.tencent.com/document/product/248/45099',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'lbPublic',\n get label() {\n return t('LB_PUBLIC');\n },\n namespace: 'QCE/LB_PUBLIC',\n href: 'https://cloud.tencent.com/document/product/248/51898',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'lbPrivate',\n get label() {\n return t('LB_PRIVATE');\n },\n namespace: 'QCE/LB_PRIVATE',\n href: 'https://cloud.tencent.com/document/product/248/51899',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'loadBalance',\n get label() {\n return t('LOADBALANCE');\n },\n namespace: 'QCE/LOADBALANCE',\n href: 'https://cloud.tencent.com/document/product/248/51901',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'vClb',\n get label() {\n return `${t('cloud_load_balancer')}(${t('lite')})`;\n },\n namespace: 'QCE/V_CLB',\n href: 'https://cloud.tencent.com/document/product/248/51901',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('lite')})`;\n },\n },\n {\n service: 'cdn',\n get label() {\n return t('CDN');\n },\n namespace: 'QCE/CDN',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50386',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'cdnProvince',\n get label() {\n return t('CDN_LOG_DATA');\n },\n namespace: 'QCE/CDN_LOG_DATA',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50388',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'ovCdn',\n get label() {\n return t('OV_CDN');\n },\n namespace: 'QCE/OV_CDN',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50387',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'scf',\n get label() {\n return t('SCF_V2');\n },\n namespace: 'QCE/SCF_V2',\n href: 'https://cloud.tencent.com/document/product/248/45130',\n },\n {\n service: 'cfs',\n get label() {\n return t('CFS');\n },\n namespace: 'QCE/CFS',\n href: 'https://cloud.tencent.com/document/product/248/45143',\n },\n {\n service: 'cos',\n get label() {\n return t('COS');\n },\n namespace: 'QCE/COS',\n href: 'https://cloud.tencent.com/document/product/248/45140',\n },\n {\n service: 'ckafka',\n get label() {\n return t('CKAFKA');\n },\n namespace: 'QCE/CKAFKA',\n href: 'https://cloud.tencent.com/document/product/248/45121',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'cmq',\n get label() {\n return t('CMQ');\n },\n namespace: 'QCE/CMQ',\n href: 'https://cloud.tencent.com/document/product/248/45114',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'cmqTopic',\n get label() {\n return t('CMQTOPIC');\n },\n namespace: 'QCE/CMQTOPIC',\n href: 'https://cloud.tencent.com/document/product/248/45113',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmq',\n get label() {\n return t('TDMQ');\n },\n namespace: 'QCE/TDMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmqRocketmq',\n get label() {\n return t('TDMQ_ROCKETMQ');\n },\n namespace: 'QCE/ROCKETMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmqRabbitmq',\n get label() {\n return t('TDMQ_RABBITMQ');\n },\n namespace: 'QCE/RABBITMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'dcx',\n get label() {\n return t('DCX');\n },\n namespace: 'QCE/DCX',\n href: 'https://cloud.tencent.com/document/product/248/45101',\n get groupName() {\n return t('direct_connect');\n },\n },\n {\n service: 'dc',\n get label() {\n return t('DC');\n },\n namespace: 'QCE/DC',\n href: 'https://cloud.tencent.com/document/product/248/45102',\n get groupName() {\n return t('direct_connect');\n },\n },\n {\n service: 'cpm',\n get label() {\n return t('CPM');\n },\n namespace: 'QCE/CPM',\n href: 'https://cloud.tencent.com/document/product/248/45881',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmPcx',\n get label() {\n return t('BM_PCX');\n },\n namespace: 'QCE/BM_PCX',\n href: 'https://cloud.tencent.com/document/product/248/45884',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmLb',\n get label() {\n return t('BM_LB');\n },\n namespace: 'QCE/BM_LB',\n href: 'https://cloud.tencent.com/document/product/248/45886',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmIntraLb',\n get label() {\n return t('BM_INTRA_LB');\n },\n namespace: 'QCE/BM_INTRA_LB',\n href: 'https://cloud.tencent.com/document/product/248/45885',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'ces',\n get label() {\n return t('CES');\n },\n namespace: 'QCE/CES',\n href: 'https://cloud.tencent.com/document/product/248/45129',\n },\n {\n service: 'mrHDFS',\n get label() {\n return `${t('elastic_mapReduce')}(HDFS)`;\n },\n namespace: 'QCE/TXMR_HDFS',\n href: 'https://cloud.tencent.com/document/product/248/44797',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrHBASE',\n get label() {\n return `${t('elastic_mapReduce')}(HBASE)`;\n },\n namespace: 'QCE/TXMR_HBASE',\n href: 'https://cloud.tencent.com/document/product/248/45567',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrHIVE',\n get label() {\n return `${t('elastic_mapReduce')}(HIVE)`;\n },\n namespace: 'QCE/TXMR_HIVE',\n href: 'https://cloud.tencent.com/document/product/248/45569',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrNODE',\n get label() {\n return `${t('elastic_mapReduce')}(NODE)`;\n },\n namespace: 'QCE/TXMR_NODE',\n href: 'https://cloud.tencent.com/document/product/248/45570',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrPRESTO',\n get label() {\n return `${t('elastic_mapReduce')}(PRESTO)`;\n },\n namespace: 'QCE/TXMR_PRESTO',\n href: 'https://cloud.tencent.com/document/product/248/45571',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrSPARK',\n get label() {\n return `${t('elastic_mapReduce')}(SPARK)`;\n },\n namespace: 'QCE/TXMR_SPARK',\n href: 'https://cloud.tencent.com/document/product/248/45572',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrYARN',\n get label() {\n return `${t('elastic_mapReduce')}(YARN)`;\n },\n namespace: 'QCE/TXMR_YARN',\n href: 'https://cloud.tencent.com/document/product/248/45573',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrZOOKEEPER',\n get label() {\n return `${t('elastic_mapReduce')}(ZOOKEEPER)`;\n },\n namespace: 'QCE/TXMR_ZOOKEEPER',\n href: 'https://cloud.tencent.com/document/product/248/45574',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'cbs',\n get label() {\n return t('BLOCK_STORAGE');\n },\n namespace: 'QCE/BLOCK_STORAGE',\n href: 'https://cloud.tencent.com/document/product/362/2345',\n },\n {\n service: 'apigateway',\n get label() {\n return t('APIGATEWAY');\n },\n namespace: 'QCE/APIGATEWAY',\n href: 'https://cloud.tencent.com/document/product/248/45127',\n },\n {\n service: 'qaap',\n get label() {\n return t('QAAP');\n },\n namespace: 'QCE/QAAP',\n href: 'https://cloud.tencent.com/document/product/608',\n },\n {\n service: 'ecm',\n get label() {\n return t('ECM');\n },\n hideRegion: true,\n namespace: 'QCE/ECM',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'ecmBlockStorage',\n get label() {\n return t('ECM_BLOCK_STORAGE');\n },\n hideRegion: true,\n namespace: 'QCE/ECM_BLOCK_STORAGE',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'ecmLb',\n get label() {\n return t('ECM_LB');\n },\n hideRegion: true,\n namespace: 'QCE/ECM_LB',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'gse',\n get label() {\n return t('GSE');\n },\n namespace: 'QCE/GSE',\n href: 'https://cloud.tencent.com/document/product/1165',\n },\n {\n service: 'cls',\n get label() {\n return t('CLS');\n },\n namespace: 'QCE/CLS',\n href: 'https://cloud.tencent.com/document/product/614',\n },\n {\n service: 'tke',\n get label() {\n return t('TKE');\n },\n namespace: 'QCE/TKE2',\n href: 'https://cloud.tencent.com/document/product/457',\n },\n {\n service: 'ecdn',\n get label() {\n return t('ECDN');\n },\n namespace: 'QCE/DSA',\n href: 'https://cloud.tencent.com/document/product/570',\n },\n // {\n // service: 'lighthouse',\n // label: '轻量应用服务器(LIGHTHOUSE)',\n // namespace: 'QCE/LIGHTHOUSE',\n // href: 'https://cloud.tencent.com/document/product/1207',\n // },\n // {\n // service: 'tsf',\n // label: ' 微服务平台(TSF)',\n // namespace: 'QCE/TSF',\n // href: 'https://cloud.tencent.com/document/product/649',\n // },\n {\n service: 'waf',\n get label() {\n return t('WAF');\n },\n // hideRegion: true,\n namespace: 'QCE/WAF',\n href: 'https://cloud.tencent.com/document/product/627',\n },\n];\nconst Datasources = {};\nconst InitStates = {};\nconst InstanceAliasList = {};\nconst GetInstanceQueryParams = {};\n\n/**\n * 由于目录命名不规范,导致需要使用额外逻辑保证正确性。从目录到具体service的映射\n */\nconst hackModuleName = {\n // lb_loadBalance: 'loadBalance',\n postgresql: 'postgres',\n mongodb: 'mongoDB',\n clb: ['lbPrivate', 'lbPublic', 'loadBalance'],\n mr: ['mrHDFS', 'mrHBASE', 'mrHIVE', 'mrNODE', 'mrPRESTO', 'mrSPARK', 'mrYARN', 'mrZOOKEEPER'],\n};\n\nconst requireModule = (require as any).context('./', true, /^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$/);\n\nrequireModule.keys().forEach((filePath) => {\n let [, moduleName, fileName] = filePath.split('/');\n\n // hack: 这里是由于产品目录命名不规范,所以才会多这么一段代码\n moduleName = hackModuleName[moduleName] ?? moduleName;\n\n // 目录与模块的映射关系,不管是一对一还是一对多,均按数组进行统一处理\n [].concat(moduleName).forEach((module: string) => {\n // 这个service就是产品配置中的service,需要注意这里的service是根据目录名称算出来的,因此目录名称一定要和service对应\n const service = module.replace(/_([a-zA-Z])/g, (_, b) => b.toUpperCase());\n const prefix = service.toUpperCase(); // 命名规则\n\n // datasource\n if (fileName === 'datasource.ts') {\n const Cls = require(`${filePath}`).default;\n\n // 想办法为实例注入service,不能为prototype或则类本身注入,因为会造成互相污染,详尽mrDatasource\n Datasources[`${prefix}Datasource`] = class {\n constructor(...params) {\n const target = new Cls(...params, service);\n target.service = service;\n // eslint-disable-next-line no-constructor-return\n return target;\n }\n };\n }\n // query\n if (fileName === 'query.ts') {\n require(`${filePath}`);\n }\n // query_def\n if (fileName === 'query_def.ts') {\n const alias = `${prefix}InstanceAliasList`;\n const getParams = `${prefix}GetInstanceQueryParams`;\n\n const target = require(`${filePath}`);\n\n InitStates[service] = target.default; // FIXME: 这里需不需要深拷贝?\n InstanceAliasList[alias] = target[alias] ?? target['InstanceAliasList'];\n GetInstanceQueryParams[getParams] = target[getParams] ?? target['GetInstanceQueryParams'];\n }\n });\n});\n\nexport {\n InitStates as InitServiceState,\n SERVICES,\n Datasources,\n InstanceAliasList,\n GetInstanceQueryParams,\n // DefaultDimensions\n};\n\n// console.log(Datasources, InitStates, InstanceAliasList, GetInstanceQueryParams);\n","import _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\nimport { LBInstanceAliasList, LBInvalidDemensions } from './query_def';\n\nexport default class SCFDatasource extends BaseDatasource {\n Namespace = 'QCE/LB';\n InstanceAliasList = LBInstanceAliasList;\n InvalidDimensions = LBInvalidDemensions;\n templateQueryIdMap = {\n instance: 'AddressId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeAddresses',\n responseField: 'AddressSet',\n interceptor: {\n request: (params) => {\n const { Filters } = params;\n if (!Filters) {\n params.Filters = [];\n }\n params.Filters.push({\n Name: 'address-type',\n Values: ['EIP'],\n });\n return params;\n }, // 设置一些请求参数的 默认值\n },\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) =>\n /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */\n item.Dimensions?.[0]?.Dimensions?.includes('eip')\n );\n }\n\n // async getInstances(region, params = {}) {\n // const rawSet = await super.getInstances(region, params);\n // /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */\n // return rawSet.filter((item) => item.AddressType === 'EIP');\n // }\n\n // async getVariableInstances(region, query = {}) {\n // const rawSet = await super.getVariableInstances(region, query);\n // return rawSet.filter((item) => item.AddressType === 'EIP');\n // }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { LBFilterDescriptor } from './query_def';\n\nexport class LBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n // $scope.LBQueryDescriptor = LBQueryDescriptor;\n $scope.LBFilterDescriptor = LBFilterDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n\n\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function lbQuery() {\n return {\n template: template,\n controller: LBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('lbQuery', lbQuery);\n","import _ from 'lodash';\n\n// export const LBQueryDescriptor = [{\n// key: 'Offset',\n// enDescriptor: 'Offset',\n// cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n// link: '',\n// type: 'inputnumber',\n// min: 0,\n// },\n// {\n// key: 'Limit',\n// enDescriptor: 'Limit',\n// cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为2000',\n// link: '',\n// type: 'inputnumber',\n// min: 1,\n// max: 2000,\n// },\n// {\n// key: 'AddressId',\n// enDescriptor: 'Address Id',\n// cnDescriptor: '标识 EIP 的唯一 ID ',\n// link: '',\n// type: 'inputmulti',\n// }\n// ];\n\nexport const LBFilterDescriptor = [\n {\n key: 'address-id',\n enDescriptor: 'Address ID',\n cnDescriptor: 'EIP 的唯一 ID ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-name',\n enDescriptor: 'Address Name',\n cnDescriptor: 'EIP 名称 ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-ip',\n enDescriptor: 'Address IP',\n cnDescriptor: 'EIP 的 IP 地址 ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-status',\n enDescriptor: 'Address Status',\n cnDescriptor: 'EIP 的状态',\n link: '',\n type: 'select',\n list: [\n { value: 'CREATING', text: 'CREATING' },\n { value: 'BINDING', text: 'BINDING' },\n { value: 'BIND', text: 'BIND' },\n { value: 'UNBINDING', text: 'UNBINDING' },\n { value: 'UNBIND', text: 'UNBIND' },\n { value: 'OFFLINING', text: 'OFFLINING' },\n { value: 'BIND_ENI', text: 'BIND_ENI' },\n ],\n },\n {\n key: 'instance-id',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: 'EIP 绑定的内网 IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'network-interface-id',\n enDescriptor: 'Network Interface ID',\n cnDescriptor: 'EIP 绑定的弹性网卡 ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'is-arrears',\n enDescriptor: 'Arrears',\n cnDescriptor: 'EIP 是否欠费 ',\n link: '',\n type: 'select',\n list: [\n { text: '正常', value: 'FALSE' },\n { text: '欠费', value: 'TRUE' },\n ],\n },\n];\n\n// const LBFilterFields = {\n// \"address-id\": [],\n// \"address-name\": [],\n// \"address-ip\": [],\n// \"address-status \": [],\n// \"instance-id \": [],\n// \"private-ip-address\": [],\n// \"network-interface-id \": [],\n// \"is-arrears \": [],\n// };\n\nconst InstanceKey = 'AddressIds';\nconst LB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'AddressId',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n [InstanceKey]: [''],\n Filters: {\n 'address-id': [],\n 'address-name': [],\n 'address-ip': [],\n 'address-status ': [],\n 'instance-id ': [],\n 'private-ip-address': [],\n 'network-interface-id ': [],\n 'is-arrears ': [],\n },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries[InstanceKey])) {\n const InstanceIds = _.compact(queries[InstanceKey]);\n if (_.uniq(InstanceIds).length > 0) {\n params[InstanceKey] = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst LBInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];\n\n// 维度eip对应于实例中的哪个字段?映射\nconst LBInvalidDemensions = {\n eip: 'AddressIp',\n};\n\nconst templateQueryIdMap = {\n instance: 'AddressId',\n};\n// 从monitor维度到LB实例对应字段的映射\n// export const metric2Instance = {\n// functionName: 'FunctionName',\n// namespace: 'Namespace'\n// };\n\nexport default LB_STATE;\nexport {\n LBInstanceAliasList,\n LBInvalidDemensions,\n templateQueryIdMap,\n GetInstanceQueryParams as LBGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\n// export const LBDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import _ from 'lodash';\nimport {\n LIGHTHOUSEInstanceAliasList,\n templateQueryIdMap,\n LighthouseInvalidDemensions,\n modifyDimensons,\n} from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class LighthouseDatasource extends BaseDatasource {\n Namespace = 'QCE/LIGHTHOUSE';\n InstanceAliasList = LIGHTHOUSEInstanceAliasList;\n InvalidDimensions = LighthouseInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'lighthouse',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'lighthouse' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'api');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { Product: 'lighthouse' },\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { LighthouseFilterFieldsDescriptor } from './query_def';\n\nexport class LighthouseQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.LighthouseFilterFieldsDescriptor = LighthouseFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('lighthouse', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n`;\n\nexport function lighthouseQuery() {\n return {\n template: template,\n controller: LighthouseQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('lighthouseQuery', lighthouseQuery);\n","import _ from 'lodash';\n\nconst LighthouseStateType = [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n];\n\nconst LighthouseFilterFields = {\n zone: [],\n 'instance-name': [],\n 'instance-state': {},\n 'private-ip-address': [],\n 'public-ip-address': [],\n};\n\nconst LighthouseFilterFieldsDescriptor = [\n {\n key: 'instance-name',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: '实例主网卡的内网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'Public IP Address',\n cnDescriptor: '实例主网卡的公网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'zone',\n enDescriptor: 'Zone',\n cnDescriptor: '可用区',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'Instance State',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n list: LighthouseStateType,\n },\n];\n\nconst LIGHTHOUSE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n InstanceIds: [''],\n Filters: { ...LighthouseFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst LIGHTHOUSEInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];\n\nconst LighthouseInvalidDemensions = {\n instanceid: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\n\nexport default LIGHTHOUSE_STATE;\n\nexport {\n LighthouseFilterFieldsDescriptor,\n LIGHTHOUSEInstanceAliasList,\n LighthouseInvalidDemensions,\n templateQueryIdMap,\n modifyDimensons,\n GetInstanceQueryParams as LIGHTHOUSEGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport {\n MONGODBInstanceAliasList,\n MONGODBInvalidDemensions,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class MONGODBDatasource extends BaseDatasource {\n Namespace = 'QCE/CMONGO';\n InstanceAliasList = MONGODBInstanceAliasList;\n ReplicaAliasList = ['ReplicaSetId', 'ReplicaSetName'];\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n\n InstanceReqConfig = {\n service: 'mongodb',\n action: 'DescribeDBInstances',\n responseField: 'InstanceDetails',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getInvalidDimensions(selfIns: any, target: any) {\n if (target.node && target.node !== '') {\n return { target: 'Node' };\n }\n if (target.replica && target.replica !== '') {\n return { target: 'Replica' };\n }\n return MONGODBInvalidDemensions;\n }\n formatVariableDisplay(data: Record, displayTpl: string | undefined, alias: string, aliasList: string[]) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !aliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(data, b);\n });\n }\n return this.getAliasValue(data, alias);\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const { display } = query;\n if (action === 'DescribeReplicas') {\n const [res] = await this.getInstances(region, { InstanceIds: [instance[this.templateQueryIdMap.instance]] });\n let { replicaalias } = query;\n replicaalias = this.ReplicaAliasList.includes(replicaalias) ? replicaalias : this.templateQueryIdMap.replica;\n const result = _.map(_.get(res, 'ReplicaSets', []), (item) => {\n const replicaAlias = this.formatVariableDisplay(item, display, replicaalias, this.ReplicaAliasList);\n item._InstanceAliasValue = replicaAlias || item[this.templateQueryIdMap.replica];\n return { text: item.ReplicaSetId, value: item.ReplicaSetId };\n });\n await instanceStorage.setExtraStorage(\n this.service,\n this.queryMonitorExtraConfg.Replica.dim_KeyInStorage,\n _.get(res, 'ReplicaSets', [])\n );\n return result;\n }\n if (action === 'DescribeReplicaNodes') {\n const [res] = await this.getInstances(region, { InstanceIds: [instance[this.templateQueryIdMap.instance]] });\n const { replicasetid } = query;\n const targetReplica = _.find(_.get(res, 'ReplicaSets', []), { ReplicaSetId: this.getVariable(replicasetid) });\n let result = _.times(targetReplica.SecondaryNum, (index) => {\n const nodeId = `${targetReplica.ReplicaSetId}-node-slave${index}`;\n return { text: nodeId, value: nodeId };\n });\n if (targetReplica) {\n result = [\n { text: `${targetReplica.ReplicaSetId}-node-primary`, value: `${targetReplica.ReplicaSetId}-node-primary` },\n ...result,\n ];\n }\n await instanceStorage.setExtraStorage(\n this.service,\n this.queryMonitorExtraConfg.Node.dim_KeyInStorage,\n result.map((item) => ({ NodeId: item.value, _InstanceAliasValue: item.value }))\n );\n return result;\n }\n\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { map, get, find, times } from 'lodash';\nimport { MONGODBFieldsDescriptor, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class MongoDBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.MONGODBFieldsDescriptor = MONGODBFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.onInstanceChange = (n, o) => {\n if (n === o) {\n return;\n }\n $scope.target.replica = '';\n $scope.target.node = '';\n };\n\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace('QCE/CMONGO');\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {\n // console.log();\n }\n return variableData;\n };\n\n $scope.getExtraDropdown = async (target, type) => {\n const { instance, replica } = $scope.target;\n const service = GetServiceFromNamespace('QCE/CMONGO');\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const [res] = await $scope.datasource.getServiceFn(service, 'getInstances')(region, {\n InstanceIds: [instanceId],\n });\n if (type === 'replica') {\n return map(get(res, 'ReplicaSets', []), (item) => {\n item._InstanceAliasValue = item.ReplicaSetId;\n return { text: item.ReplicaSetId, value: JSON.stringify(item) };\n });\n }\n if (type === 'node' && replica !== '') {\n const replicaId = $scope.getVariableId(replica, 'replica');\n const targetReplica = find(get(res, 'ReplicaSets', []), { ReplicaSetId: replicaId });\n const options = times(targetReplica.SecondaryNum, (index) => {\n const nodeId = `${targetReplica.ReplicaSetId}-node-slave${index}`;\n return {\n text: nodeId,\n value: JSON.stringify({ NodeId: nodeId, _InstanceAliasValue: `${targetReplica.ReplicaSetId} - ${nodeId}` }),\n };\n });\n return [\n {\n text: `${targetReplica.ReplicaSetId}-node-primary`,\n value: JSON.stringify({\n NodeId: `${targetReplica.ReplicaSetId}-node-primary`,\n _InstanceAliasValue: `${targetReplica.ReplicaSetId} - ${`${targetReplica.ReplicaSetId}-node-primary`}`,\n }),\n },\n ...options,\n ];\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n`;\n\nexport function mongodbQuery() {\n return {\n template: template,\n controller: MongoDBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onRefresh: '&',\n onChange: '&',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\n\ncoreModule.directive('mongodbQuery', mongodbQuery);\n","import _ from 'lodash';\nconst InstanceTypes = [\n { text: '所有实例', value: 0 },\n { text: '正式实例', value: 1 },\n { text: '临时实例', value: 2 },\n { text: '只读实例', value: 3 },\n { text: '正式,只读,灾备实例', value: -1 },\n];\n\nconst ClusterTypes = [\n { text: '副本集实例', value: 0 },\n { text: '分片实例', value: 1 },\n { text: '所有实例', value: -1 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '实例有效', value: 2 },\n { text: '实例已过期', value: -2 },\n];\n\nconst PayMode = [\n { text: '按量计费', value: 0 },\n { text: '包年包月', value: 1 },\n { text: '按量包年包月计费', value: -1 },\n];\n\nconst OrderBy = [\n { text: 'ProjectId', value: 'ProjectId' },\n { text: 'InstanceName', value: 'InstanceName' },\n { text: 'CreateTime', value: 'CreateTime' },\n];\n\nconst OrderByType = [\n { text: '升序', value: 'ASC' },\n { text: '降序', value: 'DESC' },\n];\n\nconst MongoDBFields = {\n InstanceIds: [],\n InstanceType: {},\n ClusterType: {},\n Status: [],\n VpcId: '',\n SubnetId: '',\n PayMode: {},\n Limit: 20,\n Offset: 0,\n OrderBy: '',\n OrderByType: '',\n};\n\nconst MONGODBFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstancesIds',\n cnDescriptor: '实例名称',\n type: 'inputmulti',\n },\n {\n key: 'InstanceType',\n enDescriptor: 'InstanceType',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: InstanceTypes,\n },\n {\n key: 'ClusterType',\n enDescriptor: 'ClusterType',\n cnDescriptor: '集群类型',\n link: '',\n type: 'select',\n list: ClusterTypes,\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '私有网络的子网ID,基础网络则不传该参数。入参设置该参数的同时,必须设置相应的VpcId',\n link: '',\n type: 'input',\n },\n {\n key: 'PayMode',\n enDescriptor: 'PayMode',\n cnDescriptor: '付费类型',\n link: '',\n type: 'select',\n list: PayMode,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderByType,\n },\n];\n\nconst MONGODB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...MongoDBFields },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst MONGODBInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst MONGODBInvalidDemensions = {\n target: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n replica: 'ReplicaSetId',\n};\n\nconst queryMonitorExtraConfg = {\n Replica: {\n dim_KeyInStorage: 'ReplicaSets',\n dim_KeyInTarget: 'replica',\n dim_KeyInMap: 'ReplicaSetId',\n dim_KeyInIns: 'ReplicaSetId',\n },\n Node: {\n dim_KeyInStorage: 'ReplicaNodeSets',\n dim_KeyInTarget: 'node',\n dim_KeyInMap: 'NodeId',\n dim_KeyInIns: 'NodeId',\n },\n};\nexport default MONGODB_STATE;\nexport {\n MONGODBFieldsDescriptor,\n MONGODBInvalidDemensions,\n MONGODBInstanceAliasList,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n GetInstanceQueryParams as MONGODBGetInstanceQueryParams,\n};\n","import { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n InvalidDemensions,\n InstanceAliasList,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class MrHdfsDatasource extends BaseDatasource {\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n extrasAlias = [];\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n InstanceReqConfig = {\n service: 'emr',\n action: 'DescribeInstances',\n responseField: 'ClusterList',\n interceptor: {\n request: (params) => ({\n ...params,\n DisplayStrategy: params.DisplayStrategy || 'monitorManage',\n ProjectId: params.ProjectId || -1,\n }), // 设置一些请求参数的 默认值\n response: (data: any[]) => data.map(({ ClusterId, ClusterName }) => ({ ClusterId, ClusterName })),\n },\n };\n\n async fetchAllNodes(region: string, params: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'emr');\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeClusterNodes' }\n );\n },\n { ...params, isOffsetPage: true },\n 'NodeList'\n );\n\n // return rs[0].map((item) => ({ text: item.Ip, value: item.Ip }));\n return rs[0];\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n let result;\n switch (action) {\n case 'DescribeClusterNodes': {\n const resultT = await this.fetchAllNodes(region, { InstanceId: instance.ClusterId, NodeFlag: 'all' });\n result = resultT.map((item) => {\n item._InstanceAliasValue = item[templateQueryIdMap.node];\n return { text: item[templateQueryIdMap.node], value: item[templateQueryIdMap.node] };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.node, resultT);\n\n return result;\n }\n default:\n return [];\n }\n }\n}\n","import { InstanceQueryDescriptor, templateQueryIdMap } from './query_def';\nimport coreModule from 'grafana/app/core/core_module';\n\nconst ExtraFields = [\n {\n label: 'NodeIP',\n field: 'nodeIP',\n },\n];\n\nexport class MrQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.InstanceQueryDescriptor = InstanceQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }\n $scope.cacheMap = {};\n\n $scope.getExtraFields = () => {\n return Object.keys($scope.dims ?? {}).some((item: string) => item.startsWith('host4')) ? ExtraFields : [];\n // return ExtraFields;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).ClusterId;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.onExtraFieldChange = (field) => {\n $scope.onRefresh();\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n if (field === 'nodeIP') {\n const InstanceId = $scope.getInstanceId();\n let data = $scope.cacheMap[InstanceId];\n\n if (!data) {\n const region = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(target.region);\n const fetcher = $scope.datasource.getServiceFn('mrHDFS', 'fetchAllNodes');\n const dataT = await fetcher(region, { InstanceId, NodeFlag: 'all' });\n data = dataT.map((item) => {\n item._InstanceAliasValue = item[templateQueryIdMap.node];\n return {\n text: item[templateQueryIdMap.node],\n value: JSON.stringify(item),\n };\n });\n }\n\n // 缓存\n $scope.cacheMap[InstanceId] = data;\n return data;\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n
\n\n \n \n
\n
\n
\n
\n\n
\n`;\n\nexport function mrQuery() {\n return {\n template: template,\n controller: MrQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('mrQuery', mrQuery);\n","import _ from 'lodash';\n\nexport const InstanceQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '按照一个或者多个实例ID查询。实例ID形如: emr-xxxxxxxx ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'OrderField',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '实例ID', value: 'clusterId' },\n { text: '创建时间', value: 'addTime' },\n { text: '状态', value: 'status' },\n ],\n },\n {\n key: 'Asc',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: '降序', value: 0 },\n { text: '升序', value: 1 },\n ],\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '实例所属项目ID',\n link: '',\n type: 'inputnumber',\n },\n {\n key: 'DisplayStrategy',\n enDescriptor: 'DisplayStrategy',\n cnDescriptor: '集群筛选策略',\n link: '',\n type: 'select',\n list: [\n { text: '未销毁的实例', value: 'clusterList' },\n { text: '正常运行的实例', value: 'monitorManage' },\n ],\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = new Proxy(\n {},\n {\n get(target, k, receiver) {\n if (typeof k === 'string') {\n if (k.startsWith('id4')) return 'ClusterId'; // id4****\n if (k.startsWith('host4')) return 'Ip'; // host4***\n }\n return Reflect.get(target, k, receiver);\n },\n has(target, propKey) {\n return true;\n },\n }\n);\n\nexport const templateQueryIdMap = {\n instance: 'ClusterId',\n node: 'Ip',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n node: 'nodeIP',\n};\n\n/**\n * 如果有InstanceId额外的维度,原则上都需要传入此map结构配置\n *\n * `key` 的含义:\n * 经过InvalidDemensions处理后的string。topicId => TopicId。\n * 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\n *\n * `value` 的含义:\n * @param {1} dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n * @param {2} dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n * 默认取通过InvalidDemsion处理后的key\n * @param {3} dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n * 即:templateQueryIdMap中内容。\n * 联合上面 2 的内容筛选出原始sourceMap\n */\nconst queryMonitorExtraConfg = {\n Ip: {\n dim_KeyInStorage: keyInStorage.node,\n dim_KeyInTarget: 'nodeIP',\n dim_KeyInMap: templateQueryIdMap.node,\n },\n};\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['ClusterId', 'ClusterName'];\nexport { InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n nodeIP: '',\n queries: {\n Offset: 0,\n Limit: 10,\n DisplayStrategy: '',\n OrderBy: {},\n Order: {},\n InstanceIds: [],\n ProjectId: -1,\n OrderField: '',\n Asc: '',\n },\n};\n","import _ from 'lodash';\nimport { NATGATEWAYInstanceAliasList, NATInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class NATGATEWAYDatasource extends BaseDatasource {\n Namespace = 'QCE/NAT_GATEWAY';\n InstanceAliasList = NATGATEWAYInstanceAliasList;\n InvalidDimensions = NATInvalidDemensions;\n templateQueryIdMap = {\n instance: 'NatGatewayId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeNatGateways',\n responseField: 'NatGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { NATGatewayFilterFieldsDescriptor } from './query_def';\n\nexport class NatGatewayQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.NATGatewayFilterFieldsDescriptor = NATGatewayFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function natGatewayQuery() {\n return {\n template: template,\n controller: NatGatewayQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('natGatewayQuery', natGatewayQuery);\n","import _ from 'lodash';\n\nconst NATGATEWAYInstanceAliasList = ['NatGatewayId', 'NatGatewayName'];\n\nconst NATGatewayFilterFields = {\n 'nat-gateway-id': [],\n 'nat-gateway-name': [],\n 'vpc-id': [],\n};\n\nconst NATGatewayFilterFieldsDescriptor = [\n {\n key: 'nat-gateway-id',\n enDescriptor: 'NatGateway ID',\n cnDescriptor: 'NAT网关统一 ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'nat-gateway-name',\n enDescriptor: 'NatGateway Name',\n cnDescriptor: 'NatGateway Name',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC ID',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst NATGATEWAY_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'NatGatewayId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n NatGatewayIds: [''],\n Filters: { ...NATGatewayFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.NatGatewayIds)) {\n const NatGatewayIds = _.compact(queries.NatGatewayIds);\n if (_.uniq(NatGatewayIds).length > 0) {\n params.InstanceIds = _.uniq(NatGatewayIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst templateQueryIdMap = {\n instance: 'NatGatewayId',\n};\n\nconst NATInvalidDemensions = {\n natId: 'NatGatewayId',\n};\n\nexport default NATGATEWAY_STATE;\nexport {\n NATGatewayFilterFieldsDescriptor,\n NATGATEWAYInstanceAliasList,\n templateQueryIdMap,\n NATInvalidDemensions,\n GetInstanceQueryParams as NATGATEWAYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { OVCDNInstanceAliasList, OVCDNInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class OVCDNDatasource extends BaseDatasource {\n Namespace = 'QCE/OV_CDN';\n InstanceAliasList = OVCDNInstanceAliasList;\n InvalidDimensions = OVCDNInvalidDemensions;\n templateQueryIdMap = {\n instance: 'Domain',\n };\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { OVCDNFilterFieldsDescriptor } from './query_def';\n\nexport class OVCDNQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.OVCDNFilterFieldsDescriptor = OVCDNFilterFieldsDescriptor;\n };\n\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n`;\n\nexport function ovCdnQuery() {\n return {\n template: template,\n controller: OVCDNQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('ovCdnQuery', ovCdnQuery);\n","import _ from 'lodash';\nconst CDNFilterFields = {\n origin: [],\n domain: [],\n resourceId: [],\n status: [],\n serviceType: [],\n projectId: [],\n domainType: [],\n fullUrlCache: [],\n https: [],\n originPullProtocol: [],\n tagKey: [],\n};\n\nconst OVCDNFilterFieldsDescriptor = [\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumbermulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst OVCDN_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...CDNFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Value: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n return params;\n}\n\nconst OVCDNInstanceAliasList = ['Domain', 'ResourceId'];\n\nconst OVCDNInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default OVCDN_STATE;\nexport {\n OVCDNFilterFieldsDescriptor,\n OVCDNInstanceAliasList,\n templateQueryIdMap,\n OVCDNInvalidDemensions,\n GetInstanceQueryParams as OVCDNGetInstanceQueryParams,\n};\n","import { PCXInstanceAliasList, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo, GetRequestParamsV2, SliceLength } from '../../common/constants';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = PCXInstanceAliasList;\n InvalidDimensions = {};\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'xx',\n action: 'xx',\n responseField: 'xx',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getInstances(region = 'ap-guangzhou', params = {}) {\n params = { offset: 0, limit: 50, ...params };\n const serviceInfo = GetServiceAPIInfo(region, 'pcx');\n return this.doRequestV2(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcPeeringConnections' }\n ).then((response) => {\n return response.data || [];\n });\n }\n\n /**\n * 模板变量中获取全量的 PCX 实例列表\n * @param region 地域信息\n */\n getVariableInstances(region, query) {\n let result: any[] = [];\n const params = { Offset: 0, Limit: 50, ...query };\n const serviceInfo = GetServiceAPIInfo(region, 'pcx');\n return this.doRequestV2(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcPeeringConnections' }\n ).then((response) => {\n result = response.data || [];\n const total = response.totalCount || 0;\n if (result.length >= total) {\n return result;\n } else {\n const param = SliceLength(total, 50);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getInstances(region, item));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return result;\n })\n .catch((error) => {\n return result;\n });\n }\n });\n }\n\n getVpcId(region, params: any = {}) {\n params = { Offset: 0, Limit: 20, ...params };\n // TODO 等待腾讯云接口查问题\n params.Offset = String(params.Offset);\n params.Limit = String(params.Limit);\n const serviceInfo = GetServiceAPIInfo(region, 'vpc');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcs' }\n ).then((response) => {\n return _.map(response.VpcSet || [], (item) => ({ text: item.VpcId, value: item.VpcId }));\n });\n }\n\n getVpcIds(region) {\n let result: any[] = [];\n const params: any = { Offset: 0, Limit: 100 };\n // TODO 等待腾讯云接口查问题\n params.Offset = String(params.Offset);\n params.Limit = String(params.Limit);\n const serviceInfo = GetServiceAPIInfo(region, 'vpc');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcs' }\n ).then((response) => {\n result = _.map(response.VpcSet || [], (item) => ({ text: item.VpcId, value: item.VpcId }));\n const total = response.TotalCount || 0;\n if (result.length >= total) {\n return result;\n } else {\n const param = SliceLength(total, 100);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getVpcId(region, item));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return result;\n })\n .catch((error) => {\n return result;\n });\n }\n });\n }\n\n /**\n * 腾讯云 API 2.0 请求接口\n * @param options\n * @param service\n * @param signObj\n */\n async doRequestV2(options, service, signObj: any = {}) {\n options = await GetRequestParamsV2(\n options,\n service,\n signObj,\n this.secretId,\n this.instanceSettings.id,\n this.backendSrv\n );\n return this.backendSrv\n .datasourceRequest(options)\n .then((response) => {\n return _.get(response, 'data', {});\n })\n .catch((error) => {\n throw error;\n });\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { PCXFieldsDescriptor } from './query_def';\n\nexport class PCXQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.PCXFieldsDescriptor = PCXFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'vpcId':\n return $scope.getVpcIds();\n default:\n return [];\n }\n };\n\n $scope.getVpcIds = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getVpcIds('pcx', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function pcxQuery() {\n return {\n template: template,\n controller: PCXQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('pcxQuery', pcxQuery);\n","import _ from 'lodash';\nconst namespace = 'QCE/PCX';\n\nconst PCXFields = {\n limit: 20,\n offset: 0,\n peeringConnectionId: '',\n peeringConnectionName: '',\n vpcId: '',\n state: undefined,\n};\n\nconst PCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'peeringConnectionId',\n queries: { ...PCXFields },\n};\n\nconst StateTypes = [\n { text: '申请中', value: 0 },\n { text: '连接成功', value: 1 },\n { text: '已过期', value: 2 },\n { text: '对端已拒绝', value: 3 },\n { text: '对端已删除', value: 4 },\n];\n\nconst PCXFieldsDescriptor = [\n {\n key: 'offset',\n enDescriptor: 'offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'limit',\n enDescriptor: 'limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为50',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 50,\n },\n {\n key: 'peeringConnectionId',\n enDescriptor: 'PeeringConnection Id',\n cnDescriptor: '私有网络对等连接 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'peeringConnectionName',\n enDescriptor: 'PeeringConnection Name',\n cnDescriptor: '对等连接名称',\n link: '',\n type: 'input',\n },\n {\n key: 'vpcId',\n enDescriptor: 'vpcId',\n cnDescriptor: '发起方私有网络 ID 值',\n link: 'https://cloud.tencent.com/document/api/215/1372',\n type: 'dropdown',\n },\n {\n key: 'state',\n enDescriptor: 'state',\n cnDescriptor: '连接状态',\n link: '',\n type: 'select',\n list: StateTypes,\n },\n];\n\nconst PCXInstanceAliasList = ['peeringConnectionId', 'peeringConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'peeringConnectionId',\n};\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.limit = _.get(queries, 'limit', 20) || 20;\n params.offset = _.get(queries, 'offset', 0) || 0;\n queries = _.omit(queries, ['offset', 'limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nexport default PCX_STATE;\n\nexport {\n PCXInstanceAliasList,\n PCXFieldsDescriptor,\n templateQueryIdMap,\n namespace,\n GetInstanceQueryParams as PCXGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport {\n POSTGRESInstanceAliasList,\n PostgreInvalidDemensions,\n namespace,\n modifyDimensons,\n templateQueryIdMap,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDBDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = POSTGRESInstanceAliasList;\n InvalidDimensions = PostgreInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'postgres',\n action: 'DescribeDBInstances',\n responseField: 'DBInstanceSet',\n };\n\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nconst namespace = 'QCE/POSTGRES';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'postgresQuery';\n\nconst PostgresFields = {\n 'db-instance-id': [],\n 'db-instance-name': [],\n};\n\nconst PostgresFieldsDescriptor: FildDescriptorType = [\n {\n key: 'db-instance-id',\n enDescriptor: 'DB Instance ID',\n cnDescriptor: 'DB 实例ID',\n link: '',\n type: 'inputMulti',\n min: 0,\n },\n {\n key: 'db-instance-name',\n enDescriptor: 'DB Instance Name',\n cnDescriptor: 'DB 实例名称',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/409/16773',\n namespace,\n fieldDescriptor: PostgresFieldsDescriptor,\n};\nconst POSTGRESInstanceAliasList = ['DBInstanceId', 'DBInstanceName'];\n\nconst POSTGRES_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DBInstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...PostgresFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['resourceId'];\n });\n return metricTmp;\n}\nconst PostgreInvalidDemensions = {\n uid: 'DBInstanceId',\n resourceId: 'DBInstanceId',\n};\nconst templateQueryIdMap = {\n instance: 'DBInstanceId',\n};\nexport default POSTGRES_STATE;\n\nexport {\n PostgresFieldsDescriptor,\n POSTGRESInstanceAliasList,\n templateQueryIdMap,\n modifyDimensons,\n namespace,\n queryEditorName,\n queryEditorConfig,\n PostgreInvalidDemensions,\n GetInstanceQueryParams as POSTGRESGetInstanceQueryParams,\n};\n","import { get } from 'lodash';\nimport { QAAPInstanceAliasList, QAAPInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class QAAPDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = QAAPInstanceAliasList;\n InvalidDimensions = QAAPInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'gaap',\n action: 'DescribeProxies',\n responseField: 'ProxySet',\n interceptor: {\n // response: (data: unknown[]) =>[\n // {\n // \"NetDetectId\": \"netd-12345678\",\n // },\n // ],\n },\n };\n // MetricReqConfig = {\n // resultFilter: modifyDimensons,\n // };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter(\n (item) =>\n get(item, 'Dimensions.length') === 1 &&\n get(item, 'Dimensions[0].Dimensions.length') === 1 &&\n get(item, 'Dimensions[0].Dimensions[0]') === 'channelId'\n );\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/QAAP';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'qaapQuery';\n\nconst QAAPInvalidDemensions = {\n channelId: 'InstanceId',\n};\n\nconst QAAPInstanceAliasList = ['InstanceId'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst QAAPFilterFields = {\n Limit: 20,\n Offset: 0,\n ProjectId: [],\n AccessRegion: [],\n RealServerRegion: [],\n GroupId: [],\n};\n\nconst QAAPFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'AccessRegion',\n enDescriptor: 'AccessRegion',\n cnDescriptor: '接入地域',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'RealServerRegion',\n enDescriptor: 'RealServerRegion',\n cnDescriptor: '源站地域',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'GroupId',\n enDescriptor: 'GroupId',\n cnDescriptor: '通道组ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/608/36963',\n namespace,\n fieldDescriptor: QAAPFilterFieldsDescriptor,\n};\n\nconst QAAP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: QAAPFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n // metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = ['netDetectId'];\n // });\n return metricTmp;\n}\nexport default QAAP_STATE;\nexport {\n QAAPFilterFieldsDescriptor,\n templateQueryIdMap,\n QAAPInstanceAliasList,\n QAAPInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as QAAPGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { REDISInstanceAliasList, RedisInvalidDemensions, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class REDISDatasource extends BaseDatasource {\n Namespace = 'QCE/REDIS';\n InstanceAliasList = REDISInstanceAliasList;\n InvalidDimensions = RedisInvalidDemensions;\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'redis',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n interceptor: {\n request: (params) => ({ ...params, MonitorVersion: '1m' }),\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) => isValidMetric(item));\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { RedisFieldsDescriptor } from './query_def';\n\nexport class RedisQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.RedisFieldsDescriptor = RedisFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function redisQuery() {\n return {\n template: template,\n controller: RedisQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('redisQuery', redisQuery);\n","import _ from 'lodash';\nconst BillingMode = [\n { text: '按量计费', value: 'postpaid' },\n { text: '包年包月', value: 'prepaid' },\n];\n\nconst AutoRenew = [\n { text: '手动续费', value: 0 },\n { text: '自动续费', value: 1 },\n { text: '明确不自动续费', value: 2 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '已隔离', value: -2 },\n { text: '待删除', value: -3 },\n];\n\nconst TypeVersion = [\n { text: '单机版', value: 1 },\n { text: '主从版', value: 2 },\n { text: '集群版', value: 3 },\n];\n\nconst OrderBy = [\n { text: 'projectId', value: 'projectId' },\n { text: 'instancename', value: 'instancename' },\n { text: 'createtime', value: 'createtime' },\n { text: 'type', value: 'type' },\n { text: 'curDeadline', value: 'curDeadline' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\nconst Type = [\n { text: 'Redis老集群版', value: 1 },\n { text: 'Redis 2.8主从版', value: 2 },\n { text: 'CKV主从版', value: 3 },\n { text: 'CKV集群版', value: 4 },\n { text: 'Redis 2.8单机版', value: 5 },\n { text: 'Redis 4.0主从版', value: 6 },\n { text: 'Redis 4.0集群版', value: 7 },\n { text: 'Redis5.0主从版', value: 8 },\n { text: 'Redis5.0集群版', value: 9 },\n];\n\nconst RedisFields = {\n InstanceId: '',\n OrderBy: '',\n OrderType: null,\n VpcIds: [],\n SubnetIds: [],\n ProjectIds: [],\n SearchKey: '',\n InstanceName: '',\n UniqVpcIds: [],\n UniqSubnetIds: [],\n Status: [],\n TypeVersion: null,\n EngineName: '',\n AutoRenew: null,\n BillingMode: '',\n Type: null,\n};\n\nconst RedisFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstancesId',\n cnDescriptor: '实例id',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderType',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderType,\n },\n {\n key: 'VpcIds',\n enDescriptor: 'VpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'SubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '项目ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '查找实例的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'InstanceName',\n enDescriptor: 'InstanceName',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'UniqVpcIds',\n enDescriptor: 'UniqVpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'UniqSubnetIds',\n enDescriptor: 'UniqSubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'TypeVersion',\n enDescriptor: 'TypeVersion',\n cnDescriptor: '类型版本',\n link: '',\n type: 'select',\n list: TypeVersion,\n },\n {\n key: 'EngineName',\n enDescriptor: 'EngineName',\n cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenew',\n enDescriptor: 'AutoRenew',\n cnDescriptor: '续费模式',\n multiple: true,\n type: 'select',\n list: AutoRenew,\n },\n {\n key: 'BillingMode',\n enDescriptor: 'BillingMode',\n cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',\n link: '',\n type: 'select',\n list: BillingMode,\n },\n {\n key: 'Type',\n enDescriptor: 'Type',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: Type,\n },\n];\n\nconst REDIS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...RedisFields },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n return dimension.length === 1 && _.indexOf(dimension, 'instanceid') !== -1;\n}\n\nconst REDISInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];\n\nconst RedisInvalidDemensions = {\n redis_uuid: 'InstanceId',\n instanceid: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default REDIS_STATE;\nexport {\n RedisFieldsDescriptor,\n RedisInvalidDemensions,\n templateQueryIdMap,\n REDISInstanceAliasList,\n isValidMetric,\n GetInstanceQueryParams as REDISGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport {\n REDISMEMInstanceAliasList,\n namespace,\n RedisMemInvalidDemensions,\n templateQueryIdMap,\n NodeType,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\n\nexport default class REDISDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = REDISMEMInstanceAliasList;\n InvalidDimensions = RedisMemInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n extrasAlias = [RedisMemInvalidDemensions.pnodeid, RedisMemInvalidDemensions.rnodeid];\n InstanceReqConfig = {\n service: 'redis',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n interceptor: {\n request: (params) => ({ ...params, MonitorVersion: '5s' }),\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getInstanceNodeInfo(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'redis');\n\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeInstanceNodeInfo' }\n );\n },\n {\n InstanceId: instanceId,\n },\n NodeType\n );\n\n return res;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n if (action === 'DescribeInstanceNodeInfo') {\n const rs = await this.getInstanceNodeInfo({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const { nodetype } = query;\n const ndoeTypeIndex = NodeType.indexOf(nodetype);\n return ndoeTypeIndex === -1\n ? []\n : _.map(rs[ndoeTypeIndex], (item) => ({ text: item.NodeId, value: item.NodeId }));\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { map } from 'lodash';\nimport { RedisMemFieldsDescriptor, templateQueryIdMap, NodeType, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class RedisMemQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.RedisMemFieldsDescriptor = RedisMemFieldsDescriptor;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.rnodeid = '';\n $scope.target.pnodeid = '';\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace(namespace);\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {}\n return variableData;\n };\n\n $scope.getExtraDropdown = async (target, nodetype) => {\n const { instance } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getInstanceNodeInfo')({ region, instanceId });\n\n const ndoeTypeIndex = NodeType.indexOf(nodetype);\n return ndoeTypeIndex === -1 ? [] : map(rs[ndoeTypeIndex], (item) => ({ text: item.NodeId, value: item.NodeId }));\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n`;\n\nexport function redisMemQuery() {\n return {\n template: template,\n controller: RedisMemQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\n\ncoreModule.directive('redisMemQuery', redisMemQuery);\n","import _ from 'lodash';\n\nconst namespace = 'QCE/REDIS_MEM';\nconst BillingMode = [\n { text: '按量计费', value: 'postpaid' },\n { text: '包年包月', value: 'prepaid' },\n];\n\nconst AutoRenew = [\n { text: '手动续费', value: 0 },\n { text: '自动续费', value: 1 },\n { text: '明确不自动续费', value: 2 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '已隔离', value: -2 },\n { text: '待删除', value: -3 },\n];\n\nconst TypeVersion = [\n { text: '单机版', value: 1 },\n { text: '主从版', value: 2 },\n { text: '集群版', value: 3 },\n];\n\nconst OrderBy = [\n { text: 'projectId', value: 'projectId' },\n { text: 'instancename', value: 'instancename' },\n { text: 'createtime', value: 'createtime' },\n { text: 'type', value: 'type' },\n { text: 'curDeadline', value: 'curDeadline' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\nconst Type = [\n { text: 'Redis老集群版', value: 1 },\n { text: 'Redis 2.8主从版', value: 2 },\n { text: 'CKV主从版', value: 3 },\n { text: 'CKV集群版', value: 4 },\n { text: 'Redis 2.8单机版', value: 5 },\n { text: 'Redis 4.0主从版', value: 6 },\n { text: 'Redis 4.0集群版', value: 7 },\n { text: 'Redis5.0主从版', value: 8 },\n { text: 'Redis5.0集群版', value: 9 },\n];\n\nconst RedisFields = {\n InstanceId: '',\n OrderBy: '',\n OrderType: null,\n VpcIds: [],\n SubnetIds: [],\n ProjectIds: [],\n SearchKey: '',\n InstanceName: '',\n UniqVpcIds: [],\n UniqSubnetIds: [],\n Status: [],\n TypeVersion: null,\n EngineName: '',\n AutoRenew: null,\n BillingMode: '',\n Type: null,\n};\n\nconst RedisMemFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstancesId',\n cnDescriptor: '实例id',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderType',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderType,\n },\n {\n key: 'VpcIds',\n enDescriptor: 'VpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'SubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '项目ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '查找实例的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'InstanceName',\n enDescriptor: 'InstanceName',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'UniqVpcIds',\n enDescriptor: 'UniqVpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'UniqSubnetIds',\n enDescriptor: 'UniqSubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'TypeVersion',\n enDescriptor: 'TypeVersion',\n cnDescriptor: '类型版本',\n link: '',\n type: 'select',\n list: TypeVersion,\n },\n {\n key: 'EngineName',\n enDescriptor: 'EngineName',\n cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenew',\n enDescriptor: 'AutoRenew',\n cnDescriptor: '续费模式',\n multiple: true,\n type: 'select',\n list: AutoRenew,\n },\n {\n key: 'BillingMode',\n enDescriptor: 'BillingMode',\n cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',\n link: '',\n type: 'select',\n list: BillingMode,\n },\n {\n key: 'Type',\n enDescriptor: 'Type',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: Type,\n },\n];\n\nconst REDISMEM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...RedisFields },\n rnodeid: '',\n pnodeid: '',\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst REDISMEMInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];\n\nconst RedisMemInvalidDemensions = {\n instanceid: 'InstanceId',\n rnodeid: 'rnodeid',\n pnodeid: 'pnodeid',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n rnodeid: 'rnodeid',\n pnodeid: 'pnodeid',\n};\n\nconst NodeType = ['Redis', 'Proxy'];\n\nexport default REDISMEM_STATE;\nexport {\n RedisMemFieldsDescriptor,\n RedisMemInvalidDemensions,\n REDISMEMInstanceAliasList,\n templateQueryIdMap,\n namespace,\n NodeType,\n GetInstanceQueryParams as REDISMEMGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n SCFInstanceAliasList,\n SCFInvalidDemensions,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n templateQueryIdMap,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class SCFDatasource extends BaseDatasource {\n InstanceKey: string;\n Namespace: string;\n InstanceAliasList: string[];\n InvalidDimensions: Record;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n InstanceReqConfig: { service?: string | undefined; action: string; responseField: string };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n\n this.Namespace = 'QCE/SCF_V2';\n this.InstanceAliasList = SCFInstanceAliasList;\n this.InvalidDimensions = SCFInvalidDemensions;\n this.InstanceReqConfig = {\n service: 'scf',\n action: 'ListFunctions',\n responseField: 'Functions',\n };\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter(\n (item) =>\n /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含functionName的指标 */\n item.Dimensions?.[0]?.Dimensions?.includes('functionName') &&\n item.Dimensions?.[0]?.Dimensions?.includes('namespace') &&\n !item.MetricName.startsWith('Name')\n );\n }\n\n getVersions(region, params) {\n const serviceInfo = GetServiceAPIInfo(region, 'scf');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'ListVersionByFunction' }\n ).then((response) => {\n return response.Versions;\n });\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'ListVersionByFunction') {\n const rs = await this.getVersions(region, { FunctionName: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.version];\n return {\n text: o[this.templateQueryIdMap.version],\n value: o[this.templateQueryIdMap.version],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.version, rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { SCFQueryDescriptor, templateQueryIdMap } from './query_def';\n\nexport class SCFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.SCFQueryDescriptor = SCFQueryDescriptor;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('scf', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).FunctionName;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.getVersions = async (target) => {\n // console.log(2222);\n\n // return [{ text: 1, value: 1 }];\n // console.log(target, 'target');\n // let { instance, region } = target;\n const FunctionName = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn('scf', 'getVariable')(target.region);\n if (!FunctionName || !region) return [];\n\n const fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');\n\n return fetcher(region, { FunctionName }).then((res) => {\n // console.log(res, 'res');\n const result = res.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.version];\n return {\n text: o[templateQueryIdMap.version],\n value: JSON.stringify(o),\n };\n });\n return result;\n });\n };\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: SCFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n },\n };\n}\ncoreModule.directive('scfQuery', scfQuery);\n","import _ from 'lodash';\n\nexport const SCFQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '支持FunctionName模糊匹配',\n link: '',\n type: 'input',\n },\n {\n key: 'Namespace',\n enDescriptor: 'Namespace',\n cnDescriptor: '云函数命名空间',\n link: '',\n type: 'input',\n },\n {\n key: 'Description',\n enDescriptor: 'Description',\n cnDescriptor: '函数描述,支持模糊搜索',\n link: '',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: 'AddTime', value: 'AddTime' },\n { text: 'ModTime', value: 'ModTime' },\n { text: 'FunctionName', value: 'FunctionName' },\n ],\n },\n {\n key: 'Order',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: 'ASC', value: 'ASC' },\n { text: 'DESC', value: 'DESC' },\n ],\n },\n // {\n // key: 'Filters',\n // enDescriptor: 'Filters',\n // cnDescriptor: '按照标签键值对进行过滤',\n // link: '',\n // type: 'dropdownmulti',\n // },\n];\n\nconst SCF_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'FunctionName',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n OrderBy: {},\n Order: {},\n SearchKey: '',\n Namespace: '',\n Description: '',\n // Filters: {},\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst SCFInstanceAliasList = ['FunctionId', 'FunctionName'];\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst SCFInvalidDemensions = {\n functionName: 'FunctionName',\n namespace: 'Namespace',\n version: 'Version',\n};\n\nconst templateQueryIdMap = {\n instance: 'FunctionName',\n version: 'Version',\n};\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n version: 'version',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n Version: {\n dim_KeyInStorage: keyInStorage.version,\n dim_KeyInTarget: 'version',\n dim_KeyInMap: templateQueryIdMap.version,\n },\n};\nexport default SCF_STATE;\nexport {\n SCFInstanceAliasList,\n SCFInvalidDemensions,\n queryMonitorExtraConfg,\n regionSupported,\n templateQueryIdMap,\n keyInStorage,\n GetInstanceQueryParams as SCFGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\nexport const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import {\n SQLSERVERInstanceAliasList,\n SQLSERVERInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = SQLSERVERInstanceAliasList;\n InvalidDimensions = SQLSERVERInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'sqlserver',\n action: 'DescribeDBInstances',\n responseField: 'DBInstances',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(rawSet.map((item) => modifyDimensons(item)));\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n getFilterDropdown({ field, region }) {\n if (field === 'Zone') {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n return [];\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/SQLSERVER';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'sqlserverQuery';\n\nconst SQLSERVERInvalidDemensions = {\n resourceId: 'InstanceId',\n};\n\nconst SQLSERVERInstanceAliasList = ['InstanceId', 'Name'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst SQLSERVERNETFilterFields = {\n Limit: 20,\n Offset: 0,\n ProjectId: null,\n Status: {},\n InstanceIdSet: [],\n PayMode: {},\n VpcId: '',\n SubnetId: '',\n VipSet: [],\n InstanceNameSet: [],\n VersionSet: [],\n Zone: '',\n};\n\nconst SQLSERVERNETFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n list: [\n { text: '申请中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '受限运行中 (主备切换中)', value: 3 },\n { text: '已隔离', value: 4 },\n { text: '回收中', value: 5 },\n { text: '已回收', value: 6 },\n { text: '任务执行中', value: 7 },\n { text: '已下线', value: 8 },\n { text: '实例扩容中', value: 9 },\n { text: '实例迁移中', value: 10 },\n { text: '只读', value: 11 },\n { text: '重启中', value: 12 },\n ],\n },\n {\n key: 'InstanceIdSet',\n enDescriptor: 'InstanceIdSet',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'PayMode',\n enDescriptor: 'PayMode',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'select',\n list: [\n { text: '包年包月', value: 1 },\n { text: '按量计费', value: 0 },\n ],\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '实例所属VPC的唯一字符串ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '实例所属子网的唯一字符串ID',\n link: '',\n type: 'input',\n },\n {\n key: 'VipSet',\n enDescriptor: 'VipSet',\n cnDescriptor: '实例内网地址列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'InstanceNameSet',\n enDescriptor: 'InstanceNameSet',\n cnDescriptor: '实例名称列表, 模糊查询',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'VersionSet',\n enDescriptor: 'VersionSet',\n cnDescriptor: '实例版本代号列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Zone',\n enDescriptor: 'Zone',\n cnDescriptor: '实例可用区',\n link: '',\n type: 'dropdown',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/238/19969',\n namespace,\n fieldDescriptor: SQLSERVERNETFilterFieldsDescriptor,\n};\n\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-nanjing' },\n { value: 'ap-seoul' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-moscow' },\n { value: 'na-siliconvalley' },\n];\nconst SQLSERVER_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: SQLSERVERNETFilterFields,\n};\n\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['resourceId'];\n });\n return metricTmp;\n}\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default SQLSERVER_STATE;\nexport {\n SQLSERVERNETFilterFieldsDescriptor,\n templateQueryIdMap,\n SQLSERVERInstanceAliasList,\n SQLSERVERInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n // 对应产品的service的全大写拼接InstanceQueryParams\n GetInstanceQueryParams as SQLSERVERGetInstanceQueryParams,\n};\n","import { TCAPLUSInstanceAliasList, TCAPLUSInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TCAPLUSInstanceAliasList;\n InvalidDimensions = TCAPLUSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tcaplusdb',\n action: 'DescribeTables',\n responseField: 'TableInfos',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/tcaplusdb',\n },\n 'tcaplusdb',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n return _.map(response.RegionInfos || [], (item) => {\n return {\n text: t(item.RegionName),\n value: item.RegionName,\n };\n });\n });\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/TCAPLUS';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tcaplusQuery';\n\nconst TCAPLUSInvalidDemensions = {\n // TableInstanceId: 'TableInstanceId',\n // ClusterId: 'ClusterId',\n};\n\n// 需和文件名对应\nconst TCAPLUSInstanceAliasList = ['TableInstanceId', 'TableName'];\n\nconst templateQueryIdMap = {\n instance: 'TableInstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst TCAPLUSFilterFields = {\n Limit: 20,\n Offset: 0,\n ClusterId: '',\n TableGroupIds: [],\n\n TableName: '',\n TableInstanceId: '',\n TableIdlType: {},\n TableType: {},\n ListElementNum: null,\n ReservedVolume: null,\n ReservedReadQps: null,\n ReservedWriteQps: null,\n Memo: '',\n FileName: '',\n FileExtType: '',\n FileSize: null,\n FileContent: '',\n};\n\nconst TCAPLUSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ClusterId',\n enDescriptor: 'ClusterId',\n cnDescriptor: '表格所属集群ID',\n link: '',\n type: 'input',\n },\n {\n key: 'TableGroupIds',\n enDescriptor: 'TableGroupIds',\n cnDescriptor: '表格组ID列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'TableName',\n enDescriptor: 'TableName',\n cnDescriptor: '表格名称',\n link: '',\n type: 'input',\n },\n {\n key: 'TableInstanceId',\n enDescriptor: 'TableInstanceId',\n cnDescriptor: '表实例ID',\n link: '',\n type: 'input',\n },\n {\n key: 'TableIdlType',\n enDescriptor: 'TableIdlType',\n cnDescriptor: '表格描述语言类型',\n link: '',\n type: 'select',\n list: [\n { text: 'PROTO', value: 'PROTO' },\n { text: 'TDR', value: 'TDR' },\n ],\n },\n {\n key: 'TableType',\n enDescriptor: 'TableType',\n cnDescriptor: '表格数据结构类型',\n link: '',\n type: 'select',\n list: [\n { text: 'GENERIC', value: 'GENERIC' },\n { text: 'LIST', value: 'LIST' },\n ],\n },\n {\n key: 'ListElementNum',\n enDescriptor: 'ListElementNum',\n cnDescriptor: 'LIST表元素个数',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedVolume',\n enDescriptor: 'ReservedVolume',\n cnDescriptor: '表格预留容量(GB)',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedReadQps',\n enDescriptor: 'ReservedReadQps',\n cnDescriptor: '表格预留读CU',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedWriteQps',\n enDescriptor: 'ReservedWriteQps',\n cnDescriptor: '表格预留写CU',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'Memo',\n enDescriptor: 'Memo',\n cnDescriptor: '表格备注信息',\n link: '',\n type: 'input',\n },\n {\n key: 'FileName',\n enDescriptor: 'FileName',\n cnDescriptor: 'Key回档文件名,回档专用',\n link: '',\n type: 'input',\n },\n {\n key: 'FileExtType',\n enDescriptor: 'FileExtType',\n cnDescriptor: 'Key回档文件扩展名,回档专用',\n link: '',\n type: 'input',\n },\n {\n key: 'FileSize',\n enDescriptor: 'FileSize',\n cnDescriptor: 'Key回档文件大小,回档专用',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'FileContent',\n enDescriptor: 'FileContent',\n cnDescriptor: 'Key回档文件内容,回档专用',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/596/39664',\n namespace,\n fieldDescriptor: TCAPLUSFilterFieldsDescriptor,\n};\n\nconst TCAPLUS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TableInstanceId',\n queries: TCAPLUSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n params.ClusterId = _.get(queries, 'ClusterId', '') || '';\n params.TableGroupIds = _.get(queries, 'TableGroupIds', []) || [];\n queries = _.omit(queries, ['Offset', 'Limit', 'TableGroupIds', 'ClusterId']);\n const SelectedTables: any[] = [];\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n SelectedTables[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n SelectedTables[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n SelectedTables[key] = item;\n }\n });\n params.SelectedTables = SelectedTables;\n return params;\n}\n// 和其他产品的展示保持一致\nconst regonsMap = {\n 'ap-beijing': '华北地区(北京)',\n 'ap-guangzhou': '华南地区(广州)',\n 'ap-hongkong': '港澳台地区(中国香港)',\n 'ap-seoul': '亚太东北(首尔)',\n 'ap-shanghai': '华东地区(上海)',\n 'ap-singapore': '亚太东南(新加坡)',\n 'ap-tokyo': '亚太东北(东京)',\n 'eu-frankfurt': '欧洲地区(法兰克福)',\n 'na-ashburn': '美国东部(弗吉尼亚)',\n 'na-siliconvalley': '美国西部(硅谷)',\n};\nexport default TCAPLUS_STATE;\nexport {\n TCAPLUSFilterFieldsDescriptor,\n templateQueryIdMap,\n TCAPLUSInstanceAliasList,\n TCAPLUSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regonsMap,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TCAPLUSGetInstanceQueryParams,\n};\n","import {\n TDMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeClusters',\n responseField: 'ClusterSet',\n };\n extraActionMap = {\n DescribeTopics: {\n service: 'tdmq',\n action: 'DescribeTopics',\n responseField: 'TopicSets',\n pickKey: 'TopicName',\n },\n DescribeEnvironments: {\n service: 'tdmq',\n action: 'DescribeEnvironments',\n responseField: 'EnvironmentSet',\n pickKey: 'EnvironmentId',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(rawSet.map((item) => modifyDimensons(item)));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n // console.log({ rs });\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n ClusterId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n if (action === 'DescribeTopics') {\n payload.EnvironmentId = this.getVariable(query['environmentid']);\n }\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'environmentId',\n field: 'environmentId',\n action: 'DescribeEnvironments',\n },\n {\n label: 'topicName',\n field: 'topicName',\n action: 'DescribeTopics',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeTopics: 'topicName',\n DescribeEnvironments: 'environmentId',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n ClusterId: $scope.getInstanceId(),\n };\n if (action === 'DescribeTopics') {\n let evId = $scope.target.environmentId;\n try {\n evId = JSON.parse(evId);\n evId = evId[templateQueryIdMap.environmentId];\n } catch (e) {}\n payload.EnvironmentId = evId;\n }\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n label: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/TDMQ';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tdmqQuery';\n\nconst TDMQInvalidDemensions = {\n tenantId: 'ClusterId',\n tenant: 'ClusterId',\n topicName: 'TopicName',\n environmentId: 'EnvironmentId',\n};\n\n// 需和文件名对应\nconst TDMQInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nconst templateQueryIdMap = {\n instance: 'ClusterId',\n topicName: 'TopicName',\n environmentId: 'EnvironmentId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n];\n\nconst CDNPROVINCE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n topicName: '',\n environmentId: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n if (item.Dimensions.indexOf('topicName') !== -1 && item.Dimensions.indexOf('environmentId') === -1) {\n item.Dimensions.push('environmentId');\n }\n });\n return metricTmp;\n}\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n topicName: 'topicName',\n environmentId: 'environmentId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n TopicName: {\n dim_KeyInStorage: keyInStorage.topicName,\n dim_KeyInTarget: 'topicName',\n dim_KeyInMap: templateQueryIdMap.topicName,\n },\n EnvironmentId: {\n dim_KeyInStorage: keyInStorage.environmentId,\n dim_KeyInTarget: 'environmentId',\n dim_KeyInMap: templateQueryIdMap.environmentId,\n },\n};\nexport default CDNPROVINCE_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryEditorName,\n queryMonitorExtraConfg,\n keyInStorage,\n modifyDimensons,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQGetInstanceQueryParams,\n};\n","import {\n TDMQRABBITMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQRABBITMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeRabbitMQVipInstances',\n responseField: 'Instances',\n };\n extraActionMap = {\n DescribeRabbitMQNodeList: {\n service: 'tdmq',\n action: 'DescribeRabbitMQNodeList',\n responseField: 'NodeList',\n pickKey: 'node',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n InstanceId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Node',\n field: 'node',\n action: 'DescribeRabbitMQNodeList',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeRabbitMQNodeList: 'node',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.node = '';\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n InstanceId: $scope.getInstanceId(),\n };\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n label: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\ncoreModule.directive('tdmqRabbitmqQuery', sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/RABBITMQ';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tdmqQuery';\n\nconst TDMQInvalidDemensions = {\n instanceid: 'InstanceId',\n node: 'NodeName',\n};\n\n// 需和文件名对应\nconst TDMQRABBITMQInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n node: 'NodeName',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n];\n\nconst TDMQ_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n node: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n node: 'NodeName',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NodeName: {\n dim_KeyInStorage: keyInStorage.node,\n dim_KeyInTarget: 'node',\n dim_KeyInMap: templateQueryIdMap.node,\n },\n};\nexport default TDMQ_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQRABBITMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryEditorName,\n queryMonitorExtraConfg,\n keyInStorage,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQGetInstanceQueryParams,\n};\n","import {\n TDMQROCKETMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQROCKETMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeRocketMQClusters',\n responseField: 'ClusterList',\n interceptor: {\n response: (result) =>\n _.map(result, (item) => ({\n ...item,\n ClusterId: _.get(item, 'Info.ClusterId', ''),\n ClusterName: _.get(item, 'Info.ClusterName', ''),\n })),\n },\n };\n extraActionMap = {\n DescribeRocketMQNamespaces: {\n service: 'tdmq',\n action: 'DescribeRocketMQNamespaces',\n responseField: 'Namespaces',\n pickKey: 'namespace',\n },\n DescribeRocketMQGroups: {\n service: 'tdmq',\n action: 'DescribeRocketMQGroups',\n responseField: 'Groups',\n pickKey: 'group',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) => !item.Dimensions?.[0]?.Dimensions?.includes('rmqcluster'));\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n ClusterId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n if (action === 'DescribeRocketMQGroups') {\n payload.NamespaceId = this.getVariable(query['clusternamespace']);\n }\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Namespace',\n field: 'namespace',\n action: 'DescribeRocketMQNamespaces',\n },\n {\n label: 'Group',\n field: 'group',\n action: 'DescribeRocketMQGroups',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeRocketMQNamespaces: 'namespace',\n DescribeRocketMQGroups: 'group',\n};\nexport class TdmqRocketmqQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.namespace = '';\n $scope.target.group = '';\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n ClusterId: $scope.getInstanceId(),\n };\n if (action === 'DescribeRocketMQGroups') {\n let namespace = $scope.target.namespace;\n try {\n namespace = JSON.parse(namespace)[templateQueryIdMap.namespace];\n } catch (e) {}\n payload.NamespaceId = $scope.datasource.getServiceFn(service, 'getVariable')(namespace);\n }\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function tdmqRocketmqQuery() {\n return {\n template: template,\n controller: TdmqRocketmqQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\ncoreModule.directive('tdmqRocketmqQuery', tdmqRocketmqQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/ROCKETMQ';\n\nconst TDMQInvalidDemensions = {\n tenant: 'ClusterId',\n namespace: 'NamespaceId',\n group: 'Name',\n};\n\n// 需和文件名对应\nconst TDMQROCKETMQInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nconst templateQueryIdMap = {\n instance: 'ClusterId',\n namespace: 'NamespaceId',\n group: 'Name',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: true,\n ClusterIdList: [''],\n Filters: {\n includeVip: { text: '是', value: 'true' },\n },\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'includeVip',\n enDescriptor: 'includeVip',\n cnDescriptor: '包含专享集群',\n link: '',\n type: 'select',\n list: [\n { text: '是', value: 'true' },\n { text: '否', value: 'false' },\n ],\n },\n];\n\nconst TDMQ_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n namespace: '',\n group: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.ClusterIdList)) {\n const ClusterIdList = _.compact(queries.ClusterIdList);\n if (_.uniq(ClusterIdList).length > 0) {\n params.ClusterIdList = _.uniq(ClusterIdList).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: [_.get(item, 'value', [])].slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n namespace: 'NamespaceId',\n group: 'Name',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NamespaceId: {\n dim_KeyInStorage: keyInStorage.namespace,\n dim_KeyInTarget: 'namespace',\n dim_KeyInMap: templateQueryIdMap.namespace,\n },\n Name: {\n dim_KeyInStorage: keyInStorage.group,\n dim_KeyInTarget: 'group',\n dim_KeyInMap: templateQueryIdMap.group,\n },\n};\nexport default TDMQ_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQROCKETMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryMonitorExtraConfg,\n keyInStorage,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQROCKETMQGetInstanceQueryParams,\n};\n","import { map, flatten, reduce, isEmpty, filter, split, sortBy, findIndex, trim, isArray, isString } from 'lodash';\nimport { GetServiceAPIInfo, ReplaceVariable } from '../../common/constants';\nimport { getTimeShiftInMs } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\n\nconst variableToArray = (variable) => {\n if (isEmpty(variable)) {\n return [];\n }\n if (isArray(variable)) {\n return variable;\n }\n if (isString(variable)) {\n return split(variable, ',').map((item) => trim(item));\n }\n return [];\n};\n\nexport default class TKEDatasource extends BaseDatasource {\n InstanceAliasList = ['ClusterId', 'ClusterName'];\n templateQueryIdMap = {\n instance: 'ClusterId',\n };\n InvalidDimensions = {\n tke_cluster_instance_id: 'ClusterId',\n };\n InstanceReqConfig = {\n service: 'tke',\n action: 'DescribeClusters',\n responseField: 'Clusters',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getMonitorData(params: any, region: any, instances: any, target: any, options: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const timeshift = getTimeShiftInMs(target.timeshift);\n const conditions = reduce(\n target.conditions,\n (prev, item) => {\n if (isEmpty(item.Key) || isEmpty(item.Operator) || isEmpty(item.Value)) {\n return prev;\n }\n return [\n ...filter(prev, (e) => e.Key !== item.Key),\n {\n Key: ReplaceVariable(this.templateSrv, options.scopedVars, item.Key, false),\n Operator: ReplaceVariable(this.templateSrv, options.scopedVars, item.Operator, false),\n Value: variableToArray(ReplaceVariable(this.templateSrv, options.scopedVars, item.Value, true)),\n },\n ];\n },\n [{ Key: 'tke_cluster_instance_id', Operator: '=', Value: instances.map((item) => item['ClusterId']) }]\n );\n\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Period: params.Period,\n MetricNames: [params.MetricName],\n Module: 'monitor',\n Namespace: 'QCE/TKE',\n EndTime: params.EndTime,\n StartTime: params.StartTime,\n Conditions: conditions,\n GroupBys: variableToArray(ReplaceVariable(this.templateSrv, options.scopedVars, target.groupBys, true)),\n },\n },\n serviceInfo.service,\n { action: 'DescribeStatisticData', region }\n ).then((response) => {\n return flatten(\n map(response.Data, (data) => {\n return map(data.Points, (point) => {\n const dimensionSort = sortBy(point.Dimensions, ['Name']);\n const dimensionString = [\n ...dimensionSort.splice(findIndex(dimensionSort, { Name: 'tke_cluster_instance_id' }), 1),\n ...dimensionSort,\n ]\n .map((dimension) => dimension.Value)\n .join(' - ');\n const timeshiftString = timeshift > 0 ? `_${target.timeshift}` : '';\n return {\n target: `${data.MetricName} - ${dimensionString}${timeshiftString}`,\n datapoints: map(point.Values, (value) => [value.Value, value.Timestamp * 1000 + timeshift]),\n };\n });\n })\n );\n });\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { isEmpty } from 'lodash';\nimport { TKEFilterFieldsDescriptor } from './query_def';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TKEFilterFieldsDescriptor = TKEFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.addCondition = () => {\n $scope.target.conditions.push({ Key: '', Operator: '=', Value: '' });\n };\n\n $scope.deleteCondition = (index) => {\n const targetCondition = $scope.target.conditions[index];\n if (isEmpty(targetCondition.Key) || isEmpty(targetCondition.Operator) || isEmpty(targetCondition.Value)) {\n $scope.target.conditions.splice(index, 1);\n } else {\n $scope.target.conditions.splice(index, 1);\n $scope.onRefresh();\n }\n };\n\n $scope.getOperator = () => {\n return Promise.resolve([\n { text: '=', value: '=' },\n { text: 'in', value: 'in' },\n ]);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n \n \n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('tkeQuery', sQuery);\n","import _ from 'lodash';\n\nconst TKE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n conditions: [],\n groupBys: '',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: true,\n ClusterIds: [''],\n Filters: {\n ClusterName: [],\n ClusterType: [],\n ClusterStatus: [],\n 'tag-key': [],\n },\n },\n};\n\nconst TKEFilterFieldsDescriptor = [\n {\n key: 'ClusterName',\n enDescriptor: 'Cluster Name',\n cnDescriptor: '集群名',\n link: '',\n type: 'input',\n },\n {\n key: 'ClusterType',\n enDescriptor: 'Cluster Type',\n cnDescriptor: '集群类型',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ClusterStatus',\n enDescriptor: 'Cluster Status',\n cnDescriptor: '集群状态',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Tags',\n enDescriptor: 'Tags',\n cnDescriptor: '标签键值对',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC',\n cnDescriptor: 'VPC',\n link: '',\n type: 'input',\n },\n {\n key: 'tag-key',\n enDescriptor: 'Tag Key',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'tag-value',\n enDescriptor: 'Tag Value',\n cnDescriptor: '标签值',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst TKEInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nexport default TKE_STATE;\n\nexport { TKEFilterFieldsDescriptor, TKEInstanceAliasList, GetInstanceQueryParams as TKEGetInstanceQueryParams };\n","import _ from 'lodash';\nimport { TSFInvalidDemensions, TSFInstanceAliasList, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class TSFDatasource extends BaseDatasource {\n Namespace = 'QCE/TSF';\n InstanceAliasList = TSFInstanceAliasList;\n InvalidDimensions = TSFInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'tsf',\n action: 'DescribeApplications',\n responseField: 'Content',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { TSFFieldsDescriptor } from './query_def';\n\nexport class TSFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TSFFieldsDescriptor = TSFFieldsDescriptor;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function tsfQuery() {\n return {\n template: template,\n controller: TSFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('tsfQuery', tsfQuery);\n","import { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst ApplicationType = [\n { text: '所有', value: '' },\n { text: '容器应用', value: 'C' },\n { text: '普通应用/虚拟机应用', value: 'V' },\n];\n\nconst MicroserviceType = [\n { text: '所有', value: '' },\n { text: '普通应用', value: 'N' },\n { text: 'Mesh应用', value: 'M' },\n { text: '微服务网关应用', value: 'G' },\n { text: '原生应用', value: 'NATIVE' },\n];\n\nconst ApplicationResourceType = [\n { text: '默认资源类型', value: 'DEF' },\n { text: '微服务网关资源', value: 'GW' },\n];\n\nconst TSFFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'SearchWord',\n enDescriptor: 'SearchWord',\n cnDescriptor: '搜索关键字',\n link: '',\n type: 'input',\n },\n {\n key: 'ApplicationIdList',\n enDescriptor: 'ApplicationIdList',\n cnDescriptor: '应用ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ApplicationType',\n enDescriptor: 'ApplicationType',\n cnDescriptor: '应用类型',\n link: '',\n type: 'select',\n list: ApplicationType,\n },\n {\n key: 'MicroserviceType',\n enDescriptor: 'MicroserviceType',\n cnDescriptor: '应用的微服务类型',\n link: '',\n type: 'select',\n list: MicroserviceType,\n },\n {\n key: 'ApplicationResourceTypeList',\n enDescriptor: 'ApplicationResourceTypeList',\n cnDescriptor: '应用资源类型数组',\n link: '',\n type: 'select',\n multiple: true,\n list: ApplicationResourceType,\n },\n];\n\nconst TSF_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ApplicationId',\n queries: {\n Limit: 20,\n Offset: 0,\n SearchWord: '',\n OrderBy: '',\n OrderType: null,\n ApplicationType: '',\n MicroserviceType: '',\n ApplicationResourceTypeList: [],\n ApplicationIdList: [],\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nconst TSFInstanceAliasList = ['ApplicationId', 'ApplicationName'];\n\nconst TSFInvalidDemensions = {\n applicationid: 'ApplicationId',\n};\n\nconst templateQueryIdMap = {\n instance: 'ApplicationId',\n};\n\nexport default TSF_STATE;\nexport {\n TSFInvalidDemensions,\n templateQueryIdMap,\n TSFInstanceAliasList,\n TSFFieldsDescriptor,\n GetInstanceQueryParams as TSFGetInstanceQueryParams,\n};\n","import {\n VCLBInstanceAliasList,\n VCLBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n clbNamespaceMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VCLBInstanceAliasList;\n InvalidDimensions = VCLBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'clb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async getAllMetrics(region: string) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const { MetricSet: public_metrics } = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: clbNamespaceMap.public,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n );\n const { MetricSet: private_metrics } = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: clbNamespaceMap.private,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n );\n const res = Object.values(_.keyBy(_.concat(private_metrics, public_metrics), 'MetricName'));\n return res.map((t) => modifyDimensons(t));\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await this.getAllMetrics(region);\n return _.compact(rawSet);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/V_CLB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vClbQuery';\n\nconst VCLBInvalidDemensions = {\n InstanceId: 'LoadBalancerId',\n // vip: 'LoadBalancerVips',\n // loadBalancerPort: 'Port',\n // protocol: 'Protocol',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst VCLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\nconst ForwardTypes = [\n { text: '通用的负载均衡', value: 1 },\n { text: '传统的负载均衡', value: 0 },\n];\n\nconst OrderBy = [\n { text: 'LoadBalancerName', value: 'LoadBalancerName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'Domain', value: 'Domain' },\n { text: 'LoadBalancerType', value: 'LoadBalancerType' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\n\nconst WithRs = [\n { text: '没有绑定后端服务', value: 0 },\n { text: '绑定后端服务', value: 1 },\n { text: '查询全部', value: -1 },\n];\nconst VCLBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',\n link: '',\n type: 'inputNumber',\n min: 1,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancer ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancer Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'Forward',\n enDescriptor: 'Forward',\n cnDescriptor: '负载均衡实例类型',\n link: '',\n type: 'select',\n list: ForwardTypes,\n },\n {\n key: 'Domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',\n link: '',\n type: 'input',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancer Vips',\n cnDescriptor: '负载均衡实例的 VIP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivate Ips',\n cnDescriptor: '负载均衡绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPublicIps',\n enDescriptor: 'BackendPublic Ips',\n cnDescriptor: '负载均衡绑定的后端服务的外网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '负载均衡实例所属的项目 ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'VpcId',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '负载均衡实例所属私有网络',\n link: '',\n type: 'input',\n },\n {\n key: 'SecurityGroup',\n enDescriptor: 'Security Group',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'input',\n },\n {\n key: 'MasterZone',\n enDescriptor: 'Master Zone',\n cnDescriptor: '主可用区ID',\n link: '',\n type: 'input',\n },\n {\n key: 'WithRs',\n enDescriptor: 'WithRs',\n cnDescriptor: '负载均衡是否绑定后端服务',\n link: '',\n type: 'select',\n list: WithRs,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderType,\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',\n namespace,\n fieldDescriptor: VCLBFilterFieldsDescriptor,\n};\nconst LBFields = {\n LoadBalancerIds: [],\n Forward: undefined,\n LoadBalancerName: '',\n Domain: '',\n LoadBalancerVips: [],\n BackendPublicIps: [],\n BackendPrivateIps: [],\n Limit: 20,\n Offset: 0,\n ProjectId: undefined,\n WithRs: {},\n VpcId: '',\n SecurityGroup: '',\n MasterZone: '',\n OrderBy: {},\n OrderType: {},\n};\n\nconst VCLB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n Port: '',\n Protocol: '',\n listener: '',\n // listenerAlias: 'ListenerId',\n queries: LBFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nconst clbNamespaceMap = {\n public: 'QCE/LB_PUBLIC',\n private: 'QCE/LB_PRIVATE',\n};\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\nexport default VCLB_STATE;\nexport {\n VCLBFilterFieldsDescriptor,\n templateQueryIdMap,\n VCLBInstanceAliasList,\n VCLBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n clbNamespaceMap,\n modifyDimensons,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMLBGetInstanceQueryParams,\n};\n","import { VBCInstanceAliasList, VBCInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VBCInstanceAliasList;\n InvalidDimensions = VBCInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeCcns',\n responseField: 'CcnSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getFilterDropdown({ field }) {\n return super.getRegions();\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { VBCFilterFieldsDescriptor, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields: any = [\n // {\n // label: 'SRegion',\n // field: 'SRegion',\n // },\n // {\n // label: 'DRegion',\n // field: 'DRegion',\n // },\n];\n\nexport class VBCQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.VBCFilterFieldsDescriptor = VBCFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getExtraDropdown = (field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n // return $scope.datasource.getServiceFn(service, 'getFilterDropdown')({ field })\n return $scope.datasource.getFilterDropdown(service, { field });\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: VBCQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('vbcQuery', scfQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VBC';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vbcQuery';\n\nconst VBCInvalidDemensions = {\n // CcnId: 'CcnId',\n};\n\n// 需和文件名对应\nconst VBCInstanceAliasList = ['CcnId', 'CcnName'];\n\nconst templateQueryIdMap = {\n instance: 'CcnId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst VBCFilterFields = {\n Limit: 20,\n Offset: 0,\n 'ccn-id': [],\n 'ccn-name': [],\n 'ccn-description': [],\n state: {},\n};\n\nconst VBCFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ccn-id',\n enDescriptor: 'ccn-id',\n cnDescriptor: 'CCN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ccn-name',\n enDescriptor: 'ccn-name',\n cnDescriptor: 'CCN名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ccn-description',\n enDescriptor: 'ccn-description',\n cnDescriptor: 'CCN描述',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'state',\n enDescriptor: 'state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '隔离中', value: 'ISOLATED' },\n { text: '运行中', value: 'AVAILABLE' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/19199',\n namespace,\n fieldDescriptor: VBCFilterFieldsDescriptor,\n};\n\nconst VBC_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'CcnId',\n DRegion: '',\n SRegion: '',\n queries: VBCFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// const regionSupported = [\n// { text: '华北地区(北京)', value: 'ap-beijing' },\n// { text: '西南地区(成都)', value: 'ap-chengdu' },\n// { text: '西南地区(重庆)', value: 'ap-chongqing' },\n// { text: '华南地区(广州)', value: 'ap-guangzhou' },\n// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n// { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n// { text: '华东地区(南京)', value: 'ap-nanjing' },\n// { text: '华东地区(上海)', value: 'ap-shanghai' },\n// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n// { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n// { text: '亚太东北(东京)', value: 'ap-tokyo' },\n// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n// { text: '北美地区(多伦多)', value: 'na-toronto' },\n// ];\nexport default VBC_STATE;\nexport {\n VBCFilterFieldsDescriptor,\n templateQueryIdMap,\n VBCInstanceAliasList,\n VBCInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n // regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as VBCGetInstanceQueryParams,\n};\n","import {\n VPCNETDETECTInstanceAliasList,\n VPCNETInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPCNETDETECTInstanceAliasList;\n InvalidDimensions = VPCNETInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeNetDetects',\n responseField: 'NetDetectSet',\n interceptor: {\n // response: (data: unknown[]) =>[\n // {\n // \"NetDetectId\": \"netd-12345678\",\n // },\n // ],\n },\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPC_NET_DETECT';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vpcNetDetectQuery';\n\nconst VPCNETInvalidDemensions = {\n netdetectid: 'NetDetectId',\n netDetectId: 'NetDetectId',\n};\n\nconst VPCNETDETECTInstanceAliasList = ['NetDetectId', 'NetDetectName'];\n\nconst templateQueryIdMap = {\n instance: 'NetDetectId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPCNETFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'net-detect-id': [],\n 'subnet-id': [],\n 'net-detect-name': [],\n};\n\nconst VPCNETFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'net-detect-id',\n enDescriptor: 'net-detect-id',\n cnDescriptor: '网络探测实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'net-detect-name',\n enDescriptor: 'net-detect-name',\n cnDescriptor: '网络探测名称',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/38696',\n namespace,\n fieldDescriptor: VPCNETFilterFieldsDescriptor,\n};\n\nconst VPCNET_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'NetDetectId',\n queries: VPCNETFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['netDetectId'];\n });\n return metricTmp;\n}\nexport default VPCNET_STATE;\nexport {\n VPCNETFilterFieldsDescriptor,\n templateQueryIdMap,\n VPCNETDETECTInstanceAliasList,\n VPCNETInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as VPCNETDETECTGetInstanceQueryParams,\n};\n","import { VPNGWInstanceAliasList, VPNGWInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPNGWInstanceAliasList;\n InvalidDimensions = VPNGWInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeVpnGateways',\n responseField: 'VpnGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getFilterDropdown({ field, region }) {\n if (field === 'zone') {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n return [];\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPNGW';\nconst queryEditorName = 'vpngwQuery';\n\nconst VPNGWInvalidDemensions = {\n vpnGwId: 'VpnGatewayId',\n};\n\nconst VPNGWInstanceAliasList = ['VpnGatewayId', 'VpnGatewayName'];\n\nconst templateQueryIdMap = {\n instance: 'VpnGatewayId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPNGWFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'vpn-gateway-id': [],\n 'vpn-gateway-name': [],\n type: {},\n 'public-ip-address': [],\n 'renew-flag': {},\n zone: [],\n};\n\nconst VPNGWFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-id',\n enDescriptor: 'vpn-gateway-id',\n cnDescriptor: 'VPN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-name',\n enDescriptor: 'vpn-gateway-name',\n cnDescriptor: 'VPN实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'type',\n enDescriptor: 'type',\n cnDescriptor: 'VPN网关类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'IPSEC', value: 'IPSEC' },\n { text: 'SSL', value: 'SSL' },\n ],\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'public-ip-address',\n cnDescriptor: '公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'renew-flag',\n enDescriptor: 'renew-flag',\n cnDescriptor: '网关续费类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '手动续费', value: 'NOTIFY_AND_MANUAL_RENEW' },\n { text: '自动续费', value: 'NOTIFY_AND_AUTO_RENEW' },\n ],\n },\n {\n key: 'zone',\n enDescriptor: 'zone',\n cnDescriptor: 'VPN所在可用区',\n link: '',\n type: 'dropdownMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17514',\n namespace,\n fieldDescriptor: VPNGWFilterFieldsDescriptor,\n};\n\nconst VPNGW_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpnGatewayId',\n queries: VPNGWFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default VPNGW_STATE;\nexport {\n VPNGWFilterFieldsDescriptor,\n templateQueryIdMap,\n VPNGWInstanceAliasList,\n VPNGWInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as VPNGWGetInstanceQueryParams,\n};\n","import { VPNXInstanceAliasList, VPNXInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPNXInstanceAliasList;\n InvalidDimensions = VPNXInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeVpnConnections',\n responseField: 'VpnConnectionSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPNX';\nconst queryEditorName = 'vpnxQuery';\n\nconst VPNXInvalidDemensions = {\n vpnConnId: 'VpnConnectionId',\n};\n\nconst VPNXInstanceAliasList = ['VpnConnectionId', 'VpnConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'VpnConnectionId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPNXFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'vpn-gateway-id': [],\n 'customer-gateway-id': [],\n 'vpn-connection-name': [],\n 'vpn-connection-id': [],\n};\n\nconst VPNXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-id',\n enDescriptor: 'vpn-gateway-id',\n cnDescriptor: 'VPN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'customer-gateway-id ',\n enDescriptor: 'customer-gateway-id ',\n cnDescriptor: '对端网关实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-connection-name',\n enDescriptor: 'vpn-connection-name',\n cnDescriptor: '通道名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-connection-id',\n enDescriptor: 'vpn-connection-id',\n cnDescriptor: '通道实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17515',\n namespace,\n fieldDescriptor: VPNXFilterFieldsDescriptor,\n};\n\nconst VPNX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpnConnectionId',\n queries: VPNXFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default VPNX_STATE;\nexport {\n VPNXFilterFieldsDescriptor,\n templateQueryIdMap,\n VPNXInstanceAliasList,\n VPNXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as VPNXGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport {\n WAFInstanceAliasList,\n WAFInvalidDemensions,\n templateQueryIdMap,\n namespace,\n regionSupported,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { t } from '../../../locale';\n\nexport default class CDNDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = WAFInstanceAliasList;\n InvalidDimensions = WAFInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n // service: 'waf',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/WAF';\nconst queryEditorName = 'wafQuery';\nconst WAFFilterFields = {\n Limit: 20,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst WAFFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/228/41118',\n namespace,\n fieldDescriptor: WAFFilterFieldsDescriptor,\n};\nconst WAF_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: WAFFilterFields,\n};\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n];\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n\nconst WAFInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst WAFInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default WAF_STATE;\nexport {\n WAFFilterFieldsDescriptor,\n templateQueryIdMap,\n WAFInstanceAliasList,\n WAFInvalidDemensions,\n namespace,\n regionSupported,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as WAFGetInstanceQueryParams,\n};\n","const en_US = {\n language: 'Language',\n enable_intranet_API_mode: 'Enable Intranet API Mode',\n cloud_database: 'Cloud Database',\n cloud_load_balancer: 'Cloud Load Balancer',\n virtual_private_cloud: 'Virtual Private Cloud',\n content_delivery_network: 'Content Delivery Network',\n message_queue: 'Message Queue',\n direct_connect: 'Direct Connect',\n cloud_physical_machine: 'Cloud Physical Machine',\n elastic_mapReduce: 'Elastic MapReduce',\n edge_computing_machine: 'Edge Computing Machine',\n // namespace\n RUM: 'Real User Monitoring(RUM)',\n CLS: 'Cloud Log Service(CLS)',\n CVM: 'Cloud Virtual Machine(CVM)',\n CDB: 'TencentDB for MySQL(CDB)',\n CMONGO: 'TencentDB for MongoDB(CMONGO)',\n POSTGRES: 'TencentDB for PostgreSQL(POSTGRES)',\n REDIS: 'TencentDB for Redis(REDIS)',\n REDIS_MEM: 'TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)',\n SQLSERVER: 'TencentDB for SQL Server(SQLSERVER)',\n CYNOSDB_MYSQL: 'TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)',\n TCAPLUS: 'TencentDB for TcaplusDB(TCAPLUS)',\n TDMYSQL: 'TDSQL for MySQL(TDMYSQL)',\n PCX: 'Peering Connection(PCX)',\n BWP: 'Bandwidth Packet(BWP)',\n NAT_GATEWAY: 'NAT Gateway(NAT_GATEWAY)',\n VPNGW: 'VPN Gateway(VPNGW)',\n VPNX: 'VPN Tunnel(VPNX)',\n DCG: 'Direct Connect Gateway(DCG)',\n CEIP_SUMMARY: 'Anycast EIP(CEIP_SUMMARY)',\n VPC_NET_DETECT: 'Network Detection(VPC_NET_DETECT)',\n VBC: 'Cloud Connect Network(VBC)',\n LB: 'Elastic IP(LB)',\n LB_PUBLIC: 'Public Network CLB(LB_PUBLIC)',\n LB_PRIVATE: 'Private Network CLB Layer-4 Protocol(LB_PRIVATE)',\n LOADBALANCE: 'Private Network CLB Layer-7 Protocol(LOADBALANCE)',\n CDN: 'Chinese Mainland Domain(CDN)',\n CDN_LOG_DATA: 'Province(CDN_LOG_DATA)',\n OV_CDN: 'Overseas Domain(OV_CDN)',\n SCF_V2: 'Serverless Cloud Function(SCF)',\n CFS: 'Cloud File Storage(CFS)',\n COS: 'Cloud Object Storage(COS)',\n CKAFKA: 'Message Queue CKafka(CKAFKA)',\n CMQ: 'Message Queue for Queue Service(CMQ)',\n CMQTOPIC: 'Message Queue for Topic Subscription(CMQTOPIC)',\n TDMQ: 'Tencent Distributed Message Queue for Pulsar(TDMQ)',\n TDMQ_ROCKETMQ: 'Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)',\n TDMQ_RABBITMQ: 'Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)',\n DCX: 'Direct Connect for Dedicated Tunnel(DCX)',\n DC: 'Direct Connect for Connection(DC)',\n CPM: 'Cloud Physical Machine(CPM)',\n BM_PCX: 'Cloud Physical Machine for Peering Connection(BM_PCX)',\n BM_LB: 'Cloud Physical Machine for Public Network CLB(BM_LB)',\n BM_INTRA_LB: 'Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)',\n CES: 'Elasticsearch Service(CES)',\n BLOCK_STORAGE: 'Cloud Block Storage(BLOCK_STORAGE)',\n APIGATEWAY: 'API Gateway(APIGATEWAY)',\n QAAP: 'Global Application Acceleration Platform(GAAP)',\n ECM: 'Edge Computing Machine for Computation and Networking(ECM)',\n ECM_BLOCK_STORAGE: 'Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)',\n ECM_LB: 'Edge Computing Machine for Layer-4 CLB(ECM_LB)',\n GSE: 'Game Server Elastic-scaling(GSE)',\n TKE: 'Tencent Kubernetes Engine(TKE)',\n ECDN: 'Enterprise Content Delivery Network(ECDN)',\n WAF: 'Web Application Firewall(WAF)',\n // others\n multi_scene: 'Multi-Scene',\n lite: 'Lite',\n cloud_monitor: 'Cloud Monitor',\n cloud_log_service: 'Cloud Log Service',\n real_user_monitoring: 'Real User Monitoring',\n apm_monitoring: 'Application Monitoring',\n region: 'Region',\n log_topic: 'Log Topic',\n syntax_rule: 'Syntax Rule',\n max_result_num: 'Maximum result number',\n search_statement: 'Search Statement',\n time_unit: 'Time unit',\n seconds: 'seconds',\n search_description:\n 'Search for instances according to specific query conditions, and pull the first 20 instances by default',\n // region\n 'ap-guangzhou': 'South China(Guangzhou)',\n 'ap-shenzhen-fsi': 'South China(Shenzhen Finance)',\n 'ap-guangzhou-open': 'South China(Guangzhou OPEN)',\n 'ap-shenzhen': 'South China(Shenzhen)',\n 'ap-qingyuan': 'South China(Qingyuan)',\n 'ap-shanghai': 'East China(Shanghai)',\n 'ap-shanghai-fsi': 'East China(Shanghai Finance)',\n 'ap-jinan-ec': 'East China(Jinan)',\n 'ap-hangzhou-ec': 'East China(Hangzhou)',\n 'ap-nanjing': 'East China(Nanjing)',\n 'ap-fuzhou-ec': 'East China(Fuzhou)',\n 'ap-hefei-ec': 'East China(Hefei)',\n 'ap-beijing': 'North China region(Beijing)',\n 'ap-tianjin': 'North China region(Tianjin)',\n 'ap-beijing-fsi': 'North China region(Beijing Finance)',\n 'ap-shijiazhuang-ec': 'North China region(Shijiazhuang)',\n 'ap-wuhan-ec': 'Central China(Wuhan)',\n 'ap-changsha-ec': 'Central China(Changsha)',\n 'ap-zhengzhou-ec': 'Central China(Zhengzhou)',\n 'ap-chengdu': 'Southwest China(Chengdu)',\n 'ap-chongqing': 'Southwest China(Chongqing)',\n 'ap-xian-ec': \"Northwest region(Xi'an)\",\n 'ap-shenyang-ec': 'Northeast China(Shenyang)',\n 'ap-taipei': 'Hong Kong, Macau and Taiwan (China)(Taipei, China)',\n 'ap-hongkong': 'Hong Kong, Macau and Taiwan (China)(Hong Kong, China)',\n 'ap-seoul': 'Northeast Asia(Seoul)',\n 'ap-tokyo': 'Northeast Asia(Tokyo)',\n 'ap-singapore': 'Southeast Asia(Singapore)',\n 'ap-bangkok': 'Southeast Asia(Bangkok)',\n 'ap-jakarta': 'Southeast Asia(Jakarta)',\n 'na-siliconvalley': 'US West(Silicon Valley)',\n 'eu-frankfurt': 'Europe(Frankfurt)',\n 'eu-moscow': 'Europe(Northeastern Europe)',\n 'ap-mumbai': 'South Asia(Mumbai)',\n 'na-ashburn': 'US East(Virginia)',\n 'sa-saopaulo': 'South America(São Paulo)',\n 'na-toronto': 'North America(Toronto)',\n};\nexport default en_US;\n","import zh_CN from './zh_CN';\nimport en_US from './en_US';\n\nlet locale_language = 'zh-CN';\n\nexport enum Language {\n Chinese = 'zh-CN',\n English = 'en-US',\n}\n\nexport const t = (key: string) => {\n if (locale_language === Language.Chinese) {\n return zh_CN[key];\n }\n return en_US[key];\n};\n\nexport const setLanguage = (language: Language) => {\n locale_language = language;\n};\n\nexport const getLanguage = () => locale_language;\n","const zh_CN = {\n language: '语言',\n enable_intranet_API_mode: '开启内网API模式',\n cloud_database: '云数据库',\n cloud_load_balancer: '负载均衡',\n virtual_private_cloud: '私有网络',\n content_delivery_network: '内容分发网络',\n message_queue: '消息队列',\n direct_connect: '专线接入',\n cloud_physical_machine: '黑石物理服务器',\n elastic_mapReduce: '弹性 MapReduce',\n edge_computing_machine: '边缘计算机器',\n // namespace\n RUM: '前端性能监控(RUM)',\n APM: '应用性能监控(APM)',\n CLS: '日志服务(CLS)',\n CVM: '云服务器(CVM)',\n CDB: '云数据库 MySQL(CDB)',\n CMONGO: '云数据库 MongoDB(CMONGO)',\n POSTGRES: '云数据库 PostgreSQL(POSTGRES)',\n REDIS: '云数据库 Redis(REDIS)',\n REDIS_MEM: '云数据库 Redis内存版(5s)(REDIS_MEM)',\n SQLSERVER: '云数据库 SQL Server(SQLSERVER)',\n CYNOSDB_MYSQL: '云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)',\n TCAPLUS: '云数据库 TcaplusDB(TCAPLUS)',\n TDMYSQL: '分布式数据库 TDSQL MySQL(TDMYSQL)',\n PCX: '私有网络-对等连接(PCX)',\n BWP: '私有网络-带宽包(BWP)',\n NAT_GATEWAY: '私有网络-NAT 网关(NAT_GATEWAY)',\n VPNGW: '私有网络-VPN 网关(VPNGW)',\n VPNX: '私有网络-VPN 通道(VPNX)',\n DCG: '私有网络-专线网关(DCG)',\n CEIP_SUMMARY: '私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)',\n VPC_NET_DETECT: '私有网络-网络探测(VPC_NET_DETECT)',\n VBC: '私有网络-云联网(VBC)',\n LB: '私有网络-弹性公网IP(LB)',\n LB_PUBLIC: '公网负载均衡监控指标(LB_PUBLIC)',\n LB_PRIVATE: '内网负载均衡四层协议监控指标(LB_PRIVATE)',\n LOADBALANCE: '内网负载均衡七层协议监控指标(LOADBALANCE)',\n CDN: '国内域名(CDN)',\n CDN_LOG_DATA: '省份域名(CDN_LOG_DATA)',\n OV_CDN: '国外域名(OV_CDN)',\n SCF_V2: '云函数(SCF)',\n CFS: '文件存储(CFS)',\n COS: '对象存储(COS)',\n CKAFKA: '消息队列 CKafka(CKAFKA)',\n CMQ: '消息队列-队列服务监控(CMQ)',\n CMQTOPIC: '消息队列-主题订阅监控(CMQTOPIC)',\n TDMQ: '消息队列 Pulsar 版(TDMQ)',\n TDMQ_ROCKETMQ: '消息队列 RocketMQ 版(ROCKETMQ)',\n TDMQ_RABBITMQ: '消息队列 RabbitMQ 版(RABBITMQ)',\n DCX: '专线接入-专用通道(DCX)',\n DC: '专线接入-物理专线(DC)',\n CPM: '黑石物理服务器(CPM)',\n BM_PCX: '黑石对等连接(BM_PCX)',\n BM_LB: '黑石外网负载均衡(BM_LB)',\n BM_INTRA_LB: '黑石内网负载均衡(BM_INTRA_LB)',\n CES: 'Elasticsearch指标(CES)',\n BLOCK_STORAGE: '云硬盘(BLOCK_STORAGE)',\n APIGATEWAY: 'API 网关(APIGATEWAY)',\n QAAP: '全球应用加速(GAAP)',\n ECM: '边缘计算和网络监控(ECM)',\n ECM_BLOCK_STORAGE: '边缘计算存储监控(ECM_BLOCK_STORAGE)',\n ECM_LB: '边缘计算负载均衡(ECM_LB)',\n GSE: '游戏服务器伸缩(GSE)',\n TKE: '容器服务(TKE)',\n ECDN: '全站加速网络(ECDN)',\n WAF: 'Web 应用防火墙(WAF)',\n // others\n multi_scene: '多场景版',\n lite: '精简版',\n cloud_monitor: '云监控',\n cloud_log_service: '日志服务',\n real_user_monitoring: '前端性能监控',\n apm_monitoring: '应用性能监控',\n region: '地域',\n log_topic: '日志主题',\n syntax_rule: '语法规则',\n max_result_num: '最大结果条数',\n search_statement: '检索语句',\n time_unit: 'Time unit',\n seconds: 'seconds',\n search_description: '按照具体的查询条件搜索实例,默认拉取前 20 条实例',\n // region\n 'ap-guangzhou': '华南地区(广州)',\n 'ap-shenzhen-fsi': '华南地区(深圳金融)',\n 'ap-guangzhou-open': '华南地区(广州OPEN)',\n 'ap-shenzhen': '华南地区(深圳)',\n 'ap-qingyuan': '华南地区(清远)',\n 'ap-shanghai': '华东地区(上海)',\n 'ap-shanghai-fsi': '华东地区(上海金融)',\n 'ap-jinan-ec': '华东地区(济南)',\n 'ap-hangzhou-ec': '华东地区(杭州)',\n 'ap-nanjing': '华东地区(南京)',\n 'ap-fuzhou-ec': '华东地区(福州)',\n 'ap-hefei-ec': '华东地区(合肥)',\n 'ap-beijing': '华北地区(北京)',\n 'ap-tianjin': '华北地区(天津)',\n 'ap-beijing-fsi': '华北地区(北京金融)',\n 'ap-shijiazhuang-ec': '华北地区(石家庄)',\n 'ap-wuhan-ec': '华中地区(武汉)',\n 'ap-changsha-ec': '华中地区(长沙)',\n 'ap-zhengzhou-ec': '华中地区(郑州)',\n 'ap-chengdu': '西南地区(成都)',\n 'ap-chongqing': '西南地区(重庆)',\n 'ap-xian-ec': '西北地区(西安)',\n 'ap-shenyang-ec': '东北地区(沈阳)',\n 'ap-taipei': '港澳台地区(中国台北)',\n 'ap-hongkong': '港澳台地区(中国香港)',\n 'ap-seoul': '亚太东北(首尔)',\n 'ap-tokyo': '亚太东北(东京)',\n 'ap-singapore': '亚太东南(新加坡)',\n 'ap-bangkok': '亚太东南(曼谷)',\n 'ap-jakarta': '亚太东南(雅加达)',\n 'na-siliconvalley': '美国西部(硅谷)',\n 'eu-frankfurt': '欧洲地区(法兰克福)',\n 'eu-moscow': '欧洲地区(莫斯科)',\n 'ap-mumbai': '亚太南部(孟买)',\n 'na-ashburn': '美国东部(弗吉尼亚)',\n 'sa-saopaulo': '南美地区(圣保罗)',\n 'na-toronto': '北美地区(多伦多)',\n};\nexport default zh_CN;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__grafana_data__;","module.exports = __WEBPACK_EXTERNAL_MODULE__grafana_runtime__;","module.exports = __WEBPACK_EXTERNAL_MODULE_grafana_app_core_core_module__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash__;","module.exports = __WEBPACK_EXTERNAL_MODULE_moment__;"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://TencentCloudMonitorGrafanaApp/webpack/bootstrap","webpack://TencentCloudMonitorGrafanaApp/external \"lodash\"","webpack://TencentCloudMonitorGrafanaApp/./locale/zh_CN.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/en_US.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/index.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/sign.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/signV2.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/constants.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/utils.ts","webpack://TencentCloudMonitorGrafanaApp/external \"app/core/core_module\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/query.ts","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/data\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/indexedDB.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/datasourceStorage.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/index.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/runtime\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/external \"moment\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cos/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cos/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor sync ^.*$","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/MonitorDatasource.ts","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/utils.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/formats.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/query_filter.ts","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/index.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/stringify.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/parse.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor sync ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)","webpack://TencentCloudMonitorGrafanaApp/./components/config.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_EXTERNAL_MODULE__0__","language","enable_intranet_API_mode","cloud_database","cloud_load_balancer","virtual_private_cloud","content_delivery_network","message_queue","direct_connect","cloud_physical_machine","elastic_mapReduce","edge_computing_machine","RUM","APM","CLS","CVM","CDB","CMONGO","POSTGRES","REDIS","REDIS_MEM","SQLSERVER","CYNOSDB_MYSQL","TCAPLUS","TDMYSQL","PCX","BWP","NAT_GATEWAY","VPNGW","VPNX","DCG","CEIP_SUMMARY","VPC_NET_DETECT","VBC","LB","LB_PUBLIC","LB_PRIVATE","LOADBALANCE","CDN","CDN_LOG_DATA","OV_CDN","SCF_V2","CFS","COS","CKAFKA","CMQ","CMQTOPIC","TDMQ","TDMQ_ROCKETMQ","TDMQ_RABBITMQ","DCX","DC","CPM","BM_PCX","BM_LB","BM_INTRA_LB","CES","BLOCK_STORAGE","APIGATEWAY","QAAP","ECM","ECM_BLOCK_STORAGE","ECM_LB","GSE","TKE","ECDN","WAF","multi_scene","lite","cloud_monitor","cloud_log_service","real_user_monitoring","apm_monitoring","region","log_topic","syntax_rule","max_result_num","search_statement","time_unit","seconds","search_description","Language","locale_language","Chinese","setLanguage","getLanguage","options","secretId","service","action","host","version","payload","backendSrv","datasourceId","this","JSON","stringify","nowDate","utc","timestamp","unix","date","format","getHeader","getResourceHeader","res","datasourceRequest","url","method","headers","data","Host","Service","Version","Action","Region","Timestamp","Method","Uri","Query","Body","Headers","resp","authorization","token","intranet","grafanaVersion","window","grafanaBootData","settings","buildInfo","Authorization","toString","defaults","path","generateQueryString","getResourceQueryString","assign","secretKey","querystring","queryString","TcDataSourceId","id","FINACE_REGIONS","SERVICES_API_INFO","api","monitor","cls","cvm","cdb","pcx","vpc","mongodb","clb","postgres","cdn","redis","scf","cfs","ckafka","dc","cynosdb","sqlserver","bm","bmeip","bmvpc","bmlb","es","emr","cmq","cbs","tcaplusdb","dcdb","apigateway","tdmq","tdmq_rabbitmq","tdmq_rocketmq","gaap","ecm","gse","lighthouse","tsf","rum","tke","ecdn","waf","apm","FINACE_HOST","GetServiceAPIInfo","indexOf","find","__","getHostAndPath","GetServiceFromNamespace","namespace","ParseMetricQuery","query","result","queries","split","forEach","item","str","trim","val","parse","e","toLower","ReplaceVariable","templateSrv","scopedVars","field","multiple","varname","varFlag","regResult1","String","match","regResult2","parseVariableFormat","replaceVar","replace","error","isArray","GetDimensions","obj","isEmpty","dimensions","Value","undefined","push","Name","ParseQueryResult","response","instances","timeshift","instanceList","cloneDeep","dataPoints","map","dataPoint","instanceAliasValue","length","isInstanceMatch","_InstanceAliasValue","splice","target","MetricName","datapoints","parseDataPoint","timestamps","values","index","instance","isVariable","GetRequestParams","signObj","signParams","pick","headerSigned","GetRequestParamsV2","sign","SliceLength","total","len","num","Math","ceil","Offset","CoreApp","IS_DEVELOPMENT_ENVIRONMENT","instanceSettings","instanceListCache","extraMetricDims","checkKeys","MetricReqConfig","extrasAlias","queryMonitorExtraConfg","CandiateDimensions","jsonData","Namespace","getOtherAlias","alias","extra","extraAlia","getVariable","getAliasValue","Array","join","formatVarDisplay","displayTpl","instanceAlias","a","b","InstanceAliasList","includes","metricFindQuery","regex","display","instancealias","templateQueryIdMap","isObject","isString","getRegions","getVariableInstances","flatMap","insAlias","text","setInstance","getInstance","instanceCache","fetchMetricData","Promise","resolve","dimensionsFormat","dimKeys","ins","dimensionObject","keyTmp","invalidDim","InvalidDimensions","getInvalidDimensions","extraDimValue","dim_KeyInStorage","dim_KeyInTarget","dim_KeyInMap","dim_KeyInIns","extraSourceMap","getExtraStorage","extraStorage","isStringOrNumber","isNumber","otherAlias","getDimensionsVal","Ekey","dimVal","filter","targets","hide","metricName","reduce","prev","cloneTarget","concat","inst","getDefaultInsObj","insInReq","keys","dimResult","Dimensions","StartTime","range","from","subtract","EndTime","to","Period","period","Instances","getMonitorData","all","then","responses","flatten","getInstanceReqConfig","selfIns","metric","rs","valStr","params","serviceInfo","doRequest","RegionSet","RegionName","RegionState","getMetrics","MetricSet","resFilterFn","resultFilter","getInstances","InstanceReqConfig","interceptor","Limit","request","Error","TotalCount","TotalCnt","TotalNumber","param","isValidConfigField","testDatasource","cvmErr","monitorErr","serviceErr","cvmAuthFail","monitorAuthFail","serviceAuthFail","messages","message","compact","uniq","status","title","statusText","code","getFieldsValue","fields","fetchAllFactory","fetcher","_params","omit","Result","firstLists","delta","batchCount","pmList","fill","_","isOffsetPage","acc","cur","lists","list","instanceQueryParamsBaseParse","isFilter","Values","slice","Filters","getNamesapceFromService","serviceName","serviceGroupBy","services","label","groupName","existedGroup","items","isTargetEqual","newTargetString","oldTargetString","newTarget","oldTarget","getTimeShiftInMs","timeShift","parts","exec","amount","parseInt","__WEBPACK_EXTERNAL_MODULE__6__","config","detailConfig","QueryCtrl","newQueryIns","$scope","$rootScope","getDropdown","datasource","getFilterDropdown","directive","template","controller","restrict","scope","showDetail","getDropdownOptions","onChange","__WEBPACK_EXTERNAL_MODULE__8__","store","promisify","type","reject","onsuccess","event","returnMap","msg","onerror","props","initDB","indexedDB","webkitIndexedDB","mozIndexedDB","msIndexedDB","open","onupgradeneeded","db","objectStoreNames","contains","createObjectStore","keyPath","openDB","insertData","storeName","transaction","objectStore","add","oncomplete","addData","isCover","getData","oldData","getObjectStore","newData","requestUpdate","put","seviceName","getAllData","getAll","insKey","cacheWay","setStorage","getStorage","setExtraStorage","EValue","serviceKey","storage","CKAFKAQueryDescriptor","enDescriptor","cnDescriptor","link","min","max","CKAFKA_STATE","metricUnit","topicId","topicName","consumerGroup","partition","Status","InstanceId","SearchWord","TagKey","GetInstanceQueryParams","CKAFKAInstanceAliasList","CKAFKATopicAliasList","CKAFKAInvalidDemensions","Proxy","prop","toLocaleLowerCase","keyInStorage","TopicList","GroupList","PartitionList","TopicId","TopicName","GroupName","PartitionId","queryEditorName","LOADBALANCEFieldsDescriptor","queryEditorConfig","instanceDocUrl","fieldDescriptor","LOADBALANCE_STATE","Port","Protocol","listener","servers","serverPort","LoadBalancerIds","Forward","LoadBalancerName","Domain","LoadBalancerVips","BackendPublicIps","BackendPrivateIps","ProjectId","WithRs","VpcId","SecurityGroup","MasterZone","OrderBy","OrderType","LOADBALANCEListenerAliasList","LOADBALANCEServerAliasList","LOADBALANCEVALIDDIMENSIONS","vip","loadBalancerPort","protocol","lanIp","port","CANDIATEDIMENSIONS","PrivateIpAddresses","ServerPort","TDMQInvalidDemensions","tenantId","tenant","environmentId","TDMQInstanceAliasList","TDMQFilterFieldsDescriptor","CDNPROVINCE_STATE","regionSupported","modifyDimensons","metricItem","metricTmp","EnvironmentId","fleetId","GSEInvalidDemensions","instanceid","fleetid","queuename","GSEInstanceAliasList","FleetId","fleet","queue","GSEFilterFieldsDescriptor","GSE_STATE","v","DCDBInvalidDemensions","nodeid","shardid","ShardId","DCDBInstanceAliasList","NodeId","ShardInstanceId","DCDBFilterFieldsDescriptor","DCDB_STATE","InstanceIds","SearchName","SearchKey","ProjectIds","SubnetId","OrderByType","ExclusterType","ExclusterIds","FilterInstanceType","modifyMetricConf","IsFilterVpc","IsFilterExcluster","RedisMemFieldsDescriptor","REDISMEM_STATE","VpcIds","SubnetIds","InstanceName","UniqVpcIds","UniqSubnetIds","TypeVersion","EngineName","AutoRenew","BillingMode","Type","rnodeid","pnodeid","REDISMEMInstanceAliasList","RedisMemInvalidDemensions","NodeType","node","TDMQRABBITMQInstanceAliasList","TDMQ_STATE","NodeName","group","TDMQROCKETMQInstanceAliasList","instanceIdsChecked","filtersChecked","ClusterIdList","includeVip","NamespaceId","SERVICES","href","hideRegion","Datasources","InitStates","hackModuleName","postgresql","mr","filePath","moduleName","fileName","prefix","toUpperCase","getParams","ECMBLOCKSTORAGEInvalidDemensions","uuid","diskId","ECMBLOCKSTORAGEInstanceAliasList","ECMBLOCKSTORAGEFilterFieldsDescriptor","ECMBLOCKSTORAGE_STATE","DiskId","__WEBPACK_EXTERNAL_MODULE__22__","APIGATEWAYInvalidDemensions","serviceId","environmentName","apiid","apiId","APIGATEWAYInstanceAliasList","environmentList","EnvironmentName","APIGATEWAYFilterFieldsDescriptor","APIGATEWAY_STATE","ServiceId","ServiceName","NotUsagePlanId","Environment","IpVersion","InstanceQueryDescriptor","InvalidDemensions","k","receiver","startsWith","Reflect","has","propKey","Ip","nodeIP","DisplayStrategy","Order","OrderField","Asc","VCLBInvalidDemensions","VCLBInstanceAliasList","VCLBFilterFieldsDescriptor","VCLB_STATE","clbNamespaceMap","public","private","cynosdbMysqlFilterFieldsDescriptor","CYNOSDB_STATE","DbType","CYNOSDBMYSQLInstanceAliasList","CYNOSDBInvalidDemensions","instanceId","SCFQueryDescriptor","SCF_STATE","Description","SCFInstanceAliasList","SCFInvalidDemensions","functionName","SCFDefaultDimensionList","CLSInvalidDemensions","CLSInstanceAliasList","CLSFilterFieldsDescriptor","CLS_STATE","uin","logsetName","logsetId","tagKey","storageType","SQLSERVERInvalidDemensions","resourceId","SQLSERVERInstanceAliasList","SQLSERVERNETFilterFieldsDescriptor","SQLSERVER_STATE","InstanceIdSet","PayMode","VipSet","InstanceNameSet","VersionSet","Zone","BMINTRALBInvalidDemensions","vpcId","BMINTRALBInstanceAliasList","BMINTRALBFilterFieldsDescriptor","BMINTRALB_STATE","BMLBValidMetricsT","isValidMetric","validMetrics","toUpper","CPMInvalidDemensions","BMLBInstanceAliasList","CPMFilterFieldsDescriptor","CPM_STATE","BMPCXInvalidDemensions","peeringConnectionId","BMPCXInstanceAliasList","BMPCXFilterFieldsDescriptor","BMPCX_STATE","VpcPeerConnectionIds","CBSInvalidDemensions","diskname","unInstanceId","CBSInstanceAliasList","CBSFilterFieldsDescriptor","CBS_STATE","DiskIds","ReturnBindAutoSnapshotPolicy","metricObj","dimension","CDNPROVINCEInvalidDemensions","domain","projectid","province","appid","CDNPROVINCEInstanceAliasList","CDNPROVINCEFilterFieldsDescriptor","isp","district","origin","serviceType","projectId","domainType","fullUrlCache","https","originPullProtocol","CEIPInvalidDemensions","eip","CEIPSUMMARYInstanceAliasList","CEIPFilterFieldsDescriptor","CEIP_STATE","subscription","subscriptionId","CPMInstanceAliasList","DeviceClassCode","WanIps","LanIps","Alias","VagueIp","AutoRenewFlag","DeviceType","IsLuckyDevice","ECDNInstanceAliasList","ECDNInvalidDemensions","ECDN_STATE","disable","area","ECDNFilterFieldsDescriptor","_queries","Fuzzy","ECMInvalidDemensions","ECMInstanceAliasList","ECMFilterFieldsDescriptor","ECM_STATE","zone","PostgresFieldsDescriptor","POSTGRESInstanceAliasList","POSTGRES_STATE","PostgreInvalidDemensions","uid","VPCNETInvalidDemensions","netdetectid","netDetectId","VPCNETDETECTInstanceAliasList","VPCNETFilterFieldsDescriptor","VPCNET_STATE","WAFFilterFieldsDescriptor","WAF_STATE","WAFInstanceAliasList","WAFInvalidDemensions","CDBFieldsDescriptor","CDB_STATE","InstanceTypes","Vips","SecurityGroupId","PayTypes","InstanceNames","TaskStatus","EngineVersions","ZoneIds","CdbErrors","OrderDirection","InitFlag","CDBInstanceAliasList","CDBInvalidDemensions","insttype","CESInvalidDemensions","uInstanceId","CESInstanceAliasList","CESFilterFieldsDescriptor","CES_STATE","OrderByKey","IpList","DCFilterFieldsDescriptor","DC_STATE","DirectConnectIds","DCInstanceAliasList","DCInvalidDemensions","directConnectId","directconnectid","DCGInvalidDemensions","directConnectGatewayId","DCGInstanceAliasList","DCGFilterFieldsDescriptor","DCG_STATE","DCXFilterFieldsDescriptor","DCX_STATE","DCXInstanceAliasList","DCXInvalidDemensions","directconnectconnid","directConnectConnId","ECMLBInvalidDemensions","ECMLBInstanceAliasList","ECMLBFilterFieldsDescriptor","MONGODBFieldsDescriptor","MONGODB_STATE","InstanceType","ClusterType","MONGODBInstanceAliasList","MONGODBInvalidDemensions","replica","Replica","Node","QAAPInvalidDemensions","channelId","QAAPInstanceAliasList","QAAPFilterFieldsDescriptor","QAAP_STATE","AccessRegion","RealServerRegion","GroupId","TCAPLUSInvalidDemensions","TCAPLUSInstanceAliasList","TCAPLUSFilterFieldsDescriptor","TCAPLUS_STATE","ClusterId","TableGroupIds","TableName","TableInstanceId","TableIdlType","TableType","ListElementNum","ReservedVolume","ReservedReadQps","ReservedWriteQps","Memo","FileName","FileExtType","FileSize","FileContent","SelectedTables","regonsMap","VBCInvalidDemensions","VBCInstanceAliasList","VBCFilterFieldsDescriptor","VBC_STATE","DRegion","SRegion","state","VPNGWInvalidDemensions","vpnGwId","VPNGWInstanceAliasList","VPNGWFilterFieldsDescriptor","VPNGW_STATE","VPNXInvalidDemensions","vpnConnId","VPNXInstanceAliasList","VPNXFilterFieldsDescriptor","VPNX_STATE","LighthouseFilterFieldsDescriptor","LIGHTHOUSE_STATE","LIGHTHOUSEInstanceAliasList","LighthouseInvalidDemensions","CFSQueryDescriptor","CFS_STATE","FileSystemId","CFSInstanceAliasList","CFSInvalidDemensions","queueId","queueName","QueueName","CVMFilterFieldsDescriptor","CVM_STATE","CVMInstanceAliasList","CVMValidMetricsT","CVMValidMetrics","PCX_STATE","limit","offset","peeringConnectionName","PCXFieldsDescriptor","PCXInstanceAliasList","RedisFieldsDescriptor","REDIS_STATE","REDISInstanceAliasList","RedisInvalidDemensions","redis_uuid","TSFFieldsDescriptor","TSF_STATE","ApplicationType","MicroserviceType","ApplicationResourceTypeList","ApplicationIdList","TSFInstanceAliasList","TSFInvalidDemensions","applicationid","BWPFilterFieldsDescriptor","BWP_STATE","BandwidthPackageIds","BWPInstanceAliasList","BWPInvalidDemensions","bandwidthPackageId","CDNFilterFieldsDescriptor","CDN_STATE","CDNInstanceAliasList","CDNInvalidDemensions","LBFilterDescriptor","LB_STATE","LBInstanceAliasList","LBInvalidDemensions","NATGATEWAYInstanceAliasList","NATGatewayFilterFieldsDescriptor","NATGATEWAY_STATE","NatGatewayIds","NATInvalidDemensions","natId","OVCDNFilterFieldsDescriptor","OVCDN_STATE","OVCDNInstanceAliasList","OVCDNInvalidDemensions","__WEBPACK_EXTERNAL_MODULE__69__","TKE_STATE","conditions","groupBys","ClusterIds","ClusterName","ClusterStatus","TKEFilterFieldsDescriptor","TKEInstanceAliasList","responseField","getEnvironmentNameList","LoadBalancerType","RegionMap","keyBy","RegionInfoSet","rawSet","getZones","ZoneSet","ZoneName","ZoneId","ZoneState","getConsumerList","MapInfoList","TopicAliasList","consumerGroupCache","getConsumerGroups","groupname","topicid","consumerGoup","topicList","GroupDetailList","uniqBy","SubscribedInfos","ConsumerGroupName","SubscribedInfo","partitions","sub","Partition","formatTopicVarDisplay","topic","topicAlias","topicalias","par","ListenerAliasList","ServerAliasList","tagret","getListenerList","LoadBalancerId","formatVariableDisplay","aliasList","getServerList","listenerId","ListenerIds","Listeners","Rules","Targets","elem","listenAlias","lisId","listenerid","serverprivateip","serveralias","serversList","chain","dims","Set","fetchAllSubscription","SubscriptionId","cosURL","Buckets","BucketName","bucket","DeviceClassSet","Product","extraActionMap","DescribeDCDBShards","pickKey","DescribeDCDBInstanceNodeInfo","RegionList","act","getDiskList","instanceObj","getQueueNameList","getFleetList","ReplicaAliasList","replicaAlias","ReplicaSetId","replicasetid","times","SecondaryNum","nodeId","fetchAllNodes","NodeFlag","resultT","doRequestV2","totalCount","getVpcId","VpcSet","getVpcIds","MonitorVersion","getInstanceNodeInfo","nodetype","ndoeTypeIndex","getVersions","Versions","FunctionName","RegionInfos","DescribeTopics","DescribeEnvironments","DescribeRabbitMQNodeList","DescribeRocketMQNamespaces","DescribeRocketMQGroups","variableToArray","variable","tke_cluster_instance_id","Key","Operator","MetricNames","Module","Conditions","GroupBys","Data","Points","point","dimensionSort","dimensionString","timeshiftString","getAllMetrics","public_metrics","private_metrics","init","getInstanceId","getServiceFn","getExtraDropdown","sQuery","onRefresh","onChecked","srcField","dstField","bwpQuery","BWPQueryCtrl","cdbQuery","CDBQueryCtrl","cdnQuery","CDNQueryCtrl","ExtraFields","scfQuery","SCFQueryCtrl","onInstanceChange","getExtraFields","CKAFKAQueryCtrl","element","attrs","$watch","newValue","oldValue","onFieldChange","getVariableId","variableData","getServersDropdown","getServerPortDropdown","serverPortList","cacheMap","getTopicName","onExtraFieldChange","datas","CmqTopicQueryCtrl","cvmQuery","CVMQueryCtrl","dropdownTextConfig","actionMaps","lbQuery","LBQueryCtrl","lighthouseQuery","LighthouseQueryCtrl","replicaId","mongodbQuery","MongoDBQueryCtrl","some","dataT","mrQuery","MrQueryCtrl","natGatewayQuery","NatGatewayQueryCtrl","ovCdnQuery","OVCDNQueryCtrl","pcxQuery","PCXQueryCtrl","redisQuery","RedisQueryCtrl","clearExtrasAlias","redisMemQuery","RedisMemQueryCtrl","evId","tdmqRocketmqQuery","TdmqRocketmqQueryCtrl","addCondition","deleteCondition","targetCondition","getOperator","tsfQuery","TSFQueryCtrl","VBCQueryCtrl","webpackContext","req","webpackContextResolve","_class","getNamespaces","namespaces","getCascaderNamespaces","validServices","getSelectedServices","promises","optionsTemp","promiseTemp","Done","results","getListeners","errorMsg","upperFirst","fnName","argu","hexTable","array","arrayToObject","source","plainObjects","refs","j","pop","compacted","compactQueue","decode","decodeURIComponent","encode","string","out","charCodeAt","charAt","isBuffer","constructor","isRegExp","merge","allowPrototypes","mergeTarget","percentTwenties","formatters","RFC1738","RFC3986","SPQueryCtrl","_config","queryDDO","formats","utils","arrayPrefixGenerators","brackets","indices","repeat","toISO","Date","toISOString","delimiter","encoder","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","generateArrayPrefix","sort","allowDots","formatter","objKeys","opts","TypeError","arrayFormat","joined","addQueryPrefix","arrayLimit","decoder","depth","parameterLimit","parseKeys","givenKey","child","segment","parent","leaf","root","cleanRoot","isNaN","parseArrays","parseObject","ignoreQueryPrefix","tempObj","cleanStr","Infinity","part","bracketEqualsPos","pos","parseValues","newObj","tcFolder","folderId","tcFolder_EN","getFolderId","folders","folderEnId","post","folder","folderEn","oldPost","pluginId","location","pathname","endsWith","backendInterceptor","$injector","$q","appEditCtrl","setPostUpdateHook","postUpdate","appModel","configured","enabled","datasources","ds","moveToFolder","dashbaordUid","dashboard","overwrite","reviseDashboard","pmlist","importedUrl","templateUrl"],"mappings":"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","file":"components/config.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 212);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","const zh_CN = {\n language: '语言',\n enable_intranet_API_mode: '开启内网API模式',\n cloud_database: '云数据库',\n cloud_load_balancer: '负载均衡',\n virtual_private_cloud: '私有网络',\n content_delivery_network: '内容分发网络',\n message_queue: '消息队列',\n direct_connect: '专线接入',\n cloud_physical_machine: '黑石物理服务器',\n elastic_mapReduce: '弹性 MapReduce',\n edge_computing_machine: '边缘计算机器',\n // namespace\n RUM: '前端性能监控(RUM)',\n APM: '应用性能监控(APM)',\n CLS: '日志服务(CLS)',\n CVM: '云服务器(CVM)',\n CDB: '云数据库 MySQL(CDB)',\n CMONGO: '云数据库 MongoDB(CMONGO)',\n POSTGRES: '云数据库 PostgreSQL(POSTGRES)',\n REDIS: '云数据库 Redis(REDIS)',\n REDIS_MEM: '云数据库 Redis内存版(5s)(REDIS_MEM)',\n SQLSERVER: '云数据库 SQL Server(SQLSERVER)',\n CYNOSDB_MYSQL: '云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)',\n TCAPLUS: '云数据库 TcaplusDB(TCAPLUS)',\n TDMYSQL: '分布式数据库 TDSQL MySQL(TDMYSQL)',\n PCX: '私有网络-对等连接(PCX)',\n BWP: '私有网络-带宽包(BWP)',\n NAT_GATEWAY: '私有网络-NAT 网关(NAT_GATEWAY)',\n VPNGW: '私有网络-VPN 网关(VPNGW)',\n VPNX: '私有网络-VPN 通道(VPNX)',\n DCG: '私有网络-专线网关(DCG)',\n CEIP_SUMMARY: '私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)',\n VPC_NET_DETECT: '私有网络-网络探测(VPC_NET_DETECT)',\n VBC: '私有网络-云联网(VBC)',\n LB: '私有网络-弹性公网IP(LB)',\n LB_PUBLIC: '公网负载均衡监控指标(LB_PUBLIC)',\n LB_PRIVATE: '内网负载均衡四层协议监控指标(LB_PRIVATE)',\n LOADBALANCE: '内网负载均衡七层协议监控指标(LOADBALANCE)',\n CDN: '国内域名(CDN)',\n CDN_LOG_DATA: '省份域名(CDN_LOG_DATA)',\n OV_CDN: '国外域名(OV_CDN)',\n SCF_V2: '云函数(SCF)',\n CFS: '文件存储(CFS)',\n COS: '对象存储(COS)',\n CKAFKA: '消息队列 CKafka(CKAFKA)',\n CMQ: '消息队列-队列服务监控(CMQ)',\n CMQTOPIC: '消息队列-主题订阅监控(CMQTOPIC)',\n TDMQ: '消息队列 Pulsar 版(TDMQ)',\n TDMQ_ROCKETMQ: '消息队列 RocketMQ 版(ROCKETMQ)',\n TDMQ_RABBITMQ: '消息队列 RabbitMQ 版(RABBITMQ)',\n DCX: '专线接入-专用通道(DCX)',\n DC: '专线接入-物理专线(DC)',\n CPM: '黑石物理服务器(CPM)',\n BM_PCX: '黑石对等连接(BM_PCX)',\n BM_LB: '黑石外网负载均衡(BM_LB)',\n BM_INTRA_LB: '黑石内网负载均衡(BM_INTRA_LB)',\n CES: 'Elasticsearch指标(CES)',\n BLOCK_STORAGE: '云硬盘(BLOCK_STORAGE)',\n APIGATEWAY: 'API 网关(APIGATEWAY)',\n QAAP: '全球应用加速(GAAP)',\n ECM: '边缘计算和网络监控(ECM)',\n ECM_BLOCK_STORAGE: '边缘计算存储监控(ECM_BLOCK_STORAGE)',\n ECM_LB: '边缘计算负载均衡(ECM_LB)',\n GSE: '游戏服务器伸缩(GSE)',\n TKE: '容器服务(TKE)',\n ECDN: '全站加速网络(ECDN)',\n WAF: 'Web 应用防火墙(WAF)',\n // others\n multi_scene: '多场景版',\n lite: '精简版',\n cloud_monitor: '云监控',\n cloud_log_service: '日志服务',\n real_user_monitoring: '前端性能监控',\n apm_monitoring: '应用性能监控',\n region: '地域',\n log_topic: '日志主题',\n syntax_rule: '语法规则',\n max_result_num: '最大结果条数',\n search_statement: '检索语句',\n time_unit: 'Time unit',\n seconds: 'seconds',\n search_description: '按照具体的查询条件搜索实例,默认拉取前 20 条实例',\n // region\n 'ap-guangzhou': '华南地区(广州)',\n 'ap-shenzhen-fsi': '华南地区(深圳金融)',\n 'ap-guangzhou-open': '华南地区(广州OPEN)',\n 'ap-shenzhen': '华南地区(深圳)',\n 'ap-qingyuan': '华南地区(清远)',\n 'ap-shanghai': '华东地区(上海)',\n 'ap-shanghai-fsi': '华东地区(上海金融)',\n 'ap-jinan-ec': '华东地区(济南)',\n 'ap-hangzhou-ec': '华东地区(杭州)',\n 'ap-nanjing': '华东地区(南京)',\n 'ap-fuzhou-ec': '华东地区(福州)',\n 'ap-hefei-ec': '华东地区(合肥)',\n 'ap-beijing': '华北地区(北京)',\n 'ap-tianjin': '华北地区(天津)',\n 'ap-beijing-fsi': '华北地区(北京金融)',\n 'ap-shijiazhuang-ec': '华北地区(石家庄)',\n 'ap-wuhan-ec': '华中地区(武汉)',\n 'ap-changsha-ec': '华中地区(长沙)',\n 'ap-zhengzhou-ec': '华中地区(郑州)',\n 'ap-chengdu': '西南地区(成都)',\n 'ap-chongqing': '西南地区(重庆)',\n 'ap-xian-ec': '西北地区(西安)',\n 'ap-shenyang-ec': '东北地区(沈阳)',\n 'ap-taipei': '港澳台地区(中国台北)',\n 'ap-hongkong': '港澳台地区(中国香港)',\n 'ap-seoul': '亚太东北(首尔)',\n 'ap-tokyo': '亚太东北(东京)',\n 'ap-singapore': '亚太东南(新加坡)',\n 'ap-bangkok': '亚太东南(曼谷)',\n 'ap-jakarta': '亚太东南(雅加达)',\n 'na-siliconvalley': '美国西部(硅谷)',\n 'eu-frankfurt': '欧洲地区(法兰克福)',\n 'eu-moscow': '欧洲地区(莫斯科)',\n 'ap-mumbai': '亚太南部(孟买)',\n 'na-ashburn': '美国东部(弗吉尼亚)',\n 'sa-saopaulo': '南美地区(圣保罗)',\n 'na-toronto': '北美地区(多伦多)',\n};\nexport default zh_CN;\n","const en_US = {\n language: 'Language',\n enable_intranet_API_mode: 'Enable Intranet API Mode',\n cloud_database: 'Cloud Database',\n cloud_load_balancer: 'Cloud Load Balancer',\n virtual_private_cloud: 'Virtual Private Cloud',\n content_delivery_network: 'Content Delivery Network',\n message_queue: 'Message Queue',\n direct_connect: 'Direct Connect',\n cloud_physical_machine: 'Cloud Physical Machine',\n elastic_mapReduce: 'Elastic MapReduce',\n edge_computing_machine: 'Edge Computing Machine',\n // namespace\n RUM: 'Real User Monitoring(RUM)',\n CLS: 'Cloud Log Service(CLS)',\n CVM: 'Cloud Virtual Machine(CVM)',\n CDB: 'TencentDB for MySQL(CDB)',\n CMONGO: 'TencentDB for MongoDB(CMONGO)',\n POSTGRES: 'TencentDB for PostgreSQL(POSTGRES)',\n REDIS: 'TencentDB for Redis(REDIS)',\n REDIS_MEM: 'TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)',\n SQLSERVER: 'TencentDB for SQL Server(SQLSERVER)',\n CYNOSDB_MYSQL: 'TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)',\n TCAPLUS: 'TencentDB for TcaplusDB(TCAPLUS)',\n TDMYSQL: 'TDSQL for MySQL(TDMYSQL)',\n PCX: 'Peering Connection(PCX)',\n BWP: 'Bandwidth Packet(BWP)',\n NAT_GATEWAY: 'NAT Gateway(NAT_GATEWAY)',\n VPNGW: 'VPN Gateway(VPNGW)',\n VPNX: 'VPN Tunnel(VPNX)',\n DCG: 'Direct Connect Gateway(DCG)',\n CEIP_SUMMARY: 'Anycast EIP(CEIP_SUMMARY)',\n VPC_NET_DETECT: 'Network Detection(VPC_NET_DETECT)',\n VBC: 'Cloud Connect Network(VBC)',\n LB: 'Elastic IP(LB)',\n LB_PUBLIC: 'Public Network CLB(LB_PUBLIC)',\n LB_PRIVATE: 'Private Network CLB Layer-4 Protocol(LB_PRIVATE)',\n LOADBALANCE: 'Private Network CLB Layer-7 Protocol(LOADBALANCE)',\n CDN: 'Chinese Mainland Domain(CDN)',\n CDN_LOG_DATA: 'Province(CDN_LOG_DATA)',\n OV_CDN: 'Overseas Domain(OV_CDN)',\n SCF_V2: 'Serverless Cloud Function(SCF)',\n CFS: 'Cloud File Storage(CFS)',\n COS: 'Cloud Object Storage(COS)',\n CKAFKA: 'Message Queue CKafka(CKAFKA)',\n CMQ: 'Message Queue for Queue Service(CMQ)',\n CMQTOPIC: 'Message Queue for Topic Subscription(CMQTOPIC)',\n TDMQ: 'Tencent Distributed Message Queue for Pulsar(TDMQ)',\n TDMQ_ROCKETMQ: 'Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)',\n TDMQ_RABBITMQ: 'Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)',\n DCX: 'Direct Connect for Dedicated Tunnel(DCX)',\n DC: 'Direct Connect for Connection(DC)',\n CPM: 'Cloud Physical Machine(CPM)',\n BM_PCX: 'Cloud Physical Machine for Peering Connection(BM_PCX)',\n BM_LB: 'Cloud Physical Machine for Public Network CLB(BM_LB)',\n BM_INTRA_LB: 'Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)',\n CES: 'Elasticsearch Service(CES)',\n BLOCK_STORAGE: 'Cloud Block Storage(BLOCK_STORAGE)',\n APIGATEWAY: 'API Gateway(APIGATEWAY)',\n QAAP: 'Global Application Acceleration Platform(GAAP)',\n ECM: 'Edge Computing Machine for Computation and Networking(ECM)',\n ECM_BLOCK_STORAGE: 'Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)',\n ECM_LB: 'Edge Computing Machine for Layer-4 CLB(ECM_LB)',\n GSE: 'Game Server Elastic-scaling(GSE)',\n TKE: 'Tencent Kubernetes Engine(TKE)',\n ECDN: 'Enterprise Content Delivery Network(ECDN)',\n WAF: 'Web Application Firewall(WAF)',\n // others\n multi_scene: 'Multi-Scene',\n lite: 'Lite',\n cloud_monitor: 'Cloud Monitor',\n cloud_log_service: 'Cloud Log Service',\n real_user_monitoring: 'Real User Monitoring',\n apm_monitoring: 'Application Monitoring',\n region: 'Region',\n log_topic: 'Log Topic',\n syntax_rule: 'Syntax Rule',\n max_result_num: 'Maximum result number',\n search_statement: 'Search Statement',\n time_unit: 'Time unit',\n seconds: 'seconds',\n search_description:\n 'Search for instances according to specific query conditions, and pull the first 20 instances by default',\n // region\n 'ap-guangzhou': 'South China(Guangzhou)',\n 'ap-shenzhen-fsi': 'South China(Shenzhen Finance)',\n 'ap-guangzhou-open': 'South China(Guangzhou OPEN)',\n 'ap-shenzhen': 'South China(Shenzhen)',\n 'ap-qingyuan': 'South China(Qingyuan)',\n 'ap-shanghai': 'East China(Shanghai)',\n 'ap-shanghai-fsi': 'East China(Shanghai Finance)',\n 'ap-jinan-ec': 'East China(Jinan)',\n 'ap-hangzhou-ec': 'East China(Hangzhou)',\n 'ap-nanjing': 'East China(Nanjing)',\n 'ap-fuzhou-ec': 'East China(Fuzhou)',\n 'ap-hefei-ec': 'East China(Hefei)',\n 'ap-beijing': 'North China region(Beijing)',\n 'ap-tianjin': 'North China region(Tianjin)',\n 'ap-beijing-fsi': 'North China region(Beijing Finance)',\n 'ap-shijiazhuang-ec': 'North China region(Shijiazhuang)',\n 'ap-wuhan-ec': 'Central China(Wuhan)',\n 'ap-changsha-ec': 'Central China(Changsha)',\n 'ap-zhengzhou-ec': 'Central China(Zhengzhou)',\n 'ap-chengdu': 'Southwest China(Chengdu)',\n 'ap-chongqing': 'Southwest China(Chongqing)',\n 'ap-xian-ec': \"Northwest region(Xi'an)\",\n 'ap-shenyang-ec': 'Northeast China(Shenyang)',\n 'ap-taipei': 'Hong Kong, Macau and Taiwan (China)(Taipei, China)',\n 'ap-hongkong': 'Hong Kong, Macau and Taiwan (China)(Hong Kong, China)',\n 'ap-seoul': 'Northeast Asia(Seoul)',\n 'ap-tokyo': 'Northeast Asia(Tokyo)',\n 'ap-singapore': 'Southeast Asia(Singapore)',\n 'ap-bangkok': 'Southeast Asia(Bangkok)',\n 'ap-jakarta': 'Southeast Asia(Jakarta)',\n 'na-siliconvalley': 'US West(Silicon Valley)',\n 'eu-frankfurt': 'Europe(Frankfurt)',\n 'eu-moscow': 'Europe(Northeastern Europe)',\n 'ap-mumbai': 'South Asia(Mumbai)',\n 'na-ashburn': 'US East(Virginia)',\n 'sa-saopaulo': 'South America(São Paulo)',\n 'na-toronto': 'North America(Toronto)',\n};\nexport default en_US;\n","import zh_CN from './zh_CN';\nimport en_US from './en_US';\n\nlet locale_language = 'zh-CN';\n\nexport enum Language {\n Chinese = 'zh-CN',\n English = 'en-US',\n}\n\nexport const t = (key: string) => {\n if (locale_language === Language.Chinese) {\n return zh_CN[key];\n }\n return en_US[key];\n};\n\nexport const setLanguage = (language: Language) => {\n locale_language = language;\n};\n\nexport const getLanguage = () => locale_language;\n","import moment from 'moment';\n\nconst HttpRequestMethod = 'POST';\nconst CanonicalUri = '/';\nconst CanonicalQueryString = '';\nconst ContentType = 'application/json';\n\nexport default class Sign {\n /**\n * Tencent Cloud API Signature v3 reference: https://cloud.tencent.com/document/api/213/30654\n * secretId: SecretId for identifying identity that is applied for on Cloud API Key.\n * A SecretId corresponds to a unique SecretKey, which is used to generate the request Signature.\n * secretKey: SecretKey is used to encrypt the signature string and verify the signature string on the server\n * service: the name of service, which must be consistent with the request domain, such as cvm\n * action: The name of the API for the desired operation\n * host: the domain of service,which must be consistent with the request domain, such as cvm.tencentcloudapi.com\n * version: PI version, such as 2017-03-12\n * payload: The request parameters\n */\n\n secretId: string;\n\n service: string;\n action: string;\n host: string;\n version: string;\n payload: Record | string;\n region: string;\n timestamp: number;\n date: string;\n backendSrv: any;\n datasourceId: Number;\n constructor(options) {\n const { secretId, service, action, host, version, payload = '', region, backendSrv, datasourceId } = options;\n this.secretId = secretId;\n // this.secretKey = secretKey;\n this.service = service;\n this.action = action;\n this.host = host;\n this.version = version;\n this.payload = typeof payload === 'string' ? payload : JSON.stringify(payload);\n this.region = region;\n const nowDate = moment().utc();\n this.timestamp = nowDate.unix();\n this.date = nowDate.format('YYYY-MM-DD');\n this.backendSrv = backendSrv;\n this.datasourceId = datasourceId;\n }\n\n async getHeader() {\n return this.getResourceHeader();\n }\n\n async getResourceHeader() {\n let res: { authorization?: string; token?: string; intranet?: boolean } = {};\n try {\n const resp = await this.backendSrv.datasourceRequest({\n url: `/api/datasources/${this.datasourceId}/resources/sign_v3`,\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: {\n Host: this.host,\n Service: this.service,\n Version: this.version,\n Action: this.action,\n Region: this.region,\n Timestamp: this.timestamp,\n Method: HttpRequestMethod,\n Uri: CanonicalUri,\n Query: CanonicalQueryString,\n Body: this.payload,\n Headers: {\n 'content-type': ContentType,\n host: this.host,\n },\n },\n });\n res = resp.data;\n } catch (err) {}\n const { authorization, token, intranet } = res;\n const grafanaVersion = (window as any).grafanaBootData?.settings?.buildInfo?.version || '0.0.0';\n const headers = {\n Authorization: authorization,\n 'Content-Type': ContentType,\n 'X-TC-Action': this.action,\n 'X-TC-Timestamp': this.timestamp.toString(),\n 'X-TC-Version': this.version,\n 'X-TC-RequestClient': `GF_${grafanaVersion}_PL_CM_${process.env.TENCENT_CLOUD_MONITOR_GRAFANA_PLUGIN_VERSION}`,\n ...(this.region && {\n 'X-TC-Region': this.region,\n }),\n ...(token && {\n 'X-TC-Token': token,\n }),\n intranet: intranet,\n };\n return headers;\n }\n}\n","/**\n *\n * @param defaults 为对象\n * secretId\n * secretKey\n * action\n * region\n * host\n */\n\nexport default class SignV2 {\n defaults: any = {\n path: '/v2/index.php',\n method: 'POST',\n };\n backendSrv: any;\n datasourceId: Number;\n constructor(defaults: any = {}) {\n this.defaults = Object.assign(this.defaults, defaults);\n this.defaults.secretKey = '';\n this.backendSrv = defaults.backendSrv;\n this.datasourceId = defaults.datasourceId;\n }\n\n generateQueryString = async () => {\n return this.getResourceQueryString();\n };\n\n async getResourceQueryString() {\n let res: { path?: string; querystring?: any; host?: string; intranet?: boolean } = {};\n try {\n const { data } = this.defaults;\n const payload = typeof data === 'string' ? data : JSON.stringify(data);\n const resp = await this.backendSrv.datasourceRequest({\n url: `/api/datasources/${this.datasourceId}/resources/sign_v2`,\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: {\n Host: this.defaults.host,\n Action: this.defaults.action,\n Version: this.defaults.version,\n Region: this.defaults.region,\n Method: this.defaults.method,\n Uri: this.defaults.path,\n Query: '',\n Body: payload,\n },\n });\n res = resp.data;\n } catch (err) {}\n const { path, querystring, host, intranet } = res;\n return { queryString: querystring, path: path, host: host, intranet: intranet };\n }\n}\n","import _ from 'lodash';\nimport qs from 'qs';\nimport { SERVICES } from '../tc_monitor';\nimport Sign from './sign';\nimport SignV2 from './signV2';\nimport { toDataQueryResponse } from '@grafana/runtime';\nimport { getLanguage } from '../../locale';\n\nimport packageInfo from '../plugin.json';\nexport const TcDataSourceId = packageInfo.id;\n\n// the services of tencentcloud monitor api\nconst FINACE_REGIONS = ['ap-shanghai-fsi', 'ap-shenzhen-fsi'];\nconst SERVICES_API_INFO = {\n api: {\n service: 'api',\n version: '2020-11-06',\n path: '/api',\n host: 'api.tencentcloudapi.com',\n },\n // monitor api info\n monitor: {\n service: 'monitor',\n version: '2018-07-24',\n path: '/monitor',\n host: 'monitor.tencentcloudapi.com',\n },\n // cls api info\n cls: {\n service: 'cls',\n version: '2020-10-16',\n path: '/cls',\n host: 'cls.tencentcloudapi.com',\n },\n // cvm api info\n cvm: {\n service: 'cvm',\n version: '2017-03-12',\n path: '/cvm',\n host: 'cvm.tencentcloudapi.com',\n },\n // cdb api info\n cdb: {\n service: 'cdb',\n version: '2017-03-20',\n path: '/cdb',\n host: 'cdb.tencentcloudapi.com',\n },\n // pcx api info\n pcx: {\n service: 'pcx',\n version: '',\n path: '/pcx',\n host: 'vpc.api.qcloud.com',\n },\n // vpc api info\n vpc: {\n service: 'vpc',\n version: '2017-03-12',\n path: '/vpc',\n host: 'vpc.tencentcloudapi.com',\n },\n // mongodb api info\n mongodb: {\n service: 'mongodb',\n version: '2019-07-25',\n path: '/mongodb',\n host: 'mongodb.tencentcloudapi.com',\n },\n // 负载均衡 clb\n clb: {\n service: 'clb',\n version: '2018-03-17',\n path: '/clb',\n host: 'clb.tencentcloudapi.com',\n },\n // postgresql api info\n postgres: {\n service: 'postgres',\n version: '2017-03-12',\n path: '/postgres',\n host: 'postgres.tencentcloudapi.com',\n },\n // cdn info\n cdn: {\n service: 'cdn',\n version: '2018-06-06',\n path: '/cdn',\n host: 'cdn.tencentcloudapi.com',\n },\n // redis info\n redis: {\n service: 'redis',\n version: '2018-04-12',\n path: '/redis',\n host: 'redis.tencentcloudapi.com',\n },\n scf: {\n service: 'scf',\n version: '2018-04-16',\n path: '/scf',\n host: 'scf.tencentcloudapi.com',\n },\n cfs: {\n service: 'cfs',\n version: '2019-07-19',\n path: '/cfs',\n host: 'cfs.tencentcloudapi.com',\n },\n ckafka: {\n service: 'ckafka',\n version: '2019-08-19',\n path: '/ckafka',\n host: 'ckafka.tencentcloudapi.com',\n },\n // 专线接入实例列表\n dc: {\n service: 'dc',\n version: '2018-04-10',\n path: '/dc',\n host: 'dc.tencentcloudapi.com',\n },\n // cynosdb实例列表\n cynosdb: {\n service: 'cynosdb',\n version: '2019-01-07',\n path: '/cynosdb',\n host: 'cynosdb.tencentcloudapi.com',\n },\n // sqlserver实例列表\n sqlserver: {\n service: 'sqlserver',\n version: '2018-03-28',\n path: '/sqlserver',\n host: 'sqlserver.tencentcloudapi.com',\n },\n // bm实例列表\n bm: {\n service: 'bm',\n version: '2018-04-23',\n path: '/bm',\n host: 'bm.tencentcloudapi.com',\n },\n bmeip: {\n service: 'bmeip',\n version: '2018-06-25',\n path: '/bmeip',\n host: 'bmeip.tencentcloudapi.com',\n },\n bmvpc: {\n service: 'bmvpc',\n version: '2018-06-25',\n path: '/bmvpc',\n host: 'bmvpc.tencentcloudapi.com',\n },\n bmlb: {\n service: 'bmlb',\n version: '2018-06-25',\n path: '/bmlb',\n host: 'bmlb.tencentcloudapi.com',\n },\n // ES集群实例\n es: {\n service: 'es',\n version: '2018-04-16',\n path: '/es',\n host: 'es.tencentcloudapi.com',\n },\n // MapReduce\n emr: {\n service: 'emr',\n version: '2019-01-03',\n path: '/emr',\n host: 'emr.tencentcloudapi.com',\n },\n // CMQ消息队列\n cmq: {\n service: 'cmq',\n version: '2019-03-04',\n path: '/cmq',\n host: 'cmq.tencentcloudapi.com',\n },\n cbs: {\n service: 'cbs',\n version: '2017-03-12',\n path: '/cbs',\n host: 'cbs.tencentcloudapi.com',\n },\n // tcaplus实例\n tcaplusdb: {\n service: 'tcaplusdb',\n version: '2019-08-23',\n path: '/tcaplusdb',\n host: 'tcaplusdb.tencentcloudapi.com',\n },\n // tcaplus实例\n dcdb: {\n service: 'dcdb',\n version: '2018-04-11',\n path: '/dcdb',\n host: 'dcdb.tencentcloudapi.com',\n },\n // apigateway实例\n apigateway: {\n service: 'apigateway',\n version: '2018-08-08',\n path: '/apigateway',\n host: 'apigateway.tencentcloudapi.com',\n },\n tdmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n tdmq_rabbitmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n tdmq_rocketmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n gaap: {\n service: 'gaap',\n version: '2018-05-29',\n path: '/gaap',\n host: 'gaap.tencentcloudapi.com',\n },\n ecm: {\n service: 'ecm',\n version: '2019-07-19',\n path: '/ecm',\n host: 'ecm.tencentcloudapi.com',\n },\n gse: {\n service: 'gse',\n version: '2019-11-12',\n path: '/gse',\n host: 'gse.tencentcloudapi.com',\n },\n lighthouse: {\n service: 'lighthouse',\n version: '2020-03-24',\n path: '/lighthouse',\n host: 'lighthouse.tencentcloudapi.com',\n },\n tsf: {\n service: 'tsf',\n version: '2018-03-26',\n path: '/tsf',\n host: 'tsf.tencentcloudapi.com',\n },\n rum: {\n service: 'rum',\n version: '2021-06-22',\n path: '/rum',\n host: 'rum.tencentcloudapi.com',\n },\n tke: {\n service: 'tke',\n version: '2018-05-25',\n path: '/tke',\n host: 'tke.tencentcloudapi.com',\n },\n ecdn: {\n service: 'ecdn',\n version: '2019-10-12',\n path: '/ecdn',\n host: 'ecdn.tencentcloudapi.com',\n },\n waf: {\n service: 'waf',\n version: '2018-01-25',\n path: '/waf',\n host: 'waf.tencentcloudapi.com',\n },\n region: {\n service: 'region',\n version: '2022-06-27',\n path: '/region',\n host: 'region.tencentcloudapi.com',\n },\n apm: {\n service: 'apm',\n version: '2021-06-22',\n path: '/apm',\n host: 'apm.tencentcloudapi.com',\n },\n // 不单独定义lb,因为lb同样用的是vpc的配置,同上\n // lb: {\n // service: 'lb',\n // version: '2017-03-12',\n // path: '/lb',\n // host: 'vpc.tencentcloudapi.com'\n // }\n // 负载均衡四层协议 lbPrivate\n // lbPrivate: {\n // service: 'lbPrivate',\n // version: '2018-03-17',\n // path: '/clb',\n // host: 'clb.tencentcloudapi.com',\n // },\n};\n\nconst FINACE_HOST = {\n scf: {\n 'ap-shanghai-fsi': {\n path: '/fsi/scf/shanghai',\n host: 'scf.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/scf/shenzhen',\n host: 'scf.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cfs: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cfs/shanghai',\n host: 'cfs.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cfs/shenzhen',\n host: 'cfs.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n ckafka: {\n 'ap-shanghai-fsi': {\n path: '/fsi/ckafka/shanghai',\n host: 'ckafka.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/ckafka/shenzhen',\n host: 'ckafka.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n clb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/clb/shanghai',\n host: 'clb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/clb/shenzhen',\n host: 'clb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n mongodb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/mongodb/shanghai',\n host: 'mongodb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/mongodb/shenzhen',\n host: 'mongodb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n vpc: {\n 'ap-shanghai-fsi': {\n path: '/fsi/vpc/shanghai',\n host: 'vpc.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/vpc/shenzhen',\n host: 'vpc.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cvm: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cvm/shanghai',\n host: 'cvm.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cvm/shenzhen',\n host: 'cvm.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cdb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cdb/shanghai',\n host: 'cdb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cdb/shenzhen',\n host: 'cdb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n monitor: {\n 'ap-shanghai-fsi': {\n path: '/fsi/monitor/shanghai',\n host: 'monitor.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/monitor/shenzhen',\n host: 'monitor.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n postgres: {\n 'ap-shanghai-fsi': {\n path: '/fsi/postgres/shanghai',\n host: 'postgres.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/postgres/shenzhen',\n host: 'postgres.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n emr: {\n 'ap-shanghai-fsi': {\n path: '/fsi/emr/shanghai',\n host: 'emr.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/emr/shenzhen',\n host: 'emr.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cmq: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cmq/shanghai',\n host: 'cmq.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cmq/shenzhen',\n host: 'cmq.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cls: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cls/shanghai',\n host: 'cls.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cls/shenzhen',\n host: 'cls.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n};\n\n// 获取对应业务的 API 接口信息\nexport function GetServiceAPIInfo(region, service) {\n return { ...(SERVICES_API_INFO[service] || {}), ...getHostAndPath(region, service) };\n}\n\n// get host and path for finance regions\nfunction getHostAndPath(region, service) {\n if (_.indexOf(FINACE_REGIONS, region) === -1) {\n return {};\n }\n return (\n _.find(\n _.find(FINACE_HOST, (__, key) => key === service),\n (__, key) => key === region\n ) || {}\n );\n}\n\n// 变量替换指定实例按照那个字段展示\nexport const VARIABLE_ALIAS = 'instancealias';\n\nexport function GetServiceFromNamespace(namespace) {\n return _.get(\n _.find(SERVICES, (service) => service.namespace === namespace),\n 'service'\n );\n}\n// 处理存量target中保存的qce/cvm\nexport function GetLabelFromNamespace(namespace) {\n return _.get(\n _.find(SERVICES, (service) => service.namespace === namespace || service.label === namespace),\n 'label'\n );\n}\n// parse template variable query params\nexport function ParseMetricQuery(query = '') {\n if (!query) {\n return {};\n }\n const result = {};\n const queries = _.split(query, '&');\n _.forEach(queries, (item) => {\n const str = _.split(item, '=');\n if (_.trim(_.get(str, '0', ''))) {\n let val = _.trim(_.get(str, '1', ''));\n try {\n val = JSON.parse(val);\n } catch (e) {\n // console.log({ val });\n }\n result[_.toLower(_.trim(_.get(str, '0', '')))] = val;\n }\n });\n return result;\n}\n\n// parse template variable regex params\nexport function ParseMetricRegex(regex = '') {\n if (!regex) {\n return [];\n }\n regex = regex.replace(/:/g, ':');\n regex = regex.replace(/,/g, ',');\n const regexParams = ParseMetricQuery(regex);\n const result: any[] = [];\n _.forEach(regexParams, (value, key) => {\n if (key === 'tag:tag-key') {\n const valuesArr = _.split(value, ',');\n _.forEach(valuesArr, (item) => {\n const temp = _.split(item, ':');\n if (temp.length === 2) {\n result.push({ Name: `tag:${temp[0]}`, Values: temp.slice(1) });\n }\n });\n } else {\n result.push({ Name: key, Values: _.split(value, ',') });\n }\n });\n return result;\n}\n\n// get the actual value of template variable\nfunction parseVariableFormat(varname: string) {\n varname = String(varname || '');\n // $varname\n let varFlag = false;\n const regResult1 = varname.match(/^\\${?(\\w+)}?/);\n if (regResult1) {\n varFlag = true;\n varname = `\\$\\{${regResult1[1]}\\:json\\}`;\n }\n // [[varname]]\n const regResult2 = varname.match(/^\\[\\[(\\w+)(\\:\\w+)?\\]\\]/);\n if (regResult2) {\n varFlag = true;\n varname = `\\$\\{${regResult2[1]}\\:json\\}`;\n }\n return { varname, varFlag };\n}\n\nexport function ReplaceVariable(templateSrv, scopedVars, field, multiple = false) {\n const { varname, varFlag } = parseVariableFormat(field);\n let replaceVar = templateSrv.replace(varname, scopedVars);\n if (varFlag) {\n try {\n replaceVar = JSON.parse(replaceVar);\n } catch (error) {}\n }\n if (!multiple && _.isArray(replaceVar)) {\n replaceVar = _.get(replaceVar, '0', '');\n }\n return replaceVar;\n}\n\n// get dimensions for instance query param\nexport function GetDimensions(obj) {\n if (_.isEmpty(obj)) {\n return [];\n }\n const dimensions: any[] = [];\n _.forEach(obj, (item) => {\n if (item.Value !== null && item.Value !== undefined && item.Value !== '') {\n dimensions.push({ Name: item.Name, Value: typeof item.Value === 'string' ? item.Value : `${item.Value}` });\n }\n });\n return dimensions;\n}\n\n// parse query data result for panel\nexport function ParseQueryResult(response, instances: any[] = [], timeshift = 0) {\n const instanceList = _.cloneDeep(instances);\n\n const dataPoints = _.get(response, 'DataPoints', []);\n return _.map(dataPoints, (dataPoint) => {\n let instanceAliasValue = _.get(dataPoint, 'Dimensions[0].Value');\n for (let i = 0; i < instanceList.length; i++) {\n if (isInstanceMatch(instanceList[i], _.get(dataPoint, 'Dimensions', []))) {\n instanceAliasValue = instanceList[i]._InstanceAliasValue;\n instanceList.splice(i, 1);\n break;\n }\n }\n return {\n target: `${response.MetricName} - ${instanceAliasValue}`,\n datapoints: parseDataPoint(dataPoint, timeshift),\n };\n });\n}\n\n// parse tencent cloud monitor response data to grafana panel data\nfunction parseDataPoint(dataPoint, timeshift = 0) {\n const timestamps = _.get(dataPoint, 'Timestamps', []);\n const values = _.get(dataPoint, 'Values', []);\n const result = timestamps.map((timestamp, index) => {\n return [values[index], timestamp * 1000 + timeshift];\n });\n\n return result;\n}\n\n// check whether instance is match or not\nfunction isInstanceMatch(instance, dimensions) {\n let match = true;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < dimensions.length; i++) {\n if (_.get(instance, dimensions[i].Name, '').toString() !== dimensions[i].Value.toString()) {\n match = false;\n break;\n }\n }\n return match;\n}\n\n/**\n * 检查某个变量是否模板变量,即是否匹配 ${varnam} 或 [[varname]]\n *\n * @param field 变量字段名\n */\nexport function isVariable(value) {\n if (value && (value.match(/^\\${?(\\w+)}?/) || value.match(/^\\[\\[(\\w+)(\\:\\w+)?\\]\\]/))) {\n return true;\n }\n return false;\n}\n\n/**\n * 腾讯云 API 3.0 接口协议\n * @param options 接口请求对象 { url: string, data?: object }\n * @param service 产品名字 'cvm'\n * @param signObj 接口请求相关信息 { region?: string, action: string }\n * @param secretId\n * @param secretKey\n */\nexport async function GetRequestParams(options, service, signObj: any = {}, secretId, datasourceId, backendSrv) {\n const signParams = {\n secretId,\n payload: options.data || '',\n ...signObj,\n ...(_.pick(GetServiceAPIInfo(signObj.region || '', service), ['service', 'host', 'version']) || {}),\n backendSrv,\n datasourceId,\n region: 'ap-guangzhou',\n };\n const sign = new Sign(signParams);\n const { intranet, ...headerSigned } = await sign.getHeader();\n // 传入x-tc-language实现国际化\n // zh-CN en-US ko-KR ja-JP\n options.headers = Object.assign(options.headers || {}, { ...headerSigned }, { 'x-tc-language': getLanguage() });\n options.method = 'POST';\n if (intranet) {\n options.url += '-internal';\n }\n return options;\n}\n\n/**\n * 腾讯云 API 2.0 接口协议\n * @param options 接口请求对象 { url: string, data?: object }\n * @param service 产品名字 'cvm'\n * @param signObj 接口请求相关信息 { region?: string, action: string }\n * @param secretId\n * @param secretKey\n */\nexport async function GetRequestParamsV2(\n options: any = {},\n service,\n signObj: any = {},\n secretId,\n datasourceId,\n backendSrv\n) {\n const data = options.data || {};\n const signParams = {\n secretId,\n data,\n ...signObj,\n ...(_.pick(GetServiceAPIInfo(signObj.region || '', service), ['host', 'version']) || {}),\n backendSrv,\n datasourceId,\n };\n options.method = 'POST';\n const sign = new SignV2(signParams);\n options.headers = Object.assign(options.headers || {}, { 'Content-Type': 'application/x-www-form-urlencoded' });\n const { queryString, path, host, intranet } = await sign.generateQueryString();\n options.data = qs.stringify({\n ...options.data,\n ...queryString,\n ...(host && { host: host }),\n });\n if (intranet) {\n // TODO: qcloud.com intranet host\n console.log('got intranet for sign v2');\n }\n options.url += path;\n return options;\n}\n\nexport function SliceLength(total = 0, len = 1) {\n const result: any[] = [];\n const num = Math.ceil(total / len);\n for (let i = 1; i < num; i++) {\n result.push({ Offset: len * i });\n }\n return result;\n}\n\nexport const FilterKeys = ['Namespace', 'Offset', 'Limit', 'SearchKey', 'Description', 'OrderBy', 'Order'];\n\nexport function parseDataFromBackendPlugin(res) {\n const { data } = toDataQueryResponse(res);\n return {\n authorization: _.get(data, '[0].meta.custom', ''),\n };\n}\n\n/** 当前环境是否为非生产环境 */\nexport const IS_DEVELOPMENT_ENVIRONMENT = !(process.env.NODE_ENV === 'production');\n\n/**\n * @link https://github.com/grafana/grafana/blob/3c6e0e8ef85048af952367751e478c08342e17b4/packages/grafana-data/src/types/app.ts#L12\n */\nexport enum CoreApp {\n CloudAlerting = 'cloud-alerting',\n UnifiedAlerting = 'unified-alerting',\n Dashboard = 'dashboard',\n Explore = 'explore',\n Unknown = 'unknown',\n PanelEditor = 'panel-editor',\n PanelViewer = 'panel-viewer',\n}\n","import _ from 'lodash';\nimport moment from 'moment';\nimport DatasourceInterface from '../MonitorDatasource';\nimport {\n GetRequestParams,\n GetServiceAPIInfo,\n ReplaceVariable,\n GetDimensions,\n ParseQueryResult,\n SliceLength,\n} from '../../common/constants';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { MetricQuery } from './types';\nimport { getNamesapceFromService, getTimeShiftInMs } from '../../common/utils';\nimport { Language, setLanguage } from '../../../locale';\n\nexport interface TemplateQueryIdType {\n instance: string;\n listener?: string;\n}\n\ninterface queryConfigType {\n dim_KeyInStorage: string;\n dim_KeyInTarget?: string;\n dim_KeyInIns?: string;\n dim_KeyInMap: string;\n}\n\nexport abstract class BaseDatasource implements DatasourceInterface {\n Namespace?: string;\n service: string;\n instanceListCache: any[] = [];\n extraMetricDims: string[] = [];\n url: string;\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n secretId: string;\n checkKeys: string[] = [];\n MetricReqConfig: {\n resultFilter?: Function;\n } = {};\n extrasAlias?: string[] = [];\n /*\n 一个配置:(用于处理除了InstanceId之外的)(Record中的key是指标修正之后的维度,即通过InvalidDemsion处理后)\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。为空则取即通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。即:templateQueryIdMap中内容。联合上面2的内容筛选出原始sourceMap\n 4 通过这个dim和sourceMap获取维度值。即sourceMap[dim]\n */\n queryMonitorExtraConfg: Record = {};\n CandiateDimensions?: Record = {};\n\n InstanceReqConfig?: {\n service?: string;\n action: string;\n responseField: string;\n interceptor?: {\n request?: (params: unknown) => unknown;\n response?: (data: unknown) => unknown;\n };\n };\n InvalidDimensions?: Record;\n\n abstract InstanceAliasList: string[];\n abstract templateQueryIdMap: TemplateQueryIdType; // 必须为标识\n\n /** @ngInject */\n constructor(instanceSettings, backendSrv, templateSrv) {\n this.instanceSettings = instanceSettings;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n this.url = instanceSettings.url;\n this.secretId = (instanceSettings.jsonData || {}).secretId || '';\n setLanguage(instanceSettings.jsonData.language || Language.Chinese);\n }\n\n get namespace() {\n // 需要注意的是this.service来自于原型上,在实例中导入时注入\n return this.Namespace || getNamesapceFromService(this.service);\n }\n\n // 获取额外要显示到图例里的内容\n getOtherAlias(instance: any, target: any): string {\n let result = '';\n const alias = instance._InstanceAliasValue;\n this.extrasAlias?.forEach((extra) => {\n const extraAlia = this.getVariable(target[extra]);\n if (extraAlia && alias.indexOf(extraAlia) === -1) {\n result += ` - ${extraAlia}`;\n }\n });\n return result;\n }\n\n /* 格式化模板变量上的显示 */\n getAliasValue(instance: Record, alias: string) {\n const result = instance[alias];\n return Array.isArray(result) ? result.join() : result;\n }\n\n formatVarDisplay(instance: Record, displayTpl: string | undefined, instanceAlias: string) {\n // 获取display=aaa${InstanceName}bbb${InstanceId}ccc\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !this.InstanceAliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(instance, b);\n });\n }\n return this.getAliasValue(instance, instanceAlias);\n }\n /**\n * @param query 模板变量配置填写的 Query 参数对象,由顶层将字符串转换为了对象\n */\n async metricFindQuery(query: MetricQuery, regex?: string) {\n const { action, namespace, display, payload = {} } = query;\n let { region, instancealias = this.templateQueryIdMap.instance } = query;\n if (!action || !namespace) {\n return [];\n }\n // 支持payload里传入模板变量\n if (_.isObject(payload)) {\n _.forEach(payload, (value, key) => {\n payload[key] = _.isString(value) ? this.getVariable(value) : value;\n });\n }\n\n // 查询地域列表\n const regionQuery = action.match(/^DescribeRegions$/i);\n if (regionQuery) {\n return this.getRegions();\n }\n\n region = this.getVariable(region); // 将模板region转换为真实值\n\n // 查询实例列表\n if (region && action.match(/^DescribeInstances/i)) {\n const result = await this.getVariableInstances(region, payload);\n instancealias = this.InstanceAliasList.includes(instancealias) ? instancealias : this.templateQueryIdMap.instance;\n\n const res = result.flatMap((item) => {\n const insAlias = this.formatVarDisplay(item, display, instancealias);\n\n item._InstanceAliasValue = insAlias; // FIXME:\n\n if (!item[instancealias]) return [];\n return [\n {\n text: insAlias,\n value: item[this.templateQueryIdMap.instance],\n },\n ];\n });\n\n // 缓存全量实例列表\n await instanceStorage.setInstance(this.service, result);\n return res;\n }\n\n // 在instance实例的基础上查询其他数据\n let instance = this.getVariable(query['instance']);\n if (_.isArray(instance)) instance = instance[0]; // 有额外维度,仅支持实例单选情况\n if (region && action && instance) {\n try {\n // instance = JSON.parse(instance);\n const instanceCache = await instanceStorage.getInstance(this.service);\n\n instance = _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === instance)) ?? {};\n // eslint-disable-next-line no-empty\n } catch (error) {}\n return this.fetchMetricData(action, region, instance, query);\n }\n\n return Promise.resolve([]);\n }\n // 获取指标数据\n async fetchMetricData(action: string, region: string, instance: any, query?: any) {\n return [];\n }\n\n /**\n * 根据 Panel 的配置项,获取相应的监控数据\n *\n * @param options Panel 的配置参数\n * @return 返回数据数组,示例如下\n * [\n * {\n * \"target\": \"AccOuttraffic - ins-123\",\n * \"datapoints\": [\n * [861, 1450754160000],\n * [767, 1450754220000]\n * ]\n * }\n * ]\n */\n async dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options) {\n for (let key of dimKeys) {\n let keyTmp = key;\n const invalidDim = this.InvalidDimensions || this.getInvalidDimensions(this, target[service]);\n if (invalidDim[key]) {\n // 从【维度中】的字段到【实例中】字段的映射。 { functionName: FunctionName }\n keyTmp = invalidDim[key];\n ins[key] = ins[keyTmp];\n }\n\n let extraDimValue = this.getVariable(target[service][keyTmp]);\n if (this.queryMonitorExtraConfg[keyTmp]) {\n const {\n dim_KeyInStorage,\n dim_KeyInTarget = keyTmp,\n dim_KeyInMap,\n dim_KeyInIns,\n } = this.queryMonitorExtraConfg[keyTmp];\n let extraIns = ReplaceVariable(this.templateSrv, options.scopedVars, target[service][dim_KeyInTarget], true);\n let extraSourceMap: any = {};\n try {\n extraSourceMap = JSON.parse(extraIns); // 兼容json字符串的 形式\n } catch (error) {\n if (_.isArray(extraIns)) extraIns = extraIns[0]; // 如果多个,取第一个。除了实例ID 暂不支持其他纬度多选\n const extraStorage = await instanceStorage.getExtraStorage(this.service, dim_KeyInStorage);\n\n extraSourceMap =\n extraStorage?.find((item) => {\n if (_.isArray(item[dim_KeyInMap])) {\n return item[dim_KeyInMap][0] === extraIns;\n }\n return item[dim_KeyInMap] === extraIns;\n }) ?? {};\n }\n const isStringOrNumber = _.isString(extraSourceMap) || _.isNumber(extraSourceMap);\n // 增加ins实例之外的alias,填入到ins._InstanceAliasValue\n const insAlias = ins._InstanceAliasValue;\n const otherAlias = isStringOrNumber ? extraSourceMap : extraSourceMap._InstanceAliasValue;\n if (otherAlias && insAlias.indexOf(otherAlias) === -1) {\n ins._InstanceAliasValue += ` - ${otherAlias}`;\n }\n\n extraDimValue = isStringOrNumber ? extraSourceMap : extraSourceMap?.[dim_KeyInIns || keyTmp];\n } else {\n ins._InstanceAliasValue += this.getOtherAlias(ins, target[service]);\n }\n\n if (\n getTimeShiftInMs(target[service].timeshift) > 0 &&\n ins._InstanceAliasValue.indexOf(target[service].timeshift) === -1\n ) {\n ins._InstanceAliasValue += `_${target[service].timeshift}`;\n }\n // 设置instance,针对额外的维度,需要注意模板变量的值\n // ins[key] = ins[keyTmp] ?? extraDimValue;\n ins[key] = this.getDimensionsVal(ins, keyTmp, extraDimValue);\n // cynosdb产品接口返回维度和入参不一致\n if (this.checkKeys.length > 0) {\n this.checkKeys.forEach((Ekey) => {\n ins[Ekey] = ins[key];\n });\n }\n dimensionObject[key] = { Name: key, Value: ins[key] };\n }\n return dimensionObject;\n }\n getDimensionsVal(ins: Record, key: string, extraDimValue: string) {\n let dimVal = ins[key];\n if (_.isEmpty(dimVal) && this.CandiateDimensions[key]) {\n dimVal = ins[this.CandiateDimensions[key]];\n }\n return dimVal ?? extraDimValue;\n }\n query(options: any) {\n const service = this.service!; // 强制声明非空\n\n const queries = _.filter(options.targets, (item) => {\n // 过滤无效的查询 target\n return (\n item.hide !== true &&\n !!item.namespace &&\n !!item[service].metricName &&\n !_.isEmpty(ReplaceVariable(this.templateSrv, options.scopedVars, item[service].region, false)) &&\n !_.isEmpty(ReplaceVariable(this.templateSrv, options.scopedVars, item[service].instance, true))\n );\n })\n .reduce((prev, target) => {\n if (getTimeShiftInMs(target[service].timeshift) > 0) {\n const cloneTarget = _.cloneDeep(target);\n cloneTarget[service].timeshift = '';\n return [...prev, cloneTarget, target];\n }\n return [...prev, target];\n }, [])\n .map(async (target) => {\n // 实例 instances 可能为模板变量,需先获取实际值\n // 针对JSON字符串和id的形式,分开做处理\n let instances = ReplaceVariable(this.templateSrv, options.scopedVars, target[service].instance, true);\n const instanceCache = await instanceStorage.getInstance(this.service);\n const timeshift = getTimeShiftInMs(target[service].timeshift);\n\n instances = [].concat(instances).map((inst) => {\n try {\n return JSON.parse(inst); // 兼容json字符串的 形式\n } catch (error) {\n // 如果没拿到缓存,取默认实例组\n if (!instanceCache) return this.getDefaultInsObj?.(inst);\n return _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === inst)) ?? {};\n }\n });\n const region = ReplaceVariable(this.templateSrv, options.scopedVars, target[service].region, false);\n const insInReq: any = [];\n for (let ins of instances) {\n const dimensionObject = target[service].dimensionObject;\n // 处理dimensions的值\n const dimKeys = Object.keys(dimensionObject);\n const dimResult = await this.dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options);\n\n insInReq.push([{ Dimensions: GetDimensions(dimResult) }]);\n }\n const data = {\n StartTime: moment(options.range.from).subtract(timeshift).format(),\n EndTime: moment(options.range.to).subtract(timeshift).format(),\n Period: target[service].period || 300,\n Instances: _.flatMap(insInReq),\n Namespace: target.namespace,\n MetricName: target[service].metricName,\n };\n return this.getMonitorData(data, region, instances, target[service], options);\n });\n\n if (queries.length === 0) {\n return [];\n }\n\n return Promise.all(queries)\n .then((responses) => {\n return _.flatten(responses);\n })\n .catch((error) => {\n return [];\n });\n }\n getDefaultInsObj(ins: string) {\n return {} as any;\n }\n getInstanceReqConfig(selfIns: any) {\n return {} as any;\n }\n getInvalidDimensions(selfIns: any, target?: any) {\n return {} as any;\n }\n // 获取某个变量的实际值,this.templateSrv.replace() 函数返回实际值的字符串\n getVariable(metric?: string) {\n const rs = this.templateSrv.replace((metric || '').trim());\n const valStr = rs.match(/\\{([\\w-,]+)\\}/);\n // 判断是否为多选\n if (valStr) {\n return valStr[1].split(',');\n }\n return rs;\n }\n\n /**\n * 获取 监控数据\n * @param params 获取监控数据的请求参数\n * @param region 地域信息\n * @param instances 实例列表,用于对返回结果的匹配解析\n */\n getMonitorData(params, region, instances, target, options) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const timeshift = getTimeShiftInMs(target.timeshift);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { action: 'GetMonitorData', region }\n ).then((response) => {\n return ParseQueryResult(response, instances, timeshift);\n });\n }\n\n getRegions(): any {\n return this.doRequest(\n {\n url: this.url + '/cvm',\n },\n 'cvm',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getMetrics(region = 'ap-guangzhou'): Promise {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: this.namespace,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n ).then((response) => {\n const res = _.filter(\n _.filter(response.MetricSet || [], (item) => !(item.Namespace !== this.namespace || !item.MetricName))\n );\n const resFilterFn = this.MetricReqConfig.resultFilter;\n if (resFilterFn) {\n return res.map((item) => resFilterFn(item));\n }\n return res;\n });\n }\n\n getInstances(region, params = {}) {\n const {\n service = this.service,\n action,\n responseField: field,\n interceptor,\n } = this.InstanceReqConfig || this.getInstanceReqConfig(this);\n params = { Offset: 0, Limit: 100, ...params };\n const serviceInfo = GetServiceAPIInfo(region, service);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: interceptor?.request ? interceptor.request(params) : params,\n },\n serviceInfo.service,\n { region, action }\n ).then((response) => {\n // 处理异常,则不按正常的情况处理,直接抛出错误\n if (response?.Error) {\n console.error(response.Error);\n return response;\n }\n\n let result;\n // 先,field处理\n if (field) {\n result = _.get(response, field) ?? _.get(response, `Result.${field}`) ?? [];\n }\n\n // 后,拦截器处理\n if (interceptor?.response) {\n result = interceptor.response(result);\n }\n return result;\n });\n }\n\n getVariableInstances(region, query = {}): Promise {\n let result: any[] = [];\n const params = { ...{ Offset: 0, Limit: 100 }, ...query };\n\n const {\n service = this.service,\n action,\n responseField: field,\n interceptor,\n } = this.InstanceReqConfig || this.getInstanceReqConfig(this);\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: interceptor?.request ? interceptor.request(params) : params,\n },\n serviceInfo.service,\n { region, action }\n ).then((response) => {\n result = _.get(response, field) ?? _.get(response, `Result.${field}`) ?? [];\n const total =\n response.TotalCount ?? response.TotalCnt ?? response.TotalNumber ?? _.get(response, `Result.TotalCount`) ?? 0;\n if (result.length >= total) {\n return interceptor?.response ? interceptor.response(result) : result;\n } else {\n const param = SliceLength(total, params?.Limit || 100);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getInstances(region, { ...item, ...query }));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return interceptor?.response ? interceptor.response(result) : result;\n })\n .catch((error) => {\n return interceptor?.response ? interceptor.response(result) : result;\n });\n }\n });\n }\n\n // 检查某变量字段是否有值\n isValidConfigField(field: string) {\n return field && field.length > 0;\n }\n\n testDatasource() {\n // const { service = this.service, action } = this.InstanceReqConfig;\n // const serviceInfo = GetServiceAPIInfo('ap-guangzhou', service);\n\n if (!this.isValidConfigField(this.secretId)) {\n return {\n service: this.service,\n status: 'error',\n message: 'The SecretId/SecretKey field is required.',\n };\n }\n\n return Promise.all([\n this.getRegions(),\n this.getMetrics(),\n // this.doRequest(\n // {\n // url: this.url + serviceInfo.path,\n // data: {\n // Offset: 0,\n // Limit: 1,\n // },\n // },\n // service,\n // { region: 'ap-guangzhou', action },\n // ),\n this.getInstances('ap-guangzhou', {\n Offset: 0,\n Limit: 1,\n }),\n ])\n .then((responses) => {\n const cvmErr = _.get(responses, '[0].Error', {});\n const monitorErr = _.get(responses, '[1].Error', {});\n const serviceErr = _.get(responses, '[2].Error', {});\n // const cvmAuthFail = _.get(cvmErr, 'Code', '').indexOf('AuthFailure') !== -1;\n // const monitorAuthFail = _.get(monitorErr, 'Code', '').indexOf('AuthFailure') !== -1;\n // const serviceAuthFail = _.get(serviceErr, 'Code', '').indexOf('AuthFailure') !== -1;\n const cvmAuthFail = _.get(cvmErr, 'Code', '');\n const monitorAuthFail = _.get(monitorErr, 'Code', '');\n const serviceAuthFail = _.get(serviceErr, 'Code', '');\n if (cvmAuthFail || monitorAuthFail || serviceAuthFail) {\n const messages: any[] = [];\n if (cvmAuthFail) {\n messages.push(_.get(cvmErr, 'Code'));\n }\n if (monitorAuthFail) {\n messages.push(_.get(monitorErr, 'Code'));\n }\n if (serviceAuthFail) {\n messages.push(_.get(serviceErr, 'Code'));\n }\n const message = _.join(_.compact(_.uniq(messages)), '; ');\n return {\n service: this.service,\n status: 'error',\n message,\n };\n } else {\n return {\n namespace: this.namespace,\n service: this.service,\n status: 'success',\n message: `Successfully queried the ${this.service} service.`,\n title: 'Success',\n };\n }\n })\n .catch((error) => {\n let message = `${this.service} service:`;\n message += error.statusText ? error.statusText + '; ' : '';\n if (_.get(error, 'data.error.code', '')) {\n message += error.data.error.code + '. ' + error.data.error.message;\n } else if (_.get(error, 'data.error', '')) {\n message += error.data.error;\n } else if (_.get(error, 'data', '')) {\n message += error.data;\n } else {\n message += `Cannot connect to ${this.service} service.`;\n }\n return {\n service: this.service,\n status: 'error',\n message: message,\n };\n });\n }\n\n async doRequest(options, service, signObj: any = {}) {\n options = await GetRequestParams(\n options,\n service,\n signObj,\n this.secretId,\n this.instanceSettings.id,\n this.backendSrv\n );\n return this.backendSrv\n .datasourceRequest(options)\n .then((response) => {\n return _.get(response, 'data.Response', {});\n })\n .catch((error) => {\n throw error;\n });\n }\n}\n","import _ from 'lodash';\nimport { SERVICES } from '../tc_monitor';\n\n/* 从分页数据获取全量数据 */\nconst PageSize = 50;\nfunction getFieldsValue(value, fields) {\n return fields.map((item) => _.get(value, item, _.get(value, `Result.${item}`, [])));\n}\n\nexport async function fetchAllFactory(fetcher: (args: any) => Promise, _params: any, field: string | string[]) {\n const params = { ..._.omit(_params, ['isOffsetPage']) };\n params.Limit = params.Limit || PageSize; // 默认给个Limit大小为50\n params.Offset = params.Offset ?? 0; // 默认给个Offset为0\n\n // 第一次请求,获取总数\n const rs = (await fetcher(params)) ?? {};\n const fields = Array.isArray(field) ? field : [field];\n\n // rs.TotalCount = rs.TotalCount ?? rs.Result.TotalCount ?? [];\n // const { TotalCount } = rs;\n const TotalCount = rs.TotalCount ?? rs.Result?.TotalCount ?? rs.TotalCnt ?? rs.Result?.TotalCnt ?? 0;\n const firstLists = getFieldsValue(rs, fields);\n\n if (TotalCount === 0 || firstLists[0].length === TotalCount) {\n // 只有一页,结束\n return firstLists;\n }\n\n // 批量请求\n const delta = TotalCount - firstLists[0].length;\n const batchCount = Math.ceil(delta / PageSize);\n const pmList = new Array(batchCount).fill(0).map((_, index) => {\n params.Offset = _params.isOffsetPage ? 1 + index : (1 + index) * params.Limit;\n return fetcher(params);\n });\n\n // 合并\n const resultList = await Promise.all(pmList); // [ {a: [], b[] }, { a: [], b:[] }]\n\n return resultList.reduce((acc, cur) => {\n const lists = getFieldsValue(cur, fields);\n // [[], [], []] + [[], [], []]\n acc.forEach((list, index) => list.push(...lists[index]));\n return acc;\n }, firstLists);\n}\n\n/**\n * 实例列表接口入参处理\n *\n * @param queries 表单键入内容\n * @param isFilter 是否需要设置为Filters格式\n */\nexport function instanceQueryParamsBaseParse(queries: any, isFilter: boolean) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n const Filters: any[] = [];\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n if (isFilter) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n } else {\n params[key] = _.uniq(item);\n }\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n if (isFilter) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n } else {\n params[key] = _.get(item, 'value');\n }\n }\n } else if (item !== null && item !== undefined && item !== '') {\n if (isFilter) {\n Filters.push({ Name: key, Values: item });\n } else {\n params[key] = item;\n }\n }\n });\n if (isFilter && Filters.length > 0) {\n params.Filters = Filters;\n return params;\n }\n }\n return params;\n}\n\nexport function getNamesapceFromService(serviceName: string) {\n return _.get(\n _.find(SERVICES, (service) => service.service === serviceName),\n 'namespace'\n );\n}\n\nexport function serviceGroupBy(\n services: { service: string; label: string; namespace: string; href: string; groupName?: string }[]\n) {\n const result = services.reduce((acc, cur) => {\n const { namespace, label, groupName = label } = cur;\n\n const existedGroup = acc.find((item) => item.label === groupName);\n if (!existedGroup) {\n acc.push({ label: groupName, value: groupName, items: [{ label, value: namespace }] });\n return acc;\n }\n\n existedGroup.items.push({ label, value: namespace });\n return acc;\n }, [] as any[]);\n\n // 将只有一个子元素的项目进行特殊处理\n const rs = result.map((item) =>\n item.items.length === 1 ? { label: item.items[0].label, value: item.items[0].value } : item\n );\n return rs;\n}\n\nexport const isTargetEqual = (newTargetString: string, oldTargetString: string, key: string) => {\n try {\n const newTarget = JSON.parse(newTargetString);\n const oldTarget = JSON.parse(oldTargetString);\n return newTarget[key] === oldTarget[key];\n } catch (e) {\n return newTargetString === oldTargetString;\n }\n};\n\nexport const getTimeShiftInMs = (timeShift: any) => {\n const parts = /^(\\d+)([d|h|m|s])$/.exec(timeShift);\n if (!parts) {\n return 0;\n }\n const amount = parseInt(parts[1], 10);\n const unit = parts[2];\n switch (unit) {\n case 'd':\n return amount * 86400 * 1000;\n case 'h':\n return amount * 3600 * 1000;\n case 'm':\n return amount * 60 * 1000;\n case 's':\n return amount * 1000;\n }\n return 0;\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6__;","import coreModule from 'grafana/app/core/core_module';\nimport { DetailQueryConfig } from './types';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nfunction classFactory(detailConfig) {\n return class QueryCtrl {\n static _config: DetailQueryConfig;\n\n /** @ngInject */\n constructor($scope, $rootScope) {\n Object.assign($scope, detailConfig);\n\n $scope.getDropdown = (field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n return $scope.datasource.getFilterDropdown(service, { field, region: $scope.region });\n };\n }\n };\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n`;\nfunction queryDDOFactory(QueryCtrl) {\n return function queryDDO() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n };\n}\n\nexport default (name: string, config: DetailQueryConfig) => {\n // QueryCtrl._config = config;\n const newQueryIns = classFactory(config);\n coreModule.directive(name, queryDDOFactory(newQueryIns));\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8__;","interface DBEvent {\n target: { result: any; error: any };\n}\n// 数据库结构\ninterface DBTypes {\n store: StoreType;\n name?: string;\n version?: number;\n}\n// store表结构\ninterface StoreType {\n name: string; // 表名\n key: string; // 主键名\n cursorIndex?: { name: string; unique: boolean }[]; // 索引列表\n}\n\n// 数据结构\n// {service: 'cvm', instance: [{ins: 23}]}\ninterface DataType {\n service: string;\n [x: string]: any; // 有产品需缓存其他列表\n}\n\n// interface UpdateProps {\n// storeName: string;\n// cursorKey: string;\n// cursorValue?: any;\n// data: any;\n// }\n\nconst store: StoreType = {\n name: 'grafanaInstanceList',\n key: 'service',\n};\nconst promisify = (request: any, type?: string) => {\n return new Promise((resolve, reject) => {\n request.onsuccess = (event: DBEvent) => {\n const returnMap: any = {\n event: event.target.result,\n request: request.result,\n msg: '操作成功',\n };\n resolve(returnMap[type || 'msg']);\n };\n request.onerror = (event: DBEvent) => reject(event.target.error || '操作失败');\n });\n};\n// 固定表名和数据库名\nclass IndexedDB {\n name = 'grafanaDatabase';\n version = 1;\n\n constructor(props: DBTypes) {\n const { name = 'database', version = 1, store } = props;\n this.name = name;\n this.version = version;\n\n this.initDB(store);\n }\n\n /**\n * 初始化数据库\n * @param store 库表的结构\n */\n initDB(store: StoreType) {\n const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;\n const request = indexeddb.open(this.name, this.version);\n\n request.onupgradeneeded = (event: IDBVersionChangeEvent) => {\n const db = (event.target as IDBOpenDBRequest).result;\n if (db.objectStoreNames.contains(store.name)) {\n // 存在表store\n }\n\n // 遍历store,设置数据表结构\n db.createObjectStore(store.name, {\n keyPath: store.key,\n });\n };\n request.onerror = () => Promise.reject(new Error('初始化数据库失败'));\n request.onsuccess = () => Promise.resolve('初始化数据库成功');\n }\n\n openDB() {\n const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;\n const request = indexeddb.open(this.name, this.version);\n\n return promisify(request, 'event');\n }\n\n /**\n * 新增数据\n * @param storeName 表名\n * @param data 添加的数据\n */\n async insertData(storeName: string, data: any) {\n try {\n // console.time('insertData');\n const db = await this.openDB();\n const transaction = db.transaction(storeName, 'readwrite');\n const objectStore = transaction.objectStore(storeName);\n\n objectStore.add(data);\n // console.timeEnd('insertData');\n\n return new Promise((resolve, reject) => {\n transaction.oncomplete = function () {\n // console.timeEnd('insertData');\n resolve('所有数据插入成功');\n };\n\n transaction.onerror = function (event) {\n reject(event);\n };\n });\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n /**\n * 更新数据\n * @param props 查询数据的参数以及要修改的值的参数\n */\n async addData(data: DataType, isCover?: boolean) {\n try {\n // console.log('addData');\n const storeName = store.name; // 表名\n const oldData = await this.getData(data.service);\n const objectStore = await this.getObjectStore(storeName, 'readwrite');\n\n if (!oldData) {\n // 不存在则新建\n this.insertData(storeName, data);\n }\n // 存在则更新\n let newData: any = { ...oldData, ...data };\n if (isCover) newData = data; // 需要覆盖之前内容\n // 把更新过的对象放回数据库\n const requestUpdate = objectStore.put(newData);\n // console.timeEnd('updateData');\n return promisify(requestUpdate);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n /**\n * 获取数据库的值,返回查询到的第一项\n * @param storeName 表名/存储对象的键\n * @param cursorKey key\n * @param cursorValue 要查询索引的值\n */\n async getData(seviceName: string) {\n try {\n // console.time('getData');\n const storeName = store.name;\n const objectStore = await this.getObjectStore(storeName);\n const request = objectStore.get(seviceName);\n // console.timeEnd('getData');\n return promisify(request, 'request');\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async getAllData(storeName: string) {\n try {\n // console.time('getAllData');\n const objectStore = await this.getObjectStore(storeName);\n const request = objectStore.getAll();\n const result = await promisify(request, 'request');\n // console.timeEnd('getAllData');\n return result ? result : [];\n } catch (error) {\n return Promise.reject(error);\n }\n }\n /**\n * 获取对象仓库\n * @param storeName 表名\n * @param type readonly 或者 readwrite等\n */\n private async getObjectStore(storeName: string, type?: any): Promise {\n try {\n const db = await this.openDB();\n return db.transaction(storeName, type).objectStore(storeName);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n// console.log('testDDB')\n// const indexDB = new IndexedDB({store});\n// indexDB.addData({service: 'cvm', instance: [{ins: 23}]}).then(e=>{\n// indexDB.getData('cvm').then(dd=>{console.log({dd})})\n// })\nexport default new IndexedDB({ store });\n","import indexedDB from './indexedDB';\nclass InstanceStorage {\n // prefix = 'Datasource';\n // storageKey = 'grafanaInstanceCache';\n insKey = 'Instances';\n cacheWay = '';\n constructor() {}\n setInstance(service: string, value: Record) {\n return this.setStorage(service, this.insKey, value, true);\n }\n async getInstance(service: string) {\n return this.getStorage(service, this.insKey);\n }\n setExtraStorage(service: string, Ekey: string, EValue: Record) {\n return this.setStorage(service, Ekey, EValue, false);\n }\n async getExtraStorage(service: string, Ekey: string) {\n return this.getStorage(service, Ekey);\n }\n private setStorage(serviceKey: string, key: string, value: Record, isCover = false) {\n // console.log('set', serviceKey, key, value);\n return indexedDB.addData(\n {\n service: serviceKey,\n [key]: value,\n },\n isCover\n );\n }\n // 获取到模版变量信息\n private async getStorage(service: string, key?: string) {\n const storage = await indexedDB.getData(service);\n // console.log('get', key, storage);\n return key ? storage?.[key] : storage;\n }\n}\nexport default new InstanceStorage();\n","import _ from 'lodash';\n\nexport const CKAFKAQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstanceId',\n cnDescriptor: '按照实例ID过滤',\n link: '',\n type: 'input',\n },\n {\n key: 'SearchWord',\n enDescriptor: 'SearchWord',\n cnDescriptor: '按照实例名称过滤,支持模糊查询',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '匹配标签key值',\n link: '',\n type: 'input',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例的状态,不填默认返回全部',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 0 },\n { text: '运行中', value: 1 },\n { text: '删除中', value: 2 },\n ],\n },\n];\n\nconst CKAFKA_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n topicId: '',\n topicName: '',\n consumerGroup: '',\n partition: '',\n queries: {\n Offset: 0,\n Limit: 10,\n Status: [],\n InstanceId: '',\n SearchWord: '',\n TagKey: '',\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst CKAFKAInstanceAliasList = ['InstanceId', 'InstanceName'];\nconst CKAFKATopicAliasList = ['TopicId', 'TopicName'];\n// 保存在模板变量value中的key\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n topicId: 'TopicId',\n groupName: 'GroupName',\n partition: 'PartitionId',\n};\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst CKAFKAInvalidDemensions = new Proxy(\n {\n topicId: 'TopicId',\n topicName: 'TopicName',\n consumerGroup: 'GroupName',\n partition: 'PartitionId',\n },\n {\n get: (obj, prop) => {\n if (String(prop).toLocaleLowerCase() === 'instanceid') return 'InstanceId';\n return obj[prop];\n },\n }\n);\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n TopicList: 'TopicList',\n GroupList: 'GroupList',\n PartitionList: 'PartitionList',\n};\n\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n TopicId: {\n dim_KeyInStorage: keyInStorage.TopicList,\n dim_KeyInTarget: 'topicId',\n dim_KeyInMap: templateQueryIdMap.topicId,\n },\n // topicName和topicId是同一个storage中的source,所以根据topicId帅选\n TopicName: {\n dim_KeyInStorage: keyInStorage.TopicList,\n dim_KeyInTarget: 'topicId',\n dim_KeyInMap: templateQueryIdMap.topicId,\n },\n GroupName: {\n dim_KeyInStorage: keyInStorage.GroupList,\n dim_KeyInTarget: 'consumerGroup',\n dim_KeyInMap: templateQueryIdMap.groupName,\n },\n PartitionId: {\n dim_KeyInStorage: keyInStorage.PartitionList,\n dim_KeyInTarget: 'partition',\n dim_KeyInMap: templateQueryIdMap.partition,\n },\n};\nexport default CKAFKA_STATE;\nexport {\n CKAFKAInstanceAliasList,\n CKAFKATopicAliasList,\n CKAFKAInvalidDemensions,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n GetInstanceQueryParams as CKAFKAGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/LOADBALANCE';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'loadBalanceQuery';\n\nconst ForwardTypes = [\n { text: '通用的负载均衡', value: 1 },\n { text: '传统的负载均衡', value: 0 },\n];\n\nconst OrderBy = [\n { text: 'LoadBalancerName', value: 'LoadBalancerName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'Domain', value: 'Domain' },\n { text: 'LoadBalancerType', value: 'LoadBalancerType' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\n\nconst WithRs = [\n { text: '没有绑定后端服务', value: 0 },\n { text: '绑定后端服务', value: 1 },\n { text: '查询全部', value: -1 },\n];\nconst LOADBALANCEFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',\n link: '',\n type: 'inputNumber',\n min: 1,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancer ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancer Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'Forward',\n enDescriptor: 'Forward',\n cnDescriptor: '负载均衡实例类型',\n link: '',\n type: 'select',\n list: ForwardTypes,\n },\n {\n key: 'Domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',\n link: '',\n type: 'input',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancer Vips',\n cnDescriptor: '负载均衡实例的 VIP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivate Ips',\n cnDescriptor: '负载均衡绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPublicIps',\n enDescriptor: 'BackendPublic Ips',\n cnDescriptor: '负载均衡绑定的后端服务的外网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '负载均衡实例所属的项目 ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'VpcId',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '负载均衡实例所属私有网络',\n link: '',\n type: 'input',\n },\n {\n key: 'SecurityGroup',\n enDescriptor: 'Security Group',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'input',\n },\n {\n key: 'MasterZone',\n enDescriptor: 'Master Zone',\n cnDescriptor: '主可用区ID',\n link: '',\n type: 'input',\n },\n {\n key: 'WithRs',\n enDescriptor: 'WithRs',\n cnDescriptor: '负载均衡是否绑定后端服务',\n link: '',\n type: 'select',\n list: WithRs,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderType,\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',\n namespace,\n fieldDescriptor: LOADBALANCEFieldsDescriptor,\n};\nconst LBFields = {\n LoadBalancerIds: [],\n Forward: undefined,\n LoadBalancerName: '',\n Domain: '',\n LoadBalancerVips: [],\n BackendPublicIps: [],\n BackendPrivateIps: [],\n Limit: 20,\n Offset: 0,\n ProjectId: undefined,\n WithRs: {},\n VpcId: '',\n SecurityGroup: '',\n MasterZone: '',\n OrderBy: {},\n OrderType: {},\n};\n\nconst LOADBALANCE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n Port: '',\n Protocol: '',\n listener: '',\n servers: '',\n serverPort: '',\n // listenerAlias: 'ListenerId',\n queries: LBFields,\n};\n\n// function GetInstanceQueryParams(queries: any = {}) {\n// const params: any = {};\n// if (!_.isEmpty(queries)) {\n// params.Limit = _.get(queries, 'Limit', 20) || 20;\n// params.Offset = _.get(queries, 'Offset', 0) || 0;\n// queries = _.omit(queries, ['Offset', 'Limit']);\n// _.forEach(queries, (item: any, key) => {\n// if (_.isArray(item)) {\n// item = _.compact(item);\n// if (item.length > 0) {\n// params[key] = _.uniq(item);\n// }\n// } else if (_.isObject(item)) {\n// if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n// params[key] = _.get(item, 'value');\n// }\n// } else if (_.isNumber(item) || !_.isEmpty(item)) {\n// params[key] = item;\n// }\n// });\n// }\n// return params;\n// }\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nconst InstanceAliasList = ['LoadBalancerId', 'LoadBalancerName', 'LoadBalancerVips'];\nconst LOADBALANCEListenerAliasList = ['ListenerId', 'ListenerName', 'Port'];\nconst LOADBALANCEServerAliasList = ['PrivateIpAddresses', 'InstanceId'];\nconst LOADBALANCEVALIDDIMENSIONS = {\n vip: 'LoadBalancerVips',\n // vpcId: 'NumericalVpcId',\n loadBalancerPort: 'Port',\n protocol: 'Protocol',\n lanIp: 'PrivateIpAddresses',\n port: 'ServerPort',\n};\n// 对于ipv6类型,vip应该取AddressIPv6。\nconst CANDIATEDIMENSIONS = {\n LoadBalancerVips: 'AddressIPv6',\n};\n// dimensionObject[item] = { Name: item, Value: '' };\n// const LOADBALANCE_INSTANCE_DIMENSIONOBJECTS = {\n// vip: { Name: 'vip', Value: '' },\n// };\n// const LOADBALANCE_LISTENER_DIMENSIONOBJECTS = {\n// vip: { Name: 'vip', Value: '' },\n// loadBalancerPort: { Name: 'loadBalancerPort', Value: '' },\n// protocol: { Name: 'protocol', Value: '' },\n// };\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n listener: 'ListenerId',\n servers: 'PrivateIpAddresses',\n port: 'Port',\n};\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n listener: 'ListenerList',\n servers: 'ServersList',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n Port: {\n dim_KeyInStorage: keyInStorage.listener,\n dim_KeyInTarget: 'listener',\n dim_KeyInMap: templateQueryIdMap.listener,\n },\n Protocol: {\n dim_KeyInStorage: keyInStorage.listener,\n dim_KeyInTarget: 'listener',\n dim_KeyInMap: templateQueryIdMap.listener,\n },\n PrivateIpAddresses: {\n dim_KeyInStorage: keyInStorage.servers,\n dim_KeyInTarget: 'servers',\n dim_KeyInMap: templateQueryIdMap.servers,\n },\n ServerPort: {\n dim_KeyInStorage: keyInStorage.servers,\n dim_KeyInTarget: 'serverPort',\n dim_KeyInIns: 'Port',\n dim_KeyInMap: templateQueryIdMap.port,\n },\n};\nexport default LOADBALANCE_STATE;\nexport {\n LOADBALANCEFieldsDescriptor,\n InstanceAliasList,\n LOADBALANCEListenerAliasList,\n LOADBALANCEServerAliasList,\n LOADBALANCEVALIDDIMENSIONS,\n templateQueryIdMap,\n CANDIATEDIMENSIONS,\n // LOADBALANCE_LISTENER_DIMENSIONOBJECTS,\n // LOADBALANCE_INSTANCE_DIMENSIONOBJECTS,\n queryMonitorExtraConfg,\n keyInStorage,\n queryEditorConfig,\n namespace,\n queryEditorName,\n GetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/TDMQ';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tdmqQuery';\n\nconst TDMQInvalidDemensions = {\n tenantId: 'ClusterId',\n tenant: 'ClusterId',\n topicName: 'TopicName',\n environmentId: 'EnvironmentId',\n};\n\n// 需和文件名对应\nconst TDMQInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nconst templateQueryIdMap = {\n instance: 'ClusterId',\n topicName: 'TopicName',\n environmentId: 'EnvironmentId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n];\n\nconst CDNPROVINCE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n topicName: '',\n environmentId: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n if (item.Dimensions.indexOf('topicName') !== -1 && item.Dimensions.indexOf('environmentId') === -1) {\n item.Dimensions.push('environmentId');\n }\n });\n return metricTmp;\n}\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n topicName: 'topicName',\n environmentId: 'environmentId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n TopicName: {\n dim_KeyInStorage: keyInStorage.topicName,\n dim_KeyInTarget: 'topicName',\n dim_KeyInMap: templateQueryIdMap.topicName,\n },\n EnvironmentId: {\n dim_KeyInStorage: keyInStorage.environmentId,\n dim_KeyInTarget: 'environmentId',\n dim_KeyInMap: templateQueryIdMap.environmentId,\n },\n};\nexport default CDNPROVINCE_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryEditorName,\n queryMonitorExtraConfg,\n keyInStorage,\n modifyDimensons,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/GSE';\nconst fleetId = 'FleetId'; // 为和cvm其他产品保持一致,即将string[]改为Array<{fleetid: xxx}>,在此声明key\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'gseQuery';\n\nconst GSEInvalidDemensions = {\n instanceid: 'InstanceId',\n fleetid: 'FleetId',\n queuename: 'Name',\n};\n\n// 需和文件名对应\nconst GSEInstanceAliasList = ['InstanceId', 'PrivateIpAddress', 'IpAddress'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n Name: 'Name',\n FleetId: fleetId,\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n fleet: 'fleet', // 实例队列\n queue: 'queueName', // 会话队列\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n FleetId: {\n dim_KeyInStorage: keyInStorage.fleet,\n dim_KeyInTarget: 'FleetId',\n dim_KeyInMap: templateQueryIdMap.FleetId,\n },\n Name: {\n dim_KeyInStorage: keyInStorage.queue,\n dim_KeyInTarget: 'Name',\n dim_KeyInMap: templateQueryIdMap.Name,\n },\n};\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst GSEFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceId: '',\n FleetId: '',\n};\n\nconst GSEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'resourceName',\n cnDescriptor: '资源名称',\n link: '',\n type: 'input',\n },\n {\n key: 'FleetId',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1165/42604',\n namespace,\n fieldDescriptor: GSEFilterFieldsDescriptor,\n};\n\nconst GSE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n FleetId: '', // 服务器实例\n Name: '', // 队列名称\n queries: GSEFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n // { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n // { value: 'ap-shanghai-fsi' },\n // { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n // { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((v) => GSEInvalidDemensions[v] || v);\n });\n return metricTmp;\n}\nexport default GSE_STATE;\nexport {\n GSEFilterFieldsDescriptor,\n templateQueryIdMap,\n GSEInstanceAliasList,\n GSEInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n queryMonitorExtraConfg,\n fleetId,\n keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as GSEGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { isArray, cloneDeep } from 'lodash';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/TDMYSQL';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'dcdbQuery';\n\nconst DCDBInvalidDemensions = {\n nodeid: 'NodeId',\n instanceid: 'InstanceId',\n shardid: 'ShardInstanceId',\n ShardId: 'ShardInstanceId',\n};\n\n// 需和文件名对应\nconst DCDBInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n NodeId: 'NodeId',\n ShardInstanceId: 'ShardInstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst DCDBFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceIds: [],\n SearchName: '',\n SearchKey: '',\n ProjectIds: [],\n // IsFilterVpc\n VpcId: '',\n SubnetId: '',\n\n OrderBy: {},\n OrderByType: {},\n // IsFilterExcluster: {},\n ExclusterType: {},\n\n ExclusterIds: [],\n FilterInstanceType: {},\n};\n\nconst DCDBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '实例 ID 查询',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'SearchName',\n enDescriptor: 'SearchName',\n cnDescriptor: '搜索的字段名,当前支持的值有:instancename、vip、all',\n link: '',\n type: 'input',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '搜索的关键字',\n link: '',\n type: 'input',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '按项目 ID 查询',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '私有网络的子网 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: 'projectId', value: 'projectId' },\n { text: 'createtime', value: 'createtime' },\n { text: 'instancename', value: 'instancename' },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'select',\n list: [\n { text: 'desc', value: 'desc' },\n { text: 'asc', value: 'asc' },\n ],\n },\n {\n key: 'ExclusterType',\n enDescriptor: 'ExclusterType',\n cnDescriptor: '集群类型',\n link: '',\n type: 'select',\n list: [\n { text: '非独享集群', value: 1 },\n { text: '独享集群', value: 2 },\n { text: '全部', value: 0 },\n { text: 'asc', value: 'asc' },\n ],\n },\n {\n key: 'ExclusterIds',\n enDescriptor: 'ExclusterIds',\n cnDescriptor: '独享集群ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'FilterInstanceType',\n enDescriptor: 'FilterInstanceType',\n cnDescriptor: '实例类型过滤',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '独享实例', value: 1 },\n { text: '主实例', value: 2 },\n { text: '灾备实例', value: 3 },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/557/16140',\n namespace,\n fieldDescriptor: DCDBFilterFieldsDescriptor,\n};\n\nconst DCDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n ShardId: '',\n NodeId: '',\n queries: DCDBFilterFields,\n};\nconst modifyMetricConf = {\n shardid: 'ShardId',\n instanceid: 'InstanceId',\n nodeid: 'NodeId',\n};\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((v) => modifyMetricConf[v] || v);\n });\n return metricTmp;\n}\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params = instanceQueryParamsBaseParse(queries, false);\n // 特殊处理\n params.IsFilterVpc = false;\n params.IsFilterExcluster = false;\n if (params.VpcId || params.SubnetId) params.IsFilterVpc = true;\n if (params.ExclusterType) params.IsFilterExcluster = true;\n if (isArray(params.FilterInstanceType)) params.FilterInstanceType = params.FilterInstanceType.join(',');\n return params;\n}\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n NodeId: 'NodeId',\n ShardInstanceId: 'ShardId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NodeId: {\n dim_KeyInStorage: keyInStorage.NodeId,\n dim_KeyInTarget: 'NodeId',\n dim_KeyInMap: templateQueryIdMap.NodeId,\n },\n ShardInstanceId: {\n dim_KeyInStorage: keyInStorage.ShardInstanceId,\n dim_KeyInTarget: 'ShardId',\n dim_KeyInMap: templateQueryIdMap.ShardInstanceId,\n },\n};\n// 和其他产品的展示保持一致\nconst regionSupported = [\n { text: '华北地区(北京)', value: 'ap-beijing' },\n { text: '西南地区(成都)', value: 'ap-chengdu' },\n { text: '西南地区(重庆)', value: 'ap-chongqing' },\n { text: '华南地区(广州)', value: 'ap-guangzhou' },\n { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n { text: '华东地区(南京)', value: 'ap-nanjing' },\n { text: '华东地区(上海)', value: 'ap-shanghai' },\n { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n { text: '亚太东北(东京)', value: 'ap-tokyo' },\n { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n { text: '北美地区(多伦多)', value: 'na-toronto' },\n];\nexport default DCDB_STATE;\nexport {\n DCDBFilterFieldsDescriptor,\n templateQueryIdMap,\n DCDBInstanceAliasList,\n DCDBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n keyInStorage,\n modifyDimensons,\n queryMonitorExtraConfg,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as DCDBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nconst namespace = 'QCE/REDIS_MEM';\nconst BillingMode = [\n { text: '按量计费', value: 'postpaid' },\n { text: '包年包月', value: 'prepaid' },\n];\n\nconst AutoRenew = [\n { text: '手动续费', value: 0 },\n { text: '自动续费', value: 1 },\n { text: '明确不自动续费', value: 2 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '已隔离', value: -2 },\n { text: '待删除', value: -3 },\n];\n\nconst TypeVersion = [\n { text: '单机版', value: 1 },\n { text: '主从版', value: 2 },\n { text: '集群版', value: 3 },\n];\n\nconst OrderBy = [\n { text: 'projectId', value: 'projectId' },\n { text: 'instancename', value: 'instancename' },\n { text: 'createtime', value: 'createtime' },\n { text: 'type', value: 'type' },\n { text: 'curDeadline', value: 'curDeadline' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\nconst Type = [\n { text: 'Redis老集群版', value: 1 },\n { text: 'Redis 2.8主从版', value: 2 },\n { text: 'CKV主从版', value: 3 },\n { text: 'CKV集群版', value: 4 },\n { text: 'Redis 2.8单机版', value: 5 },\n { text: 'Redis 4.0主从版', value: 6 },\n { text: 'Redis 4.0集群版', value: 7 },\n { text: 'Redis5.0主从版', value: 8 },\n { text: 'Redis5.0集群版', value: 9 },\n];\n\nconst RedisFields = {\n InstanceId: '',\n OrderBy: '',\n OrderType: null,\n VpcIds: [],\n SubnetIds: [],\n ProjectIds: [],\n SearchKey: '',\n InstanceName: '',\n UniqVpcIds: [],\n UniqSubnetIds: [],\n Status: [],\n TypeVersion: null,\n EngineName: '',\n AutoRenew: null,\n BillingMode: '',\n Type: null,\n};\n\nconst RedisMemFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstancesId',\n cnDescriptor: '实例id',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderType',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderType,\n },\n {\n key: 'VpcIds',\n enDescriptor: 'VpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'SubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '项目ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '查找实例的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'InstanceName',\n enDescriptor: 'InstanceName',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'UniqVpcIds',\n enDescriptor: 'UniqVpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'UniqSubnetIds',\n enDescriptor: 'UniqSubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'TypeVersion',\n enDescriptor: 'TypeVersion',\n cnDescriptor: '类型版本',\n link: '',\n type: 'select',\n list: TypeVersion,\n },\n {\n key: 'EngineName',\n enDescriptor: 'EngineName',\n cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenew',\n enDescriptor: 'AutoRenew',\n cnDescriptor: '续费模式',\n multiple: true,\n type: 'select',\n list: AutoRenew,\n },\n {\n key: 'BillingMode',\n enDescriptor: 'BillingMode',\n cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',\n link: '',\n type: 'select',\n list: BillingMode,\n },\n {\n key: 'Type',\n enDescriptor: 'Type',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: Type,\n },\n];\n\nconst REDISMEM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...RedisFields },\n rnodeid: '',\n pnodeid: '',\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst REDISMEMInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];\n\nconst RedisMemInvalidDemensions = {\n instanceid: 'InstanceId',\n rnodeid: 'rnodeid',\n pnodeid: 'pnodeid',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n rnodeid: 'rnodeid',\n pnodeid: 'pnodeid',\n};\n\nconst NodeType = ['Redis', 'Proxy'];\n\nexport default REDISMEM_STATE;\nexport {\n RedisMemFieldsDescriptor,\n RedisMemInvalidDemensions,\n REDISMEMInstanceAliasList,\n templateQueryIdMap,\n namespace,\n NodeType,\n GetInstanceQueryParams as REDISMEMGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/RABBITMQ';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tdmqQuery';\n\nconst TDMQInvalidDemensions = {\n instanceid: 'InstanceId',\n node: 'NodeName',\n};\n\n// 需和文件名对应\nconst TDMQRABBITMQInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n node: 'NodeName',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n];\n\nconst TDMQ_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n node: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n node: 'NodeName',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NodeName: {\n dim_KeyInStorage: keyInStorage.node,\n dim_KeyInTarget: 'node',\n dim_KeyInMap: templateQueryIdMap.node,\n },\n};\nexport default TDMQ_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQRABBITMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryEditorName,\n queryMonitorExtraConfg,\n keyInStorage,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/ROCKETMQ';\n\nconst TDMQInvalidDemensions = {\n tenant: 'ClusterId',\n namespace: 'NamespaceId',\n group: 'Name',\n};\n\n// 需和文件名对应\nconst TDMQROCKETMQInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nconst templateQueryIdMap = {\n instance: 'ClusterId',\n namespace: 'NamespaceId',\n group: 'Name',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: true,\n ClusterIdList: [''],\n Filters: {\n includeVip: { text: '是', value: 'true' },\n },\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'includeVip',\n enDescriptor: 'includeVip',\n cnDescriptor: '包含专享集群',\n link: '',\n type: 'select',\n list: [\n { text: '是', value: 'true' },\n { text: '否', value: 'false' },\n ],\n },\n];\n\nconst TDMQ_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n namespace: '',\n group: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.ClusterIdList)) {\n const ClusterIdList = _.compact(queries.ClusterIdList);\n if (_.uniq(ClusterIdList).length > 0) {\n params.ClusterIdList = _.uniq(ClusterIdList).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: [_.get(item, 'value', [])].slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n namespace: 'NamespaceId',\n group: 'Name',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NamespaceId: {\n dim_KeyInStorage: keyInStorage.namespace,\n dim_KeyInTarget: 'namespace',\n dim_KeyInMap: templateQueryIdMap.namespace,\n },\n Name: {\n dim_KeyInStorage: keyInStorage.group,\n dim_KeyInTarget: 'group',\n dim_KeyInMap: templateQueryIdMap.group,\n },\n};\nexport default TDMQ_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQROCKETMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryMonitorExtraConfg,\n keyInStorage,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQROCKETMQGetInstanceQueryParams,\n};\n","import { t } from '../../locale';\n// name (产品名称), service(对应的真实service)\ninterface ServiceType {\n service: string;\n label: string;\n namespace: string;\n href: string;\n groupName?: string;\n hideRegion?: boolean;\n}\nconst SERVICES: ServiceType[] = [\n {\n service: 'cvm',\n get label() {\n return t('CVM');\n },\n namespace: 'QCE/CVM',\n href: 'https://cloud.tencent.com/document/api/213/15688',\n },\n {\n service: 'cdb',\n get label() {\n return t('CDB');\n },\n namespace: 'QCE/CDB',\n href: 'https://cloud.tencent.com/document/api/236/15829',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'mongoDB',\n get label() {\n return t('CMONGO');\n },\n namespace: 'QCE/CMONGO',\n href: 'https://cloud.tencent.com/document/api/240/38568',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'postgres',\n get label() {\n return t('POSTGRES');\n },\n namespace: 'QCE/POSTGRES',\n href: 'https://cloud.tencent.com/document/product/248/45105',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'redis',\n get label() {\n return t('REDIS');\n },\n namespace: 'QCE/REDIS',\n href: 'https://cloud.tencent.com/document/product/248/45110',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'redisMem',\n get label() {\n return t('REDIS_MEM');\n },\n namespace: 'QCE/REDIS_MEM',\n href: 'https://cloud.tencent.com/document/product/248/49729',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'sqlserver',\n get label() {\n return t('SQLSERVER');\n },\n namespace: 'QCE/SQLSERVER',\n href: 'https://cloud.tencent.com/document/product/248/45146',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'cynosdbMysql',\n get label() {\n return t('CYNOSDB_MYSQL');\n },\n namespace: 'QCE/CYNOSDB_MYSQL',\n href: 'https://cloud.tencent.com/document/product/248/45106',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'tcaplus',\n get label() {\n return t('TCAPLUS');\n },\n namespace: 'QCE/TCAPLUS',\n href: 'https://cloud.tencent.com/document/product/248/45107',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'dcdb',\n get label() {\n return t('TDMYSQL');\n },\n namespace: 'QCE/TDMYSQL',\n href: 'https://cloud.tencent.com/document/product/248/45108',\n },\n {\n service: 'pcx',\n get label() {\n return t('PCX');\n },\n namespace: 'QCE/PCX',\n href: 'https://cloud.tencent.com/document/product/215/5181',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'bwp',\n get label() {\n return t('BWP');\n },\n namespace: 'QCE/BWP',\n href: 'https://cloud.tencent.com/document/api/215/19209',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'natGateway',\n get label() {\n return t('NAT_GATEWAY');\n },\n namespace: 'QCE/NAT_GATEWAY',\n href: 'https://cloud.tencent.com/document/api/215/36034',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpngw',\n get label() {\n return t('VPNGW');\n },\n namespace: 'QCE/VPNGW',\n href: 'https://cloud.tencent.com/document/product/248/45070',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpnx',\n get label() {\n return t('VPNX');\n },\n namespace: 'QCE/VPNX',\n href: 'https://cloud.tencent.com/document/product/248/45071',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'dcg',\n get label() {\n return t('DCG');\n },\n namespace: 'QCE/DCG',\n href: 'https://cloud.tencent.com/document/product/248/45072',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'ceipSummary',\n get label() {\n return t('CEIP_SUMMARY');\n },\n namespace: 'QCE/CEIP_SUMMARY',\n href: 'https://cloud.tencent.com/document/product/248/50381',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpcNetDetect',\n get label() {\n return t('VPC_NET_DETECT');\n },\n namespace: 'QCE/VPC_NET_DETECT',\n href: 'https://cloud.tencent.com/document/product/248/50384',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vbc',\n get label() {\n return t('VBC');\n },\n namespace: 'QCE/VBC',\n href: 'https://cloud.tencent.com/document/product/248/45073',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'lb',\n get label() {\n return t('LB');\n },\n namespace: 'QCE/LB',\n href: 'https://cloud.tencent.com/document/product/248/45099',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'lbPublic',\n get label() {\n return t('LB_PUBLIC');\n },\n namespace: 'QCE/LB_PUBLIC',\n href: 'https://cloud.tencent.com/document/product/248/51898',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'lbPrivate',\n get label() {\n return t('LB_PRIVATE');\n },\n namespace: 'QCE/LB_PRIVATE',\n href: 'https://cloud.tencent.com/document/product/248/51899',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'loadBalance',\n get label() {\n return t('LOADBALANCE');\n },\n namespace: 'QCE/LOADBALANCE',\n href: 'https://cloud.tencent.com/document/product/248/51901',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'vClb',\n get label() {\n return `${t('cloud_load_balancer')}(${t('lite')})`;\n },\n namespace: 'QCE/V_CLB',\n href: 'https://cloud.tencent.com/document/product/248/51901',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('lite')})`;\n },\n },\n {\n service: 'cdn',\n get label() {\n return t('CDN');\n },\n namespace: 'QCE/CDN',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50386',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'cdnProvince',\n get label() {\n return t('CDN_LOG_DATA');\n },\n namespace: 'QCE/CDN_LOG_DATA',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50388',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'ovCdn',\n get label() {\n return t('OV_CDN');\n },\n namespace: 'QCE/OV_CDN',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50387',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'scf',\n get label() {\n return t('SCF_V2');\n },\n namespace: 'QCE/SCF_V2',\n href: 'https://cloud.tencent.com/document/product/248/45130',\n },\n {\n service: 'cfs',\n get label() {\n return t('CFS');\n },\n namespace: 'QCE/CFS',\n href: 'https://cloud.tencent.com/document/product/248/45143',\n },\n {\n service: 'cos',\n get label() {\n return t('COS');\n },\n namespace: 'QCE/COS',\n href: 'https://cloud.tencent.com/document/product/248/45140',\n },\n {\n service: 'ckafka',\n get label() {\n return t('CKAFKA');\n },\n namespace: 'QCE/CKAFKA',\n href: 'https://cloud.tencent.com/document/product/248/45121',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'cmq',\n get label() {\n return t('CMQ');\n },\n namespace: 'QCE/CMQ',\n href: 'https://cloud.tencent.com/document/product/248/45114',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'cmqTopic',\n get label() {\n return t('CMQTOPIC');\n },\n namespace: 'QCE/CMQTOPIC',\n href: 'https://cloud.tencent.com/document/product/248/45113',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmq',\n get label() {\n return t('TDMQ');\n },\n namespace: 'QCE/TDMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmqRocketmq',\n get label() {\n return t('TDMQ_ROCKETMQ');\n },\n namespace: 'QCE/ROCKETMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmqRabbitmq',\n get label() {\n return t('TDMQ_RABBITMQ');\n },\n namespace: 'QCE/RABBITMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'dcx',\n get label() {\n return t('DCX');\n },\n namespace: 'QCE/DCX',\n href: 'https://cloud.tencent.com/document/product/248/45101',\n get groupName() {\n return t('direct_connect');\n },\n },\n {\n service: 'dc',\n get label() {\n return t('DC');\n },\n namespace: 'QCE/DC',\n href: 'https://cloud.tencent.com/document/product/248/45102',\n get groupName() {\n return t('direct_connect');\n },\n },\n {\n service: 'cpm',\n get label() {\n return t('CPM');\n },\n namespace: 'QCE/CPM',\n href: 'https://cloud.tencent.com/document/product/248/45881',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmPcx',\n get label() {\n return t('BM_PCX');\n },\n namespace: 'QCE/BM_PCX',\n href: 'https://cloud.tencent.com/document/product/248/45884',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmLb',\n get label() {\n return t('BM_LB');\n },\n namespace: 'QCE/BM_LB',\n href: 'https://cloud.tencent.com/document/product/248/45886',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmIntraLb',\n get label() {\n return t('BM_INTRA_LB');\n },\n namespace: 'QCE/BM_INTRA_LB',\n href: 'https://cloud.tencent.com/document/product/248/45885',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'ces',\n get label() {\n return t('CES');\n },\n namespace: 'QCE/CES',\n href: 'https://cloud.tencent.com/document/product/248/45129',\n },\n {\n service: 'mrHDFS',\n get label() {\n return `${t('elastic_mapReduce')}(HDFS)`;\n },\n namespace: 'QCE/TXMR_HDFS',\n href: 'https://cloud.tencent.com/document/product/248/44797',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrHBASE',\n get label() {\n return `${t('elastic_mapReduce')}(HBASE)`;\n },\n namespace: 'QCE/TXMR_HBASE',\n href: 'https://cloud.tencent.com/document/product/248/45567',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrHIVE',\n get label() {\n return `${t('elastic_mapReduce')}(HIVE)`;\n },\n namespace: 'QCE/TXMR_HIVE',\n href: 'https://cloud.tencent.com/document/product/248/45569',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrNODE',\n get label() {\n return `${t('elastic_mapReduce')}(NODE)`;\n },\n namespace: 'QCE/TXMR_NODE',\n href: 'https://cloud.tencent.com/document/product/248/45570',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrPRESTO',\n get label() {\n return `${t('elastic_mapReduce')}(PRESTO)`;\n },\n namespace: 'QCE/TXMR_PRESTO',\n href: 'https://cloud.tencent.com/document/product/248/45571',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrSPARK',\n get label() {\n return `${t('elastic_mapReduce')}(SPARK)`;\n },\n namespace: 'QCE/TXMR_SPARK',\n href: 'https://cloud.tencent.com/document/product/248/45572',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrYARN',\n get label() {\n return `${t('elastic_mapReduce')}(YARN)`;\n },\n namespace: 'QCE/TXMR_YARN',\n href: 'https://cloud.tencent.com/document/product/248/45573',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrZOOKEEPER',\n get label() {\n return `${t('elastic_mapReduce')}(ZOOKEEPER)`;\n },\n namespace: 'QCE/TXMR_ZOOKEEPER',\n href: 'https://cloud.tencent.com/document/product/248/45574',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'cbs',\n get label() {\n return t('BLOCK_STORAGE');\n },\n namespace: 'QCE/BLOCK_STORAGE',\n href: 'https://cloud.tencent.com/document/product/362/2345',\n },\n {\n service: 'apigateway',\n get label() {\n return t('APIGATEWAY');\n },\n namespace: 'QCE/APIGATEWAY',\n href: 'https://cloud.tencent.com/document/product/248/45127',\n },\n {\n service: 'qaap',\n get label() {\n return t('QAAP');\n },\n namespace: 'QCE/QAAP',\n href: 'https://cloud.tencent.com/document/product/608',\n },\n {\n service: 'ecm',\n get label() {\n return t('ECM');\n },\n hideRegion: true,\n namespace: 'QCE/ECM',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'ecmBlockStorage',\n get label() {\n return t('ECM_BLOCK_STORAGE');\n },\n hideRegion: true,\n namespace: 'QCE/ECM_BLOCK_STORAGE',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'ecmLb',\n get label() {\n return t('ECM_LB');\n },\n hideRegion: true,\n namespace: 'QCE/ECM_LB',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'gse',\n get label() {\n return t('GSE');\n },\n namespace: 'QCE/GSE',\n href: 'https://cloud.tencent.com/document/product/1165',\n },\n {\n service: 'cls',\n get label() {\n return t('CLS');\n },\n namespace: 'QCE/CLS',\n href: 'https://cloud.tencent.com/document/product/614',\n },\n {\n service: 'tke',\n get label() {\n return t('TKE');\n },\n namespace: 'QCE/TKE2',\n href: 'https://cloud.tencent.com/document/product/457',\n },\n {\n service: 'ecdn',\n get label() {\n return t('ECDN');\n },\n namespace: 'QCE/DSA',\n href: 'https://cloud.tencent.com/document/product/570',\n },\n // {\n // service: 'lighthouse',\n // label: '轻量应用服务器(LIGHTHOUSE)',\n // namespace: 'QCE/LIGHTHOUSE',\n // href: 'https://cloud.tencent.com/document/product/1207',\n // },\n // {\n // service: 'tsf',\n // label: ' 微服务平台(TSF)',\n // namespace: 'QCE/TSF',\n // href: 'https://cloud.tencent.com/document/product/649',\n // },\n {\n service: 'waf',\n get label() {\n return t('WAF');\n },\n // hideRegion: true,\n namespace: 'QCE/WAF',\n href: 'https://cloud.tencent.com/document/product/627',\n },\n];\nconst Datasources = {};\nconst InitStates = {};\nconst InstanceAliasList = {};\nconst GetInstanceQueryParams = {};\n\n/**\n * 由于目录命名不规范,导致需要使用额外逻辑保证正确性。从目录到具体service的映射\n */\nconst hackModuleName = {\n // lb_loadBalance: 'loadBalance',\n postgresql: 'postgres',\n mongodb: 'mongoDB',\n clb: ['lbPrivate', 'lbPublic', 'loadBalance'],\n mr: ['mrHDFS', 'mrHBASE', 'mrHIVE', 'mrNODE', 'mrPRESTO', 'mrSPARK', 'mrYARN', 'mrZOOKEEPER'],\n};\n\nconst requireModule = (require as any).context('./', true, /^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$/);\n\nrequireModule.keys().forEach((filePath) => {\n let [, moduleName, fileName] = filePath.split('/');\n\n // hack: 这里是由于产品目录命名不规范,所以才会多这么一段代码\n moduleName = hackModuleName[moduleName] ?? moduleName;\n\n // 目录与模块的映射关系,不管是一对一还是一对多,均按数组进行统一处理\n [].concat(moduleName).forEach((module: string) => {\n // 这个service就是产品配置中的service,需要注意这里的service是根据目录名称算出来的,因此目录名称一定要和service对应\n const service = module.replace(/_([a-zA-Z])/g, (_, b) => b.toUpperCase());\n const prefix = service.toUpperCase(); // 命名规则\n\n // datasource\n if (fileName === 'datasource.ts') {\n const Cls = require(`${filePath}`).default;\n\n // 想办法为实例注入service,不能为prototype或则类本身注入,因为会造成互相污染,详尽mrDatasource\n Datasources[`${prefix}Datasource`] = class {\n constructor(...params) {\n const target = new Cls(...params, service);\n target.service = service;\n // eslint-disable-next-line no-constructor-return\n return target;\n }\n };\n }\n // query\n if (fileName === 'query.ts') {\n require(`${filePath}`);\n }\n // query_def\n if (fileName === 'query_def.ts') {\n const alias = `${prefix}InstanceAliasList`;\n const getParams = `${prefix}GetInstanceQueryParams`;\n\n const target = require(`${filePath}`);\n\n InitStates[service] = target.default; // FIXME: 这里需不需要深拷贝?\n InstanceAliasList[alias] = target[alias] ?? target['InstanceAliasList'];\n GetInstanceQueryParams[getParams] = target[getParams] ?? target['GetInstanceQueryParams'];\n }\n });\n});\n\nexport {\n InitStates as InitServiceState,\n SERVICES,\n Datasources,\n InstanceAliasList,\n GetInstanceQueryParams,\n // DefaultDimensions\n};\n\n// console.log(Datasources, InitStates, InstanceAliasList, GetInstanceQueryParams);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM_BLOCK_STORAGE';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'ecmBlockStorageQuery';\n\nconst ECMBLOCKSTORAGEInvalidDemensions = {\n uuid: 'UUID',\n diskId: 'DiskId',\n};\n\n// 需和文件名对应\nconst ECMBLOCKSTORAGEInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n diskId: 'DiskId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst ECMBLOCKSTORAGEFilterFields = {\n Limit: 20,\n Offset: 0,\n 'zone-name': [],\n 'module-id': [],\n 'module-name': [],\n 'instance-id': [],\n 'instance-name': [],\n 'ip-address': [],\n 'instance-uuid': [],\n 'instance-state': {},\n 'internet-service-provider': [],\n 'instance-family': [],\n 'image-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n};\n\nconst ECMBLOCKSTORAGEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'zone-name',\n enDescriptor: 'zone-name',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-id',\n enDescriptor: 'module-id',\n cnDescriptor: '模块ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-name',\n enDescriptor: 'module-name',\n cnDescriptor: '模块名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'instance-name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ip-address',\n enDescriptor: 'ip-address',\n cnDescriptor: '内网/公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-uuid',\n enDescriptor: 'instance-uuid',\n cnDescriptor: '实例uuid',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'instance-state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n ],\n },\n {\n key: 'internet-service-provider',\n enDescriptor: 'internet-service-provider',\n cnDescriptor: '公网IP所属的运营商',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-family',\n enDescriptor: 'instance-family',\n cnDescriptor: '机型family',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'image-id',\n enDescriptor: 'image-id',\n cnDescriptor: '镜像ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '实例的vpc id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '实例的subnet id',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',\n namespace,\n fieldDescriptor: ECMBLOCKSTORAGEFilterFieldsDescriptor,\n};\n\nconst ECMBLOCKSTORAGE_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n diskId: '',\n queries: ECMBLOCKSTORAGEFilterFields,\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n diskId: 'diskId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n DiskId: {\n dim_KeyInStorage: keyInStorage.diskId,\n dim_KeyInTarget: 'diskId',\n dim_KeyInMap: templateQueryIdMap.diskId,\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default ECMBLOCKSTORAGE_STATE;\nexport {\n ECMBLOCKSTORAGEFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMBLOCKSTORAGEInstanceAliasList,\n ECMBLOCKSTORAGEInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n keyInStorage,\n queryMonitorExtraConfg,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as ECMBLOCKSTORAGEGetInstanceQueryParams,\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__22__;","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/APIGATEWAY';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'apigatewayQuery';\n\nconst APIGATEWAYInvalidDemensions = {\n serviceId: 'ServiceId',\n environmentName: 'EnvironmentName',\n apiid: 'Apiid',\n apiId: 'Apiid',\n};\n\n// 需和文件名对应\nconst APIGATEWAYInstanceAliasList = ['ServiceId', 'ServiceName'];\n\nconst templateQueryIdMap = {\n instance: 'ServiceId',\n environmentName: 'EnvironmentName',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n environmentList: 'EnvironmentList',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n EnvironmentName: {\n dim_KeyInStorage: keyInStorage.environmentList,\n dim_KeyInTarget: 'EnvironmentName',\n dim_KeyInMap: templateQueryIdMap.environmentName,\n },\n};\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst APIGATEWAYFilterFields = {\n Limit: 20,\n Offset: 0,\n ServiceId: [],\n ServiceName: [],\n NotUsagePlanId: [],\n Environment: [],\n IpVersion: [],\n};\n\nconst APIGATEWAYFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ServiceId',\n enDescriptor: 'ServiceId',\n cnDescriptor: '服务id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ServiceName',\n enDescriptor: 'ServiceName',\n cnDescriptor: '服务名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'NotUsagePlanId',\n enDescriptor: 'NotUsagePlanId',\n cnDescriptor: 'NotUsagePlanId',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Environment',\n enDescriptor: 'Environment',\n cnDescriptor: '环境名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'IpVersion',\n enDescriptor: 'IpVersion',\n cnDescriptor: 'IP版本',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/628/45198',\n namespace,\n fieldDescriptor: APIGATEWAYFilterFieldsDescriptor,\n};\n\nconst APIGATEWAY_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ServiceId',\n EnvironmentName: '',\n queries: APIGATEWAYFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nexport default APIGATEWAY_STATE;\nexport {\n APIGATEWAYFilterFieldsDescriptor,\n templateQueryIdMap,\n APIGATEWAYInstanceAliasList,\n APIGATEWAYInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as APIGATEWAYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nexport const InstanceQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '按照一个或者多个实例ID查询。实例ID形如: emr-xxxxxxxx ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'OrderField',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '实例ID', value: 'clusterId' },\n { text: '创建时间', value: 'addTime' },\n { text: '状态', value: 'status' },\n ],\n },\n {\n key: 'Asc',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: '降序', value: 0 },\n { text: '升序', value: 1 },\n ],\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '实例所属项目ID',\n link: '',\n type: 'inputnumber',\n },\n {\n key: 'DisplayStrategy',\n enDescriptor: 'DisplayStrategy',\n cnDescriptor: '集群筛选策略',\n link: '',\n type: 'select',\n list: [\n { text: '未销毁的实例', value: 'clusterList' },\n { text: '正常运行的实例', value: 'monitorManage' },\n ],\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = new Proxy(\n {},\n {\n get(target, k, receiver) {\n if (typeof k === 'string') {\n if (k.startsWith('id4')) return 'ClusterId'; // id4****\n if (k.startsWith('host4')) return 'Ip'; // host4***\n }\n return Reflect.get(target, k, receiver);\n },\n has(target, propKey) {\n return true;\n },\n }\n);\n\nexport const templateQueryIdMap = {\n instance: 'ClusterId',\n node: 'Ip',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n node: 'nodeIP',\n};\n\n/**\n * 如果有InstanceId额外的维度,原则上都需要传入此map结构配置\n *\n * `key` 的含义:\n * 经过InvalidDemensions处理后的string。topicId => TopicId。\n * 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\n *\n * `value` 的含义:\n * @param {1} dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n * @param {2} dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n * 默认取通过InvalidDemsion处理后的key\n * @param {3} dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n * 即:templateQueryIdMap中内容。\n * 联合上面 2 的内容筛选出原始sourceMap\n */\nconst queryMonitorExtraConfg = {\n Ip: {\n dim_KeyInStorage: keyInStorage.node,\n dim_KeyInTarget: 'nodeIP',\n dim_KeyInMap: templateQueryIdMap.node,\n },\n};\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['ClusterId', 'ClusterName'];\nexport { InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n nodeIP: '',\n queries: {\n Offset: 0,\n Limit: 10,\n DisplayStrategy: '',\n OrderBy: {},\n Order: {},\n InstanceIds: [],\n ProjectId: -1,\n OrderField: '',\n Asc: '',\n },\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/V_CLB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vClbQuery';\n\nconst VCLBInvalidDemensions = {\n InstanceId: 'LoadBalancerId',\n // vip: 'LoadBalancerVips',\n // loadBalancerPort: 'Port',\n // protocol: 'Protocol',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst VCLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\nconst ForwardTypes = [\n { text: '通用的负载均衡', value: 1 },\n { text: '传统的负载均衡', value: 0 },\n];\n\nconst OrderBy = [\n { text: 'LoadBalancerName', value: 'LoadBalancerName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'Domain', value: 'Domain' },\n { text: 'LoadBalancerType', value: 'LoadBalancerType' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\n\nconst WithRs = [\n { text: '没有绑定后端服务', value: 0 },\n { text: '绑定后端服务', value: 1 },\n { text: '查询全部', value: -1 },\n];\nconst VCLBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',\n link: '',\n type: 'inputNumber',\n min: 1,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancer ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancer Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'Forward',\n enDescriptor: 'Forward',\n cnDescriptor: '负载均衡实例类型',\n link: '',\n type: 'select',\n list: ForwardTypes,\n },\n {\n key: 'Domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',\n link: '',\n type: 'input',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancer Vips',\n cnDescriptor: '负载均衡实例的 VIP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivate Ips',\n cnDescriptor: '负载均衡绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPublicIps',\n enDescriptor: 'BackendPublic Ips',\n cnDescriptor: '负载均衡绑定的后端服务的外网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '负载均衡实例所属的项目 ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'VpcId',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '负载均衡实例所属私有网络',\n link: '',\n type: 'input',\n },\n {\n key: 'SecurityGroup',\n enDescriptor: 'Security Group',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'input',\n },\n {\n key: 'MasterZone',\n enDescriptor: 'Master Zone',\n cnDescriptor: '主可用区ID',\n link: '',\n type: 'input',\n },\n {\n key: 'WithRs',\n enDescriptor: 'WithRs',\n cnDescriptor: '负载均衡是否绑定后端服务',\n link: '',\n type: 'select',\n list: WithRs,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderType,\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',\n namespace,\n fieldDescriptor: VCLBFilterFieldsDescriptor,\n};\nconst LBFields = {\n LoadBalancerIds: [],\n Forward: undefined,\n LoadBalancerName: '',\n Domain: '',\n LoadBalancerVips: [],\n BackendPublicIps: [],\n BackendPrivateIps: [],\n Limit: 20,\n Offset: 0,\n ProjectId: undefined,\n WithRs: {},\n VpcId: '',\n SecurityGroup: '',\n MasterZone: '',\n OrderBy: {},\n OrderType: {},\n};\n\nconst VCLB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n Port: '',\n Protocol: '',\n listener: '',\n // listenerAlias: 'ListenerId',\n queries: LBFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nconst clbNamespaceMap = {\n public: 'QCE/LB_PUBLIC',\n private: 'QCE/LB_PRIVATE',\n};\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\nexport default VCLB_STATE;\nexport {\n VCLBFilterFieldsDescriptor,\n templateQueryIdMap,\n VCLBInstanceAliasList,\n VCLBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n clbNamespaceMap,\n modifyDimensons,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMLBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CYNOSDB_MYSQL';\n\n// 按照驼峰方式命名,和SERVICES保持一致,abcDeF会成为angular组件名字\nconst queryEditorName = 'cynosdbMysqlQuery';\n\nconst cynosdbMysqlFilterFields = {\n Limit: 20,\n Offset: 0,\n OrderBy: {},\n OrderByType: {},\n InstanceIds: [],\n DbType: {},\n // Status: '',\n};\n\nconst cynosdbMysqlFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 1000,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '实例id列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '创建时间', value: 'CREATETIME' },\n { text: '过期时间', value: 'PERIODENDTIME' },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序类型',\n link: '',\n type: 'select',\n list: [\n { text: '升序', value: 'ASC' },\n { text: '降序', value: 'DESC' },\n ],\n },\n {\n key: 'DbType',\n enDescriptor: 'DbType',\n cnDescriptor: '引擎类型',\n link: '',\n type: 'select',\n list: [\n { text: 'MYSQL', value: 'MYSQL' },\n { text: 'POSTGRESQL', value: 'POSTGRESQL' },\n ],\n },\n // {\n // key: 'Status',\n // enDescriptor: 'Status',\n // cnDescriptor: '实例状态',\n // link: '',\n // type: 'input',\n // },\n];\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n];\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1003/48334',\n namespace,\n fieldDescriptor: cynosdbMysqlFilterFieldsDescriptor,\n};\n\nconst CYNOSDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: cynosdbMysqlFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// 和文件名字一样CYNOSDBMYSQL\nconst CYNOSDBMYSQLInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\nconst CYNOSDBInvalidDemensions = {\n instanceid: 'InstanceId',\n instanceId: 'InstanceId',\n};\nconst checkKeys = ['instanceId'];\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\n\nexport default CYNOSDB_STATE;\nexport {\n cynosdbMysqlFilterFieldsDescriptor,\n templateQueryIdMap,\n CYNOSDBMYSQLInstanceAliasList,\n CYNOSDBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n checkKeys,\n // params前缀为service的全大写\n GetInstanceQueryParams as CYNOSDBMYSQLGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nexport const SCFQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '支持FunctionName模糊匹配',\n link: '',\n type: 'input',\n },\n {\n key: 'Namespace',\n enDescriptor: 'Namespace',\n cnDescriptor: '云函数命名空间',\n link: '',\n type: 'input',\n },\n {\n key: 'Description',\n enDescriptor: 'Description',\n cnDescriptor: '函数描述,支持模糊搜索',\n link: '',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: 'AddTime', value: 'AddTime' },\n { text: 'ModTime', value: 'ModTime' },\n { text: 'FunctionName', value: 'FunctionName' },\n ],\n },\n {\n key: 'Order',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: 'ASC', value: 'ASC' },\n { text: 'DESC', value: 'DESC' },\n ],\n },\n // {\n // key: 'Filters',\n // enDescriptor: 'Filters',\n // cnDescriptor: '按照标签键值对进行过滤',\n // link: '',\n // type: 'dropdownmulti',\n // },\n];\n\nconst SCF_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'FunctionName',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n OrderBy: {},\n Order: {},\n SearchKey: '',\n Namespace: '',\n Description: '',\n // Filters: {},\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst SCFInstanceAliasList = ['FunctionId', 'FunctionName'];\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst SCFInvalidDemensions = {\n functionName: 'FunctionName',\n namespace: 'Namespace',\n version: 'Version',\n};\n\nconst templateQueryIdMap = {\n instance: 'FunctionName',\n version: 'Version',\n};\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n version: 'version',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n Version: {\n dim_KeyInStorage: keyInStorage.version,\n dim_KeyInTarget: 'version',\n dim_KeyInMap: templateQueryIdMap.version,\n },\n};\nexport default SCF_STATE;\nexport {\n SCFInstanceAliasList,\n SCFInvalidDemensions,\n queryMonitorExtraConfg,\n regionSupported,\n templateQueryIdMap,\n keyInStorage,\n GetInstanceQueryParams as SCFGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\nexport const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/CLS';\nconst queryEditorName = 'clsQuery';\n\nconst CLSInvalidDemensions = {\n // instanceid: 'TopicId',\n};\n\n// 需和文件名对应\nconst CLSInstanceAliasList = ['TopicId', 'TopicName'];\n\nconst templateQueryIdMap = {\n instance: 'TopicId',\n};\n\n// 需要缓存到storage的内容的key列表\n// const keyInStorage = {\n// fleet: 'fleet', // 实例队列\n// queue: 'queueName', // 会话队列\n// };\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\n// const queryMonitorExtraConfg = {\n// FleetId: {\n// dim_KeyInStorage: keyInStorage.fleet,\n// dim_KeyInTarget: 'FleetId',\n// dim_KeyInMap: templateQueryIdMap.FleetId,\n// },\n// Name: {\n// dim_KeyInStorage: keyInStorage.queue,\n// dim_KeyInTarget: 'Name',\n// dim_KeyInMap: templateQueryIdMap.Name,\n// },\n// };\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CLSFilterFields = {\n Limit: 20,\n Offset: 0,\n topicName: [],\n topicId: [],\n logsetName: [],\n logsetId: [],\n tagKey: [],\n 'tag:tagKey': [],\n storageType: {},\n};\n\nconst CLSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'topicName',\n enDescriptor: 'topicName',\n cnDescriptor: '日志主题名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'topicId',\n enDescriptor: 'topicId',\n cnDescriptor: '日志主题ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'logsetName',\n enDescriptor: 'logsetName',\n cnDescriptor: '日志集名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'logsetId',\n enDescriptor: 'logsetId',\n cnDescriptor: '日志集ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'tag:tagKey',\n enDescriptor: 'tag - tagKey',\n cnDescriptor: '标签键值对',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'storageType',\n enDescriptor: 'storageType',\n cnDescriptor: '日志主题的存储类型',\n link: '',\n type: 'select',\n list: [\n { text: '实时存储', value: 'hot' },\n { text: '离线存储', value: 'cold' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/614/56454',\n namespace,\n fieldDescriptor: CLSFilterFieldsDescriptor,\n};\n\nconst CLS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TopicId',\n uin: '',\n queries: CLSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = item.Dimensions.map((v) => CLSInvalidDemensions[v] || v);\n item.Dimensions = ['uin', 'TopicId'];\n });\n return metricTmp;\n}\nexport default CLS_STATE;\nexport {\n CLSFilterFieldsDescriptor,\n templateQueryIdMap,\n CLSInstanceAliasList,\n CLSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n // queryMonitorExtraConfg,\n // fleetId,\n // keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CLSGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/SQLSERVER';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'sqlserverQuery';\n\nconst SQLSERVERInvalidDemensions = {\n resourceId: 'InstanceId',\n};\n\nconst SQLSERVERInstanceAliasList = ['InstanceId', 'Name'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst SQLSERVERNETFilterFields = {\n Limit: 20,\n Offset: 0,\n ProjectId: null,\n Status: {},\n InstanceIdSet: [],\n PayMode: {},\n VpcId: '',\n SubnetId: '',\n VipSet: [],\n InstanceNameSet: [],\n VersionSet: [],\n Zone: '',\n};\n\nconst SQLSERVERNETFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n list: [\n { text: '申请中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '受限运行中 (主备切换中)', value: 3 },\n { text: '已隔离', value: 4 },\n { text: '回收中', value: 5 },\n { text: '已回收', value: 6 },\n { text: '任务执行中', value: 7 },\n { text: '已下线', value: 8 },\n { text: '实例扩容中', value: 9 },\n { text: '实例迁移中', value: 10 },\n { text: '只读', value: 11 },\n { text: '重启中', value: 12 },\n ],\n },\n {\n key: 'InstanceIdSet',\n enDescriptor: 'InstanceIdSet',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'PayMode',\n enDescriptor: 'PayMode',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'select',\n list: [\n { text: '包年包月', value: 1 },\n { text: '按量计费', value: 0 },\n ],\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '实例所属VPC的唯一字符串ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '实例所属子网的唯一字符串ID',\n link: '',\n type: 'input',\n },\n {\n key: 'VipSet',\n enDescriptor: 'VipSet',\n cnDescriptor: '实例内网地址列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'InstanceNameSet',\n enDescriptor: 'InstanceNameSet',\n cnDescriptor: '实例名称列表, 模糊查询',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'VersionSet',\n enDescriptor: 'VersionSet',\n cnDescriptor: '实例版本代号列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Zone',\n enDescriptor: 'Zone',\n cnDescriptor: '实例可用区',\n link: '',\n type: 'dropdown',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/238/19969',\n namespace,\n fieldDescriptor: SQLSERVERNETFilterFieldsDescriptor,\n};\n\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-nanjing' },\n { value: 'ap-seoul' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-moscow' },\n { value: 'na-siliconvalley' },\n];\nconst SQLSERVER_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: SQLSERVERNETFilterFields,\n};\n\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['resourceId'];\n });\n return metricTmp;\n}\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default SQLSERVER_STATE;\nexport {\n SQLSERVERNETFilterFieldsDescriptor,\n templateQueryIdMap,\n SQLSERVERInstanceAliasList,\n SQLSERVERInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n // 对应产品的service的全大写拼接InstanceQueryParams\n GetInstanceQueryParams as SQLSERVERGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_INTRA_LB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmIntraLbQuery';\n\nconst BMINTRALBInvalidDemensions = {\n vip: 'LoadBalancerVips',\n vpcId: 'VpcId',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMINTRALBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst BMINTRALBFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n};\n\nconst BMINTRALBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',\n namespace,\n fieldDescriptor: BMINTRALBFilterFieldsDescriptor,\n};\n\nconst BMINTRALB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: BMINTRALBFilterFields,\n};\nconst BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];\nfunction isValidMetric(metric) {\n const validMetrics = _.map(BMLBValidMetricsT, _.toUpper);\n return _.indexOf(validMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default BMINTRALB_STATE;\nexport {\n BMINTRALBFilterFieldsDescriptor,\n templateQueryIdMap,\n BMINTRALBInstanceAliasList,\n BMINTRALBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMINTRALBGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_LB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmLbQuery';\n\nconst CPMInvalidDemensions = {\n vip: 'LoadBalancerVips',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst CPMFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n};\n\nconst CPMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',\n namespace,\n fieldDescriptor: CPMFilterFieldsDescriptor,\n};\n\nconst CPM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: CPMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nconst BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];\nfunction isValidMetric(metric) {\n const validMetrics = _.map(BMLBValidMetricsT, _.toUpper);\n return _.indexOf(validMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nexport default CPM_STATE;\nexport {\n CPMFilterFieldsDescriptor,\n templateQueryIdMap,\n BMLBInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMLBGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_PCX';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmPcxQuery';\n\nconst BMPCXInvalidDemensions = {\n peeringConnectionId: 'VpcPeerConnectionId',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMPCXInstanceAliasList = ['VpcPeerConnectionId', 'VpcPeerConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'VpcPeerConnectionId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst BMPCXFilterFields = {\n Limit: 20,\n Offset: 0,\n VpcPeerConnectionIds: [],\n};\n\nconst BMPCXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'VpcPeerConnectionIds',\n enDescriptor: 'VpcPeerConnectionIds',\n cnDescriptor: '对等连接实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/product/1024/36903',\n namespace,\n fieldDescriptor: BMPCXFilterFieldsDescriptor,\n};\n\nconst BMPCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpcPeerConnectionId',\n queries: BMPCXFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['peeringConnectionId'];\n });\n return metricTmp;\n}\nexport default BMPCX_STATE;\nexport {\n BMPCXFilterFieldsDescriptor,\n templateQueryIdMap,\n BMPCXInstanceAliasList,\n BMPCXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMPCXGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/BLOCK_STORAGE';\nconst queryEditorName = 'cbsQuery';\n\nconst CBSInvalidDemensions = {\n diskId: 'DiskId',\n InstanceId: 'InstanceId',\n diskname: 'DiskName',\n unInstanceId: 'InstanceId',\n};\n\nconst CBSInstanceAliasList = ['DiskId', 'DiskName'];\n\nconst templateQueryIdMap = {\n instance: 'DiskId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst CBSFilterFields = {\n Limit: 20,\n Offset: 0,\n DiskIds: [],\n OrderField: [],\n Order: [],\n ReturnBindAutoSnapshotPolicy: false,\n};\n\nconst CBSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DiskIds',\n enDescriptor: 'DiskIds',\n cnDescriptor: '云硬盘ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Order',\n enDescriptor: 'Order',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'select',\n list: [\n { text: '升序排列', value: 'ASC' },\n { text: '降序排列', value: 'DESC' },\n ],\n },\n {\n key: 'OrderField',\n enDescriptor: 'OrderField',\n cnDescriptor: '排序的依据字段',\n link: '',\n type: 'select',\n list: [\n { text: '云盘的创建时间排序', value: 'CREATE_TIME' },\n { text: '云盘的到期时间排序', value: 'DEADLINE' },\n ],\n },\n {\n key: 'ReturnBindAutoSnapshotPolicy',\n enDescriptor: 'ReturnBindAutoSnapshotPolicy',\n cnDescriptor: '否需要返回云盘绑定的定期快照策略ID',\n link: '',\n type: 'switch',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/362/16315',\n namespace,\n fieldDescriptor: CBSFilterFieldsDescriptor,\n};\n\nconst CBS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DiskId',\n queries: CBSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n return dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1;\n}\nexport default CBS_STATE;\nexport {\n CBSFilterFieldsDescriptor,\n templateQueryIdMap,\n CBSInstanceAliasList,\n CBSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n GetInstanceQueryParams as CBSGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CDN_LOG_DATA';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cdnProvinceQuery';\n\nconst CDNPROVINCEInvalidDemensions = {\n domain: 'Domain',\n // isp: 'Isp',\n projectid: 'ProjectId',\n province: 'district',\n appid: 'AppId',\n};\n\n// 需和文件名对应\nconst CDNPROVINCEInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CDNPROVINCEFilterFields = {\n Limit: 20,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst CDNPROVINCEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst CDNPROVINCE_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n // Isp Province分别在两个接口,单独保存在state\n isp: '',\n district: '',\n queries: CDNPROVINCEFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// const regionSupported = [\n// { text: '华北地区(北京)', value: 'ap-beijing' },\n// { text: '西南地区(成都)', value: 'ap-chengdu' },\n// { text: '西南地区(重庆)', value: 'ap-chongqing' },\n// { text: '华南地区(广州)', value: 'ap-guangzhou' },\n// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n// { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n// { text: '华东地区(南京)', value: 'ap-nanjing' },\n// { text: '华东地区(上海)', value: 'ap-shanghai' },\n// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n// { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n// { text: '亚太东北(东京)', value: 'ap-tokyo' },\n// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n// { text: '北美地区(多伦多)', value: 'na-toronto' },\n// ];\nexport default CDNPROVINCE_STATE;\nexport {\n CDNPROVINCEFilterFieldsDescriptor,\n templateQueryIdMap,\n CDNPROVINCEInstanceAliasList,\n CDNPROVINCEInvalidDemensions,\n namespace,\n queryEditorName,\n // regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CDNPROVINCEGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CEIP_SUMMARY';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'ceipSummaryQuery';\n\nconst CEIPInvalidDemensions = {\n vip: 'AddressIp',\n eip: 'AddressIp',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst CEIPSUMMARYInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];\n\nconst templateQueryIdMap = {\n instance: 'AddressId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst CEIPFilterFields = {\n Limit: 20,\n Offset: 0,\n 'address-id': [],\n 'address-name': [],\n 'address-ip': [],\n 'address-status': {},\n 'is-arrears': {},\n 'address-isp': {},\n 'instance-id': [],\n 'private-ip-address': [],\n 'network-interface-id': [],\n};\n\nconst CEIPFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'address-id',\n enDescriptor: 'address-id',\n cnDescriptor: ' EIP 的唯一 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-name',\n enDescriptor: 'address-name',\n cnDescriptor: 'EIP 名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-ip',\n enDescriptor: 'address-ip',\n cnDescriptor: 'EIP 的 IP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-status',\n enDescriptor: 'address-status',\n cnDescriptor: 'EIP 的状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'CREATING', value: 'CREATING' },\n { text: 'BINDING', value: 'BINDING' },\n { text: 'BIND', value: 'BIND' },\n { text: 'UNBINDING', value: 'UNBINDING' },\n { text: 'UNBIND', value: 'UNBIND' },\n { text: 'OFFLINING', value: 'OFFLINING' },\n { text: 'BIND_ENI', value: 'BIND_ENI' },\n ],\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: 'EIP 绑定的实例 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'private-ip-address',\n cnDescriptor: 'EIP 绑定的内网 IP ',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'network-interface-id',\n enDescriptor: 'network-interface-id',\n cnDescriptor: ' EIP 绑定的弹性网卡 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'is-arrears',\n enDescriptor: 'is-arrears',\n cnDescriptor: 'EIP 是否欠费',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '欠费状态', value: 'TRUE' },\n { text: '费用状态正常', value: 'FALSE' },\n ],\n },\n {\n key: 'address-isp',\n enDescriptor: 'address-isp',\n cnDescriptor: '运营商类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'BGP', value: 'BGP' },\n { text: 'CMCC', value: 'CMCC' },\n { text: 'CUCC', value: 'CUCC' },\n { text: 'CTCC', value: 'CTCC' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/16702',\n namespace,\n fieldDescriptor: CEIPFilterFieldsDescriptor,\n};\n\nconst CEIP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'AddressId',\n queries: CEIPFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['eip'];\n });\n return metricTmp;\n}\nexport default CEIP_STATE;\nexport {\n CEIPFilterFieldsDescriptor,\n templateQueryIdMap,\n CEIPSUMMARYInstanceAliasList,\n CEIPInvalidDemensions,\n namespace,\n queryEditorName,\n modifyDimensons,\n queryEditorConfig,\n GetInstanceQueryParams as CEIPSUMMARYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { FildDescriptorType } from '../_base/types';\n\nexport const InstanceQueryDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 50,\n },\n {\n key: 'TopicName',\n enDescriptor: 'TopicName',\n cnDescriptor: '精确匹配TopicName',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签搜索',\n link: '',\n type: 'input',\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = {\n topicId: 'TopicId',\n};\n\n// 因为cmq那边,以TopciName为主键\nexport const templateQueryIdMap = {\n instance: 'TopicName',\n subscription: 'SubscriptionId',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n subscriptionId: 'subscriptionId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n subscriptionId: {\n dim_KeyInStorage: keyInStorage.subscriptionId,\n dim_KeyInTarget: 'subscriptionId',\n dim_KeyInMap: templateQueryIdMap.subscription,\n },\n};\n// 与名称挂钩的变量\nconst InstanceAliasList = ['TopicName', 'TopicId'];\nexport { InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TopicName',\n subscriptionId: '',\n queries: {\n Offset: 0,\n Limit: 20,\n TopicName: '',\n TagKey: '',\n },\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/CPM';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cpmQuery';\n\nconst CPMInvalidDemensions = {\n instanceId: 'InstanceId',\n // uniqid: 'InstanceId',\n};\n\nconst CPMInstanceAliasList = ['InstanceId', 'Name'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CPMFilterFields = {\n Limit: 20,\n Offset: 0,\n DeviceClassCode: '',\n InstanceIds: [],\n WanIps: [],\n LanIps: [],\n Alias: '',\n VagueIp: '',\n AutoRenewFlag: {},\n VpcId: '',\n SubnetId: '',\n DeviceType: {},\n IsLuckyDevice: {},\n};\n\nconst CPMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DeviceClassCode',\n enDescriptor: 'DeviceClassCode',\n cnDescriptor: '机型ID',\n link: '',\n type: 'dropdown',\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '设备ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'WanIps',\n enDescriptor: 'WanIps',\n cnDescriptor: '外网IP数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LanIps',\n enDescriptor: 'LanIps',\n cnDescriptor: '内网IP数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Alias',\n enDescriptor: 'Alias',\n cnDescriptor: '设备名称',\n link: '',\n type: 'input',\n },\n {\n key: 'VagueIp',\n enDescriptor: 'VagueIp',\n cnDescriptor: '模糊IP查询',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenewFlag',\n enDescriptor: 'AutoRenewFlag',\n cnDescriptor: '自动续费标志',\n link: '',\n type: 'select',\n list: [\n { text: '不自动续费', value: 0 },\n { text: '自动续费', value: 1 },\n ],\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络唯一ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '子网唯一ID',\n link: '',\n type: 'input',\n },\n {\n key: 'DeviceType',\n enDescriptor: 'DeviceType',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'select',\n list: [\n { text: '计算型', value: 'compute' },\n { text: '标准型', value: 'standard' },\n { text: '存储型', value: 'storage' },\n ],\n },\n {\n key: 'IsLuckyDevice',\n enDescriptor: 'IsLuckyDevice',\n cnDescriptor: '竞价实例机器过滤',\n link: '',\n type: 'select',\n list: [\n { text: '非竞价实例机器', value: 0 },\n { text: '竞价实例的机器', value: 1 },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/386/32904',\n namespace,\n fieldDescriptor: CPMFilterFieldsDescriptor,\n};\n\nconst CPM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: CPMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['instanceId'];\n });\n return metricTmp;\n}\nexport default CPM_STATE;\nexport {\n CPMFilterFieldsDescriptor,\n templateQueryIdMap,\n CPMInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CPMGetInstanceQueryParams,\n};\n","import { cloneDeep, compact, forEach, get, isArray, isEmpty, isObject, omit, uniq } from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\n\nconst namespace = 'QCE/DSA';\nconst queryEditorName = 'ecdnQuery';\n\nconst ECDNInstanceAliasList = ['Domain'];\n\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\n\nconst ECDNInvalidDemensions = {\n domain: 'Domain',\n projectid: 'ProjectId',\n};\n\nconst ECDN_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 100,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: [],\n disable: [],\n projectId: [],\n fullUrlCache: [],\n https: [],\n originPullProtocol: [],\n area: [],\n tagKey: [],\n },\n};\n\nconst ECDNFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'Origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'ResourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'Status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'disable',\n enDescriptor: 'Disable',\n cnDescriptor: '域名封禁状态',\n link: '',\n type: 'select',\n list: [\n { text: 'normal', value: 'normal' },\n { text: 'unlicensed', value: 'unlicensed' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'FullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'Https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'OriginPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'https', value: 'https' },\n { text: 'follow', value: 'follow' },\n ],\n },\n {\n key: 'area',\n enDescriptor: 'Area',\n cnDescriptor: '加速区域',\n link: '',\n type: 'select',\n list: [\n { text: 'mainland', value: 'mainland' },\n { text: 'overseas', value: 'overseas' },\n { text: 'global', value: 'global' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/570/42462',\n namespace,\n fieldDescriptor: ECDNFilterFieldsDescriptor,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!isEmpty(queries)) {\n params.Limit = get(queries, 'Limit', 20) || 20;\n params.Offset = get(queries, 'Offset', 0) || 0;\n const _queries = omit(queries, ['Offset', 'Limit']);\n const Filters: any[] = [];\n forEach(_queries, (item: any, key) => {\n if (isArray(item)) {\n item = compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: uniq(item).slice(0, 5) });\n }\n } else if (isObject(item)) {\n if (!isEmpty(get(item, 'value', []))) {\n Filters.push({ Name: key, Value: [get(item, 'value', [])].slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters.map((item) => {\n if (item.Name === 'domain') {\n return { ...item, Fuzzy: true };\n }\n return item;\n });\n return params;\n }\n }\n return params;\n}\n\nfunction modifyDimensons(metricItem) {\n const metricTmp = cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['domain', 'projectid'];\n });\n return metricTmp;\n}\n\nexport default ECDN_STATE;\n\nexport {\n ECDNFilterFieldsDescriptor,\n templateQueryIdMap,\n ECDNInstanceAliasList,\n ECDNInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECDNGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM';\nconst queryEditorName = 'ecmQuery';\n\nconst ECMInvalidDemensions = {\n // diskId: 'InstanceId',\n uuid: 'UUID',\n // unInstanceId: 'InstanceId',\n};\n\nconst ECMInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst ECMFilterFields = {\n Limit: 20,\n Offset: 0,\n zone: [],\n 'zone-name': [],\n 'module-id': [],\n 'module-name': [],\n 'instance-id': [],\n 'instance-name': [],\n 'ip-address': [],\n 'instance-uuid': [],\n 'instance-state': {},\n 'internet-service-provider': [],\n 'instance-family': [],\n 'image-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n};\n\nconst ECMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'zone',\n enDescriptor: 'zone',\n cnDescriptor: '可用区英文标识',\n link: '',\n type: 'dropdownMulti',\n },\n {\n key: 'zone-name',\n enDescriptor: 'zone-name',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-id',\n enDescriptor: 'module-id',\n cnDescriptor: '模块ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-name',\n enDescriptor: 'module-name',\n cnDescriptor: '模块名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'instance-name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ip-address',\n enDescriptor: 'ip-address',\n cnDescriptor: '内网/公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-uuid',\n enDescriptor: 'instance-uuid',\n cnDescriptor: '实例uuid',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'instance-state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n ],\n },\n {\n key: 'internet-service-provider',\n enDescriptor: 'internet-service-provider',\n cnDescriptor: '公网IP所属的运营商',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-family',\n enDescriptor: 'instance-family',\n cnDescriptor: '机型family',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'image-id',\n enDescriptor: 'image-id',\n cnDescriptor: '镜像ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '实例的vpc id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '实例的subnet id',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',\n namespace,\n fieldDescriptor: ECMFilterFieldsDescriptor,\n};\n\nconst ECM_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: ECMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// function isValidMetric(metricObj: any = {}) {\n// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);\n// }\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['UUID'];\n });\n return metricTmp;\n}\nexport default ECM_STATE;\nexport {\n ECMFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMInstanceAliasList,\n ECMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECMGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nconst namespace = 'QCE/POSTGRES';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'postgresQuery';\n\nconst PostgresFields = {\n 'db-instance-id': [],\n 'db-instance-name': [],\n};\n\nconst PostgresFieldsDescriptor: FildDescriptorType = [\n {\n key: 'db-instance-id',\n enDescriptor: 'DB Instance ID',\n cnDescriptor: 'DB 实例ID',\n link: '',\n type: 'inputMulti',\n min: 0,\n },\n {\n key: 'db-instance-name',\n enDescriptor: 'DB Instance Name',\n cnDescriptor: 'DB 实例名称',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/409/16773',\n namespace,\n fieldDescriptor: PostgresFieldsDescriptor,\n};\nconst POSTGRESInstanceAliasList = ['DBInstanceId', 'DBInstanceName'];\n\nconst POSTGRES_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DBInstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...PostgresFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['resourceId'];\n });\n return metricTmp;\n}\nconst PostgreInvalidDemensions = {\n uid: 'DBInstanceId',\n resourceId: 'DBInstanceId',\n};\nconst templateQueryIdMap = {\n instance: 'DBInstanceId',\n};\nexport default POSTGRES_STATE;\n\nexport {\n PostgresFieldsDescriptor,\n POSTGRESInstanceAliasList,\n templateQueryIdMap,\n modifyDimensons,\n namespace,\n queryEditorName,\n queryEditorConfig,\n PostgreInvalidDemensions,\n GetInstanceQueryParams as POSTGRESGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPC_NET_DETECT';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vpcNetDetectQuery';\n\nconst VPCNETInvalidDemensions = {\n netdetectid: 'NetDetectId',\n netDetectId: 'NetDetectId',\n};\n\nconst VPCNETDETECTInstanceAliasList = ['NetDetectId', 'NetDetectName'];\n\nconst templateQueryIdMap = {\n instance: 'NetDetectId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPCNETFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'net-detect-id': [],\n 'subnet-id': [],\n 'net-detect-name': [],\n};\n\nconst VPCNETFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'net-detect-id',\n enDescriptor: 'net-detect-id',\n cnDescriptor: '网络探测实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'net-detect-name',\n enDescriptor: 'net-detect-name',\n cnDescriptor: '网络探测名称',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/38696',\n namespace,\n fieldDescriptor: VPCNETFilterFieldsDescriptor,\n};\n\nconst VPCNET_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'NetDetectId',\n queries: VPCNETFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['netDetectId'];\n });\n return metricTmp;\n}\nexport default VPCNET_STATE;\nexport {\n VPCNETFilterFieldsDescriptor,\n templateQueryIdMap,\n VPCNETDETECTInstanceAliasList,\n VPCNETInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as VPCNETDETECTGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/WAF';\nconst queryEditorName = 'wafQuery';\nconst WAFFilterFields = {\n Limit: 20,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst WAFFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/228/41118',\n namespace,\n fieldDescriptor: WAFFilterFieldsDescriptor,\n};\nconst WAF_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: WAFFilterFields,\n};\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n];\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n\nconst WAFInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst WAFInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default WAF_STATE;\nexport {\n WAFFilterFieldsDescriptor,\n templateQueryIdMap,\n WAFInstanceAliasList,\n WAFInvalidDemensions,\n namespace,\n regionSupported,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as WAFGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nconst InstanceTypes = [\n { text: '主实例', value: 1 },\n { text: '备灾实例', value: 2 },\n { text: '只读实例', value: 3 },\n];\n\nconst Status = [\n { text: '创建中', value: 0 },\n { text: '运行中', value: 1 },\n { text: '隔离中', value: 4 },\n { text: '已隔离', value: 5 },\n];\n\nconst PayTypes = [\n { text: '包年包月', value: 0 },\n { text: '小时计费', value: 1 },\n];\n\nconst TaskStatus = [\n { text: '没有任务', value: 0 },\n { text: '升级中', value: 1 },\n { text: '数据导入中', value: 2 },\n { text: '开放Slave中', value: 3 },\n { text: '外网访问开通中', value: 4 },\n { text: '批量操作执行中', value: 5 },\n { text: '回档中', value: 6 },\n { text: '外网访问关闭中', value: 7 },\n { text: '密码修改中', value: 8 },\n { text: '实例名修改中', value: 9 },\n { text: '重启中', value: 10 },\n { text: '自建迁移中', value: 12 },\n { text: '删除库表中', value: 13 },\n { text: '灾备实例创建同步中', value: 14 },\n { text: '升级待切换', value: 15 },\n { text: '升级切换中', value: 16 },\n { text: '升级切换完成', value: 17 },\n];\n\nconst EngineVersions = [\n { text: '5.1', value: '5.1' },\n { text: '5.5', value: '5.5' },\n { text: '5.6', value: '5.6' },\n { text: '5.7', value: '5.7' },\n];\n\nconst OrderBy = [\n { text: 'InstanceId', value: 'InstanceId' },\n { text: 'InstanceName', value: 'InstanceName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'DeadlineTime', value: 'DeadlineTime' },\n];\n\nconst OrderDirection = [\n { text: 'ASC', value: 'ASC' },\n { text: 'DESC', value: 'DESC' },\n];\n\nconst InitFlag = [\n { text: '未初始化', value: 0 },\n { text: '初始化', value: 1 },\n];\n\nconst CdbErrors = [\n { text: '未锁定', value: 0 },\n { text: '锁定', value: 1 },\n];\n\nconst CDBFields = {\n ProjectId: '',\n InstanceTypes: {},\n Vips: [],\n Status: {},\n Offset: 0,\n Limit: 20,\n SecurityGroupId: '',\n PayTypes: {},\n InstanceNames: [],\n TaskStatus: {},\n EngineVersions: {},\n VpcIds: [],\n ZoneIds: [],\n SubnetIds: [],\n CdbErrors: {},\n OrderBy: {},\n OrderDirection: {},\n InstanceIds: [],\n InitFlag: {},\n};\n\nconst CDBFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceNames',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ZoneIds',\n enDescriptor: 'Zone ID',\n cnDescriptor: '可用区的ID',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'InstanceTypes',\n enDescriptor: 'Instance Type',\n cnDescriptor: '实例类型',\n link: '',\n multiple: true,\n type: 'select',\n list: InstanceTypes,\n },\n {\n key: 'EngineVersions',\n enDescriptor: 'Engine Version',\n cnDescriptor: '实例数据库引擎版本',\n link: '',\n multiple: true,\n type: 'select',\n list: EngineVersions,\n },\n {\n key: 'TaskStatus',\n enDescriptor: 'Task Status',\n cnDescriptor: '实例任务',\n link: '',\n multiple: true,\n type: 'select',\n list: TaskStatus,\n },\n {\n key: 'InitFlag',\n enDescriptor: 'Init Flag',\n cnDescriptor: '实例初始化状态',\n link: '',\n multiple: true,\n type: 'select',\n list: InitFlag,\n },\n {\n key: 'PayTypes',\n enDescriptor: 'Pay Type',\n cnDescriptor: '付费类型',\n link: '',\n multiple: true,\n type: 'select',\n list: PayTypes,\n },\n {\n key: 'CdbErrors',\n enDescriptor: 'CDB Errors',\n cnDescriptor: '实例锁定标记',\n link: '',\n multiple: true,\n type: 'select',\n list: CdbErrors,\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderDirection',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderDirection,\n },\n {\n key: 'Vips',\n enDescriptor: 'Vip',\n cnDescriptor: '实例内网IP地址',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'VpcIds',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '私有网络ID',\n link: 'https://cloud.tencent.com/document/api/215/15778',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'Subnet ID',\n cnDescriptor: '子网ID',\n link: 'https://cloud.tencent.com/document/api/215/15784',\n type: 'inputmulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '项目ID',\n link: 'https://cloud.tencent.com/document/product/378/4400',\n type: 'input',\n },\n {\n key: 'SecurityGroupId',\n enDescriptor: 'Security Group ID',\n cnDescriptor: '安全组ID',\n link: 'https://cloud.tencent.com/document/api/236/15854',\n type: 'input',\n },\n];\n\nconst CDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...CDBFields },\n};\n\nconst CDBInstanceAliasList = ['InstanceId', 'InstanceName', 'Vip'];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n return (\n dimension.length === 2 &&\n ((_.indexOf(dimension, 'instanceid') !== -1 && _.indexOf(dimension, 'insttype') !== -1) ||\n (_.indexOf(dimension, 'InstanceId') !== -1 && _.indexOf(dimension, 'InstanceType') !== -1))\n );\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((i) => CDBInvalidDemensions[i] || i);\n });\n return metricTmp;\n}\nconst CDBInvalidDemensions = {\n instanceid: 'InstanceId',\n insttype: 'InstanceType',\n region: 'Region',\n};\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default CDB_STATE;\n\nexport {\n CDBFieldsDescriptor,\n CDBInstanceAliasList,\n templateQueryIdMap,\n CDBInvalidDemensions,\n isValidMetric,\n modifyDimensons,\n GetInstanceQueryParams as CDBGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CES';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cesQuery';\n\nconst CESInvalidDemensions = {\n uInstanceId: 'InstanceId',\n};\n\nconst CESInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst CESFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceIds: [],\n InstanceNames: [],\n OrderByKey: {},\n OrderByType: {},\n IpList: [],\n};\n\nconst CESFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '集群实例ID列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'InstanceNames',\n enDescriptor: 'InstanceNames',\n cnDescriptor: '集群实例名称列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'OrderByKey',\n enDescriptor: 'OrderByKey',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '实例ID', value: 1 },\n { text: '实例名称', value: 2 },\n { text: '可用区', value: 3 },\n { text: '创建时间', value: 4 },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n ],\n },\n {\n key: 'IpList',\n enDescriptor: 'IpList',\n cnDescriptor: '私有网络vip列表',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/845/30631',\n namespace,\n fieldDescriptor: CESFilterFieldsDescriptor,\n};\n\nconst CES_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: CESFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default CES_STATE;\nexport {\n CESFilterFieldsDescriptor,\n templateQueryIdMap,\n CESInstanceAliasList,\n CESInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CESGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DC';\nconst queryEditorName = 'dcQuery';\n\nconst DCFilterFields = {\n Limit: 20,\n Offset: 0,\n DirectConnectIds: [],\n};\n\nconst DCFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DirectConnectIds',\n enDescriptor: 'DirectConnectIds',\n cnDescriptor: '物理专线 ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/216/34826',\n namespace,\n fieldDescriptor: DCFilterFieldsDescriptor,\n};\n\nconst DC_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectId',\n queries: DCFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nconst DCInstanceAliasList = ['DirectConnectId', 'DirectConnectName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectId',\n};\n\nconst DCInvalidDemensions = {\n directConnectId: 'DirectConnectId',\n directconnectid: 'DirectConnectId',\n};\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['directConnectId'];\n });\n return metricTmp;\n}\nexport default DC_STATE;\nexport {\n DCFilterFieldsDescriptor,\n templateQueryIdMap,\n DCInstanceAliasList,\n DCInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as DCGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DCG';\nconst queryEditorName = 'dcgQuery';\n\nconst DCGInvalidDemensions = {\n directConnectGatewayId: 'DirectConnectGatewayId',\n};\n\nconst DCGInstanceAliasList = ['DirectConnectGatewayId', 'DirectConnectGatewayName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectGatewayId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst DCGFilterFields = {\n Limit: 20,\n Offset: 0,\n 'direct-connect-gateway-id': [],\n 'direct-connect-gateway-name': [],\n 'direct-connect-gateway-ip': [],\n 'gateway-type': {},\n 'network-type': {},\n 'ccn-id': [],\n 'vpc-id': [],\n};\n\nconst DCGFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'direct-connect-gateway-id',\n enDescriptor: 'direct-connect-gateway-id',\n cnDescriptor: '专线网关唯一ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-gateway-name',\n enDescriptor: 'direct-connect-gateway-name',\n cnDescriptor: '专线网关名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-gateway-ip',\n enDescriptor: 'direct-connect-gateway-ip',\n cnDescriptor: '专线网关IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'gateway-type',\n enDescriptor: 'gateway-type',\n cnDescriptor: '网关类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '普通型', value: 'NORMAL' },\n { text: 'NAT型', value: 'NAT' },\n ],\n },\n {\n key: 'network-type',\n enDescriptor: 'network-type',\n cnDescriptor: '网络类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '私有网络类型', value: 'VPC' },\n { text: '云联网类型', value: 'CCN' },\n ],\n },\n {\n key: 'ccn-id',\n enDescriptor: 'ccn-id',\n cnDescriptor: '专线网关所在云联网ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '专线网关所在私有网络ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/30644',\n namespace,\n fieldDescriptor: DCGFilterFieldsDescriptor,\n};\n\nconst DCG_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectGatewayId',\n queries: DCGFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default DCG_STATE;\nexport {\n DCGFilterFieldsDescriptor,\n templateQueryIdMap,\n DCGInstanceAliasList,\n DCGInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as DCGGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DCX';\nconst queryEditorName = 'dcxQuery';\n\nconst DCXFilterFields = {\n 'direct-connect-tunnel-name': [],\n 'direct-connect-tunnel-id': [],\n 'direct-connect-id': [],\n};\n\nconst DCXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'direct-connect-tunnel-name',\n enDescriptor: 'direct-connect-tunnel-name',\n cnDescriptor: '专用通道名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-tunnel-id',\n enDescriptor: 'direct-connect-tunnel-id',\n cnDescriptor: '专用通道实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-id',\n enDescriptor: 'direct-connect-id',\n cnDescriptor: '物理专线实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/216/19819',\n namespace,\n fieldDescriptor: DCXFilterFieldsDescriptor,\n};\n\nconst DCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectTunnelId',\n queries: {\n Limit: 20,\n Offset: 0,\n ...DCXFilterFields,\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n\nconst DCXInstanceAliasList = ['DirectConnectTunnelId', 'DirectConnectTunnelName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectTunnelId',\n};\n\nconst DCXInvalidDemensions = {\n directconnectconnid: 'DirectConnectTunnelId',\n directConnectConnId: 'DirectConnectTunnelId',\n};\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['directConnectConnId'];\n });\n return metricTmp;\n}\nexport default DCX_STATE;\nexport {\n DCXFilterFieldsDescriptor,\n templateQueryIdMap,\n DCXInstanceAliasList,\n DCXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as DCXGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM_LB';\nconst queryEditorName = 'ecmLbQuery';\n\nconst ECMLBInvalidDemensions = {\n vip: 'LoadBalancerVips',\n};\n\nconst ECMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst ECMLBFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n BackendPrivateIps: [],\n VpcId: '',\n};\n\nconst ECMLBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivateIps',\n cnDescriptor: '绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '实例所属私有网络唯一ID',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/48459',\n namespace,\n fieldDescriptor: ECMLBFilterFieldsDescriptor,\n};\n\nconst ECM_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: ECMLBFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// function isValidMetric(metricObj: any = {}) {\n// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);\n// }\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = ['UUID'];\n });\n return metricTmp;\n}\nexport default ECM_STATE;\nexport {\n ECMLBFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMLBInstanceAliasList,\n ECMLBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECMLBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst InstanceTypes = [\n { text: '所有实例', value: 0 },\n { text: '正式实例', value: 1 },\n { text: '临时实例', value: 2 },\n { text: '只读实例', value: 3 },\n { text: '正式,只读,灾备实例', value: -1 },\n];\n\nconst ClusterTypes = [\n { text: '副本集实例', value: 0 },\n { text: '分片实例', value: 1 },\n { text: '所有实例', value: -1 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '实例有效', value: 2 },\n { text: '实例已过期', value: -2 },\n];\n\nconst PayMode = [\n { text: '按量计费', value: 0 },\n { text: '包年包月', value: 1 },\n { text: '按量包年包月计费', value: -1 },\n];\n\nconst OrderBy = [\n { text: 'ProjectId', value: 'ProjectId' },\n { text: 'InstanceName', value: 'InstanceName' },\n { text: 'CreateTime', value: 'CreateTime' },\n];\n\nconst OrderByType = [\n { text: '升序', value: 'ASC' },\n { text: '降序', value: 'DESC' },\n];\n\nconst MongoDBFields = {\n InstanceIds: [],\n InstanceType: {},\n ClusterType: {},\n Status: [],\n VpcId: '',\n SubnetId: '',\n PayMode: {},\n Limit: 20,\n Offset: 0,\n OrderBy: '',\n OrderByType: '',\n};\n\nconst MONGODBFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstancesIds',\n cnDescriptor: '实例名称',\n type: 'inputmulti',\n },\n {\n key: 'InstanceType',\n enDescriptor: 'InstanceType',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: InstanceTypes,\n },\n {\n key: 'ClusterType',\n enDescriptor: 'ClusterType',\n cnDescriptor: '集群类型',\n link: '',\n type: 'select',\n list: ClusterTypes,\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '私有网络的子网ID,基础网络则不传该参数。入参设置该参数的同时,必须设置相应的VpcId',\n link: '',\n type: 'input',\n },\n {\n key: 'PayMode',\n enDescriptor: 'PayMode',\n cnDescriptor: '付费类型',\n link: '',\n type: 'select',\n list: PayMode,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderByType,\n },\n];\n\nconst MONGODB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...MongoDBFields },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst MONGODBInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst MONGODBInvalidDemensions = {\n target: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n replica: 'ReplicaSetId',\n};\n\nconst queryMonitorExtraConfg = {\n Replica: {\n dim_KeyInStorage: 'ReplicaSets',\n dim_KeyInTarget: 'replica',\n dim_KeyInMap: 'ReplicaSetId',\n dim_KeyInIns: 'ReplicaSetId',\n },\n Node: {\n dim_KeyInStorage: 'ReplicaNodeSets',\n dim_KeyInTarget: 'node',\n dim_KeyInMap: 'NodeId',\n dim_KeyInIns: 'NodeId',\n },\n};\nexport default MONGODB_STATE;\nexport {\n MONGODBFieldsDescriptor,\n MONGODBInvalidDemensions,\n MONGODBInstanceAliasList,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n GetInstanceQueryParams as MONGODBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/QAAP';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'qaapQuery';\n\nconst QAAPInvalidDemensions = {\n channelId: 'InstanceId',\n};\n\nconst QAAPInstanceAliasList = ['InstanceId'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst QAAPFilterFields = {\n Limit: 20,\n Offset: 0,\n ProjectId: [],\n AccessRegion: [],\n RealServerRegion: [],\n GroupId: [],\n};\n\nconst QAAPFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'AccessRegion',\n enDescriptor: 'AccessRegion',\n cnDescriptor: '接入地域',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'RealServerRegion',\n enDescriptor: 'RealServerRegion',\n cnDescriptor: '源站地域',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'GroupId',\n enDescriptor: 'GroupId',\n cnDescriptor: '通道组ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/608/36963',\n namespace,\n fieldDescriptor: QAAPFilterFieldsDescriptor,\n};\n\nconst QAAP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: QAAPFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n // metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = ['netDetectId'];\n // });\n return metricTmp;\n}\nexport default QAAP_STATE;\nexport {\n QAAPFilterFieldsDescriptor,\n templateQueryIdMap,\n QAAPInstanceAliasList,\n QAAPInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as QAAPGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/TCAPLUS';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tcaplusQuery';\n\nconst TCAPLUSInvalidDemensions = {\n // TableInstanceId: 'TableInstanceId',\n // ClusterId: 'ClusterId',\n};\n\n// 需和文件名对应\nconst TCAPLUSInstanceAliasList = ['TableInstanceId', 'TableName'];\n\nconst templateQueryIdMap = {\n instance: 'TableInstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst TCAPLUSFilterFields = {\n Limit: 20,\n Offset: 0,\n ClusterId: '',\n TableGroupIds: [],\n\n TableName: '',\n TableInstanceId: '',\n TableIdlType: {},\n TableType: {},\n ListElementNum: null,\n ReservedVolume: null,\n ReservedReadQps: null,\n ReservedWriteQps: null,\n Memo: '',\n FileName: '',\n FileExtType: '',\n FileSize: null,\n FileContent: '',\n};\n\nconst TCAPLUSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ClusterId',\n enDescriptor: 'ClusterId',\n cnDescriptor: '表格所属集群ID',\n link: '',\n type: 'input',\n },\n {\n key: 'TableGroupIds',\n enDescriptor: 'TableGroupIds',\n cnDescriptor: '表格组ID列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'TableName',\n enDescriptor: 'TableName',\n cnDescriptor: '表格名称',\n link: '',\n type: 'input',\n },\n {\n key: 'TableInstanceId',\n enDescriptor: 'TableInstanceId',\n cnDescriptor: '表实例ID',\n link: '',\n type: 'input',\n },\n {\n key: 'TableIdlType',\n enDescriptor: 'TableIdlType',\n cnDescriptor: '表格描述语言类型',\n link: '',\n type: 'select',\n list: [\n { text: 'PROTO', value: 'PROTO' },\n { text: 'TDR', value: 'TDR' },\n ],\n },\n {\n key: 'TableType',\n enDescriptor: 'TableType',\n cnDescriptor: '表格数据结构类型',\n link: '',\n type: 'select',\n list: [\n { text: 'GENERIC', value: 'GENERIC' },\n { text: 'LIST', value: 'LIST' },\n ],\n },\n {\n key: 'ListElementNum',\n enDescriptor: 'ListElementNum',\n cnDescriptor: 'LIST表元素个数',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedVolume',\n enDescriptor: 'ReservedVolume',\n cnDescriptor: '表格预留容量(GB)',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedReadQps',\n enDescriptor: 'ReservedReadQps',\n cnDescriptor: '表格预留读CU',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedWriteQps',\n enDescriptor: 'ReservedWriteQps',\n cnDescriptor: '表格预留写CU',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'Memo',\n enDescriptor: 'Memo',\n cnDescriptor: '表格备注信息',\n link: '',\n type: 'input',\n },\n {\n key: 'FileName',\n enDescriptor: 'FileName',\n cnDescriptor: 'Key回档文件名,回档专用',\n link: '',\n type: 'input',\n },\n {\n key: 'FileExtType',\n enDescriptor: 'FileExtType',\n cnDescriptor: 'Key回档文件扩展名,回档专用',\n link: '',\n type: 'input',\n },\n {\n key: 'FileSize',\n enDescriptor: 'FileSize',\n cnDescriptor: 'Key回档文件大小,回档专用',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'FileContent',\n enDescriptor: 'FileContent',\n cnDescriptor: 'Key回档文件内容,回档专用',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/596/39664',\n namespace,\n fieldDescriptor: TCAPLUSFilterFieldsDescriptor,\n};\n\nconst TCAPLUS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TableInstanceId',\n queries: TCAPLUSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n params.ClusterId = _.get(queries, 'ClusterId', '') || '';\n params.TableGroupIds = _.get(queries, 'TableGroupIds', []) || [];\n queries = _.omit(queries, ['Offset', 'Limit', 'TableGroupIds', 'ClusterId']);\n const SelectedTables: any[] = [];\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n SelectedTables[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n SelectedTables[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n SelectedTables[key] = item;\n }\n });\n params.SelectedTables = SelectedTables;\n return params;\n}\n// 和其他产品的展示保持一致\nconst regonsMap = {\n 'ap-beijing': '华北地区(北京)',\n 'ap-guangzhou': '华南地区(广州)',\n 'ap-hongkong': '港澳台地区(中国香港)',\n 'ap-seoul': '亚太东北(首尔)',\n 'ap-shanghai': '华东地区(上海)',\n 'ap-singapore': '亚太东南(新加坡)',\n 'ap-tokyo': '亚太东北(东京)',\n 'eu-frankfurt': '欧洲地区(法兰克福)',\n 'na-ashburn': '美国东部(弗吉尼亚)',\n 'na-siliconvalley': '美国西部(硅谷)',\n};\nexport default TCAPLUS_STATE;\nexport {\n TCAPLUSFilterFieldsDescriptor,\n templateQueryIdMap,\n TCAPLUSInstanceAliasList,\n TCAPLUSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regonsMap,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TCAPLUSGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VBC';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vbcQuery';\n\nconst VBCInvalidDemensions = {\n // CcnId: 'CcnId',\n};\n\n// 需和文件名对应\nconst VBCInstanceAliasList = ['CcnId', 'CcnName'];\n\nconst templateQueryIdMap = {\n instance: 'CcnId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst VBCFilterFields = {\n Limit: 20,\n Offset: 0,\n 'ccn-id': [],\n 'ccn-name': [],\n 'ccn-description': [],\n state: {},\n};\n\nconst VBCFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ccn-id',\n enDescriptor: 'ccn-id',\n cnDescriptor: 'CCN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ccn-name',\n enDescriptor: 'ccn-name',\n cnDescriptor: 'CCN名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ccn-description',\n enDescriptor: 'ccn-description',\n cnDescriptor: 'CCN描述',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'state',\n enDescriptor: 'state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '隔离中', value: 'ISOLATED' },\n { text: '运行中', value: 'AVAILABLE' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/19199',\n namespace,\n fieldDescriptor: VBCFilterFieldsDescriptor,\n};\n\nconst VBC_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'CcnId',\n DRegion: '',\n SRegion: '',\n queries: VBCFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// const regionSupported = [\n// { text: '华北地区(北京)', value: 'ap-beijing' },\n// { text: '西南地区(成都)', value: 'ap-chengdu' },\n// { text: '西南地区(重庆)', value: 'ap-chongqing' },\n// { text: '华南地区(广州)', value: 'ap-guangzhou' },\n// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n// { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n// { text: '华东地区(南京)', value: 'ap-nanjing' },\n// { text: '华东地区(上海)', value: 'ap-shanghai' },\n// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n// { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n// { text: '亚太东北(东京)', value: 'ap-tokyo' },\n// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n// { text: '北美地区(多伦多)', value: 'na-toronto' },\n// ];\nexport default VBC_STATE;\nexport {\n VBCFilterFieldsDescriptor,\n templateQueryIdMap,\n VBCInstanceAliasList,\n VBCInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n // regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as VBCGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPNGW';\nconst queryEditorName = 'vpngwQuery';\n\nconst VPNGWInvalidDemensions = {\n vpnGwId: 'VpnGatewayId',\n};\n\nconst VPNGWInstanceAliasList = ['VpnGatewayId', 'VpnGatewayName'];\n\nconst templateQueryIdMap = {\n instance: 'VpnGatewayId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPNGWFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'vpn-gateway-id': [],\n 'vpn-gateway-name': [],\n type: {},\n 'public-ip-address': [],\n 'renew-flag': {},\n zone: [],\n};\n\nconst VPNGWFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-id',\n enDescriptor: 'vpn-gateway-id',\n cnDescriptor: 'VPN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-name',\n enDescriptor: 'vpn-gateway-name',\n cnDescriptor: 'VPN实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'type',\n enDescriptor: 'type',\n cnDescriptor: 'VPN网关类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'IPSEC', value: 'IPSEC' },\n { text: 'SSL', value: 'SSL' },\n ],\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'public-ip-address',\n cnDescriptor: '公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'renew-flag',\n enDescriptor: 'renew-flag',\n cnDescriptor: '网关续费类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '手动续费', value: 'NOTIFY_AND_MANUAL_RENEW' },\n { text: '自动续费', value: 'NOTIFY_AND_AUTO_RENEW' },\n ],\n },\n {\n key: 'zone',\n enDescriptor: 'zone',\n cnDescriptor: 'VPN所在可用区',\n link: '',\n type: 'dropdownMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17514',\n namespace,\n fieldDescriptor: VPNGWFilterFieldsDescriptor,\n};\n\nconst VPNGW_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpnGatewayId',\n queries: VPNGWFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default VPNGW_STATE;\nexport {\n VPNGWFilterFieldsDescriptor,\n templateQueryIdMap,\n VPNGWInstanceAliasList,\n VPNGWInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as VPNGWGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPNX';\nconst queryEditorName = 'vpnxQuery';\n\nconst VPNXInvalidDemensions = {\n vpnConnId: 'VpnConnectionId',\n};\n\nconst VPNXInstanceAliasList = ['VpnConnectionId', 'VpnConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'VpnConnectionId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPNXFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'vpn-gateway-id': [],\n 'customer-gateway-id': [],\n 'vpn-connection-name': [],\n 'vpn-connection-id': [],\n};\n\nconst VPNXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-id',\n enDescriptor: 'vpn-gateway-id',\n cnDescriptor: 'VPN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'customer-gateway-id ',\n enDescriptor: 'customer-gateway-id ',\n cnDescriptor: '对端网关实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-connection-name',\n enDescriptor: 'vpn-connection-name',\n cnDescriptor: '通道名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-connection-id',\n enDescriptor: 'vpn-connection-id',\n cnDescriptor: '通道实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17515',\n namespace,\n fieldDescriptor: VPNXFilterFieldsDescriptor,\n};\n\nconst VPNX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpnConnectionId',\n queries: VPNXFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default VPNX_STATE;\nexport {\n VPNXFilterFieldsDescriptor,\n templateQueryIdMap,\n VPNXInstanceAliasList,\n VPNXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as VPNXGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nconst LighthouseStateType = [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n];\n\nconst LighthouseFilterFields = {\n zone: [],\n 'instance-name': [],\n 'instance-state': {},\n 'private-ip-address': [],\n 'public-ip-address': [],\n};\n\nconst LighthouseFilterFieldsDescriptor = [\n {\n key: 'instance-name',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: '实例主网卡的内网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'Public IP Address',\n cnDescriptor: '实例主网卡的公网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'zone',\n enDescriptor: 'Zone',\n cnDescriptor: '可用区',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'Instance State',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n list: LighthouseStateType,\n },\n];\n\nconst LIGHTHOUSE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n InstanceIds: [''],\n Filters: { ...LighthouseFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst LIGHTHOUSEInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];\n\nconst LighthouseInvalidDemensions = {\n instanceid: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\n\nexport default LIGHTHOUSE_STATE;\n\nexport {\n LighthouseFilterFieldsDescriptor,\n LIGHTHOUSEInstanceAliasList,\n LighthouseInvalidDemensions,\n templateQueryIdMap,\n modifyDimensons,\n GetInstanceQueryParams as LIGHTHOUSEGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nexport const CFSQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'FileSystemId',\n enDescriptor: 'File System Id',\n cnDescriptor: '文件系统 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络(VPC) ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '子网 ID',\n link: '',\n type: 'input',\n },\n];\n\nconst CFS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'FileSystemId',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n FileSystemId: '',\n VpcId: '',\n SubnetId: '',\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst CFSInstanceAliasList = ['FileSystemId', 'FsName'];\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst CFSInvalidDemensions = {\n // functionName: 'FunctionName',\n // namespace: 'Namespace'\n};\n\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-nanjing' },\n { value: 'ap-seoul' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default CFS_STATE;\nexport {\n CFSInstanceAliasList,\n CFSInvalidDemensions,\n templateQueryIdMap,\n regionSupported,\n GetInstanceQueryParams as CFSGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\n// export const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import _ from 'lodash';\nimport { FildDescriptorType } from '../_base/types';\n\nexport const InstanceQueryDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 50,\n },\n {\n key: 'QueueName',\n enDescriptor: 'QueueName',\n cnDescriptor: '精确匹配QueueName',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签搜索',\n link: '',\n type: 'input',\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = {\n queueId: 'QueueId',\n queueName: 'QueueName',\n};\n\nexport const templateQueryIdMap = {\n instance: 'QueueName',\n};\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['QueueName', 'QueueId'];\nexport { InstanceAliasList, GetInstanceQueryParams };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'QueueName',\n queries: {\n Offset: 0,\n Limit: 20,\n QueueName: '',\n TagKey: '',\n },\n};\n","import _ from 'lodash';\nconst instanceChargeTypes = [\n { text: '预付费', value: 'PREPAID' },\n { text: '后付费', value: 'POSTPAID_BY_HOUR' },\n { text: 'CDH付费', value: 'CDHPAID' },\n];\n\nconst CVMFilterFields = {\n zone: [],\n 'project-id': [],\n 'host-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n 'instance-id': [],\n 'security-group-id': [],\n 'instance-name': [],\n 'instance-charge-type': {},\n 'private-ip-address': [],\n 'public-ip-address': [],\n 'tag-key': [],\n};\n\nconst CVMFilterFieldsDescriptor = [\n {\n key: 'zone',\n enDescriptor: 'Zone',\n cnDescriptor: '可用区',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'project-id',\n enDescriptor: 'Project ID',\n cnDescriptor: '项目ID',\n link: 'https://cloud.tencent.com/document/api/378/4400',\n type: 'inputNumbermulti',\n },\n {\n key: 'host-id',\n enDescriptor: 'CDH ID',\n cnDescriptor: 'CDH ID',\n link: 'https://cloud.tencent.com/document/product/416/19730',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC ID',\n cnDescriptor: 'VPC ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'Subnet ID',\n cnDescriptor: '子网ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'security-group-id',\n enDescriptor: 'Security Group ID',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'tag-key',\n enDescriptor: '标签简',\n cnDescriptor: '标签简',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-charge-type',\n enDescriptor: 'Instance Charge Type',\n cnDescriptor: '实例计费模式',\n link: '',\n type: 'select',\n list: instanceChargeTypes,\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: '实例主网卡的内网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'Public IP Address',\n cnDescriptor: '实例主网卡的公网IP,包含实例创建时自动分配的IP和实例创建后手动绑定的弹性IP',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst CVM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n InstanceIds: [''],\n Filters: { ...CVMFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst CVMInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];\n\nconst CVMValidMetricsT = [\n 'CPUUsage',\n 'CpuLoadavg',\n 'Cpuloadavg5m',\n 'Cpuloadavg15m',\n 'BaseCpuUsage',\n 'GpuMemTotal',\n 'GpuMemUsage',\n 'GpuMemUsed',\n 'GpuPowDraw',\n 'GpuPowLimit',\n 'GpuPowUsage',\n 'GpuTemp',\n 'GpuUtil',\n 'LanOuttraffic',\n 'LanIntraffic',\n 'LanOutpkg',\n 'LanInpkg',\n 'WanOuttraffic',\n 'WanIntraffic',\n 'WanOutpkg',\n 'WanInpkg',\n 'AccOuttraffic',\n 'TcpCurrEstab',\n 'TimeOffset',\n 'MemUsed',\n 'MemUsage',\n 'CvmDiskUsage',\n 'BaseCpuUsage',\n 'VmDiskReadIops',\n];\n// const CVMInvalidDemensions = {\n// 'vm_uuid': 'InstanceId',\n// 'vmUuid': 'InstanceId',\n// };\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nfunction isValidMetric(metric) {\n const CVMValidMetrics = _.map(CVMValidMetricsT, _.toUpper);\n return _.indexOf(CVMValidMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\nexport default CVM_STATE;\nexport {\n CVMFilterFieldsDescriptor,\n CVMInstanceAliasList,\n isValidMetric,\n modifyDimensons,\n templateQueryIdMap,\n // CVMInvalidDemensions,\n GetInstanceQueryParams as CVMGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst namespace = 'QCE/PCX';\n\nconst PCXFields = {\n limit: 20,\n offset: 0,\n peeringConnectionId: '',\n peeringConnectionName: '',\n vpcId: '',\n state: undefined,\n};\n\nconst PCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'peeringConnectionId',\n queries: { ...PCXFields },\n};\n\nconst StateTypes = [\n { text: '申请中', value: 0 },\n { text: '连接成功', value: 1 },\n { text: '已过期', value: 2 },\n { text: '对端已拒绝', value: 3 },\n { text: '对端已删除', value: 4 },\n];\n\nconst PCXFieldsDescriptor = [\n {\n key: 'offset',\n enDescriptor: 'offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'limit',\n enDescriptor: 'limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为50',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 50,\n },\n {\n key: 'peeringConnectionId',\n enDescriptor: 'PeeringConnection Id',\n cnDescriptor: '私有网络对等连接 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'peeringConnectionName',\n enDescriptor: 'PeeringConnection Name',\n cnDescriptor: '对等连接名称',\n link: '',\n type: 'input',\n },\n {\n key: 'vpcId',\n enDescriptor: 'vpcId',\n cnDescriptor: '发起方私有网络 ID 值',\n link: 'https://cloud.tencent.com/document/api/215/1372',\n type: 'dropdown',\n },\n {\n key: 'state',\n enDescriptor: 'state',\n cnDescriptor: '连接状态',\n link: '',\n type: 'select',\n list: StateTypes,\n },\n];\n\nconst PCXInstanceAliasList = ['peeringConnectionId', 'peeringConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'peeringConnectionId',\n};\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.limit = _.get(queries, 'limit', 20) || 20;\n params.offset = _.get(queries, 'offset', 0) || 0;\n queries = _.omit(queries, ['offset', 'limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nexport default PCX_STATE;\n\nexport {\n PCXInstanceAliasList,\n PCXFieldsDescriptor,\n templateQueryIdMap,\n namespace,\n GetInstanceQueryParams as PCXGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst BillingMode = [\n { text: '按量计费', value: 'postpaid' },\n { text: '包年包月', value: 'prepaid' },\n];\n\nconst AutoRenew = [\n { text: '手动续费', value: 0 },\n { text: '自动续费', value: 1 },\n { text: '明确不自动续费', value: 2 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '已隔离', value: -2 },\n { text: '待删除', value: -3 },\n];\n\nconst TypeVersion = [\n { text: '单机版', value: 1 },\n { text: '主从版', value: 2 },\n { text: '集群版', value: 3 },\n];\n\nconst OrderBy = [\n { text: 'projectId', value: 'projectId' },\n { text: 'instancename', value: 'instancename' },\n { text: 'createtime', value: 'createtime' },\n { text: 'type', value: 'type' },\n { text: 'curDeadline', value: 'curDeadline' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\nconst Type = [\n { text: 'Redis老集群版', value: 1 },\n { text: 'Redis 2.8主从版', value: 2 },\n { text: 'CKV主从版', value: 3 },\n { text: 'CKV集群版', value: 4 },\n { text: 'Redis 2.8单机版', value: 5 },\n { text: 'Redis 4.0主从版', value: 6 },\n { text: 'Redis 4.0集群版', value: 7 },\n { text: 'Redis5.0主从版', value: 8 },\n { text: 'Redis5.0集群版', value: 9 },\n];\n\nconst RedisFields = {\n InstanceId: '',\n OrderBy: '',\n OrderType: null,\n VpcIds: [],\n SubnetIds: [],\n ProjectIds: [],\n SearchKey: '',\n InstanceName: '',\n UniqVpcIds: [],\n UniqSubnetIds: [],\n Status: [],\n TypeVersion: null,\n EngineName: '',\n AutoRenew: null,\n BillingMode: '',\n Type: null,\n};\n\nconst RedisFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstancesId',\n cnDescriptor: '实例id',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderType',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderType,\n },\n {\n key: 'VpcIds',\n enDescriptor: 'VpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'SubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '项目ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '查找实例的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'InstanceName',\n enDescriptor: 'InstanceName',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'UniqVpcIds',\n enDescriptor: 'UniqVpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'UniqSubnetIds',\n enDescriptor: 'UniqSubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'TypeVersion',\n enDescriptor: 'TypeVersion',\n cnDescriptor: '类型版本',\n link: '',\n type: 'select',\n list: TypeVersion,\n },\n {\n key: 'EngineName',\n enDescriptor: 'EngineName',\n cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenew',\n enDescriptor: 'AutoRenew',\n cnDescriptor: '续费模式',\n multiple: true,\n type: 'select',\n list: AutoRenew,\n },\n {\n key: 'BillingMode',\n enDescriptor: 'BillingMode',\n cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',\n link: '',\n type: 'select',\n list: BillingMode,\n },\n {\n key: 'Type',\n enDescriptor: 'Type',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: Type,\n },\n];\n\nconst REDIS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...RedisFields },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n return dimension.length === 1 && _.indexOf(dimension, 'instanceid') !== -1;\n}\n\nconst REDISInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];\n\nconst RedisInvalidDemensions = {\n redis_uuid: 'InstanceId',\n instanceid: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default REDIS_STATE;\nexport {\n RedisFieldsDescriptor,\n RedisInvalidDemensions,\n templateQueryIdMap,\n REDISInstanceAliasList,\n isValidMetric,\n GetInstanceQueryParams as REDISGetInstanceQueryParams,\n};\n","import { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst ApplicationType = [\n { text: '所有', value: '' },\n { text: '容器应用', value: 'C' },\n { text: '普通应用/虚拟机应用', value: 'V' },\n];\n\nconst MicroserviceType = [\n { text: '所有', value: '' },\n { text: '普通应用', value: 'N' },\n { text: 'Mesh应用', value: 'M' },\n { text: '微服务网关应用', value: 'G' },\n { text: '原生应用', value: 'NATIVE' },\n];\n\nconst ApplicationResourceType = [\n { text: '默认资源类型', value: 'DEF' },\n { text: '微服务网关资源', value: 'GW' },\n];\n\nconst TSFFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'SearchWord',\n enDescriptor: 'SearchWord',\n cnDescriptor: '搜索关键字',\n link: '',\n type: 'input',\n },\n {\n key: 'ApplicationIdList',\n enDescriptor: 'ApplicationIdList',\n cnDescriptor: '应用ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ApplicationType',\n enDescriptor: 'ApplicationType',\n cnDescriptor: '应用类型',\n link: '',\n type: 'select',\n list: ApplicationType,\n },\n {\n key: 'MicroserviceType',\n enDescriptor: 'MicroserviceType',\n cnDescriptor: '应用的微服务类型',\n link: '',\n type: 'select',\n list: MicroserviceType,\n },\n {\n key: 'ApplicationResourceTypeList',\n enDescriptor: 'ApplicationResourceTypeList',\n cnDescriptor: '应用资源类型数组',\n link: '',\n type: 'select',\n multiple: true,\n list: ApplicationResourceType,\n },\n];\n\nconst TSF_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ApplicationId',\n queries: {\n Limit: 20,\n Offset: 0,\n SearchWord: '',\n OrderBy: '',\n OrderType: null,\n ApplicationType: '',\n MicroserviceType: '',\n ApplicationResourceTypeList: [],\n ApplicationIdList: [],\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nconst TSFInstanceAliasList = ['ApplicationId', 'ApplicationName'];\n\nconst TSFInvalidDemensions = {\n applicationid: 'ApplicationId',\n};\n\nconst templateQueryIdMap = {\n instance: 'ApplicationId',\n};\n\nexport default TSF_STATE;\nexport {\n TSFInvalidDemensions,\n templateQueryIdMap,\n TSFInstanceAliasList,\n TSFFieldsDescriptor,\n GetInstanceQueryParams as TSFGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst networkTypes = [\n { text: 'BGP', value: 'BGP' },\n { text: 'SINGLEISP', value: 'SINGLEISP' },\n { text: 'ANYCAST', value: 'ANYCAST' },\n];\n\nconst chargeTypes = [\n { text: 'top5计费', value: 'TOP5_POSTPAID_BY_MONTH' },\n { text: '月95计费', value: 'PERCENT95_POSTPAID_BY_MONTH' },\n];\nconst BWPFilterFields = {\n 'bandwidth-package_id': [],\n 'bandwidth-package-name': [],\n 'network-type': [],\n 'charge-type': [],\n};\n\nconst BWPFilterFieldsDescriptor = [\n {\n key: 'bandwidth-package_id',\n enDescriptor: 'BandwidthPackage Id',\n cnDescriptor: '带宽包ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'bandwidth-package-name',\n enDescriptor: 'BandwidthPackage Name',\n cnDescriptor: '带宽包名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'network-type',\n enDescriptor: 'network type',\n cnDescriptor: '带宽包类型',\n link: '',\n type: 'select',\n list: networkTypes,\n },\n {\n key: 'charge-type',\n enDescriptor: 'charge type',\n cnDescriptor: '带宽包计费类型',\n link: '',\n type: 'select',\n list: chargeTypes,\n },\n];\n\nconst BWP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'BandwidthPackageId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n BandwidthPackageIds: [''],\n Filters: { ...BWPFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.BandwidthPackageIds)) {\n const BandwidthPackageIds = _.compact(queries.BandwidthPackageIds);\n if (_.uniq(BandwidthPackageIds).length > 0) {\n params.BandwidthPackageIds = _.uniq(BandwidthPackageIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst BWPInstanceAliasList = ['BandwidthPackageId', 'BandwidthPackageName'];\n\nconst templateQueryIdMap = {\n instance: 'BandwidthPackageId',\n};\n\nconst BWPInvalidDemensions = {\n bandwidthPackageId: 'BandwidthPackageId',\n};\nexport default BWP_STATE;\nexport {\n BWPFilterFieldsDescriptor,\n templateQueryIdMap,\n BWPInstanceAliasList,\n BWPInvalidDemensions,\n GetInstanceQueryParams as BWPGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst CDNFilterFields = {\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst CDNFilterFieldsDescriptor = [\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumbermulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst CDN_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...CDNFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n // console.log('item', item, queries);\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Value: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n return params;\n}\n\nconst CDNInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst CDNInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default CDN_STATE;\nexport {\n CDNFilterFieldsDescriptor,\n templateQueryIdMap,\n CDNInstanceAliasList,\n CDNInvalidDemensions,\n GetInstanceQueryParams as CDNGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\n// export const LBQueryDescriptor = [{\n// key: 'Offset',\n// enDescriptor: 'Offset',\n// cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n// link: '',\n// type: 'inputnumber',\n// min: 0,\n// },\n// {\n// key: 'Limit',\n// enDescriptor: 'Limit',\n// cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为2000',\n// link: '',\n// type: 'inputnumber',\n// min: 1,\n// max: 2000,\n// },\n// {\n// key: 'AddressId',\n// enDescriptor: 'Address Id',\n// cnDescriptor: '标识 EIP 的唯一 ID ',\n// link: '',\n// type: 'inputmulti',\n// }\n// ];\n\nexport const LBFilterDescriptor = [\n {\n key: 'address-id',\n enDescriptor: 'Address ID',\n cnDescriptor: 'EIP 的唯一 ID ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-name',\n enDescriptor: 'Address Name',\n cnDescriptor: 'EIP 名称 ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-ip',\n enDescriptor: 'Address IP',\n cnDescriptor: 'EIP 的 IP 地址 ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-status',\n enDescriptor: 'Address Status',\n cnDescriptor: 'EIP 的状态',\n link: '',\n type: 'select',\n list: [\n { value: 'CREATING', text: 'CREATING' },\n { value: 'BINDING', text: 'BINDING' },\n { value: 'BIND', text: 'BIND' },\n { value: 'UNBINDING', text: 'UNBINDING' },\n { value: 'UNBIND', text: 'UNBIND' },\n { value: 'OFFLINING', text: 'OFFLINING' },\n { value: 'BIND_ENI', text: 'BIND_ENI' },\n ],\n },\n {\n key: 'instance-id',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: 'EIP 绑定的内网 IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'network-interface-id',\n enDescriptor: 'Network Interface ID',\n cnDescriptor: 'EIP 绑定的弹性网卡 ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'is-arrears',\n enDescriptor: 'Arrears',\n cnDescriptor: 'EIP 是否欠费 ',\n link: '',\n type: 'select',\n list: [\n { text: '正常', value: 'FALSE' },\n { text: '欠费', value: 'TRUE' },\n ],\n },\n];\n\n// const LBFilterFields = {\n// \"address-id\": [],\n// \"address-name\": [],\n// \"address-ip\": [],\n// \"address-status \": [],\n// \"instance-id \": [],\n// \"private-ip-address\": [],\n// \"network-interface-id \": [],\n// \"is-arrears \": [],\n// };\n\nconst InstanceKey = 'AddressIds';\nconst LB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'AddressId',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n [InstanceKey]: [''],\n Filters: {\n 'address-id': [],\n 'address-name': [],\n 'address-ip': [],\n 'address-status ': [],\n 'instance-id ': [],\n 'private-ip-address': [],\n 'network-interface-id ': [],\n 'is-arrears ': [],\n },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries[InstanceKey])) {\n const InstanceIds = _.compact(queries[InstanceKey]);\n if (_.uniq(InstanceIds).length > 0) {\n params[InstanceKey] = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst LBInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];\n\n// 维度eip对应于实例中的哪个字段?映射\nconst LBInvalidDemensions = {\n eip: 'AddressIp',\n};\n\nconst templateQueryIdMap = {\n instance: 'AddressId',\n};\n// 从monitor维度到LB实例对应字段的映射\n// export const metric2Instance = {\n// functionName: 'FunctionName',\n// namespace: 'Namespace'\n// };\n\nexport default LB_STATE;\nexport {\n LBInstanceAliasList,\n LBInvalidDemensions,\n templateQueryIdMap,\n GetInstanceQueryParams as LBGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\n// export const LBDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import _ from 'lodash';\n\nconst NATGATEWAYInstanceAliasList = ['NatGatewayId', 'NatGatewayName'];\n\nconst NATGatewayFilterFields = {\n 'nat-gateway-id': [],\n 'nat-gateway-name': [],\n 'vpc-id': [],\n};\n\nconst NATGatewayFilterFieldsDescriptor = [\n {\n key: 'nat-gateway-id',\n enDescriptor: 'NatGateway ID',\n cnDescriptor: 'NAT网关统一 ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'nat-gateway-name',\n enDescriptor: 'NatGateway Name',\n cnDescriptor: 'NatGateway Name',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC ID',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst NATGATEWAY_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'NatGatewayId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n NatGatewayIds: [''],\n Filters: { ...NATGatewayFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.NatGatewayIds)) {\n const NatGatewayIds = _.compact(queries.NatGatewayIds);\n if (_.uniq(NatGatewayIds).length > 0) {\n params.InstanceIds = _.uniq(NatGatewayIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst templateQueryIdMap = {\n instance: 'NatGatewayId',\n};\n\nconst NATInvalidDemensions = {\n natId: 'NatGatewayId',\n};\n\nexport default NATGATEWAY_STATE;\nexport {\n NATGatewayFilterFieldsDescriptor,\n NATGATEWAYInstanceAliasList,\n templateQueryIdMap,\n NATInvalidDemensions,\n GetInstanceQueryParams as NATGATEWAYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst CDNFilterFields = {\n origin: [],\n domain: [],\n resourceId: [],\n status: [],\n serviceType: [],\n projectId: [],\n domainType: [],\n fullUrlCache: [],\n https: [],\n originPullProtocol: [],\n tagKey: [],\n};\n\nconst OVCDNFilterFieldsDescriptor = [\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumbermulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst OVCDN_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...CDNFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Value: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n return params;\n}\n\nconst OVCDNInstanceAliasList = ['Domain', 'ResourceId'];\n\nconst OVCDNInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default OVCDN_STATE;\nexport {\n OVCDNFilterFieldsDescriptor,\n OVCDNInstanceAliasList,\n templateQueryIdMap,\n OVCDNInvalidDemensions,\n GetInstanceQueryParams as OVCDNGetInstanceQueryParams,\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__69__;","import _ from 'lodash';\n\nconst TKE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n conditions: [],\n groupBys: '',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: true,\n ClusterIds: [''],\n Filters: {\n ClusterName: [],\n ClusterType: [],\n ClusterStatus: [],\n 'tag-key': [],\n },\n },\n};\n\nconst TKEFilterFieldsDescriptor = [\n {\n key: 'ClusterName',\n enDescriptor: 'Cluster Name',\n cnDescriptor: '集群名',\n link: '',\n type: 'input',\n },\n {\n key: 'ClusterType',\n enDescriptor: 'Cluster Type',\n cnDescriptor: '集群类型',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ClusterStatus',\n enDescriptor: 'Cluster Status',\n cnDescriptor: '集群状态',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Tags',\n enDescriptor: 'Tags',\n cnDescriptor: '标签键值对',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC',\n cnDescriptor: 'VPC',\n link: '',\n type: 'input',\n },\n {\n key: 'tag-key',\n enDescriptor: 'Tag Key',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'tag-value',\n enDescriptor: 'Tag Value',\n cnDescriptor: '标签值',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst TKEInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nexport default TKE_STATE;\n\nexport { TKEFilterFieldsDescriptor, TKEInstanceAliasList, GetInstanceQueryParams as TKEGetInstanceQueryParams };\n","import {\n APIGATEWAYInstanceAliasList,\n APIGATEWAYInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = APIGATEWAYInstanceAliasList;\n InvalidDimensions = APIGATEWAYInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'apigateway',\n action: 'DescribeServicesStatus',\n responseField: 'ServiceSet',\n };\n\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async getEnvironmentNameList(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeServiceEnvironmentList' }\n );\n },\n {\n ServiceId: instanceId,\n },\n 'EnvironmentList'\n );\n const [rs] = res;\n return rs;\n }\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'DescribeServiceEnvironmentList') {\n const rs = await this.getEnvironmentNameList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.environmentName];\n return {\n text: o[this.templateQueryIdMap.environmentName],\n value: o[this.templateQueryIdMap.environmentName],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.environmentList, rs);\n return result;\n }\n return [];\n }\n}\n","import {\n BMINTRALBInstanceAliasList,\n BMINTRALBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n isValidMetric,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMINTRALBInstanceAliasList;\n InvalidDimensions = BMINTRALBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmlb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n interceptor: {\n request: (params) => ({\n ...params,\n LoadBalancerType: 'internal',\n }), // 设置一些请求参数的 默认值\n },\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return item;\n }\n return null;\n })\n );\n }\n}\n","import { BMLBInstanceAliasList, CPMInvalidDemensions, namespace, templateQueryIdMap, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMLBInstanceAliasList;\n InvalidDimensions = CPMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmlb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n interceptor: {\n request: (params) => ({\n ...params,\n LoadBalancerType: 'open',\n }), // 设置一些请求参数的 默认值\n },\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return item;\n }\n return null;\n })\n );\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n}\n","import {\n BMPCXInstanceAliasList,\n BMPCXInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMPCXInstanceAliasList;\n InvalidDimensions = BMPCXInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmvpc',\n action: 'DescribeVpcPeerConnections',\n responseField: 'VpcPeerConnectionSet',\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n}\n","import { BWPInstanceAliasList, BWPInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class BWPDatasource extends BaseDatasource {\n Namespace = 'QCE/BWP';\n InstanceAliasList = BWPInstanceAliasList;\n InvalidDimensions = BWPInvalidDemensions;\n templateQueryIdMap = {\n instance: 'BandwidthPackageId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeBandwidthPackages',\n responseField: 'BandwidthPackageSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { CBSInstanceAliasList, CBSInvalidDemensions, namespace, templateQueryIdMap, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CBSInstanceAliasList;\n InvalidDimensions = CBSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cbs',\n action: 'DescribeDisks',\n responseField: 'DiskSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.filter(rawSet, isValidMetric);\n }\n}\n","import _ from 'lodash';\nimport {\n CDBInstanceAliasList,\n CDBInvalidDemensions,\n isValidMetric,\n modifyDimensons,\n templateQueryIdMap,\n} from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDBDatasource extends BaseDatasource {\n Namespace = 'QCE/CDB';\n InstanceAliasList = CDBInstanceAliasList;\n InvalidDimensions = CDBInvalidDemensions;\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'cdb',\n action: 'DescribeDBInstances',\n responseField: 'Items',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return modifyDimensons(item);\n }\n return null;\n })\n );\n }\n /**\n * 获取 可用区\n * @param region 地域信息\n */\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.ZoneId, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n // 仅对维度组合是InstanceId和InstanceType的指标,其他指标不支持\n getDefaultInsObj(ins: string) {\n return {\n [templateQueryIdMap.instance]: ins,\n InstanceType: 1,\n };\n }\n}\n","import _ from 'lodash';\nimport { CDNInstanceAliasList, CDNInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDNDatasource extends BaseDatasource {\n Namespace = 'QCE/CDN';\n InstanceAliasList = CDNInstanceAliasList;\n InvalidDimensions = CDNInvalidDemensions;\n templateQueryIdMap = {\n instance: 'Domain',\n };\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import { CDNPROVINCEInstanceAliasList, CDNPROVINCEInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CDNPROVINCEInstanceAliasList;\n InvalidDimensions = CDNPROVINCEInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n extrasAlias = ['isp', 'district'];\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n async getConsumerList(params: any) {\n const { region, field } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'cdn');\n\n // 从分页数据,获取全量数据\n const rs = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Name: field,\n },\n },\n serviceInfo.service,\n { action: 'DescribeMapInfo' }\n );\n return (rs.MapInfoList || []).map((o) => {\n return {\n text: o.Name,\n value: o.Name,\n };\n });\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n if (action === 'DescribeMapInfo') {\n const { name: field } = query;\n const rs = await this.getConsumerList({ region, field });\n return rs;\n }\n return [];\n }\n}\n","import {\n CEIPSUMMARYInstanceAliasList,\n CEIPInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CEIPSUMMARYInstanceAliasList;\n InvalidDimensions = CEIPInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeAddresses',\n responseField: 'AddressSet',\n interceptor: {\n request: (params) => {\n const { Filters } = params;\n if (!Filters) {\n params.Filters = [];\n }\n params.Filters.push({\n Name: 'address-type',\n Values: ['AnycastEIP'],\n });\n return params;\n }, // 设置一些请求参数的 默认值\n // response: (data: unknown[]) =>[\n // {\n // AddressId: 'AddressId',\n // AddressIp: '111.22.3.4'\n // },\n // ],\n },\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n // async getInstances(region, params = {}) {\n // const rawSet = await super.getInstances(region, params);\n // return rawSet.filter((item) => item.AddressType === 'AnycastEIP');\n // }\n\n // async getVariableInstances(region, query = {}) {\n // const rawSet = await super.getVariableInstances(region, query);\n // return rawSet.filter((item) => item.AddressType === 'AnycastEIP');\n // }\n}\n","import { CESInstanceAliasList, CESInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CESInstanceAliasList;\n InvalidDimensions = CESInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'es',\n action: 'DescribeInstances',\n responseField: 'InstanceList',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\nimport { CFSInstanceAliasList, CFSInvalidDemensions, regionSupported } from './query_def';\nimport { t } from '../../../locale';\nexport default class CFSDatasource extends BaseDatasource {\n InstanceKey: string;\n Namespace: string;\n InstanceAliasList: string[];\n InvalidDimensions: Record;\n templateQueryIdMap = {\n instance: 'FileSystemId',\n };\n extrasAlias = ['version'];\n InstanceReqConfig: { service?: string | undefined; action: string; responseField: string };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n\n this.Namespace = 'QCE/CFS';\n this.InstanceAliasList = CFSInstanceAliasList;\n this.InvalidDimensions = CFSInvalidDemensions;\n this.InstanceReqConfig = {\n service: 'cfs',\n action: 'DescribeCfsFileSystems',\n responseField: 'FileSystems',\n };\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n}\n","import _, { flattenDeep } from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n CKAFKAInstanceAliasList,\n CKAFKATopicAliasList,\n CKAFKAInvalidDemensions,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\n\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class CKFKADatasource extends BaseDatasource {\n Namespace = 'QCE/CKAFKA';\n InstanceAliasList = CKAFKAInstanceAliasList;\n TopicAliasList = CKAFKATopicAliasList;\n InvalidDimensions = CKAFKAInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'ckafka',\n action: 'DescribeInstances',\n responseField: 'InstanceList',\n };\n extraMetricDims = ['topicId'];\n // extrasAlias = ['topicId', 'consumerGroup', 'partition'];\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n consumerGroupCache = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getConsumerGroups(region, params) {\n const serviceInfo = GetServiceAPIInfo(region, 'ckafka');\n let { InstanceId, groupname = '', topicid = '' } = params;\n groupname = this.getVariable(groupname); // 将模板转换为真实值\n topicid = this.getVariable(topicid); // 将模板转换为真实值\n try {\n groupname = JSON.parse(groupname)[templateQueryIdMap.groupName];\n topicid = JSON.parse(topicid)[templateQueryIdMap.topicId];\n } catch (e) {}\n let consumerGoup = this.consumerGroupCache[InstanceId];\n if (!consumerGoup) {\n // 从分页数据,获取全量数据\n consumerGoup = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeConsumerGroup' }\n );\n },\n _.pick(params, 'InstanceId'),\n ['GroupListForMonitor', 'TopicListForMonitor', 'PartitionListForMonitor', 'GroupList']\n );\n // topick数据从DescribeTopic\n const topicList = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeTopic' }\n );\n },\n _.pick(params, 'InstanceId'),\n ['TopicList']\n );\n consumerGoup[1] = flattenDeep(topicList);\n console.log({ consumerGoup, topicList });\n this.consumerGroupCache[InstanceId] = consumerGoup;\n }\n\n let [GroupList, TopicList, PartitionList, GroupDetailList] = consumerGoup;\n // 无重复数组\n TopicList = _.uniqBy(TopicList, (item) => (item as any).TopicId);\n GroupList = _.uniqBy(GroupList, (item) => (item as any).GroupName);\n PartitionList = _.uniqBy(PartitionList, (item) => (item as any).PartitionId);\n GroupDetailList = _.uniqBy(GroupDetailList, (item) => (item as any).ConsumerGroupName);\n // 如果传入消费者信息,consumergroupname,获取该用户的订阅信息列表\n const SubscribedInfos = GroupDetailList.find((d) => d.ConsumerGroupName === groupname)?.SubscribedInfo || [];\n // 这里为了兼容PartitonList格式,最后转化为数组对象的方式\n const partitions =\n SubscribedInfos.find((sub) => sub.TopicId === topicid)?.Partition?.map((p) => ({\n [templateQueryIdMap.partition]: p,\n })) || [];\n return {\n GroupList,\n TopicList:\n SubscribedInfos.length > 0\n ? SubscribedInfos.map(({ TopicId, TopicName }) => ({ TopicId, TopicName }))\n : TopicList,\n PartitionList: partitions.length > 0 ? partitions : PartitionList,\n };\n }\n formatTopicVarDisplay(topic: Record, displayTpl: string | undefined, topicAlias: string) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !this.TopicAliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(topic, b);\n });\n }\n return this.getAliasValue(topic, topicAlias);\n }\n // 查询指标下的数据\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n let { topicalias, groupname, topicid } = query;\n const result = await this.getConsumerGroups(region, {\n InstanceId: instance.InstanceId,\n groupname,\n topicid,\n });\n let { display } = query;\n const { TopicList, GroupList, PartitionList } = result;\n topicalias = this.TopicAliasList.includes(topicalias) ? topicalias : this.templateQueryIdMap.topicId;\n\n const rs = {\n GroupList: GroupList.map((group) => {\n group._InstanceAliasValue = group.GroupName;\n return {\n text: group.GroupName,\n value: group[templateQueryIdMap.groupName],\n };\n }),\n TopicList: TopicList.map((topic) => {\n const topicAlias = this.formatTopicVarDisplay(topic, display, topicalias);\n topic._InstanceAliasValue = topicAlias || topic[templateQueryIdMap.topicId];\n return {\n text: topicAlias || topic[templateQueryIdMap.topicId],\n value: topic[templateQueryIdMap.topicId], // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去\n TopicName: topic.TopicName,\n };\n }),\n PartitionList: PartitionList.map((par) => {\n par._InstanceAliasValue = par[templateQueryIdMap.partition];\n return {\n text: par[templateQueryIdMap.partition],\n value: par[templateQueryIdMap.partition],\n };\n }),\n };\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.TopicList, TopicList);\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.GroupList, GroupList);\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.PartitionList, PartitionList);\n // console.log({ res1, res2, res3 });\n // console.log({rs});\n // 根据action返回指定的维度数据列表\n switch (action) {\n case 'DescribeTopicList':\n return rs.TopicList;\n case 'DescribeGroup':\n return rs.GroupList;\n case 'DescribePartion':\n return rs.PartitionList;\n default:\n return [];\n }\n }\n\n // async getOtherAlias(datapoints) {\n // let dimension;\n // for(let j = 0; j < datapoints.Dimensions.length; j++){\n // if(datapoints.Dimensions[j] !== 'InstanceName'){\n // dimension.push(datapoints.Dimensions[j])\n // }\n // }\n // console.log(dimension);\n\n // return dimension\n // }\n}\n","import {\n InstanceAliasList,\n LOADBALANCEListenerAliasList,\n LOADBALANCEServerAliasList,\n LOADBALANCEVALIDDIMENSIONS,\n templateQueryIdMap,\n keyInStorage,\n CANDIATEDIMENSIONS,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class DCDatasource extends BaseDatasource {\n // Namespace = namespace;\n InstanceAliasList = InstanceAliasList;\n ListenerAliasList = LOADBALANCEListenerAliasList;\n ServerAliasList = LOADBALANCEServerAliasList;\n CandiateDimensions = CANDIATEDIMENSIONS;\n // InvalidDimensions = LOADBALANCEVALIDDIMENSIONS;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n // InstanceReqConfig = {\n // service: 'clb',\n // action: 'DescribeLoadBalancers',\n // responseField: 'LoadBalancerSet',\n // };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getInvalidDimensions(selfIns: any, tagret: any) {\n if (selfIns.service === 'lbPrivate' || (selfIns.service === 'lbPublic' && tagret.servers))\n return { ...LOADBALANCEVALIDDIMENSIONS, vpcId: 'NumericalVpcId' };\n return LOADBALANCEVALIDDIMENSIONS;\n }\n getInstanceReqConfig(selfIns: any) {\n const res: any = {\n service: 'clb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n if (selfIns.service === 'lbPrivate' || selfIns.service === 'loadBalance') {\n res.interceptor = {\n request: (param) => ({ ...param, LoadBalancerType: 'INTERNAL' }),\n };\n }\n if (selfIns.service === 'lbPublic') {\n res.interceptor = {\n request: (param) => ({ ...param, LoadBalancerType: 'OPEN' }),\n };\n }\n return res;\n }\n async getListenerList(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'clb');\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeListeners' }\n );\n },\n {\n LoadBalancerId: instanceId,\n },\n 'Listeners'\n );\n const [rs] = res;\n return rs;\n }\n formatVariableDisplay(data: Record, displayTpl: string | undefined, alias: string, aliasList: string[]) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !aliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(data, b);\n });\n }\n return this.getAliasValue(data, alias);\n }\n async getServerList(params: any) {\n const { region, instanceId, listenerId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'clb');\n\n const res = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { LoadBalancerId: instanceId, ListenerIds: [listenerId] },\n },\n serviceInfo.service,\n { region, action: 'DescribeTargets' }\n );\n const { Listeners } = res;\n const serversList = _.reduce(\n Listeners,\n (prev, item) => {\n const { Rules, Targets } = item;\n if (!_.isEmpty(Rules)) {\n return _.concat(prev, _.flatten(_.map(Rules, (elem) => (_.isEmpty(elem.Targets) ? [] : elem.Targets))));\n }\n if (!_.isEmpty(Targets)) {\n return _.concat(prev, Targets);\n }\n return prev;\n },\n []\n );\n return serversList;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const { display } = query;\n if (action === 'DescribeListeners') {\n const rs = await this.getListenerList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n let { listeneralias } = query;\n listeneralias = this.ListenerAliasList.includes(listeneralias) ? listeneralias : this.templateQueryIdMap.listener;\n const result = rs.flatMap((o) => {\n const listenAlias = this.formatVariableDisplay(o, display, listeneralias, this.ListenerAliasList);\n const lisId = o[this.templateQueryIdMap.listener];\n o._InstanceAliasValue = listenAlias || lisId;\n // if (!o[listeneralias]) return [];\n return {\n text: listenAlias || lisId,\n value: lisId,\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.listener, rs);\n return result;\n }\n if (action === 'DescribeServer' || action === 'DescribeServerPort') {\n const { listenerid, serverprivateip, serveralias } = query;\n const serverPrivateIp = this.getVariable(serverprivateip);\n const serversList = await this.getServerList({\n region,\n instanceId: instance[this.templateQueryIdMap.instance],\n listenerId: this.getVariable(listenerid),\n });\n const serverAlias = this.ServerAliasList.includes(serveralias) ? serveralias : this.templateQueryIdMap.servers;\n const result = _.chain(serversList)\n .filter((item) => {\n if (action === 'DescribeServer') {\n return true;\n }\n return serverPrivateIp === _.get(item, 'PrivateIpAddresses.0');\n })\n .map((item) => {\n const alias = this.formatVariableDisplay(item, display, serverAlias, this.ServerAliasList);\n const id = item[this.templateQueryIdMap.servers][0];\n item._InstanceAliasValue = alias || id;\n return action === 'DescribeServer'\n ? {\n text: alias || id,\n value: id,\n }\n : {\n text: `${_.get(item, 'Port')}`,\n value: _.get(item, 'Port'),\n };\n })\n .value();\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.servers, serversList);\n return action === 'DescribeServer' ? result : _.uniqBy(result, 'text');\n }\n return [];\n }\n}\n","import {\n CLSInstanceAliasList,\n CLSInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CLSInstanceAliasList;\n InvalidDimensions = CLSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cls',\n action: 'DescribeTopics',\n responseField: 'Topics',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n // async getInstances(region, params = {}) {\n // const superRes = await super.getInstances(region, params);\n // console.log({ superRes });\n // }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n}\n","import { BaseDatasource } from '../_base/datasource';\nimport { InvalidDemensions, InstanceAliasList, templateQueryIdMap } from './query_def';\n\nexport default class CmqDatasource extends BaseDatasource {\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'cmq',\n action: 'DescribeQueueDetail',\n responseField: 'QueueSet',\n };\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawMetric = await super.getMetrics(region);\n return rawMetric.map((metric) => {\n let dims = metric.Dimensions[0].Dimensions;\n dims = Array.from(new Set([...dims, 'queueId', 'queueName']));\n metric.Dimensions[0].Dimensions = dims;\n return metric;\n });\n }\n}\n","import { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n InvalidDemensions,\n InstanceAliasList,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class CmqTopicDatasource extends BaseDatasource {\n Namespace = 'QCE/CMQTOPIC';\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'cmq',\n action: 'DescribeTopicDetail',\n responseField: 'TopicSet',\n };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n extraMetricDims = ['subscriptionId']; // 多选\n\n async fetchAllSubscription(region: string, params: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'cmq');\n // console.log(serviceInfo, 'serviceinfo');\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeSubscriptionDetail' }\n );\n },\n params,\n 'SubscriptionSet'\n );\n\n return rs[0];\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n let result;\n switch (action) {\n case 'DescribeSubscriptionDetail':\n result = await this.fetchAllSubscription(region, { TopicName: instance.TopicName });\n // eslint-disable-next-line no-case-declarations\n const rs = result.map((item) => {\n item._InstanceAliasValue = item.SubscriptionId;\n return { text: item.SubscriptionId, value: item[templateQueryIdMap.subscription] };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.subscriptionId, result);\n return rs;\n default:\n return [];\n }\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawMetric = await super.getMetrics(region);\n return rawMetric.map((metric) => {\n let dims = metric.Dimensions[0].Dimensions;\n dims.push('topicId');\n if (['NumOfNotify', 'NumOfSuccNotify'].includes(metric.MetricName)) {\n dims.push('subscriptionId');\n }\n\n dims = Array.from(new Set(dims));\n metric.Dimensions[0].Dimensions = dims;\n return metric;\n });\n }\n}\n","import { BaseDatasource } from '../_base/datasource';\n\ninterface BucketListResult {\n Owner: { ID: 'string'; DisplayName: 'string' };\n Buckets: { Name: string; Region: string }[];\n}\n\nexport default class CosDatasource extends BaseDatasource {\n InvalidDimensions: Record = {};\n InstanceAliasList: string[] = ['BucketName'];\n templateQueryIdMap = {\n instance: 'BucketName',\n };\n InstanceReqConfig = {} as any; // 不必要的配置\n cosURL: string;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n this.cosURL = `/api/datasources/${this.instanceSettings.id}/resources/tc_cos_list`;\n }\n async getInstances(region: string) {\n return this.backendSrv\n .datasourceRequest({\n url: this.cosURL,\n method: 'GET',\n params: { region },\n headers: { 'Content-Type': 'application/json' },\n })\n .then((res) => {\n let { data }: { data: BucketListResult } = res;\n data = data || ({} as any);\n let { Buckets } = data;\n Buckets = Buckets || [];\n\n // name contains appid,see detail https://cloud.tencent.com/document/product/436/8291\n return Buckets.map((item) => ({\n ...item,\n BucketName: item.Name,\n bucket: item.Name,\n appid: item.Name.split('-').slice(-1)[0],\n }));\n });\n }\n\n async getVariableInstances(region) {\n return this.getInstances(region);\n }\n}\n","import {\n CPMInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CPMInstanceAliasList;\n InvalidDimensions = CPMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bm',\n action: 'DescribeDevices',\n responseField: 'DeviceInfoSet',\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n\n getFilterDropdown({ field, region }) {\n if (field === 'DeviceClassCode') {\n const serviceInfo = GetServiceAPIInfo(region, 'bm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n 'bm',\n { region, action: 'DescribeDeviceClass' }\n ).then((response) => {\n return _.map(response.DeviceClassSet || [], (item) => {\n return { text: item.DeviceClassCode, value: item.DeviceClassCode };\n });\n });\n }\n return [];\n }\n}\n","import _ from 'lodash';\nimport { CVMInstanceAliasList, isValidMetric, modifyDimensons } from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CVMDatasource extends BaseDatasource {\n Namespace = 'QCE/CVM';\n InstanceAliasList = CVMInstanceAliasList;\n InvalidDimensions = {};\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'cvm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return modifyDimensons(item);\n }\n return null;\n })\n );\n }\n\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'cvm' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'api');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { Product: 'cvm' },\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n}\n","import {\n CYNOSDBMYSQLInstanceAliasList,\n CYNOSDBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n checkKeys,\n} from './query_def';\nimport _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\n// import { t } from '../../../locale';\n\nexport default class CYNOSDBMYSQLDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CYNOSDBMYSQLInstanceAliasList;\n InvalidDimensions = CYNOSDBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n checkKeys = checkKeys;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cynosdb',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n // getRegions() {\n // return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n // }\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'cynosdbmysql' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n // 仅对维度组合是InstanceId的指标,其他指标不支持\n getDefaultInsObj(ins: string) {\n return {\n [templateQueryIdMap.instance]: ins,\n };\n }\n}\n","import { DCInstanceAliasList, DCInvalidDemensions, namespace, modifyDimensons } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCInstanceAliasList;\n InvalidDimensions = DCInvalidDemensions;\n templateQueryIdMap = {\n instance: 'DirectConnectId',\n };\n InstanceReqConfig = {\n service: 'dc',\n action: 'DescribeDirectConnects',\n responseField: 'DirectConnectSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import {\n DCDBInstanceAliasList,\n DCDBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCDBInstanceAliasList;\n InvalidDimensions = DCDBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'dcdb',\n action: 'DescribeDCDBInstances',\n responseField: 'Instances',\n };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n extraActionMap = {\n DescribeDCDBShards: {\n service: 'dcdb',\n action: 'DescribeDCDBShards',\n responseField: 'Shards',\n pickKey: 'ShardInstanceId',\n },\n DescribeDCDBInstanceNodeInfo: {\n service: 'dcdb',\n action: 'DescribeDCDBInstanceNodeInfo',\n responseField: 'NodesInfo',\n pickKey: 'NodeId',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion, 入参的region用广州\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/dcdb',\n },\n 'dcdb',\n { action: 'DescribeDCDBSaleInfo', region: 'ap-guangzhou' }\n ).then((response) => {\n return _.map(response.RegionList || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n RegionState: item.RegionState,\n };\n });\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n InstanceId: instance[this.templateQueryIdMap.instance],\n Limit: 100,\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import { DCGInstanceAliasList, DCGInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCGInstanceAliasList;\n InvalidDimensions = DCGInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeDirectConnectGateways',\n responseField: 'DirectConnectGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { DCXInstanceAliasList, DCXInvalidDemensions, namespace, modifyDimensons } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCXDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCXInstanceAliasList;\n InvalidDimensions = DCXInvalidDemensions;\n templateQueryIdMap = {\n instance: 'DirectConnectTunnelId',\n };\n InstanceReqConfig = {\n service: 'dc',\n action: 'DescribeDirectConnectTunnels',\n responseField: 'DirectConnectTunnelSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import { BaseDatasource } from '../_base/datasource';\nimport {\n ECDNInstanceAliasList,\n ECDNInvalidDemensions,\n modifyDimensons,\n namespace,\n templateQueryIdMap,\n} from './query_def';\n\nexport default class ECDNDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECDNInstanceAliasList;\n InvalidDimensions = ECDNInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'ecdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import {\n ECMInstanceAliasList,\n ECMInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMInstanceAliasList;\n InvalidDimensions = ECMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import {\n ECMBLOCKSTORAGEInstanceAliasList,\n ECMBLOCKSTORAGEInvalidDemensions,\n namespace,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMBLOCKSTORAGEInstanceAliasList;\n InvalidDimensions = ECMBLOCKSTORAGEInvalidDemensions;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n templateQueryIdMap = templateQueryIdMap;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getDiskList(params: any) {\n const { payload } = params;\n const { InstanceId } = payload;\n const instanceCache = await instanceStorage.getInstance(this.service);\n const instanceObj: any =\n _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === InstanceId)) ?? {};\n const { DataDisks: dataDisks } = instanceObj;\n return dataDisks;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n InstanceId: instance,\n Limit: 100,\n };\n const rs = await this.getDiskList({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.diskId];\n return {\n text: o[this.templateQueryIdMap.diskId],\n value: o[this.templateQueryIdMap.diskId],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.diskId, rs);\n return result;\n }\n}\n","import { ECMLBInstanceAliasList, ECMLBInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMLBInstanceAliasList;\n InvalidDimensions = ECMLBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import {\n GSEInstanceAliasList,\n GSEInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n keyInStorage,\n queryMonitorExtraConfg,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = GSEInstanceAliasList;\n InvalidDimensions = GSEInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'gse',\n action: 'DescribeInstances',\n responseField: 'Instances',\n };\n\n keyInStorage = keyInStorage;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n async getQueueNameList(params: any) {\n const { region } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeGameServerSessionQueues' }\n );\n },\n {},\n 'GameServerSessionQueues'\n );\n const [rs] = res;\n return rs;\n }\n async getFleetList(params: any) {\n const { region } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'ListFleets' }\n );\n },\n {},\n 'FleetIds'\n );\n const [rs] = res;\n return rs.map((r) => ({ [this.templateQueryIdMap.FleetId]: r }));\n }\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'DescribeGameServerSessionQueues') {\n const rs = await this.getQueueNameList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.Name];\n return {\n text: o[this.templateQueryIdMap.Name],\n value: o[this.templateQueryIdMap.Name],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.queue, rs);\n return result;\n }\n if (action === 'ListFleets') {\n const rs = await this.getFleetList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.FleetId];\n return {\n text: o[this.templateQueryIdMap.FleetId],\n value: o[this.templateQueryIdMap.FleetId],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.fleet, rs);\n return result;\n }\n return [];\n }\n}\n","import _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\nimport { LBInstanceAliasList, LBInvalidDemensions } from './query_def';\n\nexport default class SCFDatasource extends BaseDatasource {\n Namespace = 'QCE/LB';\n InstanceAliasList = LBInstanceAliasList;\n InvalidDimensions = LBInvalidDemensions;\n templateQueryIdMap = {\n instance: 'AddressId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeAddresses',\n responseField: 'AddressSet',\n interceptor: {\n request: (params) => {\n const { Filters } = params;\n if (!Filters) {\n params.Filters = [];\n }\n params.Filters.push({\n Name: 'address-type',\n Values: ['EIP'],\n });\n return params;\n }, // 设置一些请求参数的 默认值\n },\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) =>\n /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */\n item.Dimensions?.[0]?.Dimensions?.includes('eip')\n );\n }\n\n // async getInstances(region, params = {}) {\n // const rawSet = await super.getInstances(region, params);\n // /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */\n // return rawSet.filter((item) => item.AddressType === 'EIP');\n // }\n\n // async getVariableInstances(region, query = {}) {\n // const rawSet = await super.getVariableInstances(region, query);\n // return rawSet.filter((item) => item.AddressType === 'EIP');\n // }\n}\n","import _ from 'lodash';\nimport {\n LIGHTHOUSEInstanceAliasList,\n templateQueryIdMap,\n LighthouseInvalidDemensions,\n modifyDimensons,\n} from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class LighthouseDatasource extends BaseDatasource {\n Namespace = 'QCE/LIGHTHOUSE';\n InstanceAliasList = LIGHTHOUSEInstanceAliasList;\n InvalidDimensions = LighthouseInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'lighthouse',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'lighthouse' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'api');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { Product: 'lighthouse' },\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n}\n","import _ from 'lodash';\nimport {\n MONGODBInstanceAliasList,\n MONGODBInvalidDemensions,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class MONGODBDatasource extends BaseDatasource {\n Namespace = 'QCE/CMONGO';\n InstanceAliasList = MONGODBInstanceAliasList;\n ReplicaAliasList = ['ReplicaSetId', 'ReplicaSetName'];\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n\n InstanceReqConfig = {\n service: 'mongodb',\n action: 'DescribeDBInstances',\n responseField: 'InstanceDetails',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getInvalidDimensions(selfIns: any, target: any) {\n if (target.node && target.node !== '') {\n return { target: 'Node' };\n }\n if (target.replica && target.replica !== '') {\n return { target: 'Replica' };\n }\n return MONGODBInvalidDemensions;\n }\n formatVariableDisplay(data: Record, displayTpl: string | undefined, alias: string, aliasList: string[]) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !aliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(data, b);\n });\n }\n return this.getAliasValue(data, alias);\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const { display } = query;\n if (action === 'DescribeReplicas') {\n const [res] = await this.getInstances(region, { InstanceIds: [instance[this.templateQueryIdMap.instance]] });\n let { replicaalias } = query;\n replicaalias = this.ReplicaAliasList.includes(replicaalias) ? replicaalias : this.templateQueryIdMap.replica;\n const result = _.map(_.get(res, 'ReplicaSets', []), (item) => {\n const replicaAlias = this.formatVariableDisplay(item, display, replicaalias, this.ReplicaAliasList);\n item._InstanceAliasValue = replicaAlias || item[this.templateQueryIdMap.replica];\n return { text: item.ReplicaSetId, value: item.ReplicaSetId };\n });\n await instanceStorage.setExtraStorage(\n this.service,\n this.queryMonitorExtraConfg.Replica.dim_KeyInStorage,\n _.get(res, 'ReplicaSets', [])\n );\n return result;\n }\n if (action === 'DescribeReplicaNodes') {\n const [res] = await this.getInstances(region, { InstanceIds: [instance[this.templateQueryIdMap.instance]] });\n const { replicasetid } = query;\n const targetReplica = _.find(_.get(res, 'ReplicaSets', []), { ReplicaSetId: this.getVariable(replicasetid) });\n let result = _.times(targetReplica.SecondaryNum, (index) => {\n const nodeId = `${targetReplica.ReplicaSetId}-node-slave${index}`;\n return { text: nodeId, value: nodeId };\n });\n if (targetReplica) {\n result = [\n { text: `${targetReplica.ReplicaSetId}-node-primary`, value: `${targetReplica.ReplicaSetId}-node-primary` },\n ...result,\n ];\n }\n await instanceStorage.setExtraStorage(\n this.service,\n this.queryMonitorExtraConfg.Node.dim_KeyInStorage,\n result.map((item) => ({ NodeId: item.value, _InstanceAliasValue: item.value }))\n );\n return result;\n }\n\n return [];\n }\n}\n","import { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n InvalidDemensions,\n InstanceAliasList,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class MrHdfsDatasource extends BaseDatasource {\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n extrasAlias = [];\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n InstanceReqConfig = {\n service: 'emr',\n action: 'DescribeInstances',\n responseField: 'ClusterList',\n interceptor: {\n request: (params) => ({\n ...params,\n DisplayStrategy: params.DisplayStrategy || 'monitorManage',\n ProjectId: params.ProjectId || -1,\n }), // 设置一些请求参数的 默认值\n response: (data: any[]) => data.map(({ ClusterId, ClusterName }) => ({ ClusterId, ClusterName })),\n },\n };\n\n async fetchAllNodes(region: string, params: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'emr');\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeClusterNodes' }\n );\n },\n { ...params, isOffsetPage: true },\n 'NodeList'\n );\n\n // return rs[0].map((item) => ({ text: item.Ip, value: item.Ip }));\n return rs[0];\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n let result;\n switch (action) {\n case 'DescribeClusterNodes': {\n const resultT = await this.fetchAllNodes(region, { InstanceId: instance.ClusterId, NodeFlag: 'all' });\n result = resultT.map((item) => {\n item._InstanceAliasValue = item[templateQueryIdMap.node];\n return { text: item[templateQueryIdMap.node], value: item[templateQueryIdMap.node] };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.node, resultT);\n\n return result;\n }\n default:\n return [];\n }\n }\n}\n","import _ from 'lodash';\nimport { NATGATEWAYInstanceAliasList, NATInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class NATGATEWAYDatasource extends BaseDatasource {\n Namespace = 'QCE/NAT_GATEWAY';\n InstanceAliasList = NATGATEWAYInstanceAliasList;\n InvalidDimensions = NATInvalidDemensions;\n templateQueryIdMap = {\n instance: 'NatGatewayId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeNatGateways',\n responseField: 'NatGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import _ from 'lodash';\nimport { OVCDNInstanceAliasList, OVCDNInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class OVCDNDatasource extends BaseDatasource {\n Namespace = 'QCE/OV_CDN';\n InstanceAliasList = OVCDNInstanceAliasList;\n InvalidDimensions = OVCDNInvalidDemensions;\n templateQueryIdMap = {\n instance: 'Domain',\n };\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import { PCXInstanceAliasList, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo, GetRequestParamsV2, SliceLength } from '../../common/constants';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = PCXInstanceAliasList;\n InvalidDimensions = {};\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'xx',\n action: 'xx',\n responseField: 'xx',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getInstances(region = 'ap-guangzhou', params = {}) {\n params = { offset: 0, limit: 50, ...params };\n const serviceInfo = GetServiceAPIInfo(region, 'pcx');\n return this.doRequestV2(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcPeeringConnections' }\n ).then((response) => {\n return response.data || [];\n });\n }\n\n /**\n * 模板变量中获取全量的 PCX 实例列表\n * @param region 地域信息\n */\n getVariableInstances(region, query) {\n let result: any[] = [];\n const params = { Offset: 0, Limit: 50, ...query };\n const serviceInfo = GetServiceAPIInfo(region, 'pcx');\n return this.doRequestV2(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcPeeringConnections' }\n ).then((response) => {\n result = response.data || [];\n const total = response.totalCount || 0;\n if (result.length >= total) {\n return result;\n } else {\n const param = SliceLength(total, 50);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getInstances(region, item));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return result;\n })\n .catch((error) => {\n return result;\n });\n }\n });\n }\n\n getVpcId(region, params: any = {}) {\n params = { Offset: 0, Limit: 20, ...params };\n // TODO 等待腾讯云接口查问题\n params.Offset = String(params.Offset);\n params.Limit = String(params.Limit);\n const serviceInfo = GetServiceAPIInfo(region, 'vpc');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcs' }\n ).then((response) => {\n return _.map(response.VpcSet || [], (item) => ({ text: item.VpcId, value: item.VpcId }));\n });\n }\n\n getVpcIds(region) {\n let result: any[] = [];\n const params: any = { Offset: 0, Limit: 100 };\n // TODO 等待腾讯云接口查问题\n params.Offset = String(params.Offset);\n params.Limit = String(params.Limit);\n const serviceInfo = GetServiceAPIInfo(region, 'vpc');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcs' }\n ).then((response) => {\n result = _.map(response.VpcSet || [], (item) => ({ text: item.VpcId, value: item.VpcId }));\n const total = response.TotalCount || 0;\n if (result.length >= total) {\n return result;\n } else {\n const param = SliceLength(total, 100);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getVpcId(region, item));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return result;\n })\n .catch((error) => {\n return result;\n });\n }\n });\n }\n\n /**\n * 腾讯云 API 2.0 请求接口\n * @param options\n * @param service\n * @param signObj\n */\n async doRequestV2(options, service, signObj: any = {}) {\n options = await GetRequestParamsV2(\n options,\n service,\n signObj,\n this.secretId,\n this.instanceSettings.id,\n this.backendSrv\n );\n return this.backendSrv\n .datasourceRequest(options)\n .then((response) => {\n return _.get(response, 'data', {});\n })\n .catch((error) => {\n throw error;\n });\n }\n}\n","import _ from 'lodash';\nimport {\n POSTGRESInstanceAliasList,\n PostgreInvalidDemensions,\n namespace,\n modifyDimensons,\n templateQueryIdMap,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDBDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = POSTGRESInstanceAliasList;\n InvalidDimensions = PostgreInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'postgres',\n action: 'DescribeDBInstances',\n responseField: 'DBInstanceSet',\n };\n\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { get } from 'lodash';\nimport { QAAPInstanceAliasList, QAAPInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class QAAPDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = QAAPInstanceAliasList;\n InvalidDimensions = QAAPInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'gaap',\n action: 'DescribeProxies',\n responseField: 'ProxySet',\n interceptor: {\n // response: (data: unknown[]) =>[\n // {\n // \"NetDetectId\": \"netd-12345678\",\n // },\n // ],\n },\n };\n // MetricReqConfig = {\n // resultFilter: modifyDimensons,\n // };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter(\n (item) =>\n get(item, 'Dimensions.length') === 1 &&\n get(item, 'Dimensions[0].Dimensions.length') === 1 &&\n get(item, 'Dimensions[0].Dimensions[0]') === 'channelId'\n );\n }\n}\n","import _ from 'lodash';\nimport { REDISInstanceAliasList, RedisInvalidDemensions, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class REDISDatasource extends BaseDatasource {\n Namespace = 'QCE/REDIS';\n InstanceAliasList = REDISInstanceAliasList;\n InvalidDimensions = RedisInvalidDemensions;\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'redis',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n interceptor: {\n request: (params) => ({ ...params, MonitorVersion: '1m' }),\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) => isValidMetric(item));\n }\n}\n","import _ from 'lodash';\nimport {\n REDISMEMInstanceAliasList,\n namespace,\n RedisMemInvalidDemensions,\n templateQueryIdMap,\n NodeType,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\n\nexport default class REDISDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = REDISMEMInstanceAliasList;\n InvalidDimensions = RedisMemInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n extrasAlias = [RedisMemInvalidDemensions.pnodeid, RedisMemInvalidDemensions.rnodeid];\n InstanceReqConfig = {\n service: 'redis',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n interceptor: {\n request: (params) => ({ ...params, MonitorVersion: '5s' }),\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getInstanceNodeInfo(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'redis');\n\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeInstanceNodeInfo' }\n );\n },\n {\n InstanceId: instanceId,\n },\n NodeType\n );\n\n return res;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n if (action === 'DescribeInstanceNodeInfo') {\n const rs = await this.getInstanceNodeInfo({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const { nodetype } = query;\n const ndoeTypeIndex = NodeType.indexOf(nodetype);\n return ndoeTypeIndex === -1\n ? []\n : _.map(rs[ndoeTypeIndex], (item) => ({ text: item.NodeId, value: item.NodeId }));\n }\n return [];\n }\n}\n","import _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n SCFInstanceAliasList,\n SCFInvalidDemensions,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n templateQueryIdMap,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class SCFDatasource extends BaseDatasource {\n InstanceKey: string;\n Namespace: string;\n InstanceAliasList: string[];\n InvalidDimensions: Record;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n InstanceReqConfig: { service?: string | undefined; action: string; responseField: string };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n\n this.Namespace = 'QCE/SCF_V2';\n this.InstanceAliasList = SCFInstanceAliasList;\n this.InvalidDimensions = SCFInvalidDemensions;\n this.InstanceReqConfig = {\n service: 'scf',\n action: 'ListFunctions',\n responseField: 'Functions',\n };\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter(\n (item) =>\n /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含functionName的指标 */\n item.Dimensions?.[0]?.Dimensions?.includes('functionName') &&\n item.Dimensions?.[0]?.Dimensions?.includes('namespace') &&\n !item.MetricName.startsWith('Name')\n );\n }\n\n getVersions(region, params) {\n const serviceInfo = GetServiceAPIInfo(region, 'scf');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'ListVersionByFunction' }\n ).then((response) => {\n return response.Versions;\n });\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'ListVersionByFunction') {\n const rs = await this.getVersions(region, { FunctionName: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.version];\n return {\n text: o[this.templateQueryIdMap.version],\n value: o[this.templateQueryIdMap.version],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.version, rs);\n return result;\n }\n return [];\n }\n}\n","import {\n SQLSERVERInstanceAliasList,\n SQLSERVERInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = SQLSERVERInstanceAliasList;\n InvalidDimensions = SQLSERVERInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'sqlserver',\n action: 'DescribeDBInstances',\n responseField: 'DBInstances',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(rawSet.map((item) => modifyDimensons(item)));\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n getFilterDropdown({ field, region }) {\n if (field === 'Zone') {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n return [];\n }\n}\n","import { TCAPLUSInstanceAliasList, TCAPLUSInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TCAPLUSInstanceAliasList;\n InvalidDimensions = TCAPLUSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tcaplusdb',\n action: 'DescribeTables',\n responseField: 'TableInfos',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/tcaplusdb',\n },\n 'tcaplusdb',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n return _.map(response.RegionInfos || [], (item) => {\n return {\n text: t(item.RegionName),\n value: item.RegionName,\n };\n });\n });\n }\n}\n","import {\n TDMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeClusters',\n responseField: 'ClusterSet',\n };\n extraActionMap = {\n DescribeTopics: {\n service: 'tdmq',\n action: 'DescribeTopics',\n responseField: 'TopicSets',\n pickKey: 'TopicName',\n },\n DescribeEnvironments: {\n service: 'tdmq',\n action: 'DescribeEnvironments',\n responseField: 'EnvironmentSet',\n pickKey: 'EnvironmentId',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(rawSet.map((item) => modifyDimensons(item)));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n // console.log({ rs });\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n ClusterId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n if (action === 'DescribeTopics') {\n payload.EnvironmentId = this.getVariable(query['environmentid']);\n }\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import {\n TDMQRABBITMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQRABBITMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeRabbitMQVipInstances',\n responseField: 'Instances',\n };\n extraActionMap = {\n DescribeRabbitMQNodeList: {\n service: 'tdmq',\n action: 'DescribeRabbitMQNodeList',\n responseField: 'NodeList',\n pickKey: 'node',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n InstanceId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import {\n TDMQROCKETMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQROCKETMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeRocketMQClusters',\n responseField: 'ClusterList',\n interceptor: {\n response: (result) =>\n _.map(result, (item) => ({\n ...item,\n ClusterId: _.get(item, 'Info.ClusterId', ''),\n ClusterName: _.get(item, 'Info.ClusterName', ''),\n })),\n },\n };\n extraActionMap = {\n DescribeRocketMQNamespaces: {\n service: 'tdmq',\n action: 'DescribeRocketMQNamespaces',\n responseField: 'Namespaces',\n pickKey: 'namespace',\n },\n DescribeRocketMQGroups: {\n service: 'tdmq',\n action: 'DescribeRocketMQGroups',\n responseField: 'Groups',\n pickKey: 'group',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) => !item.Dimensions?.[0]?.Dimensions?.includes('rmqcluster'));\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n ClusterId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n if (action === 'DescribeRocketMQGroups') {\n payload.NamespaceId = this.getVariable(query['clusternamespace']);\n }\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import { map, flatten, reduce, isEmpty, filter, split, sortBy, findIndex, trim, isArray, isString } from 'lodash';\nimport { GetServiceAPIInfo, ReplaceVariable } from '../../common/constants';\nimport { getTimeShiftInMs } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\n\nconst variableToArray = (variable) => {\n if (isEmpty(variable)) {\n return [];\n }\n if (isArray(variable)) {\n return variable;\n }\n if (isString(variable)) {\n return split(variable, ',').map((item) => trim(item));\n }\n return [];\n};\n\nexport default class TKEDatasource extends BaseDatasource {\n InstanceAliasList = ['ClusterId', 'ClusterName'];\n templateQueryIdMap = {\n instance: 'ClusterId',\n };\n InvalidDimensions = {\n tke_cluster_instance_id: 'ClusterId',\n };\n InstanceReqConfig = {\n service: 'tke',\n action: 'DescribeClusters',\n responseField: 'Clusters',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getMonitorData(params: any, region: any, instances: any, target: any, options: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const timeshift = getTimeShiftInMs(target.timeshift);\n const conditions = reduce(\n target.conditions,\n (prev, item) => {\n if (isEmpty(item.Key) || isEmpty(item.Operator) || isEmpty(item.Value)) {\n return prev;\n }\n return [\n ...filter(prev, (e) => e.Key !== item.Key),\n {\n Key: ReplaceVariable(this.templateSrv, options.scopedVars, item.Key, false),\n Operator: ReplaceVariable(this.templateSrv, options.scopedVars, item.Operator, false),\n Value: variableToArray(ReplaceVariable(this.templateSrv, options.scopedVars, item.Value, true)),\n },\n ];\n },\n [{ Key: 'tke_cluster_instance_id', Operator: '=', Value: instances.map((item) => item['ClusterId']) }]\n );\n\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Period: params.Period,\n MetricNames: [params.MetricName],\n Module: 'monitor',\n Namespace: 'QCE/TKE',\n EndTime: params.EndTime,\n StartTime: params.StartTime,\n Conditions: conditions,\n GroupBys: variableToArray(ReplaceVariable(this.templateSrv, options.scopedVars, target.groupBys, true)),\n },\n },\n serviceInfo.service,\n { action: 'DescribeStatisticData', region }\n ).then((response) => {\n return flatten(\n map(response.Data, (data) => {\n return map(data.Points, (point) => {\n const dimensionSort = sortBy(point.Dimensions, ['Name']);\n const dimensionString = [\n ...dimensionSort.splice(findIndex(dimensionSort, { Name: 'tke_cluster_instance_id' }), 1),\n ...dimensionSort,\n ]\n .map((dimension) => dimension.Value)\n .join(' - ');\n const timeshiftString = timeshift > 0 ? `_${target.timeshift}` : '';\n return {\n target: `${data.MetricName} - ${dimensionString}${timeshiftString}`,\n datapoints: map(point.Values, (value) => [value.Value, value.Timestamp * 1000 + timeshift]),\n };\n });\n })\n );\n });\n }\n}\n","import _ from 'lodash';\nimport { TSFInvalidDemensions, TSFInstanceAliasList, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class TSFDatasource extends BaseDatasource {\n Namespace = 'QCE/TSF';\n InstanceAliasList = TSFInstanceAliasList;\n InvalidDimensions = TSFInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'tsf',\n action: 'DescribeApplications',\n responseField: 'Content',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import {\n VCLBInstanceAliasList,\n VCLBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n clbNamespaceMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VCLBInstanceAliasList;\n InvalidDimensions = VCLBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'clb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async getAllMetrics(region: string) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const { MetricSet: public_metrics } = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: clbNamespaceMap.public,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n );\n const { MetricSet: private_metrics } = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: clbNamespaceMap.private,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n );\n const res = Object.values(_.keyBy(_.concat(private_metrics, public_metrics), 'MetricName'));\n return res.map((t) => modifyDimensons(t));\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await this.getAllMetrics(region);\n return _.compact(rawSet);\n }\n}\n","import { VBCInstanceAliasList, VBCInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VBCInstanceAliasList;\n InvalidDimensions = VBCInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeCcns',\n responseField: 'CcnSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getFilterDropdown({ field }) {\n return super.getRegions();\n }\n}\n","import {\n VPCNETDETECTInstanceAliasList,\n VPCNETInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPCNETDETECTInstanceAliasList;\n InvalidDimensions = VPCNETInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeNetDetects',\n responseField: 'NetDetectSet',\n interceptor: {\n // response: (data: unknown[]) =>[\n // {\n // \"NetDetectId\": \"netd-12345678\",\n // },\n // ],\n },\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { VPNGWInstanceAliasList, VPNGWInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPNGWInstanceAliasList;\n InvalidDimensions = VPNGWInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeVpnGateways',\n responseField: 'VpnGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getFilterDropdown({ field, region }) {\n if (field === 'zone') {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n return [];\n }\n}\n","import { VPNXInstanceAliasList, VPNXInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPNXInstanceAliasList;\n InvalidDimensions = VPNXInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeVpnConnections',\n responseField: 'VpnConnectionSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import _ from 'lodash';\nimport {\n WAFInstanceAliasList,\n WAFInvalidDemensions,\n templateQueryIdMap,\n namespace,\n regionSupported,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { t } from '../../../locale';\n\nexport default class CDNDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = WAFInstanceAliasList;\n InvalidDimensions = WAFInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n // service: 'waf',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { APIGATEWAYFilterFieldsDescriptor, templateQueryIdMap, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.APIGATEWAYFilterFieldsDescriptor = APIGATEWAYFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n // console.log({namespace, service});\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraDropdown = async (target) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const instanceId = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ region, instanceId });\n\n const result = rs.map((o) => {\n return {\n text: o.EnvironmentName,\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { BWPFilterFieldsDescriptor } from './query_def';\n\nexport class BWPQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.BWPFilterFieldsDescriptor = BWPFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function bwpQuery() {\n return {\n template: template,\n controller: BWPQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('bwpQuery', bwpQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDBFieldsDescriptor } from './query_def';\n\nexport class CDBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDBFieldsDescriptor = CDBFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'ZoneIds':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cdb', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n`;\n\nexport function cdbQuery() {\n return {\n template: template,\n controller: CDBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cdbQuery', cdbQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDNFilterFieldsDescriptor } from './query_def';\n\nexport class CDNQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDNFilterFieldsDescriptor = CDNFilterFieldsDescriptor;\n };\n\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n`;\n\nexport function cdnQuery() {\n return {\n template: template,\n controller: CDNQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cdnQuery', cdnQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDNPROVINCEFilterFieldsDescriptor, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Isp',\n field: 'isp',\n },\n {\n label: 'Province',\n field: 'district',\n },\n];\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDNPROVINCEFilterFieldsDescriptor = CDNPROVINCEFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, field });\n return rs;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CFSQueryDescriptor } from './query_def';\n\nexport class SCFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CFSQueryDescriptor = CFSQueryDescriptor;\n };\n\n $scope.getVersions = async (target) => {\n // console.log(2222);\n\n // return [{ text: 1, value: 1 }];\n // console.log(target, 'target');\n const { instance, region } = target;\n const fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');\n if (!instance || !region) return [];\n\n return fetcher(region, { FunctionName: JSON.parse(instance).FunctionName }).then((res) => {\n // console.log(res, 'res');\n\n return res;\n });\n };\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: SCFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\ncoreModule.directive('cfsQuery', scfQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CKAFKAQueryDescriptor, templateQueryIdMap } from './query_def';\nimport { isTargetEqual } from '../../common/utils';\n\nconst ExtraFields = [\n {\n label: 'ConsumerGroup',\n field: 'consumerGroup',\n },\n {\n label: 'TopicId',\n field: 'topicId',\n },\n {\n label: 'Partition',\n field: 'partition',\n },\n];\n\nexport class CKAFKAQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CKAFKAQueryDescriptor = CKAFKAQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n $scope.onInstanceChange = (n, o) => {\n if (isTargetEqual(n, o, 'LoadBalancerId')) return;\n $scope.target.consumerGroup = '';\n $scope.target.topicId = '';\n $scope.target.topicName = '';\n $scope.target.partition = '';\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('ckafka', 'getVariable')(instance);\n if (Array.isArray(instance)) instance = instance[0];\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).InstanceId;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n const InstanceId = $scope.getInstanceId();\n const fetcher = $scope.datasource.getServiceFn('ckafka', 'getConsumerGroups');\n const region = $scope.datasource.getServiceFn('ckafka', 'getVariable')(target.region);\n const res = await fetcher(region, { InstanceId, groupname: target.consumerGroup, topicid: target.topicId });\n\n const { TopicList, GroupList, PartitionList } = res;\n const data = {\n GroupList: GroupList.map((group) => {\n group._InstanceAliasValue = group.GroupName;\n return {\n text: group.GroupName,\n value: JSON.stringify(group),\n };\n }),\n TopicList: TopicList.map((topic) => {\n topic._InstanceAliasValue = topic[templateQueryIdMap.topicId];\n return {\n text: topic[templateQueryIdMap.topicId],\n value: JSON.stringify(topic), // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去\n };\n }),\n PartitionList: PartitionList.map((par) => {\n par._InstanceAliasValue = par[templateQueryIdMap.partition];\n return {\n text: String(par[templateQueryIdMap.partition]),\n value: JSON.stringify(par),\n };\n }),\n };\n\n switch (field) {\n case 'consumerGroup':\n return data.GroupList;\n case 'topicId':\n return data.TopicList;\n case 'partition':\n return data.PartitionList;\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: CKAFKAQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n instance: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\ncoreModule.directive('ckafkaQuery', scfQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { get, chain } from 'lodash';\nimport { LOADBALANCEFieldsDescriptor, templateQueryIdMap, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\nimport { isTargetEqual } from '../../common/utils';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.LOADBALANCEFieldsDescriptor = LOADBALANCEFieldsDescriptor;\n $scope.serversList = [];\n };\n $scope.onFieldChange = (field) => {\n $scope.onRefresh();\n };\n $scope.onInstanceChange = (n, o) => {\n if (isTargetEqual(n, o, 'InstanceId')) return;\n $scope.target.listener = '';\n $scope.target.servers = '';\n $scope.target.serverPort = '';\n };\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace(namespace);\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {\n // console.log();\n }\n return variableData;\n };\n $scope.getExtraDropdown = async (target) => {\n const { instance } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getListenerList')({ region, instanceId });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.listener];\n return {\n text: o[templateQueryIdMap.listener],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n $scope.getServersDropdown = async (target) => {\n const { instance, listener } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const listenerId = $scope.getVariableId(listener, 'listener');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const serversList = await $scope.datasource.getServiceFn(\n service,\n 'getServerList'\n )({ region, instanceId, listenerId });\n $scope.serversList = serversList;\n const res = chain(serversList)\n .map((item) => {\n item._InstanceAliasValue = get(item, 'PrivateIpAddresses.0');\n return {\n text: get(item, 'PrivateIpAddresses.0'),\n value: JSON.stringify(item),\n };\n })\n .uniqBy('text')\n .value();\n return res;\n };\n $scope.getServerPortDropdown = async (target) => {\n const { servers } = $scope.target;\n let serverPortList: any[] = [];\n try {\n const serversSource = JSON.parse(servers);\n serverPortList = chain($scope.serversList)\n .filter((item) => get(serversSource, 'PrivateIpAddresses.0') === get(item, 'PrivateIpAddresses.0'))\n .map((item) => {\n item._InstanceAliasValue = get(item, 'Port');\n return {\n text: `${get(item, 'Port')}`,\n value: JSON.stringify(item),\n };\n })\n .value();\n } catch (error) {}\n return serverPortList;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n namespace: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\ncoreModule.directive('clbQuery', sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CLSFilterFieldsDescriptor, queryEditorName } from './query_def';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.GSEFilterFieldsDescriptor = CLSFilterFieldsDescriptor;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import createQuery from '../_base/query';\nimport { InstanceQueryDescriptor } from './query_def';\n\ncreateQuery('cmqQuery', {\n fieldDescriptor: InstanceQueryDescriptor,\n instanceDocUrl: 'https://cloud.tencent.com/document/api/406/42624',\n namespace: 'QCE/CMQ',\n});\n","import coreModule from 'grafana/app/core/core_module';\nimport { InstanceQueryDescriptor } from './query_def';\n\nconst ExtraFields = [\n {\n label: 'Subscription(订阅)',\n field: 'subscriptionId',\n },\n];\n\nexport class CmqTopicQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.InstanceQueryDescriptor = InstanceQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }\n $scope.cacheMap = {};\n\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getTopicName = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).TopicName;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.onExtraFieldChange = (field) => {\n $scope.onRefresh();\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n if (field === 'subscriptionId') {\n const TopicName = $scope.getTopicName();\n let data = $scope.cacheMap[TopicName];\n\n if (!data) {\n const region = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(target.region);\n const fetcher = $scope.datasource.getServiceFn('cmqTopic', 'fetchAllSubscription');\n const datas = await fetcher(region, { TopicName });\n data = datas.map((item) => {\n item._InstanceAliasValue = item.SubscriptionId;\n return { text: item.SubscriptionId, value: JSON.stringify(item) };\n });\n }\n\n // 缓存\n $scope.cacheMap[TopicName] = data;\n return data;\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: CmqTopicQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('cmqTopicQuery', scfQuery);\n","import _ from 'lodash';\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['BucketName'];\nexport { InstanceAliasList, GetInstanceQueryParams };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'BucketName',\n queries: {},\n};\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CVMFilterFieldsDescriptor } from './query_def';\n\nexport class CVMQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CVMFilterFieldsDescriptor = CVMFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function cvmQuery() {\n return {\n template: template,\n controller: CVMQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cvmQuery', cvmQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { DCDBFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'nodeid',\n field: 'NodeId',\n action: 'DescribeDCDBInstanceNodeInfo',\n },\n {\n label: 'shardid',\n field: 'ShardId',\n action: 'DescribeDCDBShards',\n },\n];\nconst dropdownTextConfig = {\n DescribeDCDBInstanceNodeInfo: 'NodeId',\n DescribeDCDBShards: 'ShardInstanceId',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.DCDBFilterFieldsDescriptor = DCDBFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const instanceId = $scope.getInstanceId();\n const payload: any = {\n InstanceId: instanceId,\n Limit: 100,\n };\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { ECMBLOCKSTORAGEFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n // {\n // label: 'nodeid',\n // field: 'NodeId',\n // action: 'DescribeInstanceNodeInfo',\n // },\n {\n label: 'diskId',\n field: 'diskId',\n },\n];\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.ECMBLOCKSTORAGEFilterFieldsDescriptor = ECMBLOCKSTORAGEFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n // $scope.getInstanceId = () => {\n // let { instance } = $scope.target;\n // const service = GetServiceFromNamespace($scope.namespace);\n // instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n // if (!instance) {\n // return '';\n // }\n // try {\n // instance = JSON.parse(instance)[templateQueryIdMap.instance];\n // } catch (error) {\n // console.log();\n // }\n // return instance;\n // };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = (target, action) => {\n let { instance } = target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n try {\n instance = JSON.parse(instance);\n const { DataDisks: dataDisks } = instance;\n return dataDisks.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.diskId];\n return {\n text: o[templateQueryIdMap.diskId],\n value: JSON.stringify(o),\n };\n });\n } catch (error) {\n // console.log('instance error', instance);\n const payload: any = {\n InstanceId: instance,\n };\n const rs = $scope.datasource.getServiceFn(service, 'getDiskList')({ payload });\n const result = rs.map((o) => {\n return {\n text: o[templateQueryIdMap.diskId],\n value: JSON.stringify(o),\n };\n });\n return result;\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { GSEFilterFieldsDescriptor, templateQueryIdMap, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'fleetId',\n field: 'FleetId',\n },\n {\n label: 'queueName',\n field: 'Name',\n },\n];\nconst actionMaps = {\n FleetId: 'getFleetList',\n Name: 'getQueueNameList',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.GSEFilterFieldsDescriptor = GSEFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n // console.log({namespace, service});\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraDropdown = async (target, field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const instanceId = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n // const rs = await $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ region, instanceId });\n let rs = await $scope.datasource.getServiceFn(service, actionMaps[field])({ region, instanceId });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[field]];\n return {\n text: o[templateQueryIdMap[field]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { LBFilterDescriptor } from './query_def';\n\nexport class LBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n // $scope.LBQueryDescriptor = LBQueryDescriptor;\n $scope.LBFilterDescriptor = LBFilterDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n\n\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function lbQuery() {\n return {\n template: template,\n controller: LBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('lbQuery', lbQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { LighthouseFilterFieldsDescriptor } from './query_def';\n\nexport class LighthouseQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.LighthouseFilterFieldsDescriptor = LighthouseFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('lighthouse', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n`;\n\nexport function lighthouseQuery() {\n return {\n template: template,\n controller: LighthouseQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('lighthouseQuery', lighthouseQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { map, get, find, times } from 'lodash';\nimport { MONGODBFieldsDescriptor, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class MongoDBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.MONGODBFieldsDescriptor = MONGODBFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.onInstanceChange = (n, o) => {\n if (n === o) {\n return;\n }\n $scope.target.replica = '';\n $scope.target.node = '';\n };\n\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace('QCE/CMONGO');\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {\n // console.log();\n }\n return variableData;\n };\n\n $scope.getExtraDropdown = async (target, type) => {\n const { instance, replica } = $scope.target;\n const service = GetServiceFromNamespace('QCE/CMONGO');\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const [res] = await $scope.datasource.getServiceFn(service, 'getInstances')(region, {\n InstanceIds: [instanceId],\n });\n if (type === 'replica') {\n return map(get(res, 'ReplicaSets', []), (item) => {\n item._InstanceAliasValue = item.ReplicaSetId;\n return { text: item.ReplicaSetId, value: JSON.stringify(item) };\n });\n }\n if (type === 'node' && replica !== '') {\n const replicaId = $scope.getVariableId(replica, 'replica');\n const targetReplica = find(get(res, 'ReplicaSets', []), { ReplicaSetId: replicaId });\n const options = times(targetReplica.SecondaryNum, (index) => {\n const nodeId = `${targetReplica.ReplicaSetId}-node-slave${index}`;\n return {\n text: nodeId,\n value: JSON.stringify({ NodeId: nodeId, _InstanceAliasValue: `${targetReplica.ReplicaSetId} - ${nodeId}` }),\n };\n });\n return [\n {\n text: `${targetReplica.ReplicaSetId}-node-primary`,\n value: JSON.stringify({\n NodeId: `${targetReplica.ReplicaSetId}-node-primary`,\n _InstanceAliasValue: `${targetReplica.ReplicaSetId} - ${`${targetReplica.ReplicaSetId}-node-primary`}`,\n }),\n },\n ...options,\n ];\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n`;\n\nexport function mongodbQuery() {\n return {\n template: template,\n controller: MongoDBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onRefresh: '&',\n onChange: '&',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\n\ncoreModule.directive('mongodbQuery', mongodbQuery);\n","import { InstanceQueryDescriptor, templateQueryIdMap } from './query_def';\nimport coreModule from 'grafana/app/core/core_module';\n\nconst ExtraFields = [\n {\n label: 'NodeIP',\n field: 'nodeIP',\n },\n];\n\nexport class MrQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.InstanceQueryDescriptor = InstanceQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }\n $scope.cacheMap = {};\n\n $scope.getExtraFields = () => {\n return Object.keys($scope.dims ?? {}).some((item: string) => item.startsWith('host4')) ? ExtraFields : [];\n // return ExtraFields;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).ClusterId;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.onExtraFieldChange = (field) => {\n $scope.onRefresh();\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n if (field === 'nodeIP') {\n const InstanceId = $scope.getInstanceId();\n let data = $scope.cacheMap[InstanceId];\n\n if (!data) {\n const region = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(target.region);\n const fetcher = $scope.datasource.getServiceFn('mrHDFS', 'fetchAllNodes');\n const dataT = await fetcher(region, { InstanceId, NodeFlag: 'all' });\n data = dataT.map((item) => {\n item._InstanceAliasValue = item[templateQueryIdMap.node];\n return {\n text: item[templateQueryIdMap.node],\n value: JSON.stringify(item),\n };\n });\n }\n\n // 缓存\n $scope.cacheMap[InstanceId] = data;\n return data;\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n
\n\n \n \n
\n
\n
\n
\n\n
\n`;\n\nexport function mrQuery() {\n return {\n template: template,\n controller: MrQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('mrQuery', mrQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { NATGatewayFilterFieldsDescriptor } from './query_def';\n\nexport class NatGatewayQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.NATGatewayFilterFieldsDescriptor = NATGatewayFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function natGatewayQuery() {\n return {\n template: template,\n controller: NatGatewayQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('natGatewayQuery', natGatewayQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { OVCDNFilterFieldsDescriptor } from './query_def';\n\nexport class OVCDNQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.OVCDNFilterFieldsDescriptor = OVCDNFilterFieldsDescriptor;\n };\n\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n`;\n\nexport function ovCdnQuery() {\n return {\n template: template,\n controller: OVCDNQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('ovCdnQuery', ovCdnQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { PCXFieldsDescriptor } from './query_def';\n\nexport class PCXQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.PCXFieldsDescriptor = PCXFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'vpcId':\n return $scope.getVpcIds();\n default:\n return [];\n }\n };\n\n $scope.getVpcIds = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getVpcIds('pcx', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function pcxQuery() {\n return {\n template: template,\n controller: PCXQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('pcxQuery', pcxQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { RedisFieldsDescriptor } from './query_def';\n\nexport class RedisQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.RedisFieldsDescriptor = RedisFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function redisQuery() {\n return {\n template: template,\n controller: RedisQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('redisQuery', redisQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { map } from 'lodash';\nimport { RedisMemFieldsDescriptor, templateQueryIdMap, NodeType, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class RedisMemQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.RedisMemFieldsDescriptor = RedisMemFieldsDescriptor;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.rnodeid = '';\n $scope.target.pnodeid = '';\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace(namespace);\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {}\n return variableData;\n };\n\n $scope.getExtraDropdown = async (target, nodetype) => {\n const { instance } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getInstanceNodeInfo')({ region, instanceId });\n\n const ndoeTypeIndex = NodeType.indexOf(nodetype);\n return ndoeTypeIndex === -1 ? [] : map(rs[ndoeTypeIndex], (item) => ({ text: item.NodeId, value: item.NodeId }));\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n`;\n\nexport function redisMemQuery() {\n return {\n template: template,\n controller: RedisMemQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\n\ncoreModule.directive('redisMemQuery', redisMemQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { SCFQueryDescriptor, templateQueryIdMap } from './query_def';\n\nexport class SCFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.SCFQueryDescriptor = SCFQueryDescriptor;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('scf', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).FunctionName;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.getVersions = async (target) => {\n // console.log(2222);\n\n // return [{ text: 1, value: 1 }];\n // console.log(target, 'target');\n // let { instance, region } = target;\n const FunctionName = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn('scf', 'getVariable')(target.region);\n if (!FunctionName || !region) return [];\n\n const fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');\n\n return fetcher(region, { FunctionName }).then((res) => {\n // console.log(res, 'res');\n const result = res.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.version];\n return {\n text: o[templateQueryIdMap.version],\n value: JSON.stringify(o),\n };\n });\n return result;\n });\n };\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: SCFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n },\n };\n}\ncoreModule.directive('scfQuery', scfQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'environmentId',\n field: 'environmentId',\n action: 'DescribeEnvironments',\n },\n {\n label: 'topicName',\n field: 'topicName',\n action: 'DescribeTopics',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeTopics: 'topicName',\n DescribeEnvironments: 'environmentId',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n ClusterId: $scope.getInstanceId(),\n };\n if (action === 'DescribeTopics') {\n let evId = $scope.target.environmentId;\n try {\n evId = JSON.parse(evId);\n evId = evId[templateQueryIdMap.environmentId];\n } catch (e) {}\n payload.EnvironmentId = evId;\n }\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n label: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Node',\n field: 'node',\n action: 'DescribeRabbitMQNodeList',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeRabbitMQNodeList: 'node',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.node = '';\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n InstanceId: $scope.getInstanceId(),\n };\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n label: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\ncoreModule.directive('tdmqRabbitmqQuery', sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Namespace',\n field: 'namespace',\n action: 'DescribeRocketMQNamespaces',\n },\n {\n label: 'Group',\n field: 'group',\n action: 'DescribeRocketMQGroups',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeRocketMQNamespaces: 'namespace',\n DescribeRocketMQGroups: 'group',\n};\nexport class TdmqRocketmqQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.namespace = '';\n $scope.target.group = '';\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n ClusterId: $scope.getInstanceId(),\n };\n if (action === 'DescribeRocketMQGroups') {\n let namespace = $scope.target.namespace;\n try {\n namespace = JSON.parse(namespace)[templateQueryIdMap.namespace];\n } catch (e) {}\n payload.NamespaceId = $scope.datasource.getServiceFn(service, 'getVariable')(namespace);\n }\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function tdmqRocketmqQuery() {\n return {\n template: template,\n controller: TdmqRocketmqQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\ncoreModule.directive('tdmqRocketmqQuery', tdmqRocketmqQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { isEmpty } from 'lodash';\nimport { TKEFilterFieldsDescriptor } from './query_def';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TKEFilterFieldsDescriptor = TKEFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.addCondition = () => {\n $scope.target.conditions.push({ Key: '', Operator: '=', Value: '' });\n };\n\n $scope.deleteCondition = (index) => {\n const targetCondition = $scope.target.conditions[index];\n if (isEmpty(targetCondition.Key) || isEmpty(targetCondition.Operator) || isEmpty(targetCondition.Value)) {\n $scope.target.conditions.splice(index, 1);\n } else {\n $scope.target.conditions.splice(index, 1);\n $scope.onRefresh();\n }\n };\n\n $scope.getOperator = () => {\n return Promise.resolve([\n { text: '=', value: '=' },\n { text: 'in', value: 'in' },\n ]);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n \n \n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('tkeQuery', sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TSFFieldsDescriptor } from './query_def';\n\nexport class TSFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TSFFieldsDescriptor = TSFFieldsDescriptor;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function tsfQuery() {\n return {\n template: template,\n controller: TSFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('tsfQuery', tsfQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { VBCFilterFieldsDescriptor, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields: any = [\n // {\n // label: 'SRegion',\n // field: 'SRegion',\n // },\n // {\n // label: 'DRegion',\n // field: 'DRegion',\n // },\n];\n\nexport class VBCQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.VBCFilterFieldsDescriptor = VBCFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getExtraDropdown = (field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n // return $scope.datasource.getServiceFn(service, 'getFilterDropdown')({ field })\n return $scope.datasource.getFilterDropdown(service, { field });\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: VBCQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('vbcQuery', scfQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","var map = {\n\t\".\": 20,\n\t\"./\": 20,\n\t\"./MonitorDatasource\": 188,\n\t\"./MonitorDatasource.ts\": 188,\n\t\"./_base/datasource\": 3,\n\t\"./_base/datasource.ts\": 3,\n\t\"./_base/query\": 7,\n\t\"./_base/query.ts\": 7,\n\t\"./_base/query_filter\": 195,\n\t\"./_base/query_filter.ts\": 195,\n\t\"./_base/types\": 196,\n\t\"./_base/types.ts\": 196,\n\t\"./apigateway/datasource\": 75,\n\t\"./apigateway/datasource.ts\": 75,\n\t\"./apigateway/query\": 131,\n\t\"./apigateway/query.ts\": 131,\n\t\"./apigateway/query_def\": 23,\n\t\"./apigateway/query_def.ts\": 23,\n\t\"./bmIntraLb/datasource\": 76,\n\t\"./bmIntraLb/datasource.ts\": 76,\n\t\"./bmIntraLb/query\": 132,\n\t\"./bmIntraLb/query.ts\": 132,\n\t\"./bmIntraLb/query_def\": 31,\n\t\"./bmIntraLb/query_def.ts\": 31,\n\t\"./bm_lb/datasource\": 77,\n\t\"./bm_lb/datasource.ts\": 77,\n\t\"./bm_lb/query\": 133,\n\t\"./bm_lb/query.ts\": 133,\n\t\"./bm_lb/query_def\": 32,\n\t\"./bm_lb/query_def.ts\": 32,\n\t\"./bm_pcx/datasource\": 78,\n\t\"./bm_pcx/datasource.ts\": 78,\n\t\"./bm_pcx/query\": 134,\n\t\"./bm_pcx/query.ts\": 134,\n\t\"./bm_pcx/query_def\": 33,\n\t\"./bm_pcx/query_def.ts\": 33,\n\t\"./bwp/datasource\": 79,\n\t\"./bwp/datasource.ts\": 79,\n\t\"./bwp/query\": 135,\n\t\"./bwp/query.ts\": 135,\n\t\"./bwp/query_def\": 63,\n\t\"./bwp/query_def.ts\": 63,\n\t\"./cbs/datasource\": 80,\n\t\"./cbs/datasource.ts\": 80,\n\t\"./cbs/query\": 136,\n\t\"./cbs/query.ts\": 136,\n\t\"./cbs/query_def\": 34,\n\t\"./cbs/query_def.ts\": 34,\n\t\"./cdb/datasource\": 81,\n\t\"./cdb/datasource.ts\": 81,\n\t\"./cdb/query\": 137,\n\t\"./cdb/query.ts\": 137,\n\t\"./cdb/query_def\": 44,\n\t\"./cdb/query_def.ts\": 44,\n\t\"./cdn/datasource\": 82,\n\t\"./cdn/datasource.ts\": 82,\n\t\"./cdn/query\": 138,\n\t\"./cdn/query.ts\": 138,\n\t\"./cdn/query_def\": 64,\n\t\"./cdn/query_def.ts\": 64,\n\t\"./cdn_province/datasource\": 83,\n\t\"./cdn_province/datasource.ts\": 83,\n\t\"./cdn_province/query\": 139,\n\t\"./cdn_province/query.ts\": 139,\n\t\"./cdn_province/query_def\": 35,\n\t\"./cdn_province/query_def.ts\": 35,\n\t\"./ceip_summary/datasource\": 84,\n\t\"./ceip_summary/datasource.ts\": 84,\n\t\"./ceip_summary/query\": 140,\n\t\"./ceip_summary/query.ts\": 140,\n\t\"./ceip_summary/query_def\": 36,\n\t\"./ceip_summary/query_def.ts\": 36,\n\t\"./ces/datasource\": 85,\n\t\"./ces/datasource.ts\": 85,\n\t\"./ces/query\": 141,\n\t\"./ces/query.ts\": 141,\n\t\"./ces/query_def\": 45,\n\t\"./ces/query_def.ts\": 45,\n\t\"./cfs/datasource\": 86,\n\t\"./cfs/datasource.ts\": 86,\n\t\"./cfs/query\": 142,\n\t\"./cfs/query.ts\": 142,\n\t\"./cfs/query_def\": 57,\n\t\"./cfs/query_def.ts\": 57,\n\t\"./ckafka/datasource\": 87,\n\t\"./ckafka/datasource.ts\": 87,\n\t\"./ckafka/query\": 143,\n\t\"./ckafka/query.ts\": 143,\n\t\"./ckafka/query_def\": 11,\n\t\"./ckafka/query_def.ts\": 11,\n\t\"./clb/datasource\": 88,\n\t\"./clb/datasource.ts\": 88,\n\t\"./clb/query\": 144,\n\t\"./clb/query.ts\": 144,\n\t\"./clb/query_def\": 12,\n\t\"./clb/query_def.ts\": 12,\n\t\"./cls/datasource\": 89,\n\t\"./cls/datasource.ts\": 89,\n\t\"./cls/query\": 145,\n\t\"./cls/query.ts\": 145,\n\t\"./cls/query_def\": 29,\n\t\"./cls/query_def.ts\": 29,\n\t\"./cmq/datasource\": 90,\n\t\"./cmq/datasource.ts\": 90,\n\t\"./cmq/query\": 146,\n\t\"./cmq/query.ts\": 146,\n\t\"./cmq/query_def\": 58,\n\t\"./cmq/query_def.ts\": 58,\n\t\"./cmq_topic/datasource\": 91,\n\t\"./cmq_topic/datasource.ts\": 91,\n\t\"./cmq_topic/query\": 147,\n\t\"./cmq_topic/query.ts\": 147,\n\t\"./cmq_topic/query_def\": 37,\n\t\"./cmq_topic/query_def.ts\": 37,\n\t\"./cos/datasource\": 92,\n\t\"./cos/datasource.ts\": 92,\n\t\"./cos/query_def\": 148,\n\t\"./cos/query_def.ts\": 148,\n\t\"./cpm/datasource\": 93,\n\t\"./cpm/datasource.ts\": 93,\n\t\"./cpm/query\": 149,\n\t\"./cpm/query.ts\": 149,\n\t\"./cpm/query_def\": 38,\n\t\"./cpm/query_def.ts\": 38,\n\t\"./cvm/datasource\": 94,\n\t\"./cvm/datasource.ts\": 94,\n\t\"./cvm/query\": 150,\n\t\"./cvm/query.ts\": 150,\n\t\"./cvm/query_def\": 59,\n\t\"./cvm/query_def.ts\": 59,\n\t\"./cynosdb_mysql/datasource\": 95,\n\t\"./cynosdb_mysql/datasource.ts\": 95,\n\t\"./cynosdb_mysql/query\": 151,\n\t\"./cynosdb_mysql/query.ts\": 151,\n\t\"./cynosdb_mysql/query_def\": 27,\n\t\"./cynosdb_mysql/query_def.ts\": 27,\n\t\"./dc/datasource\": 96,\n\t\"./dc/datasource.ts\": 96,\n\t\"./dc/query\": 152,\n\t\"./dc/query.ts\": 152,\n\t\"./dc/query_def\": 46,\n\t\"./dc/query_def.ts\": 46,\n\t\"./dcdb/datasource\": 97,\n\t\"./dcdb/datasource.ts\": 97,\n\t\"./dcdb/query\": 153,\n\t\"./dcdb/query.ts\": 153,\n\t\"./dcdb/query_def\": 16,\n\t\"./dcdb/query_def.ts\": 16,\n\t\"./dcg/datasource\": 98,\n\t\"./dcg/datasource.ts\": 98,\n\t\"./dcg/query\": 154,\n\t\"./dcg/query.ts\": 154,\n\t\"./dcg/query_def\": 47,\n\t\"./dcg/query_def.ts\": 47,\n\t\"./dcx/datasource\": 99,\n\t\"./dcx/datasource.ts\": 99,\n\t\"./dcx/query\": 155,\n\t\"./dcx/query.ts\": 155,\n\t\"./dcx/query_def\": 48,\n\t\"./dcx/query_def.ts\": 48,\n\t\"./ecdn/datasource\": 100,\n\t\"./ecdn/datasource.ts\": 100,\n\t\"./ecdn/query\": 156,\n\t\"./ecdn/query.ts\": 156,\n\t\"./ecdn/query_def\": 39,\n\t\"./ecdn/query_def.ts\": 39,\n\t\"./ecm/datasource\": 101,\n\t\"./ecm/datasource.ts\": 101,\n\t\"./ecm/query\": 157,\n\t\"./ecm/query.ts\": 157,\n\t\"./ecm/query_def\": 40,\n\t\"./ecm/query_def.ts\": 40,\n\t\"./ecm_block_storage/datasource\": 102,\n\t\"./ecm_block_storage/datasource.ts\": 102,\n\t\"./ecm_block_storage/query\": 158,\n\t\"./ecm_block_storage/query.ts\": 158,\n\t\"./ecm_block_storage/query_def\": 21,\n\t\"./ecm_block_storage/query_def.ts\": 21,\n\t\"./ecm_lb/datasource\": 103,\n\t\"./ecm_lb/datasource.ts\": 103,\n\t\"./ecm_lb/query\": 159,\n\t\"./ecm_lb/query.ts\": 159,\n\t\"./ecm_lb/query_def\": 49,\n\t\"./ecm_lb/query_def.ts\": 49,\n\t\"./gse/datasource\": 104,\n\t\"./gse/datasource.ts\": 104,\n\t\"./gse/query\": 160,\n\t\"./gse/query.ts\": 160,\n\t\"./gse/query_def\": 15,\n\t\"./gse/query_def.ts\": 15,\n\t\"./index\": 20,\n\t\"./index.ts\": 20,\n\t\"./lb/datasource\": 105,\n\t\"./lb/datasource.ts\": 105,\n\t\"./lb/query\": 161,\n\t\"./lb/query.ts\": 161,\n\t\"./lb/query_def\": 65,\n\t\"./lb/query_def.ts\": 65,\n\t\"./lighthouse/datasource\": 106,\n\t\"./lighthouse/datasource.ts\": 106,\n\t\"./lighthouse/query\": 162,\n\t\"./lighthouse/query.ts\": 162,\n\t\"./lighthouse/query_def\": 56,\n\t\"./lighthouse/query_def.ts\": 56,\n\t\"./mongodb/datasource\": 107,\n\t\"./mongodb/datasource.ts\": 107,\n\t\"./mongodb/query\": 163,\n\t\"./mongodb/query.ts\": 163,\n\t\"./mongodb/query_def\": 50,\n\t\"./mongodb/query_def.ts\": 50,\n\t\"./mr/datasource\": 108,\n\t\"./mr/datasource.ts\": 108,\n\t\"./mr/query\": 164,\n\t\"./mr/query.ts\": 164,\n\t\"./mr/query_def\": 24,\n\t\"./mr/query_def.ts\": 24,\n\t\"./nat_gateway/datasource\": 109,\n\t\"./nat_gateway/datasource.ts\": 109,\n\t\"./nat_gateway/query\": 165,\n\t\"./nat_gateway/query.ts\": 165,\n\t\"./nat_gateway/query_def\": 66,\n\t\"./nat_gateway/query_def.ts\": 66,\n\t\"./ov_cdn/datasource\": 110,\n\t\"./ov_cdn/datasource.ts\": 110,\n\t\"./ov_cdn/query\": 166,\n\t\"./ov_cdn/query.ts\": 166,\n\t\"./ov_cdn/query_def\": 67,\n\t\"./ov_cdn/query_def.ts\": 67,\n\t\"./pcx/datasource\": 111,\n\t\"./pcx/datasource.ts\": 111,\n\t\"./pcx/query\": 167,\n\t\"./pcx/query.ts\": 167,\n\t\"./pcx/query_def\": 60,\n\t\"./pcx/query_def.ts\": 60,\n\t\"./postgresql/datasource\": 112,\n\t\"./postgresql/datasource.ts\": 112,\n\t\"./postgresql/query\": 168,\n\t\"./postgresql/query.ts\": 168,\n\t\"./postgresql/query_def\": 41,\n\t\"./postgresql/query_def.ts\": 41,\n\t\"./qaap/datasource\": 113,\n\t\"./qaap/datasource.ts\": 113,\n\t\"./qaap/query\": 169,\n\t\"./qaap/query.ts\": 169,\n\t\"./qaap/query_def\": 51,\n\t\"./qaap/query_def.ts\": 51,\n\t\"./redis/datasource\": 114,\n\t\"./redis/datasource.ts\": 114,\n\t\"./redis/query\": 170,\n\t\"./redis/query.ts\": 170,\n\t\"./redis/query_def\": 61,\n\t\"./redis/query_def.ts\": 61,\n\t\"./redis_mem/datasource\": 115,\n\t\"./redis_mem/datasource.ts\": 115,\n\t\"./redis_mem/query\": 171,\n\t\"./redis_mem/query.ts\": 171,\n\t\"./redis_mem/query_def\": 17,\n\t\"./redis_mem/query_def.ts\": 17,\n\t\"./scf/datasource\": 116,\n\t\"./scf/datasource.ts\": 116,\n\t\"./scf/query\": 172,\n\t\"./scf/query.ts\": 172,\n\t\"./scf/query_def\": 28,\n\t\"./scf/query_def.ts\": 28,\n\t\"./sqlserver/datasource\": 117,\n\t\"./sqlserver/datasource.ts\": 117,\n\t\"./sqlserver/query\": 173,\n\t\"./sqlserver/query.ts\": 173,\n\t\"./sqlserver/query_def\": 30,\n\t\"./sqlserver/query_def.ts\": 30,\n\t\"./tcaplus/datasource\": 118,\n\t\"./tcaplus/datasource.ts\": 118,\n\t\"./tcaplus/query\": 174,\n\t\"./tcaplus/query.ts\": 174,\n\t\"./tcaplus/query_def\": 52,\n\t\"./tcaplus/query_def.ts\": 52,\n\t\"./tdmq/datasource\": 119,\n\t\"./tdmq/datasource.ts\": 119,\n\t\"./tdmq/query\": 175,\n\t\"./tdmq/query.ts\": 175,\n\t\"./tdmq/query_def\": 13,\n\t\"./tdmq/query_def.ts\": 13,\n\t\"./tdmq_rabbitmq/datasource\": 120,\n\t\"./tdmq_rabbitmq/datasource.ts\": 120,\n\t\"./tdmq_rabbitmq/query\": 176,\n\t\"./tdmq_rabbitmq/query.ts\": 176,\n\t\"./tdmq_rabbitmq/query_def\": 18,\n\t\"./tdmq_rabbitmq/query_def.ts\": 18,\n\t\"./tdmq_rocketmq/datasource\": 121,\n\t\"./tdmq_rocketmq/datasource.ts\": 121,\n\t\"./tdmq_rocketmq/query\": 177,\n\t\"./tdmq_rocketmq/query.ts\": 177,\n\t\"./tdmq_rocketmq/query_def\": 19,\n\t\"./tdmq_rocketmq/query_def.ts\": 19,\n\t\"./tke/datasource\": 122,\n\t\"./tke/datasource.ts\": 122,\n\t\"./tke/query\": 178,\n\t\"./tke/query.ts\": 178,\n\t\"./tke/query_def\": 74,\n\t\"./tke/query_def.ts\": 74,\n\t\"./tsf/datasource\": 123,\n\t\"./tsf/datasource.ts\": 123,\n\t\"./tsf/query\": 179,\n\t\"./tsf/query.ts\": 179,\n\t\"./tsf/query_def\": 62,\n\t\"./tsf/query_def.ts\": 62,\n\t\"./v_clb/datasource\": 124,\n\t\"./v_clb/datasource.ts\": 124,\n\t\"./v_clb/query\": 180,\n\t\"./v_clb/query.ts\": 180,\n\t\"./v_clb/query_def\": 25,\n\t\"./v_clb/query_def.ts\": 25,\n\t\"./vbc/datasource\": 125,\n\t\"./vbc/datasource.ts\": 125,\n\t\"./vbc/query\": 181,\n\t\"./vbc/query.ts\": 181,\n\t\"./vbc/query_def\": 53,\n\t\"./vbc/query_def.ts\": 53,\n\t\"./vpc_net_detect/datasource\": 126,\n\t\"./vpc_net_detect/datasource.ts\": 126,\n\t\"./vpc_net_detect/query\": 182,\n\t\"./vpc_net_detect/query.ts\": 182,\n\t\"./vpc_net_detect/query_def\": 42,\n\t\"./vpc_net_detect/query_def.ts\": 42,\n\t\"./vpngw/datasource\": 127,\n\t\"./vpngw/datasource.ts\": 127,\n\t\"./vpngw/query\": 183,\n\t\"./vpngw/query.ts\": 183,\n\t\"./vpngw/query_def\": 54,\n\t\"./vpngw/query_def.ts\": 54,\n\t\"./vpnx/datasource\": 128,\n\t\"./vpnx/datasource.ts\": 128,\n\t\"./vpnx/query\": 184,\n\t\"./vpnx/query.ts\": 184,\n\t\"./vpnx/query_def\": 55,\n\t\"./vpnx/query_def.ts\": 55,\n\t\"./waf/datasource\": 129,\n\t\"./waf/datasource.ts\": 129,\n\t\"./waf/query\": 185,\n\t\"./waf/query.ts\": 185,\n\t\"./waf/query_def\": 43,\n\t\"./waf/query_def.ts\": 43\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 186;","import _ from 'lodash';\nimport { Datasources, SERVICES } from './index';\nimport { GetServiceFromNamespace, ParseMetricQuery } from '../common/constants';\nimport { serviceGroupBy } from '../common/utils';\nimport { LoadingState } from '@grafana/data';\n\nexport default interface DatasourceInterface {\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n query: (options: any) => any;\n testDatasource: () => any;\n metricFindQuery: (query: any) => any;\n getRegions?: (service: string) => any;\n getMetrics: (service: string, region: string) => any;\n getInstances: (service: string, region: string, params: any) => any;\n getZones?: (service: string, region: string) => any;\n}\n\nexport class TCMonitorDatasource implements DatasourceInterface {\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n\n /** @ngInject */\n constructor(instanceSettings, backendSrv, templateSrv) {\n this.instanceSettings = instanceSettings;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n _.forEach(Datasources, (_class: any, key) => {\n this[key] = new _class(this.instanceSettings, this.backendSrv, this.templateSrv);\n });\n }\n\n // 根据 Datasource Config 配置时勾选的监控服务项,获取相应的命名空间\n getNamespaces() {\n const namespaces: any[] = [];\n _.forEach(SERVICES, (service) => {\n if (this.instanceSettings.jsonData[service.service] === true) {\n // namespaces.push(service.namespace);\n namespaces.push(service);\n }\n });\n return namespaces;\n }\n\n getCascaderNamespaces() {\n const validServices = SERVICES.filter((service) => this.instanceSettings.jsonData[service.service]);\n return serviceGroupBy(validServices);\n }\n\n getSelectedServices() {\n const namespaces = this.getNamespaces();\n return _.map(namespaces, ({ namespace }) => {\n return GetServiceFromNamespace(namespace);\n });\n }\n\n /**\n * 根据 Panel 的配置项,获取相应的监控数据\n *\n * @param options Panel 的配置参数,示例如下\n * {\n * cacheTimeout: undefined,\n * dashboardId: 41,\n * interval: \"30s\",\n * intervalMs: 30000,\n * maxDataPoints: 554,\n * panelId: 2,\n * range: {\n * from: Moment,\n * to: Moment,\n * raw: {from: \"now-6h\", to: \"now\"}\n * },\n * rangeRaw: {from: \"now-6h\", to: \"now\"},\n * scopedVars: {__interval: {…}, __interval_ms: {…}}\n * targets: [\n * {\n * namespace: \"QCE/CVM\",\n * refId: \"A\",\n * service: \"cvm\",\n * showInstanceDetails: false,\n * cvm: {\n * dimensionObject: {InstanceId: {…}}\n * instance: \"\",\n * instanceAlias: \"InstanceId\",\n * metricName: \"AccOuttraffic\",\n * metricUnit: \"MB\",\n * period: 10,\n * queries: {Filters: {…}, InstanceIds: Array(1), Limit: 20, Offset: 0, filtersChecked: false, …},\n * region: \"ap-beijing\"\n * },\n * cdb: {},\n * },\n * ],\n * timezone: \"browser\"\n * }\n * @return 返回数据对象,示例如下\n * {\n * data: [\n * {\n * \"target\": \"AccOuttraffic - ins-123\",\n * \"datapoints\": [\n * [861, 1450754160000],\n * [767, 1450754220000]\n * ]\n * }\n * ]\n * }\n */\n query(options: any) {\n const promises: any[] = [];\n const services = this.getSelectedServices();\n _.forEach(services, (service) => {\n const optionsTemp = _.cloneDeep(options);\n const targets = _.filter(optionsTemp.targets, (item) => item.service === service);\n optionsTemp.targets = targets;\n if (optionsTemp.targets.length > 0) {\n const promiseTemp = this[`${_.toUpper(service)}Datasource`].query(optionsTemp);\n if (promiseTemp) {\n promises.push(promiseTemp);\n }\n }\n });\n if (promises.length === 0) {\n return Promise.resolve({ data: [], state: LoadingState.Done });\n }\n return Promise.all(promises).then((results) => {\n return { data: _.flatten(results), state: LoadingState.Done };\n });\n }\n\n /**\n * 获取模板变量的选择项列表\n *\n * @param query 模板变量配置填写的 Query 参数字符串\n */\n metricFindQuery(query: string, options?: any) {\n const queries = ParseMetricQuery(query);\n const service = GetServiceFromNamespace(queries['namespace'] || '');\n\n if (_.isEmpty(queries) || !queries['namespace'] || !queries['action'] || !service) {\n return Promise.resolve([]);\n }\n if (this[`${_.toUpper(service)}Datasource`].metricFindQuery) {\n const result = this[`${_.toUpper(service)}Datasource`].metricFindQuery(\n queries,\n _.get(options, 'variable.regex', undefined)\n );\n if (result) {\n return result;\n }\n }\n return Promise.resolve([]);\n }\n\n /**\n * 获取地域列表\n * @param service\n */\n getRegions(service) {\n if (this[`${_.toUpper(service)}Datasource`].getRegions) {\n return this[`${_.toUpper(service)}Datasource`].getRegions();\n }\n return [];\n }\n\n /**\n * 获取监控指标列表\n * @param service\n * @param region\n */\n getMetrics(service, region) {\n return this[`${_.toUpper(service)}Datasource`].getMetrics(region);\n }\n\n /**\n * 获取可用区列表\n * @param service\n * @param region\n */\n getZones(service, region) {\n if (this[`${_.toUpper(service)}Datasource`].getZones) {\n return this[`${_.toUpper(service)}Datasource`].getZones(region);\n }\n return [];\n }\n\n /**\n * 获取filter中dropdown列表\n * @param service\n * @param param\n */\n getFilterDropdown(service, param) {\n if (this[`${_.toUpper(service)}Datasource`].getFilterDropdown) {\n return this[`${_.toUpper(service)}Datasource`].getFilterDropdown(param);\n }\n return [];\n }\n\n /**\n * 获取实例列表\n * @param service\n * @param region\n * @param params\n */\n getInstances(service, region, params) {\n return this[`${_.toUpper(service)}Datasource`].getInstances(region, params);\n }\n\n /**\n * 获取监听器列表\n * @param service\n * @param region\n * @param params\n */\n getListeners(service, region, instance) {\n if (!this[`${_.toUpper(service)}Datasource`].getListeners) {\n return [];\n }\n return this[`${_.toUpper(service)}Datasource`].getListeners(region, instance);\n }\n\n /**\n * 获取 私有网络列表\n * @param service\n */\n getVpcIds(service, region) {\n if (this[`${_.toUpper(service)}Datasource`].getVpcIds) {\n return this[`${_.toUpper(service)}Datasource`].getVpcIds(region);\n }\n }\n\n // 在 Datasource Config 配置时,验证 SerectId、SerectKey 的有效性,并测试勾选的监控服务项的对应 API 连通性\n testDatasource() {\n const promises: any[] = [];\n const services = this.getSelectedServices();\n _.forEach(services, (service) => {\n promises.push(this[`${_.toUpper(service)}Datasource`].testDatasource());\n });\n if (promises.length === 0) {\n return Promise.resolve(null);\n }\n\n return Promise.all(promises).then((results) => {\n let status = 'success';\n let message = 'DataSource Connection OK';\n\n const errorMsg = _.reduce(\n results,\n (acc, cur) => {\n if (cur.status === 'error') {\n if (acc === '') acc += 'Oops! Found an error in: ';\n acc += `${cur.service}: ${cur.message}; \\n`;\n }\n return acc;\n },\n ''\n );\n\n if (errorMsg) {\n status = 'error';\n message = errorMsg;\n }\n\n return {\n status,\n message,\n title: _.upperFirst(status),\n };\n });\n }\n\n getServiceFn(service, fnName) {\n return (...argu) => {\n if (!this[`${_.toUpper(service)}Datasource`][fnName]) {\n return [];\n }\n return this[`${_.toUpper(service)}Datasource`][fnName](...argu);\n };\n }\n}\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (typeof target === 'object') {\n if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n if (target[i] && typeof target[i] === 'object') {\n target[i] = merge(target[i], item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return value;\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","import coreModule from 'grafana/app/core/core_module';\nimport { DetailQueryConfig } from './types';\n\nclass SPQueryCtrl {\n static _config: DetailQueryConfig;\n\n /** @ngInject */\n constructor($scope, $rootScope) {\n Object.assign($scope, SPQueryCtrl._config);\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n`;\n\nexport function queryDDO() {\n return {\n template: template,\n controller: SPQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\nexport default (name: string, config: DetailQueryConfig) => {\n SPQueryCtrl._config = config;\n coreModule.directive(name, queryDDO);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) { // eslint-disable-line func-name-matching\n return prefix + '[]';\n },\n indices: function indices(prefix, key) { // eslint-disable-line func-name-matching\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) { // eslint-disable-line func-name-matching\n return prefix;\n }\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify( // eslint-disable-line func-name-matching\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (Array.isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (Array.isArray(obj)) {\n values = values.concat(stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n values = values.concat(stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (Array.isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n keys = keys.concat(stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]') {\n obj = [];\n obj = obj.concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","var map = {\n\t\"./_base/query.ts\": 7,\n\t\"./apigateway/datasource\": 75,\n\t\"./apigateway/datasource.ts\": 75,\n\t\"./apigateway/query.ts\": 131,\n\t\"./apigateway/query_def.ts\": 23,\n\t\"./bmIntraLb/datasource\": 76,\n\t\"./bmIntraLb/datasource.ts\": 76,\n\t\"./bmIntraLb/query.ts\": 132,\n\t\"./bmIntraLb/query_def.ts\": 31,\n\t\"./bm_lb/datasource\": 77,\n\t\"./bm_lb/datasource.ts\": 77,\n\t\"./bm_lb/query.ts\": 133,\n\t\"./bm_lb/query_def.ts\": 32,\n\t\"./bm_pcx/datasource\": 78,\n\t\"./bm_pcx/datasource.ts\": 78,\n\t\"./bm_pcx/query.ts\": 134,\n\t\"./bm_pcx/query_def.ts\": 33,\n\t\"./bwp/datasource\": 79,\n\t\"./bwp/datasource.ts\": 79,\n\t\"./bwp/query.ts\": 135,\n\t\"./bwp/query_def.ts\": 63,\n\t\"./cbs/datasource\": 80,\n\t\"./cbs/datasource.ts\": 80,\n\t\"./cbs/query.ts\": 136,\n\t\"./cbs/query_def.ts\": 34,\n\t\"./cdb/datasource\": 81,\n\t\"./cdb/datasource.ts\": 81,\n\t\"./cdb/query.ts\": 137,\n\t\"./cdb/query_def.ts\": 44,\n\t\"./cdn/datasource\": 82,\n\t\"./cdn/datasource.ts\": 82,\n\t\"./cdn/query.ts\": 138,\n\t\"./cdn/query_def.ts\": 64,\n\t\"./cdn_province/datasource\": 83,\n\t\"./cdn_province/datasource.ts\": 83,\n\t\"./cdn_province/query.ts\": 139,\n\t\"./cdn_province/query_def.ts\": 35,\n\t\"./ceip_summary/datasource\": 84,\n\t\"./ceip_summary/datasource.ts\": 84,\n\t\"./ceip_summary/query.ts\": 140,\n\t\"./ceip_summary/query_def.ts\": 36,\n\t\"./ces/datasource\": 85,\n\t\"./ces/datasource.ts\": 85,\n\t\"./ces/query.ts\": 141,\n\t\"./ces/query_def.ts\": 45,\n\t\"./cfs/datasource\": 86,\n\t\"./cfs/datasource.ts\": 86,\n\t\"./cfs/query.ts\": 142,\n\t\"./cfs/query_def.ts\": 57,\n\t\"./ckafka/datasource\": 87,\n\t\"./ckafka/datasource.ts\": 87,\n\t\"./ckafka/query.ts\": 143,\n\t\"./ckafka/query_def.ts\": 11,\n\t\"./clb/datasource\": 88,\n\t\"./clb/datasource.ts\": 88,\n\t\"./clb/query.ts\": 144,\n\t\"./clb/query_def.ts\": 12,\n\t\"./cls/datasource\": 89,\n\t\"./cls/datasource.ts\": 89,\n\t\"./cls/query.ts\": 145,\n\t\"./cls/query_def.ts\": 29,\n\t\"./cmq/datasource\": 90,\n\t\"./cmq/datasource.ts\": 90,\n\t\"./cmq/query.ts\": 146,\n\t\"./cmq/query_def.ts\": 58,\n\t\"./cmq_topic/datasource\": 91,\n\t\"./cmq_topic/datasource.ts\": 91,\n\t\"./cmq_topic/query.ts\": 147,\n\t\"./cmq_topic/query_def.ts\": 37,\n\t\"./cos/datasource\": 92,\n\t\"./cos/datasource.ts\": 92,\n\t\"./cos/query_def.ts\": 148,\n\t\"./cpm/datasource\": 93,\n\t\"./cpm/datasource.ts\": 93,\n\t\"./cpm/query.ts\": 149,\n\t\"./cpm/query_def.ts\": 38,\n\t\"./cvm/datasource\": 94,\n\t\"./cvm/datasource.ts\": 94,\n\t\"./cvm/query.ts\": 150,\n\t\"./cvm/query_def.ts\": 59,\n\t\"./cynosdb_mysql/datasource\": 95,\n\t\"./cynosdb_mysql/datasource.ts\": 95,\n\t\"./cynosdb_mysql/query.ts\": 151,\n\t\"./cynosdb_mysql/query_def.ts\": 27,\n\t\"./dc/datasource\": 96,\n\t\"./dc/datasource.ts\": 96,\n\t\"./dc/query.ts\": 152,\n\t\"./dc/query_def.ts\": 46,\n\t\"./dcdb/datasource\": 97,\n\t\"./dcdb/datasource.ts\": 97,\n\t\"./dcdb/query.ts\": 153,\n\t\"./dcdb/query_def.ts\": 16,\n\t\"./dcg/datasource\": 98,\n\t\"./dcg/datasource.ts\": 98,\n\t\"./dcg/query.ts\": 154,\n\t\"./dcg/query_def.ts\": 47,\n\t\"./dcx/datasource\": 99,\n\t\"./dcx/datasource.ts\": 99,\n\t\"./dcx/query.ts\": 155,\n\t\"./dcx/query_def.ts\": 48,\n\t\"./ecdn/datasource\": 100,\n\t\"./ecdn/datasource.ts\": 100,\n\t\"./ecdn/query.ts\": 156,\n\t\"./ecdn/query_def.ts\": 39,\n\t\"./ecm/datasource\": 101,\n\t\"./ecm/datasource.ts\": 101,\n\t\"./ecm/query.ts\": 157,\n\t\"./ecm/query_def.ts\": 40,\n\t\"./ecm_block_storage/datasource\": 102,\n\t\"./ecm_block_storage/datasource.ts\": 102,\n\t\"./ecm_block_storage/query.ts\": 158,\n\t\"./ecm_block_storage/query_def.ts\": 21,\n\t\"./ecm_lb/datasource\": 103,\n\t\"./ecm_lb/datasource.ts\": 103,\n\t\"./ecm_lb/query.ts\": 159,\n\t\"./ecm_lb/query_def.ts\": 49,\n\t\"./gse/datasource\": 104,\n\t\"./gse/datasource.ts\": 104,\n\t\"./gse/query.ts\": 160,\n\t\"./gse/query_def.ts\": 15,\n\t\"./lb/datasource\": 105,\n\t\"./lb/datasource.ts\": 105,\n\t\"./lb/query.ts\": 161,\n\t\"./lb/query_def.ts\": 65,\n\t\"./lighthouse/datasource\": 106,\n\t\"./lighthouse/datasource.ts\": 106,\n\t\"./lighthouse/query.ts\": 162,\n\t\"./lighthouse/query_def.ts\": 56,\n\t\"./mongodb/datasource\": 107,\n\t\"./mongodb/datasource.ts\": 107,\n\t\"./mongodb/query.ts\": 163,\n\t\"./mongodb/query_def.ts\": 50,\n\t\"./mr/datasource\": 108,\n\t\"./mr/datasource.ts\": 108,\n\t\"./mr/query.ts\": 164,\n\t\"./mr/query_def.ts\": 24,\n\t\"./nat_gateway/datasource\": 109,\n\t\"./nat_gateway/datasource.ts\": 109,\n\t\"./nat_gateway/query.ts\": 165,\n\t\"./nat_gateway/query_def.ts\": 66,\n\t\"./ov_cdn/datasource\": 110,\n\t\"./ov_cdn/datasource.ts\": 110,\n\t\"./ov_cdn/query.ts\": 166,\n\t\"./ov_cdn/query_def.ts\": 67,\n\t\"./pcx/datasource\": 111,\n\t\"./pcx/datasource.ts\": 111,\n\t\"./pcx/query.ts\": 167,\n\t\"./pcx/query_def.ts\": 60,\n\t\"./postgresql/datasource\": 112,\n\t\"./postgresql/datasource.ts\": 112,\n\t\"./postgresql/query.ts\": 168,\n\t\"./postgresql/query_def.ts\": 41,\n\t\"./qaap/datasource\": 113,\n\t\"./qaap/datasource.ts\": 113,\n\t\"./qaap/query.ts\": 169,\n\t\"./qaap/query_def.ts\": 51,\n\t\"./redis/datasource\": 114,\n\t\"./redis/datasource.ts\": 114,\n\t\"./redis/query.ts\": 170,\n\t\"./redis/query_def.ts\": 61,\n\t\"./redis_mem/datasource\": 115,\n\t\"./redis_mem/datasource.ts\": 115,\n\t\"./redis_mem/query.ts\": 171,\n\t\"./redis_mem/query_def.ts\": 17,\n\t\"./scf/datasource\": 116,\n\t\"./scf/datasource.ts\": 116,\n\t\"./scf/query.ts\": 172,\n\t\"./scf/query_def.ts\": 28,\n\t\"./sqlserver/datasource\": 117,\n\t\"./sqlserver/datasource.ts\": 117,\n\t\"./sqlserver/query.ts\": 173,\n\t\"./sqlserver/query_def.ts\": 30,\n\t\"./tcaplus/datasource\": 118,\n\t\"./tcaplus/datasource.ts\": 118,\n\t\"./tcaplus/query.ts\": 174,\n\t\"./tcaplus/query_def.ts\": 52,\n\t\"./tdmq/datasource\": 119,\n\t\"./tdmq/datasource.ts\": 119,\n\t\"./tdmq/query.ts\": 175,\n\t\"./tdmq/query_def.ts\": 13,\n\t\"./tdmq_rabbitmq/datasource\": 120,\n\t\"./tdmq_rabbitmq/datasource.ts\": 120,\n\t\"./tdmq_rabbitmq/query.ts\": 176,\n\t\"./tdmq_rabbitmq/query_def.ts\": 18,\n\t\"./tdmq_rocketmq/datasource\": 121,\n\t\"./tdmq_rocketmq/datasource.ts\": 121,\n\t\"./tdmq_rocketmq/query.ts\": 177,\n\t\"./tdmq_rocketmq/query_def.ts\": 19,\n\t\"./tke/datasource\": 122,\n\t\"./tke/datasource.ts\": 122,\n\t\"./tke/query.ts\": 178,\n\t\"./tke/query_def.ts\": 74,\n\t\"./tsf/datasource\": 123,\n\t\"./tsf/datasource.ts\": 123,\n\t\"./tsf/query.ts\": 179,\n\t\"./tsf/query_def.ts\": 62,\n\t\"./v_clb/datasource\": 124,\n\t\"./v_clb/datasource.ts\": 124,\n\t\"./v_clb/query.ts\": 180,\n\t\"./v_clb/query_def.ts\": 25,\n\t\"./vbc/datasource\": 125,\n\t\"./vbc/datasource.ts\": 125,\n\t\"./vbc/query.ts\": 181,\n\t\"./vbc/query_def.ts\": 53,\n\t\"./vpc_net_detect/datasource\": 126,\n\t\"./vpc_net_detect/datasource.ts\": 126,\n\t\"./vpc_net_detect/query.ts\": 182,\n\t\"./vpc_net_detect/query_def.ts\": 42,\n\t\"./vpngw/datasource\": 127,\n\t\"./vpngw/datasource.ts\": 127,\n\t\"./vpngw/query.ts\": 183,\n\t\"./vpngw/query_def.ts\": 54,\n\t\"./vpnx/datasource\": 128,\n\t\"./vpnx/datasource.ts\": 128,\n\t\"./vpnx/query.ts\": 184,\n\t\"./vpnx/query_def.ts\": 55,\n\t\"./waf/datasource\": 129,\n\t\"./waf/datasource.ts\": 129,\n\t\"./waf/query.ts\": 185,\n\t\"./waf/query_def.ts\": 43\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 209;","import { PluginMeta } from '@grafana/data';\nimport { config, getBackendSrv } from '@grafana/runtime';\nimport { TcDataSourceId } from '../datasource/common/constants';\n\nconst backendSrv = getBackendSrv();\n\nconst tcFolder = {\n uid: 'tencent-cloud-monitor',\n title: '腾讯云监控',\n folderId: null,\n};\n\nconst tcFolder_EN = {\n uid: 'tencent-cloud-monitor-english',\n title: 'Tencent Cloud Monitor',\n folderId: null,\n};\n\n/**\n * 生成腾讯云专用目录\n * @returns\n */\nasync function getFolderId() {\n if (tcFolder.folderId && tcFolder_EN.folderId) {\n return [tcFolder.folderId, tcFolder_EN.folderId];\n }\n const folders: any[] = await backendSrv.get('/api/folders');\n let folderId = folders.find((item) => item.uid === tcFolder.uid)?.id;\n let folderEnId = folders.find((item) => item.uid === tcFolder_EN.uid)?.id;\n if (!folderId) {\n const folder = await backendSrv.post('/api/folders', tcFolder);\n folderId = folder?.id || 0;\n }\n if (!folderEnId) {\n const folderEn = await backendSrv.post('/api/folders', tcFolder_EN);\n folderEnId = folderEn?.id || 0;\n }\n tcFolder.folderId = folderId;\n tcFolder_EN.folderId = folderEnId;\n return [folderId, folderEnId];\n}\n\n/**\n * 请求拦截器,拦截导入按钮的接口请求\n */\nfunction backendInterceptor() {\n const oldPost = backendSrv.post.bind(getBackendSrv());\n const pluginId = window.location.pathname.split('/').filter((item) => item)[1];\n backendSrv.post = async (url, data) => {\n // 拦截判断:拦截指定接口\n if (url === '/api/dashboards/import' && data.pluginId === pluginId) {\n const [folderId, folderEnId] = await getFolderId();\n data.folderId = data.path.endsWith('_en_dashboard.json') ? folderEnId : folderId;\n }\n return oldPost(url, data);\n };\n}\n\nbackendInterceptor();\n\nexport class MonitorAppConfigCtrl {\n static templateUrl = 'components/config.html';\n appEditCtrl: any;\n appModel?: PluginMeta;\n $q: any;\n configured: boolean;\n\n /** @ngInject */\n constructor($scope: any, $injector: any, $q: any) {\n this.appEditCtrl.setPostUpdateHook(this.postUpdate.bind(this));\n this.$q = $q;\n // Make sure it has a JSON Data spot\n if (!this.appModel) {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n this.appModel = {} as PluginMeta;\n }\n\n // Required until we get the types sorted on appModel :(\n const appModel = this.appModel as any;\n if (!appModel.jsonData) {\n appModel.jsonData = {};\n }\n this.configured = false;\n if (this.appModel?.enabled) {\n const datasources = Object.values(config.datasources).filter((ds) => {\n return ds.type === TcDataSourceId;\n });\n if (datasources.length > 0) {\n this.configured = true;\n }\n }\n }\n\n async moveToFolder(dashbaordUid: string, folderId: number) {\n // 获取dashboard\n const { dashboard } = await backendSrv.get(`/api/dashboards/uid/${dashbaordUid}`);\n // 移动目录\n await backendSrv.post('/api/dashboards/db/', {\n dashboard,\n folderId,\n message: '',\n overwrite: true,\n });\n }\n\n async reviseDashboard() {\n // 1. 生成腾讯云目录\n const [folderId, folderEnId] = await getFolderId();\n // 2. 获取所有腾讯云插件下的dashboard\n const rs = await backendSrv.get(`/api/plugins/${this.appModel?.id}/dashboards`);\n\n // 3. 调用api更新dashboard\n const pmlist = rs.map((item) => {\n const { importedUrl, path } = item;\n const uid = importedUrl.split('/')[2];\n if (uid) {\n return this.moveToFolder(uid, path.endsWith('_en_dashboard.json') ? folderEnId : folderId);\n } else {\n return Promise.resolve();\n }\n });\n\n return Promise.all(pmlist);\n }\n\n async postUpdate() {\n if (!this.appModel?.enabled) {\n return;\n }\n // enable或者update时,对预设dashboard进行修改\n await this.reviseDashboard();\n return this.$q.resolve(true);\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/datasource/module.js b/dist/datasource/module.js index bd90c5d..67476db 100644 --- a/dist/datasource/module.js +++ b/dist/datasource/module.js @@ -1,3 +1,3 @@ /*! For license information please see module.js.LICENSE.txt */ -define("TencentCloudMonitorGrafanaApp",["lodash","react","app/core/core_module","@grafana/data","@grafana/ui","@grafana/runtime","moment","emotion","rxjs","angular","app/core/utils/kbn","app/core/table_model","app/plugins/sdk","react-dom"],(function(e,t,n,r,i,o,a,c,s,u,l,p,d,f){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=209)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r={language:"语言",enable_intranet_API_mode:"开启内网API模式",cloud_database:"云数据库",cloud_load_balancer:"负载均衡",virtual_private_cloud:"私有网络",content_delivery_network:"内容分发网络",message_queue:"消息队列",direct_connect:"专线接入",cloud_physical_machine:"黑石物理服务器",elastic_mapReduce:"弹性 MapReduce",edge_computing_machine:"边缘计算机器",RUM:"前端性能监控(RUM)",CLS:"日志服务(CLS)",CVM:"云服务器(CVM)",CDB:"云数据库 MySQL(CDB)",CMONGO:"云数据库 MongoDB(CMONGO)",POSTGRES:"云数据库 PostgreSQL(POSTGRES)",REDIS:"云数据库 Redis(REDIS)",REDIS_MEM:"云数据库 Redis内存版(5s)(REDIS_MEM)",SQLSERVER:"云数据库 SQL Server(SQLSERVER)",CYNOSDB_MYSQL:"云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)",TCAPLUS:"云数据库 TcaplusDB(TCAPLUS)",TDMYSQL:"分布式数据库 TDSQL MySQL(TDMYSQL)",PCX:"私有网络-对等连接(PCX)",BWP:"私有网络-带宽包(BWP)",NAT_GATEWAY:"私有网络-NAT 网关(NAT_GATEWAY)",VPNGW:"私有网络-VPN 网关(VPNGW)",VPNX:"私有网络-VPN 通道(VPNX)",DCG:"私有网络-专线网关(DCG)",CEIP_SUMMARY:"私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)",VPC_NET_DETECT:"私有网络-网络探测(VPC_NET_DETECT)",VBC:"私有网络-云联网(VBC)",LB:"私有网络-弹性公网IP(LB)",LB_PUBLIC:"公网负载均衡监控指标(LB_PUBLIC)",LB_PRIVATE:"内网负载均衡四层协议监控指标(LB_PRIVATE)",LOADBALANCE:"内网负载均衡七层协议监控指标(LOADBALANCE)",CDN:"国内域名(CDN)",CDN_LOG_DATA:"省份域名(CDN_LOG_DATA)",OV_CDN:"国外域名(OV_CDN)",SCF_V2:"云函数(SCF)",CFS:"文件存储(CFS)",COS:"对象存储(COS)",CKAFKA:"消息队列 CKafka(CKAFKA)",CMQ:"消息队列-队列服务监控(CMQ)",CMQTOPIC:"消息队列-主题订阅监控(CMQTOPIC)",TDMQ:"消息队列 Pulsar 版(TDMQ)",TDMQ_ROCKETMQ:"消息队列 RocketMQ 版(ROCKETMQ)",TDMQ_RABBITMQ:"消息队列 RabbitMQ 版(RABBITMQ)",DCX:"专线接入-专用通道(DCX)",DC:"专线接入-物理专线(DC)",CPM:"黑石物理服务器(CPM)",BM_PCX:"黑石对等连接(BM_PCX)",BM_LB:"黑石外网负载均衡(BM_LB)",BM_INTRA_LB:"黑石内网负载均衡(BM_INTRA_LB)",CES:"Elasticsearch指标(CES)",BLOCK_STORAGE:"云硬盘(BLOCK_STORAGE)",APIGATEWAY:"API 网关(APIGATEWAY)",QAAP:"全球应用加速(GAAP)",ECM:"边缘计算和网络监控(ECM)",ECM_BLOCK_STORAGE:"边缘计算存储监控(ECM_BLOCK_STORAGE)",ECM_LB:"边缘计算负载均衡(ECM_LB)",GSE:"游戏服务器伸缩(GSE)",TKE:"容器服务(TKE)",ECDN:"全站加速网络(ECDN)",WAF:"Web 应用防火墙(WAF)",multi_scene:"多场景版",lite:"精简版",cloud_monitor:"云监控",cloud_log_service:"日志服务",real_user_monitoring:"前端性能监控",region:"地域",log_topic:"日志主题",syntax_rule:"语法规则",max_result_num:"最大结果条数",search_statement:"检索语句",time_unit:"Time unit",seconds:"seconds",search_description:"按照具体的查询条件搜索实例,默认拉取前 20 条实例","ap-guangzhou":"华南地区(广州)","ap-shenzhen-fsi":"华南地区(深圳金融)","ap-guangzhou-open":"华南地区(广州OPEN)","ap-shenzhen":"华南地区(深圳)","ap-qingyuan":"华南地区(清远)","ap-shanghai":"华东地区(上海)","ap-shanghai-fsi":"华东地区(上海金融)","ap-jinan-ec":"华东地区(济南)","ap-hangzhou-ec":"华东地区(杭州)","ap-nanjing":"华东地区(南京)","ap-fuzhou-ec":"华东地区(福州)","ap-hefei-ec":"华东地区(合肥)","ap-beijing":"华北地区(北京)","ap-tianjin":"华北地区(天津)","ap-beijing-fsi":"华北地区(北京金融)","ap-shijiazhuang-ec":"华北地区(石家庄)","ap-wuhan-ec":"华中地区(武汉)","ap-changsha-ec":"华中地区(长沙)","ap-zhengzhou-ec":"华中地区(郑州)","ap-chengdu":"西南地区(成都)","ap-chongqing":"西南地区(重庆)","ap-xian-ec":"西北地区(西安)","ap-shenyang-ec":"东北地区(沈阳)","ap-taipei":"港澳台地区(中国台北)","ap-hongkong":"港澳台地区(中国香港)","ap-seoul":"亚太东北(首尔)","ap-tokyo":"亚太东北(东京)","ap-singapore":"亚太东南(新加坡)","ap-bangkok":"亚太东南(曼谷)","ap-jakarta":"亚太东南(雅加达)","na-siliconvalley":"美国西部(硅谷)","eu-frankfurt":"欧洲地区(法兰克福)","eu-moscow":"欧洲地区(莫斯科)","ap-mumbai":"亚太南部(孟买)","na-ashburn":"美国东部(弗吉尼亚)","sa-saopaulo":"南美地区(圣保罗)","na-toronto":"北美地区(多伦多)"},i={language:"Language",enable_intranet_API_mode:"Enable Intranet API Mode",cloud_database:"Cloud Database",cloud_load_balancer:"Cloud Load Balancer",virtual_private_cloud:"Virtual Private Cloud",content_delivery_network:"Content Delivery Network",message_queue:"Message Queue",direct_connect:"Direct Connect",cloud_physical_machine:"Cloud Physical Machine",elastic_mapReduce:"Elastic MapReduce",edge_computing_machine:"Edge Computing Machine",RUM:"Real User Monitoring(RUM)",CLS:"Cloud Log Service(CLS)",CVM:"Cloud Virtual Machine(CVM)",CDB:"TencentDB for MySQL(CDB)",CMONGO:"TencentDB for MongoDB(CMONGO)",POSTGRES:"TencentDB for PostgreSQL(POSTGRES)",REDIS:"TencentDB for Redis(REDIS)",REDIS_MEM:"TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)",SQLSERVER:"TencentDB for SQL Server(SQLSERVER)",CYNOSDB_MYSQL:"TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)",TCAPLUS:"TencentDB for TcaplusDB(TCAPLUS)",TDMYSQL:"TDSQL for MySQL(TDMYSQL)",PCX:"Peering Connection(PCX)",BWP:"Bandwidth Packet(BWP)",NAT_GATEWAY:"NAT Gateway(NAT_GATEWAY)",VPNGW:"VPN Gateway(VPNGW)",VPNX:"VPN Tunnel(VPNX)",DCG:"Direct Connect Gateway(DCG)",CEIP_SUMMARY:"Anycast EIP(CEIP_SUMMARY)",VPC_NET_DETECT:"Network Detection(VPC_NET_DETECT)",VBC:"Cloud Connect Network(VBC)",LB:"Elastic IP(LB)",LB_PUBLIC:"Public Network CLB(LB_PUBLIC)",LB_PRIVATE:"Private Network CLB Layer-4 Protocol(LB_PRIVATE)",LOADBALANCE:"Private Network CLB Layer-7 Protocol(LOADBALANCE)",CDN:"Chinese Mainland Domain(CDN)",CDN_LOG_DATA:"Province(CDN_LOG_DATA)",OV_CDN:"Overseas Domain(OV_CDN)",SCF_V2:"Serverless Cloud Function(SCF)",CFS:"Cloud File Storage(CFS)",COS:"Cloud Object Storage(COS)",CKAFKA:"Message Queue CKafka(CKAFKA)",CMQ:"Message Queue for Queue Service(CMQ)",CMQTOPIC:"Message Queue for Topic Subscription(CMQTOPIC)",TDMQ:"Tencent Distributed Message Queue for Pulsar(TDMQ)",TDMQ_ROCKETMQ:"Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)",TDMQ_RABBITMQ:"Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)",DCX:"Direct Connect for Dedicated Tunnel(DCX)",DC:"Direct Connect for Connection(DC)",CPM:"Cloud Physical Machine(CPM)",BM_PCX:"Cloud Physical Machine for Peering Connection(BM_PCX)",BM_LB:"Cloud Physical Machine for Public Network CLB(BM_LB)",BM_INTRA_LB:"Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)",CES:"Elasticsearch Service(CES)",BLOCK_STORAGE:"Cloud Block Storage(BLOCK_STORAGE)",APIGATEWAY:"API Gateway(APIGATEWAY)",QAAP:"Global Application Acceleration Platform(GAAP)",ECM:"Edge Computing Machine for Computation and Networking(ECM)",ECM_BLOCK_STORAGE:"Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)",ECM_LB:"Edge Computing Machine for Layer-4 CLB(ECM_LB)",GSE:"Game Server Elastic-scaling(GSE)",TKE:"Tencent Kubernetes Engine(TKE)",ECDN:"Enterprise Content Delivery Network(ECDN)",WAF:"Web Application Firewall(WAF)",multi_scene:"Multi-Scene",lite:"Lite",cloud_monitor:"Cloud Monitor",cloud_log_service:"Cloud Log Service",real_user_monitoring:"Real User Monitoring",region:"Region",log_topic:"Log Topic",syntax_rule:"Syntax Rule",max_result_num:"Maximum result number",search_statement:"Search Statement",time_unit:"Time unit",seconds:"seconds",search_description:"Search for instances according to specific query conditions, and pull the first 20 instances by default","ap-guangzhou":"South China(Guangzhou)","ap-shenzhen-fsi":"South China(Shenzhen Finance)","ap-guangzhou-open":"South China(Guangzhou OPEN)","ap-shenzhen":"South China(Shenzhen)","ap-qingyuan":"South China(Qingyuan)","ap-shanghai":"East China(Shanghai)","ap-shanghai-fsi":"East China(Shanghai Finance)","ap-jinan-ec":"East China(Jinan)","ap-hangzhou-ec":"East China(Hangzhou)","ap-nanjing":"East China(Nanjing)","ap-fuzhou-ec":"East China(Fuzhou)","ap-hefei-ec":"East China(Hefei)","ap-beijing":"North China region(Beijing)","ap-tianjin":"North China region(Tianjin)","ap-beijing-fsi":"North China region(Beijing Finance)","ap-shijiazhuang-ec":"North China region(Shijiazhuang)","ap-wuhan-ec":"Central China(Wuhan)","ap-changsha-ec":"Central China(Changsha)","ap-zhengzhou-ec":"Central China(Zhengzhou)","ap-chengdu":"Southwest China(Chengdu)","ap-chongqing":"Southwest China(Chongqing)","ap-xian-ec":"Northwest region(Xi'an)","ap-shenyang-ec":"Northeast China(Shenyang)","ap-taipei":"Hong Kong, Macau and Taiwan (China)(Taipei, China)","ap-hongkong":"Hong Kong, Macau and Taiwan (China)(Hong Kong, China)","ap-seoul":"Northeast Asia(Seoul)","ap-tokyo":"Northeast Asia(Tokyo)","ap-singapore":"Southeast Asia(Singapore)","ap-bangkok":"Southeast Asia(Bangkok)","ap-jakarta":"Southeast Asia(Jakarta)","na-siliconvalley":"US West(Silicon Valley)","eu-frankfurt":"Europe(Frankfurt)","eu-moscow":"Europe(Northeastern Europe)","ap-mumbai":"South Asia(Mumbai)","na-ashburn":"US East(Virginia)","sa-saopaulo":"South America(São Paulo)","na-toronto":"North America(Toronto)"};n.d(t,"a",(function(){return o})),n.d(t,"d",(function(){return c})),n.d(t,"c",(function(){return s})),n.d(t,"b",(function(){return u}));var o,a="zh-CN";!function(e){e.Chinese="zh-CN",e.English="en-US"}(o||(o={}));var c=function(e){return a===o.Chinese?r[e]:i[e]},s=function(e){a=e},u=function(){return a}},function(e,t,n){"use strict";var r=n(0),i=n.n(r),o=n(187),a=n.n(o),c=n(19),s=n(67),u=n.n(s),l=function(){return(l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&-1===t._InstanceAliasValue.indexOf(r[o].timeshift)&&(t._InstanceAliasValue+="_".concat(r[o].timeshift)),t[e]=d.getDimensionsVal(t,p,h),d.checkKeys.length>0&&d.checkKeys.forEach((function(n){t[n]=t[e]})),n[e]={Name:e,Value:t[e]},[2]}}))},d=this,m=0,h=e,g.label=1;case 1:return m0){var r=i.a.cloneDeep(t);return r[n].timeshift="",m(m([],e,!0),[r,t],!1)}return m(m([],e,!0),[t],!1)}),[]).map((function(r){return d(t,void 0,void 0,(function(){var t,o,l,p,d,m,h,y,g,v,b,I,D=this;return f(this,(function(f){switch(f.label){case 0:return t=Object(c.j)(this.templateSrv,e.scopedVars,r[n].instance,!0),[4,s.a.getInstance(this.service)];case 1:o=f.sent(),l=Object(u.c)(r[n].timeshift),t=[].concat(t).map((function(e){var t,n;try{return JSON.parse(e)}catch(r){return o?null!==(n=i.a.cloneDeep(o.find((function(t){return t[D.templateQueryIdMap.instance]===e}))))&&void 0!==n?n:{}:null===(t=D.getDefaultInsObj)||void 0===t?void 0:t.call(D,e)}})),p=Object(c.j)(this.templateSrv,e.scopedVars,r[n].region,!1),d=[],m=0,h=t,f.label=2;case 2:return m=g)return(null==f?void 0:f.response)?f.response(r):r;var v=Object(c.k)(g,(null==o?void 0:o.Limit)||100),b=[];return i.a.forEach(v,(function(r){b.push(n.getInstances(e,p(p({},r),t)))})),Promise.all(b).then((function(e){return i.a.forEach(e,(function(e){r=i.a.concat(r,e)})),(null==f?void 0:f.response)?f.response(r):r})).catch((function(e){return(null==f?void 0:f.response)?f.response(r):r}))}))},e.prototype.isValidConfigField=function(e){return e&&e.length>0},e.prototype.testDatasource=function(){var e=this;return this.isValidConfigField(this.secretId)?Promise.all([this.getRegions(),this.getMetrics(),this.getInstances("ap-guangzhou",{Offset:0,Limit:1})]).then((function(t){var n=i.a.get(t,"[0].Error",{}),r=i.a.get(t,"[1].Error",{}),o=i.a.get(t,"[2].Error",{}),a=i.a.get(n,"Code",""),c=i.a.get(r,"Code",""),s=i.a.get(o,"Code","");if(a||c||s){var u=[];a&&u.push(i.a.get(n,"Code")),c&&u.push(i.a.get(r,"Code")),s&&u.push(i.a.get(o,"Code"));var l=i.a.join(i.a.compact(i.a.uniq(u)),"; ");return{service:e.service,status:"error",message:l}}return{namespace:e.namespace,service:e.service,status:"success",message:"Successfully queried the ".concat(e.service," service."),title:"Success"}})).catch((function(t){var n="".concat(e.service," service:");return n+=t.statusText?t.statusText+"; ":"",i.a.get(t,"data.error.code","")?n+=t.data.error.code+". "+t.data.error.message:i.a.get(t,"data.error","")?n+=t.data.error:i.a.get(t,"data","")?n+=t.data:n+="Cannot connect to ".concat(e.service," service."),{service:e.service,status:"error",message:n}})):{service:this.service,status:"error",message:"The SecretId/SecretKey field is required."}},e.prototype.doRequest=function(e,t,n){return void 0===n&&(n={}),d(this,void 0,void 0,(function(){return f(this,(function(r){switch(r.label){case 0:return[4,Object(c.c)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return i.a.get(e,"data.Response",{})})).catch((function(e){throw e}))]}}))}))},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"d",(function(){return p})),n.d(t,"b",(function(){return d})),n.d(t,"f",(function(){return f})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return h}));var r=n(0),i=n.n(r),o=n(19),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t?r.push({Name:o,Values:i.a.uniq(e).slice(0,5)}):n[o]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t?r.push({Name:o,Values:i.a.get(e,"value",[]).slice(0,5)}):n[o]=i.a.get(e,"value")):null!=e&&""!==e&&(t?r.push({Name:o,Values:e}):n[o]=e)})),t&&r.length>0)return n.Filters=r,n}return n}function d(e){return i.a.get(i.a.find(o.SERVICES,(function(t){return t.service===e})),"namespace")}function f(e){return e.reduce((function(e,t){var n=t.namespace,r=t.label,i=t.groupName,o=void 0===i?r:i,a=e.find((function(e){return e.label===o}));return a?(a.items.push({label:r,value:n}),e):(e.push({label:o,value:o,items:[{label:r,value:n}]}),e)}),[]).map((function(e){return 1===e.items.length?{label:e.items[0].label,value:e.items[0].value}:e}))}var m=function(e,t,n){try{var r=JSON.parse(e),i=JSON.parse(t);return r[n]===i[n]}catch(n){return e===t}},h=function(e){var t=/^(\d+)([d|h|m|s])$/.exec(e);if(!t)return 0;var n=parseInt(t[1],10);switch(t[2]){case"d":return 86400*n*1e3;case"h":return 3600*n*1e3;case"m":return 60*n*1e3;case"s":return 1e3*n}return 0}},function(e,n){e.exports=t},function(e,t){e.exports=n},function(e,t,n){"use strict";n.r(t);var r=n(6),i=n.n(r),o=n(2);t.default=function(e,t){var n,r,a=(n=t,function(){function e(e,t){Object.assign(e,n),e.getDropdown=function(t){var n=Object(o.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t,region:e.region})}}return e.$inject=["$scope","$rootScope"],e}());i.a.directive(e,(r=a,function(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n',controller:r,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}))}},function(e,t,n){"use strict";var r=function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["InstanceId","InstanceName"],u=["TopicId","TopicName"],l={instance:"InstanceId",topicId:"TopicId",groupName:"GroupName",partition:"PartitionId"},p=new Proxy({topicId:"TopicId",topicName:"TopicName",consumerGroup:"GroupName",partition:"PartitionId"},{get:function(e,t){return"instanceid"===String(t).toLocaleLowerCase()?"InstanceId":e[t]}}),d={TopicList:"TopicList",GroupList:"GroupList",PartitionList:"PartitionList"},f={TopicId:{dim_KeyInStorage:d.TopicList,dim_KeyInTarget:"topicId",dim_KeyInMap:l.topicId},TopicName:{dim_KeyInStorage:d.TopicList,dim_KeyInTarget:"topicId",dim_KeyInMap:l.topicId},GroupName:{dim_KeyInStorage:d.GroupList,dim_KeyInTarget:"consumerGroup",dim_KeyInMap:l.groupName},PartitionId:{dim_KeyInStorage:d.PartitionList,dim_KeyInTarget:"partition",dim_KeyInMap:l.partition}};t.default=a},function(e,t){e.exports=i},function(e,t,n){"use strict";n.r(t),n.d(t,"LOADBALANCEFieldsDescriptor",(function(){return a})),n.d(t,"InstanceAliasList",(function(){return l})),n.d(t,"LOADBALANCEListenerAliasList",(function(){return p})),n.d(t,"LOADBALANCEServerAliasList",(function(){return d})),n.d(t,"LOADBALANCEVALIDDIMENSIONS",(function(){return f})),n.d(t,"templateQueryIdMap",(function(){return h})),n.d(t,"CANDIATEDIMENSIONS",(function(){return m})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"keyInStorage",(function(){return y})),n.d(t,"queryEditorConfig",(function(){return c})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"GetInstanceQueryParams",(function(){return u}));var r=n(4),i="QCE/LOADBALANCE",o="loadBalanceQuery",a=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1",link:"",type:"inputNumber",min:1},{key:"LoadBalancerIds",enDescriptor:"LoadBalancer ID",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancer Name",cnDescriptor:"实例名称",link:"",type:"input"},{key:"Forward",enDescriptor:"Forward",cnDescriptor:"负载均衡实例类型",link:"",type:"select",list:[{text:"通用的负载均衡",value:1},{text:"传统的负载均衡",value:0}]},{key:"Domain",enDescriptor:"Domain",cnDescriptor:"域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义",link:"",type:"input"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancer Vips",cnDescriptor:"负载均衡实例的 VIP 地址",link:"",type:"inputMulti"},{key:"BackendPrivateIps",enDescriptor:"BackendPrivate Ips",cnDescriptor:"负载均衡绑定的后端服务的内网 IP",link:"",type:"inputMulti"},{key:"BackendPublicIps",enDescriptor:"BackendPublic Ips",cnDescriptor:"负载均衡绑定的后端服务的外网 IP",link:"",type:"inputMulti"},{key:"ProjectId",enDescriptor:"Project ID",cnDescriptor:"负载均衡实例所属的项目 ID",link:"",type:"inputNumber"},{key:"VpcId",enDescriptor:"Vpc ID",cnDescriptor:"负载均衡实例所属私有网络",link:"",type:"input"},{key:"SecurityGroup",enDescriptor:"Security Group",cnDescriptor:"安全组ID",link:"",type:"input"},{key:"MasterZone",enDescriptor:"Master Zone",cnDescriptor:"主可用区ID",link:"",type:"input"},{key:"WithRs",enDescriptor:"WithRs",cnDescriptor:"负载均衡是否绑定后端服务",link:"",type:"select",list:[{text:"没有绑定后端服务",value:0},{text:"绑定后端服务",value:1},{text:"查询全部",value:-1}]},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"LoadBalancerName",value:"LoadBalancerName"},{text:"CreateTime",value:"CreateTime"},{text:"Domain",value:"Domain"},{text:"LoadBalancerType",value:"LoadBalancerType"}]},{key:"OrderType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]}],c={instanceDocUrl:"https://cloud.tencent.com/document/api/214/30685",namespace:i,fieldDescriptor:a},s={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",Port:"",Protocol:"",listener:"",servers:"",serverPort:"",queries:{LoadBalancerIds:[],Forward:void 0,LoadBalancerName:"",Domain:"",LoadBalancerVips:[],BackendPublicIps:[],BackendPrivateIps:[],Limit:20,Offset:0,ProjectId:void 0,WithRs:{},VpcId:"",SecurityGroup:"",MasterZone:"",OrderBy:{},OrderType:{}}};function u(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var l=["LoadBalancerId","LoadBalancerName","LoadBalancerVips"],p=["ListenerId","ListenerName","Port"],d=["PrivateIpAddresses","InstanceId"],f={vip:"LoadBalancerVips",loadBalancerPort:"Port",protocol:"Protocol",lanIp:"PrivateIpAddresses",port:"ServerPort"},m={LoadBalancerVips:"AddressIPv6"},h={instance:"LoadBalancerId",listener:"ListenerId",servers:"PrivateIpAddresses",port:"Port"},y={listener:"ListenerList",servers:"ServersList"},g={Port:{dim_KeyInStorage:y.listener,dim_KeyInTarget:"listener",dim_KeyInMap:h.listener},Protocol:{dim_KeyInStorage:y.listener,dim_KeyInTarget:"listener",dim_KeyInMap:h.listener},PrivateIpAddresses:{dim_KeyInStorage:y.servers,dim_KeyInTarget:"servers",dim_KeyInMap:h.servers},ServerPort:{dim_KeyInStorage:y.servers,dim_KeyInTarget:"serverPort",dim_KeyInIns:"Port",dim_KeyInMap:h.port}};t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"TDMQInstanceAliasList",(function(){return u})),n.d(t,"TDMQInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"keyInStorage",(function(){return y})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"regionSupported",(function(){return m})),n.d(t,"TDMQGetInstanceQueryParams",(function(){return f}));var r=n(4),i=n(0),o=n.n(i),a="QCE/TDMQ",c="tdmqQuery",s={tenantId:"ClusterId",tenant:"ClusterId",topicName:"TopicName",environmentId:"EnvironmentId"},u=["ClusterId","ClusterName"],l={instance:"ClusterId",topicName:"TopicName",environmentId:"EnvironmentId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100}],d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",topicName:"",environmentId:"",queries:{Limit:20,Offset:0}};function f(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var m=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}];function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){-1!==e.Dimensions.indexOf("topicName")&&-1===e.Dimensions.indexOf("environmentId")&&e.Dimensions.push("environmentId")})),t}var y={topicName:"topicName",environmentId:"environmentId"},g={TopicName:{dim_KeyInStorage:y.topicName,dim_KeyInTarget:"topicName",dim_KeyInMap:l.topicName},EnvironmentId:{dim_KeyInStorage:y.environmentId,dim_KeyInTarget:"environmentId",dim_KeyInMap:l.environmentId}};t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"GSEFilterFieldsDescriptor",(function(){return m})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"GSEInstanceAliasList",(function(){return l})),n.d(t,"GSEInvalidDemensions",(function(){return u})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return h})),n.d(t,"regionSupported",(function(){return v})),n.d(t,"modifyDimensons",(function(){return b})),n.d(t,"queryMonitorExtraConfg",(function(){return f})),n.d(t,"fleetId",(function(){return c})),n.d(t,"keyInStorage",(function(){return d})),n.d(t,"GSEGetInstanceQueryParams",(function(){return g}));var r=n(4),i=n(0),o=n.n(i),a="QCE/GSE",c="FleetId",s="gseQuery",u={instanceid:"InstanceId",fleetid:"FleetId",queuename:"Name"},l=["InstanceId","PrivateIpAddress","IpAddress"],p={instance:"InstanceId",Name:"Name",FleetId:c},d={fleet:"fleet",queue:"queueName"},f={FleetId:{dim_KeyInStorage:d.fleet,dim_KeyInTarget:"FleetId",dim_KeyInMap:p.FleetId},Name:{dim_KeyInStorage:d.queue,dim_KeyInTarget:"Name",dim_KeyInMap:p.Name}},m=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceId",enDescriptor:"resourceName",cnDescriptor:"资源名称",link:"",type:"input"},{key:"FleetId",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"input"}],h={instanceDocUrl:"https://cloud.tencent.com/document/api/1165/42604",namespace:a,fieldDescriptor:m},y={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",FleetId:"",Name:"",queries:{Limit:20,Offset:0,InstanceId:"",FleetId:""}};function g(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var v=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-ashburn"},{value:"na-siliconvalley"}];function b(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return u[e]||e}))})),t}t.default=y},function(e,t,n){"use strict";n.r(t),n.d(t,"DCDBFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"DCDBInstanceAliasList",(function(){return s})),n.d(t,"DCDBInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"regionSupported",(function(){return v})),n.d(t,"keyInStorage",(function(){return y})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"DCDBGetInstanceQueryParams",(function(){return h}));var r=n(0),i=n(4),o="QCE/TDMYSQL",a="dcdbQuery",c={nodeid:"NodeId",instanceid:"InstanceId",shardid:"ShardInstanceId",ShardId:"ShardInstanceId"},s=["InstanceId","InstanceName"],u={instance:"InstanceId",NodeId:"NodeId",ShardInstanceId:"ShardInstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"实例 ID 查询",link:"",type:"inputMulti"},{key:"SearchName",enDescriptor:"SearchName",cnDescriptor:"搜索的字段名,当前支持的值有:instancename、vip、all",link:"",type:"input"},{key:"SearchKey",enDescriptor:"SearchKey",cnDescriptor:"搜索的关键字",link:"",type:"input"},{key:"ProjectIds",enDescriptor:"ProjectIds",cnDescriptor:"按项目 ID 查询",link:"",type:"inputNumberMulti"},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络 ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"私有网络的子网 ID",link:"",type:"input"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"projectId",value:"projectId"},{text:"createtime",value:"createtime"},{text:"instancename",value:"instancename"}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"私有网络 ID",link:"",type:"select",list:[{text:"desc",value:"desc"},{text:"asc",value:"asc"}]},{key:"ExclusterType",enDescriptor:"ExclusterType",cnDescriptor:"集群类型",link:"",type:"select",list:[{text:"非独享集群",value:1},{text:"独享集群",value:2},{text:"全部",value:0},{text:"asc",value:"asc"}]},{key:"ExclusterIds",enDescriptor:"ExclusterIds",cnDescriptor:"独享集群ID",link:"",type:"inputMulti"},{key:"FilterInstanceType",enDescriptor:"FilterInstanceType",cnDescriptor:"实例类型过滤",link:"",type:"select",multiple:!0,list:[{text:"独享实例",value:1},{text:"主实例",value:2},{text:"灾备实例",value:3}]}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/557/16140",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",ShardId:"",NodeId:"",queries:{Limit:20,Offset:0,InstanceIds:[],SearchName:"",SearchKey:"",ProjectIds:[],VpcId:"",SubnetId:"",OrderBy:{},OrderByType:{},ExclusterType:{},ExclusterIds:[],FilterInstanceType:{}}},f={shardid:"ShardId",instanceid:"InstanceId",nodeid:"NodeId"};function m(e){var t=Object(r.cloneDeep)(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return f[e]||e}))})),t}function h(e){void 0===e&&(e={});var t=Object(i.d)(e,!1);return t.IsFilterVpc=!1,t.IsFilterExcluster=!1,(t.VpcId||t.SubnetId)&&(t.IsFilterVpc=!0),t.ExclusterType&&(t.IsFilterExcluster=!0),Object(r.isArray)(t.FilterInstanceType)&&(t.FilterInstanceType=t.FilterInstanceType.join(",")),t}var y={NodeId:"NodeId",ShardInstanceId:"ShardId"},g={NodeId:{dim_KeyInStorage:y.NodeId,dim_KeyInTarget:"NodeId",dim_KeyInMap:u.NodeId},ShardInstanceId:{dim_KeyInStorage:y.ShardInstanceId,dim_KeyInTarget:"ShardId",dim_KeyInMap:u.ShardInstanceId}},v=[{text:"华北地区(北京)",value:"ap-beijing"},{text:"西南地区(成都)",value:"ap-chengdu"},{text:"西南地区(重庆)",value:"ap-chongqing"},{text:"华南地区(广州)",value:"ap-guangzhou"},{text:"港澳台地区(中国香港)",value:"ap-hongkong"},{text:"亚太南部(孟买)",value:"ap-mumbai"},{text:"华东地区(南京)",value:"ap-nanjing"},{text:"华东地区(上海)",value:"ap-shanghai"},{text:"华东地区(上海金融)",value:"ap-shanghai-fsi"},{text:"华南地区(深圳金融)",value:"ap-shenzhen-fsi"},{text:"亚太东南(新加坡)",value:"ap-singapore"},{text:"亚太东北(东京)",value:"ap-tokyo"},{text:"欧洲地区(法兰克福)",value:"eu-frankfurt"},{text:"美国东部(弗吉尼亚)",value:"na-ashburn"},{text:"美国西部(硅谷)",value:"na-siliconvalley"},{text:"北美地区(多伦多)",value:"na-toronto"}];t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisMemFieldsDescriptor",(function(){return c})),n.d(t,"RedisMemInvalidDemensions",(function(){return p})),n.d(t,"REDISMEMInstanceAliasList",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return d})),n.d(t,"namespace",(function(){return a})),n.d(t,"NodeType",(function(){return f})),n.d(t,"REDISMEMGetInstanceQueryParams",(function(){return u}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var l=["InstanceId","InstanceName","WanIp"],p={instanceid:"InstanceId",rnodeid:"rnodeid",pnodeid:"pnodeid"},d={instance:"InstanceId",rnodeid:"rnodeid",pnodeid:"pnodeid"},f=["Redis","Proxy"];t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"TDMQRABBITMQInstanceAliasList",(function(){return c})),n.d(t,"TDMQInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryMonitorExtraConfg",(function(){return m})),n.d(t,"keyInStorage",(function(){return f})),n.d(t,"regionSupported",(function(){return d})),n.d(t,"TDMQGetInstanceQueryParams",(function(){return p}));var r=n(4),i="QCE/RABBITMQ",o="tdmqQuery",a={instanceid:"InstanceId",node:"NodeName"},c=["InstanceId","InstanceName"],s={instance:"InstanceId",node:"NodeName"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100}],l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",node:"",queries:{Limit:20,Offset:0}};function p(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var d=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],f={node:"NodeName"},m={NodeName:{dim_KeyInStorage:f.node,dim_KeyInTarget:"node",dim_KeyInMap:s.node}};t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"TDMQROCKETMQInstanceAliasList",(function(){return c})),n.d(t,"TDMQInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryMonitorExtraConfg",(function(){return m})),n.d(t,"keyInStorage",(function(){return f})),n.d(t,"regionSupported",(function(){return d})),n.d(t,"TDMQROCKETMQGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o="QCE/ROCKETMQ",a={tenant:"ClusterId",namespace:"NamespaceId",group:"Name"},c=["ClusterId","ClusterName"],s={instance:"ClusterId",namespace:"NamespaceId",group:"Name"},u=[{key:"includeVip",enDescriptor:"includeVip",cnDescriptor:"包含专享集群",link:"",type:"select",list:[{text:"是",value:"true"},{text:"否",value:"false"}]}],l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",namespace:"",group:"",queries:{Limit:20,Offset:0,instanceIdsChecked:!1,filtersChecked:!0,ClusterIdList:[""],Filters:{includeVip:{text:"是",value:"true"}}}};function p(e){void 0===e&&(e={});var t={};if(!i.a.isEmpty(e))if(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(i.a.isArray(e.ClusterIdList)){var n=i.a.compact(e.ClusterIdList);i.a.uniq(n).length>0&&(t.ClusterIdList=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:[i.a.get(e,"value",[])].slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var d=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],f={namespace:"NamespaceId",group:"Name"},m={NamespaceId:{dim_KeyInStorage:f.namespace,dim_KeyInTarget:"namespace",dim_KeyInMap:s.namespace},Name:{dim_KeyInStorage:f.group,dim_KeyInTarget:"group",dim_KeyInMap:s.group}};t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"InitServiceState",(function(){return c})),n.d(t,"SERVICES",(function(){return o})),n.d(t,"Datasources",(function(){return a})),n.d(t,"InstanceAliasList",(function(){return s})),n.d(t,"GetInstanceQueryParams",(function(){return u}));var r=n(1),i=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c=new Proxy({},{get:function(e,t,n){if("string"==typeof t){if(t.startsWith("id4"))return"ClusterId";if(t.startsWith("host4"))return"Ip"}return Reflect.get(e,t,n)},has:function(e,t){return!0}}),s={instance:"ClusterId",node:"Ip"},u={node:"nodeIP"},l={Ip:{dim_KeyInStorage:u.node,dim_KeyInTarget:"nodeIP",dim_KeyInMap:s.node}},p=["ClusterId","ClusterName"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",nodeIP:"",queries:{Offset:0,Limit:10,DisplayStrategy:"",OrderBy:{},Order:{},InstanceIds:[],ProjectId:-1,OrderField:"",Asc:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"VCLBFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"VCLBInstanceAliasList",(function(){return u})),n.d(t,"VCLBInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"clbNamespaceMap",(function(){return y})),n.d(t,"modifyDimensons",(function(){return g})),n.d(t,"regionSupported",(function(){return h})),n.d(t,"BMLBGetInstanceQueryParams",(function(){return m}));var r=n(4),i=n(0),o=n.n(i),a="QCE/V_CLB",c="vClbQuery",s={InstanceId:"LoadBalancerId"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1",link:"",type:"inputNumber",min:1},{key:"LoadBalancerIds",enDescriptor:"LoadBalancer ID",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancer Name",cnDescriptor:"实例名称",link:"",type:"input"},{key:"Forward",enDescriptor:"Forward",cnDescriptor:"负载均衡实例类型",link:"",type:"select",list:[{text:"通用的负载均衡",value:1},{text:"传统的负载均衡",value:0}]},{key:"Domain",enDescriptor:"Domain",cnDescriptor:"域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义",link:"",type:"input"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancer Vips",cnDescriptor:"负载均衡实例的 VIP 地址",link:"",type:"inputMulti"},{key:"BackendPrivateIps",enDescriptor:"BackendPrivate Ips",cnDescriptor:"负载均衡绑定的后端服务的内网 IP",link:"",type:"inputMulti"},{key:"BackendPublicIps",enDescriptor:"BackendPublic Ips",cnDescriptor:"负载均衡绑定的后端服务的外网 IP",link:"",type:"inputMulti"},{key:"ProjectId",enDescriptor:"Project ID",cnDescriptor:"负载均衡实例所属的项目 ID",link:"",type:"inputNumber"},{key:"VpcId",enDescriptor:"Vpc ID",cnDescriptor:"负载均衡实例所属私有网络",link:"",type:"input"},{key:"SecurityGroup",enDescriptor:"Security Group",cnDescriptor:"安全组ID",link:"",type:"input"},{key:"MasterZone",enDescriptor:"Master Zone",cnDescriptor:"主可用区ID",link:"",type:"input"},{key:"WithRs",enDescriptor:"WithRs",cnDescriptor:"负载均衡是否绑定后端服务",link:"",type:"select",list:[{text:"没有绑定后端服务",value:0},{text:"绑定后端服务",value:1},{text:"查询全部",value:-1}]},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"LoadBalancerName",value:"LoadBalancerName"},{text:"CreateTime",value:"CreateTime"},{text:"Domain",value:"Domain"},{text:"LoadBalancerType",value:"LoadBalancerType"}]},{key:"OrderType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/214/30685",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",Port:"",Protocol:"",listener:"",queries:{LoadBalancerIds:[],Forward:void 0,LoadBalancerName:"",Domain:"",LoadBalancerVips:[],BackendPublicIps:[],BackendPrivateIps:[],Limit:20,Offset:0,ProjectId:void 0,WithRs:{},VpcId:"",SecurityGroup:"",MasterZone:"",OrderBy:{},OrderType:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var h=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],y={public:"QCE/LB_PUBLIC",private:"QCE/LB_PRIVATE"};function g(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"cynosdbMysqlFilterFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return m})),n.d(t,"CYNOSDBMYSQLInstanceAliasList",(function(){return f})),n.d(t,"CYNOSDBInvalidDemensions",(function(){return h})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"regionSupported",(function(){return u})),n.d(t,"modifyDimensons",(function(){return g})),n.d(t,"checkKeys",(function(){return y})),n.d(t,"CYNOSDBMYSQLGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n.n(r),o=n(4),a="QCE/CYNOSDB_MYSQL",c="cynosdbMysqlQuery",s=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:1e3},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"实例id列表",link:"",type:"inputMulti"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"创建时间",value:"CREATETIME"},{text:"过期时间",value:"PERIODENDTIME"}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"排序类型",link:"",type:"select",list:[{text:"升序",value:"ASC"},{text:"降序",value:"DESC"}]},{key:"DbType",enDescriptor:"DbType",cnDescriptor:"引擎类型",link:"",type:"select",list:[{text:"MYSQL",value:"MYSQL"},{text:"POSTGRESQL",value:"POSTGRESQL"}]}],u=[{value:"ap-beijing"},{value:"ap-guangzhou"},{value:"ap-nanjing"},{value:"ap-shanghai"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/1003/48334",namespace:a,fieldDescriptor:s},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,OrderBy:{},OrderByType:{},InstanceIds:[],DbType:{}}};function d(e){return void 0===e&&(e={}),Object(o.d)(e,!1)}var f=["InstanceId","InstanceName"],m={instance:"InstanceId"},h={instanceid:"InstanceId",instanceId:"InstanceId"},y=["instanceId"];function g(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryDescriptor",(function(){return o})),n.d(t,"SCFInstanceAliasList",(function(){return s})),n.d(t,"SCFInvalidDemensions",(function(){return u})),n.d(t,"queryMonitorExtraConfg",(function(){return f})),n.d(t,"regionSupported",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"keyInStorage",(function(){return d})),n.d(t,"SCFGetInstanceQueryParams",(function(){return c})),n.d(t,"SCFDefaultDimensionList",(function(){return m}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"SearchKey",enDescriptor:"SearchKey",cnDescriptor:"支持FunctionName模糊匹配",link:"",type:"input"},{key:"Namespace",enDescriptor:"Namespace",cnDescriptor:"云函数命名空间",link:"",type:"input"},{key:"Description",enDescriptor:"Description",cnDescriptor:"函数描述,支持模糊搜索",link:"",type:"input"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"AddTime",value:"AddTime"},{text:"ModTime",value:"ModTime"},{text:"FunctionName",value:"FunctionName"}]},{key:"Order",enDescriptor:"Order Direction",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"ASC",value:"ASC"},{text:"DESC",value:"DESC"}]}],a={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"FunctionName",version:"",queries:{Offset:0,Limit:20,OrderBy:{},Order:{},SearchKey:"",Namespace:"",Description:""}};function c(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["FunctionId","FunctionName"],u={functionName:"FunctionName",namespace:"Namespace",version:"Version"},l={instance:"FunctionName",version:"Version"},p=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-siliconvalley"},{value:"na-toronto"}],d={version:"version"},f={Version:{dim_KeyInStorage:d.version,dim_KeyInTarget:"version",dim_KeyInMap:l.version}};t.default=a;var m=["functionName","namespace","version"]},function(e,t){e.exports=o},function(e,t,n){"use strict";n.r(t),n.d(t,"CLSFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CLSInstanceAliasList",(function(){return u})),n.d(t,"CLSInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"regionSupported",(function(){return h})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"CLSGetInstanceQueryParams",(function(){return m}));var r=n(4),i=n(0),o=n.n(i),a="QCE/CLS",c="clsQuery",s={},u=["TopicId","TopicName"],l={instance:"TopicId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"topicName",enDescriptor:"topicName",cnDescriptor:"日志主题名称",link:"",type:"inputMulti"},{key:"topicId",enDescriptor:"topicId",cnDescriptor:"日志主题ID",link:"",type:"inputMulti"},{key:"logsetName",enDescriptor:"logsetName",cnDescriptor:"日志集名称",link:"",type:"inputMulti"},{key:"logsetId",enDescriptor:"logsetId",cnDescriptor:"日志集ID",link:"",type:"inputMulti"},{key:"tagKey",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"inputMulti"},{key:"tag:tagKey",enDescriptor:"tag - tagKey",cnDescriptor:"标签键值对",link:"",type:"inputMulti"},{key:"storageType",enDescriptor:"storageType",cnDescriptor:"日志主题的存储类型",link:"",type:"select",list:[{text:"实时存储",value:"hot"},{text:"离线存储",value:"cold"}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/614/56454",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TopicId",uin:"",queries:{Limit:20,Offset:0,topicName:[],topicId:[],logsetName:[],logsetId:[],tagKey:[],"tag:tagKey":[],storageType:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var h=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}];function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["uin","TopicId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"SQLSERVERNETFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"SQLSERVERInstanceAliasList",(function(){return u})),n.d(t,"SQLSERVERInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"regionSupported",(function(){return f})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"SQLSERVERGetInstanceQueryParams",(function(){return y}));var r=n(4),i=n(0),o=n.n(i),a="QCE/SQLSERVER",c="sqlserverQuery",s={resourceId:"InstanceId"},u=["InstanceId","Name"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ProjectId",enDescriptor:"ProjectId",cnDescriptor:"项目ID",link:"",type:"inputNumber"},{key:"Status",enDescriptor:"Status",cnDescriptor:"实例状态",link:"",type:"select",list:[{text:"申请中",value:1},{text:"运行中",value:2},{text:"受限运行中 (主备切换中)",value:3},{text:"已隔离",value:4},{text:"回收中",value:5},{text:"已回收",value:6},{text:"任务执行中",value:7},{text:"已下线",value:8},{text:"实例扩容中",value:9},{text:"实例迁移中",value:10},{text:"只读",value:11},{text:"重启中",value:12}]},{key:"InstanceIdSet",enDescriptor:"InstanceIdSet",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"PayMode",enDescriptor:"PayMode",cnDescriptor:"子网实例ID",link:"",type:"select",list:[{text:"包年包月",value:1},{text:"按量计费",value:0}]},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"实例所属VPC的唯一字符串ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"实例所属子网的唯一字符串ID",link:"",type:"input"},{key:"VipSet",enDescriptor:"VipSet",cnDescriptor:"实例内网地址列表",link:"",type:"inputMulti"},{key:"InstanceNameSet",enDescriptor:"InstanceNameSet",cnDescriptor:"实例名称列表, 模糊查询",link:"",type:"inputMulti"},{key:"VersionSet",enDescriptor:"VersionSet",cnDescriptor:"实例版本代号列表",link:"",type:"inputMulti"},{key:"Zone",enDescriptor:"Zone",cnDescriptor:"实例可用区",link:"",type:"dropdown"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/238/19969",namespace:a,fieldDescriptor:p},f=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-nanjing"},{value:"ap-seoul"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-moscow"},{value:"na-siliconvalley"}],m={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,ProjectId:null,Status:{},InstanceIdSet:[],PayMode:{},VpcId:"",SubnetId:"",VipSet:[],InstanceNameSet:[],VersionSet:[],Zone:""}};function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["resourceId"]})),t}function y(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=m},function(e,t,n){"use strict";n.r(t),n.d(t,"BMINTRALBFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMINTRALBInstanceAliasList",(function(){return u})),n.d(t,"BMINTRALBInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"isValidMetric",(function(){return h})),n.d(t,"BMINTRALBGetInstanceQueryParams",(function(){return y}));var r=n(4),i=n(0),o=n.n(i),a="QCE/BM_INTRA_LB",c="bmIntraLbQuery",s={vip:"LoadBalancerVips",vpcId:"VpcId"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"LoadBalancerIds",enDescriptor:"LoadBalancerIds",cnDescriptor:"负载均衡器ID数组",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancerName",cnDescriptor:"负载均衡器名称",link:"",type:"inputMulti"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancerVips",cnDescriptor:"负载均衡获得的公网IP地址",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/1027/33280",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",queries:{Limit:20,Offset:0,LoadBalancerIds:[],LoadBalancerName:[],LoadBalancerVips:[]}},m=["Inpkg","Outpkg","Intraffic","Outtraffic","Connum","Req"];function h(e){var t=o.a.map(m,o.a.toUpper);return-1!==o.a.indexOf(t,o.a.toUpper(e.MetricName))}function y(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"CPMFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMLBInstanceAliasList",(function(){return u})),n.d(t,"CPMInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"isValidMetric",(function(){return y})),n.d(t,"BMLBGetInstanceQueryParams",(function(){return m}));var r=n(4),i=n(0),o=n.n(i),a="QCE/BM_LB",c="bmLbQuery",s={vip:"LoadBalancerVips"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"LoadBalancerIds",enDescriptor:"LoadBalancerIds",cnDescriptor:"负载均衡器ID数组",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancerName",cnDescriptor:"负载均衡器名称",link:"",type:"inputMulti"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancerVips",cnDescriptor:"负载均衡获得的公网IP地址",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/1027/33280",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",queries:{Limit:20,Offset:0,LoadBalancerIds:[],LoadBalancerName:[],LoadBalancerVips:[]}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var h=["Inpkg","Outpkg","Intraffic","Outtraffic","Connum","Req"];function y(e){var t=o.a.map(h,o.a.toUpper);return-1!==o.a.indexOf(t,o.a.toUpper(e.MetricName))}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"BMPCXFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMPCXInstanceAliasList",(function(){return u})),n.d(t,"BMPCXInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"BMPCXGetInstanceQueryParams",(function(){return m}));var r=n(4),i=n(0),o=n.n(i),a="QCE/BM_PCX",c="bmPcxQuery",s={peeringConnectionId:"VpcPeerConnectionId"},u=["VpcPeerConnectionId","VpcPeerConnectionName"],l={instance:"VpcPeerConnectionId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"VpcPeerConnectionIds",enDescriptor:"VpcPeerConnectionIds",cnDescriptor:"对等连接实例ID",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/product/1024/36903",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpcPeerConnectionId",queries:{Limit:20,Offset:0,VpcPeerConnectionIds:[]}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["peeringConnectionId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"CBSFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"CBSInstanceAliasList",(function(){return s})),n.d(t,"CBSInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"isValidMetric",(function(){return m})),n.d(t,"CBSGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n(4),o="QCE/BLOCK_STORAGE",a="cbsQuery",c={diskId:"DiskId",InstanceId:"InstanceId",diskname:"DiskName",unInstanceId:"InstanceId"},s=["DiskId","DiskName"],u={instance:"DiskId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DiskIds",enDescriptor:"DiskIds",cnDescriptor:"云硬盘ID",link:"",type:"inputMulti"},{key:"Order",enDescriptor:"Order",cnDescriptor:"排列顺序",link:"",type:"select",list:[{text:"升序排列",value:"ASC"},{text:"降序排列",value:"DESC"}]},{key:"OrderField",enDescriptor:"OrderField",cnDescriptor:"排序的依据字段",link:"",type:"select",list:[{text:"云盘的创建时间排序",value:"CREATE_TIME"},{text:"云盘的到期时间排序",value:"DEADLINE"}]},{key:"ReturnBindAutoSnapshotPolicy",enDescriptor:"ReturnBindAutoSnapshotPolicy",cnDescriptor:"否需要返回云盘绑定的定期快照策略ID",link:"",type:"switch"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/362/16315",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DiskId",queries:{Limit:20,Offset:0,DiskIds:[],OrderField:[],Order:[],ReturnBindAutoSnapshotPolicy:!1}};function f(e){return void 0===e&&(e={}),Object(i.d)(e,!1)}function m(e){void 0===e&&(e={});var t=r.get(e,"Dimensions[0].Dimensions");return 1===t.length&&-1!==r.indexOf(t,"diskId")}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNPROVINCEFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"CDNPROVINCEInstanceAliasList",(function(){return c})),n.d(t,"CDNPROVINCEInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"CDNPROVINCEGetInstanceQueryParams",(function(){return p}));var r=n(4),i="QCE/CDN_LOG_DATA",o="cdnProvinceQuery",a={domain:"Domain",projectid:"ProjectId",province:"district",appid:"AppId"},c=["Domain","ProjectId"],s={instance:"Domain"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"origin",enDescriptor:"origin",cnDescriptor:"主源站",link:"",type:"inputMulti"},{key:"domain",enDescriptor:"domain",cnDescriptor:"域名",link:"",type:"inputMulti"},{key:"resourceId",enDescriptor:"resourceId",cnDescriptor:"域名id",link:"",type:"inputMulti"},{key:"status",enDescriptor:"status",cnDescriptor:"域名状态",link:"",type:"select",list:[{text:"online",value:"online"},{text:"offline",value:"offline"},{text:"processing",value:"processing"}]},{key:"serviceType",enDescriptor:"serviceType",cnDescriptor:"业务类型",link:"",type:"select",list:[{text:"web",value:"web"},{text:"download",value:"download"},{text:"media",value:"media"}]},{key:"projectId",enDescriptor:"projectId",cnDescriptor:"项目ID",link:"",type:"inputNumberMulti"},{key:"domainType",enDescriptor:"domainType",cnDescriptor:"主源站类型",link:"",type:"select",list:[{text:"自有源",value:"cname"},{text:"cos接入",value:"cos"}]},{key:"fullUrlCache",enDescriptor:"fullUrlCache",cnDescriptor:"全路径缓存",link:"",type:"select",list:[{text:"打开",value:"on"},{text:"关闭",value:"off"}]},{key:"https",enDescriptor:"https",cnDescriptor:"是否配置https",link:"",type:"select",list:[{text:"on",value:"on"},{text:"off",value:"off"},{text:"processing",value:"processing"}]},{key:"originPullProtocol",enDescriptor:"originPullProtocol",cnDescriptor:"回源协议类型",link:"",type:"select",list:[{text:"http",value:"http"},{text:"follow",value:"follow"},{text:"https",value:"https"}]},{key:"tagKey",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"inputMulti"}],l={region:"ap-guangzhou",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"Domain",isp:"",district:"",queries:{Limit:20,Offset:0,origin:[],domain:[],resourceId:[],status:{},serviceType:{},projectId:[],domainType:{},fullUrlCache:{},https:{},originPullProtocol:{},tagKey:[]}};function p(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"CEIPFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CEIPSUMMARYInstanceAliasList",(function(){return u})),n.d(t,"CEIPInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"CEIPSUMMARYGetInstanceQueryParams",(function(){return m}));var r=n(0),i=n.n(r),o=n(4),a="QCE/CEIP_SUMMARY",c="ceipSummaryQuery",s={vip:"AddressIp",eip:"AddressIp"},u=["AddressId","AddressName","AddressIp"],l={instance:"AddressId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"address-id",enDescriptor:"address-id",cnDescriptor:" EIP 的唯一 ID",link:"",type:"inputMulti"},{key:"address-name",enDescriptor:"address-name",cnDescriptor:"EIP 名称",link:"",type:"inputMulti"},{key:"address-ip",enDescriptor:"address-ip",cnDescriptor:"EIP 的 IP 地址",link:"",type:"inputMulti"},{key:"address-status",enDescriptor:"address-status",cnDescriptor:"EIP 的状态",link:"",type:"select",multiple:!0,list:[{text:"CREATING",value:"CREATING"},{text:"BINDING",value:"BINDING"},{text:"BIND",value:"BIND"},{text:"UNBINDING",value:"UNBINDING"},{text:"UNBIND",value:"UNBIND"},{text:"OFFLINING",value:"OFFLINING"},{text:"BIND_ENI",value:"BIND_ENI"}]},{key:"instance-id",enDescriptor:"instance-id",cnDescriptor:"EIP 绑定的实例 ID",link:"",type:"inputMulti"},{key:"private-ip-address",enDescriptor:"private-ip-address",cnDescriptor:"EIP 绑定的内网 IP ",link:"",type:"inputMulti"},{key:"network-interface-id",enDescriptor:"network-interface-id",cnDescriptor:" EIP 绑定的弹性网卡 ID",link:"",type:"inputMulti"},{key:"is-arrears",enDescriptor:"is-arrears",cnDescriptor:"EIP 是否欠费",link:"",type:"select",multiple:!0,list:[{text:"欠费状态",value:"TRUE"},{text:"费用状态正常",value:"FALSE"}]},{key:"address-isp",enDescriptor:"address-isp",cnDescriptor:"运营商类型",link:"",type:"select",multiple:!0,list:[{text:"BGP",value:"BGP"},{text:"CMCC",value:"CMCC"},{text:"CUCC",value:"CUCC"},{text:"CTCC",value:"CTCC"}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/215/16702",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"AddressId",queries:{Limit:20,Offset:0,"address-id":[],"address-name":[],"address-ip":[],"address-status":{},"is-arrears":{},"address-isp":{},"instance-id":[],"private-ip-address":[],"network-interface-id":[]}};function m(e){return void 0===e&&(e={}),Object(o.d)(e,!0)}function h(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["eip"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceQueryDescriptor",(function(){return o})),n.d(t,"InvalidDemensions",(function(){return c})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"InstanceAliasList",(function(){return p})),n.d(t,"GetInstanceQueryParams",(function(){return a})),n.d(t,"queryMonitorExtraConfg",(function(){return l})),n.d(t,"keyInStorage",(function(){return u}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为10,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:50},{key:"TopicName",enDescriptor:"TopicName",cnDescriptor:"精确匹配TopicName",link:"",type:"input"},{key:"TagKey",enDescriptor:"TagKey",cnDescriptor:"标签搜索",link:"",type:"input"}];function a(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c={topicId:"TopicId"},s={instance:"TopicName",subscription:"SubscriptionId"},u={subscriptionId:"subscriptionId"},l={subscriptionId:{dim_KeyInStorage:u.subscriptionId,dim_KeyInTarget:"subscriptionId",dim_KeyInMap:s.subscription}},p=["TopicName","TopicId"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TopicName",subscriptionId:"",queries:{Offset:0,Limit:20,TopicName:"",TagKey:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"CPMFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CPMInstanceAliasList",(function(){return u})),n.d(t,"CPMInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"CPMGetInstanceQueryParams",(function(){return m}));var r=n(4),i=n(0),o=n.n(i),a="QCE/CPM",c="cpmQuery",s={instanceId:"InstanceId"},u=["InstanceId","Name"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DeviceClassCode",enDescriptor:"DeviceClassCode",cnDescriptor:"机型ID",link:"",type:"dropdown"},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"设备ID数组",link:"",type:"inputMulti"},{key:"WanIps",enDescriptor:"WanIps",cnDescriptor:"外网IP数组",link:"",type:"inputMulti"},{key:"LanIps",enDescriptor:"LanIps",cnDescriptor:"内网IP数组",link:"",type:"inputMulti"},{key:"Alias",enDescriptor:"Alias",cnDescriptor:"设备名称",link:"",type:"input"},{key:"VagueIp",enDescriptor:"VagueIp",cnDescriptor:"模糊IP查询",link:"",type:"input"},{key:"AutoRenewFlag",enDescriptor:"AutoRenewFlag",cnDescriptor:"自动续费标志",link:"",type:"select",list:[{text:"不自动续费",value:0},{text:"自动续费",value:1}]},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络唯一ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"子网唯一ID",link:"",type:"input"},{key:"DeviceType",enDescriptor:"DeviceType",cnDescriptor:"子网实例ID",link:"",type:"select",list:[{text:"计算型",value:"compute"},{text:"标准型",value:"standard"},{text:"存储型",value:"storage"}]},{key:"IsLuckyDevice",enDescriptor:"IsLuckyDevice",cnDescriptor:"竞价实例机器过滤",link:"",type:"select",list:[{text:"非竞价实例机器",value:0},{text:"竞价实例的机器",value:1}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/386/32904",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,DeviceClassCode:"",InstanceIds:[],WanIps:[],LanIps:[],Alias:"",VagueIp:"",AutoRenewFlag:{},VpcId:"",SubnetId:"",DeviceType:{},IsLuckyDevice:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["instanceId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"ECDNFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"ECDNInstanceAliasList",(function(){return c})),n.d(t,"ECDNInvalidDemensions",(function(){return u})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"ECDNGetInstanceQueryParams",(function(){return f}));var r=n(0),i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o.push({Name:t,Value:Object(r.uniq)(e).slice(0,5)}):Object(r.isObject)(e)&&(Object(r.isEmpty)(Object(r.get)(e,"value",[]))||o.push({Name:t,Value:[Object(r.get)(e,"value",[])].slice(0,5)}))})),o.length>0)return t.Filters=o.map((function(e){return"domain"===e.Name?i(i({},e),{Fuzzy:!0}):e})),t}return t}function m(e){var t=Object(r.cloneDeep)(e);return t.Dimensions.forEach((function(e){e.Dimensions=["domain","projectid"]})),t}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"ECMFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"ECMInstanceAliasList",(function(){return s})),n.d(t,"ECMInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"ECMGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n(4),o="QCE/ECM",a="ecmQuery",c={uuid:"UUID"},s=["InstanceId","InstanceName"],u={instance:"InstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"zone",enDescriptor:"zone",cnDescriptor:"可用区英文标识",link:"",type:"dropdownMulti"},{key:"zone-name",enDescriptor:"zone-name",cnDescriptor:"排列顺序",link:"",type:"inputMulti"},{key:"module-id",enDescriptor:"module-id",cnDescriptor:"模块ID",link:"",type:"inputMulti"},{key:"module-name",enDescriptor:"module-name",cnDescriptor:"模块名称",link:"",type:"inputMulti"},{key:"instance-id",enDescriptor:"instance-id",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"instance-name",enDescriptor:"instance-name",cnDescriptor:"实例名称",link:"",type:"inputMulti"},{key:"ip-address",enDescriptor:"ip-address",cnDescriptor:"内网/公网IP",link:"",type:"inputMulti"},{key:"instance-uuid",enDescriptor:"instance-uuid",cnDescriptor:"实例uuid",link:"",type:"inputMulti"},{key:"instance-state",enDescriptor:"instance-state",cnDescriptor:"实例状态",link:"",type:"select",multiple:!0,list:[{text:"创建中",value:"PENDING"},{text:"创建失败",value:"LAUNCH_FAILED"},{text:"运行中",value:"RUNNING"},{text:"关机",value:"STOPPED"},{text:"开机中",value:"STARTING"},{text:"关机中",value:"STOPPING"},{text:"重启中",value:"REBOOTING"},{text:"停止待销毁",value:"SHUTDOWN"},{text:"销毁中",value:"TERMINATING"}]},{key:"internet-service-provider",enDescriptor:"internet-service-provider",cnDescriptor:"公网IP所属的运营商",link:"",type:"inputMulti"},{key:"instance-family",enDescriptor:"instance-family",cnDescriptor:"机型family",link:"",type:"inputMulti"},{key:"image-id",enDescriptor:"image-id",cnDescriptor:"镜像ID",link:"",type:"inputMulti"},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"实例的vpc id",link:"",type:"inputMulti"},{key:"subnet-id",enDescriptor:"subnet-id",cnDescriptor:"实例的subnet id",link:"",type:"inputMulti"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/1108/42565",namespace:o,fieldDescriptor:l},d={region:"ap-guangzhou",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,zone:[],"zone-name":[],"module-id":[],"module-name":[],"instance-id":[],"instance-name":[],"ip-address":[],"instance-uuid":[],"instance-state":{},"internet-service-provider":[],"instance-family":[],"image-id":[],"vpc-id":[],"subnet-id":[]}};function f(e){return void 0===e&&(e={}),Object(i.d)(e,!0)}function m(e){var t=r.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["UUID"]})),t}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"PostgresFieldsDescriptor",(function(){return u})),n.d(t,"POSTGRESInstanceAliasList",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return y})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"namespace",(function(){return c})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"PostgreInvalidDemensions",(function(){return h})),n.d(t,"POSTGRESGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n.n(r),o=n(4),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}function l(e){void 0===e&&(e={});var t=i.a.get(e,"Dimensions[0].Dimensions");return 2===t.length&&(-1!==i.a.indexOf(t,"instanceid")&&-1!==i.a.indexOf(t,"insttype")||-1!==i.a.indexOf(t,"InstanceId")&&-1!==i.a.indexOf(t,"InstanceType"))}function p(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return d[e]||e}))})),t}var d={instanceid:"InstanceId",insttype:"InstanceType",region:"Region"},f={instance:"InstanceId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CESFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"CESInstanceAliasList",(function(){return c})),n.d(t,"CESInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"CESGetInstanceQueryParams",(function(){return d}));var r=n(4),i="QCE/CES",o="cesQuery",a={uInstanceId:"InstanceId"},c=["InstanceId","InstanceName"],s={instance:"InstanceId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"集群实例ID列表",link:"",type:"inputMulti"},{key:"InstanceNames",enDescriptor:"InstanceNames",cnDescriptor:"集群实例名称列表",link:"",type:"inputMulti"},{key:"OrderByKey",enDescriptor:"OrderByKey",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"实例ID",value:1},{text:"实例名称",value:2},{text:"可用区",value:3},{text:"创建时间",value:4}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]},{key:"IpList",enDescriptor:"IpList",cnDescriptor:"私有网络vip列表",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/845/30631",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,InstanceIds:[],InstanceNames:[],OrderByKey:{},OrderByType:{},IpList:[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"DCFilterFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return f})),n.d(t,"DCInstanceAliasList",(function(){return d})),n.d(t,"DCInvalidDemensions",(function(){return m})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return u})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"DCGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o=n(4),a="QCE/DC",c="dcQuery",s=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DirectConnectIds",enDescriptor:"DirectConnectIds",cnDescriptor:"物理专线 ID",link:"",type:"inputMulti"}],u={instanceDocUrl:"https://cloud.tencent.com/document/api/216/34826",namespace:a,fieldDescriptor:s},l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DirectConnectId",queries:{Limit:20,Offset:0,DirectConnectIds:[]}};function p(e){return void 0===e&&(e={}),Object(o.d)(e,!1)}var d=["DirectConnectId","DirectConnectName"],f={instance:"DirectConnectId"},m={directConnectId:"DirectConnectId",directconnectid:"DirectConnectId"};function h(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["directConnectId"]})),t}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"DCGFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"DCGInstanceAliasList",(function(){return c})),n.d(t,"DCGInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"DCGGetInstanceQueryParams",(function(){return d}));var r=n(4),i="QCE/DCG",o="dcgQuery",a={directConnectGatewayId:"DirectConnectGatewayId"},c=["DirectConnectGatewayId","DirectConnectGatewayName"],s={instance:"DirectConnectGatewayId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"direct-connect-gateway-id",enDescriptor:"direct-connect-gateway-id",cnDescriptor:"专线网关唯一ID",link:"",type:"inputMulti"},{key:"direct-connect-gateway-name",enDescriptor:"direct-connect-gateway-name",cnDescriptor:"专线网关名称",link:"",type:"inputMulti"},{key:"direct-connect-gateway-ip",enDescriptor:"direct-connect-gateway-ip",cnDescriptor:"专线网关IP",link:"",type:"inputMulti"},{key:"gateway-type",enDescriptor:"gateway-type",cnDescriptor:"网关类型",link:"",type:"select",multiple:!0,list:[{text:"普通型",value:"NORMAL"},{text:"NAT型",value:"NAT"}]},{key:"network-type",enDescriptor:"network-type",cnDescriptor:"网络类型",link:"",type:"select",multiple:!0,list:[{text:"私有网络类型",value:"VPC"},{text:"云联网类型",value:"CCN"}]},{key:"ccn-id",enDescriptor:"ccn-id",cnDescriptor:"专线网关所在云联网ID",link:"",type:"inputMulti"},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"专线网关所在私有网络ID",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/30644",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DirectConnectGatewayId",queries:{Limit:20,Offset:0,"direct-connect-gateway-id":[],"direct-connect-gateway-name":[],"direct-connect-gateway-ip":[],"gateway-type":{},"network-type":{},"ccn-id":[],"vpc-id":[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"DCXFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return m})),n.d(t,"DCXInstanceAliasList",(function(){return f})),n.d(t,"DCXInvalidDemensions",(function(){return h})),n.d(t,"namespace",(function(){return c})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"DCXGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n.n(r),o=n(4),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var u=["InstanceId","InstanceName"],l={target:"InstanceId"},p={instance:"InstanceId",replica:"ReplicaSetId"},d={Replica:{dim_KeyInStorage:"ReplicaSets",dim_KeyInTarget:"replica",dim_KeyInMap:"ReplicaSetId",dim_KeyInIns:"ReplicaSetId"},Node:{dim_KeyInStorage:"ReplicaNodeSets",dim_KeyInTarget:"node",dim_KeyInMap:"NodeId",dim_KeyInIns:"NodeId"}};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"QAAPFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"QAAPInstanceAliasList",(function(){return u})),n.d(t,"QAAPInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"QAAPGetInstanceQueryParams",(function(){return m}));var r=n(0),i=n.n(r),o=n(4),a="QCE/QAAP",c="qaapQuery",s={channelId:"InstanceId"},u=["InstanceId"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ProjectId",enDescriptor:"ProjectId",cnDescriptor:"项目ID",link:"",type:"inputMulti"},{key:"AccessRegion",enDescriptor:"AccessRegion",cnDescriptor:"接入地域",link:"",type:"inputMulti"},{key:"RealServerRegion",enDescriptor:"RealServerRegion",cnDescriptor:"源站地域",link:"",type:"inputMulti"},{key:"GroupId",enDescriptor:"GroupId",cnDescriptor:"通道组ID",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/608/36963",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,ProjectId:[],AccessRegion:[],RealServerRegion:[],GroupId:[]}};function m(e){return void 0===e&&(e={}),Object(o.d)(e,!0)}function h(e){return i.a.cloneDeep(e)}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"TCAPLUSFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"TCAPLUSInstanceAliasList",(function(){return s})),n.d(t,"TCAPLUSInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"regonsMap",(function(){return m})),n.d(t,"TCAPLUSGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n.n(r),o="QCE/TCAPLUS",a="tcaplusQuery",c={},s=["TableInstanceId","TableName"],u={instance:"TableInstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ClusterId",enDescriptor:"ClusterId",cnDescriptor:"表格所属集群ID",link:"",type:"input"},{key:"TableGroupIds",enDescriptor:"TableGroupIds",cnDescriptor:"表格组ID列表",link:"",type:"inputMulti"},{key:"TableName",enDescriptor:"TableName",cnDescriptor:"表格名称",link:"",type:"input"},{key:"TableInstanceId",enDescriptor:"TableInstanceId",cnDescriptor:"表实例ID",link:"",type:"input"},{key:"TableIdlType",enDescriptor:"TableIdlType",cnDescriptor:"表格描述语言类型",link:"",type:"select",list:[{text:"PROTO",value:"PROTO"},{text:"TDR",value:"TDR"}]},{key:"TableType",enDescriptor:"TableType",cnDescriptor:"表格数据结构类型",link:"",type:"select",list:[{text:"GENERIC",value:"GENERIC"},{text:"LIST",value:"LIST"}]},{key:"ListElementNum",enDescriptor:"ListElementNum",cnDescriptor:"LIST表元素个数",link:"",type:"inputNumber"},{key:"ReservedVolume",enDescriptor:"ReservedVolume",cnDescriptor:"表格预留容量(GB)",link:"",type:"inputNumber"},{key:"ReservedReadQps",enDescriptor:"ReservedReadQps",cnDescriptor:"表格预留读CU",link:"",type:"inputNumber"},{key:"ReservedWriteQps",enDescriptor:"ReservedWriteQps",cnDescriptor:"表格预留写CU",link:"",type:"inputNumber"},{key:"Memo",enDescriptor:"Memo",cnDescriptor:"表格备注信息",link:"",type:"input"},{key:"FileName",enDescriptor:"FileName",cnDescriptor:"Key回档文件名,回档专用",link:"",type:"input"},{key:"FileExtType",enDescriptor:"FileExtType",cnDescriptor:"Key回档文件扩展名,回档专用",link:"",type:"input"},{key:"FileSize",enDescriptor:"FileSize",cnDescriptor:"Key回档文件大小,回档专用",link:"",type:"inputNumber"},{key:"FileContent",enDescriptor:"FileContent",cnDescriptor:"Key回档文件内容,回档专用",link:"",type:"input"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/596/39664",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TableInstanceId",queries:{Limit:20,Offset:0,ClusterId:"",TableGroupIds:[],TableName:"",TableInstanceId:"",TableIdlType:{},TableType:{},ListElementNum:null,ReservedVolume:null,ReservedReadQps:null,ReservedWriteQps:null,Memo:"",FileName:"",FileExtType:"",FileSize:null,FileContent:""}};function f(e){void 0===e&&(e={});var t={};t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,t.ClusterId=i.a.get(e,"ClusterId","")||"",t.TableGroupIds=i.a.get(e,"TableGroupIds",[])||[],e=i.a.omit(e,["Offset","Limit","TableGroupIds","ClusterId"]);var n=[];return i.a.forEach(e,(function(e,t){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(n[t]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(n[t]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(n[t]=e)})),t.SelectedTables=n,t}var m={"ap-beijing":"华北地区(北京)","ap-guangzhou":"华南地区(广州)","ap-hongkong":"港澳台地区(中国香港)","ap-seoul":"亚太东北(首尔)","ap-shanghai":"华东地区(上海)","ap-singapore":"亚太东南(新加坡)","ap-tokyo":"亚太东北(东京)","eu-frankfurt":"欧洲地区(法兰克福)","na-ashburn":"美国东部(弗吉尼亚)","na-siliconvalley":"美国西部(硅谷)"};t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"VBCFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VBCInstanceAliasList",(function(){return c})),n.d(t,"VBCInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VBCGetInstanceQueryParams",(function(){return d}));var r=n(4),i="QCE/VBC",o="vbcQuery",a={},c=["CcnId","CcnName"],s={instance:"CcnId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ccn-id",enDescriptor:"ccn-id",cnDescriptor:"CCN实例ID",link:"",type:"inputMulti"},{key:"ccn-name",enDescriptor:"ccn-name",cnDescriptor:"CCN名称",link:"",type:"inputMulti"},{key:"ccn-description",enDescriptor:"ccn-description",cnDescriptor:"CCN描述",link:"",type:"inputMulti"},{key:"state",enDescriptor:"state",cnDescriptor:"实例状态",link:"",type:"select",multiple:!0,list:[{text:"隔离中",value:"ISOLATED"},{text:"运行中",value:"AVAILABLE"}]}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/19199",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"CcnId",DRegion:"",SRegion:"",queries:{Limit:20,Offset:0,"ccn-id":[],"ccn-name":[],"ccn-description":[],state:{}}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"VPNGWFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VPNGWInstanceAliasList",(function(){return c})),n.d(t,"VPNGWInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VPNGWGetInstanceQueryParams",(function(){return d}));var r=n(4),i="QCE/VPNGW",o="vpngwQuery",a={vpnGwId:"VpnGatewayId"},c=["VpnGatewayId","VpnGatewayName"],s={instance:"VpnGatewayId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"VPC实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-id",enDescriptor:"vpn-gateway-id",cnDescriptor:"VPN实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-name",enDescriptor:"vpn-gateway-name",cnDescriptor:"VPN实例名称",link:"",type:"inputMulti"},{key:"type",enDescriptor:"type",cnDescriptor:"VPN网关类型",link:"",type:"select",multiple:!0,list:[{text:"IPSEC",value:"IPSEC"},{text:"SSL",value:"SSL"}]},{key:"public-ip-address",enDescriptor:"public-ip-address",cnDescriptor:"公网IP",link:"",type:"inputMulti"},{key:"renew-flag",enDescriptor:"renew-flag",cnDescriptor:"网关续费类型",link:"",type:"select",multiple:!0,list:[{text:"手动续费",value:"NOTIFY_AND_MANUAL_RENEW"},{text:"自动续费",value:"NOTIFY_AND_AUTO_RENEW"}]},{key:"zone",enDescriptor:"zone",cnDescriptor:"VPN所在可用区",link:"",type:"dropdownMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/17514",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpnGatewayId",queries:{Limit:20,Offset:0,"vpc-id":[],"vpn-gateway-id":[],"vpn-gateway-name":[],type:{},"public-ip-address":[],"renew-flag":{},zone:[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"VPNXFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VPNXInstanceAliasList",(function(){return c})),n.d(t,"VPNXInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VPNXGetInstanceQueryParams",(function(){return d}));var r=n(4),i="QCE/VPNX",o="vpnxQuery",a={vpnConnId:"VpnConnectionId"},c=["VpnConnectionId","VpnConnectionName"],s={instance:"VpnConnectionId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"VPC实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-id",enDescriptor:"vpn-gateway-id",cnDescriptor:"VPN实例ID",link:"",type:"inputMulti"},{key:"customer-gateway-id ",enDescriptor:"customer-gateway-id ",cnDescriptor:"对端网关实例ID",link:"",type:"inputMulti"},{key:"vpn-connection-name",enDescriptor:"vpn-connection-name",cnDescriptor:"通道名称",link:"",type:"inputMulti"},{key:"vpn-connection-id",enDescriptor:"vpn-connection-id",cnDescriptor:"通道实例ID",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/17515",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpnConnectionId",queries:{Limit:20,Offset:0,"vpc-id":[],"vpn-gateway-id":[],"customer-gateway-id":[],"vpn-connection-name":[],"vpn-connection-id":[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"LighthouseFilterFieldsDescriptor",(function(){return a})),n.d(t,"LIGHTHOUSEInstanceAliasList",(function(){return u})),n.d(t,"LighthouseInvalidDemensions",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"modifyDimensons",(function(){return d})),n.d(t,"LIGHTHOUSEGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["InstanceId","InstanceName","PrivateIpAddresses","PublicIpAddresses"],l={instanceid:"InstanceId"},p={instance:"InstanceId"};function d(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CFSQueryDescriptor",(function(){return o})),n.d(t,"CFSInstanceAliasList",(function(){return s})),n.d(t,"CFSInvalidDemensions",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"regionSupported",(function(){return l})),n.d(t,"CFSGetInstanceQueryParams",(function(){return c}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"FileSystemId",enDescriptor:"File System Id",cnDescriptor:"文件系统 ID",link:"",type:"input"},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络(VPC) ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"子网 ID",link:"",type:"input"}],a={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"FileSystemId",version:"",queries:{Offset:0,Limit:20,FileSystemId:"",VpcId:"",SubnetId:""}};function c(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["FileSystemId","FsName"],u={},l=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-nanjing"},{value:"ap-seoul"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-siliconvalley"},{value:"na-toronto"}],p={instance:"InstanceId"};t.default=a},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceQueryDescriptor",(function(){return o})),n.d(t,"InvalidDemensions",(function(){return c})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"InstanceAliasList",(function(){return u})),n.d(t,"GetInstanceQueryParams",(function(){return a}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为10,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:50},{key:"QueueName",enDescriptor:"QueueName",cnDescriptor:"精确匹配QueueName",link:"",type:"input"},{key:"TagKey",enDescriptor:"TagKey",cnDescriptor:"标签搜索",link:"",type:"input"}];function a(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c={queueId:"QueueId",queueName:"QueueName"},s={instance:"QueueName"},u=["QueueName","QueueId"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"QueueName",queries:{Offset:0,Limit:20,QueueName:"",TagKey:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"CVMFilterFieldsDescriptor",(function(){return a})),n.d(t,"CVMInstanceAliasList",(function(){return u})),n.d(t,"isValidMetric",(function(){return d})),n.d(t,"modifyDimensons",(function(){return f})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"CVMGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["InstanceId","InstanceName","PrivateIpAddresses","PublicIpAddresses"],l=["CPUUsage","CpuLoadavg","Cpuloadavg5m","Cpuloadavg15m","BaseCpuUsage","GpuMemTotal","GpuMemUsage","GpuMemUsed","GpuPowDraw","GpuPowLimit","GpuPowUsage","GpuTemp","GpuUtil","LanOuttraffic","LanIntraffic","LanOutpkg","LanInpkg","WanOuttraffic","WanIntraffic","WanOutpkg","WanInpkg","AccOuttraffic","TcpCurrEstab","TimeOffset","MemUsed","MemUsage","CvmDiskUsage","BaseCpuUsage","VmDiskReadIops"],p={instance:"InstanceId"};function d(e){var t=i.a.map(l,i.a.toUpper);return-1!==i.a.indexOf(t,i.a.toUpper(e.MetricName))}function f(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"PCXInstanceAliasList",(function(){return u})),n.d(t,"PCXFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"namespace",(function(){return a})),n.d(t,"PCXGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisFieldsDescriptor",(function(){return a})),n.d(t,"RedisInvalidDemensions",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return d})),n.d(t,"REDISInstanceAliasList",(function(){return l})),n.d(t,"isValidMetric",(function(){return u})),n.d(t,"REDISGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}function u(e){void 0===e&&(e={});var t=i.a.get(e,"Dimensions[0].Dimensions");return 1===t.length&&-1!==i.a.indexOf(t,"instanceid")}var l=["InstanceId","InstanceName","WanIp"],p={redis_uuid:"InstanceId",instanceid:"InstanceId"},d={instance:"InstanceId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"TSFInvalidDemensions",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"TSFInstanceAliasList",(function(){return c})),n.d(t,"TSFFieldsDescriptor",(function(){return i})),n.d(t,"TSFGetInstanceQueryParams",(function(){return a}));var r=n(4),i=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"SearchWord",enDescriptor:"SearchWord",cnDescriptor:"搜索关键字",link:"",type:"input"},{key:"ApplicationIdList",enDescriptor:"ApplicationIdList",cnDescriptor:"应用ID 组成的数组",link:"",type:"inputmulti"},{key:"ApplicationType",enDescriptor:"ApplicationType",cnDescriptor:"应用类型",link:"",type:"select",list:[{text:"所有",value:""},{text:"容器应用",value:"C"},{text:"普通应用/虚拟机应用",value:"V"}]},{key:"MicroserviceType",enDescriptor:"MicroserviceType",cnDescriptor:"应用的微服务类型",link:"",type:"select",list:[{text:"所有",value:""},{text:"普通应用",value:"N"},{text:"Mesh应用",value:"M"},{text:"微服务网关应用",value:"G"},{text:"原生应用",value:"NATIVE"}]},{key:"ApplicationResourceTypeList",enDescriptor:"ApplicationResourceTypeList",cnDescriptor:"应用资源类型数组",link:"",type:"select",multiple:!0,list:[{text:"默认资源类型",value:"DEF"},{text:"微服务网关资源",value:"GW"}]}],o={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ApplicationId",queries:{Limit:20,Offset:0,SearchWord:"",OrderBy:"",OrderType:null,ApplicationType:"",MicroserviceType:"",ApplicationResourceTypeList:[],ApplicationIdList:[]}};function a(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var c=["ApplicationId","ApplicationName"],s={applicationid:"ApplicationId"},u={instance:"ApplicationId"};t.default=o},function(e,t,n){"use strict";n.r(t),n.d(t,"BWPFilterFieldsDescriptor",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BWPInstanceAliasList",(function(){return u})),n.d(t,"BWPInvalidDemensions",(function(){return p})),n.d(t,"BWPGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.BandwidthPackageIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["BandwidthPackageId","BandwidthPackageName"],l={instance:"BandwidthPackageId"},p={bandwidthPackageId:"BandwidthPackageId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNFilterFieldsDescriptor",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"CDNInstanceAliasList",(function(){return u})),n.d(t,"CDNInvalidDemensions",(function(){return l})),n.d(t,"CDNGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&n.push({Name:t,Value:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||n.push({Name:t,Value:i.a.get(e,"value",[]).slice(0,5)}))})),n.length>0&&(t.Filters=n)}return t}var u=["Domain","ProjectId"],l={projectId:"ProjectId",domain:"Domain"},p={instance:"Domain"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"LBFilterDescriptor",(function(){return a})),n.d(t,"LBInstanceAliasList",(function(){return u})),n.d(t,"LBInvalidDemensions",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"LBGetInstanceQueryParams",(function(){return s}));var r,i=n(0),o=n.n(i),a=[{key:"address-id",enDescriptor:"Address ID",cnDescriptor:"EIP 的唯一 ID ",link:"",type:"inputmulti"},{key:"address-name",enDescriptor:"Address Name",cnDescriptor:"EIP 名称 ",link:"",type:"inputmulti"},{key:"address-ip",enDescriptor:"Address IP",cnDescriptor:"EIP 的 IP 地址 ",link:"",type:"inputmulti"},{key:"address-status",enDescriptor:"Address Status",cnDescriptor:"EIP 的状态",link:"",type:"select",list:[{value:"CREATING",text:"CREATING"},{value:"BINDING",text:"BINDING"},{value:"BIND",text:"BIND"},{value:"UNBINDING",text:"UNBINDING"},{value:"UNBIND",text:"UNBIND"},{value:"OFFLINING",text:"OFFLINING"},{value:"BIND_ENI",text:"BIND_ENI"}]},{key:"instance-id",enDescriptor:"Instance ID",cnDescriptor:"实例ID ",link:"",type:"inputmulti"},{key:"private-ip-address",enDescriptor:"Private IP Address",cnDescriptor:"EIP 绑定的内网 IP",link:"",type:"inputmulti"},{key:"network-interface-id",enDescriptor:"Network Interface ID",cnDescriptor:"EIP 绑定的弹性网卡 ID",link:"",type:"inputmulti"},{key:"is-arrears",enDescriptor:"Arrears",cnDescriptor:"EIP 是否欠费 ",link:"",type:"select",list:[{text:"正常",value:"FALSE"},{text:"欠费",value:"TRUE"}]}],c={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"AddressId",version:"",queries:(r={Offset:0,Limit:20},r.AddressIds=[""],r.Filters={"address-id":[],"address-name":[],"address-ip":[],"address-status ":[],"instance-id ":[],"private-ip-address":[],"network-interface-id ":[],"is-arrears ":[]},r)};function s(e){void 0===e&&(e={});var t={};if(!o.a.isEmpty(e))if(t.Limit=o.a.get(e,"Limit",20)||20,t.Offset=o.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(o.a.isArray(e.AddressIds)){var n=o.a.compact(e.AddressIds);o.a.uniq(n).length>0&&(t.AddressIds=o.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];o.a.forEach(e.Filters,(function(e,t){r.length>9||(o.a.isArray(e)?(e=o.a.compact(e)).length>0&&r.push({Name:t,Values:o.a.uniq(e).slice(0,5)}):o.a.isObject(e)&&(o.a.isEmpty(o.a.get(e,"value",[]))||r.push({Name:t,Values:o.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["AddressId","AddressName","AddressIp"],l={eip:"AddressIp"},p={instance:"AddressId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"NATGatewayFilterFieldsDescriptor",(function(){return c})),n.d(t,"NATGATEWAYInstanceAliasList",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"NATInvalidDemensions",(function(){return p})),n.d(t,"NATGATEWAYGetInstanceQueryParams",(function(){return u}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var l={instance:"NatGatewayId"},p={natId:"NatGatewayId"};t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"OVCDNFilterFieldsDescriptor",(function(){return a})),n.d(t,"OVCDNInstanceAliasList",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"OVCDNInvalidDemensions",(function(){return l})),n.d(t,"OVCDNGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&n.push({Name:t,Value:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||n.push({Name:t,Value:i.a.get(e,"value",[]).slice(0,5)}))})),n.length>0&&(t.Filters=n)}return t}var u=["Domain","ResourceId"],l={projectId:"ProjectId",domain:"Domain"},p={instance:"Domain"};t.default=c},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function i(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}},function(e,t){e.exports=a},function(e,t){e.exports=c},function(e,t,n){"use strict";n.r(t),n.d(t,"TKEFilterFieldsDescriptor",(function(){return a})),n.d(t,"TKEInstanceAliasList",(function(){return c})),n.d(t,"TKEGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",conditions:[],groupBys:"",queries:{Limit:20,Offset:0,instanceIdsChecked:!1,filtersChecked:!0,ClusterIds:[""],Filters:{ClusterName:[],ClusterType:[],ClusterStatus:[],"tag-key":[]}}},a=[{key:"ClusterName",enDescriptor:"Cluster Name",cnDescriptor:"集群名",link:"",type:"input"},{key:"ClusterType",enDescriptor:"Cluster Type",cnDescriptor:"集群类型",link:"",type:"inputmulti"},{key:"ClusterStatus",enDescriptor:"Cluster Status",cnDescriptor:"集群状态",link:"",type:"inputmulti"},{key:"Tags",enDescriptor:"Tags",cnDescriptor:"标签键值对",link:"",type:"inputmulti"},{key:"vpc-id",enDescriptor:"VPC",cnDescriptor:"VPC",link:"",type:"input"},{key:"tag-key",enDescriptor:"Tag Key",cnDescriptor:"标签键",link:"",type:"inputmulti"},{key:"tag-value",enDescriptor:"Tag Value",cnDescriptor:"标签值",link:"",type:"inputmulti"}],c=["ClusterId","ClusterName"];function s(e){void 0===e&&(e={});var t={};if(!i.a.isEmpty(e))if(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(i.a.isArray(e.InstanceIds)){var n=i.a.compact(e.InstanceIds);i.a.uniq(n).length>0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}t.default=o},function(e,t,n){"use strict";n.r(t);var r,i=n(21),o=n(3),a=n(2),c=n(4),s=n(8),u=n(1),l=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},d=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?k.map((function(e){return{TopicId:e.TopicId,TopicName:e.TopicName}})):I,PartitionList:C.length>0?C:D}]}}))}))},t.prototype.formatTopicVarDisplay=function(e,t,n){var r=this;return t?t.replace(/\$\{(\w+)\}/g,(function(t,n){return n&&r.TopicAliasList.includes(n)?r.getAliasValue(e,n):""})):this.getAliasValue(e,n)},t.prototype.fetchMetricData=function(e,t,n,r){return d(this,void 0,void 0,(function(){var i,o,a,c,s,p,d,m,h,y=this;return f(this,(function(f){switch(f.label){case 0:return i=r.topicalias,o=r.groupname,a=r.topicid,[4,this.getConsumerGroups(t,{InstanceId:n.InstanceId,groupname:o,topicid:a})];case 1:return c=f.sent(),s=r.display,p=c.TopicList,d=c.GroupList,m=c.PartitionList,i=this.TopicAliasList.includes(i)?i:this.templateQueryIdMap.topicId,h={GroupList:d.map((function(e){return e._InstanceAliasValue=e.GroupName,{text:e.GroupName,value:e[u.templateQueryIdMap.groupName]}})),TopicList:p.map((function(e){var t=y.formatTopicVarDisplay(e,s,i);return e._InstanceAliasValue=t||e[u.templateQueryIdMap.topicId],{text:t||e[u.templateQueryIdMap.topicId],value:e[u.templateQueryIdMap.topicId],TopicName:e.TopicName}})),PartitionList:m.map((function(e){return e._InstanceAliasValue=e[u.templateQueryIdMap.partition],{text:e[u.templateQueryIdMap.partition],value:e[u.templateQueryIdMap.partition]}}))},[4,l.a.setExtraStorage(this.service,this.keyInStorage.TopicList,p)];case 2:return f.sent(),[4,l.a.setExtraStorage(this.service,this.keyInStorage.GroupList,d)];case 3:return f.sent(),[4,l.a.setExtraStorage(this.service,this.keyInStorage.PartitionList,m)];case 4:switch(f.sent(),e){case"DescribeTopicList":return[2,h.TopicList];case"DescribeGroup":return[2,h.GroupList];case"DescribePartion":return[2,h.PartitionList];default:return[2,[]]}return[2]}}))}))},t}(s.BaseDatasource);t.default=m},function(e,t,n){"use strict";n.r(t);var r,i=n(12),o=n(3),a=n(0),c=n.n(a),s=n(2),u=n(4),l=n(8),p=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=i)return r;var o=Object(s.k)(i,50),a=[];return c.a.forEach(o,(function(t){a.push(n.getInstances(e,t))})),Promise.all(a).then((function(e){return c.a.forEach(e,(function(e){r=c.a.concat(r,e)})),r})).catch((function(e){return r}))}))},t.prototype.getVpcId=function(e,t){void 0===t&&(t={}),(t=l({Offset:0,Limit:20},t)).Offset=String(t.Offset),t.Limit=String(t.Limit);var n=Object(s.e)(e,"vpc");return this.doRequest({url:this.url+n.path,data:t},n.service,{region:e,action:"DescribeVpcs"}).then((function(e){return c.a.map(e.VpcSet||[],(function(e){return{text:e.VpcId,value:e.VpcId}}))}))},t.prototype.getVpcIds=function(e){var t=this,n=[],r={Offset:0,Limit:100};r.Offset=String(r.Offset),r.Limit=String(r.Limit);var i=Object(s.e)(e,"vpc");return this.doRequest({url:this.url+i.path,data:r},i.service,{region:e,action:"DescribeVpcs"}).then((function(r){n=c.a.map(r.VpcSet||[],(function(e){return{text:e.VpcId,value:e.VpcId}}));var i=r.TotalCount||0;if(n.length>=i)return n;var o=Object(s.k)(i,100),a=[];return c.a.forEach(o,(function(n){a.push(t.getVpcId(e,n))})),Promise.all(a).then((function(e){return c.a.forEach(e,(function(e){n=c.a.concat(n,e)})),n})).catch((function(e){return n}))}))},t.prototype.doRequestV2=function(e,t,n){return void 0===n&&(n={}),p(this,void 0,void 0,(function(){return d(this,(function(r){switch(r.label){case 0:return[4,Object(s.d)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return c.a.get(e,"data",{})})).catch((function(e){throw e}))]}}))}))},t}(o.BaseDatasource);t.default=f},function(e,t,n){"use strict";n.r(t);var r,i=n(39),o=n(3),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.Namespace=i.namespace,o.InstanceAliasList=i.POSTGRESInstanceAliasList,o.InvalidDimensions=i.PostgreInvalidDemensions,o.templateQueryIdMap=i.templateQueryIdMap,o.InstanceReqConfig={service:"postgres",action:"DescribeDBInstances",responseField:"DBInstanceSet"},o.MetricReqConfig={resultFilter:i.modifyDimensons},o}return a(t,e),t}(o.BaseDatasource);t.default=c},function(e,t,n){"use strict";n.r(t);var r,i=n(0),o=n(49),a=n(3),c=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?"_".concat(r.timeshift):"";return{target:"".concat(e.MetricName," - ").concat(o).concat(a),datapoints:Object(i.map)(t.Values,(function(e){return[e.Value,1e3*e.Timestamp+d]}))}}))})))}))},t}(c.BaseDatasource);t.default=p},function(e,t,n){"use strict";n.r(t);var r,i=n(60),o=n(3),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.Namespace="QCE/TSF",o.InstanceAliasList=i.TSFInstanceAliasList,o.InvalidDimensions=i.TSFInvalidDemensions,o.templateQueryIdMap=i.templateQueryIdMap,o.InstanceReqConfig={service:"tsf",action:"DescribeApplications",responseField:"Content"},o}return a(t,e),t}(o.BaseDatasource);t.default=c},function(e,t,n){"use strict";n.r(t);var r,i=n(23),o=n(3),a=n(0),c=n.n(a),s=n(2),u=n(1),l=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},d=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,l)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(29);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(30);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(31);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"BWPQueryCtrl",(function(){return a})),n.d(t,"bwpQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(61),a=function(){function e(e,t){e.init=function(){e.BWPFilterFieldsDescriptor=o.BWPFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("bwpQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(32);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"CDBQueryCtrl",(function(){return a})),n.d(t,"cdbQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(42),a=function(){function e(e,t){e.init=function(){e.CDBFieldsDescriptor=o.CDBFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"ZoneIds":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cdb",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cdbQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNQueryCtrl",(function(){return a})),n.d(t,"cdnQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(62),a=function(){function e(e,t){e.init=function(){e.CDNFilterFieldsDescriptor=o.CDNFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cdnQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return l})),n.d(t,"sQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(33),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,p)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(34);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(43);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(55),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n \n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cfsQuery",u)},function(e,t,n){"use strict";n.r(t),n.d(t,"CKAFKAQueryCtrl",(function(){return l})),n.d(t,"scfQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(10),a=n(4),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 主题,消费分组,分区 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n \n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"=",instance:"="},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("ckafkaQuery",p)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return f}));var r=n(6),i=n.n(r),o=n(0),a=n(12),c=n(2),s=n(4),u=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},l=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n\x3c!--Listener维度部分--\x3e\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n');function f(){return{template:d,controller:p,restrict:"E",scope:{target:"=",namespace:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("clbQuery",f)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return a})),n.d(t,"sQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(27),a=function(){function e(e,t){e.init=function(){e.GSEFilterFieldsDescriptor=o.CLSFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n \n
\n
\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(56);Object(r.default)("cmqQuery",{fieldDescriptor:i.InstanceQueryDescriptor,instanceDocUrl:"https://cloud.tencent.com/document/api/406/42624",namespace:"QCE/CMQ"})},function(e,t,n){"use strict";n.r(t),n.d(t,"CmqTopicQueryCtrl",(function(){return u})),n.d(t,"scfQuery",(function(){return l}));var r=n(6),i=n.n(r),o=n(35),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 主题的ui --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n \n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("cmqTopicQuery",l)},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceAliasList",(function(){return a})),n.d(t,"GetInstanceQueryParams",(function(){return o}));var r=n(0),i=n.n(r);function o(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var a=["BucketName"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"BucketName",queries:{}}},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(36);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"CVMQueryCtrl",(function(){return a})),n.d(t,"cvmQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(57),a=function(){function e(e,t){e.init=function(){e.CVMFilterFieldsDescriptor=o.CVMFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cvmQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(24);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(44);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(15),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(45);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(46);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(37);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(38);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return s})),n.d(t,"sQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(20),a=n(2),c=[{label:"diskId",field:"diskId"}],s=function(){function e(e,t){e.init=function(){e.ECMBLOCKSTORAGEFilterFieldsDescriptor=o.ECMBLOCKSTORAGEFilterFieldsDescriptor,e.ExtraFields=c,e.namespace=o.namespace},e.getExtraFields=function(){return c.filter((function(t){var n,r;return t.field in(null!==(n=e.dims)&&void 0!==n?n:{})||t.label in(null!==(r=e.dims)&&void 0!==r?r:{})}))},e.getExtraDropdown=function(t,n){var r=t.instance,i=Object(a.f)(e.namespace);r=e.datasource.getServiceFn(i,"getVariable")(r);try{return(r=JSON.parse(r)).DataDisks.map((function(e){return e._InstanceAliasValue=e[o.templateQueryIdMap.diskId],{text:e[o.templateQueryIdMap.diskId],value:JSON.stringify(e)}}))}catch(t){var c={InstanceId:r};return e.datasource.getServiceFn(i,"getDiskList")({payload:c}).map((function(e){return{text:e[o.templateQueryIdMap.diskId],value:JSON.stringify(e)}}))}},e.init()}return e.$inject=["$scope","$rootScope"],e}();function u(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(47);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(14),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t),n.d(t,"LBQueryCtrl",(function(){return a})),n.d(t,"lbQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(63),a=function(){function e(e,t){e.init=function(){e.LBFilterDescriptor=o.LBFilterDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n\n\x3c!--Filters部分--\x3e\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("lbQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"LighthouseQueryCtrl",(function(){return a})),n.d(t,"lighthouseQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(54),a=function(){function e(e,t){e.init=function(){e.LighthouseFilterFieldsDescriptor=o.LighthouseFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("lighthouse",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("lighthouseQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"MongoDBQueryCtrl",(function(){return p})),n.d(t,"mongodbQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(0),a=n(48),c=n(2),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onRefresh:"&",onChange:"&"},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("mongodbQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"MrQueryCtrl",(function(){return u})),n.d(t,"mrQuery",(function(){return l}));var r=n(22),i=n(6),o=n.n(i),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\x3c!-- 主题的ui --\x3e\n
\n
\n
\n \n
\n\n \n \n
\n
\n
\n
\n\n \n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}o.a.directive("mrQuery",l)},function(e,t,n){"use strict";n.r(t),n.d(t,"NatGatewayQueryCtrl",(function(){return a})),n.d(t,"natGatewayQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(64),a=function(){function e(e,t){e.init=function(){e.NATGatewayFilterFieldsDescriptor=o.NATGatewayFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(e){return[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("natGatewayQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"OVCDNQueryCtrl",(function(){return a})),n.d(t,"ovCdnQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(65),a=function(){function e(e,t){e.init=function(){e.OVCDNFilterFieldsDescriptor=o.OVCDNFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("ovCdnQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"PCXQueryCtrl",(function(){return a})),n.d(t,"pcxQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(58),a=function(){function e(e,t){e.init=function(){e.PCXFieldsDescriptor=o.PCXFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"vpcId":return e.getVpcIds();default:return[]}},e.getVpcIds=function(){return e.region?e.datasource.getVpcIds("pcx",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("pcxQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(39);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(49);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisQueryCtrl",(function(){return a})),n.d(t,"redisQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(59),a=function(){function e(e,t){e.init=function(){e.RedisFieldsDescriptor=o.RedisFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(e){return[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("redisQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisMemQueryCtrl",(function(){return l})),n.d(t,"redisMemQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(0),a=n(16),c=n(2),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("redisMemQuery",p)},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(25),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- version部分 --\x3e\n
\n
\n \n
\n \n \n
\n
\n
\n\n \n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&"}}}i.a.directive("scfQuery",u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(28);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(50);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(13),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(17),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("tdmqRabbitmqQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"TdmqRocketmqQueryCtrl",(function(){return p})),n.d(t,"tdmqRocketmqQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(18),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("tdmqRocketmqQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return c})),n.d(t,"sQuery",(function(){return s}));var r=n(6),i=n.n(r),o=n(0),a=n(69),c=function(){function e(e,t){e.init=function(){e.TKEFilterFieldsDescriptor=a.TKEFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.addCondition=function(){e.target.conditions.push({Key:"",Operator:"=",Value:""})},e.deleteCondition=function(t){var n=e.target.conditions[t];Object(o.isEmpty)(n.Key)||Object(o.isEmpty)(n.Operator)||Object(o.isEmpty)(n.Value)?e.target.conditions.splice(t,1):(e.target.conditions.splice(t,1),e.onRefresh())},e.getOperator=function(){return Promise.resolve([{text:"=",value:"="},{text:"in",value:"in"}])},e.init()}return e.$inject=["$scope","$rootScope"],e}();function s(){return{template:'\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n \n \n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n',controller:c,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("tkeQuery",s)},function(e,t,n){"use strict";n.r(t),n.d(t,"TSFQueryCtrl",(function(){return a})),n.d(t,"tsfQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(60),a=function(){function e(e,t){e.init=function(){e.TSFFieldsDescriptor=o.TSFFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("tsfQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(23);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"VBCQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(51),a=n(2),c=[],s=function(){function e(e,t){e.init=function(){e.VBCFilterFieldsDescriptor=o.VBCFilterFieldsDescriptor,e.namespace=o.namespace},e.getExtraFields=function(){return c.filter((function(t){var n;return t.field in(null!==(n=e.dims)&&void 0!==n?n:{})}))},e.getExtraDropdown=function(t){var n=Object(a.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t})},e.init()}return e.$inject=["$scope","$rootScope"],e}();function u(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("vbcQuery",u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(40);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(52);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(53);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(41);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){var r={".":19,"./":19,"./MonitorDatasource":182,"./MonitorDatasource.ts":182,"./_base/datasource":3,"./_base/datasource.ts":3,"./_base/query":7,"./_base/query.ts":7,"./_base/query_filter":185,"./_base/query_filter.ts":185,"./_base/types":186,"./_base/types.ts":186,"./apigateway/datasource":70,"./apigateway/datasource.ts":70,"./apigateway/query":126,"./apigateway/query.ts":126,"./apigateway/query_def":21,"./apigateway/query_def.ts":21,"./bmIntraLb/datasource":71,"./bmIntraLb/datasource.ts":71,"./bmIntraLb/query":127,"./bmIntraLb/query.ts":127,"./bmIntraLb/query_def":29,"./bmIntraLb/query_def.ts":29,"./bm_lb/datasource":72,"./bm_lb/datasource.ts":72,"./bm_lb/query":128,"./bm_lb/query.ts":128,"./bm_lb/query_def":30,"./bm_lb/query_def.ts":30,"./bm_pcx/datasource":73,"./bm_pcx/datasource.ts":73,"./bm_pcx/query":129,"./bm_pcx/query.ts":129,"./bm_pcx/query_def":31,"./bm_pcx/query_def.ts":31,"./bwp/datasource":74,"./bwp/datasource.ts":74,"./bwp/query":130,"./bwp/query.ts":130,"./bwp/query_def":61,"./bwp/query_def.ts":61,"./cbs/datasource":75,"./cbs/datasource.ts":75,"./cbs/query":131,"./cbs/query.ts":131,"./cbs/query_def":32,"./cbs/query_def.ts":32,"./cdb/datasource":76,"./cdb/datasource.ts":76,"./cdb/query":132,"./cdb/query.ts":132,"./cdb/query_def":42,"./cdb/query_def.ts":42,"./cdn/datasource":77,"./cdn/datasource.ts":77,"./cdn/query":133,"./cdn/query.ts":133,"./cdn/query_def":62,"./cdn/query_def.ts":62,"./cdn_province/datasource":78,"./cdn_province/datasource.ts":78,"./cdn_province/query":134,"./cdn_province/query.ts":134,"./cdn_province/query_def":33,"./cdn_province/query_def.ts":33,"./ceip_summary/datasource":79,"./ceip_summary/datasource.ts":79,"./ceip_summary/query":135,"./ceip_summary/query.ts":135,"./ceip_summary/query_def":34,"./ceip_summary/query_def.ts":34,"./ces/datasource":80,"./ces/datasource.ts":80,"./ces/query":136,"./ces/query.ts":136,"./ces/query_def":43,"./ces/query_def.ts":43,"./cfs/datasource":81,"./cfs/datasource.ts":81,"./cfs/query":137,"./cfs/query.ts":137,"./cfs/query_def":55,"./cfs/query_def.ts":55,"./ckafka/datasource":82,"./ckafka/datasource.ts":82,"./ckafka/query":138,"./ckafka/query.ts":138,"./ckafka/query_def":10,"./ckafka/query_def.ts":10,"./clb/datasource":83,"./clb/datasource.ts":83,"./clb/query":139,"./clb/query.ts":139,"./clb/query_def":12,"./clb/query_def.ts":12,"./cls/datasource":84,"./cls/datasource.ts":84,"./cls/query":140,"./cls/query.ts":140,"./cls/query_def":27,"./cls/query_def.ts":27,"./cmq/datasource":85,"./cmq/datasource.ts":85,"./cmq/query":141,"./cmq/query.ts":141,"./cmq/query_def":56,"./cmq/query_def.ts":56,"./cmq_topic/datasource":86,"./cmq_topic/datasource.ts":86,"./cmq_topic/query":142,"./cmq_topic/query.ts":142,"./cmq_topic/query_def":35,"./cmq_topic/query_def.ts":35,"./cos/datasource":87,"./cos/datasource.ts":87,"./cos/query_def":143,"./cos/query_def.ts":143,"./cpm/datasource":88,"./cpm/datasource.ts":88,"./cpm/query":144,"./cpm/query.ts":144,"./cpm/query_def":36,"./cpm/query_def.ts":36,"./cvm/datasource":89,"./cvm/datasource.ts":89,"./cvm/query":145,"./cvm/query.ts":145,"./cvm/query_def":57,"./cvm/query_def.ts":57,"./cynosdb_mysql/datasource":90,"./cynosdb_mysql/datasource.ts":90,"./cynosdb_mysql/query":146,"./cynosdb_mysql/query.ts":146,"./cynosdb_mysql/query_def":24,"./cynosdb_mysql/query_def.ts":24,"./dc/datasource":91,"./dc/datasource.ts":91,"./dc/query":147,"./dc/query.ts":147,"./dc/query_def":44,"./dc/query_def.ts":44,"./dcdb/datasource":92,"./dcdb/datasource.ts":92,"./dcdb/query":148,"./dcdb/query.ts":148,"./dcdb/query_def":15,"./dcdb/query_def.ts":15,"./dcg/datasource":93,"./dcg/datasource.ts":93,"./dcg/query":149,"./dcg/query.ts":149,"./dcg/query_def":45,"./dcg/query_def.ts":45,"./dcx/datasource":94,"./dcx/datasource.ts":94,"./dcx/query":150,"./dcx/query.ts":150,"./dcx/query_def":46,"./dcx/query_def.ts":46,"./ecdn/datasource":95,"./ecdn/datasource.ts":95,"./ecdn/query":151,"./ecdn/query.ts":151,"./ecdn/query_def":37,"./ecdn/query_def.ts":37,"./ecm/datasource":96,"./ecm/datasource.ts":96,"./ecm/query":152,"./ecm/query.ts":152,"./ecm/query_def":38,"./ecm/query_def.ts":38,"./ecm_block_storage/datasource":97,"./ecm_block_storage/datasource.ts":97,"./ecm_block_storage/query":153,"./ecm_block_storage/query.ts":153,"./ecm_block_storage/query_def":20,"./ecm_block_storage/query_def.ts":20,"./ecm_lb/datasource":98,"./ecm_lb/datasource.ts":98,"./ecm_lb/query":154,"./ecm_lb/query.ts":154,"./ecm_lb/query_def":47,"./ecm_lb/query_def.ts":47,"./gse/datasource":99,"./gse/datasource.ts":99,"./gse/query":155,"./gse/query.ts":155,"./gse/query_def":14,"./gse/query_def.ts":14,"./index":19,"./index.ts":19,"./lb/datasource":100,"./lb/datasource.ts":100,"./lb/query":156,"./lb/query.ts":156,"./lb/query_def":63,"./lb/query_def.ts":63,"./lighthouse/datasource":101,"./lighthouse/datasource.ts":101,"./lighthouse/query":157,"./lighthouse/query.ts":157,"./lighthouse/query_def":54,"./lighthouse/query_def.ts":54,"./mongodb/datasource":102,"./mongodb/datasource.ts":102,"./mongodb/query":158,"./mongodb/query.ts":158,"./mongodb/query_def":48,"./mongodb/query_def.ts":48,"./mr/datasource":103,"./mr/datasource.ts":103,"./mr/query":159,"./mr/query.ts":159,"./mr/query_def":22,"./mr/query_def.ts":22,"./nat_gateway/datasource":104,"./nat_gateway/datasource.ts":104,"./nat_gateway/query":160,"./nat_gateway/query.ts":160,"./nat_gateway/query_def":64,"./nat_gateway/query_def.ts":64,"./ov_cdn/datasource":105,"./ov_cdn/datasource.ts":105,"./ov_cdn/query":161,"./ov_cdn/query.ts":161,"./ov_cdn/query_def":65,"./ov_cdn/query_def.ts":65,"./pcx/datasource":106,"./pcx/datasource.ts":106,"./pcx/query":162,"./pcx/query.ts":162,"./pcx/query_def":58,"./pcx/query_def.ts":58,"./postgresql/datasource":107,"./postgresql/datasource.ts":107,"./postgresql/query":163,"./postgresql/query.ts":163,"./postgresql/query_def":39,"./postgresql/query_def.ts":39,"./qaap/datasource":108,"./qaap/datasource.ts":108,"./qaap/query":164,"./qaap/query.ts":164,"./qaap/query_def":49,"./qaap/query_def.ts":49,"./redis/datasource":109,"./redis/datasource.ts":109,"./redis/query":165,"./redis/query.ts":165,"./redis/query_def":59,"./redis/query_def.ts":59,"./redis_mem/datasource":110,"./redis_mem/datasource.ts":110,"./redis_mem/query":166,"./redis_mem/query.ts":166,"./redis_mem/query_def":16,"./redis_mem/query_def.ts":16,"./scf/datasource":111,"./scf/datasource.ts":111,"./scf/query":167,"./scf/query.ts":167,"./scf/query_def":25,"./scf/query_def.ts":25,"./sqlserver/datasource":112,"./sqlserver/datasource.ts":112,"./sqlserver/query":168,"./sqlserver/query.ts":168,"./sqlserver/query_def":28,"./sqlserver/query_def.ts":28,"./tcaplus/datasource":113,"./tcaplus/datasource.ts":113,"./tcaplus/query":169,"./tcaplus/query.ts":169,"./tcaplus/query_def":50,"./tcaplus/query_def.ts":50,"./tdmq/datasource":114,"./tdmq/datasource.ts":114,"./tdmq/query":170,"./tdmq/query.ts":170,"./tdmq/query_def":13,"./tdmq/query_def.ts":13,"./tdmq_rabbitmq/datasource":115,"./tdmq_rabbitmq/datasource.ts":115,"./tdmq_rabbitmq/query":171,"./tdmq_rabbitmq/query.ts":171,"./tdmq_rabbitmq/query_def":17,"./tdmq_rabbitmq/query_def.ts":17,"./tdmq_rocketmq/datasource":116,"./tdmq_rocketmq/datasource.ts":116,"./tdmq_rocketmq/query":172,"./tdmq_rocketmq/query.ts":172,"./tdmq_rocketmq/query_def":18,"./tdmq_rocketmq/query_def.ts":18,"./tke/datasource":117,"./tke/datasource.ts":117,"./tke/query":173,"./tke/query.ts":173,"./tke/query_def":69,"./tke/query_def.ts":69,"./tsf/datasource":118,"./tsf/datasource.ts":118,"./tsf/query":174,"./tsf/query.ts":174,"./tsf/query_def":60,"./tsf/query_def.ts":60,"./v_clb/datasource":119,"./v_clb/datasource.ts":119,"./v_clb/query":175,"./v_clb/query.ts":175,"./v_clb/query_def":23,"./v_clb/query_def.ts":23,"./vbc/datasource":120,"./vbc/datasource.ts":120,"./vbc/query":176,"./vbc/query.ts":176,"./vbc/query_def":51,"./vbc/query_def.ts":51,"./vpc_net_detect/datasource":121,"./vpc_net_detect/datasource.ts":121,"./vpc_net_detect/query":177,"./vpc_net_detect/query.ts":177,"./vpc_net_detect/query_def":40,"./vpc_net_detect/query_def.ts":40,"./vpngw/datasource":122,"./vpngw/datasource.ts":122,"./vpngw/query":178,"./vpngw/query.ts":178,"./vpngw/query_def":52,"./vpngw/query_def.ts":52,"./vpnx/datasource":123,"./vpnx/datasource.ts":123,"./vpnx/query":179,"./vpnx/query.ts":179,"./vpnx/query_def":53,"./vpnx/query_def.ts":53,"./waf/datasource":124,"./waf/datasource.ts":124,"./waf/query":180,"./waf/query.ts":180,"./waf/query_def":41,"./waf/query_def.ts":41};function i(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=181},function(e,t,n){"use strict";n.r(t),n.d(t,"TCMonitorDatasource",(function(){return u}));var r=n(0),i=n.n(r),o=n(19),a=n(2),c=n(4),s=n(9),u=function(){function e(e,t,n){var r=this;this.instanceSettings=e,this.backendSrv=t,this.templateSrv=n,i.a.forEach(o.Datasources,(function(e,t){r[t]=new e(r.instanceSettings,r.backendSrv,r.templateSrv)}))}return e.$inject=["instanceSettings","backendSrv","templateSrv"],e.prototype.getNamespaces=function(){var e=this,t=[];return i.a.forEach(o.SERVICES,(function(n){!0===e.instanceSettings.jsonData[n.service]&&t.push(n)})),t},e.prototype.getCascaderNamespaces=function(){var e=this,t=o.SERVICES.filter((function(t){return e.instanceSettings.jsonData[t.service]}));return Object(c.f)(t)},e.prototype.getSelectedServices=function(){var e=this.getNamespaces();return i.a.map(e,(function(e){var t=e.namespace;return Object(a.f)(t)}))},e.prototype.query=function(e){var t=this,n=[],r=this.getSelectedServices();return i.a.forEach(r,(function(r){var o=i.a.cloneDeep(e),a=i.a.filter(o.targets,(function(e){return e.service===r}));if(o.targets=a,o.targets.length>0){var c=t["".concat(i.a.toUpper(r),"Datasource")].query(o);c&&n.push(c)}})),0===n.length?Promise.resolve({data:[],state:s.LoadingState.Done}):Promise.all(n).then((function(e){return{data:i.a.flatten(e),state:s.LoadingState.Done}}))},e.prototype.metricFindQuery=function(e,t){var n=Object(a.h)(e),r=Object(a.f)(n.namespace||"");if(i.a.isEmpty(n)||!n.namespace||!n.action||!r)return Promise.resolve([]);if(this["".concat(i.a.toUpper(r),"Datasource")].metricFindQuery){var o=this["".concat(i.a.toUpper(r),"Datasource")].metricFindQuery(n,i.a.get(t,"variable.regex",void 0));if(o)return o}return Promise.resolve([])},e.prototype.getRegions=function(e){return this["".concat(i.a.toUpper(e),"Datasource")].getRegions?this["".concat(i.a.toUpper(e),"Datasource")].getRegions():[]},e.prototype.getMetrics=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getMetrics(t)},e.prototype.getZones=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getZones?this["".concat(i.a.toUpper(e),"Datasource")].getZones(t):[]},e.prototype.getFilterDropdown=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getFilterDropdown?this["".concat(i.a.toUpper(e),"Datasource")].getFilterDropdown(t):[]},e.prototype.getInstances=function(e,t,n){return this["".concat(i.a.toUpper(e),"Datasource")].getInstances(t,n)},e.prototype.getListeners=function(e,t,n){return this["".concat(i.a.toUpper(e),"Datasource")].getListeners?this["".concat(i.a.toUpper(e),"Datasource")].getListeners(t,n):[]},e.prototype.getVpcIds=function(e,t){if(this["".concat(i.a.toUpper(e),"Datasource")].getVpcIds)return this["".concat(i.a.toUpper(e),"Datasource")].getVpcIds(t)},e.prototype.testDatasource=function(){var e=this,t=[],n=this.getSelectedServices();return i.a.forEach(n,(function(n){t.push(e["".concat(i.a.toUpper(n),"Datasource")].testDatasource())})),0===t.length?Promise.resolve(null):Promise.all(t).then((function(e){var t="success",n="DataSource Connection OK",r=i.a.reduce(e,(function(e,t){return"error"===t.status&&(""===e&&(e+="Oops! Found an error in: "),e+="".concat(t.service,": ").concat(t.message,"; \n")),e}),"");return r&&(t="error",n=r),{status:t,message:n,title:i.a.upperFirst(t)}}))},e.prototype.getServiceFn=function(e,t){var n=this;return function(){for(var r,o=[],a=0;a=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?n+=t.charAt(r):o<128?n+=i[o]:o<2048?n+=i[192|o>>6]+i[128|63&o]:o<55296||o>=57344?n+=i[224|o>>12]+i[128|o>>6&63]+i[128|63&o]:(r+=1,o=65536+((1023&o)<<10|1023&t.charCodeAt(r)),n+=i[240|o>>18]+i[128|o>>12&63]+i[128|o>>6&63]+i[128|63&o])}return n},isBuffer:function(e){return null!=e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},merge:function e(t,n,i){if(!n)return t;if("object"!=typeof n){if(Array.isArray(t))t.push(n);else{if("object"!=typeof t)return[t,n];(i.plainObjects||i.allowPrototypes||!r.call(Object.prototype,n))&&(t[n]=!0)}return t}if("object"!=typeof t)return[t].concat(n);var a=t;return Array.isArray(t)&&!Array.isArray(n)&&(a=o(t,i)),Array.isArray(t)&&Array.isArray(n)?(n.forEach((function(n,o){r.call(t,o)?t[o]&&"object"==typeof t[o]?t[o]=e(t[o],n,i):t.push(n):t[o]=n})),t):Object.keys(n).reduce((function(t,o){var a=n[o];return r.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t}),a)}}},function(e,t,n){"use strict";var r=String.prototype.replace,i=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return r.call(e,i,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(e,t,n){"use strict";n.r(t),n.d(t,"queryDDO",(function(){return a}));var r=n(6),i=n.n(r),o=function(){function e(t,n){Object.assign(t,e._config),t.onChecked=function(e,n){!0===t.target.queries[e]&&(t.target.queries[n]=!1),t.onChange()},t.init()}return e.$inject=["$scope","$rootScope"],e}();function a(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n',controller:o,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}t.default=function(e,t){o._config=t,i.a.directive(e,a)}},function(e,t,n){"use strict";n.r(t)},function(e,t,n){"use strict";var r=n(189),i=n(190),o=n(184);e.exports={formats:o,parse:i,stringify:r}},function(e){e.exports=JSON.parse('{"type":"datasource","name":"Tencent Cloud Monitoring","id":"tencentcloud-monitor-datasource","backend":true,"alerting":true,"logs":true,"metrics":true,"annotations":false,"executable":"tencentcloud-monitor-app-backend","queryOptions":{"maxDataPoints":true},"routes":[{"path":"cls-internal","url":"https://cls.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"region-internal","url":"https://region.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"api-internal","url":"https://api.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cmq-internal","url":"https://cmq.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shanghai-internal","url":"https://cmq.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shenzhen-internal","url":"https://cmq.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"emr-internal","url":"https://emr.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shanghai-internal","url":"https://emr.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shenzhen-internal","url":"https://emr.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"scf-internal","url":"https://scf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shanghai-internal","url":"https://scf.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shenzhen-internal","url":"https://scf.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cfs-internal","url":"https://cfs.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shanghai-internal","url":"https://cfs.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shenzhen-internal","url":"https://cfs.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ckafka-internal","url":"https://ckafka.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shanghai-internal","url":"https://ckafka.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shenzhen-internal","url":"https://ckafka.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"clb-internal","url":"https://clb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shanghai-internal","url":"https://clb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shenzhen-internal","url":"https://clb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"mongodb-internal","url":"https://mongodb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shanghai-internal","url":"https://mongodb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shenzhen-internal","url":"https://mongodb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"vpc-internal","url":"https://vpc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shanghai-internal","url":"https://vpc.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shenzhen-internal","url":"https://vpc.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"pcx-internal","url":"https://vpc.api.qcloud.com.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/x-www-form-urlencoded"}]},{"path":"cvm-internal","url":"https://cvm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shanghai-internal","url":"https://cvm.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shenzhen-internal","url":"https://cvm.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"monitor-internal","url":"https://monitor.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shanghai-internal","url":"https://monitor.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shenzhen-internal","url":"https://monitor.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdb-internal","url":"https://cdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shanghai-internal","url":"https://cdb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shenzhen-internal","url":"https://cdb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"postgres-internal","url":"https://postgres.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shanghai-internal","url":"https://postgres.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shenzhen-internal","url":"https://postgres.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdn-internal","url":"https://cdn.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"redis-internal","url":"https://redis.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dcdb-internal","url":"https://dcdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dc-internal","url":"https://dc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cynosdb-internal","url":"https://cynosdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"sqlserver-internal","url":"https://sqlserver.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmeip-internal","url":"https://bmeip.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmvpc-internal","url":"https://bmvpc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmlb-internal","url":"https://bmlb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bm-internal","url":"https://bm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"es-internal","url":"https://es.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cbs-internal","url":"https://cbs.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tcaplusdb-internal","url":"https://tcaplusdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apigateway-internal","url":"https://apigateway.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tdmq-internal","url":"https://tdmq.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gaap-internal","url":"https://gaap.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecm-internal","url":"https://ecm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gse-internal","url":"https://gse.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"lighthouse-internal","url":"https://lighthouse.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tsf-internal","url":"https://tsf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"rum-internal","url":"https://rum.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tke-internal","url":"https://tke.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecdn-internal","url":"https://ecdn.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"waf-internal","url":"https://waf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apigateway","url":"https://apigateway.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"api","url":"https://api.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cmq","url":"https://cmq.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shanghai","url":"https://cmq.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shenzhen","url":"https://cmq.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"emr","url":"https://emr.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shanghai","url":"https://emr.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shenzhen","url":"https://emr.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"scf","url":"https://scf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shanghai","url":"https://scf.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shenzhen","url":"https://scf.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cfs","url":"https://cfs.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shanghai","url":"https://cfs.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shenzhen","url":"https://cfs.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ckafka","url":"https://ckafka.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shanghai","url":"https://ckafka.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shenzhen","url":"https://ckafka.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"clb","url":"https://clb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shanghai","url":"https://clb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shenzhen","url":"https://clb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"mongodb","url":"https://mongodb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shanghai","url":"https://mongodb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shenzhen","url":"https://mongodb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"vpc","url":"https://vpc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shanghai","url":"https://vpc.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shenzhen","url":"https://vpc.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"pcx","url":"https://vpc.api.qcloud.com","headers":[{"name":"Content-Type","content":"application/x-www-form-urlencoded"}]},{"path":"cvm","url":"https://cvm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shanghai","url":"https://cvm.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shenzhen","url":"https://cvm.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"monitor","url":"https://monitor.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shanghai","url":"https://monitor.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shenzhen","url":"https://monitor.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdb","url":"https://cdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shanghai","url":"https://cdb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shenzhen","url":"https://cdb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"postgres","url":"https://postgres.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shanghai","url":"https://postgres.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shenzhen","url":"https://postgres.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdn","url":"https://cdn.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"redis","url":"https://redis.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dcdb","url":"https://dcdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dc","url":"https://dc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cynosdb","url":"https://cynosdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"sqlserver","url":"https://sqlserver.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmeip","url":"https://bmeip.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmvpc","url":"https://bmvpc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmlb","url":"https://bmlb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bm","url":"https://bm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"es","url":"https://es.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cbs","url":"https://cbs.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tcaplusdb","url":"https://tcaplusdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tdmq","url":"https://tdmq.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gaap","url":"https://gaap.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecm","url":"https://ecm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gse","url":"https://gse.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cls","url":"https://cls.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cls/shanghai","url":"https://cls.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cls/shenzhen","url":"https://cls.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"region","url":"https://region.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"lighthouse","url":"https://lighthouse.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tsf","url":"https://tsf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"rum","url":"https://rum.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tke","url":"https://tke.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecdn","url":"https://ecdn.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"waf","url":"https://waf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]}],"info":{"author":{"name":"Tencent Cloud"},"logos":{"small":"img/tencent-cloud.svg","large":"img/tencent-cloud.svg"},"description":"Data source for Tencent Cloud monitoring service"}}')},function(e,t,n){"use strict";var r=n(183),i=n(184),o={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},a=Date.prototype.toISOString,c={delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,serializeDate:function(e){return a.call(e)},skipNulls:!1,strictNullHandling:!1},s=function e(t,n,i,o,a,s,u,l,p,d,f,m){var h=t;if("function"==typeof u)h=u(n,h);else if(h instanceof Date)h=d(h);else if(null===h){if(o)return s&&!m?s(n,c.encoder):n;h=""}if("string"==typeof h||"number"==typeof h||"boolean"==typeof h||r.isBuffer(h))return s?[f(m?n:s(n,c.encoder))+"="+f(s(h,c.encoder))]:[f(n)+"="+f(String(h))];var y,g=[];if(void 0===h)return g;if(Array.isArray(u))y=u;else{var v=Object.keys(h);y=l?v.sort(l):v}for(var b=0;b0?S+x:""}},function(e,t,n){"use strict";var r=n(183),i=Object.prototype.hasOwnProperty,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:r.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},a=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/g,a=/(\[[^[\]]*])/.exec(r),c=a?r.slice(0,a.index):r,s=[];if(c){if(!n.plainObjects&&i.call(Object.prototype,c)&&!n.allowPrototypes)return;s.push(c)}for(var u=0;null!==(a=o.exec(r))&&u=0;--i){var o,a=e[i];if("[]"===a)o=(o=[]).concat(r);else{o=n.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,s=parseInt(c,10);!isNaN(s)&&a!==c&&String(s)===c&&s>=0&&n.parseArrays&&s<=n.arrayLimit?(o=[])[s]=r:o[c]=r}r=o}return r}(s,t,n)}};e.exports=function(e,t){var n=t?r.assign({},t):{};if(null!==n.decoder&&void 0!==n.decoder&&"function"!=typeof n.decoder)throw new TypeError("Decoder has to be a function.");if(n.ignoreQueryPrefix=!0===n.ignoreQueryPrefix,n.delimiter="string"==typeof n.delimiter||r.isRegExp(n.delimiter)?n.delimiter:o.delimiter,n.depth="number"==typeof n.depth?n.depth:o.depth,n.arrayLimit="number"==typeof n.arrayLimit?n.arrayLimit:o.arrayLimit,n.parseArrays=!1!==n.parseArrays,n.decoder="function"==typeof n.decoder?n.decoder:o.decoder,n.allowDots="boolean"==typeof n.allowDots?n.allowDots:o.allowDots,n.plainObjects="boolean"==typeof n.plainObjects?n.plainObjects:o.plainObjects,n.allowPrototypes="boolean"==typeof n.allowPrototypes?n.allowPrototypes:o.allowPrototypes,n.parameterLimit="number"==typeof n.parameterLimit?n.parameterLimit:o.parameterLimit,n.strictNullHandling="boolean"==typeof n.strictNullHandling?n.strictNullHandling:o.strictNullHandling,""===e||null==e)return n.plainObjects?Object.create(null):{};for(var c="string"==typeof e?function(e,t){for(var n={},r=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,a=t.parameterLimit===1/0?void 0:t.parameterLimit,c=r.split(t.delimiter,a),s=0;s\n
\n
\n \n
\n \n\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n \n
\n
\n ({{ctrl.getTimeDesc()}})\n
\n\n
\n
\n \n \n
\n
\n\n
\n
\n \n
\n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \x3c!-- this is explain how much items will display to user --\x3e\n \n
\n
\n\n'},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,i="~";function o(){}function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function c(e,t,n,r,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var c=new a(n,r||e,o),s=i?i+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],c]:e._events[s].push(c):(e._events[s]=c,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new o:delete e._events[t]}function u(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(i=!1)),u.prototype.eventNames=function(){var e,t,n=[];if(0===this._eventsCount)return n;for(t in e=this._events)r.call(e,t)&&n.push(i?t.slice(1):t);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},u.prototype.listeners=function(e){var t=i?i+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,o=n.length,a=new Array(o);ra{margin-left:10px}.tc-switch{border-left:1px solid #262628;margin-bottom:0 !important}.tc-condition-block{margin-right:10px;display:inline-block}.tc-condition-block .tc-condition-input{border-radius:0}.tc-condition-block .tc-condition-minus{vertical-align:top;border-radius:0 3px 3px 0}.tc-condition-block .tc-condition-dropdown{display:inline-block}.tc-condition-block>input{display:inline-block;margin-right:0}.tc-condition-block>label{display:inline-block}.tc-condition-add{display:inline-block;vertical-align:top}.tc-condition-add>label{border-radius:3px}.filtered-color{color:#ff851b}.secret-tips{position:absolute;right:-25px;border-radius:2px;background:#1b1b1b;padding:10px;top:-35px;width:300px;border:1px solid #2c3235}.secret-tips-tri{position:absolute;width:15px;height:15px;left:-8px;top:60px;background:#1b1b1b;border:1px solid #2c3235;border-top:0;border-right:0;transform:rotate(45deg)}.rc-cascader-menu-item{min-width:160px;font-size:14px}","",{version:3,sources:["query_editor.css"],names:[],mappings:"AAAA,eAAe,cAAc,CAAC,iBAAiB,CAAC,+BAA+B,eAAe,CAAC,8CAA8C,iBAAiB,CAAC,8BAA8B,iBAAiB,CAAC,gCAAgC,gBAAgB,CAAC,WAAW,6BAA6B,CAAC,0BAA0B,CAAC,oBAAoB,iBAAiB,CAAC,oBAAoB,CAAC,wCAAwC,eAAe,CAAC,wCAAwC,kBAAkB,CAAC,yBAAyB,CAAC,2CAA2C,oBAAoB,CAAC,0BAA0B,oBAAoB,CAAC,cAAc,CAAC,0BAA0B,oBAAoB,CAAC,kBAAkB,oBAAoB,CAAC,kBAAkB,CAAC,wBAAwB,iBAAiB,CAAC,gBAAgB,aAAa,CAAC,aAAa,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,iBAAiB,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,YAAY,CAAC,cAAc,CAAC,uBAAuB,CAAC,uBAAuB,eAAe,CAAC,cAAc",file:"query_editor.css",sourcesContent:[".tc-sub-params{margin-top:4px;margin-left:125px}.tc-sub-params .gf-form-inline{min-height:42px}.tc-sub-params .gf-form-inline .gf-form-label{margin-bottom:2px}.tc-sub-params .tc-info-label{margin-bottom:6px}.tc-sub-params .tc-info-label>a{margin-left:10px}.tc-switch{border-left:1px solid #262628;margin-bottom:0 !important}.tc-condition-block{margin-right:10px;display:inline-block}.tc-condition-block .tc-condition-input{border-radius:0}.tc-condition-block .tc-condition-minus{vertical-align:top;border-radius:0 3px 3px 0}.tc-condition-block .tc-condition-dropdown{display:inline-block}.tc-condition-block>input{display:inline-block;margin-right:0}.tc-condition-block>label{display:inline-block}.tc-condition-add{display:inline-block;vertical-align:top}.tc-condition-add>label{border-radius:3px}.filtered-color{color:#ff851b}.secret-tips{position:absolute;right:-25px;border-radius:2px;background:#1b1b1b;padding:10px;top:-35px;width:300px;border:1px solid #2c3235}.secret-tips-tri{position:absolute;width:15px;height:15px;left:-8px;top:60px;background:#1b1b1b;border:1px solid #2c3235;border-top:0;border-right:0;transform:rotate(45deg)}.rc-cascader-menu-item{min-width:160px;font-size:14px}"]}]),e.exports=t},function(e,t,n){var r=n(198),i=n(208);"string"==typeof(i=i.__esModule?i.default:i)&&(i=[[e.i,i,""]]);var o={insert:"head",singleton:!1},a=(r(i,o),i.locals?i.locals:{});e.exports=a},function(e,t,n){(t=n(199)(!0)).push([e.i,".log-service-monospaced-font-family {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n.log-service-monospaced-font-family button,\n.log-service-monospaced-font-family input,\n.log-service-monospaced-font-family select,\n.log-service-monospaced-font-family textarea {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n","",{version:3,sources:["index.less"],names:[],mappings:"AAAA;EACE,8DAA8D;AAChE;AACA;;;;EAIE,8DAA8D;AAChE",file:"index.less",sourcesContent:[".log-service-monospaced-font-family {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n.log-service-monospaced-font-family button,\n.log-service-monospaced-font-family input,\n.log-service-monospaced-font-family select,\n.log-service-monospaced-font-family textarea {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n"]}]),e.exports=t},function(e,t,n){"use strict";n.r(t);var r=n(9),i=n(5),o=n.n(i),a=n(200),c=n(0),s=n.n(c),u=n(2),l=n(19),p=n(6),d=n.n(p),f=n(192),m=n.n(f),h=function(){function e(e,t){e.init=function(){e.type=e.type||"input",e.placeholder=Object(f.isDefined)(e.placeholder)?e.placeholder:"",e.value=Object(f.isDefined)(e.value)?e.value:[],e.maxCond=s.a.toInteger(e.maxCond)>0?s.a.toInteger(e.maxCond):-1},e.onInputBlur=function(){e.onChangeInternal()},e.deleteCondition=function(t){e.value.splice(t,1),e.onChangeInternal()},e.addCondition=function(t){e.value.push(t),e.onChangeInternal()},e.onChangeInternal=function(){e.onChange({value:e.value})},e.onSelectChange=function(t){e.onChange({value:t})},e.getSelectedOptions=function(){var t=s.a.filter(e.options,(function(t){return-1!==s.a.get(e.value,"value",[]).indexOf(t.value)}));return t.length>0?s.a.map(t,(function(e){return"".concat(e.text,": ").concat(e.value)})).join("; "):void 0},e.init()}return e.$inject=["$scope","$rootScope"],e}();d.a.directive("multiCondition",(function(){return{template:'\n
\n
\n \n \n
\n
\n \n
\n
\n\n
\n
\n \n \n
\n
\n \n
\n
\n\n
\n \n \n
\n\n
\n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n\n\x3c!--
\n \n \n
--\x3e\n',controller:h,restrict:"E",scope:{type:"=",value:"=",maxCond:"=?",placeholder:"=?",options:"=?",maxNum:"=?",minNum:"=?",multiple:"=?",onChange:"&",getOptions:"&"}}})),g.$inject=["$compile","$window","$timeout","$rootScope"];var y=function(){function e(){}return e.prototype.show=function(){var e=this;this.oldVariableText=s.a.get(this.value,"text",""),this.highlightIndex=-1,this.selectOptions=s.a.cloneDeep(this.options),s.a.map(this.selectOptions,(function(t){var n=s.a.get(e.value,"value");n?s.a.isArray(n)?t.selected=-1!==s.a.indexOf(n,t.value):t.selected=n===t.value:t.selected=!1})),this.selectedValues=s.a.filter(this.selectOptions,{selected:!0}),this.search={query:"",options:this.selectOptions.slice(0,Math.min(this.selectOptions.length,1e3))},this.dropdownVisible=!0},e.prototype.updateLinkText=function(){this.linkText=s.a.get(this.value,"text","")},e.prototype.clearSelections=function(){s.a.each(this.selectOptions,(function(e){e.selected=!1})),this.selectionsChanged(!1)},e.prototype.keyDown=function(e){27===e.keyCode&&this.hide(),40===e.keyCode&&this.moveHighlight(1),38===e.keyCode&&this.moveHighlight(-1),13===e.keyCode&&(0===this.search.options.length?this.commitChanges():this.selectValue(this.search.options[this.highlightIndex],{},!0,!1)),32===e.keyCode&&this.selectValue(this.search.options[this.highlightIndex],{},!1,!1)},e.prototype.moveHighlight=function(e){this.highlightIndex=(this.highlightIndex+e)%this.search.options.length},e.prototype.selectValue=function(e,t,n,r){var i=this;if(e){e.selected=!this.multiple||!e.selected,r=r||!1;var o=function(t){s.a.each(i.selectOptions,(function(n){e!==n&&(n.selected=t)}))};(n=n||!1)&&(e.selected=!0),r?(o(!1),n=!0):this.multiple?(t.ctrlKey||t.metaKey||t.shiftKey)&&(n=!0,o(!1)):(o(!1),n=!0),this.selectionsChanged(n)}},e.prototype.selectionsChanged=function(e){this.selectedValues=s.a.filter(this.selectOptions,{selected:!0}),this.value.value=s.a.map(this.selectedValues,"value"),this.value.text=s.a.map(this.selectedValues,"text").join(" + "),this.multiple||(this.value.value=s.a.get(this.selectedValues,"0.value","")),e&&this.commitChanges()},e.prototype.commitChanges=function(){this.dropdownVisible=!1,this.updateLinkText(),this.value.text!==this.oldVariableText&&this.onChange({value:this.value})},e.prototype.queryChanged=function(){var e=this;this.highlightIndex=-1,this.search.options=s.a.filter(this.selectOptions,(function(t){return-1!==t.text.toLowerCase().indexOf(e.search.query.toLowerCase())})),this.search.options=this.search.options.slice(0,Math.min(this.search.options.length,1e3))},e.prototype.init=function(){s.a.isEmpty(this.value)&&(this.value={text:"",value:this.multiple?[]:""}),this.updateLinkText()},e}();function g(e,t,n,r){return{restrict:"E",scope:{options:"=",multiple:"=",value:"=",onChange:"&"},template:'\n\n',controller:"CustomSelectDropdownCtrl",controllerAs:"vm",bindToController:!0,link:function(e,r){var i=m.a.element(t.document.body),o=r.find(".variable-value-link"),a=r.find("input");function c(t){0===r.has(t.target).length&&e.$apply((function(){e.vm.commitChanges()}))}e.$watch("vm.dropdownVisible",(function(e){e?(a.css("width",Math.max(o.width(),136)+"px"),a.show(),o.hide(),a.focus(),n((function(){i.on("click",c)}),0,!1)):(a.hide(),o.show(),i.off("click",c))})),e.vm.init()}}}d.a.controller("CustomSelectDropdownCtrl",y),d.a.directive("customSelectDropdown",g);var v,b,I,D=n(11),w=n(201),k=n.n(w);v=D.Cascader,b="gfCascader",I={separator:"@?",placeholder:"@?",options:"<",changeOnSelect:"'),controller:(e=v,function(){function t(e,t){this._$scope=e,this._$element=t}return t.$inject=["$scope","$element"],t.prototype.$onInit=function(){var t=this,n=Object.entries(this._$scope).reduce((function(e,t){var n=t[0],r=t[1];return n.startsWith("$")||(e[n]="function"==typeof r?function(){for(var e=[],t=0;t")}));return e+'\n
\n
{{ctrl.lastQueryError}}
\n
\n '}(),A=n(1),j=(C=function(e,t){return(C=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}C(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),q=function(){return(q=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(d.target.namespace=null!==(c=null!==(i=d.target.namespace)&&void 0!==i?i:null===(a=null===(o=d.cascaderOptions[0])||void 0===o?void 0:o.items)||void 0===a?void 0:a[0].value)&&void 0!==c?c:d.cascaderOptions[0].value,d.target.service=Object(u.f)(d.target.namespace)||""),d.hideRegion=!!(null===(p=l.SERVICES.find((function(e){return e.service===d.target.service})))||void 0===p?void 0:p.hideRegion),s.a.defaultsDeep(d.target,d.defaults),d.instanceAliasList=d.getInstanceAliasList(d.target.service),d.panelCtrl.events.on("data-received",d.onDataReceived.bind(d),t),d.panelCtrl.events.on("data-error",d.onDataError.bind(d),t),d}return t.$inject=["$scope","$injector","templateSrv"],j(t,e),Object.defineProperty(t.prototype,"sortedPeriodList",{get:function(){return this.periodList.sort((function(e,t){return e-t}))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isCascader",{get:function(){return this.cascaderOptions.length>1},enumerable:!1,configurable:!0}),t.prototype.cascaderChange=function(e){this.target.namespace=e,this.onNamespaceChange()},t.prototype.onDataReceived=function(e){this.lastQueryError=void 0,this.lastQuery="";var t=s.a.find(e,{refId:this.target.refId});t&&(this.lastQuery=t.query)},t.prototype.onDataError=function(e){this.handleQueryCtrlError(e)},t.prototype.handleQueryCtrlError=function(e){var t;s.a.get(e,"query.refId")===this.target.refId&&(s.a.get(e,"error.data.error.innererror",void 0)?s.a.get(e,"error.data.error.innererror.innererror",void 0)?this.lastQueryError=s.a.get(e,"error.data.error.innererror.innererror.message"):this.lastQueryError=s.a.get(e,"error.data.error.innererror.message"):s.a.get(e,"error.data.error",void 0)?this.lastQueryError=s.a.get(e,"error.data.error.message"):s.a.get(e,"error.data",void 0)?this.lastQueryError=s.a.get(e,"error.data.message"):s.a.get(e,"data.error",void 0)?this.lastQueryError=s.a.get(e,"data.error.message"):(null===(t=e.data)||void 0===t?void 0:t.message)||(s.a.get(e,"data.message",void 0)?this.lastQueryError=s.a.get(e,"data.message"):this.lastQueryError=e))},t.prototype.getInstanceAliasList=function(e){return e?s.a.map(l.InstanceAliasList["".concat(s.a.toUpper(e),"InstanceAliasList")]||[],(function(e){return{text:"As ".concat(e),value:e}})):[]},t.prototype.getNamespaces=function(e){return s.a.map(this.namespaces,(function(e){return{text:e.label,value:e.namespace}}))},t.prototype.onNamespaceChange=function(){var e,t=Object(u.f)(this.target.namespace)||"";this.hideRegion=!!(null===(e=l.SERVICES.find((function(e){return e.service===t})))||void 0===e?void 0:e.hideRegion),this.regions=[],this.metricList=[],this.periodList=[],this.dimensionList=[],this.instanceList=[];var n=l.InitServiceState[t];this.target[t]=s.a.cloneDeep(n),this.target.service=t,this.instanceAliasList=this.getInstanceAliasList(t),this.refresh(),this.isCascader&&this.$scope.$apply()},t.prototype.getRegions=function(e){var t=this,n=this.target.service;return!n||s.a.startsWith("$")?[]:this.regions.length?this.regions:this.datasource.getRegions(n).then((function(e){return t.regions=e,e})).catch(this.handleQueryCtrlError.bind(this))},t.prototype.onRegionChange=function(){var e=this,t=this.target.service;this.target[t].instance="",this.instanceList=[],this.isMetricsNeedUpdate=!0,s.a.forEach(this.target[t].dimensionObject,(function(n,r){e.target[t].dimensionObject[r]={Name:r,Value:""}})),this.target[t].queries=s.a.cloneDeep(l.InitServiceState[t].queries),this.getInstances(),this.refresh()},t.prototype.getVariable=function(e,t){return Object(u.j)(this.templateSrv,this.panelCtrl.panel.scopedVars,e,t)},t.prototype.getMetricNameDesc=function(){var e=this,t=this.target.service,n=s.a.findIndex(this.metricList,(function(n){return n.MetricName===e.target[t].metricName}));return-1===n?"":Object(A.b)()===A.a.Chinese?this.metricList[n].Meaning.Zh:this.metricList[n].Meaning.En},t.prototype.getMetrics=function(e){var t=this,n=this.target.service,r=this.getVariable(s.a.get(this.target[n],"region",""),!1);return n&&r?!this.isMetricsNeedUpdate&&this.metricList.length>0?s.a.map(this.metricList,(function(e){return{text:e.MetricName,value:e.MetricName}})):this.datasource.getMetrics(n,r).then((function(e){t.metricList=e,t.isMetricsNeedUpdate=!1;var r=s.a.findIndex(t.metricList,(function(e){return e.MetricName===t.target[n].metricName}));return-1!==r&&(t.periodList=s.a.get(t.metricList[r],"Period",[]),t.dimensionList=s.a.get(t.metricList[r],"Dimensions.0.Dimensions",[])),s.a.map(e,(function(e){return{text:e.MetricName,value:e.MetricName}}))})).catch(this.handleQueryCtrlError.bind(this)):[]},t.prototype.onMetricChange=function(){var e=this,t=this.target.service,n=[],r=[],i={},o="",a=s.a.findIndex(this.metricList,(function(n){return n.MetricName===e.target[t].metricName}));-1!==a&&(n=s.a.get(this.metricList[a],"Period",[]),r=s.a.get(this.metricList[a],"Dimensions.0.Dimensions",[]),o=s.a.get(this.metricList[a],"Unit","")),s.a.forEach(r,(function(e){i[e]={Name:e,Value:""}})),this.periodList=n,this.dimensionList=r,this.target[t].period=n.length>0?-1===s.a.indexOf(n,300)?n[0]:300:void 0,this.target[t].dimensionObject=i,this.target[t].metricUnit=o,this.refresh()},t.prototype.getInstances=function(){var e=this,t=this.target.service,n=this.getVariable(s.a.get(this.target[t],"region",""),!1);if(!t||!n)return[];var r=this.getInstanceQueryParams(t);return this.datasource.getInstances(t,n,r).then((function(n){e.instanceList=n;var r=e.target[t].instanceAlias,i=[];return s.a.forEach(n,(function(e){var t=s.a.get(e,r);t&&("string"==typeof t?(e._InstanceAliasValue=t,i.push({text:t,value:JSON.stringify(e)})):s.a.isArray(t)&&s.a.forEach(t,(function(t){e._InstanceAliasValue=t,i.push({text:t,value:JSON.stringify(e)})})))})),i})).catch(this.handleQueryCtrlError.bind(this))},t.prototype.onInstanceChange=function(e){this.refresh()},t.prototype.getInstanceQueryParams=function(e){var t=this.target[e].queries;return l.GetInstanceQueryParams["".concat(s.a.toUpper(e),"GetInstanceQueryParams")]?l.GetInstanceQueryParams["".concat(s.a.toUpper(e),"GetInstanceQueryParams")](t):{}},t.prototype.onInstanceAliasChange=function(){if(!this.isVariable("instance")){var e=this.target.service;this.target[e].instance="",this.refresh()}},t.prototype.onInstanceQueryChange=function(){var e=this;if(!this.isVariable("instance")){var t=this.target.service;this.target[t].instance="",this.instanceList=[],s.a.forEach(this.target[t].dimensionObject,(function(n,r){e.target[t].dimensionObject[r]={Name:r,Value:""}})),this.refresh()}},t.prototype.isVariable=function(e){var t,n=this.target.service,r=null===(t=this.target[n])||void 0===t?void 0:t[e];return Object(u.m)(r)},t.prototype.checkShowDetail=function(e){return!this.isVariable(e)&&this.target.showInstanceDetails},t.prototype.getTimeDesc=function(){return"".concat(Object(A.d)("time_unit"),": ").concat(Object(A.d)("seconds"))},t.prototype.getSearchDesc=function(){return Object(A.d)("search_description")},t.template=N,t}(a.QueryCtrl),M=n(26),L=n(203),P=n.n(L),F=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),R=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.angularScope=null,t.angularQueryEditor=null,t.events=new P.a,t.renderAngularQueryEditor=function(){if(t.element){t.angularQueryEditor&&(t.angularQueryEditor.destroy(),t.angularQueryEditor=null);var e=Object(M.getAngularLoader)(),n={ctrl:t.getAngularQueryComponentScope()};t.angularQueryEditor=e.load(t.element,n,''),t.angularScope=n.ctrl}},t}return F(t,e),t.prototype.componentDidMount=function(){var e=this;setTimeout((function(){e.forceUpdate()}))},t.prototype.componentDidUpdate=function(e){var t=this.props,n=t.data,i=t.range;if(n!==e.data&&n){if(n.state===r.LoadingState.Done){var o=n.series.map((function(e){return Object(r.toLegacyResponseData)(e)}));this.events.emit("data-received",o)}else n.state===r.LoadingState.Error&&this.events.emit("data-error",n.error);this.angularScope&&(this.angularScope.range=i)}this.element&&!this.angularQueryEditor&&this.renderAngularQueryEditor()},t.prototype.getAngularQueryComponentScope=function(){var e=this,t=this.props,n=t.query,r=t.queries,i=t.range,o=t.datasource,a=t.queryCtrl;o.components={QueryCtrl:a};return{datasource:o,target:n,panel:{scopedVars:{},targets:r||[]},dashboard:{},refresh:function(){e.props.onChange(n),e.props.onRunQuery()},render:function(){return function(){}},events:this.events,range:i}},t.prototype.render=function(){var e=this;return o.a.createElement("div",{ref:function(t){e.element=t}})},t}(i.PureComponent),Q=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;!function(e){e[e.LUCENE=0]="LUCENE",e[e.CQL=1]="CQL"}(O||(O={})),function(e){e.monitor="monitor",e.logService="logService",e.RUMService="RUMService"}(x||(x={}));var B=[{value:x.monitor,get label(){return Object(A.d)("cloud_monitor")}},{value:x.logService,get label(){return Object(A.d)("cloud_log_service")}},{value:x.RUMService,get label(){return Object(A.d)("real_user_monitoring")}}],V={serviceType:x.logService,logServiceParams:{region:"",TopicId:"",Query:"",SyntaxRule:O.CQL},RUMServiceParams:{policy:"default",resultFormat:"time_series",orderByTime:"ASC",tags:[],groupBy:[{type:"time",params:["$__interval"]},{type:"fill",params:["null"]}],select:[[{type:"field",params:["value"]},{type:"mean",params:[]}]]}},G={refId:"",hide:!1,key:"",queryType:"",dataTopic:null,datasource:"",serviceType:V.serviceType,logServiceParams:V.logServiceParams,RUMServiceParams:V.RUMServiceParams},U=function(e){var t=Object(i.useRef)(e);return t.current=e,t},K=function(){return(K=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1e3,error:"仅支持返回1~1000条日志"},o.a.createElement(D.Input,{type:"number",min:1,max:1e3,value:t,onChange:r,width:25,className:"log-service-monospaced-font-family"}))})),pe=n(68),de=n(193),fe=n.n(de);var me=function(){function e(e,t){this.target=e,this.database=t}return e.prototype.buildExploreQuery=function(e,t,n){var r,i,o="";if("TAG_KEYS"===e)o="show tag keys",r=this.target.measurement,i=this.target.policy;else if("TAG_VALUES"===e)o="show tag values",r=this.target.measurement,i=this.target.policy;else if("MEASUREMENTS"===e)o="show measurements",n&&(o+=" with measurement =~ /(?i)"+fe.a.regexEscape(n)+"/");else{if("FIELDS"===e)return r=this.target.measurement,i=this.target.policy,r.match("^/.*/")||(r='"'+r+'"',i&&"default"!==i&&(r=(i='"'+i+'"')+"."+r)),"show field keys from "+r;if("RETENTION POLICIES"===e)return o='show retention policies on "'+this.database+'"'}if(r&&(r.match("^/.*/")||r.match(/^merge\(.*\)/)||(r='"'+r+'"'),i&&"default"!==i&&(r=(i='"'+i+'"')+"."+r),o+=" from "+r),t&&(o+=' with key = "'+t+'"'),this.target.tags&&this.target.tags.length>0){var a=Object(c.reduce)(this.target.tags,(function(n,r){return"MEASUREMENTS"===e&&"id"===r.key||r.key===t||">"===r.operator||"<"===r.operator||n.push(function(e,t){var n="",r=e.operator,i=e.value;return t>0&&(n=(e.condition.toLowerCase()||"AND")+" "),r||(r=/^\/.*\/$/.test(e.value)?"=~":"="),(""===i||"=~"!==r&&"!~"!==r)&&(i="'"+i.replace(/\\/g,"\\\\").replace(/\'/g,"\\'")+"'"),n+'"'+e.key+'" '+r+" "+i}(r,n.length)),n}),[]);a.length>0&&(o+=" where "+a.join(" "))}return"MEASUREMENTS"===e&&(o+=" limit 100"),o},e}(),he=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},ye=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=n+2;if("count"!==t.def.type&&i)e[n+1].def.category===ke.Aggregations&&e.splice(n+1,1);else if("count"===t.def.type)return void(i&&"count"===e[n+1].def.type||e.splice(n+1,0,t))}return void(e[n]=t)}if(r.def.category===ke.Selectors)return void(e[n]=t)}e.splice(1,0,t)}function Ee(e,t){var n;for(n=0;n0){if("math"===e[n-1].def.type)return void(e[n-1]=t);if(n>1&&"math"===e[n-2].def.type)return void(e[n-2]=t);if("alias"===e[n-1].def.type)return void e.splice(n-1,0,t)}e.push(t)},category:ke.Math,params:[{name:"expr",type:"string"}],defaultParams:[" / 100"],renderer:function(e,t){return t+" "+e.params[0]}}),Oe({type:"alias",addStrategy:function(e,t){var n=e.length;n>0&&"alias"===e[n-1].def.type?e[n-1]=t:e.push(t)},category:ke.Aliasing,params:[{name:"name",type:"string",quote:"double"}],defaultParams:["alias"],renderMode:"suffix",renderer:function(e,t){return t+' AS "'+e.params[0]+'"'}});var Ne={create:Ce,getCategories:function(){return ke},replaceAggregationAdd:_e},Ae=function(){function e(e,t,n){this.selectModels=[],this.target=e,this.templateSrv=t,this.scopedVars=n,e.policy=e.policy||V.RUMServiceParams.policy,e.resultFormat=e.resultFormat||V.RUMServiceParams.resultFormat,e.orderByTime=e.orderByTime||V.RUMServiceParams.orderByTime,e.tags=e.tags||Object(c.cloneDeep)(V.RUMServiceParams.tags),e.groupBy=e.groupBy||Object(c.cloneDeep)(V.RUMServiceParams.groupBy),e.select=e.select||Object(c.cloneDeep)(V.RUMServiceParams.select),this.updateProjection()}return e.$inject=["target","templateSrv","scopedVars"],e.prototype.updateProjection=function(){this.selectModels=Object(c.map)(this.target.select,(function(e){return Object(c.map)(e,Ne.create)})),this.groupByParts=Object(c.map)(this.target.groupBy,Ne.create)},e.prototype.updatePersistedParts=function(){this.target.select=Object(c.map)(this.selectModels,(function(e){return Object(c.map)(e,(function(e){return{type:e.def.type,params:e.params}}))}))},e.prototype.hasGroupByTime=function(){return Object(c.find)(this.target.groupBy,(function(e){return"time"===e.type}))},e.prototype.hasFill=function(){return Object(c.find)(this.target.groupBy,(function(e){return"fill"===e.type}))},e.prototype.addGroupBy=function(e){var t=e.match(/^(\w+)\((.*)\)$/);if(t&&this.target.groupBy){var n=t[1],r=t[2],i=Ne.create({type:n,params:[r]}),o=this.target.groupBy.length;0===o?this.target.groupBy.push(i.part):"time"===n?this.target.groupBy.splice(0,0,i.part):"tag"===n&&"fill"===this.target.groupBy[o-1].type?this.target.groupBy.splice(o-1,0,i.part):this.target.groupBy.push(i.part),this.updateProjection()}},e.prototype.removeGroupByPart=function(e,t){var n=Ne.getCategories();"time"===e.def.type&&(this.target.groupBy=Object(c.filter)(this.target.groupBy,(function(e){return"fill"!==e.type})),this.target.select=Object(c.map)(this.target.select,(function(e){return Object(c.filter)(e,(function(e){var t=Ne.create(e);return t.def.category!==n.Aggregations&&t.def.category!==n.Selectors}))}))),this.target.groupBy.splice(t,1),this.updateProjection()},e.prototype.removeSelect=function(e){this.target.select.splice(e,1),this.updateProjection()},e.prototype.removeSelectPart=function(e,t){if("field"===t.def.type){if(this.selectModels.length>1){var n=Object(c.indexOf)(this.selectModels,e);this.selectModels.splice(n,1)}}else{var r=Object(c.indexOf)(e,t);e.splice(r,1)}this.updatePersistedParts()},e.prototype.addSelectPart=function(e,t){var n=Ne.create({type:t});n.def.addStrategy(e,n,this),this.updatePersistedParts()},e.prototype.getMeasurementAndPolicy=function(e){var t=this.target.policy,n=this.target.measurement||"measurement";return n.match("^/.*/$")?e&&(n=this.templateSrv.replace(n,this.scopedVars,"regex")):n='"'+n+'"',(t="default"!==t?'"'+this.target.policy+'".':"")+n},e.prototype.interpolateQueryStr=function(e,t,n){return t.multi||t.includeAll?"string"==typeof e?fe.a.regexEscape(e):"("+Object(c.map)(e,fe.a.regexEscape).join("|")+")":e},e.prototype.render=function(e){var t=this,n=this.target;if(n.rawQuery)return e?this.templateSrv.replace(n.query,this.scopedVars,this.interpolateQueryStr):n.query;var r,i,o="select ";for(r=0;r0&&(o+=", "),o+=s}o+=" from "+this.getMeasurementAndPolicy(e)+" where ";var u=Object(c.map)(n.tags,(function(n,r){return t.renderTagCondition(n,r,e)}));u.length>0&&(o+="("+u.join(" ")+") and "),o+="$timeFilter";var l="";for(r=0;r0&&(l+="fill"===p.def.type?" ":", "),l+=p.render("")}return l.length&&(o+=" group by "+l),n.fill&&(o+=" fill("+n.fill+")"),"DESC"===n.orderByTime&&(o+=" order by time desc"),n.limit&&(o+=" limit "+n.limit),n.slimit&&(o+=" slimit "+n.slimit),n.tz&&(o+=" tz('"+n.tz+"')"),o},e.prototype.renderAdhocFilters=function(e){var t=this;return Object(c.map)(e,(function(e,n){return t.renderTagCondition(e,n,!0)})).join(" ")},e.prototype.renderTagCondition=function(e,t,n){var r="",i=e.operator,o=e.value;return t>0&&(r=(e.condition.toLowerCase()||"and")+" "),i||(i=/^\/.*\/$/.test(o)?"=~":"="),"=~"!==i&&"!~"!==i?(n&&(o=this.templateSrv.replace(o,this.scopedVars)),">"!==i&&"<"!==i&&(o="'"+o.replace(/\\/g,"\\\\").replace(/\'/g,"\\'")+"'")):n&&(o=this.templateSrv.replace(o,this.scopedVars,"regex")),r+'"'+e.key+'" '+i+" "+o},e}(),je=function(){return(je=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]","<",">","=~","!~"].map(Me),mt=["AND","OR"].map(Me),ht=function(){return Promise.resolve(mt)},yt=function(){return Promise.resolve(ft)},gt=function(e){var t=e.tag,n=e.isFirst,r=e.onRemove,i=e.onChange,a=e.getTagKeyOptions,c=e.getTagValueOptions,s=st(t),u=ut(t,n);return o.a.createElement("div",{className:"gf-form"},void 0!==u&&o.a.createElement(nt,{value:u,loadOptions:ht,disabled:!0,onChange:function(e){i(pt(pt({},t),{condition:e.value}))}}),o.a.createElement(nt,{allowCustomValue:!0,value:t.key,loadOptions:function(){return a().catch((function(e){return[]})).then((function(e){return dt([{label:"-- remove filter --",value:void 0}],e.map(Me),!0)}))},onChange:function(e){var n=e.value;void 0===n?r():i(pt(pt({},t),{key:null!=n?n:""}))}}),o.a.createElement(nt,{value:s,loadOptions:yt,onChange:function(e){i(pt(pt({},t),{operator:e.value}))}}),o.a.createElement(nt,{allowCustomValue:!0,value:t.value,loadOptions:function(){return c(t.key).then((function(e){return e.map(Me)}))},onChange:function(e){var n,r,o,a,c=null!==(n=e.value)&&void 0!==n?n:"";i(pt(pt({},t),{value:c,operator:(r=s,o=c,a="=~"===r||"!~"===r,ct(o)?a?r:"=~":a?"=":r)}))}}))},vt=function(e){var t=e.tags,n=e.onChange,r=e.getTagKeyOptions,i=e.getTagValueOptions,a=function(e,r){var i=t.map((function(t,n){return r===n?e:t}));n(i)};return o.a.createElement(o.a.Fragment,null,t.map((function(e,c){return o.a.createElement(gt,{tag:e,isFirst:0===c,key:c,onChange:function(e){a(e,c)},onRemove:function(){var e,r;e=c,r=t.filter((function(t,n){return n!==e})),n(r)},getTagKeyOptions:r,getTagValueOptions:i})})),o.a.createElement(lt,{allowCustomValue:!0,loadOptions:function(){return r().then((function(e){return e.map(Me)}))},onAdd:function(e){var r,i,o,a;r=e,i=0===t.length,a={key:(o={key:r,value:"select tag value"}).key,value:o.value,operator:st(o),condition:ut(o,i)},n(dt(dt([],t,!0),[a],!1))}}))},bt=Object(pe.css)({paddingRight:"0",marginRight:"0"}),It=function(e){var t=e.name,n=e.onRemove;return o.a.createElement(D.WithContextMenu,{getContextMenuItems:function(){return[{items:[{label:"remove",onClick:n}]}]}},(function(e){var n=e.openMenu;return o.a.createElement("button",{className:Object(pe.cx)("gf-form-label",bt),onClick:n},t)}))},Dt=Object(pe.css)({paddingLeft:"0",paddingRight:"0",marginLeft:"0",marginRight:"0"}),wt=function(e){var t=e.name,n=e.params,r=e.onChange,a=e.onRemove,c=Object(D.useTheme)(),s=Object(i.useMemo)((function(){return function(e){return Object(pe.cx)("gf-form-label",Object(pe.css)({paddingLeft:"0",lineHeight:e.typography.lineHeight.md,fontSize:e.typography.size.base}))}(c)}),[c]),u=function(e,t){var i=n.map((function(e){return e.value}));i[t]=e,r(i)};return o.a.createElement("div",{className:s},o.a.createElement(It,{name:t,onRemove:a}),"(",n.map((function(e,t){var r=e.value,i=e.options,a=t===n.length-1,c=null!==i?function(){return i().then((function(e){return e.map(Me)}))}:void 0;return o.a.createElement(o.a.Fragment,{key:t},o.a.createElement(nt,{allowCustomValue:!0,value:r,buttonClassName:Dt,loadOptions:c,onChange:function(e){u(Te(e.value),t)}}),!a&&",")})),")")},kt=function(e){var t=e.parts,n=e.getNewPartOptions,r=e.onAddNewPart,i=e.onRemovePart,a=e.onChange;return o.a.createElement(o.a.Fragment,null,t.map((function(e,t){return o.a.createElement(wt,{key:t,name:e.name,params:e.params,onRemove:function(){i(t)},onChange:function(e){a(t,e)}})})),o.a.createElement(lt,{loadOptions:n,onAdd:r}))},Ct=Object(pe.css)({paddingRight:"4px"}),Ot=function(e){var t=e.value,n=e.onChange,r=e.isWide,i=e.placeholder,a=We(t),c=a[0],s=a[1];return o.a.createElement(D.Input,{placeholder:i,className:Object(pe.cx)(null!=r&&r?"width-14":"width-8",Ct),type:"text",spellCheck:!1,onBlur:function(){n(""===c?void 0:c)},onChange:function(e){s(e.currentTarget.value)},value:null!=c?c:""})},xt=[{label:"ascending",value:"ASC"},{label:"descending",value:"DESC"}],St=Object(pe.cx)("width-9",Ct),_t=function(e){var t=e.value,n=e.onChange,r=e.inputId;return o.a.createElement(D.Select,{inputId:r,className:St,onChange:function(e){n(Te(e.value))},value:t,options:xt})},Et=[{label:"Time series",value:"time_series"},{label:"Table",value:"table"},{label:"Logs",value:"logs"}],Nt=["log_url_statistics","event_url_statistics","pv_url_statistics","user_event_user_event_unique","uv_project_unique","uv_page_unique","custom_url_info","custom_url_statistics","fetch_url_info","fetch_url_statistics","fetch_project_statistics","set_data_url_statistics","performance_page_statistics","performance_project_statistics","static_url_source","static_resource_statistics","static_project_statistics","webvitals_page_statistics","webvitals_project_statistics"],At=Object(pe.cx)("width-8",Ct),jt=function(e){var t=e.format,n=e.inputId,r=e.onChange;return o.a.createElement(D.Select,{inputId:n,className:At,onChange:function(e){r(Te(e.value))},value:t,options:Et})};var qt=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Tt=function(){return(Tt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0,n=Boolean(null==e?void 0:e.instanceSettings.jsonData.logServiceEnabled),r=Boolean(null==e?void 0:e.instanceSettings.jsonData.RUMServiceEnabled);return[t&&x.monitor,n&&x.logService,r&&x.RUMService].filter(Boolean)},enumerable:!1,configurable:!0}),t.prototype.render=function(){var e=this,t=this.props,n=t.datasource,r=t.query,i=this.state.isAlertVisiable;return n?o.a.createElement("div",null,this.enabledServices.length>1&&o.a.createElement(D.TabsBar,null,B.filter((function(t){return e.enabledServices.includes(t.value)})).map((function(t){return o.a.createElement(D.Tab,{key:t.value,label:t.label,active:r.serviceType===t.value,onChangeTab:function(){e.partialOnChange({serviceType:t.value})}})}))),o.a.createElement(D.TabContent,null,r.serviceType===x.monitor&&this.renderMonitorQueryEditor(),r.serviceType===x.logService&&this.renderLogServiceQueryEditor(),r.serviceType===x.RUMService&&this.renderRUMServiceQueryEditor()),i&&o.a.createElement(D.Alert,{title:"目前仅 CLS日志服务 数据源支持告警"})):o.a.createElement("div",null,"loading")},t.prototype.renderMonitorQueryEditor=function(){var e=this.props.datasource.monitorDataSource;return e&&o.a.createElement(R,Vt({},this.props,{queryCtrl:T,datasource:e}))},t.prototype.renderLogServiceQueryEditor=function(){return o.a.createElement(ue,Vt({},this.props))},t.prototype.renderRUMServiceQueryEditor=function(){var e=this.props,t=e.query,n=e.onChange,r=e.onRunQuery,i=e.datasource;return o.a.createElement(Rt,{query:t,onChange:n,onRunQuery:r,datasource:i})},t}(i.PureComponent),Ut=function(){return o.a.createElement("a",{target:"_blank",href:"https://cloud.tencent.com/document/product/248/54510"},"Click here for more information of query")},Kt=function(e){var t=U(e),n=e.query,r=e.datasource,a=Object(i.useCallback)((function(e){var n,r,i=t.current.onChange;r=e.serviceType===x.logService?"SQL: ".concat(null===(n=e.logServiceParams)||void 0===n?void 0:n.Query):e.queryString,null==i||i(e,r)}),[t]);return o.a.createElement(o.a.Fragment,null,o.a.createElement(D.InlineFieldRow,null,o.a.createElement(D.InlineField,{label:"服务类型",labelWidth:20},o.a.createElement(D.RadioButtonGroup,{options:B,value:Object(c.isString)(n)?x.monitor:n.serviceType,onChange:function(e){e===x.monitor&&a({serviceType:e,queryString:""}),e===x.logService&&a({serviceType:e,queryString:"",logServiceParams:Object(c.clone)(V.logServiceParams)}),e===x.RUMService&&a({serviceType:e,queryString:""})}}))),n.serviceType===x.logService&&o.a.createElement(o.a.Fragment,null,o.a.createElement(ue,{datasource:r,query:n,onRunQuery:function(){},onChange:function(e){a({serviceType:x.logService,queryString:"",logServiceParams:e.logServiceParams})}})),n.serviceType===x.RUMService&&o.a.createElement(D.InlineFieldRow,null,o.a.createElement(D.InlineField,{label:"查询语句",labelWidth:20,grow:!0,tooltip:Ut},o.a.createElement(D.Input,{name:"query",required:!0,placeholder:"metric name or tags query",onChange:function(e){return a({serviceType:x.RUMService,queryString:e.currentTarget.value})},value:Object(c.isString)(n)?n:n.queryString}))),(Object(c.isString)(n)||n.serviceType===x.monitor)&&o.a.createElement(D.InlineFieldRow,null,o.a.createElement(D.InlineField,{label:"查询语句",labelWidth:20,grow:!0,tooltip:Ut},o.a.createElement(D.Input,{name:"query",required:!0,onChange:function(e){return a({serviceType:x.monitor,queryString:e.currentTarget.value})},value:Object(c.isString)(n)?n:n.queryString}))))};Kt.displayName="VariableQueryEditor";var zt=n(125),$t=n(66);function Wt(e){return"function"==typeof e}var Yt=!1,Zt={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e);Yt=e},get useDeprecatedSynchronousErrorHandling(){return Yt}};function Jt(e){setTimeout((function(){throw e}),0)}var Ht={closed:!0,next:function(e){},error:function(e){if(Zt.useDeprecatedSynchronousErrorHandling)throw e;Jt(e)},complete:function(){}},Xt=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}();function en(e){return null!==e&&"object"==typeof e}var tn=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),nn=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var t;if(!this.closed){var n=this._parentOrParents,r=this._ctorUnsubscribe,i=this._unsubscribe,o=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var a=0;a1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},t}(an),On=function(e){function t(t,n){var r=e.call(this)||this;return r.source=t,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return $t.a(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new nn).add(this.source.subscribe(new Sn(this.getSubject(),this))),e.closed&&(this._connection=null,e=nn.EMPTY)),e},t.prototype.refCount=function(){return wn()(this)},t}(hn),xn=function(){var e=On.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}}(),Sn=function(e){function t(t,n){var r=e.call(this,t)||this;return r.connectable=n,r}return $t.a(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(bn);var _n=function(){function e(e,t){this.subjectFactory=e,this.selector=t}return e.prototype.call=function(e,t){var n=this.selector,r=this.subjectFactory(),i=n(r).subscribe(e);return i.add(t.subscribe(r)),i},e}();function En(){return new In}function Nn(){return function(e){return wn()((t=En,function(e){var r;if(r="function"==typeof t?t:function(){return t},"function"==typeof n)return e.lift(new _n(r,n));var i=Object.create(e,xn);return i.source=e,i.subjectFactory=r,i})(e));var t,n}}var An=n(67),jn=n.n(An),qn=/(\w+)\[[\w/]+]/g,Tn=[{prestoTypeRegex:/^timestamp with time zone$/,fieldType:r.FieldType.time,processor:function(e){var t=String(e).replace(qn,"$1");return jn()(t).isValid()?t:e}},{prestoTypeRegex:/^timestamp$|^date$|^datetime$/,fieldType:r.FieldType.time},{prestoTypeRegex:/^time$/,fieldType:r.FieldType.time},{prestoTypeRegex:/^tinyint$|^samllint$|^integer$|^bigint$|^long$/,fieldType:r.FieldType.number},{prestoTypeRegex:/^real$|^double$|^decimal$/,fieldType:r.FieldType.number},{prestoTypeRegex:/^varchar$|^char$|^text$|^keyword$/,fieldType:r.FieldType.string},{prestoTypeRegex:/^boolean$/,fieldType:r.FieldType.boolean},{prestoTypeRegex:/^uuid$/,fieldType:r.FieldType.string},{prestoTypeRegex:/^ipaddress$/,fieldType:r.FieldType.string},{prestoTypeRegex:/^array\(.*\)$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^json$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^map\(.*\)$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^varbinary$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^interval$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^row$/,fieldType:r.FieldType.other}];var Mn,Ln=function(){return(Ln=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=2))return"";n=t[0]}return n}function zn(e,t){void 0===t&&(t={});var n=Kn(null!=e?e:""),r=(null!=e?e:"").slice(n.length);return Object(M.getTemplateSrv)().replace(n,t,"lucene")+Object(M.getTemplateSrv)().replace(r,t,"raw")}function $n(e,t){var n=Kn(null!=e?e:""),r=(null!=e?e:"").slice(n.length),i=t.MaxResultNum;return i&&r?/limit/.test(r)?e:e+" limit "+i:e}var Wn=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Yn=function(){return(Yn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&s.length>0)return l=c[0],[2,s.map((function(e){return{text:e[l.Name],value:e[l.Name]}}))];p.label=2;case 2:return[2,[]]}}))}))},t.prototype.testDatasource=function(){return Zn(this,void 0,void 0,(function(){var e;return Jn(this,(function(t){switch(t.label){case 0:if(!this.instanceSettings.jsonData.logServiceEnabled)return[2,null];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,J({TopicId:"",Query:"",From:jn()().subtract(1,"h").valueOf(),To:jn()().valueOf()},"ap-shanghai",{instanceSettings:this.instanceSettings})];case 2:return t.sent(),[2,{status:"success",message:"DatSource Connection OK"}];case 3:return(null==(e=t.sent())?void 0:e.code)&&"AuthFailure.SignatureFailure"!==e.code?[2,{status:"success",message:"DatSource Connection OK"}]:[2,{status:"error",title:e.code,message:e.message}];case 4:return[2]}}))}))},t.prototype.getLogsVolumeDataProvider=function(e){},t}(r.DataSourceApi);function er(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}var tr=er(),nr=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function rr(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}var ir=function(e){if(e&&"function"==typeof e[dn])return i=e,function(e){var t=i[dn]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if(nr(e))return r=e,function(e){for(var t=0,n=r.length;t0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(cr);var dr=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new fr(e,this.selector,this.caught))},e}(),fr=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i.selector=n,i.caught=r,i}return $t.a(t,e),t.prototype.error=function(t){if(!this.isStopped){var n=void 0;try{n=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle();var r=new ar(this);this.add(r);var i=sr(n,r);i!==r&&this.add(i)}},t}(cr),mr=n(196),hr=n.n(mr),yr=function(){function e(e){this.series=e.series,this.alias=e.alias,this.annotation=e.annotation,this.meta=e.meta,this.refId=e.refId}return e.prototype.getTimeSeries=function(){var e,t,n=this,r=[];return 0===this.series.length||Object(c.each)(this.series,(function(i){var o=i.columns.length,a=Object(c.map)(i.tags,(function(e,t){return t+": "+e}));for(t=1;t0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0||r.indexOf("show retention policies")>=0,o=r.indexOf("show measurements")>=0,a=new Set;return Object(c.each)(n.series,(function(e){Object(c.each)(e.values,(function(e){Object(c.isArray)(e)?i?kr(a,e[0]):void 0!==e[1]?kr(a,e[1]):kr(a,e[0]):kr(a,e)}))})),o?Array.from(a).filter((function(e){return Nt.includes(e)})).map((function(e){return{text:e}})):Array.from(a).map((function(e){return{text:e}}))},e.prototype.getTable=function(e,t,n){var i,o,a=new hr.a;if(e.length>0)if(a.meta=gr(gr({},n),{executedQueryString:null===(i=e[0].meta)||void 0===i?void 0:i.executedQueryString}),a.refId=t.refId,a=function(e,t,n){var i=function(e){var t,n=[];null===(t=e.select)||void 0===t||t.forEach((function(e){var t,r,i=e.filter((function(e){return"field"!==e.type}));i.length>0?n.push(i[0].type):(null===(r=null===(t=e[0])||void 0===t?void 0:t.params)||void 0===r?void 0:r[0])&&n.push(e[0].params[0].toString())}));var r=[];return n.forEach((function(e){r.push(function e(t,n,r,i){if(r.indexOf(n)>-1)return i++,e(t,t+"_"+i,r,i);return n}(e,e,r,0))})),r}(n);e[0].fields.forEach((function(e){"time"===e.name?t.columns.push({text:"Time",type:r.FieldType.time}):"value"===e.name&&e.labels&&Object.keys(e.labels).forEach((function(e){t.columns.push({text:e})}))})),"metricFindQuery"===e[0].refId&&e.forEach((function(e){e.name&&t.columns.push({text:e.name})}));for(var o=0;o0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(o+=" AND "+new Ae({},this.templateSrv,a).renderAdhocFilters(p));return a.timeFilter={value:o},l=this.templateSrv.replace(l,a),this._seriesQuery(l,e).pipe(sn((function(o){if(!o||!o.results)return{data:[]};var a=[];for(t=0;t0)throw{message:"RUM Error: "+i[0].error,data:r}}}return r})),(r=function(e){return e.cancelled?Object(zt.of)(e):Object(zt.throwError)(t.handleErrors(e))},function(e){var t=new dr(r),n=e.lift(t);return t.caught=n}));var r})))},t.prototype.handleErrors=function(e){var t,n={message:(null==e?void 0:e.status)||(null==e?void 0:e.message)||"Unknown error during query transaction. Please check JS console logs."};return(Number.isInteger(e.status)&&0!==e.status||e.status>=300)&&((null===(t=e.data)||void 0===t?void 0:t.error)?(n.message="RUM Error: "+e.data.error,n.data=e.data,n.config=e.config):(n.message="Network Error: "+e.statusText+"("+e.status+")",n.data=e.data,n.config=e.config)),n},t.prototype.getTimeFilter=function(e){return"time >= "+this.getRUMTime(e.rangeRaw.from,!1,e.timezone)+" and time <= "+this.getRUMTime(e.rangeRaw.to,!0,e.timezone)},t.prototype.getRUMTime=function(e,t,n){if(Object(c.isString)(e)){if("now"===e)return"now()";var i=/^now-(\d+)([dhms])$/.exec(e);if(i)return"now() - "+parseInt(i[1],10)+i[2];e=r.dateMath.parse(e,t,n)}return e.valueOf()+"ms"},t.prototype.fixTimePeriod=function(e,t){var n,r=this,i=this.getTimePeriod(t.rangeRaw,t.timezone);return null===(n=e.groupBy)||void 0===n||n.forEach((function(t){"time"===t.type&&"1d"!==t.params[0]&&(e=r.modifyTime(e,i))})),e},t.prototype.getTimePeriod=function(e,t){var n,i,o=null===(n=r.dateMath.parse(e.from,!1,t))||void 0===n?void 0:n.valueOf(),a=null===(i=r.dateMath.parse(e.to,!0,t))||void 0===i?void 0:i.valueOf(),c=0;return o&&a&&(c=a-o),c<=432e5?"1m":c<=2592e5?"30m":c<=6048e5?"1h":"1d"},t.prototype.modifyTime=function(e,t){var n;if(!e.groupBy)return e;for(var r=0,i=e.groupBy;r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&-1===t._InstanceAliasValue.indexOf(r[o].timeshift)&&(t._InstanceAliasValue+="_".concat(r[o].timeshift)),t[e]=f.getDimensionsVal(t,p,h),f.checkKeys.length>0&&f.checkKeys.forEach((function(n){t[n]=t[e]})),n[e]={Name:e,Value:t[e]},[2]}}))},f=this,m=0,h=e,y.label=1;case 1:return m0){var r=i.a.cloneDeep(t);return r[n].timeshift="",m(m([],e,!0),[r,t],!1)}return m(m([],e,!0),[t],!1)}),[]).map((function(r){return f(t,void 0,void 0,(function(){var t,o,l,p,f,m,h,g,y,v,b,I,w=this;return d(this,(function(d){switch(d.label){case 0:return t=Object(c.j)(this.templateSrv,e.scopedVars,r[n].instance,!0),[4,s.a.getInstance(this.service)];case 1:o=d.sent(),l=Object(u.c)(r[n].timeshift),t=[].concat(t).map((function(e){var t,n;try{return JSON.parse(e)}catch(r){return o?null!==(n=i.a.cloneDeep(o.find((function(t){return t[w.templateQueryIdMap.instance]===e}))))&&void 0!==n?n:{}:null===(t=w.getDefaultInsObj)||void 0===t?void 0:t.call(w,e)}})),p=Object(c.j)(this.templateSrv,e.scopedVars,r[n].region,!1),f=[],m=0,h=t,d.label=2;case 2:return m=y)return(null==d?void 0:d.response)?d.response(r):r;var v=Object(c.k)(y,(null==o?void 0:o.Limit)||100),b=[];return i.a.forEach(v,(function(r){b.push(n.getInstances(e,p(p({},r),t)))})),Promise.all(b).then((function(e){return i.a.forEach(e,(function(e){r=i.a.concat(r,e)})),(null==d?void 0:d.response)?d.response(r):r})).catch((function(e){return(null==d?void 0:d.response)?d.response(r):r}))}))},e.prototype.isValidConfigField=function(e){return e&&e.length>0},e.prototype.testDatasource=function(){var e=this;return this.isValidConfigField(this.secretId)?Promise.all([this.getRegions(),this.getMetrics(),this.getInstances("ap-guangzhou",{Offset:0,Limit:1})]).then((function(t){var n=i.a.get(t,"[0].Error",{}),r=i.a.get(t,"[1].Error",{}),o=i.a.get(t,"[2].Error",{}),a=i.a.get(n,"Code",""),c=i.a.get(r,"Code",""),s=i.a.get(o,"Code","");if(a||c||s){var u=[];a&&u.push(i.a.get(n,"Code")),c&&u.push(i.a.get(r,"Code")),s&&u.push(i.a.get(o,"Code"));var l=i.a.join(i.a.compact(i.a.uniq(u)),"; ");return{service:e.service,status:"error",message:l}}return{namespace:e.namespace,service:e.service,status:"success",message:"Successfully queried the ".concat(e.service," service."),title:"Success"}})).catch((function(t){var n="".concat(e.service," service:");return n+=t.statusText?t.statusText+"; ":"",i.a.get(t,"data.error.code","")?n+=t.data.error.code+". "+t.data.error.message:i.a.get(t,"data.error","")?n+=t.data.error:i.a.get(t,"data","")?n+=t.data:n+="Cannot connect to ".concat(e.service," service."),{service:e.service,status:"error",message:n}})):{service:this.service,status:"error",message:"The SecretId/SecretKey field is required."}},e.prototype.doRequest=function(e,t,n){return void 0===n&&(n={}),f(this,void 0,void 0,(function(){return d(this,(function(r){switch(r.label){case 0:return[4,Object(c.c)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return i.a.get(e,"data.Response",{})})).catch((function(e){throw e}))]}}))}))},e}()},function(e,n){e.exports=t},function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"d",(function(){return p})),n.d(t,"b",(function(){return f})),n.d(t,"f",(function(){return d})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return h}));var r=n(0),i=n.n(r),o=n(20),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t?r.push({Name:o,Values:i.a.uniq(e).slice(0,5)}):n[o]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t?r.push({Name:o,Values:i.a.get(e,"value",[]).slice(0,5)}):n[o]=i.a.get(e,"value")):null!=e&&""!==e&&(t?r.push({Name:o,Values:e}):n[o]=e)})),t&&r.length>0)return n.Filters=r,n}return n}function f(e){return i.a.get(i.a.find(o.SERVICES,(function(t){return t.service===e})),"namespace")}function d(e){return e.reduce((function(e,t){var n=t.namespace,r=t.label,i=t.groupName,o=void 0===i?r:i,a=e.find((function(e){return e.label===o}));return a?(a.items.push({label:r,value:n}),e):(e.push({label:o,value:o,items:[{label:r,value:n}]}),e)}),[]).map((function(e){return 1===e.items.length?{label:e.items[0].label,value:e.items[0].value}:e}))}var m=function(e,t,n){try{var r=JSON.parse(e),i=JSON.parse(t);return r[n]===i[n]}catch(n){return e===t}},h=function(e){var t=/^(\d+)([d|h|m|s])$/.exec(e);if(!t)return 0;var n=parseInt(t[1],10);switch(t[2]){case"d":return 86400*n*1e3;case"h":return 3600*n*1e3;case"m":return 60*n*1e3;case"s":return 1e3*n}return 0}},function(e,t){e.exports=n},function(e,t,n){"use strict";n.r(t);var r=n(6),i=n.n(r),o=n(2);t.default=function(e,t){var n,r,a=(n=t,function(){function e(e,t){Object.assign(e,n),e.getDropdown=function(t){var n=Object(o.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t,region:e.region})}}return e.$inject=["$scope","$rootScope"],e}());i.a.directive(e,(r=a,function(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n',controller:r,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}))}},function(e,t){e.exports=r},function(e,t,n){"use strict";var r=function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["InstanceId","InstanceName"],u=["TopicId","TopicName"],l={instance:"InstanceId",topicId:"TopicId",groupName:"GroupName",partition:"PartitionId"},p=new Proxy({topicId:"TopicId",topicName:"TopicName",consumerGroup:"GroupName",partition:"PartitionId"},{get:function(e,t){return"instanceid"===String(t).toLocaleLowerCase()?"InstanceId":e[t]}}),f={TopicList:"TopicList",GroupList:"GroupList",PartitionList:"PartitionList"},d={TopicId:{dim_KeyInStorage:f.TopicList,dim_KeyInTarget:"topicId",dim_KeyInMap:l.topicId},TopicName:{dim_KeyInStorage:f.TopicList,dim_KeyInTarget:"topicId",dim_KeyInMap:l.topicId},GroupName:{dim_KeyInStorage:f.GroupList,dim_KeyInTarget:"consumerGroup",dim_KeyInMap:l.groupName},PartitionId:{dim_KeyInStorage:f.PartitionList,dim_KeyInTarget:"partition",dim_KeyInMap:l.partition}};t.default=a},function(e,t,n){"use strict";n.r(t),n.d(t,"LOADBALANCEFieldsDescriptor",(function(){return a})),n.d(t,"InstanceAliasList",(function(){return l})),n.d(t,"LOADBALANCEListenerAliasList",(function(){return p})),n.d(t,"LOADBALANCEServerAliasList",(function(){return f})),n.d(t,"LOADBALANCEVALIDDIMENSIONS",(function(){return d})),n.d(t,"templateQueryIdMap",(function(){return h})),n.d(t,"CANDIATEDIMENSIONS",(function(){return m})),n.d(t,"queryMonitorExtraConfg",(function(){return y})),n.d(t,"keyInStorage",(function(){return g})),n.d(t,"queryEditorConfig",(function(){return c})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"GetInstanceQueryParams",(function(){return u}));var r=n(5),i="QCE/LOADBALANCE",o="loadBalanceQuery",a=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1",link:"",type:"inputNumber",min:1},{key:"LoadBalancerIds",enDescriptor:"LoadBalancer ID",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancer Name",cnDescriptor:"实例名称",link:"",type:"input"},{key:"Forward",enDescriptor:"Forward",cnDescriptor:"负载均衡实例类型",link:"",type:"select",list:[{text:"通用的负载均衡",value:1},{text:"传统的负载均衡",value:0}]},{key:"Domain",enDescriptor:"Domain",cnDescriptor:"域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义",link:"",type:"input"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancer Vips",cnDescriptor:"负载均衡实例的 VIP 地址",link:"",type:"inputMulti"},{key:"BackendPrivateIps",enDescriptor:"BackendPrivate Ips",cnDescriptor:"负载均衡绑定的后端服务的内网 IP",link:"",type:"inputMulti"},{key:"BackendPublicIps",enDescriptor:"BackendPublic Ips",cnDescriptor:"负载均衡绑定的后端服务的外网 IP",link:"",type:"inputMulti"},{key:"ProjectId",enDescriptor:"Project ID",cnDescriptor:"负载均衡实例所属的项目 ID",link:"",type:"inputNumber"},{key:"VpcId",enDescriptor:"Vpc ID",cnDescriptor:"负载均衡实例所属私有网络",link:"",type:"input"},{key:"SecurityGroup",enDescriptor:"Security Group",cnDescriptor:"安全组ID",link:"",type:"input"},{key:"MasterZone",enDescriptor:"Master Zone",cnDescriptor:"主可用区ID",link:"",type:"input"},{key:"WithRs",enDescriptor:"WithRs",cnDescriptor:"负载均衡是否绑定后端服务",link:"",type:"select",list:[{text:"没有绑定后端服务",value:0},{text:"绑定后端服务",value:1},{text:"查询全部",value:-1}]},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"LoadBalancerName",value:"LoadBalancerName"},{text:"CreateTime",value:"CreateTime"},{text:"Domain",value:"Domain"},{text:"LoadBalancerType",value:"LoadBalancerType"}]},{key:"OrderType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]}],c={instanceDocUrl:"https://cloud.tencent.com/document/api/214/30685",namespace:i,fieldDescriptor:a},s={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",Port:"",Protocol:"",listener:"",servers:"",serverPort:"",queries:{LoadBalancerIds:[],Forward:void 0,LoadBalancerName:"",Domain:"",LoadBalancerVips:[],BackendPublicIps:[],BackendPrivateIps:[],Limit:20,Offset:0,ProjectId:void 0,WithRs:{},VpcId:"",SecurityGroup:"",MasterZone:"",OrderBy:{},OrderType:{}}};function u(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var l=["LoadBalancerId","LoadBalancerName","LoadBalancerVips"],p=["ListenerId","ListenerName","Port"],f=["PrivateIpAddresses","InstanceId"],d={vip:"LoadBalancerVips",loadBalancerPort:"Port",protocol:"Protocol",lanIp:"PrivateIpAddresses",port:"ServerPort"},m={LoadBalancerVips:"AddressIPv6"},h={instance:"LoadBalancerId",listener:"ListenerId",servers:"PrivateIpAddresses",port:"Port"},g={listener:"ListenerList",servers:"ServersList"},y={Port:{dim_KeyInStorage:g.listener,dim_KeyInTarget:"listener",dim_KeyInMap:h.listener},Protocol:{dim_KeyInStorage:g.listener,dim_KeyInTarget:"listener",dim_KeyInMap:h.listener},PrivateIpAddresses:{dim_KeyInStorage:g.servers,dim_KeyInTarget:"servers",dim_KeyInMap:h.servers},ServerPort:{dim_KeyInStorage:g.servers,dim_KeyInTarget:"serverPort",dim_KeyInIns:"Port",dim_KeyInMap:h.port}};t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"TDMQInstanceAliasList",(function(){return u})),n.d(t,"TDMQInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryMonitorExtraConfg",(function(){return y})),n.d(t,"keyInStorage",(function(){return g})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"regionSupported",(function(){return m})),n.d(t,"TDMQGetInstanceQueryParams",(function(){return d}));var r=n(5),i=n(0),o=n.n(i),a="QCE/TDMQ",c="tdmqQuery",s={tenantId:"ClusterId",tenant:"ClusterId",topicName:"TopicName",environmentId:"EnvironmentId"},u=["ClusterId","ClusterName"],l={instance:"ClusterId",topicName:"TopicName",environmentId:"EnvironmentId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100}],f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",topicName:"",environmentId:"",queries:{Limit:20,Offset:0}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var m=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}];function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){-1!==e.Dimensions.indexOf("topicName")&&-1===e.Dimensions.indexOf("environmentId")&&e.Dimensions.push("environmentId")})),t}var g={topicName:"topicName",environmentId:"environmentId"},y={TopicName:{dim_KeyInStorage:g.topicName,dim_KeyInTarget:"topicName",dim_KeyInMap:l.topicName},EnvironmentId:{dim_KeyInStorage:g.environmentId,dim_KeyInTarget:"environmentId",dim_KeyInMap:l.environmentId}};t.default=f},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return c})),n.d(t,"d",(function(){return s}));var r,i=n(1),o=n(202);!function(e){e.monitor="monitor",e.logService="logService",e.RUMService="RUMService",e.APMService="APMService"}(r||(r={}));var a=[{value:r.monitor,get label(){return Object(i.d)("cloud_monitor")}},{value:r.logService,get label(){return Object(i.d)("cloud_log_service")}},{value:r.RUMService,get label(){return Object(i.d)("real_user_monitoring")}},{value:r.APMService,get label(){return Object(i.d)("apm_monitoring")}}],c={serviceType:r.logService,logServiceParams:{region:"",TopicId:"",Query:"",SyntaxRule:o.a.CQL},RUMServiceParams:{policy:"default",resultFormat:"time_series",orderByTime:"ASC",tags:[],groupBy:[{type:"time",params:["$__interval"]},{type:"fill",params:["null"]}],select:[[{type:"field",params:["value"]},{type:"mean",params:[]}]]},APMServiceParams:{policy:"default",resultFormat:"time_series",orderType:"time",orderBy:"ASC",tags:[],groupBy:[{type:"time",params:["$__interval"]},{type:"fill",params:["null"]}],select:[[{type:"field",params:["value"]},{type:"mean",params:[]}]]}},s={refId:"",hide:!1,key:"",queryType:"",dataTopic:null,datasource:"",serviceType:c.serviceType,logServiceParams:c.logServiceParams,RUMServiceParams:c.RUMServiceParams,APMServiceParams:c.APMServiceParams}},function(e,t,n){"use strict";n.r(t),n.d(t,"GSEFilterFieldsDescriptor",(function(){return m})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"GSEInstanceAliasList",(function(){return l})),n.d(t,"GSEInvalidDemensions",(function(){return u})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return h})),n.d(t,"regionSupported",(function(){return v})),n.d(t,"modifyDimensons",(function(){return b})),n.d(t,"queryMonitorExtraConfg",(function(){return d})),n.d(t,"fleetId",(function(){return c})),n.d(t,"keyInStorage",(function(){return f})),n.d(t,"GSEGetInstanceQueryParams",(function(){return y}));var r=n(5),i=n(0),o=n.n(i),a="QCE/GSE",c="FleetId",s="gseQuery",u={instanceid:"InstanceId",fleetid:"FleetId",queuename:"Name"},l=["InstanceId","PrivateIpAddress","IpAddress"],p={instance:"InstanceId",Name:"Name",FleetId:c},f={fleet:"fleet",queue:"queueName"},d={FleetId:{dim_KeyInStorage:f.fleet,dim_KeyInTarget:"FleetId",dim_KeyInMap:p.FleetId},Name:{dim_KeyInStorage:f.queue,dim_KeyInTarget:"Name",dim_KeyInMap:p.Name}},m=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceId",enDescriptor:"resourceName",cnDescriptor:"资源名称",link:"",type:"input"},{key:"FleetId",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"input"}],h={instanceDocUrl:"https://cloud.tencent.com/document/api/1165/42604",namespace:a,fieldDescriptor:m},g={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",FleetId:"",Name:"",queries:{Limit:20,Offset:0,InstanceId:"",FleetId:""}};function y(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var v=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-ashburn"},{value:"na-siliconvalley"}];function b(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return u[e]||e}))})),t}t.default=g},function(e,t,n){"use strict";n.r(t),n.d(t,"DCDBFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"DCDBInstanceAliasList",(function(){return s})),n.d(t,"DCDBInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"regionSupported",(function(){return v})),n.d(t,"keyInStorage",(function(){return g})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"queryMonitorExtraConfg",(function(){return y})),n.d(t,"DCDBGetInstanceQueryParams",(function(){return h}));var r=n(0),i=n(5),o="QCE/TDMYSQL",a="dcdbQuery",c={nodeid:"NodeId",instanceid:"InstanceId",shardid:"ShardInstanceId",ShardId:"ShardInstanceId"},s=["InstanceId","InstanceName"],u={instance:"InstanceId",NodeId:"NodeId",ShardInstanceId:"ShardInstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"实例 ID 查询",link:"",type:"inputMulti"},{key:"SearchName",enDescriptor:"SearchName",cnDescriptor:"搜索的字段名,当前支持的值有:instancename、vip、all",link:"",type:"input"},{key:"SearchKey",enDescriptor:"SearchKey",cnDescriptor:"搜索的关键字",link:"",type:"input"},{key:"ProjectIds",enDescriptor:"ProjectIds",cnDescriptor:"按项目 ID 查询",link:"",type:"inputNumberMulti"},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络 ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"私有网络的子网 ID",link:"",type:"input"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"projectId",value:"projectId"},{text:"createtime",value:"createtime"},{text:"instancename",value:"instancename"}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"私有网络 ID",link:"",type:"select",list:[{text:"desc",value:"desc"},{text:"asc",value:"asc"}]},{key:"ExclusterType",enDescriptor:"ExclusterType",cnDescriptor:"集群类型",link:"",type:"select",list:[{text:"非独享集群",value:1},{text:"独享集群",value:2},{text:"全部",value:0},{text:"asc",value:"asc"}]},{key:"ExclusterIds",enDescriptor:"ExclusterIds",cnDescriptor:"独享集群ID",link:"",type:"inputMulti"},{key:"FilterInstanceType",enDescriptor:"FilterInstanceType",cnDescriptor:"实例类型过滤",link:"",type:"select",multiple:!0,list:[{text:"独享实例",value:1},{text:"主实例",value:2},{text:"灾备实例",value:3}]}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/557/16140",namespace:o,fieldDescriptor:l},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",ShardId:"",NodeId:"",queries:{Limit:20,Offset:0,InstanceIds:[],SearchName:"",SearchKey:"",ProjectIds:[],VpcId:"",SubnetId:"",OrderBy:{},OrderByType:{},ExclusterType:{},ExclusterIds:[],FilterInstanceType:{}}},d={shardid:"ShardId",instanceid:"InstanceId",nodeid:"NodeId"};function m(e){var t=Object(r.cloneDeep)(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return d[e]||e}))})),t}function h(e){void 0===e&&(e={});var t=Object(i.d)(e,!1);return t.IsFilterVpc=!1,t.IsFilterExcluster=!1,(t.VpcId||t.SubnetId)&&(t.IsFilterVpc=!0),t.ExclusterType&&(t.IsFilterExcluster=!0),Object(r.isArray)(t.FilterInstanceType)&&(t.FilterInstanceType=t.FilterInstanceType.join(",")),t}var g={NodeId:"NodeId",ShardInstanceId:"ShardId"},y={NodeId:{dim_KeyInStorage:g.NodeId,dim_KeyInTarget:"NodeId",dim_KeyInMap:u.NodeId},ShardInstanceId:{dim_KeyInStorage:g.ShardInstanceId,dim_KeyInTarget:"ShardId",dim_KeyInMap:u.ShardInstanceId}},v=[{text:"华北地区(北京)",value:"ap-beijing"},{text:"西南地区(成都)",value:"ap-chengdu"},{text:"西南地区(重庆)",value:"ap-chongqing"},{text:"华南地区(广州)",value:"ap-guangzhou"},{text:"港澳台地区(中国香港)",value:"ap-hongkong"},{text:"亚太南部(孟买)",value:"ap-mumbai"},{text:"华东地区(南京)",value:"ap-nanjing"},{text:"华东地区(上海)",value:"ap-shanghai"},{text:"华东地区(上海金融)",value:"ap-shanghai-fsi"},{text:"华南地区(深圳金融)",value:"ap-shenzhen-fsi"},{text:"亚太东南(新加坡)",value:"ap-singapore"},{text:"亚太东北(东京)",value:"ap-tokyo"},{text:"欧洲地区(法兰克福)",value:"eu-frankfurt"},{text:"美国东部(弗吉尼亚)",value:"na-ashburn"},{text:"美国西部(硅谷)",value:"na-siliconvalley"},{text:"北美地区(多伦多)",value:"na-toronto"}];t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisMemFieldsDescriptor",(function(){return c})),n.d(t,"RedisMemInvalidDemensions",(function(){return p})),n.d(t,"REDISMEMInstanceAliasList",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return f})),n.d(t,"namespace",(function(){return a})),n.d(t,"NodeType",(function(){return d})),n.d(t,"REDISMEMGetInstanceQueryParams",(function(){return u}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var l=["InstanceId","InstanceName","WanIp"],p={instanceid:"InstanceId",rnodeid:"rnodeid",pnodeid:"pnodeid"},f={instance:"InstanceId",rnodeid:"rnodeid",pnodeid:"pnodeid"},d=["Redis","Proxy"];t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"TDMQRABBITMQInstanceAliasList",(function(){return c})),n.d(t,"TDMQInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryMonitorExtraConfg",(function(){return m})),n.d(t,"keyInStorage",(function(){return d})),n.d(t,"regionSupported",(function(){return f})),n.d(t,"TDMQGetInstanceQueryParams",(function(){return p}));var r=n(5),i="QCE/RABBITMQ",o="tdmqQuery",a={instanceid:"InstanceId",node:"NodeName"},c=["InstanceId","InstanceName"],s={instance:"InstanceId",node:"NodeName"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100}],l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",node:"",queries:{Limit:20,Offset:0}};function p(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var f=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],d={node:"NodeName"},m={NodeName:{dim_KeyInStorage:d.node,dim_KeyInTarget:"node",dim_KeyInMap:s.node}};t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"TDMQROCKETMQInstanceAliasList",(function(){return c})),n.d(t,"TDMQInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryMonitorExtraConfg",(function(){return m})),n.d(t,"keyInStorage",(function(){return d})),n.d(t,"regionSupported",(function(){return f})),n.d(t,"TDMQROCKETMQGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o="QCE/ROCKETMQ",a={tenant:"ClusterId",namespace:"NamespaceId",group:"Name"},c=["ClusterId","ClusterName"],s={instance:"ClusterId",namespace:"NamespaceId",group:"Name"},u=[{key:"includeVip",enDescriptor:"includeVip",cnDescriptor:"包含专享集群",link:"",type:"select",list:[{text:"是",value:"true"},{text:"否",value:"false"}]}],l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",namespace:"",group:"",queries:{Limit:20,Offset:0,instanceIdsChecked:!1,filtersChecked:!0,ClusterIdList:[""],Filters:{includeVip:{text:"是",value:"true"}}}};function p(e){void 0===e&&(e={});var t={};if(!i.a.isEmpty(e))if(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(i.a.isArray(e.ClusterIdList)){var n=i.a.compact(e.ClusterIdList);i.a.uniq(n).length>0&&(t.ClusterIdList=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:[i.a.get(e,"value",[])].slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var f=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],d={namespace:"NamespaceId",group:"Name"},m={NamespaceId:{dim_KeyInStorage:d.namespace,dim_KeyInTarget:"namespace",dim_KeyInMap:s.namespace},Name:{dim_KeyInStorage:d.group,dim_KeyInTarget:"group",dim_KeyInMap:s.group}};t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"InitServiceState",(function(){return c})),n.d(t,"SERVICES",(function(){return o})),n.d(t,"Datasources",(function(){return a})),n.d(t,"InstanceAliasList",(function(){return s})),n.d(t,"GetInstanceQueryParams",(function(){return u}));var r=n(1),i=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c=new Proxy({},{get:function(e,t,n){if("string"==typeof t){if(t.startsWith("id4"))return"ClusterId";if(t.startsWith("host4"))return"Ip"}return Reflect.get(e,t,n)},has:function(e,t){return!0}}),s={instance:"ClusterId",node:"Ip"},u={node:"nodeIP"},l={Ip:{dim_KeyInStorage:u.node,dim_KeyInTarget:"nodeIP",dim_KeyInMap:s.node}},p=["ClusterId","ClusterName"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",nodeIP:"",queries:{Offset:0,Limit:10,DisplayStrategy:"",OrderBy:{},Order:{},InstanceIds:[],ProjectId:-1,OrderField:"",Asc:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"VCLBFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"VCLBInstanceAliasList",(function(){return u})),n.d(t,"VCLBInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return f})),n.d(t,"clbNamespaceMap",(function(){return g})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"regionSupported",(function(){return h})),n.d(t,"BMLBGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/V_CLB",c="vClbQuery",s={InstanceId:"LoadBalancerId"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1",link:"",type:"inputNumber",min:1},{key:"LoadBalancerIds",enDescriptor:"LoadBalancer ID",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancer Name",cnDescriptor:"实例名称",link:"",type:"input"},{key:"Forward",enDescriptor:"Forward",cnDescriptor:"负载均衡实例类型",link:"",type:"select",list:[{text:"通用的负载均衡",value:1},{text:"传统的负载均衡",value:0}]},{key:"Domain",enDescriptor:"Domain",cnDescriptor:"域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义",link:"",type:"input"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancer Vips",cnDescriptor:"负载均衡实例的 VIP 地址",link:"",type:"inputMulti"},{key:"BackendPrivateIps",enDescriptor:"BackendPrivate Ips",cnDescriptor:"负载均衡绑定的后端服务的内网 IP",link:"",type:"inputMulti"},{key:"BackendPublicIps",enDescriptor:"BackendPublic Ips",cnDescriptor:"负载均衡绑定的后端服务的外网 IP",link:"",type:"inputMulti"},{key:"ProjectId",enDescriptor:"Project ID",cnDescriptor:"负载均衡实例所属的项目 ID",link:"",type:"inputNumber"},{key:"VpcId",enDescriptor:"Vpc ID",cnDescriptor:"负载均衡实例所属私有网络",link:"",type:"input"},{key:"SecurityGroup",enDescriptor:"Security Group",cnDescriptor:"安全组ID",link:"",type:"input"},{key:"MasterZone",enDescriptor:"Master Zone",cnDescriptor:"主可用区ID",link:"",type:"input"},{key:"WithRs",enDescriptor:"WithRs",cnDescriptor:"负载均衡是否绑定后端服务",link:"",type:"select",list:[{text:"没有绑定后端服务",value:0},{text:"绑定后端服务",value:1},{text:"查询全部",value:-1}]},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"LoadBalancerName",value:"LoadBalancerName"},{text:"CreateTime",value:"CreateTime"},{text:"Domain",value:"Domain"},{text:"LoadBalancerType",value:"LoadBalancerType"}]},{key:"OrderType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]}],f={instanceDocUrl:"https://cloud.tencent.com/document/api/214/30685",namespace:a,fieldDescriptor:p},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",Port:"",Protocol:"",listener:"",queries:{LoadBalancerIds:[],Forward:void 0,LoadBalancerName:"",Domain:"",LoadBalancerVips:[],BackendPublicIps:[],BackendPrivateIps:[],Limit:20,Offset:0,ProjectId:void 0,WithRs:{},VpcId:"",SecurityGroup:"",MasterZone:"",OrderBy:{},OrderType:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var h=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],g={public:"QCE/LB_PUBLIC",private:"QCE/LB_PRIVATE"};function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=d},function(e,t){e.exports=a},function(e,t,n){"use strict";n.r(t),n.d(t,"cynosdbMysqlFilterFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return m})),n.d(t,"CYNOSDBMYSQLInstanceAliasList",(function(){return d})),n.d(t,"CYNOSDBInvalidDemensions",(function(){return h})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"regionSupported",(function(){return u})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"checkKeys",(function(){return g})),n.d(t,"CYNOSDBMYSQLGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n.n(r),o=n(5),a="QCE/CYNOSDB_MYSQL",c="cynosdbMysqlQuery",s=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:1e3},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"实例id列表",link:"",type:"inputMulti"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"创建时间",value:"CREATETIME"},{text:"过期时间",value:"PERIODENDTIME"}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"排序类型",link:"",type:"select",list:[{text:"升序",value:"ASC"},{text:"降序",value:"DESC"}]},{key:"DbType",enDescriptor:"DbType",cnDescriptor:"引擎类型",link:"",type:"select",list:[{text:"MYSQL",value:"MYSQL"},{text:"POSTGRESQL",value:"POSTGRESQL"}]}],u=[{value:"ap-beijing"},{value:"ap-guangzhou"},{value:"ap-nanjing"},{value:"ap-shanghai"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/1003/48334",namespace:a,fieldDescriptor:s},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,OrderBy:{},OrderByType:{},InstanceIds:[],DbType:{}}};function f(e){return void 0===e&&(e={}),Object(o.d)(e,!1)}var d=["InstanceId","InstanceName"],m={instance:"InstanceId"},h={instanceid:"InstanceId",instanceId:"InstanceId"},g=["instanceId"];function y(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryDescriptor",(function(){return o})),n.d(t,"SCFInstanceAliasList",(function(){return s})),n.d(t,"SCFInvalidDemensions",(function(){return u})),n.d(t,"queryMonitorExtraConfg",(function(){return d})),n.d(t,"regionSupported",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"keyInStorage",(function(){return f})),n.d(t,"SCFGetInstanceQueryParams",(function(){return c})),n.d(t,"SCFDefaultDimensionList",(function(){return m}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"SearchKey",enDescriptor:"SearchKey",cnDescriptor:"支持FunctionName模糊匹配",link:"",type:"input"},{key:"Namespace",enDescriptor:"Namespace",cnDescriptor:"云函数命名空间",link:"",type:"input"},{key:"Description",enDescriptor:"Description",cnDescriptor:"函数描述,支持模糊搜索",link:"",type:"input"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"AddTime",value:"AddTime"},{text:"ModTime",value:"ModTime"},{text:"FunctionName",value:"FunctionName"}]},{key:"Order",enDescriptor:"Order Direction",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"ASC",value:"ASC"},{text:"DESC",value:"DESC"}]}],a={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"FunctionName",version:"",queries:{Offset:0,Limit:20,OrderBy:{},Order:{},SearchKey:"",Namespace:"",Description:""}};function c(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["FunctionId","FunctionName"],u={functionName:"FunctionName",namespace:"Namespace",version:"Version"},l={instance:"FunctionName",version:"Version"},p=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-siliconvalley"},{value:"na-toronto"}],f={version:"version"},d={Version:{dim_KeyInStorage:f.version,dim_KeyInTarget:"version",dim_KeyInMap:l.version}};t.default=a;var m=["functionName","namespace","version"]},function(e,t,n){"use strict";n.r(t),n.d(t,"CLSFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CLSInstanceAliasList",(function(){return u})),n.d(t,"CLSInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return f})),n.d(t,"regionSupported",(function(){return h})),n.d(t,"modifyDimensons",(function(){return g})),n.d(t,"CLSGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/CLS",c="clsQuery",s={},u=["TopicId","TopicName"],l={instance:"TopicId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"topicName",enDescriptor:"topicName",cnDescriptor:"日志主题名称",link:"",type:"inputMulti"},{key:"topicId",enDescriptor:"topicId",cnDescriptor:"日志主题ID",link:"",type:"inputMulti"},{key:"logsetName",enDescriptor:"logsetName",cnDescriptor:"日志集名称",link:"",type:"inputMulti"},{key:"logsetId",enDescriptor:"logsetId",cnDescriptor:"日志集ID",link:"",type:"inputMulti"},{key:"tagKey",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"inputMulti"},{key:"tag:tagKey",enDescriptor:"tag - tagKey",cnDescriptor:"标签键值对",link:"",type:"inputMulti"},{key:"storageType",enDescriptor:"storageType",cnDescriptor:"日志主题的存储类型",link:"",type:"select",list:[{text:"实时存储",value:"hot"},{text:"离线存储",value:"cold"}]}],f={instanceDocUrl:"https://cloud.tencent.com/document/api/614/56454",namespace:a,fieldDescriptor:p},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TopicId",uin:"",queries:{Limit:20,Offset:0,topicName:[],topicId:[],logsetName:[],logsetId:[],tagKey:[],"tag:tagKey":[],storageType:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var h=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}];function g(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["uin","TopicId"]})),t}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"SQLSERVERNETFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"SQLSERVERInstanceAliasList",(function(){return u})),n.d(t,"SQLSERVERInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return f})),n.d(t,"regionSupported",(function(){return d})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"SQLSERVERGetInstanceQueryParams",(function(){return g}));var r=n(5),i=n(0),o=n.n(i),a="QCE/SQLSERVER",c="sqlserverQuery",s={resourceId:"InstanceId"},u=["InstanceId","Name"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ProjectId",enDescriptor:"ProjectId",cnDescriptor:"项目ID",link:"",type:"inputNumber"},{key:"Status",enDescriptor:"Status",cnDescriptor:"实例状态",link:"",type:"select",list:[{text:"申请中",value:1},{text:"运行中",value:2},{text:"受限运行中 (主备切换中)",value:3},{text:"已隔离",value:4},{text:"回收中",value:5},{text:"已回收",value:6},{text:"任务执行中",value:7},{text:"已下线",value:8},{text:"实例扩容中",value:9},{text:"实例迁移中",value:10},{text:"只读",value:11},{text:"重启中",value:12}]},{key:"InstanceIdSet",enDescriptor:"InstanceIdSet",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"PayMode",enDescriptor:"PayMode",cnDescriptor:"子网实例ID",link:"",type:"select",list:[{text:"包年包月",value:1},{text:"按量计费",value:0}]},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"实例所属VPC的唯一字符串ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"实例所属子网的唯一字符串ID",link:"",type:"input"},{key:"VipSet",enDescriptor:"VipSet",cnDescriptor:"实例内网地址列表",link:"",type:"inputMulti"},{key:"InstanceNameSet",enDescriptor:"InstanceNameSet",cnDescriptor:"实例名称列表, 模糊查询",link:"",type:"inputMulti"},{key:"VersionSet",enDescriptor:"VersionSet",cnDescriptor:"实例版本代号列表",link:"",type:"inputMulti"},{key:"Zone",enDescriptor:"Zone",cnDescriptor:"实例可用区",link:"",type:"dropdown"}],f={instanceDocUrl:"https://cloud.tencent.com/document/api/238/19969",namespace:a,fieldDescriptor:p},d=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-nanjing"},{value:"ap-seoul"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-moscow"},{value:"na-siliconvalley"}],m={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,ProjectId:null,Status:{},InstanceIdSet:[],PayMode:{},VpcId:"",SubnetId:"",VipSet:[],InstanceNameSet:[],VersionSet:[],Zone:""}};function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["resourceId"]})),t}function g(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=m},function(e,t,n){"use strict";n.r(t),n.d(t,"BMINTRALBFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMINTRALBInstanceAliasList",(function(){return u})),n.d(t,"BMINTRALBInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return f})),n.d(t,"isValidMetric",(function(){return h})),n.d(t,"BMINTRALBGetInstanceQueryParams",(function(){return g}));var r=n(5),i=n(0),o=n.n(i),a="QCE/BM_INTRA_LB",c="bmIntraLbQuery",s={vip:"LoadBalancerVips",vpcId:"VpcId"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"LoadBalancerIds",enDescriptor:"LoadBalancerIds",cnDescriptor:"负载均衡器ID数组",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancerName",cnDescriptor:"负载均衡器名称",link:"",type:"inputMulti"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancerVips",cnDescriptor:"负载均衡获得的公网IP地址",link:"",type:"inputMulti"}],f={instanceDocUrl:"https://cloud.tencent.com/document/api/1027/33280",namespace:a,fieldDescriptor:p},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",queries:{Limit:20,Offset:0,LoadBalancerIds:[],LoadBalancerName:[],LoadBalancerVips:[]}},m=["Inpkg","Outpkg","Intraffic","Outtraffic","Connum","Req"];function h(e){var t=o.a.map(m,o.a.toUpper);return-1!==o.a.indexOf(t,o.a.toUpper(e.MetricName))}function g(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"CPMFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMLBInstanceAliasList",(function(){return u})),n.d(t,"CPMInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return f})),n.d(t,"isValidMetric",(function(){return g})),n.d(t,"BMLBGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/BM_LB",c="bmLbQuery",s={vip:"LoadBalancerVips"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"LoadBalancerIds",enDescriptor:"LoadBalancerIds",cnDescriptor:"负载均衡器ID数组",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancerName",cnDescriptor:"负载均衡器名称",link:"",type:"inputMulti"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancerVips",cnDescriptor:"负载均衡获得的公网IP地址",link:"",type:"inputMulti"}],f={instanceDocUrl:"https://cloud.tencent.com/document/api/1027/33280",namespace:a,fieldDescriptor:p},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",queries:{Limit:20,Offset:0,LoadBalancerIds:[],LoadBalancerName:[],LoadBalancerVips:[]}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var h=["Inpkg","Outpkg","Intraffic","Outtraffic","Connum","Req"];function g(e){var t=o.a.map(h,o.a.toUpper);return-1!==o.a.indexOf(t,o.a.toUpper(e.MetricName))}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"BMPCXFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMPCXInstanceAliasList",(function(){return u})),n.d(t,"BMPCXInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return f})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"BMPCXGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/BM_PCX",c="bmPcxQuery",s={peeringConnectionId:"VpcPeerConnectionId"},u=["VpcPeerConnectionId","VpcPeerConnectionName"],l={instance:"VpcPeerConnectionId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"VpcPeerConnectionIds",enDescriptor:"VpcPeerConnectionIds",cnDescriptor:"对等连接实例ID",link:"",type:"inputMulti"}],f={instanceDocUrl:"https://cloud.tencent.com/document/product/1024/36903",namespace:a,fieldDescriptor:p},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpcPeerConnectionId",queries:{Limit:20,Offset:0,VpcPeerConnectionIds:[]}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["peeringConnectionId"]})),t}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"CBSFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"CBSInstanceAliasList",(function(){return s})),n.d(t,"CBSInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"isValidMetric",(function(){return m})),n.d(t,"CBSGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n(5),o="QCE/BLOCK_STORAGE",a="cbsQuery",c={diskId:"DiskId",InstanceId:"InstanceId",diskname:"DiskName",unInstanceId:"InstanceId"},s=["DiskId","DiskName"],u={instance:"DiskId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DiskIds",enDescriptor:"DiskIds",cnDescriptor:"云硬盘ID",link:"",type:"inputMulti"},{key:"Order",enDescriptor:"Order",cnDescriptor:"排列顺序",link:"",type:"select",list:[{text:"升序排列",value:"ASC"},{text:"降序排列",value:"DESC"}]},{key:"OrderField",enDescriptor:"OrderField",cnDescriptor:"排序的依据字段",link:"",type:"select",list:[{text:"云盘的创建时间排序",value:"CREATE_TIME"},{text:"云盘的到期时间排序",value:"DEADLINE"}]},{key:"ReturnBindAutoSnapshotPolicy",enDescriptor:"ReturnBindAutoSnapshotPolicy",cnDescriptor:"否需要返回云盘绑定的定期快照策略ID",link:"",type:"switch"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/362/16315",namespace:o,fieldDescriptor:l},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DiskId",queries:{Limit:20,Offset:0,DiskIds:[],OrderField:[],Order:[],ReturnBindAutoSnapshotPolicy:!1}};function d(e){return void 0===e&&(e={}),Object(i.d)(e,!1)}function m(e){void 0===e&&(e={});var t=r.get(e,"Dimensions[0].Dimensions");return 1===t.length&&-1!==r.indexOf(t,"diskId")}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNPROVINCEFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"CDNPROVINCEInstanceAliasList",(function(){return c})),n.d(t,"CDNPROVINCEInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"CDNPROVINCEGetInstanceQueryParams",(function(){return p}));var r=n(5),i="QCE/CDN_LOG_DATA",o="cdnProvinceQuery",a={domain:"Domain",projectid:"ProjectId",province:"district",appid:"AppId"},c=["Domain","ProjectId"],s={instance:"Domain"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"origin",enDescriptor:"origin",cnDescriptor:"主源站",link:"",type:"inputMulti"},{key:"domain",enDescriptor:"domain",cnDescriptor:"域名",link:"",type:"inputMulti"},{key:"resourceId",enDescriptor:"resourceId",cnDescriptor:"域名id",link:"",type:"inputMulti"},{key:"status",enDescriptor:"status",cnDescriptor:"域名状态",link:"",type:"select",list:[{text:"online",value:"online"},{text:"offline",value:"offline"},{text:"processing",value:"processing"}]},{key:"serviceType",enDescriptor:"serviceType",cnDescriptor:"业务类型",link:"",type:"select",list:[{text:"web",value:"web"},{text:"download",value:"download"},{text:"media",value:"media"}]},{key:"projectId",enDescriptor:"projectId",cnDescriptor:"项目ID",link:"",type:"inputNumberMulti"},{key:"domainType",enDescriptor:"domainType",cnDescriptor:"主源站类型",link:"",type:"select",list:[{text:"自有源",value:"cname"},{text:"cos接入",value:"cos"}]},{key:"fullUrlCache",enDescriptor:"fullUrlCache",cnDescriptor:"全路径缓存",link:"",type:"select",list:[{text:"打开",value:"on"},{text:"关闭",value:"off"}]},{key:"https",enDescriptor:"https",cnDescriptor:"是否配置https",link:"",type:"select",list:[{text:"on",value:"on"},{text:"off",value:"off"},{text:"processing",value:"processing"}]},{key:"originPullProtocol",enDescriptor:"originPullProtocol",cnDescriptor:"回源协议类型",link:"",type:"select",list:[{text:"http",value:"http"},{text:"follow",value:"follow"},{text:"https",value:"https"}]},{key:"tagKey",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"inputMulti"}],l={region:"ap-guangzhou",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"Domain",isp:"",district:"",queries:{Limit:20,Offset:0,origin:[],domain:[],resourceId:[],status:{},serviceType:{},projectId:[],domainType:{},fullUrlCache:{},https:{},originPullProtocol:{},tagKey:[]}};function p(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"CEIPFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CEIPSUMMARYInstanceAliasList",(function(){return u})),n.d(t,"CEIPInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"queryEditorConfig",(function(){return f})),n.d(t,"CEIPSUMMARYGetInstanceQueryParams",(function(){return m}));var r=n(0),i=n.n(r),o=n(5),a="QCE/CEIP_SUMMARY",c="ceipSummaryQuery",s={vip:"AddressIp",eip:"AddressIp"},u=["AddressId","AddressName","AddressIp"],l={instance:"AddressId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"address-id",enDescriptor:"address-id",cnDescriptor:" EIP 的唯一 ID",link:"",type:"inputMulti"},{key:"address-name",enDescriptor:"address-name",cnDescriptor:"EIP 名称",link:"",type:"inputMulti"},{key:"address-ip",enDescriptor:"address-ip",cnDescriptor:"EIP 的 IP 地址",link:"",type:"inputMulti"},{key:"address-status",enDescriptor:"address-status",cnDescriptor:"EIP 的状态",link:"",type:"select",multiple:!0,list:[{text:"CREATING",value:"CREATING"},{text:"BINDING",value:"BINDING"},{text:"BIND",value:"BIND"},{text:"UNBINDING",value:"UNBINDING"},{text:"UNBIND",value:"UNBIND"},{text:"OFFLINING",value:"OFFLINING"},{text:"BIND_ENI",value:"BIND_ENI"}]},{key:"instance-id",enDescriptor:"instance-id",cnDescriptor:"EIP 绑定的实例 ID",link:"",type:"inputMulti"},{key:"private-ip-address",enDescriptor:"private-ip-address",cnDescriptor:"EIP 绑定的内网 IP ",link:"",type:"inputMulti"},{key:"network-interface-id",enDescriptor:"network-interface-id",cnDescriptor:" EIP 绑定的弹性网卡 ID",link:"",type:"inputMulti"},{key:"is-arrears",enDescriptor:"is-arrears",cnDescriptor:"EIP 是否欠费",link:"",type:"select",multiple:!0,list:[{text:"欠费状态",value:"TRUE"},{text:"费用状态正常",value:"FALSE"}]},{key:"address-isp",enDescriptor:"address-isp",cnDescriptor:"运营商类型",link:"",type:"select",multiple:!0,list:[{text:"BGP",value:"BGP"},{text:"CMCC",value:"CMCC"},{text:"CUCC",value:"CUCC"},{text:"CTCC",value:"CTCC"}]}],f={instanceDocUrl:"https://cloud.tencent.com/document/api/215/16702",namespace:a,fieldDescriptor:p},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"AddressId",queries:{Limit:20,Offset:0,"address-id":[],"address-name":[],"address-ip":[],"address-status":{},"is-arrears":{},"address-isp":{},"instance-id":[],"private-ip-address":[],"network-interface-id":[]}};function m(e){return void 0===e&&(e={}),Object(o.d)(e,!0)}function h(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["eip"]})),t}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceQueryDescriptor",(function(){return o})),n.d(t,"InvalidDemensions",(function(){return c})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"InstanceAliasList",(function(){return p})),n.d(t,"GetInstanceQueryParams",(function(){return a})),n.d(t,"queryMonitorExtraConfg",(function(){return l})),n.d(t,"keyInStorage",(function(){return u}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为10,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:50},{key:"TopicName",enDescriptor:"TopicName",cnDescriptor:"精确匹配TopicName",link:"",type:"input"},{key:"TagKey",enDescriptor:"TagKey",cnDescriptor:"标签搜索",link:"",type:"input"}];function a(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c={topicId:"TopicId"},s={instance:"TopicName",subscription:"SubscriptionId"},u={subscriptionId:"subscriptionId"},l={subscriptionId:{dim_KeyInStorage:u.subscriptionId,dim_KeyInTarget:"subscriptionId",dim_KeyInMap:s.subscription}},p=["TopicName","TopicId"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TopicName",subscriptionId:"",queries:{Offset:0,Limit:20,TopicName:"",TagKey:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"CPMFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CPMInstanceAliasList",(function(){return u})),n.d(t,"CPMInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return f})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"CPMGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/CPM",c="cpmQuery",s={instanceId:"InstanceId"},u=["InstanceId","Name"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DeviceClassCode",enDescriptor:"DeviceClassCode",cnDescriptor:"机型ID",link:"",type:"dropdown"},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"设备ID数组",link:"",type:"inputMulti"},{key:"WanIps",enDescriptor:"WanIps",cnDescriptor:"外网IP数组",link:"",type:"inputMulti"},{key:"LanIps",enDescriptor:"LanIps",cnDescriptor:"内网IP数组",link:"",type:"inputMulti"},{key:"Alias",enDescriptor:"Alias",cnDescriptor:"设备名称",link:"",type:"input"},{key:"VagueIp",enDescriptor:"VagueIp",cnDescriptor:"模糊IP查询",link:"",type:"input"},{key:"AutoRenewFlag",enDescriptor:"AutoRenewFlag",cnDescriptor:"自动续费标志",link:"",type:"select",list:[{text:"不自动续费",value:0},{text:"自动续费",value:1}]},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络唯一ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"子网唯一ID",link:"",type:"input"},{key:"DeviceType",enDescriptor:"DeviceType",cnDescriptor:"子网实例ID",link:"",type:"select",list:[{text:"计算型",value:"compute"},{text:"标准型",value:"standard"},{text:"存储型",value:"storage"}]},{key:"IsLuckyDevice",enDescriptor:"IsLuckyDevice",cnDescriptor:"竞价实例机器过滤",link:"",type:"select",list:[{text:"非竞价实例机器",value:0},{text:"竞价实例的机器",value:1}]}],f={instanceDocUrl:"https://cloud.tencent.com/document/api/386/32904",namespace:a,fieldDescriptor:p},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,DeviceClassCode:"",InstanceIds:[],WanIps:[],LanIps:[],Alias:"",VagueIp:"",AutoRenewFlag:{},VpcId:"",SubnetId:"",DeviceType:{},IsLuckyDevice:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["instanceId"]})),t}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"ECDNFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"ECDNInstanceAliasList",(function(){return c})),n.d(t,"ECDNInvalidDemensions",(function(){return u})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return f})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"ECDNGetInstanceQueryParams",(function(){return d}));var r=n(0),i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o.push({Name:t,Value:Object(r.uniq)(e).slice(0,5)}):Object(r.isObject)(e)&&(Object(r.isEmpty)(Object(r.get)(e,"value",[]))||o.push({Name:t,Value:[Object(r.get)(e,"value",[])].slice(0,5)}))})),o.length>0)return t.Filters=o.map((function(e){return"domain"===e.Name?i(i({},e),{Fuzzy:!0}):e})),t}return t}function m(e){var t=Object(r.cloneDeep)(e);return t.Dimensions.forEach((function(e){e.Dimensions=["domain","projectid"]})),t}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"ECMFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"ECMInstanceAliasList",(function(){return s})),n.d(t,"ECMInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"ECMGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n(5),o="QCE/ECM",a="ecmQuery",c={uuid:"UUID"},s=["InstanceId","InstanceName"],u={instance:"InstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"zone",enDescriptor:"zone",cnDescriptor:"可用区英文标识",link:"",type:"dropdownMulti"},{key:"zone-name",enDescriptor:"zone-name",cnDescriptor:"排列顺序",link:"",type:"inputMulti"},{key:"module-id",enDescriptor:"module-id",cnDescriptor:"模块ID",link:"",type:"inputMulti"},{key:"module-name",enDescriptor:"module-name",cnDescriptor:"模块名称",link:"",type:"inputMulti"},{key:"instance-id",enDescriptor:"instance-id",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"instance-name",enDescriptor:"instance-name",cnDescriptor:"实例名称",link:"",type:"inputMulti"},{key:"ip-address",enDescriptor:"ip-address",cnDescriptor:"内网/公网IP",link:"",type:"inputMulti"},{key:"instance-uuid",enDescriptor:"instance-uuid",cnDescriptor:"实例uuid",link:"",type:"inputMulti"},{key:"instance-state",enDescriptor:"instance-state",cnDescriptor:"实例状态",link:"",type:"select",multiple:!0,list:[{text:"创建中",value:"PENDING"},{text:"创建失败",value:"LAUNCH_FAILED"},{text:"运行中",value:"RUNNING"},{text:"关机",value:"STOPPED"},{text:"开机中",value:"STARTING"},{text:"关机中",value:"STOPPING"},{text:"重启中",value:"REBOOTING"},{text:"停止待销毁",value:"SHUTDOWN"},{text:"销毁中",value:"TERMINATING"}]},{key:"internet-service-provider",enDescriptor:"internet-service-provider",cnDescriptor:"公网IP所属的运营商",link:"",type:"inputMulti"},{key:"instance-family",enDescriptor:"instance-family",cnDescriptor:"机型family",link:"",type:"inputMulti"},{key:"image-id",enDescriptor:"image-id",cnDescriptor:"镜像ID",link:"",type:"inputMulti"},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"实例的vpc id",link:"",type:"inputMulti"},{key:"subnet-id",enDescriptor:"subnet-id",cnDescriptor:"实例的subnet id",link:"",type:"inputMulti"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/1108/42565",namespace:o,fieldDescriptor:l},f={region:"ap-guangzhou",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,zone:[],"zone-name":[],"module-id":[],"module-name":[],"instance-id":[],"instance-name":[],"ip-address":[],"instance-uuid":[],"instance-state":{},"internet-service-provider":[],"instance-family":[],"image-id":[],"vpc-id":[],"subnet-id":[]}};function d(e){return void 0===e&&(e={}),Object(i.d)(e,!0)}function m(e){var t=r.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["UUID"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"PostgresFieldsDescriptor",(function(){return u})),n.d(t,"POSTGRESInstanceAliasList",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return g})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"namespace",(function(){return c})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"PostgreInvalidDemensions",(function(){return h})),n.d(t,"POSTGRESGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n.n(r),o=n(5),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}function l(e){void 0===e&&(e={});var t=i.a.get(e,"Dimensions[0].Dimensions");return 2===t.length&&(-1!==i.a.indexOf(t,"instanceid")&&-1!==i.a.indexOf(t,"insttype")||-1!==i.a.indexOf(t,"InstanceId")&&-1!==i.a.indexOf(t,"InstanceType"))}function p(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return f[e]||e}))})),t}var f={instanceid:"InstanceId",insttype:"InstanceType",region:"Region"},d={instance:"InstanceId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CESFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"CESInstanceAliasList",(function(){return c})),n.d(t,"CESInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"CESGetInstanceQueryParams",(function(){return f}));var r=n(5),i="QCE/CES",o="cesQuery",a={uInstanceId:"InstanceId"},c=["InstanceId","InstanceName"],s={instance:"InstanceId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"集群实例ID列表",link:"",type:"inputMulti"},{key:"InstanceNames",enDescriptor:"InstanceNames",cnDescriptor:"集群实例名称列表",link:"",type:"inputMulti"},{key:"OrderByKey",enDescriptor:"OrderByKey",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"实例ID",value:1},{text:"实例名称",value:2},{text:"可用区",value:3},{text:"创建时间",value:4}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]},{key:"IpList",enDescriptor:"IpList",cnDescriptor:"私有网络vip列表",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/845/30631",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,InstanceIds:[],InstanceNames:[],OrderByKey:{},OrderByType:{},IpList:[]}};function f(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"DCFilterFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return d})),n.d(t,"DCInstanceAliasList",(function(){return f})),n.d(t,"DCInvalidDemensions",(function(){return m})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return u})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"DCGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o=n(5),a="QCE/DC",c="dcQuery",s=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DirectConnectIds",enDescriptor:"DirectConnectIds",cnDescriptor:"物理专线 ID",link:"",type:"inputMulti"}],u={instanceDocUrl:"https://cloud.tencent.com/document/api/216/34826",namespace:a,fieldDescriptor:s},l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DirectConnectId",queries:{Limit:20,Offset:0,DirectConnectIds:[]}};function p(e){return void 0===e&&(e={}),Object(o.d)(e,!1)}var f=["DirectConnectId","DirectConnectName"],d={instance:"DirectConnectId"},m={directConnectId:"DirectConnectId",directconnectid:"DirectConnectId"};function h(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["directConnectId"]})),t}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"DCGFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"DCGInstanceAliasList",(function(){return c})),n.d(t,"DCGInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"DCGGetInstanceQueryParams",(function(){return f}));var r=n(5),i="QCE/DCG",o="dcgQuery",a={directConnectGatewayId:"DirectConnectGatewayId"},c=["DirectConnectGatewayId","DirectConnectGatewayName"],s={instance:"DirectConnectGatewayId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"direct-connect-gateway-id",enDescriptor:"direct-connect-gateway-id",cnDescriptor:"专线网关唯一ID",link:"",type:"inputMulti"},{key:"direct-connect-gateway-name",enDescriptor:"direct-connect-gateway-name",cnDescriptor:"专线网关名称",link:"",type:"inputMulti"},{key:"direct-connect-gateway-ip",enDescriptor:"direct-connect-gateway-ip",cnDescriptor:"专线网关IP",link:"",type:"inputMulti"},{key:"gateway-type",enDescriptor:"gateway-type",cnDescriptor:"网关类型",link:"",type:"select",multiple:!0,list:[{text:"普通型",value:"NORMAL"},{text:"NAT型",value:"NAT"}]},{key:"network-type",enDescriptor:"network-type",cnDescriptor:"网络类型",link:"",type:"select",multiple:!0,list:[{text:"私有网络类型",value:"VPC"},{text:"云联网类型",value:"CCN"}]},{key:"ccn-id",enDescriptor:"ccn-id",cnDescriptor:"专线网关所在云联网ID",link:"",type:"inputMulti"},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"专线网关所在私有网络ID",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/30644",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DirectConnectGatewayId",queries:{Limit:20,Offset:0,"direct-connect-gateway-id":[],"direct-connect-gateway-name":[],"direct-connect-gateway-ip":[],"gateway-type":{},"network-type":{},"ccn-id":[],"vpc-id":[]}};function f(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"DCXFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return m})),n.d(t,"DCXInstanceAliasList",(function(){return d})),n.d(t,"DCXInvalidDemensions",(function(){return h})),n.d(t,"namespace",(function(){return c})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"modifyDimensons",(function(){return g})),n.d(t,"DCXGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n.n(r),o=n(5),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var u=["InstanceId","InstanceName"],l={target:"InstanceId"},p={instance:"InstanceId",replica:"ReplicaSetId"},f={Replica:{dim_KeyInStorage:"ReplicaSets",dim_KeyInTarget:"replica",dim_KeyInMap:"ReplicaSetId",dim_KeyInIns:"ReplicaSetId"},Node:{dim_KeyInStorage:"ReplicaNodeSets",dim_KeyInTarget:"node",dim_KeyInMap:"NodeId",dim_KeyInIns:"NodeId"}};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"QAAPFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"QAAPInstanceAliasList",(function(){return u})),n.d(t,"QAAPInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return f})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"QAAPGetInstanceQueryParams",(function(){return m}));var r=n(0),i=n.n(r),o=n(5),a="QCE/QAAP",c="qaapQuery",s={channelId:"InstanceId"},u=["InstanceId"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ProjectId",enDescriptor:"ProjectId",cnDescriptor:"项目ID",link:"",type:"inputMulti"},{key:"AccessRegion",enDescriptor:"AccessRegion",cnDescriptor:"接入地域",link:"",type:"inputMulti"},{key:"RealServerRegion",enDescriptor:"RealServerRegion",cnDescriptor:"源站地域",link:"",type:"inputMulti"},{key:"GroupId",enDescriptor:"GroupId",cnDescriptor:"通道组ID",link:"",type:"inputMulti"}],f={instanceDocUrl:"https://cloud.tencent.com/document/api/608/36963",namespace:a,fieldDescriptor:p},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,ProjectId:[],AccessRegion:[],RealServerRegion:[],GroupId:[]}};function m(e){return void 0===e&&(e={}),Object(o.d)(e,!0)}function h(e){return i.a.cloneDeep(e)}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"TCAPLUSFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"TCAPLUSInstanceAliasList",(function(){return s})),n.d(t,"TCAPLUSInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"regonsMap",(function(){return m})),n.d(t,"TCAPLUSGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n.n(r),o="QCE/TCAPLUS",a="tcaplusQuery",c={},s=["TableInstanceId","TableName"],u={instance:"TableInstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ClusterId",enDescriptor:"ClusterId",cnDescriptor:"表格所属集群ID",link:"",type:"input"},{key:"TableGroupIds",enDescriptor:"TableGroupIds",cnDescriptor:"表格组ID列表",link:"",type:"inputMulti"},{key:"TableName",enDescriptor:"TableName",cnDescriptor:"表格名称",link:"",type:"input"},{key:"TableInstanceId",enDescriptor:"TableInstanceId",cnDescriptor:"表实例ID",link:"",type:"input"},{key:"TableIdlType",enDescriptor:"TableIdlType",cnDescriptor:"表格描述语言类型",link:"",type:"select",list:[{text:"PROTO",value:"PROTO"},{text:"TDR",value:"TDR"}]},{key:"TableType",enDescriptor:"TableType",cnDescriptor:"表格数据结构类型",link:"",type:"select",list:[{text:"GENERIC",value:"GENERIC"},{text:"LIST",value:"LIST"}]},{key:"ListElementNum",enDescriptor:"ListElementNum",cnDescriptor:"LIST表元素个数",link:"",type:"inputNumber"},{key:"ReservedVolume",enDescriptor:"ReservedVolume",cnDescriptor:"表格预留容量(GB)",link:"",type:"inputNumber"},{key:"ReservedReadQps",enDescriptor:"ReservedReadQps",cnDescriptor:"表格预留读CU",link:"",type:"inputNumber"},{key:"ReservedWriteQps",enDescriptor:"ReservedWriteQps",cnDescriptor:"表格预留写CU",link:"",type:"inputNumber"},{key:"Memo",enDescriptor:"Memo",cnDescriptor:"表格备注信息",link:"",type:"input"},{key:"FileName",enDescriptor:"FileName",cnDescriptor:"Key回档文件名,回档专用",link:"",type:"input"},{key:"FileExtType",enDescriptor:"FileExtType",cnDescriptor:"Key回档文件扩展名,回档专用",link:"",type:"input"},{key:"FileSize",enDescriptor:"FileSize",cnDescriptor:"Key回档文件大小,回档专用",link:"",type:"inputNumber"},{key:"FileContent",enDescriptor:"FileContent",cnDescriptor:"Key回档文件内容,回档专用",link:"",type:"input"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/596/39664",namespace:o,fieldDescriptor:l},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TableInstanceId",queries:{Limit:20,Offset:0,ClusterId:"",TableGroupIds:[],TableName:"",TableInstanceId:"",TableIdlType:{},TableType:{},ListElementNum:null,ReservedVolume:null,ReservedReadQps:null,ReservedWriteQps:null,Memo:"",FileName:"",FileExtType:"",FileSize:null,FileContent:""}};function d(e){void 0===e&&(e={});var t={};t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,t.ClusterId=i.a.get(e,"ClusterId","")||"",t.TableGroupIds=i.a.get(e,"TableGroupIds",[])||[],e=i.a.omit(e,["Offset","Limit","TableGroupIds","ClusterId"]);var n=[];return i.a.forEach(e,(function(e,t){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(n[t]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(n[t]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(n[t]=e)})),t.SelectedTables=n,t}var m={"ap-beijing":"华北地区(北京)","ap-guangzhou":"华南地区(广州)","ap-hongkong":"港澳台地区(中国香港)","ap-seoul":"亚太东北(首尔)","ap-shanghai":"华东地区(上海)","ap-singapore":"亚太东南(新加坡)","ap-tokyo":"亚太东北(东京)","eu-frankfurt":"欧洲地区(法兰克福)","na-ashburn":"美国东部(弗吉尼亚)","na-siliconvalley":"美国西部(硅谷)"};t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"VBCFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VBCInstanceAliasList",(function(){return c})),n.d(t,"VBCInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VBCGetInstanceQueryParams",(function(){return f}));var r=n(5),i="QCE/VBC",o="vbcQuery",a={},c=["CcnId","CcnName"],s={instance:"CcnId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ccn-id",enDescriptor:"ccn-id",cnDescriptor:"CCN实例ID",link:"",type:"inputMulti"},{key:"ccn-name",enDescriptor:"ccn-name",cnDescriptor:"CCN名称",link:"",type:"inputMulti"},{key:"ccn-description",enDescriptor:"ccn-description",cnDescriptor:"CCN描述",link:"",type:"inputMulti"},{key:"state",enDescriptor:"state",cnDescriptor:"实例状态",link:"",type:"select",multiple:!0,list:[{text:"隔离中",value:"ISOLATED"},{text:"运行中",value:"AVAILABLE"}]}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/19199",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"CcnId",DRegion:"",SRegion:"",queries:{Limit:20,Offset:0,"ccn-id":[],"ccn-name":[],"ccn-description":[],state:{}}};function f(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"VPNGWFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VPNGWInstanceAliasList",(function(){return c})),n.d(t,"VPNGWInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VPNGWGetInstanceQueryParams",(function(){return f}));var r=n(5),i="QCE/VPNGW",o="vpngwQuery",a={vpnGwId:"VpnGatewayId"},c=["VpnGatewayId","VpnGatewayName"],s={instance:"VpnGatewayId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"VPC实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-id",enDescriptor:"vpn-gateway-id",cnDescriptor:"VPN实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-name",enDescriptor:"vpn-gateway-name",cnDescriptor:"VPN实例名称",link:"",type:"inputMulti"},{key:"type",enDescriptor:"type",cnDescriptor:"VPN网关类型",link:"",type:"select",multiple:!0,list:[{text:"IPSEC",value:"IPSEC"},{text:"SSL",value:"SSL"}]},{key:"public-ip-address",enDescriptor:"public-ip-address",cnDescriptor:"公网IP",link:"",type:"inputMulti"},{key:"renew-flag",enDescriptor:"renew-flag",cnDescriptor:"网关续费类型",link:"",type:"select",multiple:!0,list:[{text:"手动续费",value:"NOTIFY_AND_MANUAL_RENEW"},{text:"自动续费",value:"NOTIFY_AND_AUTO_RENEW"}]},{key:"zone",enDescriptor:"zone",cnDescriptor:"VPN所在可用区",link:"",type:"dropdownMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/17514",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpnGatewayId",queries:{Limit:20,Offset:0,"vpc-id":[],"vpn-gateway-id":[],"vpn-gateway-name":[],type:{},"public-ip-address":[],"renew-flag":{},zone:[]}};function f(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"VPNXFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VPNXInstanceAliasList",(function(){return c})),n.d(t,"VPNXInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VPNXGetInstanceQueryParams",(function(){return f}));var r=n(5),i="QCE/VPNX",o="vpnxQuery",a={vpnConnId:"VpnConnectionId"},c=["VpnConnectionId","VpnConnectionName"],s={instance:"VpnConnectionId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"VPC实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-id",enDescriptor:"vpn-gateway-id",cnDescriptor:"VPN实例ID",link:"",type:"inputMulti"},{key:"customer-gateway-id ",enDescriptor:"customer-gateway-id ",cnDescriptor:"对端网关实例ID",link:"",type:"inputMulti"},{key:"vpn-connection-name",enDescriptor:"vpn-connection-name",cnDescriptor:"通道名称",link:"",type:"inputMulti"},{key:"vpn-connection-id",enDescriptor:"vpn-connection-id",cnDescriptor:"通道实例ID",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/17515",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpnConnectionId",queries:{Limit:20,Offset:0,"vpc-id":[],"vpn-gateway-id":[],"customer-gateway-id":[],"vpn-connection-name":[],"vpn-connection-id":[]}};function f(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"LighthouseFilterFieldsDescriptor",(function(){return a})),n.d(t,"LIGHTHOUSEInstanceAliasList",(function(){return u})),n.d(t,"LighthouseInvalidDemensions",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"modifyDimensons",(function(){return f})),n.d(t,"LIGHTHOUSEGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["InstanceId","InstanceName","PrivateIpAddresses","PublicIpAddresses"],l={instanceid:"InstanceId"},p={instance:"InstanceId"};function f(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CFSQueryDescriptor",(function(){return o})),n.d(t,"CFSInstanceAliasList",(function(){return s})),n.d(t,"CFSInvalidDemensions",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"regionSupported",(function(){return l})),n.d(t,"CFSGetInstanceQueryParams",(function(){return c}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"FileSystemId",enDescriptor:"File System Id",cnDescriptor:"文件系统 ID",link:"",type:"input"},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络(VPC) ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"子网 ID",link:"",type:"input"}],a={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"FileSystemId",version:"",queries:{Offset:0,Limit:20,FileSystemId:"",VpcId:"",SubnetId:""}};function c(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["FileSystemId","FsName"],u={},l=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-nanjing"},{value:"ap-seoul"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-siliconvalley"},{value:"na-toronto"}],p={instance:"InstanceId"};t.default=a},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceQueryDescriptor",(function(){return o})),n.d(t,"InvalidDemensions",(function(){return c})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"InstanceAliasList",(function(){return u})),n.d(t,"GetInstanceQueryParams",(function(){return a}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为10,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:50},{key:"QueueName",enDescriptor:"QueueName",cnDescriptor:"精确匹配QueueName",link:"",type:"input"},{key:"TagKey",enDescriptor:"TagKey",cnDescriptor:"标签搜索",link:"",type:"input"}];function a(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c={queueId:"QueueId",queueName:"QueueName"},s={instance:"QueueName"},u=["QueueName","QueueId"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"QueueName",queries:{Offset:0,Limit:20,QueueName:"",TagKey:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"CVMFilterFieldsDescriptor",(function(){return a})),n.d(t,"CVMInstanceAliasList",(function(){return u})),n.d(t,"isValidMetric",(function(){return f})),n.d(t,"modifyDimensons",(function(){return d})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"CVMGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["InstanceId","InstanceName","PrivateIpAddresses","PublicIpAddresses"],l=["CPUUsage","CpuLoadavg","Cpuloadavg5m","Cpuloadavg15m","BaseCpuUsage","GpuMemTotal","GpuMemUsage","GpuMemUsed","GpuPowDraw","GpuPowLimit","GpuPowUsage","GpuTemp","GpuUtil","LanOuttraffic","LanIntraffic","LanOutpkg","LanInpkg","WanOuttraffic","WanIntraffic","WanOutpkg","WanInpkg","AccOuttraffic","TcpCurrEstab","TimeOffset","MemUsed","MemUsage","CvmDiskUsage","BaseCpuUsage","VmDiskReadIops"],p={instance:"InstanceId"};function f(e){var t=i.a.map(l,i.a.toUpper);return-1!==i.a.indexOf(t,i.a.toUpper(e.MetricName))}function d(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"PCXInstanceAliasList",(function(){return u})),n.d(t,"PCXFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"namespace",(function(){return a})),n.d(t,"PCXGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisFieldsDescriptor",(function(){return a})),n.d(t,"RedisInvalidDemensions",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return f})),n.d(t,"REDISInstanceAliasList",(function(){return l})),n.d(t,"isValidMetric",(function(){return u})),n.d(t,"REDISGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}function u(e){void 0===e&&(e={});var t=i.a.get(e,"Dimensions[0].Dimensions");return 1===t.length&&-1!==i.a.indexOf(t,"instanceid")}var l=["InstanceId","InstanceName","WanIp"],p={redis_uuid:"InstanceId",instanceid:"InstanceId"},f={instance:"InstanceId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"TSFInvalidDemensions",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"TSFInstanceAliasList",(function(){return c})),n.d(t,"TSFFieldsDescriptor",(function(){return i})),n.d(t,"TSFGetInstanceQueryParams",(function(){return a}));var r=n(5),i=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"SearchWord",enDescriptor:"SearchWord",cnDescriptor:"搜索关键字",link:"",type:"input"},{key:"ApplicationIdList",enDescriptor:"ApplicationIdList",cnDescriptor:"应用ID 组成的数组",link:"",type:"inputmulti"},{key:"ApplicationType",enDescriptor:"ApplicationType",cnDescriptor:"应用类型",link:"",type:"select",list:[{text:"所有",value:""},{text:"容器应用",value:"C"},{text:"普通应用/虚拟机应用",value:"V"}]},{key:"MicroserviceType",enDescriptor:"MicroserviceType",cnDescriptor:"应用的微服务类型",link:"",type:"select",list:[{text:"所有",value:""},{text:"普通应用",value:"N"},{text:"Mesh应用",value:"M"},{text:"微服务网关应用",value:"G"},{text:"原生应用",value:"NATIVE"}]},{key:"ApplicationResourceTypeList",enDescriptor:"ApplicationResourceTypeList",cnDescriptor:"应用资源类型数组",link:"",type:"select",multiple:!0,list:[{text:"默认资源类型",value:"DEF"},{text:"微服务网关资源",value:"GW"}]}],o={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ApplicationId",queries:{Limit:20,Offset:0,SearchWord:"",OrderBy:"",OrderType:null,ApplicationType:"",MicroserviceType:"",ApplicationResourceTypeList:[],ApplicationIdList:[]}};function a(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var c=["ApplicationId","ApplicationName"],s={applicationid:"ApplicationId"},u={instance:"ApplicationId"};t.default=o},function(e,t,n){"use strict";n.r(t),n.d(t,"BWPFilterFieldsDescriptor",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BWPInstanceAliasList",(function(){return u})),n.d(t,"BWPInvalidDemensions",(function(){return p})),n.d(t,"BWPGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.BandwidthPackageIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["BandwidthPackageId","BandwidthPackageName"],l={instance:"BandwidthPackageId"},p={bandwidthPackageId:"BandwidthPackageId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNFilterFieldsDescriptor",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"CDNInstanceAliasList",(function(){return u})),n.d(t,"CDNInvalidDemensions",(function(){return l})),n.d(t,"CDNGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&n.push({Name:t,Value:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||n.push({Name:t,Value:i.a.get(e,"value",[]).slice(0,5)}))})),n.length>0&&(t.Filters=n)}return t}var u=["Domain","ProjectId"],l={projectId:"ProjectId",domain:"Domain"},p={instance:"Domain"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"LBFilterDescriptor",(function(){return a})),n.d(t,"LBInstanceAliasList",(function(){return u})),n.d(t,"LBInvalidDemensions",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"LBGetInstanceQueryParams",(function(){return s}));var r,i=n(0),o=n.n(i),a=[{key:"address-id",enDescriptor:"Address ID",cnDescriptor:"EIP 的唯一 ID ",link:"",type:"inputmulti"},{key:"address-name",enDescriptor:"Address Name",cnDescriptor:"EIP 名称 ",link:"",type:"inputmulti"},{key:"address-ip",enDescriptor:"Address IP",cnDescriptor:"EIP 的 IP 地址 ",link:"",type:"inputmulti"},{key:"address-status",enDescriptor:"Address Status",cnDescriptor:"EIP 的状态",link:"",type:"select",list:[{value:"CREATING",text:"CREATING"},{value:"BINDING",text:"BINDING"},{value:"BIND",text:"BIND"},{value:"UNBINDING",text:"UNBINDING"},{value:"UNBIND",text:"UNBIND"},{value:"OFFLINING",text:"OFFLINING"},{value:"BIND_ENI",text:"BIND_ENI"}]},{key:"instance-id",enDescriptor:"Instance ID",cnDescriptor:"实例ID ",link:"",type:"inputmulti"},{key:"private-ip-address",enDescriptor:"Private IP Address",cnDescriptor:"EIP 绑定的内网 IP",link:"",type:"inputmulti"},{key:"network-interface-id",enDescriptor:"Network Interface ID",cnDescriptor:"EIP 绑定的弹性网卡 ID",link:"",type:"inputmulti"},{key:"is-arrears",enDescriptor:"Arrears",cnDescriptor:"EIP 是否欠费 ",link:"",type:"select",list:[{text:"正常",value:"FALSE"},{text:"欠费",value:"TRUE"}]}],c={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"AddressId",version:"",queries:(r={Offset:0,Limit:20},r.AddressIds=[""],r.Filters={"address-id":[],"address-name":[],"address-ip":[],"address-status ":[],"instance-id ":[],"private-ip-address":[],"network-interface-id ":[],"is-arrears ":[]},r)};function s(e){void 0===e&&(e={});var t={};if(!o.a.isEmpty(e))if(t.Limit=o.a.get(e,"Limit",20)||20,t.Offset=o.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(o.a.isArray(e.AddressIds)){var n=o.a.compact(e.AddressIds);o.a.uniq(n).length>0&&(t.AddressIds=o.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];o.a.forEach(e.Filters,(function(e,t){r.length>9||(o.a.isArray(e)?(e=o.a.compact(e)).length>0&&r.push({Name:t,Values:o.a.uniq(e).slice(0,5)}):o.a.isObject(e)&&(o.a.isEmpty(o.a.get(e,"value",[]))||r.push({Name:t,Values:o.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["AddressId","AddressName","AddressIp"],l={eip:"AddressIp"},p={instance:"AddressId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"NATGatewayFilterFieldsDescriptor",(function(){return c})),n.d(t,"NATGATEWAYInstanceAliasList",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"NATInvalidDemensions",(function(){return p})),n.d(t,"NATGATEWAYGetInstanceQueryParams",(function(){return u}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var l={instance:"NatGatewayId"},p={natId:"NatGatewayId"};t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"OVCDNFilterFieldsDescriptor",(function(){return a})),n.d(t,"OVCDNInstanceAliasList",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"OVCDNInvalidDemensions",(function(){return l})),n.d(t,"OVCDNGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&n.push({Name:t,Value:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||n.push({Name:t,Value:i.a.get(e,"value",[]).slice(0,5)}))})),n.length>0&&(t.Filters=n)}return t}var u=["Domain","ResourceId"],l={projectId:"ProjectId",domain:"Domain"},p={instance:"Domain"};t.default=c},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function i(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}},function(e,t){e.exports=c},function(e,t){e.exports=s},function(e,t,n){"use strict";var r=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}(),i=n(214),o=n(211),a=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}();n.d(t,"a",(function(){return c}));var c=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}var t;return e.prototype.unsubscribe=function(){var t;if(!this.closed){var n=this._parentOrParents,c=this._ctorUnsubscribe,u=this._unsubscribe,l=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var p=0;p0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}t.default=o},function(e,t,n){"use strict";n.r(t);var r,i=n(23),o=n(3),a=n(2),c=n(5),s=n(9),u=n(1),l=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},f=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?k.map((function(e){return{TopicId:e.TopicId,TopicName:e.TopicName}})):I,PartitionList:C.length>0?C:w}]}}))}))},t.prototype.formatTopicVarDisplay=function(e,t,n){var r=this;return t?t.replace(/\$\{(\w+)\}/g,(function(t,n){return n&&r.TopicAliasList.includes(n)?r.getAliasValue(e,n):""})):this.getAliasValue(e,n)},t.prototype.fetchMetricData=function(e,t,n,r){return f(this,void 0,void 0,(function(){var i,o,a,c,s,p,f,m,h,g=this;return d(this,(function(d){switch(d.label){case 0:return i=r.topicalias,o=r.groupname,a=r.topicid,[4,this.getConsumerGroups(t,{InstanceId:n.InstanceId,groupname:o,topicid:a})];case 1:return c=d.sent(),s=r.display,p=c.TopicList,f=c.GroupList,m=c.PartitionList,i=this.TopicAliasList.includes(i)?i:this.templateQueryIdMap.topicId,h={GroupList:f.map((function(e){return e._InstanceAliasValue=e.GroupName,{text:e.GroupName,value:e[u.templateQueryIdMap.groupName]}})),TopicList:p.map((function(e){var t=g.formatTopicVarDisplay(e,s,i);return e._InstanceAliasValue=t||e[u.templateQueryIdMap.topicId],{text:t||e[u.templateQueryIdMap.topicId],value:e[u.templateQueryIdMap.topicId],TopicName:e.TopicName}})),PartitionList:m.map((function(e){return e._InstanceAliasValue=e[u.templateQueryIdMap.partition],{text:e[u.templateQueryIdMap.partition],value:e[u.templateQueryIdMap.partition]}}))},[4,l.a.setExtraStorage(this.service,this.keyInStorage.TopicList,p)];case 2:return d.sent(),[4,l.a.setExtraStorage(this.service,this.keyInStorage.GroupList,f)];case 3:return d.sent(),[4,l.a.setExtraStorage(this.service,this.keyInStorage.PartitionList,m)];case 4:switch(d.sent(),e){case"DescribeTopicList":return[2,h.TopicList];case"DescribeGroup":return[2,h.GroupList];case"DescribePartion":return[2,h.PartitionList];default:return[2,[]]}return[2]}}))}))},t}(s.BaseDatasource);t.default=m},function(e,t,n){"use strict";n.r(t);var r,i=n(12),o=n(3),a=n(0),c=n.n(a),s=n(2),u=n(5),l=n(9),p=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),f=function(){return(f=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=i)return r;var o=Object(s.k)(i,50),a=[];return c.a.forEach(o,(function(t){a.push(n.getInstances(e,t))})),Promise.all(a).then((function(e){return c.a.forEach(e,(function(e){r=c.a.concat(r,e)})),r})).catch((function(e){return r}))}))},t.prototype.getVpcId=function(e,t){void 0===t&&(t={}),(t=l({Offset:0,Limit:20},t)).Offset=String(t.Offset),t.Limit=String(t.Limit);var n=Object(s.e)(e,"vpc");return this.doRequest({url:this.url+n.path,data:t},n.service,{region:e,action:"DescribeVpcs"}).then((function(e){return c.a.map(e.VpcSet||[],(function(e){return{text:e.VpcId,value:e.VpcId}}))}))},t.prototype.getVpcIds=function(e){var t=this,n=[],r={Offset:0,Limit:100};r.Offset=String(r.Offset),r.Limit=String(r.Limit);var i=Object(s.e)(e,"vpc");return this.doRequest({url:this.url+i.path,data:r},i.service,{region:e,action:"DescribeVpcs"}).then((function(r){n=c.a.map(r.VpcSet||[],(function(e){return{text:e.VpcId,value:e.VpcId}}));var i=r.TotalCount||0;if(n.length>=i)return n;var o=Object(s.k)(i,100),a=[];return c.a.forEach(o,(function(n){a.push(t.getVpcId(e,n))})),Promise.all(a).then((function(e){return c.a.forEach(e,(function(e){n=c.a.concat(n,e)})),n})).catch((function(e){return n}))}))},t.prototype.doRequestV2=function(e,t,n){return void 0===n&&(n={}),p(this,void 0,void 0,(function(){return f(this,(function(r){switch(r.label){case 0:return[4,Object(s.d)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return c.a.get(e,"data",{})})).catch((function(e){throw e}))]}}))}))},t}(o.BaseDatasource);t.default=d},function(e,t,n){"use strict";n.r(t);var r,i=n(41),o=n(3),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.Namespace=i.namespace,o.InstanceAliasList=i.POSTGRESInstanceAliasList,o.InvalidDimensions=i.PostgreInvalidDemensions,o.templateQueryIdMap=i.templateQueryIdMap,o.InstanceReqConfig={service:"postgres",action:"DescribeDBInstances",responseField:"DBInstanceSet"},o.MetricReqConfig={resultFilter:i.modifyDimensons},o}return a(t,e),t}(o.BaseDatasource);t.default=c},function(e,t,n){"use strict";n.r(t);var r,i=n(0),o=n(51),a=n(3),c=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?"_".concat(r.timeshift):"";return{target:"".concat(e.MetricName," - ").concat(o).concat(a),datapoints:Object(i.map)(t.Values,(function(e){return[e.Value,1e3*e.Timestamp+f]}))}}))})))}))},t}(c.BaseDatasource);t.default=p},function(e,t,n){"use strict";n.r(t);var r,i=n(62),o=n(3),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.Namespace="QCE/TSF",o.InstanceAliasList=i.TSFInstanceAliasList,o.InvalidDimensions=i.TSFInvalidDemensions,o.templateQueryIdMap=i.templateQueryIdMap,o.InstanceReqConfig={service:"tsf",action:"DescribeApplications",responseField:"Content"},o}return a(t,e),t}(o.BaseDatasource);t.default=c},function(e,t,n){"use strict";n.r(t);var r,i=n(25),o=n(3),a=n(0),c=n.n(a),s=n(2),u=n(1),l=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},f=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,l)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(31);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(32);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(33);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"BWPQueryCtrl",(function(){return a})),n.d(t,"bwpQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(63),a=function(){function e(e,t){e.init=function(){e.BWPFilterFieldsDescriptor=o.BWPFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("bwpQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(34);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"CDBQueryCtrl",(function(){return a})),n.d(t,"cdbQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(44),a=function(){function e(e,t){e.init=function(){e.CDBFieldsDescriptor=o.CDBFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"ZoneIds":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cdb",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cdbQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNQueryCtrl",(function(){return a})),n.d(t,"cdnQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(64),a=function(){function e(e,t){e.init=function(){e.CDNFilterFieldsDescriptor=o.CDNFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cdnQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return l})),n.d(t,"sQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(35),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,p)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(36);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(45);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(57),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n \n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cfsQuery",u)},function(e,t,n){"use strict";n.r(t),n.d(t,"CKAFKAQueryCtrl",(function(){return l})),n.d(t,"scfQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(11),a=n(5),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 主题,消费分组,分区 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n \n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"=",instance:"="},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("ckafkaQuery",p)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(0),a=n(12),c=n(2),s=n(5),u=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},l=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n\x3c!--Listener维度部分--\x3e\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n');function d(){return{template:f,controller:p,restrict:"E",scope:{target:"=",namespace:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("clbQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return a})),n.d(t,"sQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(29),a=function(){function e(e,t){e.init=function(){e.GSEFilterFieldsDescriptor=o.CLSFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n \n
\n
\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(58);Object(r.default)("cmqQuery",{fieldDescriptor:i.InstanceQueryDescriptor,instanceDocUrl:"https://cloud.tencent.com/document/api/406/42624",namespace:"QCE/CMQ"})},function(e,t,n){"use strict";n.r(t),n.d(t,"CmqTopicQueryCtrl",(function(){return u})),n.d(t,"scfQuery",(function(){return l}));var r=n(6),i=n.n(r),o=n(37),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 主题的ui --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n \n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("cmqTopicQuery",l)},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceAliasList",(function(){return a})),n.d(t,"GetInstanceQueryParams",(function(){return o}));var r=n(0),i=n.n(r);function o(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var a=["BucketName"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"BucketName",queries:{}}},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(38);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"CVMQueryCtrl",(function(){return a})),n.d(t,"cvmQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(59),a=function(){function e(e,t){e.init=function(){e.CVMFilterFieldsDescriptor=o.CVMFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cvmQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(27);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(46);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return f}));var r=n(6),i=n.n(r),o=n(16),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,f)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(47);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(48);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(39);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(40);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return s})),n.d(t,"sQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(21),a=n(2),c=[{label:"diskId",field:"diskId"}],s=function(){function e(e,t){e.init=function(){e.ECMBLOCKSTORAGEFilterFieldsDescriptor=o.ECMBLOCKSTORAGEFilterFieldsDescriptor,e.ExtraFields=c,e.namespace=o.namespace},e.getExtraFields=function(){return c.filter((function(t){var n,r;return t.field in(null!==(n=e.dims)&&void 0!==n?n:{})||t.label in(null!==(r=e.dims)&&void 0!==r?r:{})}))},e.getExtraDropdown=function(t,n){var r=t.instance,i=Object(a.f)(e.namespace);r=e.datasource.getServiceFn(i,"getVariable")(r);try{return(r=JSON.parse(r)).DataDisks.map((function(e){return e._InstanceAliasValue=e[o.templateQueryIdMap.diskId],{text:e[o.templateQueryIdMap.diskId],value:JSON.stringify(e)}}))}catch(t){var c={InstanceId:r};return e.datasource.getServiceFn(i,"getDiskList")({payload:c}).map((function(e){return{text:e[o.templateQueryIdMap.diskId],value:JSON.stringify(e)}}))}},e.init()}return e.$inject=["$scope","$rootScope"],e}();function u(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(49);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return f}));var r=n(6),i=n.n(r),o=n(15),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,f)},function(e,t,n){"use strict";n.r(t),n.d(t,"LBQueryCtrl",(function(){return a})),n.d(t,"lbQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(65),a=function(){function e(e,t){e.init=function(){e.LBFilterDescriptor=o.LBFilterDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n\n\x3c!--Filters部分--\x3e\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("lbQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"LighthouseQueryCtrl",(function(){return a})),n.d(t,"lighthouseQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(56),a=function(){function e(e,t){e.init=function(){e.LighthouseFilterFieldsDescriptor=o.LighthouseFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("lighthouse",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("lighthouseQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"MongoDBQueryCtrl",(function(){return p})),n.d(t,"mongodbQuery",(function(){return f}));var r=n(6),i=n.n(r),o=n(0),a=n(50),c=n(2),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onRefresh:"&",onChange:"&"},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("mongodbQuery",f)},function(e,t,n){"use strict";n.r(t),n.d(t,"MrQueryCtrl",(function(){return u})),n.d(t,"mrQuery",(function(){return l}));var r=n(24),i=n(6),o=n.n(i),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\x3c!-- 主题的ui --\x3e\n
\n
\n
\n \n
\n\n \n \n
\n
\n
\n
\n\n \n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}o.a.directive("mrQuery",l)},function(e,t,n){"use strict";n.r(t),n.d(t,"NatGatewayQueryCtrl",(function(){return a})),n.d(t,"natGatewayQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(66),a=function(){function e(e,t){e.init=function(){e.NATGatewayFilterFieldsDescriptor=o.NATGatewayFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(e){return[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("natGatewayQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"OVCDNQueryCtrl",(function(){return a})),n.d(t,"ovCdnQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(67),a=function(){function e(e,t){e.init=function(){e.OVCDNFilterFieldsDescriptor=o.OVCDNFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("ovCdnQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"PCXQueryCtrl",(function(){return a})),n.d(t,"pcxQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(60),a=function(){function e(e,t){e.init=function(){e.PCXFieldsDescriptor=o.PCXFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"vpcId":return e.getVpcIds();default:return[]}},e.getVpcIds=function(){return e.region?e.datasource.getVpcIds("pcx",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("pcxQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(41);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(51);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisQueryCtrl",(function(){return a})),n.d(t,"redisQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(61),a=function(){function e(e,t){e.init=function(){e.RedisFieldsDescriptor=o.RedisFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(e){return[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("redisQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisMemQueryCtrl",(function(){return l})),n.d(t,"redisMemQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(0),a=n(17),c=n(2),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("redisMemQuery",p)},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(28),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- version部分 --\x3e\n
\n
\n \n
\n \n \n
\n
\n
\n\n \n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&"}}}i.a.directive("scfQuery",u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(30);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(52);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return f}));var r=n(6),i=n.n(r),o=n(13),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,f)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return f}));var r=n(6),i=n.n(r),o=n(18),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("tdmqRabbitmqQuery",f)},function(e,t,n){"use strict";n.r(t),n.d(t,"TdmqRocketmqQueryCtrl",(function(){return p})),n.d(t,"tdmqRocketmqQuery",(function(){return f}));var r=n(6),i=n.n(r),o=n(19),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("tdmqRocketmqQuery",f)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return c})),n.d(t,"sQuery",(function(){return s}));var r=n(6),i=n.n(r),o=n(0),a=n(74),c=function(){function e(e,t){e.init=function(){e.TKEFilterFieldsDescriptor=a.TKEFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.addCondition=function(){e.target.conditions.push({Key:"",Operator:"=",Value:""})},e.deleteCondition=function(t){var n=e.target.conditions[t];Object(o.isEmpty)(n.Key)||Object(o.isEmpty)(n.Operator)||Object(o.isEmpty)(n.Value)?e.target.conditions.splice(t,1):(e.target.conditions.splice(t,1),e.onRefresh())},e.getOperator=function(){return Promise.resolve([{text:"=",value:"="},{text:"in",value:"in"}])},e.init()}return e.$inject=["$scope","$rootScope"],e}();function s(){return{template:'\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n \n \n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n',controller:c,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("tkeQuery",s)},function(e,t,n){"use strict";n.r(t),n.d(t,"TSFQueryCtrl",(function(){return a})),n.d(t,"tsfQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(62),a=function(){function e(e,t){e.init=function(){e.TSFFieldsDescriptor=o.TSFFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n
\n \n
\n
\n \n \n \n \n \n
\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("tsfQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(25);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"VBCQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(53),a=n(2),c=[],s=function(){function e(e,t){e.init=function(){e.VBCFilterFieldsDescriptor=o.VBCFilterFieldsDescriptor,e.namespace=o.namespace},e.getExtraFields=function(){return c.filter((function(t){var n;return t.field in(null!==(n=e.dims)&&void 0!==n?n:{})}))},e.getExtraDropdown=function(t){var n=Object(a.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t})},e.init()}return e.$inject=["$scope","$rootScope"],e}();function u(){return{template:'\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("vbcQuery",u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(42);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(54);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(55);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(43);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){var r={".":20,"./":20,"./MonitorDatasource":188,"./MonitorDatasource.ts":188,"./_base/datasource":3,"./_base/datasource.ts":3,"./_base/query":7,"./_base/query.ts":7,"./_base/query_filter":195,"./_base/query_filter.ts":195,"./_base/types":196,"./_base/types.ts":196,"./apigateway/datasource":75,"./apigateway/datasource.ts":75,"./apigateway/query":131,"./apigateway/query.ts":131,"./apigateway/query_def":23,"./apigateway/query_def.ts":23,"./bmIntraLb/datasource":76,"./bmIntraLb/datasource.ts":76,"./bmIntraLb/query":132,"./bmIntraLb/query.ts":132,"./bmIntraLb/query_def":31,"./bmIntraLb/query_def.ts":31,"./bm_lb/datasource":77,"./bm_lb/datasource.ts":77,"./bm_lb/query":133,"./bm_lb/query.ts":133,"./bm_lb/query_def":32,"./bm_lb/query_def.ts":32,"./bm_pcx/datasource":78,"./bm_pcx/datasource.ts":78,"./bm_pcx/query":134,"./bm_pcx/query.ts":134,"./bm_pcx/query_def":33,"./bm_pcx/query_def.ts":33,"./bwp/datasource":79,"./bwp/datasource.ts":79,"./bwp/query":135,"./bwp/query.ts":135,"./bwp/query_def":63,"./bwp/query_def.ts":63,"./cbs/datasource":80,"./cbs/datasource.ts":80,"./cbs/query":136,"./cbs/query.ts":136,"./cbs/query_def":34,"./cbs/query_def.ts":34,"./cdb/datasource":81,"./cdb/datasource.ts":81,"./cdb/query":137,"./cdb/query.ts":137,"./cdb/query_def":44,"./cdb/query_def.ts":44,"./cdn/datasource":82,"./cdn/datasource.ts":82,"./cdn/query":138,"./cdn/query.ts":138,"./cdn/query_def":64,"./cdn/query_def.ts":64,"./cdn_province/datasource":83,"./cdn_province/datasource.ts":83,"./cdn_province/query":139,"./cdn_province/query.ts":139,"./cdn_province/query_def":35,"./cdn_province/query_def.ts":35,"./ceip_summary/datasource":84,"./ceip_summary/datasource.ts":84,"./ceip_summary/query":140,"./ceip_summary/query.ts":140,"./ceip_summary/query_def":36,"./ceip_summary/query_def.ts":36,"./ces/datasource":85,"./ces/datasource.ts":85,"./ces/query":141,"./ces/query.ts":141,"./ces/query_def":45,"./ces/query_def.ts":45,"./cfs/datasource":86,"./cfs/datasource.ts":86,"./cfs/query":142,"./cfs/query.ts":142,"./cfs/query_def":57,"./cfs/query_def.ts":57,"./ckafka/datasource":87,"./ckafka/datasource.ts":87,"./ckafka/query":143,"./ckafka/query.ts":143,"./ckafka/query_def":11,"./ckafka/query_def.ts":11,"./clb/datasource":88,"./clb/datasource.ts":88,"./clb/query":144,"./clb/query.ts":144,"./clb/query_def":12,"./clb/query_def.ts":12,"./cls/datasource":89,"./cls/datasource.ts":89,"./cls/query":145,"./cls/query.ts":145,"./cls/query_def":29,"./cls/query_def.ts":29,"./cmq/datasource":90,"./cmq/datasource.ts":90,"./cmq/query":146,"./cmq/query.ts":146,"./cmq/query_def":58,"./cmq/query_def.ts":58,"./cmq_topic/datasource":91,"./cmq_topic/datasource.ts":91,"./cmq_topic/query":147,"./cmq_topic/query.ts":147,"./cmq_topic/query_def":37,"./cmq_topic/query_def.ts":37,"./cos/datasource":92,"./cos/datasource.ts":92,"./cos/query_def":148,"./cos/query_def.ts":148,"./cpm/datasource":93,"./cpm/datasource.ts":93,"./cpm/query":149,"./cpm/query.ts":149,"./cpm/query_def":38,"./cpm/query_def.ts":38,"./cvm/datasource":94,"./cvm/datasource.ts":94,"./cvm/query":150,"./cvm/query.ts":150,"./cvm/query_def":59,"./cvm/query_def.ts":59,"./cynosdb_mysql/datasource":95,"./cynosdb_mysql/datasource.ts":95,"./cynosdb_mysql/query":151,"./cynosdb_mysql/query.ts":151,"./cynosdb_mysql/query_def":27,"./cynosdb_mysql/query_def.ts":27,"./dc/datasource":96,"./dc/datasource.ts":96,"./dc/query":152,"./dc/query.ts":152,"./dc/query_def":46,"./dc/query_def.ts":46,"./dcdb/datasource":97,"./dcdb/datasource.ts":97,"./dcdb/query":153,"./dcdb/query.ts":153,"./dcdb/query_def":16,"./dcdb/query_def.ts":16,"./dcg/datasource":98,"./dcg/datasource.ts":98,"./dcg/query":154,"./dcg/query.ts":154,"./dcg/query_def":47,"./dcg/query_def.ts":47,"./dcx/datasource":99,"./dcx/datasource.ts":99,"./dcx/query":155,"./dcx/query.ts":155,"./dcx/query_def":48,"./dcx/query_def.ts":48,"./ecdn/datasource":100,"./ecdn/datasource.ts":100,"./ecdn/query":156,"./ecdn/query.ts":156,"./ecdn/query_def":39,"./ecdn/query_def.ts":39,"./ecm/datasource":101,"./ecm/datasource.ts":101,"./ecm/query":157,"./ecm/query.ts":157,"./ecm/query_def":40,"./ecm/query_def.ts":40,"./ecm_block_storage/datasource":102,"./ecm_block_storage/datasource.ts":102,"./ecm_block_storage/query":158,"./ecm_block_storage/query.ts":158,"./ecm_block_storage/query_def":21,"./ecm_block_storage/query_def.ts":21,"./ecm_lb/datasource":103,"./ecm_lb/datasource.ts":103,"./ecm_lb/query":159,"./ecm_lb/query.ts":159,"./ecm_lb/query_def":49,"./ecm_lb/query_def.ts":49,"./gse/datasource":104,"./gse/datasource.ts":104,"./gse/query":160,"./gse/query.ts":160,"./gse/query_def":15,"./gse/query_def.ts":15,"./index":20,"./index.ts":20,"./lb/datasource":105,"./lb/datasource.ts":105,"./lb/query":161,"./lb/query.ts":161,"./lb/query_def":65,"./lb/query_def.ts":65,"./lighthouse/datasource":106,"./lighthouse/datasource.ts":106,"./lighthouse/query":162,"./lighthouse/query.ts":162,"./lighthouse/query_def":56,"./lighthouse/query_def.ts":56,"./mongodb/datasource":107,"./mongodb/datasource.ts":107,"./mongodb/query":163,"./mongodb/query.ts":163,"./mongodb/query_def":50,"./mongodb/query_def.ts":50,"./mr/datasource":108,"./mr/datasource.ts":108,"./mr/query":164,"./mr/query.ts":164,"./mr/query_def":24,"./mr/query_def.ts":24,"./nat_gateway/datasource":109,"./nat_gateway/datasource.ts":109,"./nat_gateway/query":165,"./nat_gateway/query.ts":165,"./nat_gateway/query_def":66,"./nat_gateway/query_def.ts":66,"./ov_cdn/datasource":110,"./ov_cdn/datasource.ts":110,"./ov_cdn/query":166,"./ov_cdn/query.ts":166,"./ov_cdn/query_def":67,"./ov_cdn/query_def.ts":67,"./pcx/datasource":111,"./pcx/datasource.ts":111,"./pcx/query":167,"./pcx/query.ts":167,"./pcx/query_def":60,"./pcx/query_def.ts":60,"./postgresql/datasource":112,"./postgresql/datasource.ts":112,"./postgresql/query":168,"./postgresql/query.ts":168,"./postgresql/query_def":41,"./postgresql/query_def.ts":41,"./qaap/datasource":113,"./qaap/datasource.ts":113,"./qaap/query":169,"./qaap/query.ts":169,"./qaap/query_def":51,"./qaap/query_def.ts":51,"./redis/datasource":114,"./redis/datasource.ts":114,"./redis/query":170,"./redis/query.ts":170,"./redis/query_def":61,"./redis/query_def.ts":61,"./redis_mem/datasource":115,"./redis_mem/datasource.ts":115,"./redis_mem/query":171,"./redis_mem/query.ts":171,"./redis_mem/query_def":17,"./redis_mem/query_def.ts":17,"./scf/datasource":116,"./scf/datasource.ts":116,"./scf/query":172,"./scf/query.ts":172,"./scf/query_def":28,"./scf/query_def.ts":28,"./sqlserver/datasource":117,"./sqlserver/datasource.ts":117,"./sqlserver/query":173,"./sqlserver/query.ts":173,"./sqlserver/query_def":30,"./sqlserver/query_def.ts":30,"./tcaplus/datasource":118,"./tcaplus/datasource.ts":118,"./tcaplus/query":174,"./tcaplus/query.ts":174,"./tcaplus/query_def":52,"./tcaplus/query_def.ts":52,"./tdmq/datasource":119,"./tdmq/datasource.ts":119,"./tdmq/query":175,"./tdmq/query.ts":175,"./tdmq/query_def":13,"./tdmq/query_def.ts":13,"./tdmq_rabbitmq/datasource":120,"./tdmq_rabbitmq/datasource.ts":120,"./tdmq_rabbitmq/query":176,"./tdmq_rabbitmq/query.ts":176,"./tdmq_rabbitmq/query_def":18,"./tdmq_rabbitmq/query_def.ts":18,"./tdmq_rocketmq/datasource":121,"./tdmq_rocketmq/datasource.ts":121,"./tdmq_rocketmq/query":177,"./tdmq_rocketmq/query.ts":177,"./tdmq_rocketmq/query_def":19,"./tdmq_rocketmq/query_def.ts":19,"./tke/datasource":122,"./tke/datasource.ts":122,"./tke/query":178,"./tke/query.ts":178,"./tke/query_def":74,"./tke/query_def.ts":74,"./tsf/datasource":123,"./tsf/datasource.ts":123,"./tsf/query":179,"./tsf/query.ts":179,"./tsf/query_def":62,"./tsf/query_def.ts":62,"./v_clb/datasource":124,"./v_clb/datasource.ts":124,"./v_clb/query":180,"./v_clb/query.ts":180,"./v_clb/query_def":25,"./v_clb/query_def.ts":25,"./vbc/datasource":125,"./vbc/datasource.ts":125,"./vbc/query":181,"./vbc/query.ts":181,"./vbc/query_def":53,"./vbc/query_def.ts":53,"./vpc_net_detect/datasource":126,"./vpc_net_detect/datasource.ts":126,"./vpc_net_detect/query":182,"./vpc_net_detect/query.ts":182,"./vpc_net_detect/query_def":42,"./vpc_net_detect/query_def.ts":42,"./vpngw/datasource":127,"./vpngw/datasource.ts":127,"./vpngw/query":183,"./vpngw/query.ts":183,"./vpngw/query_def":54,"./vpngw/query_def.ts":54,"./vpnx/datasource":128,"./vpnx/datasource.ts":128,"./vpnx/query":184,"./vpnx/query.ts":184,"./vpnx/query_def":55,"./vpnx/query_def.ts":55,"./waf/datasource":129,"./waf/datasource.ts":129,"./waf/query":185,"./waf/query.ts":185,"./waf/query_def":43,"./waf/query_def.ts":43};function i(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=186},function(e,t,n){"use strict";var r=n(0),i=n(191),o=n(190),a=n.n(o),c=n(14),s=function(){function e(e,t,n){this.selectModels=[],this.target=e,this.templateSrv=t,this.scopedVars=n,e.policy=e.policy||c.c.APMServiceParams.policy,e.resultFormat=e.resultFormat||c.c.APMServiceParams.resultFormat,e.orderBy=e.orderBy||c.c.APMServiceParams.orderBy,e.orderType=e.orderType||c.c.APMServiceParams.orderType,e.tags=e.tags||Object(r.cloneDeep)(c.c.APMServiceParams.tags),e.groupBy=e.groupBy||Object(r.cloneDeep)(c.c.APMServiceParams.groupBy),e.select=e.select||Object(r.cloneDeep)(c.c.APMServiceParams.select),this.updateProjection()}return e.$inject=["target","templateSrv","scopedVars"],e.prototype.updateProjection=function(){this.selectModels=Object(r.map)(this.target.select,(function(e){return Object(r.map)(e,i.a.create)})),this.groupByParts=Object(r.map)(this.target.groupBy,i.a.create)},e.prototype.updatePersistedParts=function(){this.target.select=Object(r.map)(this.selectModels,(function(e){return Object(r.map)(e,(function(e){return{type:e.def.type,params:e.params}}))}))},e.prototype.hasGroupByTime=function(){return Object(r.find)(this.target.groupBy,(function(e){return"time"===e.type}))},e.prototype.hasFill=function(){return Object(r.find)(this.target.groupBy,(function(e){return"fill"===e.type}))},e.prototype.addGroupBy=function(e){var t=e.match(/^(\w+)\((.*)\)$/);if(t&&this.target.groupBy){var n=t[1],r=t[2],o=i.a.create({type:n,params:[r]}),a=this.target.groupBy.length;0===a?this.target.groupBy.push(o.part):"time"===n?this.target.groupBy.splice(0,0,o.part):"tag"===n&&"fill"===this.target.groupBy[a-1].type?this.target.groupBy.splice(a-1,0,o.part):this.target.groupBy.push(o.part),this.updateProjection()}},e.prototype.removeGroupByPart=function(e,t){var n=i.a.getCategories();"time"===e.def.type&&(this.target.groupBy=Object(r.filter)(this.target.groupBy,(function(e){return"fill"!==e.type})),this.target.select=Object(r.map)(this.target.select,(function(e){return Object(r.filter)(e,(function(e){var t=i.a.create(e);return t.def.category!==n.Aggregations&&t.def.category!==n.Selectors}))}))),this.target.groupBy.splice(t,1),this.updateProjection()},e.prototype.removeSelect=function(e){this.target.select.splice(e,1),this.updateProjection()},e.prototype.removeSelectPart=function(e,t){if("field"===t.def.type){if(this.selectModels.length>1){var n=Object(r.indexOf)(this.selectModels,e);this.selectModels.splice(n,1)}}else{var i=Object(r.indexOf)(e,t);e.splice(i,1)}this.updatePersistedParts()},e.prototype.addSelectPart=function(e,t){var n=i.a.create({type:t});n.def.addStrategy(e,n,this),this.updatePersistedParts()},e.prototype.getMeasurementAndPolicy=function(e){var t=this.target.policy,n=this.target.measurement||"measurement";return n.match("^/.*/$")?e&&(n=this.templateSrv.replace(n,this.scopedVars,"regex")):n='"'+n+'"',(t="default"!==t?'"'+this.target.policy+'".':"")+n},e.prototype.interpolateQueryStr=function(e,t,n){return t.multi||t.includeAll?"string"==typeof e?a.a.regexEscape(e):"("+Object(r.map)(e,a.a.regexEscape).join("|")+")":e},e.prototype.render=function(e){var t,n,i=this,o=this.target;if(o.rawQuery)return e?this.templateSrv.replace(o.query,this.scopedVars,this.interpolateQueryStr):o.query;var a,c,s="select ";if("custom"===(null===(t=this.selectModels[0][1])||void 0===t?void 0:t.part.type))s+=this.selectModels[0][0].params[0];else for(a=0;a<(null===(n=this.selectModels)||void 0===n?void 0:n.length);a++){var u=this.selectModels[a],l="";for(c=0;c0&&(s+=", "),s+=l}s+=" from "+this.getMeasurementAndPolicy(e)+" where ";var p=Object(r.map)(o.tags,(function(t,n){return i.renderTagCondition(t,n,e)}));p.length>0&&(s+="("+p.join(" ")+") and "),s+="$timeFilter";var f="",d=this.groupByParts.length,m=this.groupByParts;for(d>2&&(m=this.groupByParts.filter((function(e){return"time"!==e.def.type}))),a=0;a0&&(f+="fill"===h.def.type?" ":", "),f+=h.render("")}return f.length&&(s+=" group by "+f),o.fill&&(s+=" fill("+o.fill+")"),o.orderType&&(s+=" order by "+o.orderType),o.orderBy&&(s+=" "+o.orderBy),o.limit&&(s+=" limit "+o.limit),o.slimit&&(s+=" slimit "+o.slimit),o.tz&&(s+=" tz('"+o.tz+"')"),s},e.prototype.renderAdhocFilters=function(e){var t=this;return Object(r.map)(e,(function(e,n){return t.renderTagCondition(e,n,!0)})).join(" ")},e.prototype.renderTagCondition=function(e,t,n){var r="",i=e.operator,o=e.value;return t>0&&(r=(e.condition.toLowerCase()||"and")+" "),i||(i=/^\/.*\/$/.test(o)?"=~":"="),"=~"!==i&&"!~"!==i?(n&&(o=this.templateSrv.replace(o,this.scopedVars)),">"!==i&&"<"!==i&&(o="'"+o.replace(/\\/g,"\\\\").replace(/\'/g,"\\'")+"'"),"in"===i&&(o="("+o+")")):n&&(o=this.templateSrv.replace(o,this.scopedVars,"regex")),r+'"'+e.key+'" '+i+" "+o},e}();t.a=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TCMonitorDatasource",(function(){return u}));var r=n(0),i=n.n(r),o=n(20),a=n(2),c=n(5),s=n(8),u=function(){function e(e,t,n){var r=this;this.instanceSettings=e,this.backendSrv=t,this.templateSrv=n,i.a.forEach(o.Datasources,(function(e,t){r[t]=new e(r.instanceSettings,r.backendSrv,r.templateSrv)}))}return e.$inject=["instanceSettings","backendSrv","templateSrv"],e.prototype.getNamespaces=function(){var e=this,t=[];return i.a.forEach(o.SERVICES,(function(n){!0===e.instanceSettings.jsonData[n.service]&&t.push(n)})),t},e.prototype.getCascaderNamespaces=function(){var e=this,t=o.SERVICES.filter((function(t){return e.instanceSettings.jsonData[t.service]}));return Object(c.f)(t)},e.prototype.getSelectedServices=function(){var e=this.getNamespaces();return i.a.map(e,(function(e){var t=e.namespace;return Object(a.f)(t)}))},e.prototype.query=function(e){var t=this,n=[],r=this.getSelectedServices();return i.a.forEach(r,(function(r){var o=i.a.cloneDeep(e),a=i.a.filter(o.targets,(function(e){return e.service===r}));if(o.targets=a,o.targets.length>0){var c=t["".concat(i.a.toUpper(r),"Datasource")].query(o);c&&n.push(c)}})),0===n.length?Promise.resolve({data:[],state:s.LoadingState.Done}):Promise.all(n).then((function(e){return{data:i.a.flatten(e),state:s.LoadingState.Done}}))},e.prototype.metricFindQuery=function(e,t){var n=Object(a.h)(e),r=Object(a.f)(n.namespace||"");if(i.a.isEmpty(n)||!n.namespace||!n.action||!r)return Promise.resolve([]);if(this["".concat(i.a.toUpper(r),"Datasource")].metricFindQuery){var o=this["".concat(i.a.toUpper(r),"Datasource")].metricFindQuery(n,i.a.get(t,"variable.regex",void 0));if(o)return o}return Promise.resolve([])},e.prototype.getRegions=function(e){return this["".concat(i.a.toUpper(e),"Datasource")].getRegions?this["".concat(i.a.toUpper(e),"Datasource")].getRegions():[]},e.prototype.getMetrics=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getMetrics(t)},e.prototype.getZones=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getZones?this["".concat(i.a.toUpper(e),"Datasource")].getZones(t):[]},e.prototype.getFilterDropdown=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getFilterDropdown?this["".concat(i.a.toUpper(e),"Datasource")].getFilterDropdown(t):[]},e.prototype.getInstances=function(e,t,n){return this["".concat(i.a.toUpper(e),"Datasource")].getInstances(t,n)},e.prototype.getListeners=function(e,t,n){return this["".concat(i.a.toUpper(e),"Datasource")].getListeners?this["".concat(i.a.toUpper(e),"Datasource")].getListeners(t,n):[]},e.prototype.getVpcIds=function(e,t){if(this["".concat(i.a.toUpper(e),"Datasource")].getVpcIds)return this["".concat(i.a.toUpper(e),"Datasource")].getVpcIds(t)},e.prototype.testDatasource=function(){var e=this,t=[],n=this.getSelectedServices();return i.a.forEach(n,(function(n){t.push(e["".concat(i.a.toUpper(n),"Datasource")].testDatasource())})),0===t.length?Promise.resolve(null):Promise.all(t).then((function(e){var t="success",n="DataSource Connection OK",r=i.a.reduce(e,(function(e,t){return"error"===t.status&&(""===e&&(e+="Oops! Found an error in: "),e+="".concat(t.service,": ").concat(t.message,"; \n")),e}),"");return r&&(t="error",n=r),{status:t,message:n,title:i.a.upperFirst(t)}}))},e.prototype.getServiceFn=function(e,t){var n=this;return function(){for(var r,o=[],a=0;a=n+2;if("count"!==t.def.type&&i)e[n+1].def.category===s.Aggregations&&e.splice(n+1,1);else if("count"===t.def.type)return void(i&&"count"===e[n+1].def.type||e.splice(n+1,0,t))}return void(e[n]=t)}if(r.def.category===s.Selectors)return void(e[n]=t)}e.splice(1,0,t)}function m(e,t){var n;for(n=0;n0){if("math"===e[n-1].def.type)return void(e[n-1]=t);if(n>1&&"math"===e[n-2].def.type)return void(e[n-2]=t);if("alias"===e[n-1].def.type)return void e.splice(n-1,0,t)}e.push(t)},category:s.Math,params:[{name:"expr",type:"string"}],defaultParams:[" / 100"],renderer:function(e,t){return t+" "+e.params[0]}}),l({type:"alias",addStrategy:function(e,t){var n=e.length;n>0&&"alias"===e[n-1].def.type?e[n-1]=t:e.push(t)},category:s.Aliasing,params:[{name:"name",type:"string",quote:"double"}],defaultParams:["alias"],renderMode:"suffix",renderer:function(e,t){return t+' AS "'+e.params[0]+'"'}}),t.a={create:u,getCategories:function(){return s},replaceAggregationAdd:d}},function(e,t,n){"use strict";function r(e){setTimeout((function(){throw e}),0)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,i=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),o=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?n+=t.charAt(r):o<128?n+=i[o]:o<2048?n+=i[192|o>>6]+i[128|63&o]:o<55296||o>=57344?n+=i[224|o>>12]+i[128|o>>6&63]+i[128|63&o]:(r+=1,o=65536+((1023&o)<<10|1023&t.charCodeAt(r)),n+=i[240|o>>18]+i[128|o>>12&63]+i[128|o>>6&63]+i[128|63&o])}return n},isBuffer:function(e){return null!=e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},merge:function e(t,n,i){if(!n)return t;if("object"!=typeof n){if(Array.isArray(t))t.push(n);else{if("object"!=typeof t)return[t,n];(i.plainObjects||i.allowPrototypes||!r.call(Object.prototype,n))&&(t[n]=!0)}return t}if("object"!=typeof t)return[t].concat(n);var a=t;return Array.isArray(t)&&!Array.isArray(n)&&(a=o(t,i)),Array.isArray(t)&&Array.isArray(n)?(n.forEach((function(n,o){r.call(t,o)?t[o]&&"object"==typeof t[o]?t[o]=e(t[o],n,i):t.push(n):t[o]=n})),t):Object.keys(n).reduce((function(t,o){var a=n[o];return r.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t}),a)}}},function(e,t,n){"use strict";var r=String.prototype.replace,i=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return r.call(e,i,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(e,t,n){"use strict";n.r(t),n.d(t,"queryDDO",(function(){return a}));var r=n(6),i=n.n(r),o=function(){function e(t,n){Object.assign(t,e._config),t.onChecked=function(e,n){!0===t.target.queries[e]&&(t.target.queries[n]=!1),t.onChange()},t.init()}return e.$inject=["$scope","$rootScope"],e}();function a(){return{template:'\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n',controller:o,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}t.default=function(e,t){o._config=t,i.a.directive(e,a)}},function(e,t,n){"use strict";n.r(t)},function(e,t,n){"use strict";var r=n(207),i=n(208),o=n(194);e.exports={formats:o,parse:i,stringify:r}},function(e){e.exports=JSON.parse('{"type":"datasource","name":"Tencent Cloud Monitoring","id":"tencentcloud-monitor-datasource","backend":true,"alerting":true,"logs":true,"metrics":true,"annotations":false,"executable":"tencentcloud-monitor-app-backend","queryOptions":{"maxDataPoints":true},"routes":[{"path":"cls-internal","url":"https://cls.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"region-internal","url":"https://region.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"api-internal","url":"https://api.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cmq-internal","url":"https://cmq.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shanghai-internal","url":"https://cmq.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shenzhen-internal","url":"https://cmq.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"emr-internal","url":"https://emr.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shanghai-internal","url":"https://emr.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shenzhen-internal","url":"https://emr.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"scf-internal","url":"https://scf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shanghai-internal","url":"https://scf.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shenzhen-internal","url":"https://scf.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cfs-internal","url":"https://cfs.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shanghai-internal","url":"https://cfs.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shenzhen-internal","url":"https://cfs.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ckafka-internal","url":"https://ckafka.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shanghai-internal","url":"https://ckafka.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shenzhen-internal","url":"https://ckafka.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"clb-internal","url":"https://clb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shanghai-internal","url":"https://clb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shenzhen-internal","url":"https://clb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"mongodb-internal","url":"https://mongodb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shanghai-internal","url":"https://mongodb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shenzhen-internal","url":"https://mongodb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"vpc-internal","url":"https://vpc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shanghai-internal","url":"https://vpc.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shenzhen-internal","url":"https://vpc.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"pcx-internal","url":"https://vpc.api.qcloud.com.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/x-www-form-urlencoded"}]},{"path":"cvm-internal","url":"https://cvm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shanghai-internal","url":"https://cvm.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shenzhen-internal","url":"https://cvm.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"monitor-internal","url":"https://monitor.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shanghai-internal","url":"https://monitor.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shenzhen-internal","url":"https://monitor.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdb-internal","url":"https://cdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shanghai-internal","url":"https://cdb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shenzhen-internal","url":"https://cdb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"postgres-internal","url":"https://postgres.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shanghai-internal","url":"https://postgres.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shenzhen-internal","url":"https://postgres.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdn-internal","url":"https://cdn.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"redis-internal","url":"https://redis.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dcdb-internal","url":"https://dcdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dc-internal","url":"https://dc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cynosdb-internal","url":"https://cynosdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"sqlserver-internal","url":"https://sqlserver.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmeip-internal","url":"https://bmeip.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmvpc-internal","url":"https://bmvpc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmlb-internal","url":"https://bmlb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bm-internal","url":"https://bm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"es-internal","url":"https://es.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cbs-internal","url":"https://cbs.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tcaplusdb-internal","url":"https://tcaplusdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apigateway-internal","url":"https://apigateway.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tdmq-internal","url":"https://tdmq.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gaap-internal","url":"https://gaap.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecm-internal","url":"https://ecm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gse-internal","url":"https://gse.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"lighthouse-internal","url":"https://lighthouse.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tsf-internal","url":"https://tsf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"rum-internal","url":"https://rum.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tke-internal","url":"https://tke.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecdn-internal","url":"https://ecdn.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"waf-internal","url":"https://waf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apigateway","url":"https://apigateway.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"api","url":"https://api.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cmq","url":"https://cmq.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shanghai","url":"https://cmq.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shenzhen","url":"https://cmq.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"emr","url":"https://emr.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shanghai","url":"https://emr.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shenzhen","url":"https://emr.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"scf","url":"https://scf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shanghai","url":"https://scf.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shenzhen","url":"https://scf.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cfs","url":"https://cfs.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shanghai","url":"https://cfs.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shenzhen","url":"https://cfs.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ckafka","url":"https://ckafka.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shanghai","url":"https://ckafka.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shenzhen","url":"https://ckafka.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"clb","url":"https://clb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shanghai","url":"https://clb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shenzhen","url":"https://clb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"mongodb","url":"https://mongodb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shanghai","url":"https://mongodb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shenzhen","url":"https://mongodb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"vpc","url":"https://vpc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shanghai","url":"https://vpc.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shenzhen","url":"https://vpc.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"pcx","url":"https://vpc.api.qcloud.com","headers":[{"name":"Content-Type","content":"application/x-www-form-urlencoded"}]},{"path":"cvm","url":"https://cvm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shanghai","url":"https://cvm.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shenzhen","url":"https://cvm.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"monitor","url":"https://monitor.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shanghai","url":"https://monitor.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shenzhen","url":"https://monitor.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdb","url":"https://cdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shanghai","url":"https://cdb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shenzhen","url":"https://cdb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"postgres","url":"https://postgres.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shanghai","url":"https://postgres.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shenzhen","url":"https://postgres.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdn","url":"https://cdn.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"redis","url":"https://redis.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dcdb","url":"https://dcdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dc","url":"https://dc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cynosdb","url":"https://cynosdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"sqlserver","url":"https://sqlserver.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmeip","url":"https://bmeip.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmvpc","url":"https://bmvpc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmlb","url":"https://bmlb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bm","url":"https://bm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"es","url":"https://es.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cbs","url":"https://cbs.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tcaplusdb","url":"https://tcaplusdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tdmq","url":"https://tdmq.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gaap","url":"https://gaap.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecm","url":"https://ecm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gse","url":"https://gse.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cls","url":"https://cls.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cls/shanghai","url":"https://cls.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cls/shenzhen","url":"https://cls.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"region","url":"https://region.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"lighthouse","url":"https://lighthouse.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tsf","url":"https://tsf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"rum","url":"https://rum.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apm","url":"https://apm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tke","url":"https://tke.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecdn","url":"https://ecdn.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"waf","url":"https://waf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]}],"info":{"author":{"name":"Tencent Cloud"},"logos":{"small":"img/tencent-cloud.svg","large":"img/tencent-cloud.svg"},"description":"Data source for Tencent Cloud monitoring service"}}')},function(e,t){e.exports=l},function(e,t,n){"use strict";function r(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}n.d(t,"a",(function(){return i}));var i=r()},function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return s})),n.d(t,"c",(function(){return u}));var r=n(68),i=n(72),o=n(73),a=n(217),c=function(e){function t(t){var n=e.call(this)||this;return n.parent=t,n}return r.a(t,e),t.prototype._next=function(e){this.parent.notifyNext(e)},t.prototype._error=function(e){this.parent.notifyError(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(),this.unsubscribe()},t}(i.a),s=(i.a,function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.a(t,e),t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(){this.destination.complete()},t}(i.a));i.a;function u(e,t){if(!t.closed)return e instanceof o.a?e.subscribe(t):Object(a.a)(e)(t)}},function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return r}));var r,i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;!function(e){e[e.LUCENE=0]="LUCENE",e[e.CQL=1]="CQL"}(r||(r={}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}()},,function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return o}));var r=[{label:"Time series",value:"time_series"},{label:"Table",value:"table"},{label:"Logs",value:"logs"}],i="time_series",o=["sql_metric","service_metric","error_metric","runtime_metric","mq_metric"]},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(130),i=n(192),o={closed:!0,next:function(e){},error:function(e){if(r.a.useDeprecatedSynchronousErrorHandling)throw e;Object(i.a)(e)},complete:function(){}}},function(e,t,n){"use strict";var r=n(193),i=n(194),o={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},a=Date.prototype.toISOString,c={delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,serializeDate:function(e){return a.call(e)},skipNulls:!1,strictNullHandling:!1},s=function e(t,n,i,o,a,s,u,l,p,f,d,m){var h=t;if("function"==typeof u)h=u(n,h);else if(h instanceof Date)h=f(h);else if(null===h){if(o)return s&&!m?s(n,c.encoder):n;h=""}if("string"==typeof h||"number"==typeof h||"boolean"==typeof h||r.isBuffer(h))return s?[d(m?n:s(n,c.encoder))+"="+d(s(h,c.encoder))]:[d(n)+"="+d(String(h))];var g,y=[];if(void 0===h)return y;if(Array.isArray(u))g=u;else{var v=Object.keys(h);g=l?v.sort(l):v}for(var b=0;b0?x+S:""}},function(e,t,n){"use strict";var r=n(193),i=Object.prototype.hasOwnProperty,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:r.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},a=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/g,a=/(\[[^[\]]*])/.exec(r),c=a?r.slice(0,a.index):r,s=[];if(c){if(!n.plainObjects&&i.call(Object.prototype,c)&&!n.allowPrototypes)return;s.push(c)}for(var u=0;null!==(a=o.exec(r))&&u=0;--i){var o,a=e[i];if("[]"===a)o=(o=[]).concat(r);else{o=n.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,s=parseInt(c,10);!isNaN(s)&&a!==c&&String(s)===c&&s>=0&&n.parseArrays&&s<=n.arrayLimit?(o=[])[s]=r:o[c]=r}r=o}return r}(s,t,n)}};e.exports=function(e,t){var n=t?r.assign({},t):{};if(null!==n.decoder&&void 0!==n.decoder&&"function"!=typeof n.decoder)throw new TypeError("Decoder has to be a function.");if(n.ignoreQueryPrefix=!0===n.ignoreQueryPrefix,n.delimiter="string"==typeof n.delimiter||r.isRegExp(n.delimiter)?n.delimiter:o.delimiter,n.depth="number"==typeof n.depth?n.depth:o.depth,n.arrayLimit="number"==typeof n.arrayLimit?n.arrayLimit:o.arrayLimit,n.parseArrays=!1!==n.parseArrays,n.decoder="function"==typeof n.decoder?n.decoder:o.decoder,n.allowDots="boolean"==typeof n.allowDots?n.allowDots:o.allowDots,n.plainObjects="boolean"==typeof n.plainObjects?n.plainObjects:o.plainObjects,n.allowPrototypes="boolean"==typeof n.allowPrototypes?n.allowPrototypes:o.allowPrototypes,n.parameterLimit="number"==typeof n.parameterLimit?n.parameterLimit:o.parameterLimit,n.strictNullHandling="boolean"==typeof n.strictNullHandling?n.strictNullHandling:o.strictNullHandling,""===e||null==e)return n.plainObjects?Object.create(null):{};for(var c="string"==typeof e?function(e,t){for(var n={},r=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,a=t.parameterLimit===1/0?void 0:t.parameterLimit,c=r.split(t.delimiter,a),s=0;s0){var s=Object(r.reduce)(this.target.tags,(function(n,r){return"MEASUREMENTS"===e&&"id"===r.key||r.key===t||">"===r.operator||"<"===r.operator||n.push(function(e,t){var n="",r=e.operator,i=e.value;return t>0&&(n=(e.condition.toLowerCase()||"AND")+" "),r||(r=/^\/.*\/$/.test(e.value)?"=~":"="),(""===i||"=~"!==r&&"!~"!==r)&&(i="'"+i.replace(/\\/g,"\\\\").replace(/\'/g,"\\'")+"'"),n+'"'+e.key+'" '+r+" "+i}(r,n.length)),n}),[]);s.length>0&&(c+=" where "+s.join(" "))}return"MEASUREMENTS"===e&&(c+=" limit 100"),c},e}()},function(e,t,n){"use strict";function r(e){return null!==e&&"object"==typeof e}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e}},function(e,t,n){"use strict";function r(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=n(192),i=n(200),o=n(189),a=n(215),c=n(216),s=n(214);n.d(t,"a",(function(){return u}));var u=function(e){if(e&&"function"==typeof e[o.a])return l=e,function(e){var t=l[o.a]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if(Object(a.a)(e))return u=e,function(e){for(var t=0,n=u.length;t\n
\n
\n \n
\n \n\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n \n
\n
\n ({{ctrl.getTimeDesc()}})\n
\n\n
\n
\n \n \n
\n
\n\n
\n
\n \n
\n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \x3c!-- this is explain how much items will display to user --\x3e\n \n
\n
\n\n'},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,i="~";function o(){}function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function c(e,t,n,r,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var c=new a(n,r||e,o),s=i?i+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],c]:e._events[s].push(c):(e._events[s]=c,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new o:delete e._events[t]}function u(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(i=!1)),u.prototype.eventNames=function(){var e,t,n=[];if(0===this._eventsCount)return n;for(t in e=this._events)r.call(e,t)&&n.push(i?t.slice(1):t);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},u.prototype.listeners=function(e){var t=i?i+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,o=n.length,a=new Array(o);r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(c+=" AND "+new l.a({},this.templateSrv,s).renderAdhocFilters(h));return s.timeFilter={value:c},m=this.templateSrv.replace(m,s),this._seriesQuery(m,e).pipe(Object(o.a)((function(r){if(!r||!r.results)return{data:[]};var i=[];for(t=0;t0)throw{message:"APM Error: "+c[0].error,data:a}}}return a.Response.Result})),Object(c.a)((function(e){return e.cancelled?Object(i.of)(e):Object(i.throwError)(n.handleErrors(e))})))})))},n.prototype.handleErrors=function(e){var t,n={message:(null==e?void 0:e.status)||(null==e?void 0:e.message)||"Unknown error during query transaction. Please check JS console logs."};return(Number.isInteger(e.status)&&0!==e.status||e.status>=300)&&((null===(t=e.data)||void 0===t?void 0:t.error)?(n.message="APM Error: "+e.data.error,n.data=e.data,n.config=e.config):(n.message="Network Error: "+e.statusText+"("+e.status+")",n.data=e.data,n.config=e.config)),n},n.prototype.getTimeFilter=function(e){return"time >= "+this.getAPMTime(e.rangeRaw.from,!1,e.timezone)+" and time <= "+this.getAPMTime(e.rangeRaw.to,!0,e.timezone)},n.prototype.getAPMTime=function(e,t,n){if(Object(r.isString)(e)){if("now"===e)return"now()";var i=/^now-(\d+)([dhms])$/.exec(e);if(i)return"now() - "+parseInt(i[1],10)+i[2];e=u.dateMath.parse(e,t,n)}return e.valueOf()+"ms"},n.prototype.fixTimePeriod=function(e,t){var n,r=this,i=this.getTimePeriod(t.rangeRaw,t.timezone);return null===(n=e.groupBy)||void 0===n||n.forEach((function(t){"time"===t.type&&"1d"!==t.params[0]&&(e=r.modifyTime(e,i))})),e},n.prototype.getTimePeriod=function(e,t){var n,r,i=null===(n=u.dateMath.parse(e.from,!1,t))||void 0===n?void 0:n.valueOf(),o=null===(r=u.dateMath.parse(e.to,!0,t))||void 0===r?void 0:r.valueOf(),a=0;return i&&o&&(a=o-i),a<=432e5?"1m":a<=1728e5?"5m":a<=6048e5?"1h":"1d"},n.prototype.modifyTime=function(e,t){var n;if(!e.groupBy)return e;for(var r=0,i=e.groupBy;r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0||r.indexOf("show retention policies")>=0,o=r.indexOf("show measurements")>=0,a=new Set;return Object(c.each)(n.series,(function(e){Object(c.each)(e.values,(function(e){Object(c.isArray)(e)?i?h(a,e[0]):void 0!==e[1]?h(a,e[1]):h(a,e[0]):h(a,e)}))})),o?Array.from(a).filter((function(e){return s.b.includes(e)})).map((function(e){return{text:e}})):Array.from(a).map((function(e){return{text:e}}))},e.prototype.getTable=function(e,t,n){var i,o,s=new a.a;if(e.length>0)if(s.meta=u(u({},n),{executedQueryString:null===(i=e[0].meta)||void 0===i?void 0:i.executedQueryString}),s.refId=t.refId,s=function(e,t,n){var i=function(e){var t,n=[];null===(t=e.select)||void 0===t||t.forEach((function(e){var t,r,i=e.filter((function(e){return"field"!==e.type}));i.length>0?n.push(i[0].type):(null===(r=null===(t=e[0])||void 0===t?void 0:t.params)||void 0===r?void 0:r[0])&&n.push(e[0].params[0].toString())}));var r=[];return n.forEach((function(e){r.push(function e(t,n,r,i){if(r.indexOf(n)>-1)return i++,e(t,t+"_"+i,r,i);return n}(e,e,r,0))})),r}(n);e[0].fields.forEach((function(e){"time"===e.name?t.columns.push({text:"Time",type:r.FieldType.time}):"value"===e.name&&e.labels&&Object.keys(e.labels).forEach((function(e){t.columns.push({text:e})}))})),"metricFindQuery"===e[0].refId&&e.forEach((function(e){e.name&&t.columns.push({text:e.name})}));for(var o=0;oa{margin-left:10px}.tc-switch{border-left:1px solid #262628;margin-bottom:0 !important}.tc-condition-block{margin-right:10px;display:inline-block}.tc-condition-block .tc-condition-input{border-radius:0}.tc-condition-block .tc-condition-minus{vertical-align:top;border-radius:0 3px 3px 0}.tc-condition-block .tc-condition-dropdown{display:inline-block}.tc-condition-block>input{display:inline-block;margin-right:0}.tc-condition-block>label{display:inline-block}.tc-condition-add{display:inline-block;vertical-align:top}.tc-condition-add>label{border-radius:3px}.filtered-color{color:#ff851b}.secret-tips{position:absolute;right:-25px;border-radius:2px;background:#1b1b1b;padding:10px;top:-35px;width:300px;border:1px solid #2c3235}.secret-tips-tri{position:absolute;width:15px;height:15px;left:-8px;top:60px;background:#1b1b1b;border:1px solid #2c3235;border-top:0;border-right:0;transform:rotate(45deg)}.rc-cascader-menu-item{min-width:160px;font-size:14px}","",{version:3,sources:["query_editor.css"],names:[],mappings:"AAAA,eAAe,cAAc,CAAC,iBAAiB,CAAC,+BAA+B,eAAe,CAAC,8CAA8C,iBAAiB,CAAC,8BAA8B,iBAAiB,CAAC,gCAAgC,gBAAgB,CAAC,WAAW,6BAA6B,CAAC,0BAA0B,CAAC,oBAAoB,iBAAiB,CAAC,oBAAoB,CAAC,wCAAwC,eAAe,CAAC,wCAAwC,kBAAkB,CAAC,yBAAyB,CAAC,2CAA2C,oBAAoB,CAAC,0BAA0B,oBAAoB,CAAC,cAAc,CAAC,0BAA0B,oBAAoB,CAAC,kBAAkB,oBAAoB,CAAC,kBAAkB,CAAC,wBAAwB,iBAAiB,CAAC,gBAAgB,aAAa,CAAC,aAAa,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,iBAAiB,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,YAAY,CAAC,cAAc,CAAC,uBAAuB,CAAC,uBAAuB,eAAe,CAAC,cAAc",file:"query_editor.css",sourcesContent:[".tc-sub-params{margin-top:4px;margin-left:125px}.tc-sub-params .gf-form-inline{min-height:42px}.tc-sub-params .gf-form-inline .gf-form-label{margin-bottom:2px}.tc-sub-params .tc-info-label{margin-bottom:6px}.tc-sub-params .tc-info-label>a{margin-left:10px}.tc-switch{border-left:1px solid #262628;margin-bottom:0 !important}.tc-condition-block{margin-right:10px;display:inline-block}.tc-condition-block .tc-condition-input{border-radius:0}.tc-condition-block .tc-condition-minus{vertical-align:top;border-radius:0 3px 3px 0}.tc-condition-block .tc-condition-dropdown{display:inline-block}.tc-condition-block>input{display:inline-block;margin-right:0}.tc-condition-block>label{display:inline-block}.tc-condition-add{display:inline-block;vertical-align:top}.tc-condition-add>label{border-radius:3px}.filtered-color{color:#ff851b}.secret-tips{position:absolute;right:-25px;border-radius:2px;background:#1b1b1b;padding:10px;top:-35px;width:300px;border:1px solid #2c3235}.secret-tips-tri{position:absolute;width:15px;height:15px;left:-8px;top:60px;background:#1b1b1b;border:1px solid #2c3235;border-top:0;border-right:0;transform:rotate(45deg)}.rc-cascader-menu-item{min-width:160px;font-size:14px}"]}]),e.exports=t},function(e,t,n){var r=n(220),i=n(233);"string"==typeof(i=i.__esModule?i.default:i)&&(i=[[e.i,i,""]]);var o={insert:"head",singleton:!1},a=(r(i,o),i.locals?i.locals:{});e.exports=a},function(e,t,n){(t=n(221)(!0)).push([e.i,".log-service-monospaced-font-family {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n.log-service-monospaced-font-family button,\n.log-service-monospaced-font-family input,\n.log-service-monospaced-font-family select,\n.log-service-monospaced-font-family textarea {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n","",{version:3,sources:["index.less"],names:[],mappings:"AAAA;EACE,8DAA8D;AAChE;AACA;;;;EAIE,8DAA8D;AAChE",file:"index.less",sourcesContent:[".log-service-monospaced-font-family {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n.log-service-monospaced-font-family button,\n.log-service-monospaced-font-family input,\n.log-service-monospaced-font-family select,\n.log-service-monospaced-font-family textarea {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n"]}]),e.exports=t},function(e,t,n){"use strict";(function(e){var r=n(236),i=n(237),o=n(238);function a(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function c(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function m(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Q(e).length;default:if(r)return B(e).length;t=(""+t).toLowerCase(),r=!0}}function h(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return _(this,t,n);case"utf8":case"utf-8":return S(this,t,n);case"ascii":return x(this,t,n);case"latin1":case"binary":return E(this,t,n);case"base64":return O(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function y(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=s.from(t,r)),s.isBuffer(t))return 0===t.length?-1:v(e,t,n,r,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):v(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function v(e,t,n,r,i){var o,a=1,c=e.length,s=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,c/=2,s/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var l=-1;for(o=n;oc&&(n=c-s),o=n;o>=0;o--){for(var p=!0,f=0;fi&&(r=i):r=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function O(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function S(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:u>223?3:u>191?2:1;if(i+p<=n)switch(p){case 1:u<128&&(l=u);break;case 2:128==(192&(o=e[i+1]))&&(s=(31&u)<<6|63&o)>127&&(l=s);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(s=(15&u)<<12|(63&o)<<6|63&a)>2047&&(s<55296||s>57343)&&(l=s);break;case 4:o=e[i+1],a=e[i+2],c=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&c)&&(s=(15&u)<<18|(63&o)<<12|(63&a)<<6|63&c)>65535&&s<1114112&&(l=s)}null===l?(l=65533,p=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),i+=p}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},s.prototype.compare=function(e,t,n,r,i){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),c=Math.min(o,a),u=this.slice(r,i),l=e.slice(t,n),p=0;pi)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return I(this,e,t,n);case"ascii":return w(this,e,t,n);case"latin1":case"binary":return D(this,e,t,n);case"base64":return k(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function x(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,n,r,i,o){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function T(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function P(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function q(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function M(e,t,n,r,o){return o||q(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function L(e,t,n,r,o){return o||q(e,0,n,8),i.write(e,t,n,r,52,8),n+8}s.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},s.prototype.readUInt8=function(e,t){return t||j(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||j(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||j(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||j(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||j(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||j(e,t,this.length);for(var r=this[e],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*t)),r},s.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||j(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return t||j(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||j(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt16BE=function(e,t){t||j(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt32LE=function(e,t){return t||j(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||j(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||j(e,4,this.length),i.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||j(e,4,this.length),i.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||j(e,8,this.length),i.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||j(e,8,this.length),i.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||N(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+n},s.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):T(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):T(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):P(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var o=0,a=1,c=0;for(this[t]=255&e;++o>0)-c&255;return t+n},s.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var o=n-1,a=1,c=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===c&&0!==this[t+o+1]&&(c=1),this[t+o]=(e/a>>0)-c&255;return t+n},s.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):T(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):T(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):P(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,n){return M(this,e,t,!0,n)},s.prototype.writeFloatBE=function(e,t,n){return M(this,e,t,!1,n)},s.prototype.writeDoubleLE=function(e,t,n){return L(this,e,t,!0,n)},s.prototype.writeDoubleBE=function(e,t,n){return L(this,e,t,!1,n)},s.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function Q(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(R,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(235))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";t.byteLength=function(e){var t=u(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,r=u(e),a=r[0],c=r[1],s=new o(function(e,t,n){return 3*(t+n)/4-n}(0,a,c)),l=0,p=c>0?a-4:a;for(n=0;n>16&255,s[l++]=t>>8&255,s[l++]=255&t;2===c&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,s[l++]=255&t);1===c&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,s[l++]=t>>8&255,s[l++]=255&t);return s},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,o=[],a=0,c=n-i;ac?c:a+16383));1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return o.join("")};for(var r=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,s=a.length;c0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var i,o,a=[],c=t;c>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,i){var o,a,c=8*i-r-1,s=(1<>1,l=-7,p=n?i-1:0,f=n?-1:1,d=e[t+p];for(p+=f,o=d&(1<<-l)-1,d>>=-l,l+=c;l>0;o=256*o+e[t+p],p+=f,l-=8);for(a=o&(1<<-l)-1,o>>=-l,l+=r;l>0;a=256*a+e[t+p],p+=f,l-=8);if(0===o)o=1-u;else{if(o===s)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,r),o-=u}return(d?-1:1)*a*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var a,c,s,u=8*o-i-1,l=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,m=r?1:-1,h=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(c=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-a))<1&&(a--,s*=2),(t+=a+p>=1?f/s:f*Math.pow(2,1-p))*s>=2&&(a++,s/=2),a+p>=l?(c=0,a=l):a+p>=1?(c=(t*s-1)*Math.pow(2,i),a+=p):(c=t*Math.pow(2,p-1)*Math.pow(2,i),a=0));i>=8;e[n+d]=255&c,d+=m,c/=256,i-=8);for(a=a<0;e[n+d]=255&a,d+=m,a/=256,u-=8);e[n+d-m]|=128*h}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";n.r(t);var r=n(8),i=n(4),o=n.n(i),a=n(222),c=n(0),s=n.n(c),u=n(2),l=n(20),p=n(6),f=n.n(p),d=n(210),m=n.n(d),h=function(){function e(e,t){e.init=function(){e.type=e.type||"input",e.placeholder=Object(d.isDefined)(e.placeholder)?e.placeholder:"",e.value=Object(d.isDefined)(e.value)?e.value:[],e.maxCond=s.a.toInteger(e.maxCond)>0?s.a.toInteger(e.maxCond):-1},e.onInputBlur=function(){e.onChangeInternal()},e.deleteCondition=function(t){e.value.splice(t,1),e.onChangeInternal()},e.addCondition=function(t){e.value.push(t),e.onChangeInternal()},e.onChangeInternal=function(){e.onChange({value:e.value})},e.onSelectChange=function(t){e.onChange({value:t})},e.getSelectedOptions=function(){var t=s.a.filter(e.options,(function(t){return-1!==s.a.get(e.value,"value",[]).indexOf(t.value)}));return t.length>0?s.a.map(t,(function(e){return"".concat(e.text,": ").concat(e.value)})).join("; "):void 0},e.init()}return e.$inject=["$scope","$rootScope"],e}();f.a.directive("multiCondition",(function(){return{template:'\n
\n
\n \n \n
\n
\n \n
\n
\n\n
\n
\n \n \n
\n
\n \n
\n
\n\n
\n \n \n
\n\n
\n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n\n\x3c!--
\n \n \n
--\x3e\n',controller:h,restrict:"E",scope:{type:"=",value:"=",maxCond:"=?",placeholder:"=?",options:"=?",maxNum:"=?",minNum:"=?",multiple:"=?",onChange:"&",getOptions:"&"}}})),y.$inject=["$compile","$window","$timeout","$rootScope"];var g=function(){function e(){}return e.prototype.show=function(){var e=this;this.oldVariableText=s.a.get(this.value,"text",""),this.highlightIndex=-1,this.selectOptions=s.a.cloneDeep(this.options),s.a.map(this.selectOptions,(function(t){var n=s.a.get(e.value,"value");n?s.a.isArray(n)?t.selected=-1!==s.a.indexOf(n,t.value):t.selected=n===t.value:t.selected=!1})),this.selectedValues=s.a.filter(this.selectOptions,{selected:!0}),this.search={query:"",options:this.selectOptions.slice(0,Math.min(this.selectOptions.length,1e3))},this.dropdownVisible=!0},e.prototype.updateLinkText=function(){this.linkText=s.a.get(this.value,"text","")},e.prototype.clearSelections=function(){s.a.each(this.selectOptions,(function(e){e.selected=!1})),this.selectionsChanged(!1)},e.prototype.keyDown=function(e){27===e.keyCode&&this.hide(),40===e.keyCode&&this.moveHighlight(1),38===e.keyCode&&this.moveHighlight(-1),13===e.keyCode&&(0===this.search.options.length?this.commitChanges():this.selectValue(this.search.options[this.highlightIndex],{},!0,!1)),32===e.keyCode&&this.selectValue(this.search.options[this.highlightIndex],{},!1,!1)},e.prototype.moveHighlight=function(e){this.highlightIndex=(this.highlightIndex+e)%this.search.options.length},e.prototype.selectValue=function(e,t,n,r){var i=this;if(e){e.selected=!this.multiple||!e.selected,r=r||!1;var o=function(t){s.a.each(i.selectOptions,(function(n){e!==n&&(n.selected=t)}))};(n=n||!1)&&(e.selected=!0),r?(o(!1),n=!0):this.multiple?(t.ctrlKey||t.metaKey||t.shiftKey)&&(n=!0,o(!1)):(o(!1),n=!0),this.selectionsChanged(n)}},e.prototype.selectionsChanged=function(e){this.selectedValues=s.a.filter(this.selectOptions,{selected:!0}),this.value.value=s.a.map(this.selectedValues,"value"),this.value.text=s.a.map(this.selectedValues,"text").join(" + "),this.multiple||(this.value.value=s.a.get(this.selectedValues,"0.value","")),e&&this.commitChanges()},e.prototype.commitChanges=function(){this.dropdownVisible=!1,this.updateLinkText(),this.value.text!==this.oldVariableText&&this.onChange({value:this.value})},e.prototype.queryChanged=function(){var e=this;this.highlightIndex=-1,this.search.options=s.a.filter(this.selectOptions,(function(t){return-1!==t.text.toLowerCase().indexOf(e.search.query.toLowerCase())})),this.search.options=this.search.options.slice(0,Math.min(this.search.options.length,1e3))},e.prototype.init=function(){s.a.isEmpty(this.value)&&(this.value={text:"",value:this.multiple?[]:""}),this.updateLinkText()},e}();function y(e,t,n,r){return{restrict:"E",scope:{options:"=",multiple:"=",value:"=",onChange:"&"},template:'\n\n',controller:"CustomSelectDropdownCtrl",controllerAs:"vm",bindToController:!0,link:function(e,r){var i=m.a.element(t.document.body),o=r.find(".variable-value-link"),a=r.find("input");function c(t){0===r.has(t.target).length&&e.$apply((function(){e.vm.commitChanges()}))}e.$watch("vm.dropdownVisible",(function(e){e?(a.css("width",Math.max(o.width(),136)+"px"),a.show(),o.hide(),a.focus(),n((function(){i.on("click",c)}),0,!1)):(a.hide(),o.show(),i.off("click",c))})),e.vm.init()}}}f.a.controller("CustomSelectDropdownCtrl",g),f.a.directive("customSelectDropdown",y);var v,b,I,w=n(10),D=n(223),k=n.n(D);v=w.Cascader,b="gfCascader",I={separator:"@?",placeholder:"@?",options:"<",changeOnSelect:"'),controller:(e=v,function(){function t(e,t){this._$scope=e,this._$element=t}return t.$inject=["$scope","$element"],t.prototype.$onInit=function(){var t=this,n=Object.entries(this._$scope).reduce((function(e,t){var n=t[0],r=t[1];return n.startsWith("$")||(e[n]="function"==typeof r?function(){for(var e=[],t=0;t")}));return e+'\n
\n
{{ctrl.lastQueryError}}
\n
\n '}(),_=n(1),A=(C=function(e,t){return(C=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}C(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),j=function(){return(j=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(f.target.namespace=null!==(c=null!==(i=f.target.namespace)&&void 0!==i?i:null===(a=null===(o=f.cascaderOptions[0])||void 0===o?void 0:o.items)||void 0===a?void 0:a[0].value)&&void 0!==c?c:f.cascaderOptions[0].value,f.target.service=Object(u.f)(f.target.namespace)||""),f.hideRegion=!!(null===(p=l.SERVICES.find((function(e){return e.service===f.target.service})))||void 0===p?void 0:p.hideRegion),s.a.defaultsDeep(f.target,f.defaults),f.instanceAliasList=f.getInstanceAliasList(f.target.service),f.panelCtrl.events.on("data-received",f.onDataReceived.bind(f),t),f.panelCtrl.events.on("data-error",f.onDataError.bind(f),t),f}return t.$inject=["$scope","$injector","templateSrv"],A(t,e),Object.defineProperty(t.prototype,"sortedPeriodList",{get:function(){return this.periodList.sort((function(e,t){return e-t}))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isCascader",{get:function(){return this.cascaderOptions.length>1},enumerable:!1,configurable:!0}),t.prototype.cascaderChange=function(e){this.target.namespace=e,this.onNamespaceChange()},t.prototype.onDataReceived=function(e){this.lastQueryError=void 0,this.lastQuery="";var t=s.a.find(e,{refId:this.target.refId});t&&(this.lastQuery=t.query)},t.prototype.onDataError=function(e){this.handleQueryCtrlError(e)},t.prototype.handleQueryCtrlError=function(e){var t;s.a.get(e,"query.refId")===this.target.refId&&(s.a.get(e,"error.data.error.innererror",void 0)?s.a.get(e,"error.data.error.innererror.innererror",void 0)?this.lastQueryError=s.a.get(e,"error.data.error.innererror.innererror.message"):this.lastQueryError=s.a.get(e,"error.data.error.innererror.message"):s.a.get(e,"error.data.error",void 0)?this.lastQueryError=s.a.get(e,"error.data.error.message"):s.a.get(e,"error.data",void 0)?this.lastQueryError=s.a.get(e,"error.data.message"):s.a.get(e,"data.error",void 0)?this.lastQueryError=s.a.get(e,"data.error.message"):(null===(t=e.data)||void 0===t?void 0:t.message)||(s.a.get(e,"data.message",void 0)?this.lastQueryError=s.a.get(e,"data.message"):this.lastQueryError=e))},t.prototype.getInstanceAliasList=function(e){return e?s.a.map(l.InstanceAliasList["".concat(s.a.toUpper(e),"InstanceAliasList")]||[],(function(e){return{text:"As ".concat(e),value:e}})):[]},t.prototype.getNamespaces=function(e){return s.a.map(this.namespaces,(function(e){return{text:e.label,value:e.namespace}}))},t.prototype.onNamespaceChange=function(){var e,t=Object(u.f)(this.target.namespace)||"";this.hideRegion=!!(null===(e=l.SERVICES.find((function(e){return e.service===t})))||void 0===e?void 0:e.hideRegion),this.regions=[],this.metricList=[],this.periodList=[],this.dimensionList=[],this.instanceList=[];var n=l.InitServiceState[t];this.target[t]=s.a.cloneDeep(n),this.target.service=t,this.instanceAliasList=this.getInstanceAliasList(t),this.refresh(),this.isCascader&&this.$scope.$apply()},t.prototype.getRegions=function(e){var t=this,n=this.target.service;return!n||s.a.startsWith("$")?[]:this.regions.length?this.regions:this.datasource.getRegions(n).then((function(e){return t.regions=e,e})).catch(this.handleQueryCtrlError.bind(this))},t.prototype.onRegionChange=function(){var e=this,t=this.target.service;this.target[t].instance="",this.instanceList=[],this.isMetricsNeedUpdate=!0,s.a.forEach(this.target[t].dimensionObject,(function(n,r){e.target[t].dimensionObject[r]={Name:r,Value:""}})),this.target[t].queries=s.a.cloneDeep(l.InitServiceState[t].queries),this.getInstances(),this.refresh()},t.prototype.getVariable=function(e,t){return Object(u.j)(this.templateSrv,this.panelCtrl.panel.scopedVars,e,t)},t.prototype.getMetricNameDesc=function(){var e=this,t=this.target.service,n=s.a.findIndex(this.metricList,(function(n){return n.MetricName===e.target[t].metricName}));return-1===n?"":Object(_.b)()===_.a.Chinese?this.metricList[n].Meaning.Zh:this.metricList[n].Meaning.En},t.prototype.getMetrics=function(e){var t=this,n=this.target.service,r=this.getVariable(s.a.get(this.target[n],"region",""),!1);return n&&r?!this.isMetricsNeedUpdate&&this.metricList.length>0?s.a.map(this.metricList,(function(e){return{text:e.MetricName,value:e.MetricName}})):this.datasource.getMetrics(n,r).then((function(e){t.metricList=e,t.isMetricsNeedUpdate=!1;var r=s.a.findIndex(t.metricList,(function(e){return e.MetricName===t.target[n].metricName}));return-1!==r&&(t.periodList=s.a.get(t.metricList[r],"Period",[]),t.dimensionList=s.a.get(t.metricList[r],"Dimensions.0.Dimensions",[])),s.a.map(e,(function(e){return{text:e.MetricName,value:e.MetricName}}))})).catch(this.handleQueryCtrlError.bind(this)):[]},t.prototype.onMetricChange=function(){var e=this,t=this.target.service,n=[],r=[],i={},o="",a=s.a.findIndex(this.metricList,(function(n){return n.MetricName===e.target[t].metricName}));-1!==a&&(n=s.a.get(this.metricList[a],"Period",[]),r=s.a.get(this.metricList[a],"Dimensions.0.Dimensions",[]),o=s.a.get(this.metricList[a],"Unit","")),s.a.forEach(r,(function(e){i[e]={Name:e,Value:""}})),this.periodList=n,this.dimensionList=r,this.target[t].period=n.length>0?-1===s.a.indexOf(n,300)?n[0]:300:void 0,this.target[t].dimensionObject=i,this.target[t].metricUnit=o,this.refresh()},t.prototype.getInstances=function(){var e=this,t=this.target.service,n=this.getVariable(s.a.get(this.target[t],"region",""),!1);if(!t||!n)return[];var r=this.getInstanceQueryParams(t);return this.datasource.getInstances(t,n,r).then((function(n){e.instanceList=n;var r=e.target[t].instanceAlias,i=[];return s.a.forEach(n,(function(e){var t=s.a.get(e,r);t&&("string"==typeof t?(e._InstanceAliasValue=t,i.push({text:t,value:JSON.stringify(e)})):s.a.isArray(t)&&s.a.forEach(t,(function(t){e._InstanceAliasValue=t,i.push({text:t,value:JSON.stringify(e)})})))})),i})).catch(this.handleQueryCtrlError.bind(this))},t.prototype.onInstanceChange=function(e){this.refresh()},t.prototype.getInstanceQueryParams=function(e){var t=this.target[e].queries;return l.GetInstanceQueryParams["".concat(s.a.toUpper(e),"GetInstanceQueryParams")]?l.GetInstanceQueryParams["".concat(s.a.toUpper(e),"GetInstanceQueryParams")](t):{}},t.prototype.onInstanceAliasChange=function(){if(!this.isVariable("instance")){var e=this.target.service;this.target[e].instance="",this.refresh()}},t.prototype.onInstanceQueryChange=function(){var e=this;if(!this.isVariable("instance")){var t=this.target.service;this.target[t].instance="",this.instanceList=[],s.a.forEach(this.target[t].dimensionObject,(function(n,r){e.target[t].dimensionObject[r]={Name:r,Value:""}})),this.refresh()}},t.prototype.isVariable=function(e){var t,n=this.target.service,r=null===(t=this.target[n])||void 0===t?void 0:t[e];return Object(u.m)(r)},t.prototype.checkShowDetail=function(e){return!this.isVariable(e)&&this.target.showInstanceDetails},t.prototype.getTimeDesc=function(){return"".concat(Object(_.d)("time_unit"),": ").concat(Object(_.d)("seconds"))},t.prototype.getSearchDesc=function(){return Object(_.d)("search_description")},t.template=E,t}(a.QueryCtrl),T=n(22),P=n(225),q=n.n(P),M=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),L=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.angularScope=null,t.angularQueryEditor=null,t.events=new q.a,t.renderAngularQueryEditor=function(){if(t.element){t.angularQueryEditor&&(t.angularQueryEditor.destroy(),t.angularQueryEditor=null);var e=Object(T.getAngularLoader)(),n={ctrl:t.getAngularQueryComponentScope()};t.angularQueryEditor=e.load(t.element,n,''),t.angularScope=n.ctrl}},t}return M(t,e),t.prototype.componentDidMount=function(){var e=this;setTimeout((function(){e.forceUpdate()}))},t.prototype.componentDidUpdate=function(e){var t=this.props,n=t.data,i=t.range;if(n!==e.data&&n){if(n.state===r.LoadingState.Done){var o=n.series.map((function(e){return Object(r.toLegacyResponseData)(e)}));this.events.emit("data-received",o)}else n.state===r.LoadingState.Error&&this.events.emit("data-error",n.error);this.angularScope&&(this.angularScope.range=i)}this.element&&!this.angularQueryEditor&&this.renderAngularQueryEditor()},t.prototype.getAngularQueryComponentScope=function(){var e=this,t=this.props,n=t.query,r=t.queries,i=t.range,o=t.datasource,a=t.queryCtrl;o.components={QueryCtrl:a};return{datasource:o,target:n,panel:{scopedVars:{},targets:r||[]},dashboard:{},refresh:function(){e.props.onChange(n),e.props.onRunQuery()},render:function(){return function(){}},events:this.events,range:i}},t.prototype.render=function(){var e=this;return o.a.createElement("div",{ref:function(t){e.element=t}})},t}(i.PureComponent),R=n(14),F=function(e){var t=Object(i.useRef)(e);return t.current=e,t},B=function(){return(B=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1e3,error:"仅支持返回1~1000条日志"},o.a.createElement(w.Input,{type:"number",min:1,max:1e3,value:t,onChange:r,width:25,className:"log-service-monospaced-font-family"}))})),ce=n(26),se=n(190),ue=n.n(se);var le=function(){function e(e,t){this.target=e,this.database=t}return e.prototype.buildExploreQuery=function(e,t,n){var r,i,o="";if("TAG_KEYS"===e)o="show tag keys",r=this.target.measurement,i=this.target.policy;else if("TAG_VALUES"===e)o="show tag values",r=this.target.measurement,i=this.target.policy;else if("MEASUREMENTS"===e)o="show measurements",n&&(o+=" with measurement =~ /(?i)"+ue.a.regexEscape(n)+"/");else{if("FIELDS"===e)return r=this.target.measurement,i=this.target.policy,r.match("^/.*/")||(r='"'+r+'"',i&&"default"!==i&&(r=(i='"'+i+'"')+"."+r)),"show field keys from "+r;if("RETENTION POLICIES"===e)return o='show retention policies on "'+this.database+'"'}if(r&&(r.match("^/.*/")||r.match(/^merge\(.*\)/)||(r='"'+r+'"'),i&&"default"!==i&&(r=(i='"'+i+'"')+"."+r),o+=" from "+r),t&&(o+=' with key = "'+t+'"'),this.target.tags&&this.target.tags.length>0){var a=Object(c.reduce)(this.target.tags,(function(n,r){return"MEASUREMENTS"===e&&"id"===r.key||r.key===t||">"===r.operator||"<"===r.operator||n.push(function(e,t){var n="",r=e.operator,i=e.value;return t>0&&(n=(e.condition.toLowerCase()||"AND")+" "),r||(r=/^\/.*\/$/.test(e.value)?"=~":"="),(""===i||"=~"!==r&&"!~"!==r)&&(i="'"+i.replace(/\\/g,"\\\\").replace(/\'/g,"\\'")+"'"),n+'"'+e.key+'" '+r+" "+i}(r,n.length)),n}),[]);a.length>0&&(o+=" where "+a.join(" "))}return"MEASUREMENTS"===e&&(o+=" limit 100"),o},e}(),pe=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},fe=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=n+2;if("count"!==t.def.type&&i)e[n+1].def.category===be.Aggregations&&e.splice(n+1,1);else if("count"===t.def.type)return void(i&&"count"===e[n+1].def.type||e.splice(n+1,0,t))}return void(e[n]=t)}if(r.def.category===be.Selectors)return void(e[n]=t)}e.splice(1,0,t)}function Oe(e,t){var n;for(n=0;n0){if("math"===e[n-1].def.type)return void(e[n-1]=t);if(n>1&&"math"===e[n-2].def.type)return void(e[n-2]=t);if("alias"===e[n-1].def.type)return void e.splice(n-1,0,t)}e.push(t)},category:be.Math,params:[{name:"expr",type:"string"}],defaultParams:[" / 100"],renderer:function(e,t){return t+" "+e.params[0]}}),we({type:"alias",addStrategy:function(e,t){var n=e.length;n>0&&"alias"===e[n-1].def.type?e[n-1]=t:e.push(t)},category:be.Aliasing,params:[{name:"name",type:"string",quote:"double"}],defaultParams:["alias"],renderMode:"suffix",renderer:function(e,t){return t+' AS "'+e.params[0]+'"'}});var Se={create:Ie,getCategories:function(){return be},replaceAggregationAdd:Ce},xe=function(){function e(e,t,n){this.selectModels=[],this.target=e,this.templateSrv=t,this.scopedVars=n,e.policy=e.policy||R.c.RUMServiceParams.policy,e.resultFormat=e.resultFormat||R.c.RUMServiceParams.resultFormat,e.orderByTime=e.orderByTime||R.c.RUMServiceParams.orderByTime,e.tags=e.tags||Object(c.cloneDeep)(R.c.RUMServiceParams.tags),e.groupBy=e.groupBy||Object(c.cloneDeep)(R.c.RUMServiceParams.groupBy),e.select=e.select||Object(c.cloneDeep)(R.c.RUMServiceParams.select),this.updateProjection()}return e.$inject=["target","templateSrv","scopedVars"],e.prototype.updateProjection=function(){this.selectModels=Object(c.map)(this.target.select,(function(e){return Object(c.map)(e,Se.create)})),this.groupByParts=Object(c.map)(this.target.groupBy,Se.create)},e.prototype.updatePersistedParts=function(){this.target.select=Object(c.map)(this.selectModels,(function(e){return Object(c.map)(e,(function(e){return{type:e.def.type,params:e.params}}))}))},e.prototype.hasGroupByTime=function(){return Object(c.find)(this.target.groupBy,(function(e){return"time"===e.type}))},e.prototype.hasFill=function(){return Object(c.find)(this.target.groupBy,(function(e){return"fill"===e.type}))},e.prototype.addGroupBy=function(e){var t=e.match(/^(\w+)\((.*)\)$/);if(t&&this.target.groupBy){var n=t[1],r=t[2],i=Se.create({type:n,params:[r]}),o=this.target.groupBy.length;0===o?this.target.groupBy.push(i.part):"time"===n?this.target.groupBy.splice(0,0,i.part):"tag"===n&&"fill"===this.target.groupBy[o-1].type?this.target.groupBy.splice(o-1,0,i.part):this.target.groupBy.push(i.part),this.updateProjection()}},e.prototype.removeGroupByPart=function(e,t){var n=Se.getCategories();"time"===e.def.type&&(this.target.groupBy=Object(c.filter)(this.target.groupBy,(function(e){return"fill"!==e.type})),this.target.select=Object(c.map)(this.target.select,(function(e){return Object(c.filter)(e,(function(e){var t=Se.create(e);return t.def.category!==n.Aggregations&&t.def.category!==n.Selectors}))}))),this.target.groupBy.splice(t,1),this.updateProjection()},e.prototype.removeSelect=function(e){this.target.select.splice(e,1),this.updateProjection()},e.prototype.removeSelectPart=function(e,t){if("field"===t.def.type){if(this.selectModels.length>1){var n=Object(c.indexOf)(this.selectModels,e);this.selectModels.splice(n,1)}}else{var r=Object(c.indexOf)(e,t);e.splice(r,1)}this.updatePersistedParts()},e.prototype.addSelectPart=function(e,t){var n=Se.create({type:t});n.def.addStrategy(e,n,this),this.updatePersistedParts()},e.prototype.getMeasurementAndPolicy=function(e){var t=this.target.policy,n=this.target.measurement||"measurement";return n.match("^/.*/$")?e&&(n=this.templateSrv.replace(n,this.scopedVars,"regex")):n='"'+n+'"',(t="default"!==t?'"'+this.target.policy+'".':"")+n},e.prototype.interpolateQueryStr=function(e,t,n){return t.multi||t.includeAll?"string"==typeof e?ue.a.regexEscape(e):"("+Object(c.map)(e,ue.a.regexEscape).join("|")+")":e},e.prototype.render=function(e){var t=this,n=this.target;if(n.rawQuery)return e?this.templateSrv.replace(n.query,this.scopedVars,this.interpolateQueryStr):n.query;var r,i,o="select ";for(r=0;r0&&(o+=", "),o+=s}o+=" from "+this.getMeasurementAndPolicy(e)+" where ";var u=Object(c.map)(n.tags,(function(n,r){return t.renderTagCondition(n,r,e)}));u.length>0&&(o+="("+u.join(" ")+") and "),o+="$timeFilter";var l="";for(r=0;r0&&(l+="fill"===p.def.type?" ":", "),l+=p.render("")}return l.length&&(o+=" group by "+l),n.fill&&(o+=" fill("+n.fill+")"),"DESC"===n.orderByTime&&(o+=" order by time desc"),n.limit&&(o+=" limit "+n.limit),n.slimit&&(o+=" slimit "+n.slimit),n.tz&&(o+=" tz('"+n.tz+"')"),o},e.prototype.renderAdhocFilters=function(e){var t=this;return Object(c.map)(e,(function(e,n){return t.renderTagCondition(e,n,!0)})).join(" ")},e.prototype.renderTagCondition=function(e,t,n){var r="",i=e.operator,o=e.value;return t>0&&(r=(e.condition.toLowerCase()||"and")+" "),i||(i=/^\/.*\/$/.test(o)?"=~":"="),"=~"!==i&&"!~"!==i?(n&&(o=this.templateSrv.replace(o,this.scopedVars)),">"!==i&&"<"!==i&&(o="'"+o.replace(/\\/g,"\\\\").replace(/\'/g,"\\'")+"'")):n&&(o=this.templateSrv.replace(o,this.scopedVars,"regex")),r+'"'+e.key+'" '+i+" "+o},e}(),Ee=function(){return(Ee=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]","<",">","=~","!~"].map(je),pt=["AND","OR"].map(je),ft=function(){return Promise.resolve(pt)},dt=function(){return Promise.resolve(lt)},mt=function(e){var t=e.tag,n=e.isFirst,r=e.onRemove,i=e.onChange,a=e.getTagKeyOptions,c=e.getTagValueOptions,s=ot(t),u=at(t,n);return o.a.createElement("div",{className:"gf-form"},void 0!==u&&o.a.createElement(Xe,{value:u,loadOptions:ft,disabled:!0,onChange:function(e){i(st(st({},t),{condition:e.value}))}}),o.a.createElement(Xe,{allowCustomValue:!0,value:t.key,loadOptions:function(){return a().catch((function(e){return[]})).then((function(e){return ut([{label:"-- remove filter --",value:void 0}],e.map(je),!0)}))},onChange:function(e){var n=e.value;void 0===n?r():i(st(st({},t),{key:null!=n?n:""}))}}),o.a.createElement(Xe,{value:s,loadOptions:dt,onChange:function(e){i(st(st({},t),{operator:e.value}))}}),o.a.createElement(Xe,{allowCustomValue:!0,value:t.value,loadOptions:function(){return c(t.key).then((function(e){return e.map(je)}))},onChange:function(e){var n,r,o,a,c=null!==(n=e.value)&&void 0!==n?n:"";i(st(st({},t),{value:c,operator:(r=s,o=c,a="=~"===r||"!~"===r,it(o)?a?r:"=~":a?"=":r)}))}}))},ht=function(e){var t=e.tags,n=e.onChange,r=e.getTagKeyOptions,i=e.getTagValueOptions,a=function(e,r){var i=t.map((function(t,n){return r===n?e:t}));n(i)};return o.a.createElement(o.a.Fragment,null,t.map((function(e,c){return o.a.createElement(mt,{tag:e,isFirst:0===c,key:c,onChange:function(e){a(e,c)},onRemove:function(){var e,r;e=c,r=t.filter((function(t,n){return n!==e})),n(r)},getTagKeyOptions:r,getTagValueOptions:i})})),o.a.createElement(ct,{allowCustomValue:!0,loadOptions:function(){return r().then((function(e){return e.map(je)}))},onAdd:function(e){var r,i,o,a;r=e,i=0===t.length,a={key:(o={key:r,value:"select tag value"}).key,value:o.value,operator:ot(o),condition:at(o,i)},n(ut(ut([],t,!0),[a],!1))}}))},gt=Object(ce.css)({paddingRight:"0",marginRight:"0"}),yt=function(e){var t=e.name,n=e.onRemove;return o.a.createElement(w.WithContextMenu,{getContextMenuItems:function(){return[{items:[{label:"remove",onClick:n}]}]}},(function(e){var n=e.openMenu;return o.a.createElement("button",{className:Object(ce.cx)("gf-form-label",gt),onClick:n},t)}))},vt=Object(ce.css)({paddingLeft:"0",paddingRight:"0",marginLeft:"0",marginRight:"0"}),bt=function(e){var t=e.name,n=e.params,r=e.onChange,a=e.onRemove,c=Object(w.useTheme)(),s=Object(i.useMemo)((function(){return function(e){return Object(ce.cx)("gf-form-label",Object(ce.css)({paddingLeft:"0",lineHeight:e.typography.lineHeight.md,fontSize:e.typography.size.base}))}(c)}),[c]),u=function(e,t){var i=n.map((function(e){return e.value}));i[t]=e,r(i)};return o.a.createElement("div",{className:s},o.a.createElement(yt,{name:t,onRemove:a}),"(",n.map((function(e,t){var r=e.value,i=e.options,a=t===n.length-1,c=null!==i?function(){return i().then((function(e){return e.map(je)}))}:void 0;return o.a.createElement(o.a.Fragment,{key:t},o.a.createElement(Xe,{allowCustomValue:!0,value:r,buttonClassName:vt,loadOptions:c,onChange:function(e){u(Ae(e.value),t)}}),!a&&",")})),")")},It=function(e){var t=e.parts,n=e.getNewPartOptions,r=e.onAddNewPart,i=e.onRemovePart,a=e.onChange;return o.a.createElement(o.a.Fragment,null,t.map((function(e,t){return o.a.createElement(bt,{key:t,name:e.name,params:e.params,onRemove:function(){i(t)},onChange:function(e){a(t,e)}})})),o.a.createElement(ct,{loadOptions:n,onAdd:r}))},wt=Object(ce.css)({paddingRight:"4px"}),Dt=function(e){var t=e.value,n=e.onChange,r=e.isWide,i=e.placeholder,a=Ke(t),c=a[0],s=a[1];return o.a.createElement(w.Input,{placeholder:i,className:Object(ce.cx)(null!=r&&r?"width-14":"width-8",wt),type:"text",spellCheck:!1,onBlur:function(){n(""===c?void 0:c)},onChange:function(e){s(e.currentTarget.value)},value:null!=c?c:""})},kt=[{label:"ascending",value:"ASC"},{label:"descending",value:"DESC"}],Ct=Object(ce.cx)("width-9",wt),Ot=function(e){var t=e.value,n=e.onChange,r=e.inputId;return o.a.createElement(w.Select,{inputId:r,className:Ct,onChange:function(e){n(Ae(e.value))},value:t,options:kt})},St=[{label:"Time series",value:"time_series"},{label:"Table",value:"table"},{label:"Logs",value:"logs"}],xt=["log_url_statistics","event_url_statistics","pv_url_statistics","user_event_user_event_unique","uv_project_unique","uv_page_unique","custom_url_info","custom_url_statistics","fetch_url_info","fetch_url_statistics","fetch_project_statistics","set_data_url_statistics","performance_page_statistics","performance_project_statistics","static_url_source","static_resource_statistics","static_project_statistics","webvitals_page_statistics","webvitals_project_statistics"],Et=Object(ce.cx)("width-8",wt),_t=function(e){var t=e.format,n=e.inputId,r=e.onChange;return o.a.createElement(w.Select,{inputId:n,className:Et,onChange:function(e){r(Ae(e.value))},value:t,options:St})};var At=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},jt=function(){return(jt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]","<",">","=~","!~","in"].map(Yt),Sn=["AND","OR"].map(Yt),xn=function(){return Promise.resolve(Sn)},En=function(){return Promise.resolve(On)},_n=function(e){var t=e.tag,n=e.isFirst,r=e.onRemove,i=e.onChange,a=e.getTagKeyOptions,c=e.getTagValueOptions,s=In(t),u=wn(t,n);return o.a.createElement("div",{className:"gf-form"},void 0!==u&&o.a.createElement(mn,{value:u,loadOptions:xn,disabled:!0,onChange:function(e){i(kn(kn({},t),{condition:e.value}))}}),o.a.createElement(mn,{allowCustomValue:!0,value:t.key,loadOptions:function(){return a().catch((function(e){return[]})).then((function(e){return Cn([{label:"-- remove filter --",value:void 0}],e.map(Yt),!0)}))},onChange:function(e){var n=e.value;void 0===n?r():i(kn(kn({},t),{key:null!=n?n:""}))}}),o.a.createElement(mn,{value:s,loadOptions:En,onChange:function(e){i(kn(kn({},t),{operator:e.value}))}}),o.a.createElement(mn,{allowCustomValue:!0,value:t.value,loadOptions:function(){return c(t.key).then((function(e){return e.map(Yt)}))},onChange:function(e){var n,r,o,a,c=null!==(n=e.value)&&void 0!==n?n:"";i(kn(kn({},t),{value:c,operator:(r=s,o=c,a="=~"===r||"!~"===r,bn(o)?a?r:"=~":a?"=":r)}))}}))},An=function(e){var t=e.tags,n=e.onChange,r=e.getTagKeyOptions,i=e.getTagValueOptions,a=function(e,r){var i=t.map((function(t,n){return r===n?e:t}));n(i)};return o.a.createElement(o.a.Fragment,null,t.map((function(e,c){return o.a.createElement(_n,{tag:e,isFirst:0===c,key:c,onChange:function(e){a(e,c)},onRemove:function(){var e,r;e=c,r=t.filter((function(t,n){return n!==e})),n(r)},getTagKeyOptions:r,getTagValueOptions:i})})),o.a.createElement(Dn,{allowCustomValue:!0,loadOptions:function(){return r().then((function(e){return e.map(Yt)}))},onAdd:function(e){var r,i,o,a;r=e,i=0===t.length,a={key:(o={key:r,value:"select tag value"}).key,value:o.value,operator:In(o),condition:wn(o,i)},n(Cn(Cn([],t,!0),[a],!1))}}))},jn=Object(ce.css)({paddingRight:"0",marginRight:"0"}),Nn=function(e){var t=e.name,n=e.onRemove;return o.a.createElement(w.WithContextMenu,{getContextMenuItems:function(){return[{items:[{label:"remove",onClick:n}]}]}},(function(e){var n=e.openMenu;return o.a.createElement("button",{className:Object(ce.cx)("gf-form-label",jn),onClick:n},t)}))},Tn=Object(ce.css)({paddingLeft:"0",paddingRight:"0",marginLeft:"0",marginRight:"0"}),Pn=function(e){var t=e.name,n=e.params,r=e.onChange,a=e.onRemove,c=Object(w.useTheme)(),s=Object(i.useMemo)((function(){return function(e){return Object(ce.cx)("gf-form-label",Object(ce.css)({paddingLeft:"0",lineHeight:e.typography.lineHeight.md,fontSize:e.typography.size.base}))}(c)}),[c]),u=function(e,t){var i=n.map((function(e){return e.value}));i[t]=e,r(i)};return o.a.createElement("div",{className:s},o.a.createElement(Nn,{name:t,onRemove:a}),"(",n.map((function(e,t){var r=e.value,i=e.options,a=t===n.length-1,c=null!==i?function(){return i().then((function(e){return e.map(Yt)}))}:void 0;return o.a.createElement(o.a.Fragment,{key:t},o.a.createElement(mn,{allowCustomValue:!0,value:r,buttonClassName:Tn,loadOptions:c,onChange:function(e){u(zt(e.value),t)}}),!a&&",")})),")")},qn=function(e){var t=e.parts,n=e.getNewPartOptions,r=e.onAddNewPart,i=e.onRemovePart,a=e.onChange;return o.a.createElement(o.a.Fragment,null,t.map((function(e,t){return o.a.createElement(Pn,{key:t,name:e.name,params:e.params,onRemove:function(){i(t)},onChange:function(e){a(t,e)}})})),o.a.createElement(Dn,{loadOptions:n,onAdd:r}))},Mn=Object(ce.css)({paddingRight:"4px"}),Ln=function(e){var t=e.value,n=e.onChange,r=e.isWide,i=e.placeholder,a=an(t),c=a[0],s=a[1];return o.a.createElement(w.Input,{placeholder:i,className:Object(ce.cx)(null!=r&&r?"width-14":"width-8",Mn),type:"text",spellCheck:!1,onBlur:function(){n(""===c?void 0:c)},onChange:function(e){s(e.currentTarget.value)},value:null!=c?c:""})},Rn=n(205),Fn=Object(ce.cx)("width-8",Mn),Bn=function(e){var t=e.format,n=e.inputId,r=e.onChange;return o.a.createElement(w.Select,{inputId:n,className:Fn,onChange:function(e){r(zt(e.value))},value:t,options:Rn.c})};var Qn=[{label:"ascending",value:"ASC"},{label:"descending",value:"DESC"}],Vn=Object(ce.cx)("width-9",Mn),Gn=function(e){var t=e.value,n=e.onChange,r=e.inputId;return o.a.createElement(w.Select,{inputId:r,className:Vn,onChange:function(e){n(zt(e.value))},value:t,options:Qn})},Un=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Kn=function(){return(Kn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0,n=Boolean(null==e?void 0:e.instanceSettings.jsonData.logServiceEnabled),r=Boolean(null==e?void 0:e.instanceSettings.jsonData.RUMServiceEnabled),i=Boolean(null==e?void 0:e.instanceSettings.jsonData.APMServiceEnabled);return[t&&R.a.monitor,n&&R.a.logService,r&&R.a.RUMService,i&&R.a.APMService].filter(Boolean)},enumerable:!1,configurable:!0}),t.prototype.render=function(){var e=this,t=this.props,n=t.datasource,r=t.query,i=this.state.isAlertVisiable;return n?o.a.createElement("div",null,this.enabledServices.length>1&&o.a.createElement(w.TabsBar,null,R.b.filter((function(t){return e.enabledServices.includes(t.value)})).map((function(t){return o.a.createElement(w.Tab,{key:t.value,label:t.label,active:r.serviceType===t.value,onChangeTab:function(){e.partialOnChange({serviceType:t.value})}})}))),o.a.createElement(w.TabContent,null,r.serviceType===R.a.monitor&&this.renderMonitorQueryEditor(),r.serviceType===R.a.logService&&this.renderLogServiceQueryEditor(),r.serviceType===R.a.RUMService&&this.renderRUMServiceQueryEditor(),r.serviceType===R.a.APMService&&this.renderAPMServiceQueryEditor()),i&&o.a.createElement(w.Alert,{title:"目前仅 CLS日志服务 数据源支持告警"})):o.a.createElement("div",null,"loading")},t.prototype.renderMonitorQueryEditor=function(){var e=this.props.datasource.monitorDataSource;return e&&o.a.createElement(L,Xn({},this.props,{queryCtrl:N,datasource:e}))},t.prototype.renderLogServiceQueryEditor=function(){return o.a.createElement(oe,Xn({},this.props))},t.prototype.renderRUMServiceQueryEditor=function(){var e=this.props,t=e.query,n=e.onChange,r=e.onRunQuery,i=e.datasource;return o.a.createElement(Mt,{query:t,onChange:n,onRunQuery:r,datasource:i})},t.prototype.renderAPMServiceQueryEditor=function(){var e=this.props,t=e.query,n=e.onChange,r=e.onRunQuery,i=e.datasource;return o.a.createElement(Jn,{query:t,onChange:n,onRunQuery:r,datasource:i})},t}(i.PureComponent),tr=function(){return o.a.createElement("a",{target:"_blank",href:"https://cloud.tencent.com/document/product/248/54510"},"Click here for more information of query")},nr=function(e){var t=F(e),n=e.query,r=e.datasource,a=Object(i.useCallback)((function(e){var n,r,i=t.current.onChange;r=e.serviceType===R.a.logService?"SQL: ".concat(null===(n=e.logServiceParams)||void 0===n?void 0:n.Query):e.queryString,null==i||i(e,r)}),[t]);return o.a.createElement(o.a.Fragment,null,o.a.createElement(w.InlineFieldRow,null,o.a.createElement(w.InlineField,{label:"服务类型",labelWidth:20},o.a.createElement(w.RadioButtonGroup,{options:R.b,value:Object(c.isString)(n)?R.a.monitor:n.serviceType,onChange:function(e){e===R.a.monitor&&a({serviceType:e,queryString:""}),e===R.a.logService&&a({serviceType:e,queryString:"",logServiceParams:Object(c.clone)(R.c.logServiceParams)}),e===R.a.RUMService&&a({serviceType:e,queryString:""}),e===R.a.APMService&&a({serviceType:e,queryString:""})}}))),n.serviceType===R.a.logService&&o.a.createElement(o.a.Fragment,null,o.a.createElement(oe,{datasource:r,query:n,onRunQuery:function(){},onChange:function(e){a({serviceType:R.a.logService,queryString:"",logServiceParams:e.logServiceParams})}})),n.serviceType===R.a.RUMService&&o.a.createElement(w.InlineFieldRow,null,o.a.createElement(w.InlineField,{label:"查询语句",labelWidth:20,grow:!0,tooltip:tr},o.a.createElement(w.Input,{name:"query",required:!0,placeholder:"metric name or tags query",onChange:function(e){return a({serviceType:R.a.RUMService,queryString:e.currentTarget.value})},value:Object(c.isString)(n)?n:n.queryString}))),n.serviceType===R.a.APMService&&o.a.createElement(w.InlineFieldRow,null,o.a.createElement(w.InlineField,{label:"查询语句",labelWidth:20,grow:!0,tooltip:tr},o.a.createElement(w.Input,{name:"query",required:!0,placeholder:"metric name or tags query",onChange:function(e){return a({serviceType:R.a.APMService,queryString:e.currentTarget.value})},value:Object(c.isString)(n)?n:n.queryString}))),(Object(c.isString)(n)||n.serviceType===R.a.monitor)&&o.a.createElement(w.InlineFieldRow,null,o.a.createElement(w.InlineField,{label:"查询语句",labelWidth:20,grow:!0,tooltip:tr},o.a.createElement(w.Input,{name:"query",required:!0,onChange:function(e){return a({serviceType:R.a.monitor,queryString:e.currentTarget.value})},value:Object(c.isString)(n)?n:n.queryString}))))};nr.displayName="VariableQueryEditor";var rr=n(70),ir=n(218),or=n(188),ar=n(68),cr=n(73),sr=n(72),ur=n(71),lr=function(){function e(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return e.prototype=Object.create(Error.prototype),e}(),pr=function(e){function t(t,n){var r=e.call(this)||this;return r.subject=t,r.subscriber=n,r.closed=!1,r}return ar.a(t,e),t.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}},t}(ur.a),fr=n(203),dr=function(e){function t(t){var n=e.call(this,t)||this;return n.destination=t,n}return ar.a(t,e),t}(sr.a),mr=function(e){function t(){var t=e.call(this)||this;return t.observers=[],t.closed=!1,t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return ar.a(t,e),t.prototype[fr.a]=function(){return new dr(this)},t.prototype.lift=function(e){var t=new hr(this,this);return t.operator=e,t},t.prototype.next=function(e){if(this.closed)throw new lr;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),i=0;i1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},t}(sr.a),br=function(e){function t(t,n){var r=e.call(this)||this;return r.source=t,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return ar.a(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new ur.a).add(this.source.subscribe(new wr(this.getSubject(),this))),e.closed&&(this._connection=null,e=ur.a.EMPTY)),e},t.prototype.refCount=function(){return gr()(this)},t}(cr.a),Ir=function(){var e=br.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}}(),wr=function(e){function t(t,n){var r=e.call(this,t)||this;return r.connectable=n,r}return ar.a(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(dr);sr.a;var Dr=function(){function e(e,t){this.subjectFactory=e,this.selector=t}return e.prototype.call=function(e,t){var n=this.selector,r=this.subjectFactory(),i=n(r).subscribe(e);return i.add(t.subscribe(r)),i},e}();function kr(){return new mr}function Cr(){return function(e){return gr()((t=kr,function(e){var r;if(r="function"==typeof t?t:function(){return t},"function"==typeof n)return e.lift(new Dr(r,n));var i=Object.create(e,Ir);return i.source=e,i.subjectFactory=r,i})(e));var t,n}}var Or=n(69),Sr=n.n(Or),xr=/(\w+)\[[\w/]+]/g,Er=[{prestoTypeRegex:/^timestamp with time zone$/,fieldType:r.FieldType.time,processor:function(e){var t=String(e).replace(xr,"$1");return Sr()(t).isValid()?t:e}},{prestoTypeRegex:/^timestamp$|^date$|^datetime$/,fieldType:r.FieldType.time},{prestoTypeRegex:/^time$/,fieldType:r.FieldType.time},{prestoTypeRegex:/^tinyint$|^samllint$|^integer$|^bigint$|^long$/,fieldType:r.FieldType.number},{prestoTypeRegex:/^real$|^double$|^decimal$/,fieldType:r.FieldType.number},{prestoTypeRegex:/^varchar$|^char$|^text$|^keyword$/,fieldType:r.FieldType.string},{prestoTypeRegex:/^boolean$/,fieldType:r.FieldType.boolean},{prestoTypeRegex:/^uuid$/,fieldType:r.FieldType.string},{prestoTypeRegex:/^ipaddress$/,fieldType:r.FieldType.string},{prestoTypeRegex:/^array\(.*\)$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^json$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^map\(.*\)$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^varbinary$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^interval$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^row$/,fieldType:r.FieldType.other}];var _r,Ar=function(){return(Ar=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=2))return"";n=t[0]}return n}function Br(e,t){void 0===t&&(t={});var n=Fr(null!=e?e:""),r=(null!=e?e:"").slice(n.length);return Object(T.getTemplateSrv)().replace(n,t,"lucene")+Object(T.getTemplateSrv)().replace(r,t,"raw")}function Qr(e,t){var n=Fr(null!=e?e:""),r=(null!=e?e:"").slice(n.length),i=t.MaxResultNum;return i&&r?/limit/.test(r)?e:e+" limit "+i:e}var Vr=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Gr=function(){return(Gr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&s.length>0)return l=c[0],[2,s.map((function(e){return{text:e[l.Name],value:e[l.Name]}}))];p.label=2;case 2:return[2,[]]}}))}))},t.prototype.testDatasource=function(){return Ur(this,void 0,void 0,(function(){var e;return Kr(this,(function(t){switch(t.label){case 0:if(!this.instanceSettings.jsonData.logServiceEnabled)return[2,null];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,z({TopicId:"",Query:"",From:Sr()().subtract(1,"h").valueOf(),To:Sr()().valueOf()},"ap-shanghai",{instanceSettings:this.instanceSettings})];case 2:return t.sent(),[2,{status:"success",message:"DatSource Connection OK"}];case 3:return(null==(e=t.sent())?void 0:e.code)&&"AuthFailure.SignatureFailure"!==e.code?[2,{status:"success",message:"DatSource Connection OK"}]:[2,{status:"error",title:e.code,message:e.message}];case 4:return[2]}}))}))},t.prototype.getLogsVolumeDataProvider=function(e){},t}(r.DataSourceApi),Yr=n(241),Wr=n(240),Jr=n(199),Zr=n.n(Jr),Hr=function(){function e(e){this.series=e.series,this.alias=e.alias,this.annotation=e.annotation,this.meta=e.meta,this.refId=e.refId}return e.prototype.getTimeSeries=function(){var e,t,n=this,r=[];return 0===this.series.length||Object(c.each)(this.series,(function(i){var o=i.columns.length,a=Object(c.map)(i.tags,(function(e,t){return t+": "+e}));for(t=1;t0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0||r.indexOf("show retention policies")>=0,o=r.indexOf("show measurements")>=0,a=new Set;return Object(c.each)(n.series,(function(e){Object(c.each)(e.values,(function(e){Object(c.isArray)(e)?i?oi(a,e[0]):void 0!==e[1]?oi(a,e[1]):oi(a,e[0]):oi(a,e)}))})),o?Array.from(a).filter((function(e){return xt.includes(e)})).map((function(e){return{text:e}})):Array.from(a).map((function(e){return{text:e}}))},e.prototype.getTable=function(e,t,n){var i,o,a=new Zr.a;if(e.length>0)if(a.meta=Xr(Xr({},n),{executedQueryString:null===(i=e[0].meta)||void 0===i?void 0:i.executedQueryString}),a.refId=t.refId,a=function(e,t,n){var i=function(e){var t,n=[];null===(t=e.select)||void 0===t||t.forEach((function(e){var t,r,i=e.filter((function(e){return"field"!==e.type}));i.length>0?n.push(i[0].type):(null===(r=null===(t=e[0])||void 0===t?void 0:t.params)||void 0===r?void 0:r[0])&&n.push(e[0].params[0].toString())}));var r=[];return n.forEach((function(e){r.push(function e(t,n,r,i){if(r.indexOf(n)>-1)return i++,e(t,t+"_"+i,r,i);return n}(e,e,r,0))})),r}(n);e[0].fields.forEach((function(e){"time"===e.name?t.columns.push({text:"Time",type:r.FieldType.time}):"value"===e.name&&e.labels&&Object.keys(e.labels).forEach((function(e){t.columns.push({text:e})}))})),"metricFindQuery"===e[0].refId&&e.forEach((function(e){e.name&&t.columns.push({text:e.name})}));for(var o=0;o0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(o+=" AND "+new xe({},this.templateSrv,a).renderAdhocFilters(p));return a.timeFilter={value:o},l=this.templateSrv.replace(l,a),this._seriesQuery(l,e).pipe(Object(ir.a)((function(o){if(!o||!o.results)return{data:[]};var a=[];for(t=0;t0)throw{message:"RUM Error: "+i[0].error,data:r}}}return r})),Object(Wr.a)((function(e){return e.cancelled?Object(rr.of)(e):Object(rr.throwError)(t.handleErrors(e))})))})))},t.prototype.handleErrors=function(e){var t,n={message:(null==e?void 0:e.status)||(null==e?void 0:e.message)||"Unknown error during query transaction. Please check JS console logs."};return(Number.isInteger(e.status)&&0!==e.status||e.status>=300)&&((null===(t=e.data)||void 0===t?void 0:t.error)?(n.message="RUM Error: "+e.data.error,n.data=e.data,n.config=e.config):(n.message="Network Error: "+e.statusText+"("+e.status+")",n.data=e.data,n.config=e.config)),n},t.prototype.getTimeFilter=function(e){return"time >= "+this.getRUMTime(e.rangeRaw.from,!1,e.timezone)+" and time <= "+this.getRUMTime(e.rangeRaw.to,!0,e.timezone)},t.prototype.getRUMTime=function(e,t,n){if(Object(c.isString)(e)){if("now"===e)return"now()";var i=/^now-(\d+)([dhms])$/.exec(e);if(i)return"now() - "+parseInt(i[1],10)+i[2];e=r.dateMath.parse(e,t,n)}return e.valueOf()+"ms"},t.prototype.fixTimePeriod=function(e,t){var n,r=this,i=this.getTimePeriod(t.rangeRaw,t.timezone);return null===(n=e.groupBy)||void 0===n||n.forEach((function(t){"time"===t.type&&"1d"!==t.params[0]&&(e=r.modifyTime(e,i))})),e},t.prototype.getTimePeriod=function(e,t){var n,i,o=null===(n=r.dateMath.parse(e.from,!1,t))||void 0===n?void 0:n.valueOf(),a=null===(i=r.dateMath.parse(e.to,!0,t))||void 0===i?void 0:i.valueOf(),c=0;return o&&a&&(c=a-o),c<=432e5?"1m":c<=2592e5?"30m":c<=6048e5?"1h":"1d"},t.prototype.modifyTime=function(e,t){var n;if(!e.groupBy)return e;for(var r=0,i=e.groupBy;r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(d.b)}])})); //# sourceMappingURL=module.js.map \ No newline at end of file diff --git a/dist/datasource/module.js.LICENSE.txt b/dist/datasource/module.js.LICENSE.txt index c18ab1d..84c3fdd 100644 --- a/dist/datasource/module.js.LICENSE.txt +++ b/dist/datasource/module.js.LICENSE.txt @@ -1,3 +1,10 @@ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ + /*! ***************************************************************************** Copyright (c) Microsoft Corporation. @@ -12,3 +19,5 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ + +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ diff --git a/dist/datasource/module.js.map b/dist/datasource/module.js.map index 01c1289..68c18ca 100644 --- a/dist/datasource/module.js.map +++ b/dist/datasource/module.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://TencentCloudMonitorGrafanaApp/webpack/bootstrap","webpack://TencentCloudMonitorGrafanaApp/external \"lodash\"","webpack://TencentCloudMonitorGrafanaApp/./locale/zh_CN.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/en_US.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/index.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/sign.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/signV2.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/constants.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/utils.ts","webpack://TencentCloudMonitorGrafanaApp/external \"react\"","webpack://TencentCloudMonitorGrafanaApp/external \"app/core/core_module\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/indexedDB.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/datasourceStorage.ts","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/data\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/ui\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/index.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/runtime\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/../node_modules/tslib/tslib.es6.js","webpack://TencentCloudMonitorGrafanaApp/external \"moment\"","webpack://TencentCloudMonitorGrafanaApp/external \"emotion\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cos/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/external \"rxjs\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cos/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor sync ^.*$","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/MonitorDatasource.ts","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/utils.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/formats.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/query_filter.ts","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/index.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/stringify.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/parse.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor sync ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)","webpack://TencentCloudMonitorGrafanaApp/external \"angular\"","webpack://TencentCloudMonitorGrafanaApp/external \"app/core/utils/kbn\"","webpack://TencentCloudMonitorGrafanaApp/external \"app/core/table_model\"","webpack://TencentCloudMonitorGrafanaApp/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/css-loader/dist/runtime/api.js","webpack://TencentCloudMonitorGrafanaApp/external \"app/plugins/sdk\"","webpack://TencentCloudMonitorGrafanaApp/external \"react-dom\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/query-ctrl/partials/query.editor.html","webpack://TencentCloudMonitorGrafanaApp/../node_modules/eventemitter3/index.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/query-ctrl/css/query_editor.css?c63a","webpack://TencentCloudMonitorGrafanaApp/./datasource/query-ctrl/css/query_editor.css","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/index.less?44dc","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/index.less","webpack://TencentCloudMonitorGrafanaApp/./datasource/query-ctrl/components/multi_condition.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/query-ctrl/components/custom_select_dropdown.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/react-loader.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/query-ctrl/components/cascader.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/common/constants.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/types.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/query-ctrl/partials/queryEditorTemplate.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/query-ctrl/query.ctrl.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/query-ctrl/QueryCtrlRender.tsx","webpack://TencentCloudMonitorGrafanaApp/../node_modules/react-use/esm/useLatest.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/common/model/api.ts","webpack://TencentCloudMonitorGrafanaApp/../node_modules/react-use/esm/useEffectOnce.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/common/utils.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/components/TopicSelector.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/LogServiceQueryEditor.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/query_builder.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/RUMMetadataQuery.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/query_part.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/RUM_query_model.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/common/unwrap.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/common/toSelectableValue.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/common/partListUtils.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/components/SegmentSection.tsx","webpack://TencentCloudMonitorGrafanaApp/../node_modules/react-use/node_modules/tslib/tslib.es6.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/react-use/esm/useAsyncFn.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/react-use/esm/useMountedState.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/common/useShadowedState.ts","webpack://TencentCloudMonitorGrafanaApp/../node_modules/react-use/esm/usePrevious.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/components/Seg.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/components/FromSection.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/common/tagUtils.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/components/AddButton.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/components/TagsSection.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/components/PartListSection.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/components/styles.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/components/InputSection.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/components/OrderByTimeSection.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/common/constants.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/components/FormatAsSection.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/RUMServiceQueryEditor.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/common/useUniqueId.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/queryUtils.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/QueryEditor.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/VariableQueryEditor.tsx","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/isFunction.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/config.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/hostReportError.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/Observer.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/isArray.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/isObject.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/Subscription.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/Subscriber.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/operators/map.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/symbol/observable.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/identity.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/pipe.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/Observable.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/toSubscriber.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/canReportError.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/SubjectSubscription.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/Subject.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/operators/refCount.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/operators/multicast.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/operators/share.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/common/format/prestoType.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/common/format/ConvertSearchResultsToDataFrame.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/common/format/formatSearchLog.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/common/format/prepareTimeSeries.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/common/utils/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/LogServiceDataSource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/log-service/common/format/ConvertLogContextToDataFrame.ts","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/symbol/iterator.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/isArrayLike.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/isPromise.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/subscribeTo.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/subscribeToArray.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/scheduled/scheduled.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/isInteropObservable.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/util/isIterable.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/innerSubscribe.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/operators/mergeMap.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/observable/from.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/rxjs/_esm5/internal/operators/catchError.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/RUM_series.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/response_parser.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/rum-service/RUMServiceDataSource.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/DataSource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/config-editor/ConfigEditor.tsx","webpack://TencentCloudMonitorGrafanaApp/./datasource/module.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_EXTERNAL_MODULE__0__","language","enable_intranet_API_mode","cloud_database","cloud_load_balancer","virtual_private_cloud","content_delivery_network","message_queue","direct_connect","cloud_physical_machine","elastic_mapReduce","edge_computing_machine","RUM","CLS","CVM","CDB","CMONGO","POSTGRES","REDIS","REDIS_MEM","SQLSERVER","CYNOSDB_MYSQL","TCAPLUS","TDMYSQL","PCX","BWP","NAT_GATEWAY","VPNGW","VPNX","DCG","CEIP_SUMMARY","VPC_NET_DETECT","VBC","LB","LB_PUBLIC","LB_PRIVATE","LOADBALANCE","CDN","CDN_LOG_DATA","OV_CDN","SCF_V2","CFS","COS","CKAFKA","CMQ","CMQTOPIC","TDMQ","TDMQ_ROCKETMQ","TDMQ_RABBITMQ","DCX","DC","CPM","BM_PCX","BM_LB","BM_INTRA_LB","CES","BLOCK_STORAGE","APIGATEWAY","QAAP","ECM","ECM_BLOCK_STORAGE","ECM_LB","GSE","TKE","ECDN","WAF","multi_scene","lite","cloud_monitor","cloud_log_service","real_user_monitoring","region","log_topic","syntax_rule","max_result_num","search_statement","time_unit","seconds","search_description","Language","locale_language","Chinese","setLanguage","getLanguage","options","secretId","service","action","host","version","payload","backendSrv","datasourceId","this","JSON","stringify","nowDate","utc","timestamp","unix","date","format","getHeader","getResourceHeader","res","datasourceRequest","url","method","headers","data","Host","Service","Version","Action","Region","Timestamp","Method","Uri","Query","Body","Headers","resp","authorization","token","intranet","grafanaVersion","window","grafanaBootData","settings","buildInfo","Authorization","toString","defaults","path","generateQueryString","getResourceQueryString","assign","secretKey","querystring","queryString","TcDataSourceId","id","FINACE_REGIONS","SERVICES_API_INFO","api","monitor","cls","cvm","cdb","pcx","vpc","mongodb","clb","postgres","cdn","redis","scf","cfs","ckafka","dc","cynosdb","sqlserver","bm","bmeip","bmvpc","bmlb","es","emr","cmq","cbs","tcaplusdb","dcdb","apigateway","tdmq","tdmq_rabbitmq","tdmq_rocketmq","gaap","ecm","gse","lighthouse","tsf","rum","tke","ecdn","waf","FINACE_HOST","GetServiceAPIInfo","indexOf","find","__","getHostAndPath","GetServiceFromNamespace","namespace","ParseMetricQuery","query","result","queries","split","forEach","item","str","trim","val","parse","e","toLower","ReplaceVariable","templateSrv","scopedVars","field","multiple","varname","varFlag","regResult1","String","match","regResult2","parseVariableFormat","replaceVar","replace","error","isArray","GetDimensions","obj","isEmpty","dimensions","Value","undefined","push","Name","ParseQueryResult","response","instances","timeshift","instanceList","cloneDeep","dataPoints","map","dataPoint","instanceAliasValue","length","isInstanceMatch","_InstanceAliasValue","splice","target","MetricName","datapoints","parseDataPoint","timestamps","values","index","instance","isVariable","GetRequestParams","signObj","signParams","pick","headerSigned","GetRequestParamsV2","sign","SliceLength","total","len","num","Math","ceil","Offset","CoreApp","IS_DEVELOPMENT_ENVIRONMENT","instanceSettings","instanceListCache","extraMetricDims","checkKeys","MetricReqConfig","extrasAlias","queryMonitorExtraConfg","CandiateDimensions","jsonData","Namespace","getOtherAlias","alias","extra","extraAlia","getVariable","getAliasValue","Array","join","formatVarDisplay","displayTpl","instanceAlias","a","b","InstanceAliasList","includes","metricFindQuery","regex","display","instancealias","templateQueryIdMap","isObject","isString","getRegions","getVariableInstances","flatMap","insAlias","text","setInstance","getInstance","instanceCache","fetchMetricData","Promise","resolve","dimensionsFormat","dimKeys","ins","dimensionObject","keyTmp","invalidDim","InvalidDimensions","getInvalidDimensions","extraDimValue","dim_KeyInStorage","dim_KeyInTarget","dim_KeyInMap","dim_KeyInIns","extraSourceMap","getExtraStorage","extraStorage","isStringOrNumber","isNumber","otherAlias","getDimensionsVal","Ekey","dimVal","filter","targets","hide","metricName","reduce","prev","cloneTarget","concat","inst","getDefaultInsObj","insInReq","keys","dimResult","Dimensions","StartTime","range","from","subtract","EndTime","to","Period","period","Instances","getMonitorData","all","then","responses","flatten","getInstanceReqConfig","selfIns","metric","rs","valStr","params","serviceInfo","doRequest","RegionSet","RegionName","RegionState","getMetrics","MetricSet","resFilterFn","resultFilter","getInstances","InstanceReqConfig","interceptor","Limit","request","Error","TotalCount","TotalCnt","TotalNumber","param","isValidConfigField","testDatasource","cvmErr","monitorErr","serviceErr","cvmAuthFail","monitorAuthFail","serviceAuthFail","messages","message","compact","uniq","status","title","statusText","code","getFieldsValue","fields","fetchAllFactory","fetcher","_params","omit","Result","firstLists","delta","batchCount","pmList","fill","_","isOffsetPage","acc","cur","lists","list","instanceQueryParamsBaseParse","isFilter","Values","slice","Filters","getNamesapceFromService","serviceName","serviceGroupBy","services","label","groupName","existedGroup","items","isTargetEqual","newTargetString","oldTargetString","newTarget","oldTarget","getTimeShiftInMs","timeShift","parts","exec","amount","parseInt","__WEBPACK_EXTERNAL_MODULE__5__","__WEBPACK_EXTERNAL_MODULE__6__","config","detailConfig","QueryCtrl","newQueryIns","$scope","$rootScope","getDropdown","datasource","getFilterDropdown","directive","template","controller","restrict","scope","showDetail","getDropdownOptions","onChange","store","promisify","type","reject","onsuccess","event","returnMap","msg","onerror","props","initDB","indexedDB","webkitIndexedDB","mozIndexedDB","msIndexedDB","open","onupgradeneeded","db","objectStoreNames","contains","createObjectStore","keyPath","openDB","insertData","storeName","transaction","objectStore","add","oncomplete","addData","isCover","getData","oldData","getObjectStore","newData","requestUpdate","put","seviceName","getAllData","getAll","insKey","cacheWay","setStorage","getStorage","setExtraStorage","EValue","serviceKey","storage","__WEBPACK_EXTERNAL_MODULE__9__","CKAFKAQueryDescriptor","enDescriptor","cnDescriptor","link","min","max","CKAFKA_STATE","metricUnit","topicId","topicName","consumerGroup","partition","Status","InstanceId","SearchWord","TagKey","GetInstanceQueryParams","CKAFKAInstanceAliasList","CKAFKATopicAliasList","CKAFKAInvalidDemensions","Proxy","prop","toLocaleLowerCase","keyInStorage","TopicList","GroupList","PartitionList","TopicId","TopicName","GroupName","PartitionId","__WEBPACK_EXTERNAL_MODULE__11__","queryEditorName","LOADBALANCEFieldsDescriptor","queryEditorConfig","instanceDocUrl","fieldDescriptor","LOADBALANCE_STATE","Port","Protocol","listener","servers","serverPort","LoadBalancerIds","Forward","LoadBalancerName","Domain","LoadBalancerVips","BackendPublicIps","BackendPrivateIps","ProjectId","WithRs","VpcId","SecurityGroup","MasterZone","OrderBy","OrderType","LOADBALANCEListenerAliasList","LOADBALANCEServerAliasList","LOADBALANCEVALIDDIMENSIONS","vip","loadBalancerPort","protocol","lanIp","port","CANDIATEDIMENSIONS","PrivateIpAddresses","ServerPort","TDMQInvalidDemensions","tenantId","tenant","environmentId","TDMQInstanceAliasList","TDMQFilterFieldsDescriptor","CDNPROVINCE_STATE","regionSupported","modifyDimensons","metricItem","metricTmp","EnvironmentId","fleetId","GSEInvalidDemensions","instanceid","fleetid","queuename","GSEInstanceAliasList","FleetId","fleet","queue","GSEFilterFieldsDescriptor","GSE_STATE","v","DCDBInvalidDemensions","nodeid","shardid","ShardId","DCDBInstanceAliasList","NodeId","ShardInstanceId","DCDBFilterFieldsDescriptor","DCDB_STATE","InstanceIds","SearchName","SearchKey","ProjectIds","SubnetId","OrderByType","ExclusterType","ExclusterIds","FilterInstanceType","modifyMetricConf","IsFilterVpc","IsFilterExcluster","RedisMemFieldsDescriptor","REDISMEM_STATE","VpcIds","SubnetIds","InstanceName","UniqVpcIds","UniqSubnetIds","TypeVersion","EngineName","AutoRenew","BillingMode","Type","rnodeid","pnodeid","REDISMEMInstanceAliasList","RedisMemInvalidDemensions","NodeType","node","TDMQRABBITMQInstanceAliasList","TDMQ_STATE","NodeName","group","TDMQROCKETMQInstanceAliasList","instanceIdsChecked","filtersChecked","ClusterIdList","includeVip","NamespaceId","SERVICES","href","hideRegion","Datasources","InitStates","hackModuleName","postgresql","mr","filePath","moduleName","fileName","prefix","toUpperCase","getParams","ECMBLOCKSTORAGEInvalidDemensions","uuid","diskId","ECMBLOCKSTORAGEInstanceAliasList","ECMBLOCKSTORAGEFilterFieldsDescriptor","ECMBLOCKSTORAGE_STATE","DiskId","APIGATEWAYInvalidDemensions","serviceId","environmentName","apiid","apiId","APIGATEWAYInstanceAliasList","environmentList","EnvironmentName","APIGATEWAYFilterFieldsDescriptor","APIGATEWAY_STATE","ServiceId","ServiceName","NotUsagePlanId","Environment","IpVersion","InstanceQueryDescriptor","InvalidDemensions","k","receiver","startsWith","Reflect","has","propKey","Ip","nodeIP","DisplayStrategy","Order","OrderField","Asc","VCLBInvalidDemensions","VCLBInstanceAliasList","VCLBFilterFieldsDescriptor","VCLB_STATE","clbNamespaceMap","public","private","cynosdbMysqlFilterFieldsDescriptor","CYNOSDB_STATE","DbType","CYNOSDBMYSQLInstanceAliasList","CYNOSDBInvalidDemensions","instanceId","SCFQueryDescriptor","SCF_STATE","Description","SCFInstanceAliasList","SCFInvalidDemensions","functionName","SCFDefaultDimensionList","__WEBPACK_EXTERNAL_MODULE__26__","CLSInvalidDemensions","CLSInstanceAliasList","CLSFilterFieldsDescriptor","CLS_STATE","uin","logsetName","logsetId","tagKey","storageType","SQLSERVERInvalidDemensions","resourceId","SQLSERVERInstanceAliasList","SQLSERVERNETFilterFieldsDescriptor","SQLSERVER_STATE","InstanceIdSet","PayMode","VipSet","InstanceNameSet","VersionSet","Zone","BMINTRALBInvalidDemensions","vpcId","BMINTRALBInstanceAliasList","BMINTRALBFilterFieldsDescriptor","BMINTRALB_STATE","BMLBValidMetricsT","isValidMetric","validMetrics","toUpper","CPMInvalidDemensions","BMLBInstanceAliasList","CPMFilterFieldsDescriptor","CPM_STATE","BMPCXInvalidDemensions","peeringConnectionId","BMPCXInstanceAliasList","BMPCXFilterFieldsDescriptor","BMPCX_STATE","VpcPeerConnectionIds","CBSInvalidDemensions","diskname","unInstanceId","CBSInstanceAliasList","CBSFilterFieldsDescriptor","CBS_STATE","DiskIds","ReturnBindAutoSnapshotPolicy","metricObj","dimension","CDNPROVINCEInvalidDemensions","domain","projectid","province","appid","CDNPROVINCEInstanceAliasList","CDNPROVINCEFilterFieldsDescriptor","isp","district","origin","serviceType","projectId","domainType","fullUrlCache","https","originPullProtocol","CEIPInvalidDemensions","eip","CEIPSUMMARYInstanceAliasList","CEIPFilterFieldsDescriptor","CEIP_STATE","subscription","subscriptionId","CPMInstanceAliasList","DeviceClassCode","WanIps","LanIps","Alias","VagueIp","AutoRenewFlag","DeviceType","IsLuckyDevice","ECDNInstanceAliasList","ECDNInvalidDemensions","ECDN_STATE","disable","area","ECDNFilterFieldsDescriptor","_queries","Fuzzy","ECMInvalidDemensions","ECMInstanceAliasList","ECMFilterFieldsDescriptor","ECM_STATE","zone","PostgresFieldsDescriptor","POSTGRESInstanceAliasList","POSTGRES_STATE","PostgreInvalidDemensions","uid","VPCNETInvalidDemensions","netdetectid","netDetectId","VPCNETDETECTInstanceAliasList","VPCNETFilterFieldsDescriptor","VPCNET_STATE","WAFFilterFieldsDescriptor","WAF_STATE","WAFInstanceAliasList","WAFInvalidDemensions","CDBFieldsDescriptor","CDB_STATE","InstanceTypes","Vips","SecurityGroupId","PayTypes","InstanceNames","TaskStatus","EngineVersions","ZoneIds","CdbErrors","OrderDirection","InitFlag","CDBInstanceAliasList","CDBInvalidDemensions","insttype","CESInvalidDemensions","uInstanceId","CESInstanceAliasList","CESFilterFieldsDescriptor","CES_STATE","OrderByKey","IpList","DCFilterFieldsDescriptor","DC_STATE","DirectConnectIds","DCInstanceAliasList","DCInvalidDemensions","directConnectId","directconnectid","DCGInvalidDemensions","directConnectGatewayId","DCGInstanceAliasList","DCGFilterFieldsDescriptor","DCG_STATE","DCXFilterFieldsDescriptor","DCX_STATE","DCXInstanceAliasList","DCXInvalidDemensions","directconnectconnid","directConnectConnId","ECMLBInvalidDemensions","ECMLBInstanceAliasList","ECMLBFilterFieldsDescriptor","MONGODBFieldsDescriptor","MONGODB_STATE","InstanceType","ClusterType","MONGODBInstanceAliasList","MONGODBInvalidDemensions","replica","Replica","Node","QAAPInvalidDemensions","channelId","QAAPInstanceAliasList","QAAPFilterFieldsDescriptor","QAAP_STATE","AccessRegion","RealServerRegion","GroupId","TCAPLUSInvalidDemensions","TCAPLUSInstanceAliasList","TCAPLUSFilterFieldsDescriptor","TCAPLUS_STATE","ClusterId","TableGroupIds","TableName","TableInstanceId","TableIdlType","TableType","ListElementNum","ReservedVolume","ReservedReadQps","ReservedWriteQps","Memo","FileName","FileExtType","FileSize","FileContent","SelectedTables","regonsMap","VBCInvalidDemensions","VBCInstanceAliasList","VBCFilterFieldsDescriptor","VBC_STATE","DRegion","SRegion","state","VPNGWInvalidDemensions","vpnGwId","VPNGWInstanceAliasList","VPNGWFilterFieldsDescriptor","VPNGW_STATE","VPNXInvalidDemensions","vpnConnId","VPNXInstanceAliasList","VPNXFilterFieldsDescriptor","VPNX_STATE","LighthouseFilterFieldsDescriptor","LIGHTHOUSE_STATE","LIGHTHOUSEInstanceAliasList","LighthouseInvalidDemensions","CFSQueryDescriptor","CFS_STATE","FileSystemId","CFSInstanceAliasList","CFSInvalidDemensions","queueId","queueName","QueueName","CVMFilterFieldsDescriptor","CVM_STATE","CVMInstanceAliasList","CVMValidMetricsT","CVMValidMetrics","PCX_STATE","limit","offset","peeringConnectionName","PCXFieldsDescriptor","PCXInstanceAliasList","RedisFieldsDescriptor","REDIS_STATE","REDISInstanceAliasList","RedisInvalidDemensions","redis_uuid","TSFFieldsDescriptor","TSF_STATE","ApplicationType","MicroserviceType","ApplicationResourceTypeList","ApplicationIdList","TSFInstanceAliasList","TSFInvalidDemensions","applicationid","BWPFilterFieldsDescriptor","BWP_STATE","BandwidthPackageIds","BWPInstanceAliasList","BWPInvalidDemensions","bandwidthPackageId","CDNFilterFieldsDescriptor","CDN_STATE","CDNInstanceAliasList","CDNInvalidDemensions","LBFilterDescriptor","LB_STATE","LBInstanceAliasList","LBInvalidDemensions","NATGATEWAYInstanceAliasList","NATGatewayFilterFieldsDescriptor","NATGATEWAY_STATE","NatGatewayIds","NATInvalidDemensions","natId","OVCDNFilterFieldsDescriptor","OVCDN_STATE","OVCDNInstanceAliasList","OVCDNInvalidDemensions","extendStatics","setPrototypeOf","__proto__","__extends","constructor","__WEBPACK_EXTERNAL_MODULE__67__","__WEBPACK_EXTERNAL_MODULE__68__","TKE_STATE","conditions","groupBys","ClusterIds","ClusterName","ClusterStatus","TKEFilterFieldsDescriptor","TKEInstanceAliasList","responseField","getEnvironmentNameList","LoadBalancerType","RegionMap","keyBy","RegionInfoSet","rawSet","getZones","ZoneSet","ZoneName","ZoneId","ZoneState","getConsumerList","MapInfoList","TopicAliasList","consumerGroupCache","getConsumerGroups","groupname","topicid","consumerGoup","topicList","GroupDetailList","uniqBy","SubscribedInfos","ConsumerGroupName","SubscribedInfo","partitions","sub","Partition","formatTopicVarDisplay","topic","topicAlias","topicalias","par","ListenerAliasList","ServerAliasList","tagret","getListenerList","LoadBalancerId","formatVariableDisplay","aliasList","getServerList","listenerId","ListenerIds","Listeners","Rules","Targets","elem","listenAlias","lisId","listenerid","serverprivateip","serveralias","serversList","chain","dims","Set","fetchAllSubscription","SubscriptionId","cosURL","Buckets","BucketName","bucket","DeviceClassSet","Product","extraActionMap","DescribeDCDBShards","pickKey","DescribeDCDBInstanceNodeInfo","RegionList","act","getDiskList","instanceObj","getQueueNameList","getFleetList","ReplicaAliasList","replicaAlias","ReplicaSetId","replicasetid","times","SecondaryNum","nodeId","fetchAllNodes","NodeFlag","resultT","doRequestV2","totalCount","getVpcId","VpcSet","getVpcIds","MonitorVersion","getInstanceNodeInfo","nodetype","ndoeTypeIndex","getVersions","Versions","FunctionName","RegionInfos","DescribeTopics","DescribeEnvironments","DescribeRabbitMQNodeList","DescribeRocketMQNamespaces","DescribeRocketMQGroups","variableToArray","variable","tke_cluster_instance_id","Key","Operator","MetricNames","Module","Conditions","GroupBys","Data","Points","point","dimensionSort","dimensionString","timeshiftString","getAllMetrics","public_metrics","private_metrics","__WEBPACK_EXTERNAL_MODULE__125__","init","getInstanceId","getServiceFn","getExtraDropdown","sQuery","onRefresh","onChecked","srcField","dstField","bwpQuery","BWPQueryCtrl","cdbQuery","CDBQueryCtrl","cdnQuery","CDNQueryCtrl","ExtraFields","scfQuery","SCFQueryCtrl","onInstanceChange","getExtraFields","CKAFKAQueryCtrl","element","attrs","$watch","newValue","oldValue","onFieldChange","getVariableId","variableData","getServersDropdown","getServerPortDropdown","serverPortList","cacheMap","getTopicName","onExtraFieldChange","datas","CmqTopicQueryCtrl","cvmQuery","CVMQueryCtrl","dropdownTextConfig","actionMaps","lbQuery","LBQueryCtrl","lighthouseQuery","LighthouseQueryCtrl","replicaId","mongodbQuery","MongoDBQueryCtrl","some","dataT","mrQuery","MrQueryCtrl","natGatewayQuery","NatGatewayQueryCtrl","ovCdnQuery","OVCDNQueryCtrl","pcxQuery","PCXQueryCtrl","redisQuery","RedisQueryCtrl","clearExtrasAlias","redisMemQuery","RedisMemQueryCtrl","evId","tdmqRocketmqQuery","TdmqRocketmqQueryCtrl","addCondition","deleteCondition","targetCondition","getOperator","tsfQuery","TSFQueryCtrl","VBCQueryCtrl","webpackContext","req","webpackContextResolve","_class","getNamespaces","namespaces","getCascaderNamespaces","validServices","getSelectedServices","promises","optionsTemp","promiseTemp","Done","results","getListeners","errorMsg","upperFirst","fnName","argu","hexTable","array","arrayToObject","source","plainObjects","refs","j","pop","compacted","compactQueue","decode","decodeURIComponent","encode","string","out","charCodeAt","charAt","isBuffer","isRegExp","merge","allowPrototypes","mergeTarget","percentTwenties","formatters","RFC1738","RFC3986","SPQueryCtrl","_config","queryDDO","formats","utils","arrayPrefixGenerators","brackets","indices","repeat","toISO","Date","toISOString","delimiter","encoder","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","generateArrayPrefix","sort","allowDots","formatter","objKeys","opts","TypeError","arrayFormat","joined","addQueryPrefix","arrayLimit","decoder","depth","parameterLimit","parseKeys","givenKey","child","segment","parent","leaf","root","cleanRoot","isNaN","parseArrays","parseObject","ignoreQueryPrefix","tempObj","cleanStr","Infinity","part","bracketEqualsPos","pos","parseValues","newObj","__WEBPACK_EXTERNAL_MODULE__192__","__WEBPACK_EXTERNAL_MODULE__193__","__WEBPACK_EXTERNAL_MODULE__196__","memo","isOldIE","Boolean","document","atob","getTarget","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","count","css","media","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","attributes","nonce","setAttribute","insert","appendChild","textStore","replaceText","replacement","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","btoa","unescape","encodeURIComponent","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","removeStyleElement","lastIdentifiers","newList","newLastIdentifiers","_i","_index","useSourceMap","content","cssMapping","sourceMapping","base64","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","__WEBPACK_EXTERNAL_MODULE__200__","__WEBPACK_EXTERNAL_MODULE__201__","Events","EE","fn","context","once","addListener","emitter","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","events","names","getOwnPropertySymbols","listeners","handlers","ee","listenerCount","emit","a1","a2","a3","a4","a5","args","arguments","removeListener","apply","on","removeAllListeners","off","prefixed","default","exported","locals","___CSS_LOADER_API_IMPORT___","placeholder","maxCond","toInteger","onInputBlur","onChangeInternal","cond","onSelectChange","getSelectedOptions","selectedOptions","option","maxNum","minNum","getOptions","show","oldVariableText","highlightIndex","selectOptions","selectedValue","selected","selectedValues","search","dropdownVisible","updateLinkText","linkText","clearSelections","each","selectionsChanged","keyDown","keyCode","moveHighlight","commitChanges","selectValue","direction","commitChange","excludeOthers","setAllExceptCurrentTo","other","ctrlKey","metaKey","shiftKey","queryChanged","toLowerCase","customSelectDropdown","$compile","$window","$timeout","controllerAs","bindToController","bodyEl","body","linkEl","inputEl","bodyOnClick","$apply","vm","width","focus","RectCompo","componentName","propTypes","separator","changeOnSelect","onSelect","initialValue","allowCustomValue","formatCreateLabel","displayAllSelectedLevels","component","$element","_$scope","_$element","$onInit","entries","_query","setTimeout","render","SearchSyntaxRule","ServiceType","loadBalance","lbPrivate","lbPublic","mongoDB","mrHDFS","mrHBASE","mrHIVE","mrNODE","mrPRESTO","mrSPARK","mrYARN","mrZOOKEEPER","editorHtml","serviceSwitch","$injector","regions","metricList","periodList","dimensionList","instanceAliasList","showInstanceDetails","cascaderOptions","defaultsDeep","getInstanceAliasList","panelCtrl","onDataReceived","onDataError","cascaderChange","onNamespaceChange","dataList","lastQueryError","lastQuery","anySeriesFromQuery","refId","err","handleQueryCtrlError","initState","refresh","isCascader","onRegionChange","isMetricsNeedUpdate","panel","getMetricNameDesc","findIndex","Meaning","Zh","En","onMetricChange","getInstanceQueryParams","subItem","onInstanceAliasChange","onInstanceQueryChange","checkShowDetail","getTimeDesc","getSearchDesc","angularScope","angularQueryEditor","renderAngularQueryEditor","destroy","loader","scopeProps","ctrl","getAngularQueryComponentScope","load","componentDidMount","forceUpdate","componentDidUpdate","prevProps","legacy","series","timeRange","queryCtrl","components","dashboard","onRunQuery","ref","uuidRegex","ServiceTypeOptions","logService","RUMService","defaultQueryInfo","logServiceParams","SyntaxRule","CQL","RUMServiceParams","policy","resultFormat","orderByTime","tags","groupBy","select","queryInfoRuntime","queryType","dataTopic","current","capiRequest","requestOptions","Code","Message","Response","clsCapiRequest","regionCapiRequest","SearchLog","UseNewAnalysis","DescribeLogContext","DescribeRegionsAndZonesRequest","product","DescribeRegions","clsRegions","regionList","RegionId","RegionShortName","RegionTypeMC","RegionType","Location","regionId","Number","regionName","regionShortName","oversea","effect","getStringVariableNameOptions","getVariables","multi","refValue","TopicSelector","preferLastValue","localStorage","setItem","lastValue","getItem","topicSelectOptionsRef","setRegionList","fetchRegions","labelWidth","Topics","menuPlacement","className","defaultOptions","cacheOptions","loadOptions","filterStr","filters","test","optionsWithVariables","displayName","LogServiceQueryEditor","propsRef","clone","partialOnChange","queryInfo","oldQuery","LUCENE","MaxResultNumInput","MaxResultNum","flexGrow","portalOrigin","onBlur","onChangeFromProps","onInputChange","currVal","currentTarget","invalid","database","buildExploreQuery","withKey","withMeasurementFilter","measurement","regexEscape","whereConditions","tag","operator","condition","renderTagCondition","q","getTagKeysForMeasurementAndTags","defaultParams","renderer","category","addStrategy","def","updateText","innerExpr","hasMultipleParamsInString","strValue","optional","updateParam","partVal","idx","functionRenderer","parameters","paramType","quote","unshift","Aggregations","Selectors","Transformations","Predictors","Aliasing","Fields","createPart","register","QueryPartDef","groupByTimeFunctions","fieldRenderer","replaceAggregationAddStrategy","selectParts","partModel","morePartsAvailable","addTransformationStrategy","selectModels","dynamicLookup","partCount","renderMode","getCategories","replaceAggregationAdd","updateProjection","groupByParts","updatePersistedParts","hasGroupByTime","g","hasFill","addGroupBy","stringParts","typePart","arg","removeGroupByPart","categories","removeSelect","removeSelectPart","modelsIndex","partIndex","addSelectPart","getMeasurementAndPolicy","interpolate","interpolateQueryStr","defaultFormatFn","includeAll","rawQuery","y","selectText","groupBySection","slimit","tz","renderAdhocFilters","unwrap","toSelectableValue","getPartParams","dynamicParamOptions","paramValues","defParam","makePartList","queryParts","qp","htmlFor","children","styles","theme","spacing","inlineFormMargin","useAsyncFn","deps","initialState","loading","mountedRef","lastCallId","isMounted","_a","set","callback","callId","prevState","useShadowedState","outsideVal","currentVal","setCurrentVal","prevOutsideVal","selectClass","minWidth","onClose","autoFocus","isOpen","onCloseMenu","loadState","doLoad","isLoading","filterByLoadOptions","currentValue","setCurrentValue","spellCheck","onKeyDown","defaultButtonClass","cursor","buttonClassName","disabled","setOpen","as","onClick","getPolicyOptions","getMeasurementOptions","allPolicies","isRegex","getCondition","isFirst","onAdd","operatorOptions","condititonOptions","loadConditionOptions","loadOperatorOptions","onRemove","getTagKeyOptions","getTagValueOptions","op","currentOperator","newTagValue","isCurrentOperatorRegex","onTagChange","newTag","newTags","newT","minimalTag","noRightMarginPaddingClass","paddingRight","marginRight","getContextMenuItems","openMenu","noHorizMarginPaddingClass","paddingLeft","marginLeft","partClass","lineHeight","typography","md","fontSize","size","onParamChange","newParams","isLast","Fragment","getNewPartOptions","onAddNewPart","onRemovePart","pars","paddingRightClass","isWide","OPTIONS","inputId","RESULT_FORMATS","ENABLE_MEASUREMENTS","withTemplateVariableOptions","optionsPromise","filterTags","allTagKeys","RUMServiceQueryEditor","idRefLazy","uniqueId","formatAsId","orderByTimeId","queryCopy","normalizeQuery","selectLists","dynamicSelectPartOptions","Map","getFieldKeysForMeasurement","sel","getTagKeys","groupByList","dynamicGroupByPartOptions","onAppliedChange","newQuery","getAllPolicies","measurementFilter","getAllMeasurementsForTags","inlineLabel","getTagValues","x","listIndex","newSel","changeSelectPart","model","addNewSelectPart","selectModel","tagKeys","getNewGroupByPartOptions","newGroupBy","changeGroupByPart","addNewGroupByPart","isAlertVisiable","app","UnifiedAlerting","setState","firstEnabledService","enabledServices","monitorEnabled","monitorDataSource","logServiceEnabled","RUMServiceEnabled","active","onChangeTab","renderMonitorQueryEditor","renderLogServiceQueryEditor","renderRUMServiceQueryEditor","onQueryChange","definition","grow","tooltip","required","isFunction","_enable_super_gross_mode_that_will_cause_bad_things","hostReportError","empty","closed","next","useDeprecatedSynchronousErrorHandling","complete","UnsubscriptionError","UnsubscriptionErrorImpl","errors","Subscription","unsubscribe","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","flattenUnsubscriptionErrors","teardown","EMPTY","tmp","subscriptions","subscriptionIndex","errs","rxSubscriber","random","_super","Subscriber","destinationOrNext","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","SafeSubscriber","_parentSubscriber","observerOrNext","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","project","thisArg","lift","MapOperator","subscribe","MapSubscriber","observable","identity","pipeFromArray","fns","input","Observable","_isScalar","_subscribe","sink","nextOrObserver","toSubscriber","_trySubscribe","observer","closed_1","canReportError","promiseCtor","getPromiseCtor","pipe","operations","toPromise","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","SubjectSubscription","subject","observers","subscriberIndex","SubjectSubscriber","Subject","hasError","thrownError","copy","asObservable","AnonymousSubject","refCount","RefCountOperator","connectable","_refCount","refCounter","connection","connect","RefCountSubscriber","sharedConnection","_connection","ConnectableObservable","subjectFactory","_isComplete","getSubject","_subject","connectableObservableDescriptor","connectableProto","writable","ConnectableSubscriber","MulticastOperator","selector","shareSubjectFactory","share","subjectOrSubjectFactory","ProcessorUtils","PrestoAndFieldTypeMap","prestoTypeRegex","fieldType","time","processor","isValid","number","LogFieldReservedName","formatSearchLog","Analysis","AnalysisRecords","analysisColumns","analysisRecords","column","prestoType","analysisColumn","record","parseLogJsonStr","logJsonStr","tagContent","__TAG__","tagValue","ConvertSearchResultsToDataFrame","searchLogResult","frameDTO","ConvertAnalysisJsonToDataFrameDTO","Results","timeField","TIMESTAMP","logField","LogJson","custom","displayMode","sourceField","SOURCE","filenameField","Filename","hostnameField","HostName","metaField","META","hidden","labels","logItem","logJson","meta","preferredVisualisationType","RequestId","SamplingRate","executedQueryString","ConvertLogJsonToDataFrameDTO","DataFrameType","timeSeriesFormat","toTimeSeriesMany","frame","valueFields","labelFields","builders","f","builder","TimeSeriesMany","uniqueValueNames","uniqueValueNamesToType","uniqueLabelKeys","labelKeyToWideIndices","uniqueFactorNamesToWideIndex","fieldIndex","tKey","wideIndices","labelKey","sortedTimeRowIndices","sortedUniqueLabelKeys","uniqueFactorNames","uniqueFactorNamesWithWideIndices","wideRowIndex","labelKeys","longFrame","TimeSeriesLong","addField","timeWideRowIndex","rowValues","wideFieldIndex","wideField","toTimeSeriesLong","CQL_SPLIT_PATTERN","getQueryLucene","querySplit","luceneQuery","replaceClsQueryWithTemplateSrv","sqlQuery","addQueryResultLimit","resultLimit","showContextToggle","row","dataFrame","metaValue","rowIndex","PkgId","PkgLogId","getLogRowContext","bTime","BTime","PrevLogs","NextLogs","logContext","LogContextInfos","idField","lineField","contextLog","Content","ConvertLogContextToDataFrame","dataFramePromise","From","To","Loading","frames","processedFrames","timeSeriesMany","valueOf","getLogsVolumeDataProvider","getSymbolIterator","iterator","isArrayLike","isPromise","subscribeTo","obs","promise","iterable","done","return","scheduled","scheduler","isInteropObservable","schedule","scheduleObservable","schedulePromise","scheduleArray","isIterable","scheduleIterable","SimpleInnerSubscriber","notifyNext","notifyError","notifyComplete","SimpleOuterSubscriber","innerValue","innerSubscribe","innerSubscriber","mergeMap","resultSelector","concurrent","POSITIVE_INFINITY","ii","MergeMapOperator","MergeMapSubscriber","hasCompleted","buffer","_tryNext","_innerSub","ish","innerSubscription","shift","CatchOperator","caught","CatchSubscriber","err2","annotation","getTimeSeries","output","columns","seriesName","columnName","_getSeriesName","segments","g1","g2","segIndex","getAnnotations","titleCol","timeCol","timeEndCol","tagsCol","textCol","titleColumn","tagsColumn","textColumn","timeEndColumn","timeEnd","getTable","table","seriesIndex","firstCol","firstTableCol","reordered","rows","RUMResults","normalizedQuery","isValueFirst","isShowMeasurements","serie","addUnique","dfs","selectedParams","allParams","uniqueParams","incrementName","nameIncremenet","getSelectedParams","getTableCols","dfsByLabels","df","getTableRows","transformAnnotationResponse","rsp","colText","colContainsTag","toArray","metrics","getFieldType","firstNotNull","valueType","timeSeriesToDataFrame","timeSeries","displayNameFromDS","responseParser","classicQuery","timeFilter","getTimeFilter","queryTargets","allQueries","fixTimePeriod","interval","__interval","adhocFilters","getAdhocFilters","_seriesQuery","seriesList","rumSeries","interpolated","rangeRaw","timezone","_RUMRequest","fetch","cancelled","handleErrors","isInteger","getRUMTime","roundUp","getTimePeriod","modifyTime","until","oneHour","compareResult","periodCompare","pre_period","units","reg","RegExp","pre","per","logServiceDataSource","tcDatasource","RUMServiceDataSource","DataSource","monitorTargets","logServiceTargets","RUMServiceTargets","EmptyDataQueryResponse","errResponse","every","flat","serviceTestResults","failedResult","SecretFormField","patchJsonData","kv","onOptionsChange","onJsonDataChange","targetName","targetValue","onSecureJsonChange","secureJsonData","onResetSecureJson","secureJsonFields","monitorFilter","isClsAlertVisiable","position","marginTop","padding","WebkitBoxFlex","borderTop","margin","inputWidth","isConfigured","onReset","English","InlineSwitch","checked","renderRUMConfig","renderLogServiceConfig","renderMonitorConfig","severity","filteredProducts","marginBottom","toChecked","allCheckObject","height","WebkitBoxAlign","alignItems","border","borderRadius","setQueryEditor","setConfigEditor","setVariableQueryEditor"],"mappings":"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","file":"datasource/module.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 209);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","const zh_CN = {\n language: '语言',\n enable_intranet_API_mode: '开启内网API模式',\n cloud_database: '云数据库',\n cloud_load_balancer: '负载均衡',\n virtual_private_cloud: '私有网络',\n content_delivery_network: '内容分发网络',\n message_queue: '消息队列',\n direct_connect: '专线接入',\n cloud_physical_machine: '黑石物理服务器',\n elastic_mapReduce: '弹性 MapReduce',\n edge_computing_machine: '边缘计算机器',\n // namespace\n RUM: '前端性能监控(RUM)',\n CLS: '日志服务(CLS)',\n CVM: '云服务器(CVM)',\n CDB: '云数据库 MySQL(CDB)',\n CMONGO: '云数据库 MongoDB(CMONGO)',\n POSTGRES: '云数据库 PostgreSQL(POSTGRES)',\n REDIS: '云数据库 Redis(REDIS)',\n REDIS_MEM: '云数据库 Redis内存版(5s)(REDIS_MEM)',\n SQLSERVER: '云数据库 SQL Server(SQLSERVER)',\n CYNOSDB_MYSQL: '云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)',\n TCAPLUS: '云数据库 TcaplusDB(TCAPLUS)',\n TDMYSQL: '分布式数据库 TDSQL MySQL(TDMYSQL)',\n PCX: '私有网络-对等连接(PCX)',\n BWP: '私有网络-带宽包(BWP)',\n NAT_GATEWAY: '私有网络-NAT 网关(NAT_GATEWAY)',\n VPNGW: '私有网络-VPN 网关(VPNGW)',\n VPNX: '私有网络-VPN 通道(VPNX)',\n DCG: '私有网络-专线网关(DCG)',\n CEIP_SUMMARY: '私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)',\n VPC_NET_DETECT: '私有网络-网络探测(VPC_NET_DETECT)',\n VBC: '私有网络-云联网(VBC)',\n LB: '私有网络-弹性公网IP(LB)',\n LB_PUBLIC: '公网负载均衡监控指标(LB_PUBLIC)',\n LB_PRIVATE: '内网负载均衡四层协议监控指标(LB_PRIVATE)',\n LOADBALANCE: '内网负载均衡七层协议监控指标(LOADBALANCE)',\n CDN: '国内域名(CDN)',\n CDN_LOG_DATA: '省份域名(CDN_LOG_DATA)',\n OV_CDN: '国外域名(OV_CDN)',\n SCF_V2: '云函数(SCF)',\n CFS: '文件存储(CFS)',\n COS: '对象存储(COS)',\n CKAFKA: '消息队列 CKafka(CKAFKA)',\n CMQ: '消息队列-队列服务监控(CMQ)',\n CMQTOPIC: '消息队列-主题订阅监控(CMQTOPIC)',\n TDMQ: '消息队列 Pulsar 版(TDMQ)',\n TDMQ_ROCKETMQ: '消息队列 RocketMQ 版(ROCKETMQ)',\n TDMQ_RABBITMQ: '消息队列 RabbitMQ 版(RABBITMQ)',\n DCX: '专线接入-专用通道(DCX)',\n DC: '专线接入-物理专线(DC)',\n CPM: '黑石物理服务器(CPM)',\n BM_PCX: '黑石对等连接(BM_PCX)',\n BM_LB: '黑石外网负载均衡(BM_LB)',\n BM_INTRA_LB: '黑石内网负载均衡(BM_INTRA_LB)',\n CES: 'Elasticsearch指标(CES)',\n BLOCK_STORAGE: '云硬盘(BLOCK_STORAGE)',\n APIGATEWAY: 'API 网关(APIGATEWAY)',\n QAAP: '全球应用加速(GAAP)',\n ECM: '边缘计算和网络监控(ECM)',\n ECM_BLOCK_STORAGE: '边缘计算存储监控(ECM_BLOCK_STORAGE)',\n ECM_LB: '边缘计算负载均衡(ECM_LB)',\n GSE: '游戏服务器伸缩(GSE)',\n TKE: '容器服务(TKE)',\n ECDN: '全站加速网络(ECDN)',\n WAF: 'Web 应用防火墙(WAF)',\n // others\n multi_scene: '多场景版',\n lite: '精简版',\n cloud_monitor: '云监控',\n cloud_log_service: '日志服务',\n real_user_monitoring: '前端性能监控',\n region: '地域',\n log_topic: '日志主题',\n syntax_rule: '语法规则',\n max_result_num: '最大结果条数',\n search_statement: '检索语句',\n time_unit: 'Time unit',\n seconds: 'seconds',\n search_description: '按照具体的查询条件搜索实例,默认拉取前 20 条实例',\n // region\n 'ap-guangzhou': '华南地区(广州)',\n 'ap-shenzhen-fsi': '华南地区(深圳金融)',\n 'ap-guangzhou-open': '华南地区(广州OPEN)',\n 'ap-shenzhen': '华南地区(深圳)',\n 'ap-qingyuan': '华南地区(清远)',\n 'ap-shanghai': '华东地区(上海)',\n 'ap-shanghai-fsi': '华东地区(上海金融)',\n 'ap-jinan-ec': '华东地区(济南)',\n 'ap-hangzhou-ec': '华东地区(杭州)',\n 'ap-nanjing': '华东地区(南京)',\n 'ap-fuzhou-ec': '华东地区(福州)',\n 'ap-hefei-ec': '华东地区(合肥)',\n 'ap-beijing': '华北地区(北京)',\n 'ap-tianjin': '华北地区(天津)',\n 'ap-beijing-fsi': '华北地区(北京金融)',\n 'ap-shijiazhuang-ec': '华北地区(石家庄)',\n 'ap-wuhan-ec': '华中地区(武汉)',\n 'ap-changsha-ec': '华中地区(长沙)',\n 'ap-zhengzhou-ec': '华中地区(郑州)',\n 'ap-chengdu': '西南地区(成都)',\n 'ap-chongqing': '西南地区(重庆)',\n 'ap-xian-ec': '西北地区(西安)',\n 'ap-shenyang-ec': '东北地区(沈阳)',\n 'ap-taipei': '港澳台地区(中国台北)',\n 'ap-hongkong': '港澳台地区(中国香港)',\n 'ap-seoul': '亚太东北(首尔)',\n 'ap-tokyo': '亚太东北(东京)',\n 'ap-singapore': '亚太东南(新加坡)',\n 'ap-bangkok': '亚太东南(曼谷)',\n 'ap-jakarta': '亚太东南(雅加达)',\n 'na-siliconvalley': '美国西部(硅谷)',\n 'eu-frankfurt': '欧洲地区(法兰克福)',\n 'eu-moscow': '欧洲地区(莫斯科)',\n 'ap-mumbai': '亚太南部(孟买)',\n 'na-ashburn': '美国东部(弗吉尼亚)',\n 'sa-saopaulo': '南美地区(圣保罗)',\n 'na-toronto': '北美地区(多伦多)',\n};\nexport default zh_CN;\n","const en_US = {\n language: 'Language',\n enable_intranet_API_mode: 'Enable Intranet API Mode',\n cloud_database: 'Cloud Database',\n cloud_load_balancer: 'Cloud Load Balancer',\n virtual_private_cloud: 'Virtual Private Cloud',\n content_delivery_network: 'Content Delivery Network',\n message_queue: 'Message Queue',\n direct_connect: 'Direct Connect',\n cloud_physical_machine: 'Cloud Physical Machine',\n elastic_mapReduce: 'Elastic MapReduce',\n edge_computing_machine: 'Edge Computing Machine',\n // namespace\n RUM: 'Real User Monitoring(RUM)',\n CLS: 'Cloud Log Service(CLS)',\n CVM: 'Cloud Virtual Machine(CVM)',\n CDB: 'TencentDB for MySQL(CDB)',\n CMONGO: 'TencentDB for MongoDB(CMONGO)',\n POSTGRES: 'TencentDB for PostgreSQL(POSTGRES)',\n REDIS: 'TencentDB for Redis(REDIS)',\n REDIS_MEM: 'TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)',\n SQLSERVER: 'TencentDB for SQL Server(SQLSERVER)',\n CYNOSDB_MYSQL: 'TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)',\n TCAPLUS: 'TencentDB for TcaplusDB(TCAPLUS)',\n TDMYSQL: 'TDSQL for MySQL(TDMYSQL)',\n PCX: 'Peering Connection(PCX)',\n BWP: 'Bandwidth Packet(BWP)',\n NAT_GATEWAY: 'NAT Gateway(NAT_GATEWAY)',\n VPNGW: 'VPN Gateway(VPNGW)',\n VPNX: 'VPN Tunnel(VPNX)',\n DCG: 'Direct Connect Gateway(DCG)',\n CEIP_SUMMARY: 'Anycast EIP(CEIP_SUMMARY)',\n VPC_NET_DETECT: 'Network Detection(VPC_NET_DETECT)',\n VBC: 'Cloud Connect Network(VBC)',\n LB: 'Elastic IP(LB)',\n LB_PUBLIC: 'Public Network CLB(LB_PUBLIC)',\n LB_PRIVATE: 'Private Network CLB Layer-4 Protocol(LB_PRIVATE)',\n LOADBALANCE: 'Private Network CLB Layer-7 Protocol(LOADBALANCE)',\n CDN: 'Chinese Mainland Domain(CDN)',\n CDN_LOG_DATA: 'Province(CDN_LOG_DATA)',\n OV_CDN: 'Overseas Domain(OV_CDN)',\n SCF_V2: 'Serverless Cloud Function(SCF)',\n CFS: 'Cloud File Storage(CFS)',\n COS: 'Cloud Object Storage(COS)',\n CKAFKA: 'Message Queue CKafka(CKAFKA)',\n CMQ: 'Message Queue for Queue Service(CMQ)',\n CMQTOPIC: 'Message Queue for Topic Subscription(CMQTOPIC)',\n TDMQ: 'Tencent Distributed Message Queue for Pulsar(TDMQ)',\n TDMQ_ROCKETMQ: 'Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)',\n TDMQ_RABBITMQ: 'Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)',\n DCX: 'Direct Connect for Dedicated Tunnel(DCX)',\n DC: 'Direct Connect for Connection(DC)',\n CPM: 'Cloud Physical Machine(CPM)',\n BM_PCX: 'Cloud Physical Machine for Peering Connection(BM_PCX)',\n BM_LB: 'Cloud Physical Machine for Public Network CLB(BM_LB)',\n BM_INTRA_LB: 'Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)',\n CES: 'Elasticsearch Service(CES)',\n BLOCK_STORAGE: 'Cloud Block Storage(BLOCK_STORAGE)',\n APIGATEWAY: 'API Gateway(APIGATEWAY)',\n QAAP: 'Global Application Acceleration Platform(GAAP)',\n ECM: 'Edge Computing Machine for Computation and Networking(ECM)',\n ECM_BLOCK_STORAGE: 'Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)',\n ECM_LB: 'Edge Computing Machine for Layer-4 CLB(ECM_LB)',\n GSE: 'Game Server Elastic-scaling(GSE)',\n TKE: 'Tencent Kubernetes Engine(TKE)',\n ECDN: 'Enterprise Content Delivery Network(ECDN)',\n WAF: 'Web Application Firewall(WAF)',\n // others\n multi_scene: 'Multi-Scene',\n lite: 'Lite',\n cloud_monitor: 'Cloud Monitor',\n cloud_log_service: 'Cloud Log Service',\n real_user_monitoring: 'Real User Monitoring',\n region: 'Region',\n log_topic: 'Log Topic',\n syntax_rule: 'Syntax Rule',\n max_result_num: 'Maximum result number',\n search_statement: 'Search Statement',\n time_unit: 'Time unit',\n seconds: 'seconds',\n search_description:\n 'Search for instances according to specific query conditions, and pull the first 20 instances by default',\n // region\n 'ap-guangzhou': 'South China(Guangzhou)',\n 'ap-shenzhen-fsi': 'South China(Shenzhen Finance)',\n 'ap-guangzhou-open': 'South China(Guangzhou OPEN)',\n 'ap-shenzhen': 'South China(Shenzhen)',\n 'ap-qingyuan': 'South China(Qingyuan)',\n 'ap-shanghai': 'East China(Shanghai)',\n 'ap-shanghai-fsi': 'East China(Shanghai Finance)',\n 'ap-jinan-ec': 'East China(Jinan)',\n 'ap-hangzhou-ec': 'East China(Hangzhou)',\n 'ap-nanjing': 'East China(Nanjing)',\n 'ap-fuzhou-ec': 'East China(Fuzhou)',\n 'ap-hefei-ec': 'East China(Hefei)',\n 'ap-beijing': 'North China region(Beijing)',\n 'ap-tianjin': 'North China region(Tianjin)',\n 'ap-beijing-fsi': 'North China region(Beijing Finance)',\n 'ap-shijiazhuang-ec': 'North China region(Shijiazhuang)',\n 'ap-wuhan-ec': 'Central China(Wuhan)',\n 'ap-changsha-ec': 'Central China(Changsha)',\n 'ap-zhengzhou-ec': 'Central China(Zhengzhou)',\n 'ap-chengdu': 'Southwest China(Chengdu)',\n 'ap-chongqing': 'Southwest China(Chongqing)',\n 'ap-xian-ec': \"Northwest region(Xi'an)\",\n 'ap-shenyang-ec': 'Northeast China(Shenyang)',\n 'ap-taipei': 'Hong Kong, Macau and Taiwan (China)(Taipei, China)',\n 'ap-hongkong': 'Hong Kong, Macau and Taiwan (China)(Hong Kong, China)',\n 'ap-seoul': 'Northeast Asia(Seoul)',\n 'ap-tokyo': 'Northeast Asia(Tokyo)',\n 'ap-singapore': 'Southeast Asia(Singapore)',\n 'ap-bangkok': 'Southeast Asia(Bangkok)',\n 'ap-jakarta': 'Southeast Asia(Jakarta)',\n 'na-siliconvalley': 'US West(Silicon Valley)',\n 'eu-frankfurt': 'Europe(Frankfurt)',\n 'eu-moscow': 'Europe(Northeastern Europe)',\n 'ap-mumbai': 'South Asia(Mumbai)',\n 'na-ashburn': 'US East(Virginia)',\n 'sa-saopaulo': 'South America(São Paulo)',\n 'na-toronto': 'North America(Toronto)',\n};\nexport default en_US;\n","import zh_CN from './zh_CN';\nimport en_US from './en_US';\n\nlet locale_language = 'zh-CN'\n\nexport enum Language {\n Chinese = 'zh-CN',\n English = 'en-US',\n}\n\nexport const t = (key: string) => {\n if (locale_language === Language.Chinese) {\n return zh_CN[key]\n }\n return en_US[key];\n}\n\nexport const setLanguage = (language: Language) => {\n locale_language = language;\n}\n\nexport const getLanguage = () => locale_language;","import moment from 'moment';\n\nconst HttpRequestMethod = 'POST';\nconst CanonicalUri = '/';\nconst CanonicalQueryString = '';\nconst ContentType = 'application/json';\n\nexport default class Sign {\n /**\n * Tencent Cloud API Signature v3 reference: https://cloud.tencent.com/document/api/213/30654\n * secretId: SecretId for identifying identity that is applied for on Cloud API Key.\n * A SecretId corresponds to a unique SecretKey, which is used to generate the request Signature.\n * secretKey: SecretKey is used to encrypt the signature string and verify the signature string on the server\n * service: the name of service, which must be consistent with the request domain, such as cvm\n * action: The name of the API for the desired operation\n * host: the domain of service,which must be consistent with the request domain, such as cvm.tencentcloudapi.com\n * version: PI version, such as 2017-03-12\n * payload: The request parameters\n */\n\n secretId: string;\n\n service: string;\n action: string;\n host: string;\n version: string;\n payload: Record | string;\n region: string;\n timestamp: number;\n date: string;\n backendSrv: any;\n datasourceId: Number;\n constructor(options) {\n const { secretId, service, action, host, version, payload = '', region, backendSrv, datasourceId } = options;\n this.secretId = secretId;\n // this.secretKey = secretKey;\n this.service = service;\n this.action = action;\n this.host = host;\n this.version = version;\n this.payload = typeof payload === 'string' ? payload : JSON.stringify(payload);\n this.region = region;\n const nowDate = moment().utc();\n this.timestamp = nowDate.unix();\n this.date = nowDate.format('YYYY-MM-DD');\n this.backendSrv = backendSrv;\n this.datasourceId = datasourceId;\n }\n\n async getHeader() {\n return this.getResourceHeader();\n }\n\n async getResourceHeader() {\n let res: { authorization?: string; token?: string; intranet?: boolean } = {};\n try {\n const resp = await this.backendSrv.datasourceRequest({\n url: `/api/datasources/${this.datasourceId}/resources/sign_v3`,\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: {\n Host: this.host,\n Service: this.service,\n Version: this.version,\n Action: this.action,\n Region: this.region,\n Timestamp: this.timestamp,\n Method: HttpRequestMethod,\n Uri: CanonicalUri,\n Query: CanonicalQueryString,\n Body: this.payload,\n Headers: {\n 'content-type': ContentType,\n host: this.host,\n },\n },\n });\n res = resp.data;\n } catch (err) {}\n const { authorization, token, intranet } = res;\n const grafanaVersion = (window as any).grafanaBootData?.settings?.buildInfo?.version || '0.0.0';\n const headers = {\n Authorization: authorization,\n 'Content-Type': ContentType,\n 'X-TC-Action': this.action,\n 'X-TC-Timestamp': this.timestamp.toString(),\n 'X-TC-Version': this.version,\n 'X-TC-RequestClient': `GF_${grafanaVersion}_PL_CM_${process.env.TENCENT_CLOUD_MONITOR_GRAFANA_PLUGIN_VERSION}`,\n ...(this.region && {\n 'X-TC-Region': this.region,\n }),\n ...(token && {\n 'X-TC-Token': token,\n }),\n intranet: intranet,\n };\n return headers;\n }\n}\n","/**\n *\n * @param defaults 为对象\n * secretId\n * secretKey\n * action\n * region\n * host\n */\n\nexport default class SignV2 {\n defaults: any = {\n path: '/v2/index.php',\n method: 'POST',\n };\n backendSrv: any;\n datasourceId: Number;\n constructor(defaults: any = {}) {\n this.defaults = Object.assign(this.defaults, defaults);\n this.defaults.secretKey = '';\n this.backendSrv = defaults.backendSrv;\n this.datasourceId = defaults.datasourceId;\n }\n\n generateQueryString = async () => {\n return this.getResourceQueryString();\n };\n\n async getResourceQueryString() {\n let res: { path?: string; querystring?: any; host?: string; intranet?: boolean } = {};\n try {\n const { data } = this.defaults;\n const payload = typeof data === 'string' ? data : JSON.stringify(data);\n const resp = await this.backendSrv.datasourceRequest({\n url: `/api/datasources/${this.datasourceId}/resources/sign_v2`,\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: {\n Host: this.defaults.host,\n Action: this.defaults.action,\n Version: this.defaults.version,\n Region: this.defaults.region,\n Method: this.defaults.method,\n Uri: this.defaults.path,\n Query: '',\n Body: payload,\n },\n });\n res = resp.data;\n } catch (err) {}\n const { path, querystring, host, intranet } = res;\n return { queryString: querystring, path: path, host: host, intranet: intranet };\n }\n}\n","import _ from 'lodash';\nimport qs from 'qs';\nimport { SERVICES } from '../tc_monitor';\nimport Sign from './sign';\nimport SignV2 from './signV2';\nimport { toDataQueryResponse } from '@grafana/runtime';\nimport { getLanguage } from '../../locale';\n\nimport packageInfo from '../plugin.json';\nexport const TcDataSourceId = packageInfo.id;\n\n// the services of tencentcloud monitor api\nconst FINACE_REGIONS = ['ap-shanghai-fsi', 'ap-shenzhen-fsi'];\nconst SERVICES_API_INFO = {\n api: {\n service: 'api',\n version: '2020-11-06',\n path: '/api',\n host: 'api.tencentcloudapi.com',\n },\n // monitor api info\n monitor: {\n service: 'monitor',\n version: '2018-07-24',\n path: '/monitor',\n host: 'monitor.tencentcloudapi.com',\n },\n // cls api info\n cls: {\n service: 'cls',\n version: '2020-10-16',\n path: '/cls',\n host: 'cls.tencentcloudapi.com',\n },\n // cvm api info\n cvm: {\n service: 'cvm',\n version: '2017-03-12',\n path: '/cvm',\n host: 'cvm.tencentcloudapi.com',\n },\n // cdb api info\n cdb: {\n service: 'cdb',\n version: '2017-03-20',\n path: '/cdb',\n host: 'cdb.tencentcloudapi.com',\n },\n // pcx api info\n pcx: {\n service: 'pcx',\n version: '',\n path: '/pcx',\n host: 'vpc.api.qcloud.com',\n },\n // vpc api info\n vpc: {\n service: 'vpc',\n version: '2017-03-12',\n path: '/vpc',\n host: 'vpc.tencentcloudapi.com',\n },\n // mongodb api info\n mongodb: {\n service: 'mongodb',\n version: '2019-07-25',\n path: '/mongodb',\n host: 'mongodb.tencentcloudapi.com',\n },\n // 负载均衡 clb\n clb: {\n service: 'clb',\n version: '2018-03-17',\n path: '/clb',\n host: 'clb.tencentcloudapi.com',\n },\n // postgresql api info\n postgres: {\n service: 'postgres',\n version: '2017-03-12',\n path: '/postgres',\n host: 'postgres.tencentcloudapi.com',\n },\n // cdn info\n cdn: {\n service: 'cdn',\n version: '2018-06-06',\n path: '/cdn',\n host: 'cdn.tencentcloudapi.com',\n },\n // redis info\n redis: {\n service: 'redis',\n version: '2018-04-12',\n path: '/redis',\n host: 'redis.tencentcloudapi.com',\n },\n scf: {\n service: 'scf',\n version: '2018-04-16',\n path: '/scf',\n host: 'scf.tencentcloudapi.com',\n },\n cfs: {\n service: 'cfs',\n version: '2019-07-19',\n path: '/cfs',\n host: 'cfs.tencentcloudapi.com',\n },\n ckafka: {\n service: 'ckafka',\n version: '2019-08-19',\n path: '/ckafka',\n host: 'ckafka.tencentcloudapi.com',\n },\n // 专线接入实例列表\n dc: {\n service: 'dc',\n version: '2018-04-10',\n path: '/dc',\n host: 'dc.tencentcloudapi.com',\n },\n // cynosdb实例列表\n cynosdb: {\n service: 'cynosdb',\n version: '2019-01-07',\n path: '/cynosdb',\n host: 'cynosdb.tencentcloudapi.com',\n },\n // sqlserver实例列表\n sqlserver: {\n service: 'sqlserver',\n version: '2018-03-28',\n path: '/sqlserver',\n host: 'sqlserver.tencentcloudapi.com',\n },\n // bm实例列表\n bm: {\n service: 'bm',\n version: '2018-04-23',\n path: '/bm',\n host: 'bm.tencentcloudapi.com',\n },\n bmeip: {\n service: 'bmeip',\n version: '2018-06-25',\n path: '/bmeip',\n host: 'bmeip.tencentcloudapi.com',\n },\n bmvpc: {\n service: 'bmvpc',\n version: '2018-06-25',\n path: '/bmvpc',\n host: 'bmvpc.tencentcloudapi.com',\n },\n bmlb: {\n service: 'bmlb',\n version: '2018-06-25',\n path: '/bmlb',\n host: 'bmlb.tencentcloudapi.com',\n },\n // ES集群实例\n es: {\n service: 'es',\n version: '2018-04-16',\n path: '/es',\n host: 'es.tencentcloudapi.com',\n },\n // MapReduce\n emr: {\n service: 'emr',\n version: '2019-01-03',\n path: '/emr',\n host: 'emr.tencentcloudapi.com',\n },\n // CMQ消息队列\n cmq: {\n service: 'cmq',\n version: '2019-03-04',\n path: '/cmq',\n host: 'cmq.tencentcloudapi.com',\n },\n cbs: {\n service: 'cbs',\n version: '2017-03-12',\n path: '/cbs',\n host: 'cbs.tencentcloudapi.com',\n },\n // tcaplus实例\n tcaplusdb: {\n service: 'tcaplusdb',\n version: '2019-08-23',\n path: '/tcaplusdb',\n host: 'tcaplusdb.tencentcloudapi.com',\n },\n // tcaplus实例\n dcdb: {\n service: 'dcdb',\n version: '2018-04-11',\n path: '/dcdb',\n host: 'dcdb.tencentcloudapi.com',\n },\n // apigateway实例\n apigateway: {\n service: 'apigateway',\n version: '2018-08-08',\n path: '/apigateway',\n host: 'apigateway.tencentcloudapi.com',\n },\n tdmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n tdmq_rabbitmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n tdmq_rocketmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n gaap: {\n service: 'gaap',\n version: '2018-05-29',\n path: '/gaap',\n host: 'gaap.tencentcloudapi.com',\n },\n ecm: {\n service: 'ecm',\n version: '2019-07-19',\n path: '/ecm',\n host: 'ecm.tencentcloudapi.com',\n },\n gse: {\n service: 'gse',\n version: '2019-11-12',\n path: '/gse',\n host: 'gse.tencentcloudapi.com',\n },\n lighthouse: {\n service: 'lighthouse',\n version: '2020-03-24',\n path: '/lighthouse',\n host: 'lighthouse.tencentcloudapi.com',\n },\n tsf: {\n service: 'tsf',\n version: '2018-03-26',\n path: '/tsf',\n host: 'tsf.tencentcloudapi.com',\n },\n rum: {\n service: 'rum',\n version: '2021-06-22',\n path: '/rum',\n host: 'rum.tencentcloudapi.com',\n },\n tke: {\n service: 'tke',\n version: '2018-05-25',\n path: '/tke',\n host: 'tke.tencentcloudapi.com',\n },\n ecdn: {\n service: 'ecdn',\n version: '2019-10-12',\n path: '/ecdn',\n host: 'ecdn.tencentcloudapi.com',\n },\n waf: {\n service: 'waf',\n version: '2018-01-25',\n path: '/waf',\n host: 'waf.tencentcloudapi.com',\n },\n region: {\n service: 'region',\n version: '2022-06-27',\n path: '/region',\n host: 'region.tencentcloudapi.com',\n },\n // 不单独定义lb,因为lb同样用的是vpc的配置,同上\n // lb: {\n // service: 'lb',\n // version: '2017-03-12',\n // path: '/lb',\n // host: 'vpc.tencentcloudapi.com'\n // }\n // 负载均衡四层协议 lbPrivate\n // lbPrivate: {\n // service: 'lbPrivate',\n // version: '2018-03-17',\n // path: '/clb',\n // host: 'clb.tencentcloudapi.com',\n // },\n};\n\nconst FINACE_HOST = {\n scf: {\n 'ap-shanghai-fsi': {\n path: '/fsi/scf/shanghai',\n host: 'scf.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/scf/shenzhen',\n host: 'scf.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cfs: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cfs/shanghai',\n host: 'cfs.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cfs/shenzhen',\n host: 'cfs.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n ckafka: {\n 'ap-shanghai-fsi': {\n path: '/fsi/ckafka/shanghai',\n host: 'ckafka.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/ckafka/shenzhen',\n host: 'ckafka.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n clb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/clb/shanghai',\n host: 'clb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/clb/shenzhen',\n host: 'clb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n mongodb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/mongodb/shanghai',\n host: 'mongodb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/mongodb/shenzhen',\n host: 'mongodb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n vpc: {\n 'ap-shanghai-fsi': {\n path: '/fsi/vpc/shanghai',\n host: 'vpc.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/vpc/shenzhen',\n host: 'vpc.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cvm: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cvm/shanghai',\n host: 'cvm.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cvm/shenzhen',\n host: 'cvm.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cdb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cdb/shanghai',\n host: 'cdb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cdb/shenzhen',\n host: 'cdb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n monitor: {\n 'ap-shanghai-fsi': {\n path: '/fsi/monitor/shanghai',\n host: 'monitor.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/monitor/shenzhen',\n host: 'monitor.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n postgres: {\n 'ap-shanghai-fsi': {\n path: '/fsi/postgres/shanghai',\n host: 'postgres.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/postgres/shenzhen',\n host: 'postgres.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n emr: {\n 'ap-shanghai-fsi': {\n path: '/fsi/emr/shanghai',\n host: 'emr.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/emr/shenzhen',\n host: 'emr.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cmq: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cmq/shanghai',\n host: 'cmq.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cmq/shenzhen',\n host: 'cmq.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cls: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cls/shanghai',\n host: 'cls.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cls/shenzhen',\n host: 'cls.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n};\n\n// 获取对应业务的 API 接口信息\nexport function GetServiceAPIInfo(region, service) {\n return { ...(SERVICES_API_INFO[service] || {}), ...getHostAndPath(region, service) };\n}\n\n// get host and path for finance regions\nfunction getHostAndPath(region, service) {\n if (_.indexOf(FINACE_REGIONS, region) === -1) {\n return {};\n }\n return (\n _.find(\n _.find(FINACE_HOST, (__, key) => key === service),\n (__, key) => key === region\n ) || {}\n );\n}\n\n// 变量替换指定实例按照那个字段展示\nexport const VARIABLE_ALIAS = 'instancealias';\n\nexport function GetServiceFromNamespace(namespace) {\n return _.get(\n _.find(SERVICES, (service) => service.namespace === namespace),\n 'service'\n );\n}\n// 处理存量target中保存的qce/cvm\nexport function GetLabelFromNamespace(namespace) {\n return _.get(\n _.find(SERVICES, (service) => service.namespace === namespace || service.label === namespace),\n 'label'\n );\n}\n// parse template variable query params\nexport function ParseMetricQuery(query = '') {\n if (!query) {\n return {};\n }\n const result = {};\n const queries = _.split(query, '&');\n _.forEach(queries, (item) => {\n const str = _.split(item, '=');\n if (_.trim(_.get(str, '0', ''))) {\n let val = _.trim(_.get(str, '1', ''));\n try {\n val = JSON.parse(val);\n } catch (e) {\n // console.log({ val });\n }\n result[_.toLower(_.trim(_.get(str, '0', '')))] = val;\n }\n });\n return result;\n}\n\n// parse template variable regex params\nexport function ParseMetricRegex(regex = '') {\n if (!regex) {\n return [];\n }\n regex = regex.replace(/:/g, ':');\n regex = regex.replace(/,/g, ',');\n const regexParams = ParseMetricQuery(regex);\n const result: any[] = [];\n _.forEach(regexParams, (value, key) => {\n if (key === 'tag:tag-key') {\n const valuesArr = _.split(value, ',');\n _.forEach(valuesArr, (item) => {\n const temp = _.split(item, ':');\n if (temp.length === 2) {\n result.push({ Name: `tag:${temp[0]}`, Values: temp.slice(1) });\n }\n });\n } else {\n result.push({ Name: key, Values: _.split(value, ',') });\n }\n });\n return result;\n}\n\n// get the actual value of template variable\nfunction parseVariableFormat(varname: string) {\n varname = String(varname || '');\n // $varname\n let varFlag = false;\n const regResult1 = varname.match(/^\\${?(\\w+)}?/);\n if (regResult1) {\n varFlag = true;\n varname = `\\$\\{${regResult1[1]}\\:json\\}`;\n }\n // [[varname]]\n const regResult2 = varname.match(/^\\[\\[(\\w+)(\\:\\w+)?\\]\\]/);\n if (regResult2) {\n varFlag = true;\n varname = `\\$\\{${regResult2[1]}\\:json\\}`;\n }\n return { varname, varFlag };\n}\n\nexport function ReplaceVariable(templateSrv, scopedVars, field, multiple = false) {\n const { varname, varFlag } = parseVariableFormat(field);\n let replaceVar = templateSrv.replace(varname, scopedVars);\n if (varFlag) {\n try {\n replaceVar = JSON.parse(replaceVar);\n } catch (error) {}\n }\n if (!multiple && _.isArray(replaceVar)) {\n replaceVar = _.get(replaceVar, '0', '');\n }\n return replaceVar;\n}\n\n// get dimensions for instance query param\nexport function GetDimensions(obj) {\n if (_.isEmpty(obj)) {\n return [];\n }\n const dimensions: any[] = [];\n _.forEach(obj, (item) => {\n if (item.Value !== null && item.Value !== undefined && item.Value !== '') {\n dimensions.push({ Name: item.Name, Value: typeof item.Value === 'string' ? item.Value : `${item.Value}` });\n }\n });\n return dimensions;\n}\n\n// parse query data result for panel\nexport function ParseQueryResult(response, instances: any[] = [], timeshift = 0) {\n const instanceList = _.cloneDeep(instances);\n\n const dataPoints = _.get(response, 'DataPoints', []);\n return _.map(dataPoints, (dataPoint) => {\n let instanceAliasValue = _.get(dataPoint, 'Dimensions[0].Value');\n for (let i = 0; i < instanceList.length; i++) {\n if (isInstanceMatch(instanceList[i], _.get(dataPoint, 'Dimensions', []))) {\n instanceAliasValue = instanceList[i]._InstanceAliasValue;\n instanceList.splice(i, 1);\n break;\n }\n }\n return {\n target: `${response.MetricName} - ${instanceAliasValue}`,\n datapoints: parseDataPoint(dataPoint, timeshift),\n };\n });\n}\n\n// parse tencent cloud monitor response data to grafana panel data\nfunction parseDataPoint(dataPoint, timeshift = 0) {\n const timestamps = _.get(dataPoint, 'Timestamps', []);\n const values = _.get(dataPoint, 'Values', []);\n const result = timestamps.map((timestamp, index) => {\n return [values[index], timestamp * 1000 + timeshift];\n });\n\n return result;\n}\n\n// check whether instance is match or not\nfunction isInstanceMatch(instance, dimensions) {\n let match = true;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < dimensions.length; i++) {\n if (_.get(instance, dimensions[i].Name, '').toString() !== dimensions[i].Value.toString()) {\n match = false;\n break;\n }\n }\n return match;\n}\n\n/**\n * 检查某个变量是否模板变量,即是否匹配 ${varnam} 或 [[varname]]\n *\n * @param field 变量字段名\n */\nexport function isVariable(value) {\n if (value && (value.match(/^\\${?(\\w+)}?/) || value.match(/^\\[\\[(\\w+)(\\:\\w+)?\\]\\]/))) {\n return true;\n }\n return false;\n}\n\n/**\n * 腾讯云 API 3.0 接口协议\n * @param options 接口请求对象 { url: string, data?: object }\n * @param service 产品名字 'cvm'\n * @param signObj 接口请求相关信息 { region?: string, action: string }\n * @param secretId\n * @param secretKey\n */\nexport async function GetRequestParams(options, service, signObj: any = {}, secretId, datasourceId, backendSrv) {\n const signParams = {\n secretId,\n payload: options.data || '',\n ...signObj,\n ...(_.pick(GetServiceAPIInfo(signObj.region || '', service), ['service', 'host', 'version']) || {}),\n backendSrv,\n datasourceId,\n };\n const sign = new Sign(signParams);\n const { intranet, ...headerSigned } = await sign.getHeader();\n // 传入x-tc-language实现国际化\n // zh-CN en-US ko-KR ja-JP\n options.headers = Object.assign(options.headers || {}, { ...headerSigned }, { 'x-tc-language': getLanguage() });\n options.method = 'POST';\n if (intranet) {\n options.url += '-internal';\n }\n return options;\n}\n\n/**\n * 腾讯云 API 2.0 接口协议\n * @param options 接口请求对象 { url: string, data?: object }\n * @param service 产品名字 'cvm'\n * @param signObj 接口请求相关信息 { region?: string, action: string }\n * @param secretId\n * @param secretKey\n */\nexport async function GetRequestParamsV2(\n options: any = {},\n service,\n signObj: any = {},\n secretId,\n datasourceId,\n backendSrv\n) {\n const data = options.data || {};\n const signParams = {\n secretId,\n data,\n ...signObj,\n ...(_.pick(GetServiceAPIInfo(signObj.region || '', service), ['host', 'version']) || {}),\n backendSrv,\n datasourceId,\n };\n options.method = 'POST';\n const sign = new SignV2(signParams);\n options.headers = Object.assign(options.headers || {}, { 'Content-Type': 'application/x-www-form-urlencoded' });\n const { queryString, path, host, intranet } = await sign.generateQueryString();\n options.data = qs.stringify({\n ...options.data,\n ...queryString,\n ...(host && { host: host }),\n });\n if (intranet) {\n // TODO: qcloud.com intranet host\n console.log('got intranet for sign v2');\n }\n options.url += path;\n return options;\n}\n\nexport function SliceLength(total = 0, len = 1) {\n const result: any[] = [];\n const num = Math.ceil(total / len);\n for (let i = 1; i < num; i++) {\n result.push({ Offset: len * i });\n }\n return result;\n}\n\nexport const FilterKeys = ['Namespace', 'Offset', 'Limit', 'SearchKey', 'Description', 'OrderBy', 'Order'];\n\nexport function parseDataFromBackendPlugin(res) {\n const { data } = toDataQueryResponse(res);\n return {\n authorization: _.get(data, '[0].meta.custom', ''),\n };\n}\n\n/** 当前环境是否为非生产环境 */\nexport const IS_DEVELOPMENT_ENVIRONMENT = !(process.env.NODE_ENV === 'production');\n\n/**\n * @link https://github.com/grafana/grafana/blob/3c6e0e8ef85048af952367751e478c08342e17b4/packages/grafana-data/src/types/app.ts#L12\n */\nexport enum CoreApp {\n CloudAlerting = 'cloud-alerting',\n UnifiedAlerting = 'unified-alerting',\n Dashboard = 'dashboard',\n Explore = 'explore',\n Unknown = 'unknown',\n PanelEditor = 'panel-editor',\n PanelViewer = 'panel-viewer',\n}\n","import _ from 'lodash';\nimport moment from 'moment';\nimport DatasourceInterface from '../MonitorDatasource';\nimport {\n GetRequestParams,\n GetServiceAPIInfo,\n ReplaceVariable,\n GetDimensions,\n ParseQueryResult,\n SliceLength,\n} from '../../common/constants';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { MetricQuery } from './types';\nimport { getNamesapceFromService, getTimeShiftInMs } from '../../common/utils';\nimport { Language, setLanguage } from '../../../locale';\n\nexport interface TemplateQueryIdType {\n instance: string;\n listener?: string;\n}\n\ninterface queryConfigType {\n dim_KeyInStorage: string;\n dim_KeyInTarget?: string;\n dim_KeyInIns?: string;\n dim_KeyInMap: string;\n}\n\nexport abstract class BaseDatasource implements DatasourceInterface {\n Namespace?: string;\n service: string;\n instanceListCache: any[] = [];\n extraMetricDims: string[] = [];\n url: string;\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n secretId: string;\n checkKeys: string[] = [];\n MetricReqConfig: {\n resultFilter?: Function;\n } = {};\n extrasAlias?: string[] = [];\n /*\n 一个配置:(用于处理除了InstanceId之外的)(Record中的key是指标修正之后的维度,即通过InvalidDemsion处理后)\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。为空则取即通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。即:templateQueryIdMap中内容。联合上面2的内容筛选出原始sourceMap\n 4 通过这个dim和sourceMap获取维度值。即sourceMap[dim]\n */\n queryMonitorExtraConfg: Record = {};\n CandiateDimensions?: Record = {};\n\n InstanceReqConfig?: {\n service?: string;\n action: string;\n responseField: string;\n interceptor?: {\n request?: (params: unknown) => unknown;\n response?: (data: unknown) => unknown;\n };\n };\n InvalidDimensions?: Record;\n\n abstract InstanceAliasList: string[];\n abstract templateQueryIdMap: TemplateQueryIdType; // 必须为标识\n\n /** @ngInject */\n constructor(instanceSettings, backendSrv, templateSrv) {\n this.instanceSettings = instanceSettings;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n this.url = instanceSettings.url;\n this.secretId = (instanceSettings.jsonData || {}).secretId || '';\n setLanguage(instanceSettings.jsonData.language || Language.Chinese);\n }\n\n get namespace() {\n // 需要注意的是this.service来自于原型上,在实例中导入时注入\n return this.Namespace || getNamesapceFromService(this.service);\n }\n\n // 获取额外要显示到图例里的内容\n getOtherAlias(instance: any, target: any): string {\n let result = '';\n const alias = instance._InstanceAliasValue;\n this.extrasAlias?.forEach((extra) => {\n const extraAlia = this.getVariable(target[extra]);\n if (extraAlia && alias.indexOf(extraAlia) === -1) {\n result += ` - ${extraAlia}`;\n }\n });\n return result;\n }\n\n /* 格式化模板变量上的显示 */\n getAliasValue(instance: Record, alias: string) {\n const result = instance[alias];\n return Array.isArray(result) ? result.join() : result;\n }\n\n formatVarDisplay(instance: Record, displayTpl: string | undefined, instanceAlias: string) {\n // 获取display=aaa${InstanceName}bbb${InstanceId}ccc\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !this.InstanceAliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(instance, b);\n });\n }\n return this.getAliasValue(instance, instanceAlias);\n }\n /**\n * @param query 模板变量配置填写的 Query 参数对象,由顶层将字符串转换为了对象\n */\n async metricFindQuery(query: MetricQuery, regex?: string) {\n const { action, namespace, display, payload = {} } = query;\n let { region, instancealias = this.templateQueryIdMap.instance } = query;\n if (!action || !namespace) {\n return [];\n }\n // 支持payload里传入模板变量\n if (_.isObject(payload)) {\n _.forEach(payload, (value, key) => {\n payload[key] = _.isString(value) ? this.getVariable(value) : value;\n });\n }\n\n // 查询地域列表\n const regionQuery = action.match(/^DescribeRegions$/i);\n if (regionQuery) {\n return this.getRegions();\n }\n\n region = this.getVariable(region); // 将模板region转换为真实值\n\n // 查询实例列表\n if (region && action.match(/^DescribeInstances/i)) {\n const result = await this.getVariableInstances(region, payload);\n instancealias = this.InstanceAliasList.includes(instancealias) ? instancealias : this.templateQueryIdMap.instance;\n\n const res = result.flatMap((item) => {\n const insAlias = this.formatVarDisplay(item, display, instancealias);\n\n item._InstanceAliasValue = insAlias; // FIXME:\n\n if (!item[instancealias]) return [];\n return [\n {\n text: insAlias,\n value: item[this.templateQueryIdMap.instance],\n },\n ];\n });\n\n // 缓存全量实例列表\n await instanceStorage.setInstance(this.service, result);\n return res;\n }\n\n // 在instance实例的基础上查询其他数据\n let instance = this.getVariable(query['instance']);\n if (_.isArray(instance)) instance = instance[0]; // 有额外维度,仅支持实例单选情况\n if (region && action && instance) {\n try {\n // instance = JSON.parse(instance);\n const instanceCache = await instanceStorage.getInstance(this.service);\n\n instance = _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === instance)) ?? {};\n // eslint-disable-next-line no-empty\n } catch (error) {}\n return this.fetchMetricData(action, region, instance, query);\n }\n\n return Promise.resolve([]);\n }\n // 获取指标数据\n async fetchMetricData(action: string, region: string, instance: any, query?: any) {\n return [];\n }\n\n /**\n * 根据 Panel 的配置项,获取相应的监控数据\n *\n * @param options Panel 的配置参数\n * @return 返回数据数组,示例如下\n * [\n * {\n * \"target\": \"AccOuttraffic - ins-123\",\n * \"datapoints\": [\n * [861, 1450754160000],\n * [767, 1450754220000]\n * ]\n * }\n * ]\n */\n async dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options) {\n for (let key of dimKeys) {\n let keyTmp = key;\n const invalidDim = this.InvalidDimensions || this.getInvalidDimensions(this, target[service]);\n if (invalidDim[key]) {\n // 从【维度中】的字段到【实例中】字段的映射。 { functionName: FunctionName }\n keyTmp = invalidDim[key];\n ins[key] = ins[keyTmp];\n }\n\n let extraDimValue = this.getVariable(target[service][keyTmp]);\n if (this.queryMonitorExtraConfg[keyTmp]) {\n const {\n dim_KeyInStorage,\n dim_KeyInTarget = keyTmp,\n dim_KeyInMap,\n dim_KeyInIns,\n } = this.queryMonitorExtraConfg[keyTmp];\n let extraIns = ReplaceVariable(this.templateSrv, options.scopedVars, target[service][dim_KeyInTarget], true);\n let extraSourceMap: any = {};\n try {\n extraSourceMap = JSON.parse(extraIns); // 兼容json字符串的 形式\n } catch (error) {\n if (_.isArray(extraIns)) extraIns = extraIns[0]; // 如果多个,取第一个。除了实例ID 暂不支持其他纬度多选\n const extraStorage = await instanceStorage.getExtraStorage(this.service, dim_KeyInStorage);\n\n extraSourceMap =\n extraStorage?.find((item) => {\n if (_.isArray(item[dim_KeyInMap])) {\n return item[dim_KeyInMap][0] === extraIns;\n }\n return item[dim_KeyInMap] === extraIns;\n }) ?? {};\n }\n const isStringOrNumber = _.isString(extraSourceMap) || _.isNumber(extraSourceMap);\n // 增加ins实例之外的alias,填入到ins._InstanceAliasValue\n const insAlias = ins._InstanceAliasValue;\n const otherAlias = isStringOrNumber ? extraSourceMap : extraSourceMap._InstanceAliasValue;\n if (otherAlias && insAlias.indexOf(otherAlias) === -1) {\n ins._InstanceAliasValue += ` - ${otherAlias}`;\n }\n\n extraDimValue = isStringOrNumber ? extraSourceMap : extraSourceMap?.[dim_KeyInIns || keyTmp];\n } else {\n ins._InstanceAliasValue += this.getOtherAlias(ins, target[service]);\n }\n\n if (\n getTimeShiftInMs(target[service].timeshift) > 0 &&\n ins._InstanceAliasValue.indexOf(target[service].timeshift) === -1\n ) {\n ins._InstanceAliasValue += `_${target[service].timeshift}`;\n }\n // 设置instance,针对额外的维度,需要注意模板变量的值\n // ins[key] = ins[keyTmp] ?? extraDimValue;\n ins[key] = this.getDimensionsVal(ins, keyTmp, extraDimValue);\n // cynosdb产品接口返回维度和入参不一致\n if (this.checkKeys.length > 0) {\n this.checkKeys.forEach((Ekey) => {\n ins[Ekey] = ins[key];\n });\n }\n dimensionObject[key] = { Name: key, Value: ins[key] };\n }\n return dimensionObject;\n }\n getDimensionsVal(ins: Record, key: string, extraDimValue: string) {\n let dimVal = ins[key];\n if (_.isEmpty(dimVal) && this.CandiateDimensions[key]) {\n dimVal = ins[this.CandiateDimensions[key]];\n }\n return dimVal ?? extraDimValue;\n }\n query(options: any) {\n const service = this.service!; // 强制声明非空\n\n const queries = _.filter(options.targets, (item) => {\n // 过滤无效的查询 target\n return (\n item.hide !== true &&\n !!item.namespace &&\n !!item[service].metricName &&\n !_.isEmpty(ReplaceVariable(this.templateSrv, options.scopedVars, item[service].region, false)) &&\n !_.isEmpty(ReplaceVariable(this.templateSrv, options.scopedVars, item[service].instance, true))\n );\n })\n .reduce((prev, target) => {\n if (getTimeShiftInMs(target[service].timeshift) > 0) {\n const cloneTarget = _.cloneDeep(target);\n cloneTarget[service].timeshift = '';\n return [...prev, cloneTarget, target];\n }\n return [...prev, target];\n }, [])\n .map(async (target) => {\n // 实例 instances 可能为模板变量,需先获取实际值\n // 针对JSON字符串和id的形式,分开做处理\n let instances = ReplaceVariable(this.templateSrv, options.scopedVars, target[service].instance, true);\n const instanceCache = await instanceStorage.getInstance(this.service);\n const timeshift = getTimeShiftInMs(target[service].timeshift);\n\n instances = [].concat(instances).map((inst) => {\n try {\n return JSON.parse(inst); // 兼容json字符串的 形式\n } catch (error) {\n // 如果没拿到缓存,取默认实例组\n if (!instanceCache) return this.getDefaultInsObj?.(inst);\n return _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === inst)) ?? {};\n }\n });\n const region = ReplaceVariable(this.templateSrv, options.scopedVars, target[service].region, false);\n const insInReq: any = [];\n for (let ins of instances) {\n const dimensionObject = target[service].dimensionObject;\n // 处理dimensions的值\n const dimKeys = Object.keys(dimensionObject);\n const dimResult = await this.dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options);\n\n insInReq.push([{ Dimensions: GetDimensions(dimResult) }]);\n }\n const data = {\n StartTime: moment(options.range.from).subtract(timeshift).format(),\n EndTime: moment(options.range.to).subtract(timeshift).format(),\n Period: target[service].period || 300,\n Instances: _.flatMap(insInReq),\n Namespace: target.namespace,\n MetricName: target[service].metricName,\n };\n return this.getMonitorData(data, region, instances, target[service], options);\n });\n\n if (queries.length === 0) {\n return [];\n }\n\n return Promise.all(queries)\n .then((responses) => {\n return _.flatten(responses);\n })\n .catch((error) => {\n return [];\n });\n }\n getDefaultInsObj(ins: string) {\n return {} as any;\n }\n getInstanceReqConfig(selfIns: any) {\n return {} as any;\n }\n getInvalidDimensions(selfIns: any, target?: any) {\n return {} as any;\n }\n // 获取某个变量的实际值,this.templateSrv.replace() 函数返回实际值的字符串\n getVariable(metric?: string) {\n const rs = this.templateSrv.replace((metric || '').trim());\n const valStr = rs.match(/\\{([\\w-,]+)\\}/);\n // 判断是否为多选\n if (valStr) {\n return valStr[1].split(',');\n }\n return rs;\n }\n\n /**\n * 获取 监控数据\n * @param params 获取监控数据的请求参数\n * @param region 地域信息\n * @param instances 实例列表,用于对返回结果的匹配解析\n */\n getMonitorData(params, region, instances, target, options) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const timeshift = getTimeShiftInMs(target.timeshift);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { action: 'GetMonitorData', region }\n ).then((response) => {\n return ParseQueryResult(response, instances, timeshift);\n });\n }\n\n getRegions(): any {\n return this.doRequest(\n {\n url: this.url + '/cvm',\n },\n 'cvm',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getMetrics(region = 'ap-guangzhou'): Promise {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: this.namespace,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n ).then((response) => {\n const res = _.filter(\n _.filter(response.MetricSet || [], (item) => !(item.Namespace !== this.namespace || !item.MetricName))\n );\n const resFilterFn = this.MetricReqConfig.resultFilter;\n if (resFilterFn) {\n return res.map((item) => resFilterFn(item));\n }\n return res;\n });\n }\n\n getInstances(region, params = {}) {\n const {\n service = this.service,\n action,\n responseField: field,\n interceptor,\n } = this.InstanceReqConfig || this.getInstanceReqConfig(this);\n params = { Offset: 0, Limit: 100, ...params };\n const serviceInfo = GetServiceAPIInfo(region, service);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: interceptor?.request ? interceptor.request(params) : params,\n },\n serviceInfo.service,\n { region, action }\n ).then((response) => {\n // 处理异常,则不按正常的情况处理,直接抛出错误\n if (response?.Error) {\n console.error(response.Error);\n return response;\n }\n\n let result;\n // 先,field处理\n if (field) {\n result = _.get(response, field) ?? _.get(response, `Result.${field}`) ?? [];\n }\n\n // 后,拦截器处理\n if (interceptor?.response) {\n result = interceptor.response(result);\n }\n return result;\n });\n }\n\n getVariableInstances(region, query = {}): Promise {\n let result: any[] = [];\n const params = { ...{ Offset: 0, Limit: 100 }, ...query };\n\n const {\n service = this.service,\n action,\n responseField: field,\n interceptor,\n } = this.InstanceReqConfig || this.getInstanceReqConfig(this);\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: interceptor?.request ? interceptor.request(params) : params,\n },\n serviceInfo.service,\n { region, action }\n ).then((response) => {\n result = _.get(response, field) ?? _.get(response, `Result.${field}`) ?? [];\n const total =\n response.TotalCount ?? response.TotalCnt ?? response.TotalNumber ?? _.get(response, `Result.TotalCount`) ?? 0;\n if (result.length >= total) {\n return interceptor?.response ? interceptor.response(result) : result;\n } else {\n const param = SliceLength(total, params?.Limit || 100);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getInstances(region, { ...item, ...query }));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return interceptor?.response ? interceptor.response(result) : result;\n })\n .catch((error) => {\n return interceptor?.response ? interceptor.response(result) : result;\n });\n }\n });\n }\n\n // 检查某变量字段是否有值\n isValidConfigField(field: string) {\n return field && field.length > 0;\n }\n\n testDatasource() {\n // const { service = this.service, action } = this.InstanceReqConfig;\n // const serviceInfo = GetServiceAPIInfo('ap-guangzhou', service);\n\n if (!this.isValidConfigField(this.secretId)) {\n return {\n service: this.service,\n status: 'error',\n message: 'The SecretId/SecretKey field is required.',\n };\n }\n\n return Promise.all([\n this.getRegions(),\n this.getMetrics(),\n // this.doRequest(\n // {\n // url: this.url + serviceInfo.path,\n // data: {\n // Offset: 0,\n // Limit: 1,\n // },\n // },\n // service,\n // { region: 'ap-guangzhou', action },\n // ),\n this.getInstances('ap-guangzhou', {\n Offset: 0,\n Limit: 1,\n }),\n ])\n .then((responses) => {\n const cvmErr = _.get(responses, '[0].Error', {});\n const monitorErr = _.get(responses, '[1].Error', {});\n const serviceErr = _.get(responses, '[2].Error', {});\n // const cvmAuthFail = _.get(cvmErr, 'Code', '').indexOf('AuthFailure') !== -1;\n // const monitorAuthFail = _.get(monitorErr, 'Code', '').indexOf('AuthFailure') !== -1;\n // const serviceAuthFail = _.get(serviceErr, 'Code', '').indexOf('AuthFailure') !== -1;\n const cvmAuthFail = _.get(cvmErr, 'Code', '');\n const monitorAuthFail = _.get(monitorErr, 'Code', '');\n const serviceAuthFail = _.get(serviceErr, 'Code', '');\n if (cvmAuthFail || monitorAuthFail || serviceAuthFail) {\n const messages: any[] = [];\n if (cvmAuthFail) {\n messages.push(_.get(cvmErr, 'Code'));\n }\n if (monitorAuthFail) {\n messages.push(_.get(monitorErr, 'Code'));\n }\n if (serviceAuthFail) {\n messages.push(_.get(serviceErr, 'Code'));\n }\n const message = _.join(_.compact(_.uniq(messages)), '; ');\n return {\n service: this.service,\n status: 'error',\n message,\n };\n } else {\n return {\n namespace: this.namespace,\n service: this.service,\n status: 'success',\n message: `Successfully queried the ${this.service} service.`,\n title: 'Success',\n };\n }\n })\n .catch((error) => {\n let message = `${this.service} service:`;\n message += error.statusText ? error.statusText + '; ' : '';\n if (_.get(error, 'data.error.code', '')) {\n message += error.data.error.code + '. ' + error.data.error.message;\n } else if (_.get(error, 'data.error', '')) {\n message += error.data.error;\n } else if (_.get(error, 'data', '')) {\n message += error.data;\n } else {\n message += `Cannot connect to ${this.service} service.`;\n }\n return {\n service: this.service,\n status: 'error',\n message: message,\n };\n });\n }\n\n async doRequest(options, service, signObj: any = {}) {\n options = await GetRequestParams(\n options,\n service,\n signObj,\n this.secretId,\n this.instanceSettings.id,\n this.backendSrv\n );\n return this.backendSrv\n .datasourceRequest(options)\n .then((response) => {\n return _.get(response, 'data.Response', {});\n })\n .catch((error) => {\n throw error;\n });\n }\n}\n","import _ from 'lodash';\nimport { SERVICES } from '../tc_monitor';\n\n/* 从分页数据获取全量数据 */\nconst PageSize = 50;\nfunction getFieldsValue(value, fields) {\n return fields.map((item) => _.get(value, item, _.get(value, `Result.${item}`, [])));\n}\n\nexport async function fetchAllFactory(fetcher: (args: any) => Promise, _params: any, field: string | string[]) {\n const params = { ..._.omit(_params, ['isOffsetPage']) };\n params.Limit = params.Limit || PageSize; // 默认给个Limit大小为50\n params.Offset = params.Offset ?? 0; // 默认给个Offset为0\n\n // 第一次请求,获取总数\n const rs = (await fetcher(params)) ?? {};\n const fields = Array.isArray(field) ? field : [field];\n\n // rs.TotalCount = rs.TotalCount ?? rs.Result.TotalCount ?? [];\n // const { TotalCount } = rs;\n const TotalCount = rs.TotalCount ?? rs.Result?.TotalCount ?? rs.TotalCnt ?? rs.Result?.TotalCnt ?? 0;\n const firstLists = getFieldsValue(rs, fields);\n\n if (TotalCount === 0 || firstLists[0].length === TotalCount) {\n // 只有一页,结束\n return firstLists;\n }\n\n // 批量请求\n const delta = TotalCount - firstLists[0].length;\n const batchCount = Math.ceil(delta / PageSize);\n const pmList = new Array(batchCount).fill(0).map((_, index) => {\n params.Offset = _params.isOffsetPage ? 1 + index : (1 + index) * params.Limit;\n return fetcher(params);\n });\n\n // 合并\n const resultList = await Promise.all(pmList); // [ {a: [], b[] }, { a: [], b:[] }]\n\n return resultList.reduce((acc, cur) => {\n const lists = getFieldsValue(cur, fields);\n // [[], [], []] + [[], [], []]\n acc.forEach((list, index) => list.push(...lists[index]));\n return acc;\n }, firstLists);\n}\n\n/**\n * 实例列表接口入参处理\n *\n * @param queries 表单键入内容\n * @param isFilter 是否需要设置为Filters格式\n */\nexport function instanceQueryParamsBaseParse(queries: any, isFilter: boolean) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n const Filters: any[] = [];\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n if (isFilter) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n } else {\n params[key] = _.uniq(item);\n }\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n if (isFilter) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n } else {\n params[key] = _.get(item, 'value');\n }\n }\n } else if (item !== null && item !== undefined && item !== '') {\n if (isFilter) {\n Filters.push({ Name: key, Values: item });\n } else {\n params[key] = item;\n }\n }\n });\n if (isFilter && Filters.length > 0) {\n params.Filters = Filters;\n return params;\n }\n }\n return params;\n}\n\nexport function getNamesapceFromService(serviceName: string) {\n return _.get(\n _.find(SERVICES, (service) => service.service === serviceName),\n 'namespace'\n );\n}\n\nexport function serviceGroupBy(\n services: { service: string; label: string; namespace: string; href: string; groupName?: string }[]\n) {\n const result = services.reduce((acc, cur) => {\n const { namespace, label, groupName = label } = cur;\n\n const existedGroup = acc.find((item) => item.label === groupName);\n if (!existedGroup) {\n acc.push({ label: groupName, value: groupName, items: [{ label, value: namespace }] });\n return acc;\n }\n\n existedGroup.items.push({ label, value: namespace });\n return acc;\n }, [] as any[]);\n\n // 将只有一个子元素的项目进行特殊处理\n const rs = result.map((item) =>\n item.items.length === 1 ? { label: item.items[0].label, value: item.items[0].value } : item\n );\n return rs;\n}\n\nexport const isTargetEqual = (newTargetString: string, oldTargetString: string, key: string) => {\n try{\n const newTarget = JSON.parse(newTargetString);\n const oldTarget = JSON.parse(oldTargetString);\n return newTarget[key] === oldTarget[key];\n }catch(e){\n return newTargetString === oldTargetString;\n }\n}\n\nexport const getTimeShiftInMs = (timeShift: any) => {\n const parts = /^(\\d+)([d|h|m|s])$/.exec(timeShift);\n if (!parts) {\n return 0;\n }\n const amount = parseInt(parts[1], 10);\n const unit = parts[2];\n switch (unit) {\n case 'd':\n return amount * 86400 * 1000;\n case 'h':\n return amount * 3600 * 1000;\n case 'm':\n return amount * 60 * 1000;\n case 's':\n return amount * 1000;\n }\n return 0;\n}","module.exports = __WEBPACK_EXTERNAL_MODULE__5__;","module.exports = __WEBPACK_EXTERNAL_MODULE__6__;","import coreModule from 'grafana/app/core/core_module';\nimport { DetailQueryConfig } from './types';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nfunction classFactory(detailConfig) {\n return class QueryCtrl {\n static _config: DetailQueryConfig;\n\n /** @ngInject */\n constructor($scope, $rootScope) {\n Object.assign($scope, detailConfig);\n\n $scope.getDropdown = (field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n return $scope.datasource.getFilterDropdown(service, { field, region: $scope.region });\n };\n }\n };\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n`;\nfunction queryDDOFactory(QueryCtrl) {\n return function queryDDO() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n };\n}\n\nexport default (name: string, config: DetailQueryConfig) => {\n // QueryCtrl._config = config;\n const newQueryIns = classFactory(config);\n coreModule.directive(name, queryDDOFactory(newQueryIns));\n};\n","interface DBEvent {\n target: { result: any; error: any };\n}\n// 数据库结构\ninterface DBTypes {\n store: StoreType;\n name?: string;\n version?: number;\n}\n// store表结构\ninterface StoreType {\n name: string; // 表名\n key: string; // 主键名\n cursorIndex?: { name: string; unique: boolean }[]; // 索引列表\n}\n\n// 数据结构\n// {service: 'cvm', instance: [{ins: 23}]}\ninterface DataType {\n service: string;\n [x: string]: any; // 有产品需缓存其他列表\n}\n\n// interface UpdateProps {\n// storeName: string;\n// cursorKey: string;\n// cursorValue?: any;\n// data: any;\n// }\n\nconst store: StoreType = {\n name: 'grafanaInstanceList',\n key: 'service',\n};\nconst promisify = (request: any, type?: string) => {\n return new Promise((resolve, reject) => {\n request.onsuccess = (event: DBEvent) => {\n const returnMap: any = {\n event: event.target.result,\n request: request.result,\n msg: '操作成功',\n };\n resolve(returnMap[type || 'msg']);\n };\n request.onerror = (event: DBEvent) => reject(event.target.error || '操作失败');\n });\n};\n// 固定表名和数据库名\nclass IndexedDB {\n name = 'grafanaDatabase';\n version = 1;\n\n constructor(props: DBTypes) {\n const { name = 'database', version = 1, store } = props;\n this.name = name;\n this.version = version;\n\n this.initDB(store);\n }\n\n /**\n * 初始化数据库\n * @param store 库表的结构\n */\n initDB(store: StoreType) {\n const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;\n const request = indexeddb.open(this.name, this.version);\n\n request.onupgradeneeded = (event: IDBVersionChangeEvent) => {\n const db = (event.target as IDBOpenDBRequest).result;\n if (db.objectStoreNames.contains(store.name)) {\n // 存在表store\n }\n\n // 遍历store,设置数据表结构\n db.createObjectStore(store.name, {\n keyPath: store.key,\n });\n };\n request.onerror = () => Promise.reject(new Error('初始化数据库失败'));\n request.onsuccess = () => Promise.resolve('初始化数据库成功');\n }\n\n openDB() {\n const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;\n const request = indexeddb.open(this.name, this.version);\n\n return promisify(request, 'event');\n }\n\n /**\n * 新增数据\n * @param storeName 表名\n * @param data 添加的数据\n */\n async insertData(storeName: string, data: any) {\n try {\n // console.time('insertData');\n const db = await this.openDB();\n const transaction = db.transaction(storeName, 'readwrite');\n const objectStore = transaction.objectStore(storeName);\n\n objectStore.add(data);\n // console.timeEnd('insertData');\n\n return new Promise((resolve, reject) => {\n transaction.oncomplete = function () {\n // console.timeEnd('insertData');\n resolve('所有数据插入成功');\n };\n\n transaction.onerror = function (event) {\n reject(event);\n };\n });\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n /**\n * 更新数据\n * @param props 查询数据的参数以及要修改的值的参数\n */\n async addData(data: DataType, isCover?: boolean) {\n try {\n // console.log('addData');\n const storeName = store.name; // 表名\n const oldData = await this.getData(data.service);\n const objectStore = await this.getObjectStore(storeName, 'readwrite');\n\n if (!oldData) {\n // 不存在则新建\n this.insertData(storeName, data);\n }\n // 存在则更新\n let newData: any = { ...oldData, ...data };\n if (isCover) newData = data; // 需要覆盖之前内容\n // 把更新过的对象放回数据库\n const requestUpdate = objectStore.put(newData);\n // console.timeEnd('updateData');\n return promisify(requestUpdate);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n /**\n * 获取数据库的值,返回查询到的第一项\n * @param storeName 表名/存储对象的键\n * @param cursorKey key\n * @param cursorValue 要查询索引的值\n */\n async getData(seviceName: string) {\n try {\n // console.time('getData');\n const storeName = store.name;\n const objectStore = await this.getObjectStore(storeName);\n const request = objectStore.get(seviceName);\n // console.timeEnd('getData');\n return promisify(request, 'request');\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async getAllData(storeName: string) {\n try {\n // console.time('getAllData');\n const objectStore = await this.getObjectStore(storeName);\n const request = objectStore.getAll();\n const result = await promisify(request, 'request');\n // console.timeEnd('getAllData');\n return result ? result : [];\n } catch (error) {\n return Promise.reject(error);\n }\n }\n /**\n * 获取对象仓库\n * @param storeName 表名\n * @param type readonly 或者 readwrite等\n */\n private async getObjectStore(storeName: string, type?: any): Promise {\n try {\n const db = await this.openDB();\n return db.transaction(storeName, type).objectStore(storeName);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n// console.log('testDDB')\n// const indexDB = new IndexedDB({store});\n// indexDB.addData({service: 'cvm', instance: [{ins: 23}]}).then(e=>{\n// indexDB.getData('cvm').then(dd=>{console.log({dd})})\n// })\nexport default new IndexedDB({ store });\n","import indexedDB from './indexedDB';\nclass InstanceStorage {\n // prefix = 'Datasource';\n // storageKey = 'grafanaInstanceCache';\n insKey = 'Instances';\n cacheWay = '';\n constructor() {}\n setInstance(service: string, value: Record) {\n return this.setStorage(service, this.insKey, value, true);\n }\n async getInstance(service: string) {\n return this.getStorage(service, this.insKey);\n }\n setExtraStorage(service: string, Ekey: string, EValue: Record) {\n return this.setStorage(service, Ekey, EValue, false);\n }\n async getExtraStorage(service: string, Ekey: string) {\n return this.getStorage(service, Ekey);\n }\n private setStorage(serviceKey: string, key: string, value: Record, isCover = false) {\n // console.log('set', serviceKey, key, value);\n return indexedDB.addData(\n {\n service: serviceKey,\n [key]: value,\n },\n isCover\n );\n }\n // 获取到模版变量信息\n private async getStorage(service: string, key?: string) {\n const storage = await indexedDB.getData(service);\n // console.log('get', key, storage);\n return key ? storage?.[key] : storage;\n }\n}\nexport default new InstanceStorage();\n","module.exports = __WEBPACK_EXTERNAL_MODULE__9__;","import _ from 'lodash';\n\nexport const CKAFKAQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstanceId',\n cnDescriptor: '按照实例ID过滤',\n link: '',\n type: 'input',\n },\n {\n key: 'SearchWord',\n enDescriptor: 'SearchWord',\n cnDescriptor: '按照实例名称过滤,支持模糊查询',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '匹配标签key值',\n link: '',\n type: 'input',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例的状态,不填默认返回全部',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 0 },\n { text: '运行中', value: 1 },\n { text: '删除中', value: 2 },\n ],\n },\n];\n\nconst CKAFKA_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n topicId: '',\n topicName: '',\n consumerGroup: '',\n partition: '',\n queries: {\n Offset: 0,\n Limit: 10,\n Status: [],\n InstanceId: '',\n SearchWord: '',\n TagKey: '',\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst CKAFKAInstanceAliasList = ['InstanceId', 'InstanceName'];\nconst CKAFKATopicAliasList = ['TopicId', 'TopicName'];\n// 保存在模板变量value中的key\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n topicId: 'TopicId',\n groupName: 'GroupName',\n partition: 'PartitionId',\n};\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst CKAFKAInvalidDemensions = new Proxy(\n {\n topicId: 'TopicId',\n topicName: 'TopicName',\n consumerGroup: 'GroupName',\n partition: 'PartitionId',\n },\n {\n get: (obj, prop) => {\n if (String(prop).toLocaleLowerCase() === 'instanceid') return 'InstanceId';\n return obj[prop];\n },\n }\n);\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n TopicList: 'TopicList',\n GroupList: 'GroupList',\n PartitionList: 'PartitionList',\n};\n\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n TopicId: {\n dim_KeyInStorage: keyInStorage.TopicList,\n dim_KeyInTarget: 'topicId',\n dim_KeyInMap: templateQueryIdMap.topicId,\n },\n // topicName和topicId是同一个storage中的source,所以根据topicId帅选\n TopicName: {\n dim_KeyInStorage: keyInStorage.TopicList,\n dim_KeyInTarget: 'topicId',\n dim_KeyInMap: templateQueryIdMap.topicId,\n },\n GroupName: {\n dim_KeyInStorage: keyInStorage.GroupList,\n dim_KeyInTarget: 'consumerGroup',\n dim_KeyInMap: templateQueryIdMap.groupName,\n },\n PartitionId: {\n dim_KeyInStorage: keyInStorage.PartitionList,\n dim_KeyInTarget: 'partition',\n dim_KeyInMap: templateQueryIdMap.partition,\n },\n};\nexport default CKAFKA_STATE;\nexport {\n CKAFKAInstanceAliasList,\n CKAFKATopicAliasList,\n CKAFKAInvalidDemensions,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n GetInstanceQueryParams as CKAFKAGetInstanceQueryParams,\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__11__;","import _ from 'lodash';\n\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/LOADBALANCE';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'loadBalanceQuery';\n\nconst ForwardTypes = [\n { text: '通用的负载均衡', value: 1 },\n { text: '传统的负载均衡', value: 0 },\n];\n\nconst OrderBy = [\n { text: 'LoadBalancerName', value: 'LoadBalancerName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'Domain', value: 'Domain' },\n { text: 'LoadBalancerType', value: 'LoadBalancerType' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\n\nconst WithRs = [\n { text: '没有绑定后端服务', value: 0 },\n { text: '绑定后端服务', value: 1 },\n { text: '查询全部', value: -1 },\n];\nconst LOADBALANCEFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',\n link: '',\n type: 'inputNumber',\n min: 1,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancer ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancer Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'Forward',\n enDescriptor: 'Forward',\n cnDescriptor: '负载均衡实例类型',\n link: '',\n type: 'select',\n list: ForwardTypes,\n },\n {\n key: 'Domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',\n link: '',\n type: 'input',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancer Vips',\n cnDescriptor: '负载均衡实例的 VIP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivate Ips',\n cnDescriptor: '负载均衡绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPublicIps',\n enDescriptor: 'BackendPublic Ips',\n cnDescriptor: '负载均衡绑定的后端服务的外网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '负载均衡实例所属的项目 ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'VpcId',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '负载均衡实例所属私有网络',\n link: '',\n type: 'input',\n },\n {\n key: 'SecurityGroup',\n enDescriptor: 'Security Group',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'input',\n },\n {\n key: 'MasterZone',\n enDescriptor: 'Master Zone',\n cnDescriptor: '主可用区ID',\n link: '',\n type: 'input',\n },\n {\n key: 'WithRs',\n enDescriptor: 'WithRs',\n cnDescriptor: '负载均衡是否绑定后端服务',\n link: '',\n type: 'select',\n list: WithRs,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderType,\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',\n namespace,\n fieldDescriptor: LOADBALANCEFieldsDescriptor,\n};\nconst LBFields = {\n LoadBalancerIds: [],\n Forward: undefined,\n LoadBalancerName: '',\n Domain: '',\n LoadBalancerVips: [],\n BackendPublicIps: [],\n BackendPrivateIps: [],\n Limit: 20,\n Offset: 0,\n ProjectId: undefined,\n WithRs: {},\n VpcId: '',\n SecurityGroup: '',\n MasterZone: '',\n OrderBy: {},\n OrderType: {},\n};\n\nconst LOADBALANCE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n Port: '',\n Protocol: '',\n listener: '',\n servers: '',\n serverPort: '',\n // listenerAlias: 'ListenerId',\n queries: LBFields,\n};\n\n// function GetInstanceQueryParams(queries: any = {}) {\n// const params: any = {};\n// if (!_.isEmpty(queries)) {\n// params.Limit = _.get(queries, 'Limit', 20) || 20;\n// params.Offset = _.get(queries, 'Offset', 0) || 0;\n// queries = _.omit(queries, ['Offset', 'Limit']);\n// _.forEach(queries, (item: any, key) => {\n// if (_.isArray(item)) {\n// item = _.compact(item);\n// if (item.length > 0) {\n// params[key] = _.uniq(item);\n// }\n// } else if (_.isObject(item)) {\n// if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n// params[key] = _.get(item, 'value');\n// }\n// } else if (_.isNumber(item) || !_.isEmpty(item)) {\n// params[key] = item;\n// }\n// });\n// }\n// return params;\n// }\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nconst InstanceAliasList = ['LoadBalancerId', 'LoadBalancerName', 'LoadBalancerVips'];\nconst LOADBALANCEListenerAliasList = ['ListenerId', 'ListenerName', 'Port'];\nconst LOADBALANCEServerAliasList = ['PrivateIpAddresses', 'InstanceId'];\nconst LOADBALANCEVALIDDIMENSIONS = {\n vip: 'LoadBalancerVips',\n // vpcId: 'NumericalVpcId',\n loadBalancerPort: 'Port',\n protocol: 'Protocol',\n lanIp: 'PrivateIpAddresses',\n port: 'ServerPort',\n};\n// 对于ipv6类型,vip应该取AddressIPv6。\nconst CANDIATEDIMENSIONS = {\n LoadBalancerVips: 'AddressIPv6',\n};\n// dimensionObject[item] = { Name: item, Value: '' };\n// const LOADBALANCE_INSTANCE_DIMENSIONOBJECTS = {\n// vip: { Name: 'vip', Value: '' },\n// };\n// const LOADBALANCE_LISTENER_DIMENSIONOBJECTS = {\n// vip: { Name: 'vip', Value: '' },\n// loadBalancerPort: { Name: 'loadBalancerPort', Value: '' },\n// protocol: { Name: 'protocol', Value: '' },\n// };\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n listener: 'ListenerId',\n servers: 'PrivateIpAddresses',\n port: 'Port',\n};\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n listener: 'ListenerList',\n servers: 'ServersList',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n Port: {\n dim_KeyInStorage: keyInStorage.listener,\n dim_KeyInTarget: 'listener',\n dim_KeyInMap: templateQueryIdMap.listener,\n },\n Protocol: {\n dim_KeyInStorage: keyInStorage.listener,\n dim_KeyInTarget: 'listener',\n dim_KeyInMap: templateQueryIdMap.listener,\n },\n PrivateIpAddresses: {\n dim_KeyInStorage: keyInStorage.servers,\n dim_KeyInTarget: 'servers',\n dim_KeyInMap: templateQueryIdMap.servers,\n },\n ServerPort: {\n dim_KeyInStorage: keyInStorage.servers,\n dim_KeyInTarget: 'serverPort',\n dim_KeyInIns: 'Port',\n dim_KeyInMap: templateQueryIdMap.port,\n },\n};\nexport default LOADBALANCE_STATE;\nexport {\n LOADBALANCEFieldsDescriptor,\n InstanceAliasList,\n LOADBALANCEListenerAliasList,\n LOADBALANCEServerAliasList,\n LOADBALANCEVALIDDIMENSIONS,\n templateQueryIdMap,\n CANDIATEDIMENSIONS,\n // LOADBALANCE_LISTENER_DIMENSIONOBJECTS,\n // LOADBALANCE_INSTANCE_DIMENSIONOBJECTS,\n queryMonitorExtraConfg,\n keyInStorage,\n queryEditorConfig,\n namespace,\n queryEditorName,\n GetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/TDMQ';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tdmqQuery';\n\nconst TDMQInvalidDemensions = {\n tenantId: 'ClusterId',\n tenant: 'ClusterId',\n topicName: 'TopicName',\n environmentId: 'EnvironmentId',\n};\n\n// 需和文件名对应\nconst TDMQInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nconst templateQueryIdMap = {\n instance: 'ClusterId',\n topicName: 'TopicName',\n environmentId: 'EnvironmentId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n];\n\nconst CDNPROVINCE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n topicName: '',\n environmentId: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n if (item.Dimensions.indexOf('topicName') !== -1 && item.Dimensions.indexOf('environmentId') === -1) {\n item.Dimensions.push('environmentId');\n }\n });\n return metricTmp;\n}\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n topicName: 'topicName',\n environmentId: 'environmentId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n TopicName: {\n dim_KeyInStorage: keyInStorage.topicName,\n dim_KeyInTarget: 'topicName',\n dim_KeyInMap: templateQueryIdMap.topicName,\n },\n EnvironmentId: {\n dim_KeyInStorage: keyInStorage.environmentId,\n dim_KeyInTarget: 'environmentId',\n dim_KeyInMap: templateQueryIdMap.environmentId,\n },\n};\nexport default CDNPROVINCE_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryEditorName,\n queryMonitorExtraConfg,\n keyInStorage,\n modifyDimensons,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/GSE';\nconst fleetId = 'FleetId'; // 为和cvm其他产品保持一致,即将string[]改为Array<{fleetid: xxx}>,在此声明key\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'gseQuery';\n\nconst GSEInvalidDemensions = {\n instanceid: 'InstanceId',\n fleetid: 'FleetId',\n queuename: 'Name',\n};\n\n// 需和文件名对应\nconst GSEInstanceAliasList = ['InstanceId', 'PrivateIpAddress', 'IpAddress'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n Name: 'Name',\n FleetId: fleetId,\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n fleet: 'fleet', // 实例队列\n queue: 'queueName', // 会话队列\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n FleetId: {\n dim_KeyInStorage: keyInStorage.fleet,\n dim_KeyInTarget: 'FleetId',\n dim_KeyInMap: templateQueryIdMap.FleetId,\n },\n Name: {\n dim_KeyInStorage: keyInStorage.queue,\n dim_KeyInTarget: 'Name',\n dim_KeyInMap: templateQueryIdMap.Name,\n },\n};\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst GSEFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceId: '',\n FleetId: '',\n};\n\nconst GSEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'resourceName',\n cnDescriptor: '资源名称',\n link: '',\n type: 'input',\n },\n {\n key: 'FleetId',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1165/42604',\n namespace,\n fieldDescriptor: GSEFilterFieldsDescriptor,\n};\n\nconst GSE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n FleetId: '', // 服务器实例\n Name: '', // 队列名称\n queries: GSEFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n // { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n // { value: 'ap-shanghai-fsi' },\n // { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n // { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((v) => GSEInvalidDemensions[v] || v);\n });\n return metricTmp;\n}\nexport default GSE_STATE;\nexport {\n GSEFilterFieldsDescriptor,\n templateQueryIdMap,\n GSEInstanceAliasList,\n GSEInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n queryMonitorExtraConfg,\n fleetId,\n keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as GSEGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { isArray, cloneDeep } from 'lodash';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/TDMYSQL';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'dcdbQuery';\n\nconst DCDBInvalidDemensions = {\n nodeid: 'NodeId',\n instanceid: 'InstanceId',\n shardid: 'ShardInstanceId',\n ShardId: 'ShardInstanceId',\n};\n\n// 需和文件名对应\nconst DCDBInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n NodeId: 'NodeId',\n ShardInstanceId: 'ShardInstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst DCDBFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceIds: [],\n SearchName: '',\n SearchKey: '',\n ProjectIds: [],\n // IsFilterVpc\n VpcId: '',\n SubnetId: '',\n\n OrderBy: {},\n OrderByType: {},\n // IsFilterExcluster: {},\n ExclusterType: {},\n\n ExclusterIds: [],\n FilterInstanceType: {},\n};\n\nconst DCDBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '实例 ID 查询',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'SearchName',\n enDescriptor: 'SearchName',\n cnDescriptor: '搜索的字段名,当前支持的值有:instancename、vip、all',\n link: '',\n type: 'input',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '搜索的关键字',\n link: '',\n type: 'input',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '按项目 ID 查询',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '私有网络的子网 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: 'projectId', value: 'projectId' },\n { text: 'createtime', value: 'createtime' },\n { text: 'instancename', value: 'instancename' },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'select',\n list: [\n { text: 'desc', value: 'desc' },\n { text: 'asc', value: 'asc' },\n ],\n },\n {\n key: 'ExclusterType',\n enDescriptor: 'ExclusterType',\n cnDescriptor: '集群类型',\n link: '',\n type: 'select',\n list: [\n { text: '非独享集群', value: 1 },\n { text: '独享集群', value: 2 },\n { text: '全部', value: 0 },\n { text: 'asc', value: 'asc' },\n ],\n },\n {\n key: 'ExclusterIds',\n enDescriptor: 'ExclusterIds',\n cnDescriptor: '独享集群ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'FilterInstanceType',\n enDescriptor: 'FilterInstanceType',\n cnDescriptor: '实例类型过滤',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '独享实例', value: 1 },\n { text: '主实例', value: 2 },\n { text: '灾备实例', value: 3 },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/557/16140',\n namespace,\n fieldDescriptor: DCDBFilterFieldsDescriptor,\n};\n\nconst DCDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n ShardId: '',\n NodeId: '',\n queries: DCDBFilterFields,\n};\nconst modifyMetricConf = {\n shardid: 'ShardId',\n instanceid: 'InstanceId',\n nodeid: 'NodeId',\n};\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((v) => modifyMetricConf[v] || v);\n });\n return metricTmp;\n}\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params = instanceQueryParamsBaseParse(queries, false);\n // 特殊处理\n params.IsFilterVpc = false;\n params.IsFilterExcluster = false;\n if (params.VpcId || params.SubnetId) params.IsFilterVpc = true;\n if (params.ExclusterType) params.IsFilterExcluster = true;\n if (isArray(params.FilterInstanceType)) params.FilterInstanceType = params.FilterInstanceType.join(',');\n return params;\n}\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n NodeId: 'NodeId',\n ShardInstanceId: 'ShardId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NodeId: {\n dim_KeyInStorage: keyInStorage.NodeId,\n dim_KeyInTarget: 'NodeId',\n dim_KeyInMap: templateQueryIdMap.NodeId,\n },\n ShardInstanceId: {\n dim_KeyInStorage: keyInStorage.ShardInstanceId,\n dim_KeyInTarget: 'ShardId',\n dim_KeyInMap: templateQueryIdMap.ShardInstanceId,\n },\n};\n// 和其他产品的展示保持一致\nconst regionSupported = [\n { text: '华北地区(北京)', value: 'ap-beijing' },\n { text: '西南地区(成都)', value: 'ap-chengdu' },\n { text: '西南地区(重庆)', value: 'ap-chongqing' },\n { text: '华南地区(广州)', value: 'ap-guangzhou' },\n { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n { text: '华东地区(南京)', value: 'ap-nanjing' },\n { text: '华东地区(上海)', value: 'ap-shanghai' },\n { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n { text: '亚太东北(东京)', value: 'ap-tokyo' },\n { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n { text: '北美地区(多伦多)', value: 'na-toronto' },\n];\nexport default DCDB_STATE;\nexport {\n DCDBFilterFieldsDescriptor,\n templateQueryIdMap,\n DCDBInstanceAliasList,\n DCDBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n keyInStorage,\n modifyDimensons,\n queryMonitorExtraConfg,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as DCDBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nconst namespace = 'QCE/REDIS_MEM';\nconst BillingMode = [\n { text: '按量计费', value: 'postpaid' },\n { text: '包年包月', value: 'prepaid' },\n];\n\nconst AutoRenew = [\n { text: '手动续费', value: 0 },\n { text: '自动续费', value: 1 },\n { text: '明确不自动续费', value: 2 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '已隔离', value: -2 },\n { text: '待删除', value: -3 },\n];\n\nconst TypeVersion = [\n { text: '单机版', value: 1 },\n { text: '主从版', value: 2 },\n { text: '集群版', value: 3 },\n];\n\nconst OrderBy = [\n { text: 'projectId', value: 'projectId' },\n { text: 'instancename', value: 'instancename' },\n { text: 'createtime', value: 'createtime' },\n { text: 'type', value: 'type' },\n { text: 'curDeadline', value: 'curDeadline' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\nconst Type = [\n { text: 'Redis老集群版', value: 1 },\n { text: 'Redis 2.8主从版', value: 2 },\n { text: 'CKV主从版', value: 3 },\n { text: 'CKV集群版', value: 4 },\n { text: 'Redis 2.8单机版', value: 5 },\n { text: 'Redis 4.0主从版', value: 6 },\n { text: 'Redis 4.0集群版', value: 7 },\n { text: 'Redis5.0主从版', value: 8 },\n { text: 'Redis5.0集群版', value: 9 },\n];\n\nconst RedisFields = {\n InstanceId: '',\n OrderBy: '',\n OrderType: null,\n VpcIds: [],\n SubnetIds: [],\n ProjectIds: [],\n SearchKey: '',\n InstanceName: '',\n UniqVpcIds: [],\n UniqSubnetIds: [],\n Status: [],\n TypeVersion: null,\n EngineName: '',\n AutoRenew: null,\n BillingMode: '',\n Type: null,\n};\n\nconst RedisMemFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstancesId',\n cnDescriptor: '实例id',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderType',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderType,\n },\n {\n key: 'VpcIds',\n enDescriptor: 'VpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'SubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '项目ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '查找实例的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'InstanceName',\n enDescriptor: 'InstanceName',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'UniqVpcIds',\n enDescriptor: 'UniqVpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'UniqSubnetIds',\n enDescriptor: 'UniqSubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'TypeVersion',\n enDescriptor: 'TypeVersion',\n cnDescriptor: '类型版本',\n link: '',\n type: 'select',\n list: TypeVersion,\n },\n {\n key: 'EngineName',\n enDescriptor: 'EngineName',\n cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenew',\n enDescriptor: 'AutoRenew',\n cnDescriptor: '续费模式',\n multiple: true,\n type: 'select',\n list: AutoRenew,\n },\n {\n key: 'BillingMode',\n enDescriptor: 'BillingMode',\n cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',\n link: '',\n type: 'select',\n list: BillingMode,\n },\n {\n key: 'Type',\n enDescriptor: 'Type',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: Type,\n },\n];\n\nconst REDISMEM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...RedisFields },\n rnodeid: '',\n pnodeid: '',\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst REDISMEMInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];\n\nconst RedisMemInvalidDemensions = {\n instanceid: 'InstanceId',\n rnodeid: 'rnodeid',\n pnodeid: 'pnodeid',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n rnodeid: 'rnodeid',\n pnodeid: 'pnodeid',\n};\n\nconst NodeType = ['Redis', 'Proxy'];\n\nexport default REDISMEM_STATE;\nexport {\n RedisMemFieldsDescriptor,\n RedisMemInvalidDemensions,\n REDISMEMInstanceAliasList,\n templateQueryIdMap,\n namespace,\n NodeType,\n GetInstanceQueryParams as REDISMEMGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/RABBITMQ';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tdmqQuery';\n\nconst TDMQInvalidDemensions = {\n instanceid: 'InstanceId',\n node: 'NodeName',\n};\n\n// 需和文件名对应\nconst TDMQRABBITMQInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n node: 'NodeName',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n];\n\nconst TDMQ_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n node: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n node: 'NodeName',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NodeName: {\n dim_KeyInStorage: keyInStorage.node,\n dim_KeyInTarget: 'node',\n dim_KeyInMap: templateQueryIdMap.node,\n },\n};\nexport default TDMQ_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQRABBITMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryEditorName,\n queryMonitorExtraConfg,\n keyInStorage,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/ROCKETMQ';\n\nconst TDMQInvalidDemensions = {\n tenant: 'ClusterId',\n namespace: 'NamespaceId',\n group: 'Name',\n};\n\n// 需和文件名对应\nconst TDMQROCKETMQInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nconst templateQueryIdMap = {\n instance: 'ClusterId',\n namespace: 'NamespaceId',\n group: 'Name',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: true,\n ClusterIdList: [''],\n Filters: {\n includeVip: { text: '是', value: 'true' },\n },\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'includeVip',\n enDescriptor: 'includeVip',\n cnDescriptor: '包含专享集群',\n link: '',\n type: 'select',\n list: [\n { text: '是', value: 'true' },\n { text: '否', value: 'false' },\n ],\n },\n];\n\nconst TDMQ_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n namespace: '',\n group: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.ClusterIdList)) {\n const ClusterIdList = _.compact(queries.ClusterIdList);\n if (_.uniq(ClusterIdList).length > 0) {\n params.ClusterIdList = _.uniq(ClusterIdList).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: [_.get(item, 'value', [])].slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n namespace: 'NamespaceId',\n group: 'Name',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NamespaceId: {\n dim_KeyInStorage: keyInStorage.namespace,\n dim_KeyInTarget: 'namespace',\n dim_KeyInMap: templateQueryIdMap.namespace,\n },\n Name: {\n dim_KeyInStorage: keyInStorage.group,\n dim_KeyInTarget: 'group',\n dim_KeyInMap: templateQueryIdMap.group,\n },\n};\nexport default TDMQ_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQROCKETMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryMonitorExtraConfg,\n keyInStorage,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQROCKETMQGetInstanceQueryParams,\n};\n","import { t } from '../../locale';\n// name (产品名称), service(对应的真实service)\ninterface ServiceType {\n service: string;\n label: string;\n namespace: string;\n href: string;\n groupName?: string;\n hideRegion?: boolean;\n}\nconst SERVICES: ServiceType[] = [\n {\n service: 'cvm',\n get label() {\n return t('CVM');\n },\n namespace: 'QCE/CVM',\n href: 'https://cloud.tencent.com/document/api/213/15688',\n },\n {\n service: 'cdb',\n get label() {\n return t('CDB');\n },\n namespace: 'QCE/CDB',\n href: 'https://cloud.tencent.com/document/api/236/15829',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'mongoDB',\n get label() {\n return t('CMONGO');\n },\n namespace: 'QCE/CMONGO',\n href: 'https://cloud.tencent.com/document/api/240/38568',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'postgres',\n get label() {\n return t('POSTGRES');\n },\n namespace: 'QCE/POSTGRES',\n href: 'https://cloud.tencent.com/document/product/248/45105',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'redis',\n get label() {\n return t('REDIS');\n },\n namespace: 'QCE/REDIS',\n href: 'https://cloud.tencent.com/document/product/248/45110',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'redisMem',\n get label() {\n return t('REDIS_MEM');\n },\n namespace: 'QCE/REDIS_MEM',\n href: 'https://cloud.tencent.com/document/product/248/49729',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'sqlserver',\n get label() {\n return t('SQLSERVER');\n },\n namespace: 'QCE/SQLSERVER',\n href: 'https://cloud.tencent.com/document/product/248/45146',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'cynosdbMysql',\n get label() {\n return t('CYNOSDB_MYSQL');\n },\n namespace: 'QCE/CYNOSDB_MYSQL',\n href: 'https://cloud.tencent.com/document/product/248/45106',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'tcaplus',\n get label() {\n return t('TCAPLUS');\n },\n namespace: 'QCE/TCAPLUS',\n href: 'https://cloud.tencent.com/document/product/248/45107',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'dcdb',\n get label() {\n return t('TDMYSQL');\n },\n namespace: 'QCE/TDMYSQL',\n href: 'https://cloud.tencent.com/document/product/248/45108',\n },\n {\n service: 'pcx',\n get label() {\n return t('PCX');\n },\n namespace: 'QCE/PCX',\n href: 'https://cloud.tencent.com/document/product/215/5181',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'bwp',\n get label() {\n return t('BWP');\n },\n namespace: 'QCE/BWP',\n href: 'https://cloud.tencent.com/document/api/215/19209',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'natGateway',\n get label() {\n return t('NAT_GATEWAY');\n },\n namespace: 'QCE/NAT_GATEWAY',\n href: 'https://cloud.tencent.com/document/api/215/36034',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpngw',\n get label() {\n return t('VPNGW');\n },\n namespace: 'QCE/VPNGW',\n href: 'https://cloud.tencent.com/document/product/248/45070',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpnx',\n get label() {\n return t('VPNX');\n },\n namespace: 'QCE/VPNX',\n href: 'https://cloud.tencent.com/document/product/248/45071',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'dcg',\n get label() {\n return t('DCG');\n },\n namespace: 'QCE/DCG',\n href: 'https://cloud.tencent.com/document/product/248/45072',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'ceipSummary',\n get label() {\n return t('CEIP_SUMMARY');\n },\n namespace: 'QCE/CEIP_SUMMARY',\n href: 'https://cloud.tencent.com/document/product/248/50381',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpcNetDetect',\n get label() {\n return t('VPC_NET_DETECT');\n },\n namespace: 'QCE/VPC_NET_DETECT',\n href: 'https://cloud.tencent.com/document/product/248/50384',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vbc',\n get label() {\n return t('VBC');\n },\n namespace: 'QCE/VBC',\n href: 'https://cloud.tencent.com/document/product/248/45073',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'lb',\n get label() {\n return t('LB');\n },\n namespace: 'QCE/LB',\n href: 'https://cloud.tencent.com/document/product/248/45099',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'lbPublic',\n get label() {\n return t('LB_PUBLIC');\n },\n namespace: 'QCE/LB_PUBLIC',\n href: 'https://cloud.tencent.com/document/product/248/51898',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'lbPrivate',\n get label() {\n return t('LB_PRIVATE');\n },\n namespace: 'QCE/LB_PRIVATE',\n href: 'https://cloud.tencent.com/document/product/248/51899',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'loadBalance',\n get label() {\n return t('LOADBALANCE');\n },\n namespace: 'QCE/LOADBALANCE',\n href: 'https://cloud.tencent.com/document/product/248/51901',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'vClb',\n get label() {\n return `${t('cloud_load_balancer')}(${t('lite')})`;\n },\n namespace: 'QCE/V_CLB',\n href: 'https://cloud.tencent.com/document/product/248/51901',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('lite')})`;\n },\n },\n {\n service: 'cdn',\n get label() {\n return t('CDN');\n },\n namespace: 'QCE/CDN',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50386',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'cdnProvince',\n get label() {\n return t('CDN_LOG_DATA');\n },\n namespace: 'QCE/CDN_LOG_DATA',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50388',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'ovCdn',\n get label() {\n return t('OV_CDN');\n },\n namespace: 'QCE/OV_CDN',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50387',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'scf',\n get label() {\n return t('SCF_V2');\n },\n namespace: 'QCE/SCF_V2',\n href: 'https://cloud.tencent.com/document/product/248/45130',\n },\n {\n service: 'cfs',\n get label() {\n return t('CFS');\n },\n namespace: 'QCE/CFS',\n href: 'https://cloud.tencent.com/document/product/248/45143',\n },\n {\n service: 'cos',\n get label() {\n return t('COS');\n },\n namespace: 'QCE/COS',\n href: 'https://cloud.tencent.com/document/product/248/45140',\n },\n {\n service: 'ckafka',\n get label() {\n return t('CKAFKA');\n },\n namespace: 'QCE/CKAFKA',\n href: 'https://cloud.tencent.com/document/product/248/45121',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'cmq',\n get label() {\n return t('CMQ');\n },\n namespace: 'QCE/CMQ',\n href: 'https://cloud.tencent.com/document/product/248/45114',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'cmqTopic',\n get label() {\n return t('CMQTOPIC');\n },\n namespace: 'QCE/CMQTOPIC',\n href: 'https://cloud.tencent.com/document/product/248/45113',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmq',\n get label() {\n return t('TDMQ');\n },\n namespace: 'QCE/TDMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmqRocketmq',\n get label() {\n return t('TDMQ_ROCKETMQ');\n },\n namespace: 'QCE/ROCKETMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmqRabbitmq',\n get label() {\n return t('TDMQ_RABBITMQ');\n },\n namespace: 'QCE/RABBITMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'dcx',\n get label() {\n return t('DCX');\n },\n namespace: 'QCE/DCX',\n href: 'https://cloud.tencent.com/document/product/248/45101',\n get groupName() {\n return t('direct_connect');\n },\n },\n {\n service: 'dc',\n get label() {\n return t('DC');\n },\n namespace: 'QCE/DC',\n href: 'https://cloud.tencent.com/document/product/248/45102',\n get groupName() {\n return t('direct_connect');\n },\n },\n {\n service: 'cpm',\n get label() {\n return t('CPM');\n },\n namespace: 'QCE/CPM',\n href: 'https://cloud.tencent.com/document/product/248/45881',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmPcx',\n get label() {\n return t('BM_PCX');\n },\n namespace: 'QCE/BM_PCX',\n href: 'https://cloud.tencent.com/document/product/248/45884',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmLb',\n get label() {\n return t('BM_LB');\n },\n namespace: 'QCE/BM_LB',\n href: 'https://cloud.tencent.com/document/product/248/45886',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmIntraLb',\n get label() {\n return t('BM_INTRA_LB');\n },\n namespace: 'QCE/BM_INTRA_LB',\n href: 'https://cloud.tencent.com/document/product/248/45885',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'ces',\n get label() {\n return t('CES');\n },\n namespace: 'QCE/CES',\n href: 'https://cloud.tencent.com/document/product/248/45129',\n },\n {\n service: 'mrHDFS',\n get label() {\n return `${t('elastic_mapReduce')}(HDFS)`;\n },\n namespace: 'QCE/TXMR_HDFS',\n href: 'https://cloud.tencent.com/document/product/248/44797',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrHBASE',\n get label() {\n return `${t('elastic_mapReduce')}(HBASE)`;\n },\n namespace: 'QCE/TXMR_HBASE',\n href: 'https://cloud.tencent.com/document/product/248/45567',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrHIVE',\n get label() {\n return `${t('elastic_mapReduce')}(HIVE)`;\n },\n namespace: 'QCE/TXMR_HIVE',\n href: 'https://cloud.tencent.com/document/product/248/45569',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrNODE',\n get label() {\n return `${t('elastic_mapReduce')}(NODE)`;\n },\n namespace: 'QCE/TXMR_NODE',\n href: 'https://cloud.tencent.com/document/product/248/45570',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrPRESTO',\n get label() {\n return `${t('elastic_mapReduce')}(PRESTO)`;\n },\n namespace: 'QCE/TXMR_PRESTO',\n href: 'https://cloud.tencent.com/document/product/248/45571',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrSPARK',\n get label() {\n return `${t('elastic_mapReduce')}(SPARK)`;\n },\n namespace: 'QCE/TXMR_SPARK',\n href: 'https://cloud.tencent.com/document/product/248/45572',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrYARN',\n get label() {\n return `${t('elastic_mapReduce')}(YARN)`;\n },\n namespace: 'QCE/TXMR_YARN',\n href: 'https://cloud.tencent.com/document/product/248/45573',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrZOOKEEPER',\n get label() {\n return `${t('elastic_mapReduce')}(ZOOKEEPER)`;\n },\n namespace: 'QCE/TXMR_ZOOKEEPER',\n href: 'https://cloud.tencent.com/document/product/248/45574',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'cbs',\n get label() {\n return t('BLOCK_STORAGE');\n },\n namespace: 'QCE/BLOCK_STORAGE',\n href: 'https://cloud.tencent.com/document/product/362/2345',\n },\n {\n service: 'apigateway',\n get label() {\n return t('APIGATEWAY');\n },\n namespace: 'QCE/APIGATEWAY',\n href: 'https://cloud.tencent.com/document/product/248/45127',\n },\n {\n service: 'qaap',\n get label() {\n return t('QAAP');\n },\n namespace: 'QCE/QAAP',\n href: 'https://cloud.tencent.com/document/product/608',\n },\n {\n service: 'ecm',\n get label() {\n return t('ECM');\n },\n hideRegion: true,\n namespace: 'QCE/ECM',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'ecmBlockStorage',\n get label() {\n return t('ECM_BLOCK_STORAGE');\n },\n hideRegion: true,\n namespace: 'QCE/ECM_BLOCK_STORAGE',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'ecmLb',\n get label() {\n return t('ECM_LB');\n },\n hideRegion: true,\n namespace: 'QCE/ECM_LB',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'gse',\n get label() {\n return t('GSE');\n },\n namespace: 'QCE/GSE',\n href: 'https://cloud.tencent.com/document/product/1165',\n },\n {\n service: 'cls',\n get label() {\n return t('CLS');\n },\n namespace: 'QCE/CLS',\n href: 'https://cloud.tencent.com/document/product/614',\n },\n {\n service: 'tke',\n get label() {\n return t('TKE');\n },\n namespace: 'QCE/TKE2',\n href: 'https://cloud.tencent.com/document/product/457',\n },\n {\n service: 'ecdn',\n get label() {\n return t('ECDN');\n },\n namespace: 'QCE/DSA',\n href: 'https://cloud.tencent.com/document/product/570',\n },\n // {\n // service: 'lighthouse',\n // label: '轻量应用服务器(LIGHTHOUSE)',\n // namespace: 'QCE/LIGHTHOUSE',\n // href: 'https://cloud.tencent.com/document/product/1207',\n // },\n // {\n // service: 'tsf',\n // label: ' 微服务平台(TSF)',\n // namespace: 'QCE/TSF',\n // href: 'https://cloud.tencent.com/document/product/649',\n // },\n {\n service: 'waf',\n get label() {\n return t('WAF');\n },\n // hideRegion: true,\n namespace: 'QCE/WAF',\n href: 'https://cloud.tencent.com/document/product/627',\n },\n];\nconst Datasources = {};\nconst InitStates = {};\nconst InstanceAliasList = {};\nconst GetInstanceQueryParams = {};\n\n/**\n * 由于目录命名不规范,导致需要使用额外逻辑保证正确性。从目录到具体service的映射\n */\nconst hackModuleName = {\n // lb_loadBalance: 'loadBalance',\n postgresql: 'postgres',\n mongodb: 'mongoDB',\n clb: ['lbPrivate', 'lbPublic', 'loadBalance'],\n mr: ['mrHDFS', 'mrHBASE', 'mrHIVE', 'mrNODE', 'mrPRESTO', 'mrSPARK', 'mrYARN', 'mrZOOKEEPER'],\n};\n\nconst requireModule = (require as any).context('./', true, /^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$/);\n\nrequireModule.keys().forEach((filePath) => {\n let [, moduleName, fileName] = filePath.split('/');\n\n // hack: 这里是由于产品目录命名不规范,所以才会多这么一段代码\n moduleName = hackModuleName[moduleName] ?? moduleName;\n\n // 目录与模块的映射关系,不管是一对一还是一对多,均按数组进行统一处理\n [].concat(moduleName).forEach((module: string) => {\n // 这个service就是产品配置中的service,需要注意这里的service是根据目录名称算出来的,因此目录名称一定要和service对应\n const service = module.replace(/_([a-zA-Z])/g, (_, b) => b.toUpperCase());\n const prefix = service.toUpperCase(); // 命名规则\n\n // datasource\n if (fileName === 'datasource.ts') {\n const Cls = require(`${filePath}`).default;\n\n // 想办法为实例注入service,不能为prototype或则类本身注入,因为会造成互相污染,详尽mrDatasource\n Datasources[`${prefix}Datasource`] = class {\n constructor(...params) {\n const target = new Cls(...params, service);\n target.service = service;\n // eslint-disable-next-line no-constructor-return\n return target;\n }\n };\n }\n // query\n if (fileName === 'query.ts') {\n require(`${filePath}`);\n }\n // query_def\n if (fileName === 'query_def.ts') {\n const alias = `${prefix}InstanceAliasList`;\n const getParams = `${prefix}GetInstanceQueryParams`;\n\n const target = require(`${filePath}`);\n\n InitStates[service] = target.default; // FIXME: 这里需不需要深拷贝?\n InstanceAliasList[alias] = target[alias] ?? target['InstanceAliasList'];\n GetInstanceQueryParams[getParams] = target[getParams] ?? target['GetInstanceQueryParams'];\n }\n });\n});\n\nexport {\n InitStates as InitServiceState,\n SERVICES,\n Datasources,\n InstanceAliasList,\n GetInstanceQueryParams,\n // DefaultDimensions\n};\n\n// console.log(Datasources, InitStates, InstanceAliasList, GetInstanceQueryParams);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM_BLOCK_STORAGE';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'ecmBlockStorageQuery';\n\nconst ECMBLOCKSTORAGEInvalidDemensions = {\n uuid: 'UUID',\n diskId: 'DiskId',\n};\n\n// 需和文件名对应\nconst ECMBLOCKSTORAGEInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n diskId: 'DiskId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst ECMBLOCKSTORAGEFilterFields = {\n Limit: 20,\n Offset: 0,\n 'zone-name': [],\n 'module-id': [],\n 'module-name': [],\n 'instance-id': [],\n 'instance-name': [],\n 'ip-address': [],\n 'instance-uuid': [],\n 'instance-state': {},\n 'internet-service-provider': [],\n 'instance-family': [],\n 'image-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n};\n\nconst ECMBLOCKSTORAGEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'zone-name',\n enDescriptor: 'zone-name',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-id',\n enDescriptor: 'module-id',\n cnDescriptor: '模块ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-name',\n enDescriptor: 'module-name',\n cnDescriptor: '模块名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'instance-name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ip-address',\n enDescriptor: 'ip-address',\n cnDescriptor: '内网/公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-uuid',\n enDescriptor: 'instance-uuid',\n cnDescriptor: '实例uuid',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'instance-state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n ],\n },\n {\n key: 'internet-service-provider',\n enDescriptor: 'internet-service-provider',\n cnDescriptor: '公网IP所属的运营商',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-family',\n enDescriptor: 'instance-family',\n cnDescriptor: '机型family',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'image-id',\n enDescriptor: 'image-id',\n cnDescriptor: '镜像ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '实例的vpc id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '实例的subnet id',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',\n namespace,\n fieldDescriptor: ECMBLOCKSTORAGEFilterFieldsDescriptor,\n};\n\nconst ECMBLOCKSTORAGE_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n diskId: '',\n queries: ECMBLOCKSTORAGEFilterFields,\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n diskId: 'diskId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n DiskId: {\n dim_KeyInStorage: keyInStorage.diskId,\n dim_KeyInTarget: 'diskId',\n dim_KeyInMap: templateQueryIdMap.diskId,\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default ECMBLOCKSTORAGE_STATE;\nexport {\n ECMBLOCKSTORAGEFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMBLOCKSTORAGEInstanceAliasList,\n ECMBLOCKSTORAGEInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n keyInStorage,\n queryMonitorExtraConfg,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as ECMBLOCKSTORAGEGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/APIGATEWAY';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'apigatewayQuery';\n\nconst APIGATEWAYInvalidDemensions = {\n serviceId: 'ServiceId',\n environmentName: 'EnvironmentName',\n apiid: 'Apiid',\n apiId: 'Apiid',\n};\n\n// 需和文件名对应\nconst APIGATEWAYInstanceAliasList = ['ServiceId', 'ServiceName'];\n\nconst templateQueryIdMap = {\n instance: 'ServiceId',\n environmentName: 'EnvironmentName',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n environmentList: 'EnvironmentList',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n EnvironmentName: {\n dim_KeyInStorage: keyInStorage.environmentList,\n dim_KeyInTarget: 'EnvironmentName',\n dim_KeyInMap: templateQueryIdMap.environmentName,\n },\n};\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst APIGATEWAYFilterFields = {\n Limit: 20,\n Offset: 0,\n ServiceId: [],\n ServiceName: [],\n NotUsagePlanId: [],\n Environment: [],\n IpVersion: [],\n};\n\nconst APIGATEWAYFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ServiceId',\n enDescriptor: 'ServiceId',\n cnDescriptor: '服务id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ServiceName',\n enDescriptor: 'ServiceName',\n cnDescriptor: '服务名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'NotUsagePlanId',\n enDescriptor: 'NotUsagePlanId',\n cnDescriptor: 'NotUsagePlanId',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Environment',\n enDescriptor: 'Environment',\n cnDescriptor: '环境名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'IpVersion',\n enDescriptor: 'IpVersion',\n cnDescriptor: 'IP版本',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/628/45198',\n namespace,\n fieldDescriptor: APIGATEWAYFilterFieldsDescriptor,\n};\n\nconst APIGATEWAY_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ServiceId',\n EnvironmentName: '',\n queries: APIGATEWAYFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nexport default APIGATEWAY_STATE;\nexport {\n APIGATEWAYFilterFieldsDescriptor,\n templateQueryIdMap,\n APIGATEWAYInstanceAliasList,\n APIGATEWAYInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as APIGATEWAYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nexport const InstanceQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '按照一个或者多个实例ID查询。实例ID形如: emr-xxxxxxxx ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'OrderField',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '实例ID', value: 'clusterId' },\n { text: '创建时间', value: 'addTime' },\n { text: '状态', value: 'status' },\n ],\n },\n {\n key: 'Asc',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: '降序', value: 0 },\n { text: '升序', value: 1 },\n ],\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '实例所属项目ID',\n link: '',\n type: 'inputnumber',\n },\n {\n key: 'DisplayStrategy',\n enDescriptor: 'DisplayStrategy',\n cnDescriptor: '集群筛选策略',\n link: '',\n type: 'select',\n list: [\n { text: '未销毁的实例', value: 'clusterList' },\n { text: '正常运行的实例', value: 'monitorManage' },\n ],\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = new Proxy(\n {},\n {\n get(target, k, receiver) {\n if (typeof k === 'string') {\n if (k.startsWith('id4')) return 'ClusterId'; // id4****\n if (k.startsWith('host4')) return 'Ip'; // host4***\n }\n return Reflect.get(target, k, receiver);\n },\n has(target, propKey) {\n return true;\n },\n }\n);\n\nexport const templateQueryIdMap = {\n instance: 'ClusterId',\n node: 'Ip',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n node: 'nodeIP',\n};\n\n/**\n * 如果有InstanceId额外的维度,原则上都需要传入此map结构配置\n *\n * `key` 的含义:\n * 经过InvalidDemensions处理后的string。topicId => TopicId。\n * 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\n *\n * `value` 的含义:\n * @param {1} dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n * @param {2} dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n * 默认取通过InvalidDemsion处理后的key\n * @param {3} dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n * 即:templateQueryIdMap中内容。\n * 联合上面 2 的内容筛选出原始sourceMap\n */\nconst queryMonitorExtraConfg = {\n Ip: {\n dim_KeyInStorage: keyInStorage.node,\n dim_KeyInTarget: 'nodeIP',\n dim_KeyInMap: templateQueryIdMap.node,\n },\n};\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['ClusterId', 'ClusterName'];\nexport { InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n nodeIP: '',\n queries: {\n Offset: 0,\n Limit: 10,\n DisplayStrategy: '',\n OrderBy: {},\n Order: {},\n InstanceIds: [],\n ProjectId: -1,\n OrderField: '',\n Asc: '',\n },\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/V_CLB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vClbQuery';\n\nconst VCLBInvalidDemensions = {\n InstanceId: 'LoadBalancerId',\n // vip: 'LoadBalancerVips',\n // loadBalancerPort: 'Port',\n // protocol: 'Protocol',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst VCLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\nconst ForwardTypes = [\n { text: '通用的负载均衡', value: 1 },\n { text: '传统的负载均衡', value: 0 },\n];\n\nconst OrderBy = [\n { text: 'LoadBalancerName', value: 'LoadBalancerName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'Domain', value: 'Domain' },\n { text: 'LoadBalancerType', value: 'LoadBalancerType' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\n\nconst WithRs = [\n { text: '没有绑定后端服务', value: 0 },\n { text: '绑定后端服务', value: 1 },\n { text: '查询全部', value: -1 },\n];\nconst VCLBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',\n link: '',\n type: 'inputNumber',\n min: 1,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancer ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancer Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'Forward',\n enDescriptor: 'Forward',\n cnDescriptor: '负载均衡实例类型',\n link: '',\n type: 'select',\n list: ForwardTypes,\n },\n {\n key: 'Domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',\n link: '',\n type: 'input',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancer Vips',\n cnDescriptor: '负载均衡实例的 VIP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivate Ips',\n cnDescriptor: '负载均衡绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPublicIps',\n enDescriptor: 'BackendPublic Ips',\n cnDescriptor: '负载均衡绑定的后端服务的外网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '负载均衡实例所属的项目 ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'VpcId',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '负载均衡实例所属私有网络',\n link: '',\n type: 'input',\n },\n {\n key: 'SecurityGroup',\n enDescriptor: 'Security Group',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'input',\n },\n {\n key: 'MasterZone',\n enDescriptor: 'Master Zone',\n cnDescriptor: '主可用区ID',\n link: '',\n type: 'input',\n },\n {\n key: 'WithRs',\n enDescriptor: 'WithRs',\n cnDescriptor: '负载均衡是否绑定后端服务',\n link: '',\n type: 'select',\n list: WithRs,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderType,\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',\n namespace,\n fieldDescriptor: VCLBFilterFieldsDescriptor,\n};\nconst LBFields = {\n LoadBalancerIds: [],\n Forward: undefined,\n LoadBalancerName: '',\n Domain: '',\n LoadBalancerVips: [],\n BackendPublicIps: [],\n BackendPrivateIps: [],\n Limit: 20,\n Offset: 0,\n ProjectId: undefined,\n WithRs: {},\n VpcId: '',\n SecurityGroup: '',\n MasterZone: '',\n OrderBy: {},\n OrderType: {},\n};\n\nconst VCLB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n Port: '',\n Protocol: '',\n listener: '',\n // listenerAlias: 'ListenerId',\n queries: LBFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nconst clbNamespaceMap = {\n public: 'QCE/LB_PUBLIC',\n private: 'QCE/LB_PRIVATE',\n};\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\nexport default VCLB_STATE;\nexport {\n VCLBFilterFieldsDescriptor,\n templateQueryIdMap,\n VCLBInstanceAliasList,\n VCLBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n clbNamespaceMap,\n modifyDimensons,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMLBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CYNOSDB_MYSQL';\n\n// 按照驼峰方式命名,和SERVICES保持一致,abcDeF会成为angular组件名字\nconst queryEditorName = 'cynosdbMysqlQuery';\n\nconst cynosdbMysqlFilterFields = {\n Limit: 20,\n Offset: 0,\n OrderBy: {},\n OrderByType: {},\n InstanceIds: [],\n DbType: {},\n // Status: '',\n};\n\nconst cynosdbMysqlFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 1000,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '实例id列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '创建时间', value: 'CREATETIME' },\n { text: '过期时间', value: 'PERIODENDTIME' },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序类型',\n link: '',\n type: 'select',\n list: [\n { text: '升序', value: 'ASC' },\n { text: '降序', value: 'DESC' },\n ],\n },\n {\n key: 'DbType',\n enDescriptor: 'DbType',\n cnDescriptor: '引擎类型',\n link: '',\n type: 'select',\n list: [\n { text: 'MYSQL', value: 'MYSQL' },\n { text: 'POSTGRESQL', value: 'POSTGRESQL' },\n ],\n },\n // {\n // key: 'Status',\n // enDescriptor: 'Status',\n // cnDescriptor: '实例状态',\n // link: '',\n // type: 'input',\n // },\n];\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n];\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1003/48334',\n namespace,\n fieldDescriptor: cynosdbMysqlFilterFieldsDescriptor,\n};\n\nconst CYNOSDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: cynosdbMysqlFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// 和文件名字一样CYNOSDBMYSQL\nconst CYNOSDBMYSQLInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\nconst CYNOSDBInvalidDemensions = {\n instanceid: 'InstanceId',\n instanceId: 'InstanceId',\n};\nconst checkKeys = ['instanceId'];\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\n\nexport default CYNOSDB_STATE;\nexport {\n cynosdbMysqlFilterFieldsDescriptor,\n templateQueryIdMap,\n CYNOSDBMYSQLInstanceAliasList,\n CYNOSDBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n checkKeys,\n // params前缀为service的全大写\n GetInstanceQueryParams as CYNOSDBMYSQLGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nexport const SCFQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '支持FunctionName模糊匹配',\n link: '',\n type: 'input',\n },\n {\n key: 'Namespace',\n enDescriptor: 'Namespace',\n cnDescriptor: '云函数命名空间',\n link: '',\n type: 'input',\n },\n {\n key: 'Description',\n enDescriptor: 'Description',\n cnDescriptor: '函数描述,支持模糊搜索',\n link: '',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: 'AddTime', value: 'AddTime' },\n { text: 'ModTime', value: 'ModTime' },\n { text: 'FunctionName', value: 'FunctionName' },\n ],\n },\n {\n key: 'Order',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: 'ASC', value: 'ASC' },\n { text: 'DESC', value: 'DESC' },\n ],\n },\n // {\n // key: 'Filters',\n // enDescriptor: 'Filters',\n // cnDescriptor: '按照标签键值对进行过滤',\n // link: '',\n // type: 'dropdownmulti',\n // },\n];\n\nconst SCF_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'FunctionName',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n OrderBy: {},\n Order: {},\n SearchKey: '',\n Namespace: '',\n Description: '',\n // Filters: {},\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst SCFInstanceAliasList = ['FunctionId', 'FunctionName'];\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst SCFInvalidDemensions = {\n functionName: 'FunctionName',\n namespace: 'Namespace',\n version: 'Version',\n};\n\nconst templateQueryIdMap = {\n instance: 'FunctionName',\n version: 'Version',\n};\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n version: 'version',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n Version: {\n dim_KeyInStorage: keyInStorage.version,\n dim_KeyInTarget: 'version',\n dim_KeyInMap: templateQueryIdMap.version,\n },\n};\nexport default SCF_STATE;\nexport {\n SCFInstanceAliasList,\n SCFInvalidDemensions,\n queryMonitorExtraConfg,\n regionSupported,\n templateQueryIdMap,\n keyInStorage,\n GetInstanceQueryParams as SCFGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\nexport const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","module.exports = __WEBPACK_EXTERNAL_MODULE__26__;","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/CLS';\nconst queryEditorName = 'clsQuery';\n\nconst CLSInvalidDemensions = {\n // instanceid: 'TopicId',\n};\n\n// 需和文件名对应\nconst CLSInstanceAliasList = ['TopicId', 'TopicName'];\n\nconst templateQueryIdMap = {\n instance: 'TopicId',\n};\n\n// 需要缓存到storage的内容的key列表\n// const keyInStorage = {\n// fleet: 'fleet', // 实例队列\n// queue: 'queueName', // 会话队列\n// };\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\n// const queryMonitorExtraConfg = {\n// FleetId: {\n// dim_KeyInStorage: keyInStorage.fleet,\n// dim_KeyInTarget: 'FleetId',\n// dim_KeyInMap: templateQueryIdMap.FleetId,\n// },\n// Name: {\n// dim_KeyInStorage: keyInStorage.queue,\n// dim_KeyInTarget: 'Name',\n// dim_KeyInMap: templateQueryIdMap.Name,\n// },\n// };\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CLSFilterFields = {\n Limit: 20,\n Offset: 0,\n topicName: [],\n topicId: [],\n logsetName: [],\n logsetId: [],\n tagKey: [],\n 'tag:tagKey': [],\n storageType: {},\n};\n\nconst CLSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'topicName',\n enDescriptor: 'topicName',\n cnDescriptor: '日志主题名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'topicId',\n enDescriptor: 'topicId',\n cnDescriptor: '日志主题ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'logsetName',\n enDescriptor: 'logsetName',\n cnDescriptor: '日志集名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'logsetId',\n enDescriptor: 'logsetId',\n cnDescriptor: '日志集ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'tag:tagKey',\n enDescriptor: 'tag - tagKey',\n cnDescriptor: '标签键值对',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'storageType',\n enDescriptor: 'storageType',\n cnDescriptor: '日志主题的存储类型',\n link: '',\n type: 'select',\n list: [\n { text: '实时存储', value: 'hot' },\n { text: '离线存储', value: 'cold' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/614/56454',\n namespace,\n fieldDescriptor: CLSFilterFieldsDescriptor,\n};\n\nconst CLS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TopicId',\n uin: '',\n queries: CLSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = item.Dimensions.map((v) => CLSInvalidDemensions[v] || v);\n item.Dimensions = ['uin', 'TopicId'];\n });\n return metricTmp;\n}\nexport default CLS_STATE;\nexport {\n CLSFilterFieldsDescriptor,\n templateQueryIdMap,\n CLSInstanceAliasList,\n CLSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n // queryMonitorExtraConfg,\n // fleetId,\n // keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CLSGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/SQLSERVER';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'sqlserverQuery';\n\nconst SQLSERVERInvalidDemensions = {\n resourceId: 'InstanceId',\n};\n\nconst SQLSERVERInstanceAliasList = ['InstanceId', 'Name'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst SQLSERVERNETFilterFields = {\n Limit: 20,\n Offset: 0,\n ProjectId: null,\n Status: {},\n InstanceIdSet: [],\n PayMode: {},\n VpcId: '',\n SubnetId: '',\n VipSet: [],\n InstanceNameSet: [],\n VersionSet: [],\n Zone: '',\n};\n\nconst SQLSERVERNETFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n list: [\n { text: '申请中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '受限运行中 (主备切换中)', value: 3 },\n { text: '已隔离', value: 4 },\n { text: '回收中', value: 5 },\n { text: '已回收', value: 6 },\n { text: '任务执行中', value: 7 },\n { text: '已下线', value: 8 },\n { text: '实例扩容中', value: 9 },\n { text: '实例迁移中', value: 10 },\n { text: '只读', value: 11 },\n { text: '重启中', value: 12 },\n ],\n },\n {\n key: 'InstanceIdSet',\n enDescriptor: 'InstanceIdSet',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'PayMode',\n enDescriptor: 'PayMode',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'select',\n list: [\n { text: '包年包月', value: 1 },\n { text: '按量计费', value: 0 },\n ],\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '实例所属VPC的唯一字符串ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '实例所属子网的唯一字符串ID',\n link: '',\n type: 'input',\n },\n {\n key: 'VipSet',\n enDescriptor: 'VipSet',\n cnDescriptor: '实例内网地址列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'InstanceNameSet',\n enDescriptor: 'InstanceNameSet',\n cnDescriptor: '实例名称列表, 模糊查询',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'VersionSet',\n enDescriptor: 'VersionSet',\n cnDescriptor: '实例版本代号列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Zone',\n enDescriptor: 'Zone',\n cnDescriptor: '实例可用区',\n link: '',\n type: 'dropdown',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/238/19969',\n namespace,\n fieldDescriptor: SQLSERVERNETFilterFieldsDescriptor,\n};\n\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-nanjing' },\n { value: 'ap-seoul' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-moscow' },\n { value: 'na-siliconvalley' },\n];\nconst SQLSERVER_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: SQLSERVERNETFilterFields,\n};\n\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['resourceId'];\n });\n return metricTmp;\n}\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default SQLSERVER_STATE;\nexport {\n SQLSERVERNETFilterFieldsDescriptor,\n templateQueryIdMap,\n SQLSERVERInstanceAliasList,\n SQLSERVERInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n // 对应产品的service的全大写拼接InstanceQueryParams\n GetInstanceQueryParams as SQLSERVERGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_INTRA_LB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmIntraLbQuery';\n\nconst BMINTRALBInvalidDemensions = {\n vip: 'LoadBalancerVips',\n vpcId: 'VpcId',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMINTRALBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst BMINTRALBFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n};\n\nconst BMINTRALBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',\n namespace,\n fieldDescriptor: BMINTRALBFilterFieldsDescriptor,\n};\n\nconst BMINTRALB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: BMINTRALBFilterFields,\n};\nconst BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];\nfunction isValidMetric(metric) {\n const validMetrics = _.map(BMLBValidMetricsT, _.toUpper);\n return _.indexOf(validMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default BMINTRALB_STATE;\nexport {\n BMINTRALBFilterFieldsDescriptor,\n templateQueryIdMap,\n BMINTRALBInstanceAliasList,\n BMINTRALBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMINTRALBGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_LB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmLbQuery';\n\nconst CPMInvalidDemensions = {\n vip: 'LoadBalancerVips',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst CPMFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n};\n\nconst CPMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',\n namespace,\n fieldDescriptor: CPMFilterFieldsDescriptor,\n};\n\nconst CPM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: CPMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nconst BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];\nfunction isValidMetric(metric) {\n const validMetrics = _.map(BMLBValidMetricsT, _.toUpper);\n return _.indexOf(validMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nexport default CPM_STATE;\nexport {\n CPMFilterFieldsDescriptor,\n templateQueryIdMap,\n BMLBInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMLBGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_PCX';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmPcxQuery';\n\nconst BMPCXInvalidDemensions = {\n peeringConnectionId: 'VpcPeerConnectionId',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMPCXInstanceAliasList = ['VpcPeerConnectionId', 'VpcPeerConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'VpcPeerConnectionId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst BMPCXFilterFields = {\n Limit: 20,\n Offset: 0,\n VpcPeerConnectionIds: [],\n};\n\nconst BMPCXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'VpcPeerConnectionIds',\n enDescriptor: 'VpcPeerConnectionIds',\n cnDescriptor: '对等连接实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/product/1024/36903',\n namespace,\n fieldDescriptor: BMPCXFilterFieldsDescriptor,\n};\n\nconst BMPCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpcPeerConnectionId',\n queries: BMPCXFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['peeringConnectionId'];\n });\n return metricTmp;\n}\nexport default BMPCX_STATE;\nexport {\n BMPCXFilterFieldsDescriptor,\n templateQueryIdMap,\n BMPCXInstanceAliasList,\n BMPCXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMPCXGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/BLOCK_STORAGE';\nconst queryEditorName = 'cbsQuery';\n\nconst CBSInvalidDemensions = {\n diskId: 'DiskId',\n InstanceId: 'InstanceId',\n diskname: 'DiskName',\n unInstanceId: 'InstanceId',\n};\n\nconst CBSInstanceAliasList = ['DiskId', 'DiskName'];\n\nconst templateQueryIdMap = {\n instance: 'DiskId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst CBSFilterFields = {\n Limit: 20,\n Offset: 0,\n DiskIds: [],\n OrderField: [],\n Order: [],\n ReturnBindAutoSnapshotPolicy: false,\n};\n\nconst CBSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DiskIds',\n enDescriptor: 'DiskIds',\n cnDescriptor: '云硬盘ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Order',\n enDescriptor: 'Order',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'select',\n list: [\n { text: '升序排列', value: 'ASC' },\n { text: '降序排列', value: 'DESC' },\n ],\n },\n {\n key: 'OrderField',\n enDescriptor: 'OrderField',\n cnDescriptor: '排序的依据字段',\n link: '',\n type: 'select',\n list: [\n { text: '云盘的创建时间排序', value: 'CREATE_TIME' },\n { text: '云盘的到期时间排序', value: 'DEADLINE' },\n ],\n },\n {\n key: 'ReturnBindAutoSnapshotPolicy',\n enDescriptor: 'ReturnBindAutoSnapshotPolicy',\n cnDescriptor: '否需要返回云盘绑定的定期快照策略ID',\n link: '',\n type: 'switch',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/362/16315',\n namespace,\n fieldDescriptor: CBSFilterFieldsDescriptor,\n};\n\nconst CBS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DiskId',\n queries: CBSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n return dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1;\n}\nexport default CBS_STATE;\nexport {\n CBSFilterFieldsDescriptor,\n templateQueryIdMap,\n CBSInstanceAliasList,\n CBSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n GetInstanceQueryParams as CBSGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CDN_LOG_DATA';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cdnProvinceQuery';\n\nconst CDNPROVINCEInvalidDemensions = {\n domain: 'Domain',\n // isp: 'Isp',\n projectid: 'ProjectId',\n province: 'district',\n appid: 'AppId',\n};\n\n// 需和文件名对应\nconst CDNPROVINCEInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CDNPROVINCEFilterFields = {\n Limit: 20,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst CDNPROVINCEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst CDNPROVINCE_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n // Isp Province分别在两个接口,单独保存在state\n isp: '',\n district: '',\n queries: CDNPROVINCEFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// const regionSupported = [\n// { text: '华北地区(北京)', value: 'ap-beijing' },\n// { text: '西南地区(成都)', value: 'ap-chengdu' },\n// { text: '西南地区(重庆)', value: 'ap-chongqing' },\n// { text: '华南地区(广州)', value: 'ap-guangzhou' },\n// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n// { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n// { text: '华东地区(南京)', value: 'ap-nanjing' },\n// { text: '华东地区(上海)', value: 'ap-shanghai' },\n// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n// { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n// { text: '亚太东北(东京)', value: 'ap-tokyo' },\n// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n// { text: '北美地区(多伦多)', value: 'na-toronto' },\n// ];\nexport default CDNPROVINCE_STATE;\nexport {\n CDNPROVINCEFilterFieldsDescriptor,\n templateQueryIdMap,\n CDNPROVINCEInstanceAliasList,\n CDNPROVINCEInvalidDemensions,\n namespace,\n queryEditorName,\n // regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CDNPROVINCEGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CEIP_SUMMARY';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'ceipSummaryQuery';\n\nconst CEIPInvalidDemensions = {\n vip: 'AddressIp',\n eip: 'AddressIp',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst CEIPSUMMARYInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];\n\nconst templateQueryIdMap = {\n instance: 'AddressId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst CEIPFilterFields = {\n Limit: 20,\n Offset: 0,\n 'address-id': [],\n 'address-name': [],\n 'address-ip': [],\n 'address-status': {},\n 'is-arrears': {},\n 'address-isp': {},\n 'instance-id': [],\n 'private-ip-address': [],\n 'network-interface-id': [],\n};\n\nconst CEIPFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'address-id',\n enDescriptor: 'address-id',\n cnDescriptor: ' EIP 的唯一 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-name',\n enDescriptor: 'address-name',\n cnDescriptor: 'EIP 名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-ip',\n enDescriptor: 'address-ip',\n cnDescriptor: 'EIP 的 IP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-status',\n enDescriptor: 'address-status',\n cnDescriptor: 'EIP 的状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'CREATING', value: 'CREATING' },\n { text: 'BINDING', value: 'BINDING' },\n { text: 'BIND', value: 'BIND' },\n { text: 'UNBINDING', value: 'UNBINDING' },\n { text: 'UNBIND', value: 'UNBIND' },\n { text: 'OFFLINING', value: 'OFFLINING' },\n { text: 'BIND_ENI', value: 'BIND_ENI' },\n ],\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: 'EIP 绑定的实例 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'private-ip-address',\n cnDescriptor: 'EIP 绑定的内网 IP ',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'network-interface-id',\n enDescriptor: 'network-interface-id',\n cnDescriptor: ' EIP 绑定的弹性网卡 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'is-arrears',\n enDescriptor: 'is-arrears',\n cnDescriptor: 'EIP 是否欠费',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '欠费状态', value: 'TRUE' },\n { text: '费用状态正常', value: 'FALSE' },\n ],\n },\n {\n key: 'address-isp',\n enDescriptor: 'address-isp',\n cnDescriptor: '运营商类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'BGP', value: 'BGP' },\n { text: 'CMCC', value: 'CMCC' },\n { text: 'CUCC', value: 'CUCC' },\n { text: 'CTCC', value: 'CTCC' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/16702',\n namespace,\n fieldDescriptor: CEIPFilterFieldsDescriptor,\n};\n\nconst CEIP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'AddressId',\n queries: CEIPFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['eip'];\n });\n return metricTmp;\n}\nexport default CEIP_STATE;\nexport {\n CEIPFilterFieldsDescriptor,\n templateQueryIdMap,\n CEIPSUMMARYInstanceAliasList,\n CEIPInvalidDemensions,\n namespace,\n queryEditorName,\n modifyDimensons,\n queryEditorConfig,\n GetInstanceQueryParams as CEIPSUMMARYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { FildDescriptorType } from '../_base/types';\n\nexport const InstanceQueryDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 50,\n },\n {\n key: 'TopicName',\n enDescriptor: 'TopicName',\n cnDescriptor: '精确匹配TopicName',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签搜索',\n link: '',\n type: 'input',\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = {\n topicId: 'TopicId',\n};\n\n// 因为cmq那边,以TopciName为主键\nexport const templateQueryIdMap = {\n instance: 'TopicName',\n subscription: 'SubscriptionId',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n subscriptionId: 'subscriptionId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n subscriptionId: {\n dim_KeyInStorage: keyInStorage.subscriptionId,\n dim_KeyInTarget: 'subscriptionId',\n dim_KeyInMap: templateQueryIdMap.subscription,\n },\n};\n// 与名称挂钩的变量\nconst InstanceAliasList = ['TopicName', 'TopicId'];\nexport { InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TopicName',\n subscriptionId: '',\n queries: {\n Offset: 0,\n Limit: 20,\n TopicName: '',\n TagKey: '',\n },\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/CPM';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cpmQuery';\n\nconst CPMInvalidDemensions = {\n instanceId: 'InstanceId',\n // uniqid: 'InstanceId',\n};\n\nconst CPMInstanceAliasList = ['InstanceId', 'Name'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CPMFilterFields = {\n Limit: 20,\n Offset: 0,\n DeviceClassCode: '',\n InstanceIds: [],\n WanIps: [],\n LanIps: [],\n Alias: '',\n VagueIp: '',\n AutoRenewFlag: {},\n VpcId: '',\n SubnetId: '',\n DeviceType: {},\n IsLuckyDevice: {},\n};\n\nconst CPMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DeviceClassCode',\n enDescriptor: 'DeviceClassCode',\n cnDescriptor: '机型ID',\n link: '',\n type: 'dropdown',\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '设备ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'WanIps',\n enDescriptor: 'WanIps',\n cnDescriptor: '外网IP数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LanIps',\n enDescriptor: 'LanIps',\n cnDescriptor: '内网IP数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Alias',\n enDescriptor: 'Alias',\n cnDescriptor: '设备名称',\n link: '',\n type: 'input',\n },\n {\n key: 'VagueIp',\n enDescriptor: 'VagueIp',\n cnDescriptor: '模糊IP查询',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenewFlag',\n enDescriptor: 'AutoRenewFlag',\n cnDescriptor: '自动续费标志',\n link: '',\n type: 'select',\n list: [\n { text: '不自动续费', value: 0 },\n { text: '自动续费', value: 1 },\n ],\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络唯一ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '子网唯一ID',\n link: '',\n type: 'input',\n },\n {\n key: 'DeviceType',\n enDescriptor: 'DeviceType',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'select',\n list: [\n { text: '计算型', value: 'compute' },\n { text: '标准型', value: 'standard' },\n { text: '存储型', value: 'storage' },\n ],\n },\n {\n key: 'IsLuckyDevice',\n enDescriptor: 'IsLuckyDevice',\n cnDescriptor: '竞价实例机器过滤',\n link: '',\n type: 'select',\n list: [\n { text: '非竞价实例机器', value: 0 },\n { text: '竞价实例的机器', value: 1 },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/386/32904',\n namespace,\n fieldDescriptor: CPMFilterFieldsDescriptor,\n};\n\nconst CPM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: CPMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['instanceId'];\n });\n return metricTmp;\n}\nexport default CPM_STATE;\nexport {\n CPMFilterFieldsDescriptor,\n templateQueryIdMap,\n CPMInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CPMGetInstanceQueryParams,\n};\n","import { cloneDeep, compact, forEach, get, isArray, isEmpty, isObject, omit, uniq } from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\n\nconst namespace = 'QCE/DSA';\nconst queryEditorName = 'ecdnQuery';\n\nconst ECDNInstanceAliasList = ['Domain'];\n\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\n\nconst ECDNInvalidDemensions = {\n domain: 'Domain',\n projectid: 'ProjectId',\n};\n\nconst ECDN_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 100,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: [],\n disable: [],\n projectId: [],\n fullUrlCache: [],\n https: [],\n originPullProtocol: [],\n area: [],\n tagKey: [],\n },\n};\n\nconst ECDNFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'Origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'ResourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'Status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'disable',\n enDescriptor: 'Disable',\n cnDescriptor: '域名封禁状态',\n link: '',\n type: 'select',\n list: [\n { text: 'normal', value: 'normal' },\n { text: 'unlicensed', value: 'unlicensed' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'FullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'Https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'OriginPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'https', value: 'https' },\n { text: 'follow', value: 'follow' },\n ],\n },\n {\n key: 'area',\n enDescriptor: 'Area',\n cnDescriptor: '加速区域',\n link: '',\n type: 'select',\n list: [\n { text: 'mainland', value: 'mainland' },\n { text: 'overseas', value: 'overseas' },\n { text: 'global', value: 'global' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/570/42462',\n namespace,\n fieldDescriptor: ECDNFilterFieldsDescriptor,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!isEmpty(queries)) {\n params.Limit = get(queries, 'Limit', 20) || 20;\n params.Offset = get(queries, 'Offset', 0) || 0;\n const _queries = omit(queries, ['Offset', 'Limit']);\n const Filters: any[] = [];\n forEach(_queries, (item: any, key) => {\n if (isArray(item)) {\n item = compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: uniq(item).slice(0, 5) });\n }\n } else if (isObject(item)) {\n if (!isEmpty(get(item, 'value', []))) {\n Filters.push({ Name: key, Value: [get(item, 'value', [])].slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters.map((item) => {\n if (item.Name === 'domain') {\n return { ...item, Fuzzy: true };\n }\n return item;\n });\n return params;\n }\n }\n return params;\n}\n\nfunction modifyDimensons(metricItem) {\n const metricTmp = cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['domain', 'projectid'];\n });\n return metricTmp;\n}\n\nexport default ECDN_STATE;\n\nexport {\n ECDNFilterFieldsDescriptor,\n templateQueryIdMap,\n ECDNInstanceAliasList,\n ECDNInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECDNGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM';\nconst queryEditorName = 'ecmQuery';\n\nconst ECMInvalidDemensions = {\n // diskId: 'InstanceId',\n uuid: 'UUID',\n // unInstanceId: 'InstanceId',\n};\n\nconst ECMInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst ECMFilterFields = {\n Limit: 20,\n Offset: 0,\n zone: [],\n 'zone-name': [],\n 'module-id': [],\n 'module-name': [],\n 'instance-id': [],\n 'instance-name': [],\n 'ip-address': [],\n 'instance-uuid': [],\n 'instance-state': {},\n 'internet-service-provider': [],\n 'instance-family': [],\n 'image-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n};\n\nconst ECMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'zone',\n enDescriptor: 'zone',\n cnDescriptor: '可用区英文标识',\n link: '',\n type: 'dropdownMulti',\n },\n {\n key: 'zone-name',\n enDescriptor: 'zone-name',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-id',\n enDescriptor: 'module-id',\n cnDescriptor: '模块ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-name',\n enDescriptor: 'module-name',\n cnDescriptor: '模块名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'instance-name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ip-address',\n enDescriptor: 'ip-address',\n cnDescriptor: '内网/公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-uuid',\n enDescriptor: 'instance-uuid',\n cnDescriptor: '实例uuid',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'instance-state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n ],\n },\n {\n key: 'internet-service-provider',\n enDescriptor: 'internet-service-provider',\n cnDescriptor: '公网IP所属的运营商',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-family',\n enDescriptor: 'instance-family',\n cnDescriptor: '机型family',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'image-id',\n enDescriptor: 'image-id',\n cnDescriptor: '镜像ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '实例的vpc id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '实例的subnet id',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',\n namespace,\n fieldDescriptor: ECMFilterFieldsDescriptor,\n};\n\nconst ECM_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: ECMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// function isValidMetric(metricObj: any = {}) {\n// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);\n// }\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['UUID'];\n });\n return metricTmp;\n}\nexport default ECM_STATE;\nexport {\n ECMFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMInstanceAliasList,\n ECMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECMGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nconst namespace = 'QCE/POSTGRES';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'postgresQuery';\n\nconst PostgresFields = {\n 'db-instance-id': [],\n 'db-instance-name': [],\n};\n\nconst PostgresFieldsDescriptor: FildDescriptorType = [\n {\n key: 'db-instance-id',\n enDescriptor: 'DB Instance ID',\n cnDescriptor: 'DB 实例ID',\n link: '',\n type: 'inputMulti',\n min: 0,\n },\n {\n key: 'db-instance-name',\n enDescriptor: 'DB Instance Name',\n cnDescriptor: 'DB 实例名称',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/409/16773',\n namespace,\n fieldDescriptor: PostgresFieldsDescriptor,\n};\nconst POSTGRESInstanceAliasList = ['DBInstanceId', 'DBInstanceName'];\n\nconst POSTGRES_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DBInstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...PostgresFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['resourceId'];\n });\n return metricTmp;\n}\nconst PostgreInvalidDemensions = {\n uid: 'DBInstanceId',\n resourceId: 'DBInstanceId',\n};\nconst templateQueryIdMap = {\n instance: 'DBInstanceId',\n};\nexport default POSTGRES_STATE;\n\nexport {\n PostgresFieldsDescriptor,\n POSTGRESInstanceAliasList,\n templateQueryIdMap,\n modifyDimensons,\n namespace,\n queryEditorName,\n queryEditorConfig,\n PostgreInvalidDemensions,\n GetInstanceQueryParams as POSTGRESGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPC_NET_DETECT';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vpcNetDetectQuery';\n\nconst VPCNETInvalidDemensions = {\n netdetectid: 'NetDetectId',\n netDetectId: 'NetDetectId',\n};\n\nconst VPCNETDETECTInstanceAliasList = ['NetDetectId', 'NetDetectName'];\n\nconst templateQueryIdMap = {\n instance: 'NetDetectId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPCNETFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'net-detect-id': [],\n 'subnet-id': [],\n 'net-detect-name': [],\n};\n\nconst VPCNETFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'net-detect-id',\n enDescriptor: 'net-detect-id',\n cnDescriptor: '网络探测实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'net-detect-name',\n enDescriptor: 'net-detect-name',\n cnDescriptor: '网络探测名称',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/38696',\n namespace,\n fieldDescriptor: VPCNETFilterFieldsDescriptor,\n};\n\nconst VPCNET_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'NetDetectId',\n queries: VPCNETFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['netDetectId'];\n });\n return metricTmp;\n}\nexport default VPCNET_STATE;\nexport {\n VPCNETFilterFieldsDescriptor,\n templateQueryIdMap,\n VPCNETDETECTInstanceAliasList,\n VPCNETInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as VPCNETDETECTGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/WAF';\nconst queryEditorName = 'wafQuery';\nconst WAFFilterFields = {\n Limit: 20,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst WAFFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/228/41118',\n namespace,\n fieldDescriptor: WAFFilterFieldsDescriptor,\n};\nconst WAF_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: WAFFilterFields,\n};\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n];\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n\nconst WAFInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst WAFInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default WAF_STATE;\nexport {\n WAFFilterFieldsDescriptor,\n templateQueryIdMap,\n WAFInstanceAliasList,\n WAFInvalidDemensions,\n namespace,\n regionSupported,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as WAFGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nconst InstanceTypes = [\n { text: '主实例', value: 1 },\n { text: '备灾实例', value: 2 },\n { text: '只读实例', value: 3 },\n];\n\nconst Status = [\n { text: '创建中', value: 0 },\n { text: '运行中', value: 1 },\n { text: '隔离中', value: 4 },\n { text: '已隔离', value: 5 },\n];\n\nconst PayTypes = [\n { text: '包年包月', value: 0 },\n { text: '小时计费', value: 1 },\n];\n\nconst TaskStatus = [\n { text: '没有任务', value: 0 },\n { text: '升级中', value: 1 },\n { text: '数据导入中', value: 2 },\n { text: '开放Slave中', value: 3 },\n { text: '外网访问开通中', value: 4 },\n { text: '批量操作执行中', value: 5 },\n { text: '回档中', value: 6 },\n { text: '外网访问关闭中', value: 7 },\n { text: '密码修改中', value: 8 },\n { text: '实例名修改中', value: 9 },\n { text: '重启中', value: 10 },\n { text: '自建迁移中', value: 12 },\n { text: '删除库表中', value: 13 },\n { text: '灾备实例创建同步中', value: 14 },\n { text: '升级待切换', value: 15 },\n { text: '升级切换中', value: 16 },\n { text: '升级切换完成', value: 17 },\n];\n\nconst EngineVersions = [\n { text: '5.1', value: '5.1' },\n { text: '5.5', value: '5.5' },\n { text: '5.6', value: '5.6' },\n { text: '5.7', value: '5.7' },\n];\n\nconst OrderBy = [\n { text: 'InstanceId', value: 'InstanceId' },\n { text: 'InstanceName', value: 'InstanceName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'DeadlineTime', value: 'DeadlineTime' },\n];\n\nconst OrderDirection = [\n { text: 'ASC', value: 'ASC' },\n { text: 'DESC', value: 'DESC' },\n];\n\nconst InitFlag = [\n { text: '未初始化', value: 0 },\n { text: '初始化', value: 1 },\n];\n\nconst CdbErrors = [\n { text: '未锁定', value: 0 },\n { text: '锁定', value: 1 },\n];\n\nconst CDBFields = {\n ProjectId: '',\n InstanceTypes: {},\n Vips: [],\n Status: {},\n Offset: 0,\n Limit: 20,\n SecurityGroupId: '',\n PayTypes: {},\n InstanceNames: [],\n TaskStatus: {},\n EngineVersions: {},\n VpcIds: [],\n ZoneIds: [],\n SubnetIds: [],\n CdbErrors: {},\n OrderBy: {},\n OrderDirection: {},\n InstanceIds: [],\n InitFlag: {},\n};\n\nconst CDBFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceNames',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ZoneIds',\n enDescriptor: 'Zone ID',\n cnDescriptor: '可用区的ID',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'InstanceTypes',\n enDescriptor: 'Instance Type',\n cnDescriptor: '实例类型',\n link: '',\n multiple: true,\n type: 'select',\n list: InstanceTypes,\n },\n {\n key: 'EngineVersions',\n enDescriptor: 'Engine Version',\n cnDescriptor: '实例数据库引擎版本',\n link: '',\n multiple: true,\n type: 'select',\n list: EngineVersions,\n },\n {\n key: 'TaskStatus',\n enDescriptor: 'Task Status',\n cnDescriptor: '实例任务',\n link: '',\n multiple: true,\n type: 'select',\n list: TaskStatus,\n },\n {\n key: 'InitFlag',\n enDescriptor: 'Init Flag',\n cnDescriptor: '实例初始化状态',\n link: '',\n multiple: true,\n type: 'select',\n list: InitFlag,\n },\n {\n key: 'PayTypes',\n enDescriptor: 'Pay Type',\n cnDescriptor: '付费类型',\n link: '',\n multiple: true,\n type: 'select',\n list: PayTypes,\n },\n {\n key: 'CdbErrors',\n enDescriptor: 'CDB Errors',\n cnDescriptor: '实例锁定标记',\n link: '',\n multiple: true,\n type: 'select',\n list: CdbErrors,\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderDirection',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderDirection,\n },\n {\n key: 'Vips',\n enDescriptor: 'Vip',\n cnDescriptor: '实例内网IP地址',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'VpcIds',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '私有网络ID',\n link: 'https://cloud.tencent.com/document/api/215/15778',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'Subnet ID',\n cnDescriptor: '子网ID',\n link: 'https://cloud.tencent.com/document/api/215/15784',\n type: 'inputmulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '项目ID',\n link: 'https://cloud.tencent.com/document/product/378/4400',\n type: 'input',\n },\n { \n key: 'SecurityGroupId',\n enDescriptor: 'Security Group ID',\n cnDescriptor: '安全组ID',\n link: 'https://cloud.tencent.com/document/api/236/15854',\n type: 'input',\n },\n];\n\nconst CDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...CDBFields },\n};\n\nconst CDBInstanceAliasList = ['InstanceId', 'InstanceName', 'Vip'];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n return (\n dimension.length === 2 &&\n ((_.indexOf(dimension, 'instanceid') !== -1 && _.indexOf(dimension, 'insttype') !== -1) ||\n (_.indexOf(dimension, 'InstanceId') !== -1 && _.indexOf(dimension, 'InstanceType') !== -1))\n );\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((i) => CDBInvalidDemensions[i] || i);\n });\n return metricTmp;\n}\nconst CDBInvalidDemensions = {\n instanceid: 'InstanceId',\n insttype: 'InstanceType',\n region: 'Region',\n};\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default CDB_STATE;\n\nexport {\n CDBFieldsDescriptor,\n CDBInstanceAliasList,\n templateQueryIdMap,\n CDBInvalidDemensions,\n isValidMetric,\n modifyDimensons,\n GetInstanceQueryParams as CDBGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CES';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cesQuery';\n\nconst CESInvalidDemensions = {\n uInstanceId: 'InstanceId',\n};\n\nconst CESInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst CESFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceIds: [],\n InstanceNames: [],\n OrderByKey: {},\n OrderByType: {},\n IpList: [],\n};\n\nconst CESFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '集群实例ID列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'InstanceNames',\n enDescriptor: 'InstanceNames',\n cnDescriptor: '集群实例名称列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'OrderByKey',\n enDescriptor: 'OrderByKey',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '实例ID', value: 1 },\n { text: '实例名称', value: 2 },\n { text: '可用区', value: 3 },\n { text: '创建时间', value: 4 },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n ],\n },\n {\n key: 'IpList',\n enDescriptor: 'IpList',\n cnDescriptor: '私有网络vip列表',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/845/30631',\n namespace,\n fieldDescriptor: CESFilterFieldsDescriptor,\n};\n\nconst CES_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: CESFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default CES_STATE;\nexport {\n CESFilterFieldsDescriptor,\n templateQueryIdMap,\n CESInstanceAliasList,\n CESInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CESGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DC';\nconst queryEditorName = 'dcQuery';\n\nconst DCFilterFields = {\n Limit: 20,\n Offset: 0,\n DirectConnectIds: [],\n};\n\nconst DCFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DirectConnectIds',\n enDescriptor: 'DirectConnectIds',\n cnDescriptor: '物理专线 ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/216/34826',\n namespace,\n fieldDescriptor: DCFilterFieldsDescriptor,\n};\n\nconst DC_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectId',\n queries: DCFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nconst DCInstanceAliasList = ['DirectConnectId', 'DirectConnectName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectId',\n};\n\nconst DCInvalidDemensions = {\n directConnectId: 'DirectConnectId',\n directconnectid: 'DirectConnectId',\n};\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['directConnectId'];\n });\n return metricTmp;\n}\nexport default DC_STATE;\nexport {\n DCFilterFieldsDescriptor,\n templateQueryIdMap,\n DCInstanceAliasList,\n DCInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as DCGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DCG';\nconst queryEditorName = 'dcgQuery';\n\nconst DCGInvalidDemensions = {\n directConnectGatewayId: 'DirectConnectGatewayId',\n};\n\nconst DCGInstanceAliasList = ['DirectConnectGatewayId', 'DirectConnectGatewayName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectGatewayId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst DCGFilterFields = {\n Limit: 20,\n Offset: 0,\n 'direct-connect-gateway-id': [],\n 'direct-connect-gateway-name': [],\n 'direct-connect-gateway-ip': [],\n 'gateway-type': {},\n 'network-type': {},\n 'ccn-id': [],\n 'vpc-id': [],\n};\n\nconst DCGFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'direct-connect-gateway-id',\n enDescriptor: 'direct-connect-gateway-id',\n cnDescriptor: '专线网关唯一ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-gateway-name',\n enDescriptor: 'direct-connect-gateway-name',\n cnDescriptor: '专线网关名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-gateway-ip',\n enDescriptor: 'direct-connect-gateway-ip',\n cnDescriptor: '专线网关IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'gateway-type',\n enDescriptor: 'gateway-type',\n cnDescriptor: '网关类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '普通型', value: 'NORMAL' },\n { text: 'NAT型', value: 'NAT' },\n ],\n },\n {\n key: 'network-type',\n enDescriptor: 'network-type',\n cnDescriptor: '网络类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '私有网络类型', value: 'VPC' },\n { text: '云联网类型', value: 'CCN' },\n ],\n },\n {\n key: 'ccn-id',\n enDescriptor: 'ccn-id',\n cnDescriptor: '专线网关所在云联网ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '专线网关所在私有网络ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/30644',\n namespace,\n fieldDescriptor: DCGFilterFieldsDescriptor,\n};\n\nconst DCG_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectGatewayId',\n queries: DCGFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default DCG_STATE;\nexport {\n DCGFilterFieldsDescriptor,\n templateQueryIdMap,\n DCGInstanceAliasList,\n DCGInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as DCGGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DCX';\nconst queryEditorName = 'dcxQuery';\n\nconst DCXFilterFields = {\n 'direct-connect-tunnel-name': [],\n 'direct-connect-tunnel-id': [],\n 'direct-connect-id': [],\n};\n\nconst DCXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'direct-connect-tunnel-name',\n enDescriptor: 'direct-connect-tunnel-name',\n cnDescriptor: '专用通道名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-tunnel-id',\n enDescriptor: 'direct-connect-tunnel-id',\n cnDescriptor: '专用通道实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-id',\n enDescriptor: 'direct-connect-id',\n cnDescriptor: '物理专线实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/216/19819',\n namespace,\n fieldDescriptor: DCXFilterFieldsDescriptor,\n};\n\nconst DCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectTunnelId',\n queries: {\n Limit: 20,\n Offset: 0,\n ...DCXFilterFields,\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n\nconst DCXInstanceAliasList = ['DirectConnectTunnelId', 'DirectConnectTunnelName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectTunnelId',\n};\n\nconst DCXInvalidDemensions = {\n directconnectconnid: 'DirectConnectTunnelId',\n directConnectConnId: 'DirectConnectTunnelId',\n};\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['directConnectConnId'];\n });\n return metricTmp;\n}\nexport default DCX_STATE;\nexport {\n DCXFilterFieldsDescriptor,\n templateQueryIdMap,\n DCXInstanceAliasList,\n DCXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as DCXGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM_LB';\nconst queryEditorName = 'ecmLbQuery';\n\nconst ECMLBInvalidDemensions = {\n vip: 'LoadBalancerVips',\n};\n\nconst ECMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst ECMLBFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n BackendPrivateIps: [],\n VpcId: '',\n};\n\nconst ECMLBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivateIps',\n cnDescriptor: '绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '实例所属私有网络唯一ID',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/48459',\n namespace,\n fieldDescriptor: ECMLBFilterFieldsDescriptor,\n};\n\nconst ECM_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: ECMLBFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// function isValidMetric(metricObj: any = {}) {\n// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);\n// }\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = ['UUID'];\n });\n return metricTmp;\n}\nexport default ECM_STATE;\nexport {\n ECMLBFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMLBInstanceAliasList,\n ECMLBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECMLBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst InstanceTypes = [\n { text: '所有实例', value: 0 },\n { text: '正式实例', value: 1 },\n { text: '临时实例', value: 2 },\n { text: '只读实例', value: 3 },\n { text: '正式,只读,灾备实例', value: -1 },\n];\n\nconst ClusterTypes = [\n { text: '副本集实例', value: 0 },\n { text: '分片实例', value: 1 },\n { text: '所有实例', value: -1 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '实例有效', value: 2 },\n { text: '实例已过期', value: -2 },\n];\n\nconst PayMode = [\n { text: '按量计费', value: 0 },\n { text: '包年包月', value: 1 },\n { text: '按量包年包月计费', value: -1 },\n];\n\nconst OrderBy = [\n { text: 'ProjectId', value: 'ProjectId' },\n { text: 'InstanceName', value: 'InstanceName' },\n { text: 'CreateTime', value: 'CreateTime' },\n];\n\nconst OrderByType = [\n { text: '升序', value: 'ASC' },\n { text: '降序', value: 'DESC' },\n];\n\nconst MongoDBFields = {\n InstanceIds: [],\n InstanceType: {},\n ClusterType: {},\n Status: [],\n VpcId: '',\n SubnetId: '',\n PayMode: {},\n Limit: 20,\n Offset: 0,\n OrderBy: '',\n OrderByType: '',\n};\n\nconst MONGODBFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstancesIds',\n cnDescriptor: '实例名称',\n type: 'inputmulti',\n },\n {\n key: 'InstanceType',\n enDescriptor: 'InstanceType',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: InstanceTypes,\n },\n {\n key: 'ClusterType',\n enDescriptor: 'ClusterType',\n cnDescriptor: '集群类型',\n link: '',\n type: 'select',\n list: ClusterTypes,\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '私有网络的子网ID,基础网络则不传该参数。入参设置该参数的同时,必须设置相应的VpcId',\n link: '',\n type: 'input',\n },\n {\n key: 'PayMode',\n enDescriptor: 'PayMode',\n cnDescriptor: '付费类型',\n link: '',\n type: 'select',\n list: PayMode,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderByType,\n },\n];\n\nconst MONGODB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...MongoDBFields },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst MONGODBInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst MONGODBInvalidDemensions = {\n target: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n replica: 'ReplicaSetId',\n};\n\nconst queryMonitorExtraConfg = {\n Replica: {\n dim_KeyInStorage: 'ReplicaSets',\n dim_KeyInTarget: 'replica',\n dim_KeyInMap: 'ReplicaSetId',\n dim_KeyInIns: 'ReplicaSetId',\n },\n Node: {\n dim_KeyInStorage: 'ReplicaNodeSets',\n dim_KeyInTarget: 'node',\n dim_KeyInMap: 'NodeId',\n dim_KeyInIns: 'NodeId',\n },\n};\nexport default MONGODB_STATE;\nexport {\n MONGODBFieldsDescriptor,\n MONGODBInvalidDemensions,\n MONGODBInstanceAliasList,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n GetInstanceQueryParams as MONGODBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/QAAP';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'qaapQuery';\n\nconst QAAPInvalidDemensions = {\n channelId: 'InstanceId',\n};\n\nconst QAAPInstanceAliasList = ['InstanceId'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst QAAPFilterFields = {\n Limit: 20,\n Offset: 0,\n ProjectId: [],\n AccessRegion: [],\n RealServerRegion: [],\n GroupId: [],\n};\n\nconst QAAPFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'AccessRegion',\n enDescriptor: 'AccessRegion',\n cnDescriptor: '接入地域',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'RealServerRegion',\n enDescriptor: 'RealServerRegion',\n cnDescriptor: '源站地域',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'GroupId',\n enDescriptor: 'GroupId',\n cnDescriptor: '通道组ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/608/36963',\n namespace,\n fieldDescriptor: QAAPFilterFieldsDescriptor,\n};\n\nconst QAAP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: QAAPFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n // metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = ['netDetectId'];\n // });\n return metricTmp;\n}\nexport default QAAP_STATE;\nexport {\n QAAPFilterFieldsDescriptor,\n templateQueryIdMap,\n QAAPInstanceAliasList,\n QAAPInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as QAAPGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/TCAPLUS';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tcaplusQuery';\n\nconst TCAPLUSInvalidDemensions = {\n // TableInstanceId: 'TableInstanceId',\n // ClusterId: 'ClusterId',\n};\n\n// 需和文件名对应\nconst TCAPLUSInstanceAliasList = ['TableInstanceId', 'TableName'];\n\nconst templateQueryIdMap = {\n instance: 'TableInstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst TCAPLUSFilterFields = {\n Limit: 20,\n Offset: 0,\n ClusterId: '',\n TableGroupIds: [],\n\n TableName: '',\n TableInstanceId: '',\n TableIdlType: {},\n TableType: {},\n ListElementNum: null,\n ReservedVolume: null,\n ReservedReadQps: null,\n ReservedWriteQps: null,\n Memo: '',\n FileName: '',\n FileExtType: '',\n FileSize: null,\n FileContent: '',\n};\n\nconst TCAPLUSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ClusterId',\n enDescriptor: 'ClusterId',\n cnDescriptor: '表格所属集群ID',\n link: '',\n type: 'input',\n },\n {\n key: 'TableGroupIds',\n enDescriptor: 'TableGroupIds',\n cnDescriptor: '表格组ID列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'TableName',\n enDescriptor: 'TableName',\n cnDescriptor: '表格名称',\n link: '',\n type: 'input',\n },\n {\n key: 'TableInstanceId',\n enDescriptor: 'TableInstanceId',\n cnDescriptor: '表实例ID',\n link: '',\n type: 'input',\n },\n {\n key: 'TableIdlType',\n enDescriptor: 'TableIdlType',\n cnDescriptor: '表格描述语言类型',\n link: '',\n type: 'select',\n list: [\n { text: 'PROTO', value: 'PROTO' },\n { text: 'TDR', value: 'TDR' },\n ],\n },\n {\n key: 'TableType',\n enDescriptor: 'TableType',\n cnDescriptor: '表格数据结构类型',\n link: '',\n type: 'select',\n list: [\n { text: 'GENERIC', value: 'GENERIC' },\n { text: 'LIST', value: 'LIST' },\n ],\n },\n {\n key: 'ListElementNum',\n enDescriptor: 'ListElementNum',\n cnDescriptor: 'LIST表元素个数',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedVolume',\n enDescriptor: 'ReservedVolume',\n cnDescriptor: '表格预留容量(GB)',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedReadQps',\n enDescriptor: 'ReservedReadQps',\n cnDescriptor: '表格预留读CU',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedWriteQps',\n enDescriptor: 'ReservedWriteQps',\n cnDescriptor: '表格预留写CU',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'Memo',\n enDescriptor: 'Memo',\n cnDescriptor: '表格备注信息',\n link: '',\n type: 'input',\n },\n {\n key: 'FileName',\n enDescriptor: 'FileName',\n cnDescriptor: 'Key回档文件名,回档专用',\n link: '',\n type: 'input',\n },\n {\n key: 'FileExtType',\n enDescriptor: 'FileExtType',\n cnDescriptor: 'Key回档文件扩展名,回档专用',\n link: '',\n type: 'input',\n },\n {\n key: 'FileSize',\n enDescriptor: 'FileSize',\n cnDescriptor: 'Key回档文件大小,回档专用',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'FileContent',\n enDescriptor: 'FileContent',\n cnDescriptor: 'Key回档文件内容,回档专用',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/596/39664',\n namespace,\n fieldDescriptor: TCAPLUSFilterFieldsDescriptor,\n};\n\nconst TCAPLUS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TableInstanceId',\n queries: TCAPLUSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n params.ClusterId = _.get(queries, 'ClusterId', '') || '';\n params.TableGroupIds = _.get(queries, 'TableGroupIds', []) || [];\n queries = _.omit(queries, ['Offset', 'Limit', 'TableGroupIds', 'ClusterId']);\n const SelectedTables: any[] = [];\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n SelectedTables[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n SelectedTables[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n SelectedTables[key] = item;\n }\n });\n params.SelectedTables = SelectedTables;\n return params;\n}\n// 和其他产品的展示保持一致\nconst regonsMap = {\n 'ap-beijing': '华北地区(北京)',\n 'ap-guangzhou': '华南地区(广州)',\n 'ap-hongkong': '港澳台地区(中国香港)',\n 'ap-seoul': '亚太东北(首尔)',\n 'ap-shanghai': '华东地区(上海)',\n 'ap-singapore': '亚太东南(新加坡)',\n 'ap-tokyo': '亚太东北(东京)',\n 'eu-frankfurt': '欧洲地区(法兰克福)',\n 'na-ashburn': '美国东部(弗吉尼亚)',\n 'na-siliconvalley': '美国西部(硅谷)',\n};\nexport default TCAPLUS_STATE;\nexport {\n TCAPLUSFilterFieldsDescriptor,\n templateQueryIdMap,\n TCAPLUSInstanceAliasList,\n TCAPLUSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regonsMap,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TCAPLUSGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VBC';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vbcQuery';\n\nconst VBCInvalidDemensions = {\n // CcnId: 'CcnId',\n};\n\n// 需和文件名对应\nconst VBCInstanceAliasList = ['CcnId', 'CcnName'];\n\nconst templateQueryIdMap = {\n instance: 'CcnId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst VBCFilterFields = {\n Limit: 20,\n Offset: 0,\n 'ccn-id': [],\n 'ccn-name': [],\n 'ccn-description': [],\n state: {},\n};\n\nconst VBCFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ccn-id',\n enDescriptor: 'ccn-id',\n cnDescriptor: 'CCN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ccn-name',\n enDescriptor: 'ccn-name',\n cnDescriptor: 'CCN名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ccn-description',\n enDescriptor: 'ccn-description',\n cnDescriptor: 'CCN描述',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'state',\n enDescriptor: 'state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '隔离中', value: 'ISOLATED' },\n { text: '运行中', value: 'AVAILABLE' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/19199',\n namespace,\n fieldDescriptor: VBCFilterFieldsDescriptor,\n};\n\nconst VBC_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'CcnId',\n DRegion: '',\n SRegion: '',\n queries: VBCFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// const regionSupported = [\n// { text: '华北地区(北京)', value: 'ap-beijing' },\n// { text: '西南地区(成都)', value: 'ap-chengdu' },\n// { text: '西南地区(重庆)', value: 'ap-chongqing' },\n// { text: '华南地区(广州)', value: 'ap-guangzhou' },\n// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n// { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n// { text: '华东地区(南京)', value: 'ap-nanjing' },\n// { text: '华东地区(上海)', value: 'ap-shanghai' },\n// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n// { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n// { text: '亚太东北(东京)', value: 'ap-tokyo' },\n// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n// { text: '北美地区(多伦多)', value: 'na-toronto' },\n// ];\nexport default VBC_STATE;\nexport {\n VBCFilterFieldsDescriptor,\n templateQueryIdMap,\n VBCInstanceAliasList,\n VBCInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n // regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as VBCGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPNGW';\nconst queryEditorName = 'vpngwQuery';\n\nconst VPNGWInvalidDemensions = {\n vpnGwId: 'VpnGatewayId',\n};\n\nconst VPNGWInstanceAliasList = ['VpnGatewayId', 'VpnGatewayName'];\n\nconst templateQueryIdMap = {\n instance: 'VpnGatewayId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPNGWFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'vpn-gateway-id': [],\n 'vpn-gateway-name': [],\n type: {},\n 'public-ip-address': [],\n 'renew-flag': {},\n zone: [],\n};\n\nconst VPNGWFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-id',\n enDescriptor: 'vpn-gateway-id',\n cnDescriptor: 'VPN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-name',\n enDescriptor: 'vpn-gateway-name',\n cnDescriptor: 'VPN实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'type',\n enDescriptor: 'type',\n cnDescriptor: 'VPN网关类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'IPSEC', value: 'IPSEC' },\n { text: 'SSL', value: 'SSL' },\n ],\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'public-ip-address',\n cnDescriptor: '公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'renew-flag',\n enDescriptor: 'renew-flag',\n cnDescriptor: '网关续费类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '手动续费', value: 'NOTIFY_AND_MANUAL_RENEW' },\n { text: '自动续费', value: 'NOTIFY_AND_AUTO_RENEW' },\n ],\n },\n {\n key: 'zone',\n enDescriptor: 'zone',\n cnDescriptor: 'VPN所在可用区',\n link: '',\n type: 'dropdownMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17514',\n namespace,\n fieldDescriptor: VPNGWFilterFieldsDescriptor,\n};\n\nconst VPNGW_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpnGatewayId',\n queries: VPNGWFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default VPNGW_STATE;\nexport {\n VPNGWFilterFieldsDescriptor,\n templateQueryIdMap,\n VPNGWInstanceAliasList,\n VPNGWInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as VPNGWGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPNX';\nconst queryEditorName = 'vpnxQuery';\n\nconst VPNXInvalidDemensions = {\n vpnConnId: 'VpnConnectionId',\n};\n\nconst VPNXInstanceAliasList = ['VpnConnectionId', 'VpnConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'VpnConnectionId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPNXFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'vpn-gateway-id': [],\n 'customer-gateway-id': [],\n 'vpn-connection-name': [],\n 'vpn-connection-id': [],\n};\n\nconst VPNXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-id',\n enDescriptor: 'vpn-gateway-id',\n cnDescriptor: 'VPN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'customer-gateway-id ',\n enDescriptor: 'customer-gateway-id ',\n cnDescriptor: '对端网关实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-connection-name',\n enDescriptor: 'vpn-connection-name',\n cnDescriptor: '通道名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-connection-id',\n enDescriptor: 'vpn-connection-id',\n cnDescriptor: '通道实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17515',\n namespace,\n fieldDescriptor: VPNXFilterFieldsDescriptor,\n};\n\nconst VPNX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpnConnectionId',\n queries: VPNXFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default VPNX_STATE;\nexport {\n VPNXFilterFieldsDescriptor,\n templateQueryIdMap,\n VPNXInstanceAliasList,\n VPNXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as VPNXGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nconst LighthouseStateType = [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n];\n\nconst LighthouseFilterFields = {\n zone: [],\n 'instance-name': [],\n 'instance-state': {},\n 'private-ip-address': [],\n 'public-ip-address': [],\n};\n\nconst LighthouseFilterFieldsDescriptor = [\n {\n key: 'instance-name',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: '实例主网卡的内网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'Public IP Address',\n cnDescriptor: '实例主网卡的公网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'zone',\n enDescriptor: 'Zone',\n cnDescriptor: '可用区',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'Instance State',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n list: LighthouseStateType,\n },\n];\n\nconst LIGHTHOUSE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n InstanceIds: [''],\n Filters: { ...LighthouseFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst LIGHTHOUSEInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];\n\nconst LighthouseInvalidDemensions = {\n instanceid: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\n\nexport default LIGHTHOUSE_STATE;\n\nexport {\n LighthouseFilterFieldsDescriptor,\n LIGHTHOUSEInstanceAliasList,\n LighthouseInvalidDemensions,\n templateQueryIdMap,\n modifyDimensons,\n GetInstanceQueryParams as LIGHTHOUSEGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nexport const CFSQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'FileSystemId',\n enDescriptor: 'File System Id',\n cnDescriptor: '文件系统 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络(VPC) ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '子网 ID',\n link: '',\n type: 'input',\n },\n];\n\nconst CFS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'FileSystemId',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n FileSystemId: '',\n VpcId: '',\n SubnetId: '',\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst CFSInstanceAliasList = ['FileSystemId', 'FsName'];\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst CFSInvalidDemensions = {\n // functionName: 'FunctionName',\n // namespace: 'Namespace'\n};\n\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-nanjing' },\n { value: 'ap-seoul' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default CFS_STATE;\nexport {\n CFSInstanceAliasList,\n CFSInvalidDemensions,\n templateQueryIdMap,\n regionSupported,\n GetInstanceQueryParams as CFSGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\n// export const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import _ from 'lodash';\nimport { FildDescriptorType } from '../_base/types';\n\nexport const InstanceQueryDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 50,\n },\n {\n key: 'QueueName',\n enDescriptor: 'QueueName',\n cnDescriptor: '精确匹配QueueName',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签搜索',\n link: '',\n type: 'input',\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = {\n queueId: 'QueueId',\n queueName: 'QueueName',\n};\n\nexport const templateQueryIdMap = {\n instance: 'QueueName',\n};\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['QueueName', 'QueueId'];\nexport { InstanceAliasList, GetInstanceQueryParams };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'QueueName',\n queries: {\n Offset: 0,\n Limit: 20,\n QueueName: '',\n TagKey: '',\n },\n};\n","import _ from 'lodash';\nconst instanceChargeTypes = [\n { text: '预付费', value: 'PREPAID' },\n { text: '后付费', value: 'POSTPAID_BY_HOUR' },\n { text: 'CDH付费', value: 'CDHPAID' },\n];\n\nconst CVMFilterFields = {\n zone: [],\n 'project-id': [],\n 'host-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n 'instance-id': [],\n 'security-group-id': [],\n 'instance-name': [],\n 'instance-charge-type': {},\n 'private-ip-address': [],\n 'public-ip-address': [],\n 'tag-key': [],\n};\n\nconst CVMFilterFieldsDescriptor = [\n {\n key: 'zone',\n enDescriptor: 'Zone',\n cnDescriptor: '可用区',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'project-id',\n enDescriptor: 'Project ID',\n cnDescriptor: '项目ID',\n link: 'https://cloud.tencent.com/document/api/378/4400',\n type: 'inputNumbermulti',\n },\n {\n key: 'host-id',\n enDescriptor: 'CDH ID',\n cnDescriptor: 'CDH ID',\n link: 'https://cloud.tencent.com/document/product/416/19730',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC ID',\n cnDescriptor: 'VPC ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'Subnet ID',\n cnDescriptor: '子网ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'security-group-id',\n enDescriptor: 'Security Group ID',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'tag-key',\n enDescriptor: '标签简',\n cnDescriptor: '标签简',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-charge-type',\n enDescriptor: 'Instance Charge Type',\n cnDescriptor: '实例计费模式',\n link: '',\n type: 'select',\n list: instanceChargeTypes,\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: '实例主网卡的内网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'Public IP Address',\n cnDescriptor: '实例主网卡的公网IP,包含实例创建时自动分配的IP和实例创建后手动绑定的弹性IP',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst CVM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n InstanceIds: [''],\n Filters: { ...CVMFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst CVMInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];\n\nconst CVMValidMetricsT = [\n 'CPUUsage',\n 'CpuLoadavg',\n 'Cpuloadavg5m',\n 'Cpuloadavg15m',\n 'BaseCpuUsage',\n 'GpuMemTotal',\n 'GpuMemUsage',\n 'GpuMemUsed',\n 'GpuPowDraw',\n 'GpuPowLimit',\n 'GpuPowUsage',\n 'GpuTemp',\n 'GpuUtil',\n 'LanOuttraffic',\n 'LanIntraffic',\n 'LanOutpkg',\n 'LanInpkg',\n 'WanOuttraffic',\n 'WanIntraffic',\n 'WanOutpkg',\n 'WanInpkg',\n 'AccOuttraffic',\n 'TcpCurrEstab',\n 'TimeOffset',\n 'MemUsed',\n 'MemUsage',\n 'CvmDiskUsage',\n 'BaseCpuUsage',\n 'VmDiskReadIops',\n];\n// const CVMInvalidDemensions = {\n// 'vm_uuid': 'InstanceId',\n// 'vmUuid': 'InstanceId',\n// };\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nfunction isValidMetric(metric) {\n const CVMValidMetrics = _.map(CVMValidMetricsT, _.toUpper);\n return _.indexOf(CVMValidMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\nexport default CVM_STATE;\nexport {\n CVMFilterFieldsDescriptor,\n CVMInstanceAliasList,\n isValidMetric,\n modifyDimensons,\n templateQueryIdMap,\n // CVMInvalidDemensions,\n GetInstanceQueryParams as CVMGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst namespace = 'QCE/PCX';\n\nconst PCXFields = {\n limit: 20,\n offset: 0,\n peeringConnectionId: '',\n peeringConnectionName: '',\n vpcId: '',\n state: undefined,\n};\n\nconst PCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'peeringConnectionId',\n queries: { ...PCXFields },\n};\n\nconst StateTypes = [\n { text: '申请中', value: 0 },\n { text: '连接成功', value: 1 },\n { text: '已过期', value: 2 },\n { text: '对端已拒绝', value: 3 },\n { text: '对端已删除', value: 4 },\n];\n\nconst PCXFieldsDescriptor = [\n {\n key: 'offset',\n enDescriptor: 'offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'limit',\n enDescriptor: 'limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为50',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 50,\n },\n {\n key: 'peeringConnectionId',\n enDescriptor: 'PeeringConnection Id',\n cnDescriptor: '私有网络对等连接 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'peeringConnectionName',\n enDescriptor: 'PeeringConnection Name',\n cnDescriptor: '对等连接名称',\n link: '',\n type: 'input',\n },\n {\n key: 'vpcId',\n enDescriptor: 'vpcId',\n cnDescriptor: '发起方私有网络 ID 值',\n link: 'https://cloud.tencent.com/document/api/215/1372',\n type: 'dropdown',\n },\n {\n key: 'state',\n enDescriptor: 'state',\n cnDescriptor: '连接状态',\n link: '',\n type: 'select',\n list: StateTypes,\n },\n];\n\nconst PCXInstanceAliasList = ['peeringConnectionId', 'peeringConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'peeringConnectionId',\n};\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.limit = _.get(queries, 'limit', 20) || 20;\n params.offset = _.get(queries, 'offset', 0) || 0;\n queries = _.omit(queries, ['offset', 'limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nexport default PCX_STATE;\n\nexport {\n PCXInstanceAliasList,\n PCXFieldsDescriptor,\n templateQueryIdMap,\n namespace,\n GetInstanceQueryParams as PCXGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst BillingMode = [\n { text: '按量计费', value: 'postpaid' },\n { text: '包年包月', value: 'prepaid' },\n];\n\nconst AutoRenew = [\n { text: '手动续费', value: 0 },\n { text: '自动续费', value: 1 },\n { text: '明确不自动续费', value: 2 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '已隔离', value: -2 },\n { text: '待删除', value: -3 },\n];\n\nconst TypeVersion = [\n { text: '单机版', value: 1 },\n { text: '主从版', value: 2 },\n { text: '集群版', value: 3 },\n];\n\nconst OrderBy = [\n { text: 'projectId', value: 'projectId' },\n { text: 'instancename', value: 'instancename' },\n { text: 'createtime', value: 'createtime' },\n { text: 'type', value: 'type' },\n { text: 'curDeadline', value: 'curDeadline' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\nconst Type = [\n { text: 'Redis老集群版', value: 1 },\n { text: 'Redis 2.8主从版', value: 2 },\n { text: 'CKV主从版', value: 3 },\n { text: 'CKV集群版', value: 4 },\n { text: 'Redis 2.8单机版', value: 5 },\n { text: 'Redis 4.0主从版', value: 6 },\n { text: 'Redis 4.0集群版', value: 7 },\n { text: 'Redis5.0主从版', value: 8 },\n { text: 'Redis5.0集群版', value: 9 },\n];\n\nconst RedisFields = {\n InstanceId: '',\n OrderBy: '',\n OrderType: null,\n VpcIds: [],\n SubnetIds: [],\n ProjectIds: [],\n SearchKey: '',\n InstanceName: '',\n UniqVpcIds: [],\n UniqSubnetIds: [],\n Status: [],\n TypeVersion: null,\n EngineName: '',\n AutoRenew: null,\n BillingMode: '',\n Type: null,\n};\n\nconst RedisFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstancesId',\n cnDescriptor: '实例id',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderType',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderType,\n },\n {\n key: 'VpcIds',\n enDescriptor: 'VpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'SubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '项目ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '查找实例的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'InstanceName',\n enDescriptor: 'InstanceName',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'UniqVpcIds',\n enDescriptor: 'UniqVpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'UniqSubnetIds',\n enDescriptor: 'UniqSubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'TypeVersion',\n enDescriptor: 'TypeVersion',\n cnDescriptor: '类型版本',\n link: '',\n type: 'select',\n list: TypeVersion,\n },\n {\n key: 'EngineName',\n enDescriptor: 'EngineName',\n cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenew',\n enDescriptor: 'AutoRenew',\n cnDescriptor: '续费模式',\n multiple: true,\n type: 'select',\n list: AutoRenew,\n },\n {\n key: 'BillingMode',\n enDescriptor: 'BillingMode',\n cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',\n link: '',\n type: 'select',\n list: BillingMode,\n },\n {\n key: 'Type',\n enDescriptor: 'Type',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: Type,\n },\n];\n\nconst REDIS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...RedisFields },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n return dimension.length === 1 && _.indexOf(dimension, 'instanceid') !== -1;\n}\n\nconst REDISInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];\n\nconst RedisInvalidDemensions = {\n redis_uuid: 'InstanceId',\n instanceid: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default REDIS_STATE;\nexport {\n RedisFieldsDescriptor,\n RedisInvalidDemensions,\n templateQueryIdMap,\n REDISInstanceAliasList,\n isValidMetric,\n GetInstanceQueryParams as REDISGetInstanceQueryParams,\n};\n","import { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst ApplicationType = [\n { text: '所有', value: '' },\n { text: '容器应用', value: 'C' },\n { text: '普通应用/虚拟机应用', value: 'V' },\n];\n\nconst MicroserviceType = [\n { text: '所有', value: '' },\n { text: '普通应用', value: 'N' },\n { text: 'Mesh应用', value: 'M' },\n { text: '微服务网关应用', value: 'G' },\n { text: '原生应用', value: 'NATIVE' },\n];\n\nconst ApplicationResourceType = [\n { text: '默认资源类型', value: 'DEF' },\n { text: '微服务网关资源', value: 'GW' },\n];\n\nconst TSFFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'SearchWord',\n enDescriptor: 'SearchWord',\n cnDescriptor: '搜索关键字',\n link: '',\n type: 'input',\n },\n {\n key: 'ApplicationIdList',\n enDescriptor: 'ApplicationIdList',\n cnDescriptor: '应用ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ApplicationType',\n enDescriptor: 'ApplicationType',\n cnDescriptor: '应用类型',\n link: '',\n type: 'select',\n list: ApplicationType,\n },\n {\n key: 'MicroserviceType',\n enDescriptor: 'MicroserviceType',\n cnDescriptor: '应用的微服务类型',\n link: '',\n type: 'select',\n list: MicroserviceType,\n },\n {\n key: 'ApplicationResourceTypeList',\n enDescriptor: 'ApplicationResourceTypeList',\n cnDescriptor: '应用资源类型数组',\n link: '',\n type: 'select',\n multiple: true,\n list: ApplicationResourceType,\n },\n];\n\nconst TSF_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ApplicationId',\n queries: {\n Limit: 20,\n Offset: 0,\n SearchWord: '',\n OrderBy: '',\n OrderType: null,\n ApplicationType: '',\n MicroserviceType: '',\n ApplicationResourceTypeList: [],\n ApplicationIdList: [],\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nconst TSFInstanceAliasList = ['ApplicationId', 'ApplicationName'];\n\nconst TSFInvalidDemensions = {\n applicationid: 'ApplicationId',\n};\n\nconst templateQueryIdMap = {\n instance: 'ApplicationId',\n};\n\nexport default TSF_STATE;\nexport {\n TSFInvalidDemensions,\n templateQueryIdMap,\n TSFInstanceAliasList,\n TSFFieldsDescriptor,\n GetInstanceQueryParams as TSFGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst networkTypes = [\n { text: 'BGP', value: 'BGP' },\n { text: 'SINGLEISP', value: 'SINGLEISP' },\n { text: 'ANYCAST', value: 'ANYCAST' },\n];\n\nconst chargeTypes = [\n { text: 'top5计费', value: 'TOP5_POSTPAID_BY_MONTH' },\n { text: '月95计费', value: 'PERCENT95_POSTPAID_BY_MONTH' },\n];\nconst BWPFilterFields = {\n 'bandwidth-package_id': [],\n 'bandwidth-package-name': [],\n 'network-type': [],\n 'charge-type': [],\n};\n\nconst BWPFilterFieldsDescriptor = [\n {\n key: 'bandwidth-package_id',\n enDescriptor: 'BandwidthPackage Id',\n cnDescriptor: '带宽包ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'bandwidth-package-name',\n enDescriptor: 'BandwidthPackage Name',\n cnDescriptor: '带宽包名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'network-type',\n enDescriptor: 'network type',\n cnDescriptor: '带宽包类型',\n link: '',\n type: 'select',\n list: networkTypes,\n },\n {\n key: 'charge-type',\n enDescriptor: 'charge type',\n cnDescriptor: '带宽包计费类型',\n link: '',\n type: 'select',\n list: chargeTypes,\n },\n];\n\nconst BWP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'BandwidthPackageId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n BandwidthPackageIds: [''],\n Filters: { ...BWPFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.BandwidthPackageIds)) {\n const BandwidthPackageIds = _.compact(queries.BandwidthPackageIds);\n if (_.uniq(BandwidthPackageIds).length > 0) {\n params.BandwidthPackageIds = _.uniq(BandwidthPackageIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst BWPInstanceAliasList = ['BandwidthPackageId', 'BandwidthPackageName'];\n\nconst templateQueryIdMap = {\n instance: 'BandwidthPackageId',\n};\n\nconst BWPInvalidDemensions = {\n bandwidthPackageId: 'BandwidthPackageId',\n};\nexport default BWP_STATE;\nexport {\n BWPFilterFieldsDescriptor,\n templateQueryIdMap,\n BWPInstanceAliasList,\n BWPInvalidDemensions,\n GetInstanceQueryParams as BWPGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst CDNFilterFields = {\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst CDNFilterFieldsDescriptor = [\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumbermulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst CDN_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...CDNFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n // console.log('item', item, queries);\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Value: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n return params;\n}\n\nconst CDNInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst CDNInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default CDN_STATE;\nexport {\n CDNFilterFieldsDescriptor,\n templateQueryIdMap,\n CDNInstanceAliasList,\n CDNInvalidDemensions,\n GetInstanceQueryParams as CDNGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\n// export const LBQueryDescriptor = [{\n// key: 'Offset',\n// enDescriptor: 'Offset',\n// cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n// link: '',\n// type: 'inputnumber',\n// min: 0,\n// },\n// {\n// key: 'Limit',\n// enDescriptor: 'Limit',\n// cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为2000',\n// link: '',\n// type: 'inputnumber',\n// min: 1,\n// max: 2000,\n// },\n// {\n// key: 'AddressId',\n// enDescriptor: 'Address Id',\n// cnDescriptor: '标识 EIP 的唯一 ID ',\n// link: '',\n// type: 'inputmulti',\n// }\n// ];\n\nexport const LBFilterDescriptor = [\n {\n key: 'address-id',\n enDescriptor: 'Address ID',\n cnDescriptor: 'EIP 的唯一 ID ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-name',\n enDescriptor: 'Address Name',\n cnDescriptor: 'EIP 名称 ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-ip',\n enDescriptor: 'Address IP',\n cnDescriptor: 'EIP 的 IP 地址 ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-status',\n enDescriptor: 'Address Status',\n cnDescriptor: 'EIP 的状态',\n link: '',\n type: 'select',\n list: [\n { value: 'CREATING', text: 'CREATING' },\n { value: 'BINDING', text: 'BINDING' },\n { value: 'BIND', text: 'BIND' },\n { value: 'UNBINDING', text: 'UNBINDING' },\n { value: 'UNBIND', text: 'UNBIND' },\n { value: 'OFFLINING', text: 'OFFLINING' },\n { value: 'BIND_ENI', text: 'BIND_ENI' },\n ],\n },\n {\n key: 'instance-id',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: 'EIP 绑定的内网 IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'network-interface-id',\n enDescriptor: 'Network Interface ID',\n cnDescriptor: 'EIP 绑定的弹性网卡 ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'is-arrears',\n enDescriptor: 'Arrears',\n cnDescriptor: 'EIP 是否欠费 ',\n link: '',\n type: 'select',\n list: [\n { text: '正常', value: 'FALSE' },\n { text: '欠费', value: 'TRUE' },\n ],\n },\n];\n\n// const LBFilterFields = {\n// \"address-id\": [],\n// \"address-name\": [],\n// \"address-ip\": [],\n// \"address-status \": [],\n// \"instance-id \": [],\n// \"private-ip-address\": [],\n// \"network-interface-id \": [],\n// \"is-arrears \": [],\n// };\n\nconst InstanceKey = 'AddressIds';\nconst LB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'AddressId',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n [InstanceKey]: [''],\n Filters: {\n 'address-id': [],\n 'address-name': [],\n 'address-ip': [],\n 'address-status ': [],\n 'instance-id ': [],\n 'private-ip-address': [],\n 'network-interface-id ': [],\n 'is-arrears ': [],\n },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries[InstanceKey])) {\n const InstanceIds = _.compact(queries[InstanceKey]);\n if (_.uniq(InstanceIds).length > 0) {\n params[InstanceKey] = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst LBInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];\n\n// 维度eip对应于实例中的哪个字段?映射\nconst LBInvalidDemensions = {\n eip: 'AddressIp',\n};\n\nconst templateQueryIdMap = {\n instance: 'AddressId',\n};\n// 从monitor维度到LB实例对应字段的映射\n// export const metric2Instance = {\n// functionName: 'FunctionName',\n// namespace: 'Namespace'\n// };\n\nexport default LB_STATE;\nexport {\n LBInstanceAliasList,\n LBInvalidDemensions,\n templateQueryIdMap,\n GetInstanceQueryParams as LBGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\n// export const LBDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import _ from 'lodash';\n\nconst NATGATEWAYInstanceAliasList = ['NatGatewayId', 'NatGatewayName'];\n\nconst NATGatewayFilterFields = {\n 'nat-gateway-id': [],\n 'nat-gateway-name': [],\n 'vpc-id': [],\n};\n\nconst NATGatewayFilterFieldsDescriptor = [\n {\n key: 'nat-gateway-id',\n enDescriptor: 'NatGateway ID',\n cnDescriptor: 'NAT网关统一 ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'nat-gateway-name',\n enDescriptor: 'NatGateway Name',\n cnDescriptor: 'NatGateway Name',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC ID',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst NATGATEWAY_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'NatGatewayId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n NatGatewayIds: [''],\n Filters: { ...NATGatewayFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.NatGatewayIds)) {\n const NatGatewayIds = _.compact(queries.NatGatewayIds);\n if (_.uniq(NatGatewayIds).length > 0) {\n params.InstanceIds = _.uniq(NatGatewayIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst templateQueryIdMap = {\n instance: 'NatGatewayId',\n};\n\nconst NATInvalidDemensions = {\n natId: 'NatGatewayId',\n};\n\nexport default NATGATEWAY_STATE;\nexport {\n NATGatewayFilterFieldsDescriptor,\n NATGATEWAYInstanceAliasList,\n templateQueryIdMap,\n NATInvalidDemensions,\n GetInstanceQueryParams as NATGATEWAYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst CDNFilterFields = {\n origin: [],\n domain: [],\n resourceId: [],\n status: [],\n serviceType: [],\n projectId: [],\n domainType: [],\n fullUrlCache: [],\n https: [],\n originPullProtocol: [],\n tagKey: [],\n};\n\nconst OVCDNFilterFieldsDescriptor = [\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumbermulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst OVCDN_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...CDNFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Value: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n return params;\n}\n\nconst OVCDNInstanceAliasList = ['Domain', 'ResourceId'];\n\nconst OVCDNInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default OVCDN_STATE;\nexport {\n OVCDNFilterFieldsDescriptor,\n OVCDNInstanceAliasList,\n templateQueryIdMap,\n OVCDNInvalidDemensions,\n GetInstanceQueryParams as OVCDNGetInstanceQueryParams,\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__67__;","module.exports = __WEBPACK_EXTERNAL_MODULE__68__;","import _ from 'lodash';\n\nconst TKE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n conditions: [],\n groupBys: '',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: true,\n ClusterIds: [''],\n Filters: {\n ClusterName: [],\n ClusterType: [],\n ClusterStatus: [],\n 'tag-key': [],\n },\n },\n};\n\nconst TKEFilterFieldsDescriptor = [\n {\n key: 'ClusterName',\n enDescriptor: 'Cluster Name',\n cnDescriptor: '集群名',\n link: '',\n type: 'input',\n },\n {\n key: 'ClusterType',\n enDescriptor: 'Cluster Type',\n cnDescriptor: '集群类型',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ClusterStatus',\n enDescriptor: 'Cluster Status',\n cnDescriptor: '集群状态',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Tags',\n enDescriptor: 'Tags',\n cnDescriptor: '标签键值对',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC',\n cnDescriptor: 'VPC',\n link: '',\n type: 'input',\n },\n {\n key: 'tag-key',\n enDescriptor: 'Tag Key',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'tag-value',\n enDescriptor: 'Tag Value',\n cnDescriptor: '标签值',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst TKEInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nexport default TKE_STATE;\n\nexport { TKEFilterFieldsDescriptor, TKEInstanceAliasList, GetInstanceQueryParams as TKEGetInstanceQueryParams };\n","import {\n APIGATEWAYInstanceAliasList,\n APIGATEWAYInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = APIGATEWAYInstanceAliasList;\n InvalidDimensions = APIGATEWAYInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'apigateway',\n action: 'DescribeServicesStatus',\n responseField: 'ServiceSet',\n };\n\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async getEnvironmentNameList(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeServiceEnvironmentList' }\n );\n },\n {\n ServiceId: instanceId,\n },\n 'EnvironmentList'\n );\n const [rs] = res;\n return rs;\n }\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'DescribeServiceEnvironmentList') {\n const rs = await this.getEnvironmentNameList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.environmentName];\n return {\n text: o[this.templateQueryIdMap.environmentName],\n value: o[this.templateQueryIdMap.environmentName],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.environmentList, rs);\n return result;\n }\n return [];\n }\n}\n","import {\n BMINTRALBInstanceAliasList,\n BMINTRALBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n isValidMetric,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMINTRALBInstanceAliasList;\n InvalidDimensions = BMINTRALBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmlb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n interceptor: {\n request: (params) => ({\n ...params,\n LoadBalancerType: 'internal',\n }), // 设置一些请求参数的 默认值\n },\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return item;\n }\n return null;\n })\n );\n }\n}\n","import { BMLBInstanceAliasList, CPMInvalidDemensions, namespace, templateQueryIdMap, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMLBInstanceAliasList;\n InvalidDimensions = CPMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmlb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n interceptor: {\n request: (params) => ({\n ...params,\n LoadBalancerType: 'open',\n }), // 设置一些请求参数的 默认值\n },\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return item;\n }\n return null;\n })\n );\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n}\n","import {\n BMPCXInstanceAliasList,\n BMPCXInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMPCXInstanceAliasList;\n InvalidDimensions = BMPCXInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmvpc',\n action: 'DescribeVpcPeerConnections',\n responseField: 'VpcPeerConnectionSet',\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n}\n","import { BWPInstanceAliasList, BWPInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class BWPDatasource extends BaseDatasource {\n Namespace = 'QCE/BWP';\n InstanceAliasList = BWPInstanceAliasList;\n InvalidDimensions = BWPInvalidDemensions;\n templateQueryIdMap = {\n instance: 'BandwidthPackageId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeBandwidthPackages',\n responseField: 'BandwidthPackageSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { CBSInstanceAliasList, CBSInvalidDemensions, namespace, templateQueryIdMap, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CBSInstanceAliasList;\n InvalidDimensions = CBSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cbs',\n action: 'DescribeDisks',\n responseField: 'DiskSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.filter(rawSet, isValidMetric);\n }\n}\n","import _ from 'lodash';\nimport { CDBInstanceAliasList, CDBInvalidDemensions, isValidMetric, modifyDimensons, templateQueryIdMap } from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDBDatasource extends BaseDatasource {\n Namespace = 'QCE/CDB';\n InstanceAliasList = CDBInstanceAliasList;\n InvalidDimensions = CDBInvalidDemensions;\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'cdb',\n action: 'DescribeDBInstances',\n responseField: 'Items',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return modifyDimensons(item);\n }\n return null;\n })\n );\n }\n /**\n * 获取 可用区\n * @param region 地域信息\n */\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.ZoneId, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n // 仅对维度组合是InstanceId和InstanceType的指标,其他指标不支持\n getDefaultInsObj(ins: string) {\n return {\n [templateQueryIdMap.instance]: ins,\n InstanceType: 1,\n }\n }\n}\n","import _ from 'lodash';\nimport { CDNInstanceAliasList, CDNInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDNDatasource extends BaseDatasource {\n Namespace = 'QCE/CDN';\n InstanceAliasList = CDNInstanceAliasList;\n InvalidDimensions = CDNInvalidDemensions;\n templateQueryIdMap = {\n instance: 'Domain',\n };\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import { CDNPROVINCEInstanceAliasList, CDNPROVINCEInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CDNPROVINCEInstanceAliasList;\n InvalidDimensions = CDNPROVINCEInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n extrasAlias = ['isp', 'district'];\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n async getConsumerList(params: any) {\n const { region, field } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'cdn');\n\n // 从分页数据,获取全量数据\n const rs = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Name: field,\n },\n },\n serviceInfo.service,\n { action: 'DescribeMapInfo' }\n );\n return (rs.MapInfoList || []).map((o) => {\n return {\n text: o.Name,\n value: o.Name,\n };\n });\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n if (action === 'DescribeMapInfo') {\n const { name: field } = query;\n const rs = await this.getConsumerList({ region, field });\n return rs;\n }\n return [];\n }\n}\n","import {\n CEIPSUMMARYInstanceAliasList,\n CEIPInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CEIPSUMMARYInstanceAliasList;\n InvalidDimensions = CEIPInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeAddresses',\n responseField: 'AddressSet',\n interceptor: {\n request: (params) => {\n const { Filters } = params;\n if (!Filters) {\n params.Filters = [];\n }\n params.Filters.push({\n Name: 'address-type',\n Values: ['AnycastEIP'],\n });\n return params;\n }, // 设置一些请求参数的 默认值\n // response: (data: unknown[]) =>[\n // {\n // AddressId: 'AddressId',\n // AddressIp: '111.22.3.4'\n // },\n // ],\n },\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n // async getInstances(region, params = {}) {\n // const rawSet = await super.getInstances(region, params);\n // return rawSet.filter((item) => item.AddressType === 'AnycastEIP');\n // }\n\n // async getVariableInstances(region, query = {}) {\n // const rawSet = await super.getVariableInstances(region, query);\n // return rawSet.filter((item) => item.AddressType === 'AnycastEIP');\n // }\n}\n","import { CESInstanceAliasList, CESInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CESInstanceAliasList;\n InvalidDimensions = CESInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'es',\n action: 'DescribeInstances',\n responseField: 'InstanceList',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\nimport { CFSInstanceAliasList, CFSInvalidDemensions, regionSupported } from './query_def';\nimport { t } from '../../../locale'\nexport default class CFSDatasource extends BaseDatasource {\n InstanceKey: string;\n Namespace: string;\n InstanceAliasList: string[];\n InvalidDimensions: Record;\n templateQueryIdMap = {\n instance: 'FileSystemId',\n };\n extrasAlias = ['version'];\n InstanceReqConfig: { service?: string | undefined; action: string; responseField: string };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n\n this.Namespace = 'QCE/CFS';\n this.InstanceAliasList = CFSInstanceAliasList;\n this.InvalidDimensions = CFSInvalidDemensions;\n this.InstanceReqConfig = {\n service: 'cfs',\n action: 'DescribeCfsFileSystems',\n responseField: 'FileSystems',\n };\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n}\n","import _, { flattenDeep } from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n CKAFKAInstanceAliasList,\n CKAFKATopicAliasList,\n CKAFKAInvalidDemensions,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\n\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class CKFKADatasource extends BaseDatasource {\n Namespace = 'QCE/CKAFKA';\n InstanceAliasList = CKAFKAInstanceAliasList;\n TopicAliasList = CKAFKATopicAliasList;\n InvalidDimensions = CKAFKAInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'ckafka',\n action: 'DescribeInstances',\n responseField: 'InstanceList',\n };\n extraMetricDims = ['topicId'];\n // extrasAlias = ['topicId', 'consumerGroup', 'partition'];\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n consumerGroupCache = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getConsumerGroups(region, params) {\n const serviceInfo = GetServiceAPIInfo(region, 'ckafka');\n let { InstanceId, groupname = '', topicid = '' } = params;\n groupname = this.getVariable(groupname); // 将模板转换为真实值\n topicid = this.getVariable(topicid); // 将模板转换为真实值\n try {\n groupname = JSON.parse(groupname)[templateQueryIdMap.groupName];\n topicid = JSON.parse(topicid)[templateQueryIdMap.topicId];\n } catch (e) {}\n let consumerGoup = this.consumerGroupCache[InstanceId];\n if (!consumerGoup) {\n // 从分页数据,获取全量数据\n consumerGoup = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeConsumerGroup' }\n );\n },\n _.pick(params, 'InstanceId'),\n ['GroupListForMonitor', 'TopicListForMonitor', 'PartitionListForMonitor', 'GroupList']\n );\n // topick数据从DescribeTopic\n const topicList = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeTopic' }\n );\n },\n _.pick(params, 'InstanceId'),\n ['TopicList']\n );\n consumerGoup[1] = flattenDeep(topicList);\n console.log({ consumerGoup, topicList });\n this.consumerGroupCache[InstanceId] = consumerGoup;\n }\n\n let [GroupList, TopicList, PartitionList, GroupDetailList] = consumerGoup;\n // 无重复数组\n TopicList = _.uniqBy(TopicList, (item) => (item as any).TopicId);\n GroupList = _.uniqBy(GroupList, (item) => (item as any).GroupName);\n PartitionList = _.uniqBy(PartitionList, (item) => (item as any).PartitionId);\n GroupDetailList = _.uniqBy(GroupDetailList, (item) => (item as any).ConsumerGroupName);\n // 如果传入消费者信息,consumergroupname,获取该用户的订阅信息列表\n const SubscribedInfos = GroupDetailList.find((d) => d.ConsumerGroupName === groupname)?.SubscribedInfo || [];\n // 这里为了兼容PartitonList格式,最后转化为数组对象的方式\n const partitions =\n SubscribedInfos.find((sub) => sub.TopicId === topicid)?.Partition?.map((p) => ({\n [templateQueryIdMap.partition]: p,\n })) || [];\n return {\n GroupList,\n TopicList:\n SubscribedInfos.length > 0\n ? SubscribedInfos.map(({ TopicId, TopicName }) => ({ TopicId, TopicName }))\n : TopicList,\n PartitionList: partitions.length > 0 ? partitions : PartitionList,\n };\n }\n formatTopicVarDisplay(topic: Record, displayTpl: string | undefined, topicAlias: string) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !this.TopicAliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(topic, b);\n });\n }\n return this.getAliasValue(topic, topicAlias);\n }\n // 查询指标下的数据\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n let { topicalias, groupname, topicid } = query;\n const result = await this.getConsumerGroups(region, {\n InstanceId: instance.InstanceId,\n groupname,\n topicid,\n });\n let { display } = query;\n const { TopicList, GroupList, PartitionList } = result;\n topicalias = this.TopicAliasList.includes(topicalias) ? topicalias : this.templateQueryIdMap.topicId;\n\n const rs = {\n GroupList: GroupList.map((group) => {\n group._InstanceAliasValue = group.GroupName;\n return {\n text: group.GroupName,\n value: group[templateQueryIdMap.groupName],\n };\n }),\n TopicList: TopicList.map((topic) => {\n const topicAlias = this.formatTopicVarDisplay(topic, display, topicalias);\n topic._InstanceAliasValue = topicAlias || topic[templateQueryIdMap.topicId];\n return {\n text: topicAlias || topic[templateQueryIdMap.topicId],\n value: topic[templateQueryIdMap.topicId], // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去\n TopicName: topic.TopicName,\n };\n }),\n PartitionList: PartitionList.map((par) => {\n par._InstanceAliasValue = par[templateQueryIdMap.partition];\n return {\n text: par[templateQueryIdMap.partition],\n value: par[templateQueryIdMap.partition],\n };\n }),\n };\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.TopicList, TopicList);\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.GroupList, GroupList);\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.PartitionList, PartitionList);\n // console.log({ res1, res2, res3 });\n // console.log({rs});\n // 根据action返回指定的维度数据列表\n switch (action) {\n case 'DescribeTopicList':\n return rs.TopicList;\n case 'DescribeGroup':\n return rs.GroupList;\n case 'DescribePartion':\n return rs.PartitionList;\n default:\n return [];\n }\n }\n\n // async getOtherAlias(datapoints) {\n // let dimension;\n // for(let j = 0; j < datapoints.Dimensions.length; j++){\n // if(datapoints.Dimensions[j] !== 'InstanceName'){\n // dimension.push(datapoints.Dimensions[j])\n // }\n // }\n // console.log(dimension);\n\n // return dimension\n // }\n}\n","import {\n InstanceAliasList,\n LOADBALANCEListenerAliasList,\n LOADBALANCEServerAliasList,\n LOADBALANCEVALIDDIMENSIONS,\n templateQueryIdMap,\n keyInStorage,\n CANDIATEDIMENSIONS,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class DCDatasource extends BaseDatasource {\n // Namespace = namespace;\n InstanceAliasList = InstanceAliasList;\n ListenerAliasList = LOADBALANCEListenerAliasList;\n ServerAliasList = LOADBALANCEServerAliasList;\n CandiateDimensions = CANDIATEDIMENSIONS;\n // InvalidDimensions = LOADBALANCEVALIDDIMENSIONS;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n // InstanceReqConfig = {\n // service: 'clb',\n // action: 'DescribeLoadBalancers',\n // responseField: 'LoadBalancerSet',\n // };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getInvalidDimensions(selfIns: any, tagret: any) {\n if (selfIns.service === 'lbPrivate' || (selfIns.service === 'lbPublic' && tagret.servers))\n return { ...LOADBALANCEVALIDDIMENSIONS, vpcId: 'NumericalVpcId' };\n return LOADBALANCEVALIDDIMENSIONS;\n }\n getInstanceReqConfig(selfIns: any) {\n const res: any = {\n service: 'clb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n if (selfIns.service === 'lbPrivate' || selfIns.service === 'loadBalance') {\n res.interceptor = {\n request: (param) => ({ ...param, LoadBalancerType: 'INTERNAL' }),\n };\n }\n if (selfIns.service === 'lbPublic') {\n res.interceptor = {\n request: (param) => ({ ...param, LoadBalancerType: 'OPEN' }),\n };\n }\n return res;\n }\n async getListenerList(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'clb');\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeListeners' }\n );\n },\n {\n LoadBalancerId: instanceId,\n },\n 'Listeners'\n );\n const [rs] = res;\n return rs;\n }\n formatVariableDisplay(data: Record, displayTpl: string | undefined, alias: string, aliasList: string[]) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !aliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(data, b);\n });\n }\n return this.getAliasValue(data, alias);\n }\n async getServerList(params: any) {\n const { region, instanceId, listenerId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'clb');\n\n const res = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { LoadBalancerId: instanceId, ListenerIds: [listenerId] },\n },\n serviceInfo.service,\n { region, action: 'DescribeTargets' }\n );\n const { Listeners } = res;\n const serversList = _.reduce(\n Listeners,\n (prev, item) => {\n const { Rules, Targets } = item;\n if (!_.isEmpty(Rules)) {\n return _.concat(prev, _.flatten(_.map(Rules, (elem) => (_.isEmpty(elem.Targets) ? [] : elem.Targets))));\n }\n if (!_.isEmpty(Targets)) {\n return _.concat(prev, Targets);\n }\n return prev;\n },\n []\n );\n return serversList;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const { display } = query;\n if (action === 'DescribeListeners') {\n const rs = await this.getListenerList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n let { listeneralias } = query;\n listeneralias = this.ListenerAliasList.includes(listeneralias) ? listeneralias : this.templateQueryIdMap.listener;\n const result = rs.flatMap((o) => {\n const listenAlias = this.formatVariableDisplay(o, display, listeneralias, this.ListenerAliasList);\n const lisId = o[this.templateQueryIdMap.listener];\n o._InstanceAliasValue = listenAlias || lisId;\n // if (!o[listeneralias]) return [];\n return {\n text: listenAlias || lisId,\n value: lisId,\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.listener, rs);\n return result;\n }\n if (action === 'DescribeServer' || action === 'DescribeServerPort') {\n const { listenerid, serverprivateip, serveralias } = query;\n const serverPrivateIp = this.getVariable(serverprivateip);\n const serversList = await this.getServerList({\n region,\n instanceId: instance[this.templateQueryIdMap.instance],\n listenerId: this.getVariable(listenerid),\n });\n const serverAlias = this.ServerAliasList.includes(serveralias) ? serveralias : this.templateQueryIdMap.servers;\n const result = _.chain(serversList)\n .filter((item) => {\n if (action === 'DescribeServer') {\n return true;\n }\n return serverPrivateIp === _.get(item, 'PrivateIpAddresses.0');\n })\n .map((item) => {\n const alias = this.formatVariableDisplay(item, display, serverAlias, this.ServerAliasList);\n const id = item[this.templateQueryIdMap.servers][0];\n item._InstanceAliasValue = alias || id;\n return action === 'DescribeServer'\n ? {\n text: alias || id,\n value: id,\n }\n : {\n text: `${_.get(item, 'Port')}`,\n value: _.get(item, 'Port'),\n };\n })\n .value();\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.servers, serversList);\n return action === 'DescribeServer' ? result : _.uniqBy(result, 'text');\n }\n return [];\n }\n}\n","import {\n CLSInstanceAliasList,\n CLSInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CLSInstanceAliasList;\n InvalidDimensions = CLSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cls',\n action: 'DescribeTopics',\n responseField: 'Topics',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n // async getInstances(region, params = {}) {\n // const superRes = await super.getInstances(region, params);\n // console.log({ superRes });\n // }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n}\n","import { BaseDatasource } from '../_base/datasource';\nimport { InvalidDemensions, InstanceAliasList, templateQueryIdMap } from './query_def';\n\nexport default class CmqDatasource extends BaseDatasource {\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'cmq',\n action: 'DescribeQueueDetail',\n responseField: 'QueueSet',\n };\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawMetric = await super.getMetrics(region);\n return rawMetric.map((metric) => {\n let dims = metric.Dimensions[0].Dimensions;\n dims = Array.from(new Set([...dims, 'queueId', 'queueName']));\n metric.Dimensions[0].Dimensions = dims;\n return metric;\n });\n }\n}\n","import { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n InvalidDemensions,\n InstanceAliasList,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class CmqTopicDatasource extends BaseDatasource {\n Namespace = 'QCE/CMQTOPIC';\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'cmq',\n action: 'DescribeTopicDetail',\n responseField: 'TopicSet',\n };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n extraMetricDims = ['subscriptionId']; // 多选\n\n async fetchAllSubscription(region: string, params: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'cmq');\n // console.log(serviceInfo, 'serviceinfo');\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeSubscriptionDetail' }\n );\n },\n params,\n 'SubscriptionSet'\n );\n\n return rs[0];\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n let result;\n switch (action) {\n case 'DescribeSubscriptionDetail':\n result = await this.fetchAllSubscription(region, { TopicName: instance.TopicName });\n // eslint-disable-next-line no-case-declarations\n const rs = result.map((item) => {\n item._InstanceAliasValue = item.SubscriptionId;\n return { text: item.SubscriptionId, value: item[templateQueryIdMap.subscription] };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.subscriptionId, result);\n return rs;\n default:\n return [];\n }\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawMetric = await super.getMetrics(region);\n return rawMetric.map((metric) => {\n let dims = metric.Dimensions[0].Dimensions;\n dims.push('topicId');\n if (['NumOfNotify', 'NumOfSuccNotify'].includes(metric.MetricName)) {\n dims.push('subscriptionId');\n }\n\n dims = Array.from(new Set(dims));\n metric.Dimensions[0].Dimensions = dims;\n return metric;\n });\n }\n}\n","import { BaseDatasource } from '../_base/datasource';\n\ninterface BucketListResult {\n Owner: { ID: 'string'; DisplayName: 'string' };\n Buckets: { Name: string; Region: string }[];\n}\n\nexport default class CosDatasource extends BaseDatasource {\n InvalidDimensions: Record = {};\n InstanceAliasList: string[] = ['BucketName'];\n templateQueryIdMap = {\n instance: 'BucketName',\n };\n InstanceReqConfig = {} as any; // 不必要的配置\n cosURL: string;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n this.cosURL = `/api/datasources/${this.instanceSettings.id}/resources/tc_cos_list`;\n }\n async getInstances(region: string) {\n return this.backendSrv\n .datasourceRequest({\n url: this.cosURL,\n method: 'GET',\n params: { region },\n headers: { 'Content-Type': 'application/json' },\n })\n .then((res) => {\n let { data }: { data: BucketListResult } = res;\n data = data || ({} as any);\n let { Buckets } = data;\n Buckets = Buckets || [];\n\n // name contains appid,see detail https://cloud.tencent.com/document/product/436/8291\n return Buckets.map((item) => ({\n ...item,\n BucketName: item.Name,\n bucket: item.Name,\n appid: item.Name.split('-').slice(-1)[0],\n }));\n });\n }\n\n async getVariableInstances(region) {\n return this.getInstances(region);\n }\n}\n","import {\n CPMInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CPMInstanceAliasList;\n InvalidDimensions = CPMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bm',\n action: 'DescribeDevices',\n responseField: 'DeviceInfoSet',\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n\n getFilterDropdown({ field, region }) {\n if (field === 'DeviceClassCode') {\n const serviceInfo = GetServiceAPIInfo(region, 'bm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n 'bm',\n { region, action: 'DescribeDeviceClass' }\n ).then((response) => {\n return _.map(response.DeviceClassSet || [], (item) => {\n return { text: item.DeviceClassCode, value: item.DeviceClassCode };\n });\n });\n }\n return [];\n }\n}\n","import _ from 'lodash';\nimport { CVMInstanceAliasList, isValidMetric, modifyDimensons } from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CVMDatasource extends BaseDatasource {\n Namespace = 'QCE/CVM';\n InstanceAliasList = CVMInstanceAliasList;\n InvalidDimensions = {};\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'cvm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return modifyDimensons(item);\n }\n return null;\n })\n );\n }\n\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'cvm' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'api');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { Product: 'cvm' },\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n}\n","import {\n CYNOSDBMYSQLInstanceAliasList,\n CYNOSDBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n checkKeys,\n} from './query_def';\nimport _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\n// import { t } from '../../../locale';\n\nexport default class CYNOSDBMYSQLDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CYNOSDBMYSQLInstanceAliasList;\n InvalidDimensions = CYNOSDBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n checkKeys = checkKeys;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cynosdb',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n // getRegions() {\n // return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n // }\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'cynosdbmysql' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n // 仅对维度组合是InstanceId的指标,其他指标不支持\n getDefaultInsObj(ins: string) {\n return {\n [templateQueryIdMap.instance]: ins,\n }\n }\n}\n","import { DCInstanceAliasList, DCInvalidDemensions, namespace, modifyDimensons } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCInstanceAliasList;\n InvalidDimensions = DCInvalidDemensions;\n templateQueryIdMap = {\n instance: 'DirectConnectId',\n };\n InstanceReqConfig = {\n service: 'dc',\n action: 'DescribeDirectConnects',\n responseField: 'DirectConnectSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import {\n DCDBInstanceAliasList,\n DCDBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCDBInstanceAliasList;\n InvalidDimensions = DCDBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'dcdb',\n action: 'DescribeDCDBInstances',\n responseField: 'Instances',\n };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n extraActionMap = {\n DescribeDCDBShards: {\n service: 'dcdb',\n action: 'DescribeDCDBShards',\n responseField: 'Shards',\n pickKey: 'ShardInstanceId',\n },\n DescribeDCDBInstanceNodeInfo: {\n service: 'dcdb',\n action: 'DescribeDCDBInstanceNodeInfo',\n responseField: 'NodesInfo',\n pickKey: 'NodeId',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion, 入参的region用广州\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/dcdb',\n },\n 'dcdb',\n { action: 'DescribeDCDBSaleInfo', region: 'ap-guangzhou' }\n ).then((response) => {\n return _.map(response.RegionList || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n RegionState: item.RegionState,\n };\n });\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n InstanceId: instance[this.templateQueryIdMap.instance],\n Limit: 100,\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import { DCGInstanceAliasList, DCGInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCGInstanceAliasList;\n InvalidDimensions = DCGInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeDirectConnectGateways',\n responseField: 'DirectConnectGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { DCXInstanceAliasList, DCXInvalidDemensions, namespace, modifyDimensons } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCXDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCXInstanceAliasList;\n InvalidDimensions = DCXInvalidDemensions;\n templateQueryIdMap = {\n instance: 'DirectConnectTunnelId',\n };\n InstanceReqConfig = {\n service: 'dc',\n action: 'DescribeDirectConnectTunnels',\n responseField: 'DirectConnectTunnelSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import { BaseDatasource } from '../_base/datasource';\nimport {\n ECDNInstanceAliasList,\n ECDNInvalidDemensions,\n modifyDimensons,\n namespace,\n templateQueryIdMap,\n} from './query_def';\n\nexport default class ECDNDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECDNInstanceAliasList;\n InvalidDimensions = ECDNInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'ecdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import {\n ECMInstanceAliasList,\n ECMInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMInstanceAliasList;\n InvalidDimensions = ECMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import {\n ECMBLOCKSTORAGEInstanceAliasList,\n ECMBLOCKSTORAGEInvalidDemensions,\n namespace,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMBLOCKSTORAGEInstanceAliasList;\n InvalidDimensions = ECMBLOCKSTORAGEInvalidDemensions;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n templateQueryIdMap = templateQueryIdMap;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getDiskList(params: any) {\n const { payload } = params;\n const { InstanceId } = payload;\n const instanceCache = await instanceStorage.getInstance(this.service);\n const instanceObj: any =\n _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === InstanceId)) ?? {};\n const { DataDisks: dataDisks } = instanceObj;\n return dataDisks;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n InstanceId: instance,\n Limit: 100,\n };\n const rs = await this.getDiskList({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.diskId];\n return {\n text: o[this.templateQueryIdMap.diskId],\n value: o[this.templateQueryIdMap.diskId],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.diskId, rs);\n return result;\n }\n}\n","import { ECMLBInstanceAliasList, ECMLBInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMLBInstanceAliasList;\n InvalidDimensions = ECMLBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import {\n GSEInstanceAliasList,\n GSEInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n keyInStorage,\n queryMonitorExtraConfg,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = GSEInstanceAliasList;\n InvalidDimensions = GSEInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'gse',\n action: 'DescribeInstances',\n responseField: 'Instances',\n };\n\n keyInStorage = keyInStorage;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n async getQueueNameList(params: any) {\n const { region } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeGameServerSessionQueues' }\n );\n },\n {},\n 'GameServerSessionQueues'\n );\n const [rs] = res;\n return rs;\n }\n async getFleetList(params: any) {\n const { region } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'ListFleets' }\n );\n },\n {},\n 'FleetIds'\n );\n const [rs] = res;\n return rs.map((r) => ({ [this.templateQueryIdMap.FleetId]: r }));\n }\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'DescribeGameServerSessionQueues') {\n const rs = await this.getQueueNameList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.Name];\n return {\n text: o[this.templateQueryIdMap.Name],\n value: o[this.templateQueryIdMap.Name],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.queue, rs);\n return result;\n }\n if (action === 'ListFleets') {\n const rs = await this.getFleetList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.FleetId];\n return {\n text: o[this.templateQueryIdMap.FleetId],\n value: o[this.templateQueryIdMap.FleetId],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.fleet, rs);\n return result;\n }\n return [];\n }\n}\n","import _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\nimport { LBInstanceAliasList, LBInvalidDemensions } from './query_def';\n\nexport default class SCFDatasource extends BaseDatasource {\n Namespace = 'QCE/LB';\n InstanceAliasList = LBInstanceAliasList;\n InvalidDimensions = LBInvalidDemensions;\n templateQueryIdMap = {\n instance: 'AddressId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeAddresses',\n responseField: 'AddressSet',\n interceptor: {\n request: (params) => {\n const { Filters } = params;\n if (!Filters) {\n params.Filters = [];\n }\n params.Filters.push({\n Name: 'address-type',\n Values: ['EIP'],\n });\n return params;\n }, // 设置一些请求参数的 默认值\n },\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) =>\n /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */\n item.Dimensions?.[0]?.Dimensions?.includes('eip')\n );\n }\n\n // async getInstances(region, params = {}) {\n // const rawSet = await super.getInstances(region, params);\n // /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */\n // return rawSet.filter((item) => item.AddressType === 'EIP');\n // }\n\n // async getVariableInstances(region, query = {}) {\n // const rawSet = await super.getVariableInstances(region, query);\n // return rawSet.filter((item) => item.AddressType === 'EIP');\n // }\n}\n","import _ from 'lodash';\nimport {\n LIGHTHOUSEInstanceAliasList,\n templateQueryIdMap,\n LighthouseInvalidDemensions,\n modifyDimensons,\n} from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class LighthouseDatasource extends BaseDatasource {\n Namespace = 'QCE/LIGHTHOUSE';\n InstanceAliasList = LIGHTHOUSEInstanceAliasList;\n InvalidDimensions = LighthouseInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'lighthouse',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'lighthouse' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'api');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { Product: 'lighthouse' },\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n}\n","import _ from 'lodash';\nimport {\n MONGODBInstanceAliasList,\n MONGODBInvalidDemensions,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class MONGODBDatasource extends BaseDatasource {\n Namespace = 'QCE/CMONGO';\n InstanceAliasList = MONGODBInstanceAliasList;\n ReplicaAliasList = ['ReplicaSetId', 'ReplicaSetName'];\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n\n InstanceReqConfig = {\n service: 'mongodb',\n action: 'DescribeDBInstances',\n responseField: 'InstanceDetails',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getInvalidDimensions(selfIns: any, target: any) {\n if (target.node && target.node !== '') {\n return { target: 'Node' };\n }\n if (target.replica && target.replica !== '') {\n return { target: 'Replica' };\n }\n return MONGODBInvalidDemensions;\n }\n formatVariableDisplay(data: Record, displayTpl: string | undefined, alias: string, aliasList: string[]) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !aliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(data, b);\n });\n }\n return this.getAliasValue(data, alias);\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const { display } = query;\n if (action === 'DescribeReplicas') {\n const [res] = await this.getInstances(region, { InstanceIds: [instance[this.templateQueryIdMap.instance]] });\n let { replicaalias } = query;\n replicaalias = this.ReplicaAliasList.includes(replicaalias) ? replicaalias : this.templateQueryIdMap.replica;\n const result = _.map(_.get(res, 'ReplicaSets', []), (item) => {\n const replicaAlias = this.formatVariableDisplay(item, display, replicaalias, this.ReplicaAliasList);\n item._InstanceAliasValue = replicaAlias || item[this.templateQueryIdMap.replica];\n return { text: item.ReplicaSetId, value: item.ReplicaSetId };\n });\n await instanceStorage.setExtraStorage(\n this.service,\n this.queryMonitorExtraConfg.Replica.dim_KeyInStorage,\n _.get(res, 'ReplicaSets', [])\n );\n return result;\n }\n if (action === 'DescribeReplicaNodes') {\n const [res] = await this.getInstances(region, { InstanceIds: [instance[this.templateQueryIdMap.instance]] });\n const { replicasetid } = query;\n const targetReplica = _.find(_.get(res, 'ReplicaSets', []), { ReplicaSetId: this.getVariable(replicasetid) });\n let result = _.times(targetReplica.SecondaryNum, (index) => {\n const nodeId = `${targetReplica.ReplicaSetId}-node-slave${index}`;\n return { text: nodeId, value: nodeId };\n });\n if (targetReplica) {\n result = [\n { text: `${targetReplica.ReplicaSetId}-node-primary`, value: `${targetReplica.ReplicaSetId}-node-primary` },\n ...result,\n ];\n }\n await instanceStorage.setExtraStorage(\n this.service,\n this.queryMonitorExtraConfg.Node.dim_KeyInStorage,\n result.map((item) => ({ NodeId: item.value, _InstanceAliasValue: item.value }))\n );\n return result;\n }\n\n return [];\n }\n}\n","import { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n InvalidDemensions,\n InstanceAliasList,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class MrHdfsDatasource extends BaseDatasource {\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n extrasAlias = [];\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n InstanceReqConfig = {\n service: 'emr',\n action: 'DescribeInstances',\n responseField: 'ClusterList',\n interceptor: {\n request: (params) => ({\n ...params,\n DisplayStrategy: params.DisplayStrategy || 'monitorManage',\n ProjectId: params.ProjectId || -1,\n }), // 设置一些请求参数的 默认值\n response: (data: any[]) => data.map(({ ClusterId, ClusterName }) => ({ ClusterId, ClusterName })),\n },\n };\n\n async fetchAllNodes(region: string, params: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'emr');\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeClusterNodes' }\n );\n },\n { ...params, isOffsetPage: true },\n 'NodeList'\n );\n\n // return rs[0].map((item) => ({ text: item.Ip, value: item.Ip }));\n return rs[0];\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n let result;\n switch (action) {\n case 'DescribeClusterNodes': {\n const resultT = await this.fetchAllNodes(region, { InstanceId: instance.ClusterId, NodeFlag: 'all' });\n result = resultT.map((item) => {\n item._InstanceAliasValue = item[templateQueryIdMap.node];\n return { text: item[templateQueryIdMap.node], value: item[templateQueryIdMap.node] };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.node, resultT);\n\n return result;\n }\n default:\n return [];\n }\n }\n}\n","import _ from 'lodash';\nimport { NATGATEWAYInstanceAliasList, NATInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class NATGATEWAYDatasource extends BaseDatasource {\n Namespace = 'QCE/NAT_GATEWAY';\n InstanceAliasList = NATGATEWAYInstanceAliasList;\n InvalidDimensions = NATInvalidDemensions;\n templateQueryIdMap = {\n instance: 'NatGatewayId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeNatGateways',\n responseField: 'NatGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import _ from 'lodash';\nimport { OVCDNInstanceAliasList, OVCDNInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class OVCDNDatasource extends BaseDatasource {\n Namespace = 'QCE/OV_CDN';\n InstanceAliasList = OVCDNInstanceAliasList;\n InvalidDimensions = OVCDNInvalidDemensions;\n templateQueryIdMap = {\n instance: 'Domain',\n };\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import { PCXInstanceAliasList, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo, GetRequestParamsV2, SliceLength } from '../../common/constants';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = PCXInstanceAliasList;\n InvalidDimensions = {};\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'xx',\n action: 'xx',\n responseField: 'xx',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getInstances(region = 'ap-guangzhou', params = {}) {\n params = { offset: 0, limit: 50, ...params };\n const serviceInfo = GetServiceAPIInfo(region, 'pcx');\n return this.doRequestV2(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcPeeringConnections' }\n ).then((response) => {\n return response.data || [];\n });\n }\n\n /**\n * 模板变量中获取全量的 PCX 实例列表\n * @param region 地域信息\n */\n getVariableInstances(region, query) {\n let result: any[] = [];\n const params = { Offset: 0, Limit: 50, ...query };\n const serviceInfo = GetServiceAPIInfo(region, 'pcx');\n return this.doRequestV2(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcPeeringConnections' }\n ).then((response) => {\n result = response.data || [];\n const total = response.totalCount || 0;\n if (result.length >= total) {\n return result;\n } else {\n const param = SliceLength(total, 50);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getInstances(region, item));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return result;\n })\n .catch((error) => {\n return result;\n });\n }\n });\n }\n\n getVpcId(region, params: any = {}) {\n params = { Offset: 0, Limit: 20, ...params };\n // TODO 等待腾讯云接口查问题\n params.Offset = String(params.Offset);\n params.Limit = String(params.Limit);\n const serviceInfo = GetServiceAPIInfo(region, 'vpc');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcs' }\n ).then((response) => {\n return _.map(response.VpcSet || [], (item) => ({ text: item.VpcId, value: item.VpcId }));\n });\n }\n\n getVpcIds(region) {\n let result: any[] = [];\n const params: any = { Offset: 0, Limit: 100 };\n // TODO 等待腾讯云接口查问题\n params.Offset = String(params.Offset);\n params.Limit = String(params.Limit);\n const serviceInfo = GetServiceAPIInfo(region, 'vpc');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcs' }\n ).then((response) => {\n result = _.map(response.VpcSet || [], (item) => ({ text: item.VpcId, value: item.VpcId }));\n const total = response.TotalCount || 0;\n if (result.length >= total) {\n return result;\n } else {\n const param = SliceLength(total, 100);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getVpcId(region, item));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return result;\n })\n .catch((error) => {\n return result;\n });\n }\n });\n }\n\n /**\n * 腾讯云 API 2.0 请求接口\n * @param options\n * @param service\n * @param signObj\n */\n async doRequestV2(options, service, signObj: any = {}) {\n options = await GetRequestParamsV2(\n options,\n service,\n signObj,\n this.secretId,\n this.instanceSettings.id,\n this.backendSrv\n );\n return this.backendSrv\n .datasourceRequest(options)\n .then((response) => {\n return _.get(response, 'data', {});\n })\n .catch((error) => {\n throw error;\n });\n }\n}\n","import _ from 'lodash';\nimport {\n POSTGRESInstanceAliasList,\n PostgreInvalidDemensions,\n namespace,\n modifyDimensons,\n templateQueryIdMap,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDBDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = POSTGRESInstanceAliasList;\n InvalidDimensions = PostgreInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'postgres',\n action: 'DescribeDBInstances',\n responseField: 'DBInstanceSet',\n };\n\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { get } from 'lodash';\nimport { QAAPInstanceAliasList, QAAPInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class QAAPDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = QAAPInstanceAliasList;\n InvalidDimensions = QAAPInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'gaap',\n action: 'DescribeProxies',\n responseField: 'ProxySet',\n interceptor: {\n // response: (data: unknown[]) =>[\n // {\n // \"NetDetectId\": \"netd-12345678\",\n // },\n // ],\n },\n };\n // MetricReqConfig = {\n // resultFilter: modifyDimensons,\n // };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter(\n (item) =>\n get(item, 'Dimensions.length') === 1 &&\n get(item, 'Dimensions[0].Dimensions.length') === 1 &&\n get(item, 'Dimensions[0].Dimensions[0]') === 'channelId'\n );\n }\n}\n","import _ from 'lodash';\nimport { REDISInstanceAliasList, RedisInvalidDemensions, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class REDISDatasource extends BaseDatasource {\n Namespace = 'QCE/REDIS';\n InstanceAliasList = REDISInstanceAliasList;\n InvalidDimensions = RedisInvalidDemensions;\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'redis',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n interceptor: {\n request: (params) => ({ ...params, MonitorVersion: '1m' }),\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) => isValidMetric(item));\n }\n}\n","import _ from 'lodash';\nimport {\n REDISMEMInstanceAliasList,\n namespace,\n RedisMemInvalidDemensions,\n templateQueryIdMap,\n NodeType,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\n\nexport default class REDISDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = REDISMEMInstanceAliasList;\n InvalidDimensions = RedisMemInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n extrasAlias = [RedisMemInvalidDemensions.pnodeid, RedisMemInvalidDemensions.rnodeid];\n InstanceReqConfig = {\n service: 'redis',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n interceptor: {\n request: (params) => ({ ...params, MonitorVersion: '5s' }),\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getInstanceNodeInfo(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'redis');\n\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeInstanceNodeInfo' }\n );\n },\n {\n InstanceId: instanceId,\n },\n NodeType\n );\n\n return res;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n if (action === 'DescribeInstanceNodeInfo') {\n const rs = await this.getInstanceNodeInfo({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const { nodetype } = query;\n const ndoeTypeIndex = NodeType.indexOf(nodetype);\n return ndoeTypeIndex === -1\n ? []\n : _.map(rs[ndoeTypeIndex], (item) => ({ text: item.NodeId, value: item.NodeId }));\n }\n return [];\n }\n}\n","import _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n SCFInstanceAliasList,\n SCFInvalidDemensions,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n templateQueryIdMap,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class SCFDatasource extends BaseDatasource {\n InstanceKey: string;\n Namespace: string;\n InstanceAliasList: string[];\n InvalidDimensions: Record;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n InstanceReqConfig: { service?: string | undefined; action: string; responseField: string };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n\n this.Namespace = 'QCE/SCF_V2';\n this.InstanceAliasList = SCFInstanceAliasList;\n this.InvalidDimensions = SCFInvalidDemensions;\n this.InstanceReqConfig = {\n service: 'scf',\n action: 'ListFunctions',\n responseField: 'Functions',\n };\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter(\n (item) =>\n /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含functionName的指标 */\n item.Dimensions?.[0]?.Dimensions?.includes('functionName') &&\n item.Dimensions?.[0]?.Dimensions?.includes('namespace') &&\n !item.MetricName.startsWith('Name')\n );\n }\n\n getVersions(region, params) {\n const serviceInfo = GetServiceAPIInfo(region, 'scf');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'ListVersionByFunction' }\n ).then((response) => {\n return response.Versions;\n });\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'ListVersionByFunction') {\n const rs = await this.getVersions(region, { FunctionName: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.version];\n return {\n text: o[this.templateQueryIdMap.version],\n value: o[this.templateQueryIdMap.version],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.version, rs);\n return result;\n }\n return [];\n }\n}\n","import {\n SQLSERVERInstanceAliasList,\n SQLSERVERInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = SQLSERVERInstanceAliasList;\n InvalidDimensions = SQLSERVERInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'sqlserver',\n action: 'DescribeDBInstances',\n responseField: 'DBInstances',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(rawSet.map((item) => modifyDimensons(item)));\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n getFilterDropdown({ field, region }) {\n if (field === 'Zone') {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n return [];\n }\n}\n","import {\n TCAPLUSInstanceAliasList,\n TCAPLUSInvalidDemensions,\n namespace,\n templateQueryIdMap,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TCAPLUSInstanceAliasList;\n InvalidDimensions = TCAPLUSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tcaplusdb',\n action: 'DescribeTables',\n responseField: 'TableInfos',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/tcaplusdb',\n },\n 'tcaplusdb',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n return _.map(response.RegionInfos || [], (item) => {\n return {\n text: t(item.RegionName),\n value: item.RegionName,\n };\n });\n });\n }\n}\n","import {\n TDMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeClusters',\n responseField: 'ClusterSet',\n };\n extraActionMap = {\n DescribeTopics: {\n service: 'tdmq',\n action: 'DescribeTopics',\n responseField: 'TopicSets',\n pickKey: 'TopicName',\n },\n DescribeEnvironments: {\n service: 'tdmq',\n action: 'DescribeEnvironments',\n responseField: 'EnvironmentSet',\n pickKey: 'EnvironmentId',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(rawSet.map((item) => modifyDimensons(item)));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n // console.log({ rs });\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n ClusterId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n if (action === 'DescribeTopics') {\n payload.EnvironmentId = this.getVariable(query['environmentid']);\n }\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import {\n TDMQRABBITMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQRABBITMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeRabbitMQVipInstances',\n responseField: 'Instances',\n };\n extraActionMap = {\n DescribeRabbitMQNodeList: {\n service: 'tdmq',\n action: 'DescribeRabbitMQNodeList',\n responseField: 'NodeList',\n pickKey: 'node',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n InstanceId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import {\n TDMQROCKETMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQROCKETMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeRocketMQClusters',\n responseField: 'ClusterList',\n interceptor: {\n response: (result) =>\n _.map(result, (item) => ({\n ...item,\n ClusterId: _.get(item, 'Info.ClusterId', ''),\n ClusterName: _.get(item, 'Info.ClusterName', ''),\n })),\n },\n };\n extraActionMap = {\n DescribeRocketMQNamespaces: {\n service: 'tdmq',\n action: 'DescribeRocketMQNamespaces',\n responseField: 'Namespaces',\n pickKey: 'namespace',\n },\n DescribeRocketMQGroups: {\n service: 'tdmq',\n action: 'DescribeRocketMQGroups',\n responseField: 'Groups',\n pickKey: 'group',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) => !item.Dimensions?.[0]?.Dimensions?.includes('rmqcluster'));\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n ClusterId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n if (action === 'DescribeRocketMQGroups') {\n payload.NamespaceId = this.getVariable(query['clusternamespace']);\n }\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import { map, flatten, reduce, isEmpty, filter, split, sortBy, findIndex, trim, isArray, isString } from 'lodash';\nimport { GetServiceAPIInfo, ReplaceVariable } from '../../common/constants';\nimport { getTimeShiftInMs } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\n\nconst variableToArray = (variable) => {\n if (isEmpty(variable)) {\n return [];\n }\n if (isArray(variable)) {\n return variable;\n }\n if (isString(variable)) {\n return split(variable, ',').map((item) => trim(item));\n }\n return [];\n};\n\nexport default class TKEDatasource extends BaseDatasource {\n InstanceAliasList = ['ClusterId', 'ClusterName'];\n templateQueryIdMap = {\n instance: 'ClusterId',\n };\n InvalidDimensions = {\n tke_cluster_instance_id: 'ClusterId',\n };\n InstanceReqConfig = {\n service: 'tke',\n action: 'DescribeClusters',\n responseField: 'Clusters',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getMonitorData(params: any, region: any, instances: any, target: any, options: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const timeshift = getTimeShiftInMs(target.timeshift);\n const conditions = reduce(\n target.conditions,\n (prev, item) => {\n if (isEmpty(item.Key) || isEmpty(item.Operator) || isEmpty(item.Value)) {\n return prev;\n }\n return [\n ...filter(prev, (e) => e.Key !== item.Key),\n {\n Key: ReplaceVariable(this.templateSrv, options.scopedVars, item.Key, false),\n Operator: ReplaceVariable(this.templateSrv, options.scopedVars, item.Operator, false),\n Value: variableToArray(ReplaceVariable(this.templateSrv, options.scopedVars, item.Value, true)),\n },\n ];\n },\n [{ Key: 'tke_cluster_instance_id', Operator: '=', Value: instances.map((item) => item['ClusterId']) }]\n );\n\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Period: params.Period,\n MetricNames: [params.MetricName],\n Module: 'monitor',\n Namespace: 'QCE/TKE',\n EndTime: params.EndTime,\n StartTime: params.StartTime,\n Conditions: conditions,\n GroupBys: variableToArray(ReplaceVariable(this.templateSrv, options.scopedVars, target.groupBys, true)),\n },\n },\n serviceInfo.service,\n { action: 'DescribeStatisticData', region }\n ).then((response) => {\n return flatten(\n map(response.Data, (data) => {\n return map(data.Points, (point) => {\n const dimensionSort = sortBy(point.Dimensions, ['Name']);\n const dimensionString = [\n ...dimensionSort.splice(findIndex(dimensionSort, { Name: 'tke_cluster_instance_id' }), 1),\n ...dimensionSort,\n ]\n .map((dimension) => dimension.Value)\n .join(' - ');\n const timeshiftString = timeshift > 0 ? `_${target.timeshift}` : '';\n return {\n target: `${data.MetricName} - ${dimensionString}${timeshiftString}`,\n datapoints: map(point.Values, (value) => [value.Value, value.Timestamp * 1000 + timeshift]),\n };\n });\n })\n );\n });\n }\n}\n","import _ from 'lodash';\nimport { TSFInvalidDemensions, TSFInstanceAliasList, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class TSFDatasource extends BaseDatasource {\n Namespace = 'QCE/TSF';\n InstanceAliasList = TSFInstanceAliasList;\n InvalidDimensions = TSFInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'tsf',\n action: 'DescribeApplications',\n responseField: 'Content',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import {\n VCLBInstanceAliasList,\n VCLBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n clbNamespaceMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VCLBInstanceAliasList;\n InvalidDimensions = VCLBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'clb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async getAllMetrics(region: string) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const { MetricSet: public_metrics } = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: clbNamespaceMap.public,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n );\n const { MetricSet: private_metrics } = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: clbNamespaceMap.private,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n );\n const res = Object.values(_.keyBy(_.concat(private_metrics, public_metrics), 'MetricName'));\n return res.map((t) => modifyDimensons(t));\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await this.getAllMetrics(region);\n return _.compact(rawSet);\n }\n}\n","import { VBCInstanceAliasList, VBCInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VBCInstanceAliasList;\n InvalidDimensions = VBCInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeCcns',\n responseField: 'CcnSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getFilterDropdown({ field }) {\n return super.getRegions();\n }\n}\n","import {\n VPCNETDETECTInstanceAliasList,\n VPCNETInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPCNETDETECTInstanceAliasList;\n InvalidDimensions = VPCNETInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeNetDetects',\n responseField: 'NetDetectSet',\n interceptor: {\n // response: (data: unknown[]) =>[\n // {\n // \"NetDetectId\": \"netd-12345678\",\n // },\n // ],\n },\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { VPNGWInstanceAliasList, VPNGWInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPNGWInstanceAliasList;\n InvalidDimensions = VPNGWInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeVpnGateways',\n responseField: 'VpnGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getFilterDropdown({ field, region }) {\n if (field === 'zone') {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n return [];\n }\n}\n","import { VPNXInstanceAliasList, VPNXInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPNXInstanceAliasList;\n InvalidDimensions = VPNXInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeVpnConnections',\n responseField: 'VpnConnectionSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import _ from 'lodash';\nimport {\n WAFInstanceAliasList,\n WAFInvalidDemensions,\n templateQueryIdMap,\n namespace,\n regionSupported,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { t } from '../../../locale';\n\nexport default class CDNDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = WAFInstanceAliasList;\n InvalidDimensions = WAFInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n // service: 'waf',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__125__;","import coreModule from 'grafana/app/core/core_module';\nimport { APIGATEWAYFilterFieldsDescriptor, templateQueryIdMap, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.APIGATEWAYFilterFieldsDescriptor = APIGATEWAYFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n // console.log({namespace, service});\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraDropdown = async (target) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const instanceId = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ region, instanceId });\n\n const result = rs.map((o) => {\n return {\n text: o.EnvironmentName,\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { BWPFilterFieldsDescriptor } from './query_def';\n\nexport class BWPQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.BWPFilterFieldsDescriptor = BWPFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function bwpQuery() {\n return {\n template: template,\n controller: BWPQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('bwpQuery', bwpQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDBFieldsDescriptor } from './query_def';\n\nexport class CDBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDBFieldsDescriptor = CDBFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'ZoneIds':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cdb', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n`;\n\nexport function cdbQuery() {\n return {\n template: template,\n controller: CDBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cdbQuery', cdbQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDNFilterFieldsDescriptor } from './query_def';\n\nexport class CDNQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDNFilterFieldsDescriptor = CDNFilterFieldsDescriptor;\n };\n\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n`;\n\nexport function cdnQuery() {\n return {\n template: template,\n controller: CDNQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cdnQuery', cdnQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDNPROVINCEFilterFieldsDescriptor, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Isp',\n field: 'isp',\n },\n {\n label: 'Province',\n field: 'district',\n },\n];\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDNPROVINCEFilterFieldsDescriptor = CDNPROVINCEFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, field });\n return rs;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CFSQueryDescriptor } from './query_def';\n\nexport class SCFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CFSQueryDescriptor = CFSQueryDescriptor;\n };\n\n $scope.getVersions = async (target) => {\n // console.log(2222);\n\n // return [{ text: 1, value: 1 }];\n // console.log(target, 'target');\n const { instance, region } = target;\n const fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');\n if (!instance || !region) return [];\n\n return fetcher(region, { FunctionName: JSON.parse(instance).FunctionName }).then((res) => {\n // console.log(res, 'res');\n\n return res;\n });\n };\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: SCFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\ncoreModule.directive('cfsQuery', scfQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CKAFKAQueryDescriptor, templateQueryIdMap } from './query_def';\nimport { isTargetEqual } from '../../common/utils';\n\nconst ExtraFields = [\n {\n label: 'ConsumerGroup',\n field: 'consumerGroup',\n },\n {\n label: 'TopicId',\n field: 'topicId',\n },\n {\n label: 'Partition',\n field: 'partition',\n },\n];\n\nexport class CKAFKAQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CKAFKAQueryDescriptor = CKAFKAQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n $scope.onInstanceChange = (n, o) => {\n if(isTargetEqual(n,o,'LoadBalancerId')) return;\n $scope.target.consumerGroup = '';\n $scope.target.topicId = '';\n $scope.target.topicName = '';\n $scope.target.partition = '';\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('ckafka', 'getVariable')(instance);\n if (Array.isArray(instance)) instance = instance[0];\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).InstanceId;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n const InstanceId = $scope.getInstanceId();\n const fetcher = $scope.datasource.getServiceFn('ckafka', 'getConsumerGroups');\n const region = $scope.datasource.getServiceFn('ckafka', 'getVariable')(target.region);\n const res = await fetcher(region, { InstanceId, groupname: target.consumerGroup, topicid: target.topicId });\n\n const { TopicList, GroupList, PartitionList } = res;\n const data = {\n GroupList: GroupList.map((group) => {\n group._InstanceAliasValue = group.GroupName;\n return {\n text: group.GroupName,\n value: JSON.stringify(group),\n };\n }),\n TopicList: TopicList.map((topic) => {\n topic._InstanceAliasValue = topic[templateQueryIdMap.topicId];\n return {\n text: topic[templateQueryIdMap.topicId],\n value: JSON.stringify(topic), // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去\n };\n }),\n PartitionList: PartitionList.map((par) => {\n par._InstanceAliasValue = par[templateQueryIdMap.partition];\n return {\n text: String(par[templateQueryIdMap.partition]),\n value: JSON.stringify(par),\n };\n }),\n };\n\n switch (field) {\n case 'consumerGroup':\n return data.GroupList;\n case 'topicId':\n return data.TopicList;\n case 'partition':\n return data.PartitionList;\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: CKAFKAQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n instance: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\ncoreModule.directive('ckafkaQuery', scfQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { get, chain } from 'lodash';\nimport { LOADBALANCEFieldsDescriptor, templateQueryIdMap, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\nimport { isTargetEqual } from '../../common/utils';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.LOADBALANCEFieldsDescriptor = LOADBALANCEFieldsDescriptor;\n $scope.serversList = [];\n };\n $scope.onFieldChange = (field) => {\n $scope.onRefresh();\n };\n $scope.onInstanceChange = (n, o) => {\n if(isTargetEqual(n,o,'InstanceId')) return;\n $scope.target.listener = '';\n $scope.target.servers = '';\n $scope.target.serverPort = '';\n };\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace(namespace);\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {\n // console.log();\n }\n return variableData;\n };\n $scope.getExtraDropdown = async (target) => {\n const { instance } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getListenerList')({ region, instanceId });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.listener];\n return {\n text: o[templateQueryIdMap.listener],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n $scope.getServersDropdown = async (target) => {\n const { instance, listener } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const listenerId = $scope.getVariableId(listener, 'listener');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const serversList = await $scope.datasource.getServiceFn(\n service,\n 'getServerList'\n )({ region, instanceId, listenerId });\n $scope.serversList = serversList;\n const res = chain(serversList)\n .map((item) => {\n item._InstanceAliasValue = get(item, 'PrivateIpAddresses.0');\n return {\n text: get(item, 'PrivateIpAddresses.0'),\n value: JSON.stringify(item),\n };\n })\n .uniqBy('text')\n .value();\n return res;\n };\n $scope.getServerPortDropdown = async (target) => {\n const { servers } = $scope.target;\n let serverPortList: any[] = [];\n try {\n const serversSource = JSON.parse(servers);\n serverPortList = chain($scope.serversList)\n .filter((item) => get(serversSource, 'PrivateIpAddresses.0') === get(item, 'PrivateIpAddresses.0'))\n .map((item) => {\n item._InstanceAliasValue = get(item, 'Port');\n return {\n text: `${get(item, 'Port')}`,\n value: JSON.stringify(item),\n };\n })\n .value();\n } catch (error) {}\n return serverPortList;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n namespace: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\ncoreModule.directive('clbQuery', sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CLSFilterFieldsDescriptor, queryEditorName } from './query_def';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.GSEFilterFieldsDescriptor = CLSFilterFieldsDescriptor;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import createQuery from '../_base/query';\nimport { InstanceQueryDescriptor } from './query_def';\n\ncreateQuery('cmqQuery', {\n fieldDescriptor: InstanceQueryDescriptor,\n instanceDocUrl: 'https://cloud.tencent.com/document/api/406/42624',\n namespace: 'QCE/CMQ',\n});\n","import coreModule from 'grafana/app/core/core_module';\nimport { InstanceQueryDescriptor } from './query_def';\n\nconst ExtraFields = [\n {\n label: 'Subscription(订阅)',\n field: 'subscriptionId',\n },\n];\n\nexport class CmqTopicQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.InstanceQueryDescriptor = InstanceQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }\n $scope.cacheMap = {};\n\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getTopicName = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).TopicName;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.onExtraFieldChange = (field) => {\n $scope.onRefresh();\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n if (field === 'subscriptionId') {\n const TopicName = $scope.getTopicName();\n let data = $scope.cacheMap[TopicName];\n\n if (!data) {\n const region = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(target.region);\n const fetcher = $scope.datasource.getServiceFn('cmqTopic', 'fetchAllSubscription');\n const datas = await fetcher(region, { TopicName });\n data = datas.map((item) => {\n item._InstanceAliasValue = item.SubscriptionId;\n return { text: item.SubscriptionId, value: JSON.stringify(item) };\n });\n }\n\n // 缓存\n $scope.cacheMap[TopicName] = data;\n return data;\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: CmqTopicQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('cmqTopicQuery', scfQuery);\n","import _ from 'lodash';\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['BucketName'];\nexport { InstanceAliasList, GetInstanceQueryParams };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'BucketName',\n queries: {},\n};\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CVMFilterFieldsDescriptor } from './query_def';\n\nexport class CVMQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CVMFilterFieldsDescriptor = CVMFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function cvmQuery() {\n return {\n template: template,\n controller: CVMQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cvmQuery', cvmQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { DCDBFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'nodeid',\n field: 'NodeId',\n action: 'DescribeDCDBInstanceNodeInfo',\n },\n {\n label: 'shardid',\n field: 'ShardId',\n action: 'DescribeDCDBShards',\n },\n];\nconst dropdownTextConfig = {\n DescribeDCDBInstanceNodeInfo: 'NodeId',\n DescribeDCDBShards: 'ShardInstanceId',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.DCDBFilterFieldsDescriptor = DCDBFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const instanceId = $scope.getInstanceId();\n const payload: any = {\n InstanceId: instanceId,\n Limit: 100,\n };\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { ECMBLOCKSTORAGEFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n // {\n // label: 'nodeid',\n // field: 'NodeId',\n // action: 'DescribeInstanceNodeInfo',\n // },\n {\n label: 'diskId',\n field: 'diskId',\n },\n];\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.ECMBLOCKSTORAGEFilterFieldsDescriptor = ECMBLOCKSTORAGEFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n // $scope.getInstanceId = () => {\n // let { instance } = $scope.target;\n // const service = GetServiceFromNamespace($scope.namespace);\n // instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n // if (!instance) {\n // return '';\n // }\n // try {\n // instance = JSON.parse(instance)[templateQueryIdMap.instance];\n // } catch (error) {\n // console.log();\n // }\n // return instance;\n // };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = (target, action) => {\n let { instance } = target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n try {\n instance = JSON.parse(instance);\n const { DataDisks: dataDisks } = instance;\n return dataDisks.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.diskId];\n return {\n text: o[templateQueryIdMap.diskId],\n value: JSON.stringify(o),\n };\n });\n } catch (error) {\n // console.log('instance error', instance);\n const payload: any = {\n InstanceId: instance,\n };\n const rs = $scope.datasource.getServiceFn(service, 'getDiskList')({ payload });\n const result = rs.map((o) => {\n return {\n text: o[templateQueryIdMap.diskId],\n value: JSON.stringify(o),\n };\n });\n return result;\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { GSEFilterFieldsDescriptor, templateQueryIdMap, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'fleetId',\n field: 'FleetId',\n },\n {\n label: 'queueName',\n field: 'Name',\n },\n];\nconst actionMaps = {\n FleetId: 'getFleetList',\n Name: 'getQueueNameList',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.GSEFilterFieldsDescriptor = GSEFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n // console.log({namespace, service});\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraDropdown = async (target, field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const instanceId = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n // const rs = await $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ region, instanceId });\n let rs = await $scope.datasource.getServiceFn(service, actionMaps[field])({ region, instanceId });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[field]];\n return {\n text: o[templateQueryIdMap[field]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { LBFilterDescriptor } from './query_def';\n\nexport class LBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n // $scope.LBQueryDescriptor = LBQueryDescriptor;\n $scope.LBFilterDescriptor = LBFilterDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n\n\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function lbQuery() {\n return {\n template: template,\n controller: LBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('lbQuery', lbQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { LighthouseFilterFieldsDescriptor } from './query_def';\n\nexport class LighthouseQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.LighthouseFilterFieldsDescriptor = LighthouseFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('lighthouse', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n`;\n\nexport function lighthouseQuery() {\n return {\n template: template,\n controller: LighthouseQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('lighthouseQuery', lighthouseQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { map, get, find, times } from 'lodash';\nimport { MONGODBFieldsDescriptor, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class MongoDBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.MONGODBFieldsDescriptor = MONGODBFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.onInstanceChange = (n, o) => {\n if (n === o) {\n return;\n }\n $scope.target.replica = '';\n $scope.target.node = '';\n };\n\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace('QCE/CMONGO');\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {\n // console.log();\n }\n return variableData;\n };\n\n $scope.getExtraDropdown = async (target, type) => {\n const { instance, replica } = $scope.target;\n const service = GetServiceFromNamespace('QCE/CMONGO');\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const [res] = await $scope.datasource.getServiceFn(service, 'getInstances')(region, {\n InstanceIds: [instanceId],\n });\n if (type === 'replica') {\n return map(get(res, 'ReplicaSets', []), (item) => {\n item._InstanceAliasValue = item.ReplicaSetId;\n return { text: item.ReplicaSetId, value: JSON.stringify(item) };\n });\n }\n if (type === 'node' && replica !== '') {\n const replicaId = $scope.getVariableId(replica, 'replica');\n const targetReplica = find(get(res, 'ReplicaSets', []), { ReplicaSetId: replicaId });\n const options = times(targetReplica.SecondaryNum, (index) => {\n const nodeId = `${targetReplica.ReplicaSetId}-node-slave${index}`;\n return {\n text: nodeId,\n value: JSON.stringify({ NodeId: nodeId, _InstanceAliasValue: `${targetReplica.ReplicaSetId} - ${nodeId}` }),\n };\n });\n return [\n {\n text: `${targetReplica.ReplicaSetId}-node-primary`,\n value: JSON.stringify({\n NodeId: `${targetReplica.ReplicaSetId}-node-primary`,\n _InstanceAliasValue: `${targetReplica.ReplicaSetId} - ${`${targetReplica.ReplicaSetId}-node-primary`}`,\n }),\n },\n ...options,\n ];\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n`;\n\nexport function mongodbQuery() {\n return {\n template: template,\n controller: MongoDBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onRefresh: '&',\n onChange: '&',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\n\ncoreModule.directive('mongodbQuery', mongodbQuery);\n","import { InstanceQueryDescriptor, templateQueryIdMap } from './query_def';\nimport coreModule from 'grafana/app/core/core_module';\n\nconst ExtraFields = [\n {\n label: 'NodeIP',\n field: 'nodeIP',\n },\n];\n\nexport class MrQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.InstanceQueryDescriptor = InstanceQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }\n $scope.cacheMap = {};\n\n $scope.getExtraFields = () => {\n return Object.keys($scope.dims ?? {}).some((item: string) => item.startsWith('host4')) ? ExtraFields : [];\n // return ExtraFields;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).ClusterId;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.onExtraFieldChange = (field) => {\n $scope.onRefresh();\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n if (field === 'nodeIP') {\n const InstanceId = $scope.getInstanceId();\n let data = $scope.cacheMap[InstanceId];\n\n if (!data) {\n const region = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(target.region);\n const fetcher = $scope.datasource.getServiceFn('mrHDFS', 'fetchAllNodes');\n const dataT = await fetcher(region, { InstanceId, NodeFlag: 'all' });\n data = dataT.map((item) => {\n item._InstanceAliasValue = item[templateQueryIdMap.node];\n return {\n text: item[templateQueryIdMap.node],\n value: JSON.stringify(item),\n };\n });\n }\n\n // 缓存\n $scope.cacheMap[InstanceId] = data;\n return data;\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n
\n\n \n \n
\n
\n
\n
\n\n
\n`;\n\nexport function mrQuery() {\n return {\n template: template,\n controller: MrQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('mrQuery', mrQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { NATGatewayFilterFieldsDescriptor } from './query_def';\n\nexport class NatGatewayQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.NATGatewayFilterFieldsDescriptor = NATGatewayFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function natGatewayQuery() {\n return {\n template: template,\n controller: NatGatewayQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('natGatewayQuery', natGatewayQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { OVCDNFilterFieldsDescriptor } from './query_def';\n\nexport class OVCDNQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.OVCDNFilterFieldsDescriptor = OVCDNFilterFieldsDescriptor;\n };\n\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n\n
\n\n
\n`;\n\nexport function ovCdnQuery() {\n return {\n template: template,\n controller: OVCDNQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('ovCdnQuery', ovCdnQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { PCXFieldsDescriptor } from './query_def';\n\nexport class PCXQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.PCXFieldsDescriptor = PCXFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'vpcId':\n return $scope.getVpcIds();\n default:\n return [];\n }\n };\n\n $scope.getVpcIds = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getVpcIds('pcx', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function pcxQuery() {\n return {\n template: template,\n controller: PCXQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('pcxQuery', pcxQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { RedisFieldsDescriptor } from './query_def';\n\nexport class RedisQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.RedisFieldsDescriptor = RedisFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function redisQuery() {\n return {\n template: template,\n controller: RedisQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('redisQuery', redisQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { map } from 'lodash';\nimport { RedisMemFieldsDescriptor, templateQueryIdMap, NodeType, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class RedisMemQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.RedisMemFieldsDescriptor = RedisMemFieldsDescriptor;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.rnodeid = '';\n $scope.target.pnodeid = '';\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace(namespace);\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {}\n return variableData;\n };\n\n $scope.getExtraDropdown = async (target, nodetype) => {\n const { instance } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getInstanceNodeInfo')({ region, instanceId });\n\n const ndoeTypeIndex = NodeType.indexOf(nodetype);\n return ndoeTypeIndex === -1 ? [] : map(rs[ndoeTypeIndex], (item) => ({ text: item.NodeId, value: item.NodeId }));\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n`;\n\nexport function redisMemQuery() {\n return {\n template: template,\n controller: RedisMemQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\n\ncoreModule.directive('redisMemQuery', redisMemQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { SCFQueryDescriptor, templateQueryIdMap } from './query_def';\n\nexport class SCFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.SCFQueryDescriptor = SCFQueryDescriptor;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('scf', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).FunctionName;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.getVersions = async (target) => {\n // console.log(2222);\n\n // return [{ text: 1, value: 1 }];\n // console.log(target, 'target');\n // let { instance, region } = target;\n const FunctionName = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn('scf', 'getVariable')(target.region);\n if (!FunctionName || !region) return [];\n\n const fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');\n\n return fetcher(region, { FunctionName }).then((res) => {\n // console.log(res, 'res');\n const result = res.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.version];\n return {\n text: o[templateQueryIdMap.version],\n value: JSON.stringify(o),\n };\n });\n return result;\n });\n };\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: SCFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n },\n };\n}\ncoreModule.directive('scfQuery', scfQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'environmentId',\n field: 'environmentId',\n action: 'DescribeEnvironments',\n },\n {\n label: 'topicName',\n field: 'topicName',\n action: 'DescribeTopics',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeTopics: 'topicName',\n DescribeEnvironments: 'environmentId',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n ClusterId: $scope.getInstanceId(),\n };\n if (action === 'DescribeTopics') {\n let evId = $scope.target.environmentId;\n try {\n evId = JSON.parse(evId);\n evId = evId[templateQueryIdMap.environmentId];\n } catch (e) {}\n payload.EnvironmentId = evId;\n }\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n label: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Node',\n field: 'node',\n action: 'DescribeRabbitMQNodeList',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeRabbitMQNodeList: 'node',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.node = '';\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n InstanceId: $scope.getInstanceId(),\n };\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n label: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\ncoreModule.directive('tdmqRabbitmqQuery', sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Namespace',\n field: 'namespace',\n action: 'DescribeRocketMQNamespaces',\n },\n {\n label: 'Group',\n field: 'group',\n action: 'DescribeRocketMQGroups',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeRocketMQNamespaces: 'namespace',\n DescribeRocketMQGroups: 'group',\n};\nexport class TdmqRocketmqQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.namespace = '';\n $scope.target.group = '';\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n ClusterId: $scope.getInstanceId(),\n };\n if (action === 'DescribeRocketMQGroups') {\n let namespace = $scope.target.namespace;\n try {\n namespace = JSON.parse(namespace)[templateQueryIdMap.namespace];\n } catch (e) {}\n payload.NamespaceId = $scope.datasource.getServiceFn(service, 'getVariable')(namespace);\n }\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function tdmqRocketmqQuery() {\n return {\n template: template,\n controller: TdmqRocketmqQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\ncoreModule.directive('tdmqRocketmqQuery', tdmqRocketmqQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { isEmpty } from 'lodash';\nimport { TKEFilterFieldsDescriptor } from './query_def';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TKEFilterFieldsDescriptor = TKEFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.addCondition = () => {\n $scope.target.conditions.push({ Key: '', Operator: '=', Value: '' });\n };\n\n $scope.deleteCondition = (index) => {\n const targetCondition = $scope.target.conditions[index];\n if (isEmpty(targetCondition.Key) || isEmpty(targetCondition.Operator) || isEmpty(targetCondition.Value)) {\n $scope.target.conditions.splice(index, 1);\n } else {\n $scope.target.conditions.splice(index, 1);\n $scope.onRefresh();\n }\n };\n\n $scope.getOperator = () => {\n return Promise.resolve([\n { text: '=', value: '=' },\n { text: 'in', value: 'in' },\n ]);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n \n \n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('tkeQuery', sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TSFFieldsDescriptor } from './query_def';\n\nexport class TSFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TSFFieldsDescriptor = TSFFieldsDescriptor;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n \n
\n
\n \n \n \n \n \n
\n
\n\n
\n`;\n\nexport function tsfQuery() {\n return {\n template: template,\n controller: TSFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('tsfQuery', tsfQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { VBCFilterFieldsDescriptor, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields: any = [\n // {\n // label: 'SRegion',\n // field: 'SRegion',\n // },\n // {\n // label: 'DRegion',\n // field: 'DRegion',\n // },\n];\n\nexport class VBCQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.VBCFilterFieldsDescriptor = VBCFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getExtraDropdown = (field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n // return $scope.datasource.getServiceFn(service, 'getFilterDropdown')({ field })\n return $scope.datasource.getFilterDropdown(service, { field });\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: VBCQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('vbcQuery', scfQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","var map = {\n\t\".\": 19,\n\t\"./\": 19,\n\t\"./MonitorDatasource\": 182,\n\t\"./MonitorDatasource.ts\": 182,\n\t\"./_base/datasource\": 3,\n\t\"./_base/datasource.ts\": 3,\n\t\"./_base/query\": 7,\n\t\"./_base/query.ts\": 7,\n\t\"./_base/query_filter\": 185,\n\t\"./_base/query_filter.ts\": 185,\n\t\"./_base/types\": 186,\n\t\"./_base/types.ts\": 186,\n\t\"./apigateway/datasource\": 70,\n\t\"./apigateway/datasource.ts\": 70,\n\t\"./apigateway/query\": 126,\n\t\"./apigateway/query.ts\": 126,\n\t\"./apigateway/query_def\": 21,\n\t\"./apigateway/query_def.ts\": 21,\n\t\"./bmIntraLb/datasource\": 71,\n\t\"./bmIntraLb/datasource.ts\": 71,\n\t\"./bmIntraLb/query\": 127,\n\t\"./bmIntraLb/query.ts\": 127,\n\t\"./bmIntraLb/query_def\": 29,\n\t\"./bmIntraLb/query_def.ts\": 29,\n\t\"./bm_lb/datasource\": 72,\n\t\"./bm_lb/datasource.ts\": 72,\n\t\"./bm_lb/query\": 128,\n\t\"./bm_lb/query.ts\": 128,\n\t\"./bm_lb/query_def\": 30,\n\t\"./bm_lb/query_def.ts\": 30,\n\t\"./bm_pcx/datasource\": 73,\n\t\"./bm_pcx/datasource.ts\": 73,\n\t\"./bm_pcx/query\": 129,\n\t\"./bm_pcx/query.ts\": 129,\n\t\"./bm_pcx/query_def\": 31,\n\t\"./bm_pcx/query_def.ts\": 31,\n\t\"./bwp/datasource\": 74,\n\t\"./bwp/datasource.ts\": 74,\n\t\"./bwp/query\": 130,\n\t\"./bwp/query.ts\": 130,\n\t\"./bwp/query_def\": 61,\n\t\"./bwp/query_def.ts\": 61,\n\t\"./cbs/datasource\": 75,\n\t\"./cbs/datasource.ts\": 75,\n\t\"./cbs/query\": 131,\n\t\"./cbs/query.ts\": 131,\n\t\"./cbs/query_def\": 32,\n\t\"./cbs/query_def.ts\": 32,\n\t\"./cdb/datasource\": 76,\n\t\"./cdb/datasource.ts\": 76,\n\t\"./cdb/query\": 132,\n\t\"./cdb/query.ts\": 132,\n\t\"./cdb/query_def\": 42,\n\t\"./cdb/query_def.ts\": 42,\n\t\"./cdn/datasource\": 77,\n\t\"./cdn/datasource.ts\": 77,\n\t\"./cdn/query\": 133,\n\t\"./cdn/query.ts\": 133,\n\t\"./cdn/query_def\": 62,\n\t\"./cdn/query_def.ts\": 62,\n\t\"./cdn_province/datasource\": 78,\n\t\"./cdn_province/datasource.ts\": 78,\n\t\"./cdn_province/query\": 134,\n\t\"./cdn_province/query.ts\": 134,\n\t\"./cdn_province/query_def\": 33,\n\t\"./cdn_province/query_def.ts\": 33,\n\t\"./ceip_summary/datasource\": 79,\n\t\"./ceip_summary/datasource.ts\": 79,\n\t\"./ceip_summary/query\": 135,\n\t\"./ceip_summary/query.ts\": 135,\n\t\"./ceip_summary/query_def\": 34,\n\t\"./ceip_summary/query_def.ts\": 34,\n\t\"./ces/datasource\": 80,\n\t\"./ces/datasource.ts\": 80,\n\t\"./ces/query\": 136,\n\t\"./ces/query.ts\": 136,\n\t\"./ces/query_def\": 43,\n\t\"./ces/query_def.ts\": 43,\n\t\"./cfs/datasource\": 81,\n\t\"./cfs/datasource.ts\": 81,\n\t\"./cfs/query\": 137,\n\t\"./cfs/query.ts\": 137,\n\t\"./cfs/query_def\": 55,\n\t\"./cfs/query_def.ts\": 55,\n\t\"./ckafka/datasource\": 82,\n\t\"./ckafka/datasource.ts\": 82,\n\t\"./ckafka/query\": 138,\n\t\"./ckafka/query.ts\": 138,\n\t\"./ckafka/query_def\": 10,\n\t\"./ckafka/query_def.ts\": 10,\n\t\"./clb/datasource\": 83,\n\t\"./clb/datasource.ts\": 83,\n\t\"./clb/query\": 139,\n\t\"./clb/query.ts\": 139,\n\t\"./clb/query_def\": 12,\n\t\"./clb/query_def.ts\": 12,\n\t\"./cls/datasource\": 84,\n\t\"./cls/datasource.ts\": 84,\n\t\"./cls/query\": 140,\n\t\"./cls/query.ts\": 140,\n\t\"./cls/query_def\": 27,\n\t\"./cls/query_def.ts\": 27,\n\t\"./cmq/datasource\": 85,\n\t\"./cmq/datasource.ts\": 85,\n\t\"./cmq/query\": 141,\n\t\"./cmq/query.ts\": 141,\n\t\"./cmq/query_def\": 56,\n\t\"./cmq/query_def.ts\": 56,\n\t\"./cmq_topic/datasource\": 86,\n\t\"./cmq_topic/datasource.ts\": 86,\n\t\"./cmq_topic/query\": 142,\n\t\"./cmq_topic/query.ts\": 142,\n\t\"./cmq_topic/query_def\": 35,\n\t\"./cmq_topic/query_def.ts\": 35,\n\t\"./cos/datasource\": 87,\n\t\"./cos/datasource.ts\": 87,\n\t\"./cos/query_def\": 143,\n\t\"./cos/query_def.ts\": 143,\n\t\"./cpm/datasource\": 88,\n\t\"./cpm/datasource.ts\": 88,\n\t\"./cpm/query\": 144,\n\t\"./cpm/query.ts\": 144,\n\t\"./cpm/query_def\": 36,\n\t\"./cpm/query_def.ts\": 36,\n\t\"./cvm/datasource\": 89,\n\t\"./cvm/datasource.ts\": 89,\n\t\"./cvm/query\": 145,\n\t\"./cvm/query.ts\": 145,\n\t\"./cvm/query_def\": 57,\n\t\"./cvm/query_def.ts\": 57,\n\t\"./cynosdb_mysql/datasource\": 90,\n\t\"./cynosdb_mysql/datasource.ts\": 90,\n\t\"./cynosdb_mysql/query\": 146,\n\t\"./cynosdb_mysql/query.ts\": 146,\n\t\"./cynosdb_mysql/query_def\": 24,\n\t\"./cynosdb_mysql/query_def.ts\": 24,\n\t\"./dc/datasource\": 91,\n\t\"./dc/datasource.ts\": 91,\n\t\"./dc/query\": 147,\n\t\"./dc/query.ts\": 147,\n\t\"./dc/query_def\": 44,\n\t\"./dc/query_def.ts\": 44,\n\t\"./dcdb/datasource\": 92,\n\t\"./dcdb/datasource.ts\": 92,\n\t\"./dcdb/query\": 148,\n\t\"./dcdb/query.ts\": 148,\n\t\"./dcdb/query_def\": 15,\n\t\"./dcdb/query_def.ts\": 15,\n\t\"./dcg/datasource\": 93,\n\t\"./dcg/datasource.ts\": 93,\n\t\"./dcg/query\": 149,\n\t\"./dcg/query.ts\": 149,\n\t\"./dcg/query_def\": 45,\n\t\"./dcg/query_def.ts\": 45,\n\t\"./dcx/datasource\": 94,\n\t\"./dcx/datasource.ts\": 94,\n\t\"./dcx/query\": 150,\n\t\"./dcx/query.ts\": 150,\n\t\"./dcx/query_def\": 46,\n\t\"./dcx/query_def.ts\": 46,\n\t\"./ecdn/datasource\": 95,\n\t\"./ecdn/datasource.ts\": 95,\n\t\"./ecdn/query\": 151,\n\t\"./ecdn/query.ts\": 151,\n\t\"./ecdn/query_def\": 37,\n\t\"./ecdn/query_def.ts\": 37,\n\t\"./ecm/datasource\": 96,\n\t\"./ecm/datasource.ts\": 96,\n\t\"./ecm/query\": 152,\n\t\"./ecm/query.ts\": 152,\n\t\"./ecm/query_def\": 38,\n\t\"./ecm/query_def.ts\": 38,\n\t\"./ecm_block_storage/datasource\": 97,\n\t\"./ecm_block_storage/datasource.ts\": 97,\n\t\"./ecm_block_storage/query\": 153,\n\t\"./ecm_block_storage/query.ts\": 153,\n\t\"./ecm_block_storage/query_def\": 20,\n\t\"./ecm_block_storage/query_def.ts\": 20,\n\t\"./ecm_lb/datasource\": 98,\n\t\"./ecm_lb/datasource.ts\": 98,\n\t\"./ecm_lb/query\": 154,\n\t\"./ecm_lb/query.ts\": 154,\n\t\"./ecm_lb/query_def\": 47,\n\t\"./ecm_lb/query_def.ts\": 47,\n\t\"./gse/datasource\": 99,\n\t\"./gse/datasource.ts\": 99,\n\t\"./gse/query\": 155,\n\t\"./gse/query.ts\": 155,\n\t\"./gse/query_def\": 14,\n\t\"./gse/query_def.ts\": 14,\n\t\"./index\": 19,\n\t\"./index.ts\": 19,\n\t\"./lb/datasource\": 100,\n\t\"./lb/datasource.ts\": 100,\n\t\"./lb/query\": 156,\n\t\"./lb/query.ts\": 156,\n\t\"./lb/query_def\": 63,\n\t\"./lb/query_def.ts\": 63,\n\t\"./lighthouse/datasource\": 101,\n\t\"./lighthouse/datasource.ts\": 101,\n\t\"./lighthouse/query\": 157,\n\t\"./lighthouse/query.ts\": 157,\n\t\"./lighthouse/query_def\": 54,\n\t\"./lighthouse/query_def.ts\": 54,\n\t\"./mongodb/datasource\": 102,\n\t\"./mongodb/datasource.ts\": 102,\n\t\"./mongodb/query\": 158,\n\t\"./mongodb/query.ts\": 158,\n\t\"./mongodb/query_def\": 48,\n\t\"./mongodb/query_def.ts\": 48,\n\t\"./mr/datasource\": 103,\n\t\"./mr/datasource.ts\": 103,\n\t\"./mr/query\": 159,\n\t\"./mr/query.ts\": 159,\n\t\"./mr/query_def\": 22,\n\t\"./mr/query_def.ts\": 22,\n\t\"./nat_gateway/datasource\": 104,\n\t\"./nat_gateway/datasource.ts\": 104,\n\t\"./nat_gateway/query\": 160,\n\t\"./nat_gateway/query.ts\": 160,\n\t\"./nat_gateway/query_def\": 64,\n\t\"./nat_gateway/query_def.ts\": 64,\n\t\"./ov_cdn/datasource\": 105,\n\t\"./ov_cdn/datasource.ts\": 105,\n\t\"./ov_cdn/query\": 161,\n\t\"./ov_cdn/query.ts\": 161,\n\t\"./ov_cdn/query_def\": 65,\n\t\"./ov_cdn/query_def.ts\": 65,\n\t\"./pcx/datasource\": 106,\n\t\"./pcx/datasource.ts\": 106,\n\t\"./pcx/query\": 162,\n\t\"./pcx/query.ts\": 162,\n\t\"./pcx/query_def\": 58,\n\t\"./pcx/query_def.ts\": 58,\n\t\"./postgresql/datasource\": 107,\n\t\"./postgresql/datasource.ts\": 107,\n\t\"./postgresql/query\": 163,\n\t\"./postgresql/query.ts\": 163,\n\t\"./postgresql/query_def\": 39,\n\t\"./postgresql/query_def.ts\": 39,\n\t\"./qaap/datasource\": 108,\n\t\"./qaap/datasource.ts\": 108,\n\t\"./qaap/query\": 164,\n\t\"./qaap/query.ts\": 164,\n\t\"./qaap/query_def\": 49,\n\t\"./qaap/query_def.ts\": 49,\n\t\"./redis/datasource\": 109,\n\t\"./redis/datasource.ts\": 109,\n\t\"./redis/query\": 165,\n\t\"./redis/query.ts\": 165,\n\t\"./redis/query_def\": 59,\n\t\"./redis/query_def.ts\": 59,\n\t\"./redis_mem/datasource\": 110,\n\t\"./redis_mem/datasource.ts\": 110,\n\t\"./redis_mem/query\": 166,\n\t\"./redis_mem/query.ts\": 166,\n\t\"./redis_mem/query_def\": 16,\n\t\"./redis_mem/query_def.ts\": 16,\n\t\"./scf/datasource\": 111,\n\t\"./scf/datasource.ts\": 111,\n\t\"./scf/query\": 167,\n\t\"./scf/query.ts\": 167,\n\t\"./scf/query_def\": 25,\n\t\"./scf/query_def.ts\": 25,\n\t\"./sqlserver/datasource\": 112,\n\t\"./sqlserver/datasource.ts\": 112,\n\t\"./sqlserver/query\": 168,\n\t\"./sqlserver/query.ts\": 168,\n\t\"./sqlserver/query_def\": 28,\n\t\"./sqlserver/query_def.ts\": 28,\n\t\"./tcaplus/datasource\": 113,\n\t\"./tcaplus/datasource.ts\": 113,\n\t\"./tcaplus/query\": 169,\n\t\"./tcaplus/query.ts\": 169,\n\t\"./tcaplus/query_def\": 50,\n\t\"./tcaplus/query_def.ts\": 50,\n\t\"./tdmq/datasource\": 114,\n\t\"./tdmq/datasource.ts\": 114,\n\t\"./tdmq/query\": 170,\n\t\"./tdmq/query.ts\": 170,\n\t\"./tdmq/query_def\": 13,\n\t\"./tdmq/query_def.ts\": 13,\n\t\"./tdmq_rabbitmq/datasource\": 115,\n\t\"./tdmq_rabbitmq/datasource.ts\": 115,\n\t\"./tdmq_rabbitmq/query\": 171,\n\t\"./tdmq_rabbitmq/query.ts\": 171,\n\t\"./tdmq_rabbitmq/query_def\": 17,\n\t\"./tdmq_rabbitmq/query_def.ts\": 17,\n\t\"./tdmq_rocketmq/datasource\": 116,\n\t\"./tdmq_rocketmq/datasource.ts\": 116,\n\t\"./tdmq_rocketmq/query\": 172,\n\t\"./tdmq_rocketmq/query.ts\": 172,\n\t\"./tdmq_rocketmq/query_def\": 18,\n\t\"./tdmq_rocketmq/query_def.ts\": 18,\n\t\"./tke/datasource\": 117,\n\t\"./tke/datasource.ts\": 117,\n\t\"./tke/query\": 173,\n\t\"./tke/query.ts\": 173,\n\t\"./tke/query_def\": 69,\n\t\"./tke/query_def.ts\": 69,\n\t\"./tsf/datasource\": 118,\n\t\"./tsf/datasource.ts\": 118,\n\t\"./tsf/query\": 174,\n\t\"./tsf/query.ts\": 174,\n\t\"./tsf/query_def\": 60,\n\t\"./tsf/query_def.ts\": 60,\n\t\"./v_clb/datasource\": 119,\n\t\"./v_clb/datasource.ts\": 119,\n\t\"./v_clb/query\": 175,\n\t\"./v_clb/query.ts\": 175,\n\t\"./v_clb/query_def\": 23,\n\t\"./v_clb/query_def.ts\": 23,\n\t\"./vbc/datasource\": 120,\n\t\"./vbc/datasource.ts\": 120,\n\t\"./vbc/query\": 176,\n\t\"./vbc/query.ts\": 176,\n\t\"./vbc/query_def\": 51,\n\t\"./vbc/query_def.ts\": 51,\n\t\"./vpc_net_detect/datasource\": 121,\n\t\"./vpc_net_detect/datasource.ts\": 121,\n\t\"./vpc_net_detect/query\": 177,\n\t\"./vpc_net_detect/query.ts\": 177,\n\t\"./vpc_net_detect/query_def\": 40,\n\t\"./vpc_net_detect/query_def.ts\": 40,\n\t\"./vpngw/datasource\": 122,\n\t\"./vpngw/datasource.ts\": 122,\n\t\"./vpngw/query\": 178,\n\t\"./vpngw/query.ts\": 178,\n\t\"./vpngw/query_def\": 52,\n\t\"./vpngw/query_def.ts\": 52,\n\t\"./vpnx/datasource\": 123,\n\t\"./vpnx/datasource.ts\": 123,\n\t\"./vpnx/query\": 179,\n\t\"./vpnx/query.ts\": 179,\n\t\"./vpnx/query_def\": 53,\n\t\"./vpnx/query_def.ts\": 53,\n\t\"./waf/datasource\": 124,\n\t\"./waf/datasource.ts\": 124,\n\t\"./waf/query\": 180,\n\t\"./waf/query.ts\": 180,\n\t\"./waf/query_def\": 41,\n\t\"./waf/query_def.ts\": 41\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 181;","import _ from 'lodash';\nimport { Datasources, SERVICES } from './index';\nimport { GetServiceFromNamespace, ParseMetricQuery } from '../common/constants';\nimport { serviceGroupBy } from '../common/utils';\nimport { LoadingState } from '@grafana/data';\n\nexport default interface DatasourceInterface {\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n query: (options: any) => any;\n testDatasource: () => any;\n metricFindQuery: (query: any) => any;\n getRegions?: (service: string) => any;\n getMetrics: (service: string, region: string) => any;\n getInstances: (service: string, region: string, params: any) => any;\n getZones?: (service: string, region: string) => any;\n}\n\nexport class TCMonitorDatasource implements DatasourceInterface {\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n\n /** @ngInject */\n constructor(instanceSettings, backendSrv, templateSrv) {\n this.instanceSettings = instanceSettings;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n _.forEach(Datasources, (_class: any, key) => {\n this[key] = new _class(this.instanceSettings, this.backendSrv, this.templateSrv);\n });\n }\n\n // 根据 Datasource Config 配置时勾选的监控服务项,获取相应的命名空间\n getNamespaces() {\n const namespaces: any[] = [];\n _.forEach(SERVICES, (service) => {\n if (this.instanceSettings.jsonData[service.service] === true) {\n // namespaces.push(service.namespace);\n namespaces.push(service);\n }\n });\n return namespaces;\n }\n\n getCascaderNamespaces() {\n const validServices = SERVICES.filter((service) => this.instanceSettings.jsonData[service.service]);\n return serviceGroupBy(validServices);\n }\n\n getSelectedServices() {\n const namespaces = this.getNamespaces();\n return _.map(namespaces, ({ namespace }) => {\n return GetServiceFromNamespace(namespace);\n });\n }\n\n /**\n * 根据 Panel 的配置项,获取相应的监控数据\n *\n * @param options Panel 的配置参数,示例如下\n * {\n * cacheTimeout: undefined,\n * dashboardId: 41,\n * interval: \"30s\",\n * intervalMs: 30000,\n * maxDataPoints: 554,\n * panelId: 2,\n * range: {\n * from: Moment,\n * to: Moment,\n * raw: {from: \"now-6h\", to: \"now\"}\n * },\n * rangeRaw: {from: \"now-6h\", to: \"now\"},\n * scopedVars: {__interval: {…}, __interval_ms: {…}}\n * targets: [\n * {\n * namespace: \"QCE/CVM\",\n * refId: \"A\",\n * service: \"cvm\",\n * showInstanceDetails: false,\n * cvm: {\n * dimensionObject: {InstanceId: {…}}\n * instance: \"\",\n * instanceAlias: \"InstanceId\",\n * metricName: \"AccOuttraffic\",\n * metricUnit: \"MB\",\n * period: 10,\n * queries: {Filters: {…}, InstanceIds: Array(1), Limit: 20, Offset: 0, filtersChecked: false, …},\n * region: \"ap-beijing\"\n * },\n * cdb: {},\n * },\n * ],\n * timezone: \"browser\"\n * }\n * @return 返回数据对象,示例如下\n * {\n * data: [\n * {\n * \"target\": \"AccOuttraffic - ins-123\",\n * \"datapoints\": [\n * [861, 1450754160000],\n * [767, 1450754220000]\n * ]\n * }\n * ]\n * }\n */\n query(options: any) {\n const promises: any[] = [];\n const services = this.getSelectedServices();\n _.forEach(services, (service) => {\n const optionsTemp = _.cloneDeep(options);\n const targets = _.filter(optionsTemp.targets, (item) => item.service === service);\n optionsTemp.targets = targets;\n if (optionsTemp.targets.length > 0) {\n const promiseTemp = this[`${_.toUpper(service)}Datasource`].query(optionsTemp);\n if (promiseTemp) {\n promises.push(promiseTemp);\n }\n }\n });\n if (promises.length === 0) {\n return Promise.resolve({ data: [], state: LoadingState.Done });\n }\n return Promise.all(promises).then((results) => {\n return { data: _.flatten(results), state: LoadingState.Done };\n });\n }\n\n /**\n * 获取模板变量的选择项列表\n *\n * @param query 模板变量配置填写的 Query 参数字符串\n */\n metricFindQuery(query: string, options?: any) {\n const queries = ParseMetricQuery(query);\n const service = GetServiceFromNamespace(queries['namespace'] || '');\n\n if (_.isEmpty(queries) || !queries['namespace'] || !queries['action'] || !service) {\n return Promise.resolve([]);\n }\n if (this[`${_.toUpper(service)}Datasource`].metricFindQuery) {\n const result = this[`${_.toUpper(service)}Datasource`].metricFindQuery(\n queries,\n _.get(options, 'variable.regex', undefined)\n );\n if (result) {\n return result;\n }\n }\n return Promise.resolve([]);\n }\n\n /**\n * 获取地域列表\n * @param service\n */\n getRegions(service) {\n if (this[`${_.toUpper(service)}Datasource`].getRegions) {\n return this[`${_.toUpper(service)}Datasource`].getRegions();\n }\n return [];\n }\n\n /**\n * 获取监控指标列表\n * @param service\n * @param region\n */\n getMetrics(service, region) {\n return this[`${_.toUpper(service)}Datasource`].getMetrics(region);\n }\n\n /**\n * 获取可用区列表\n * @param service\n * @param region\n */\n getZones(service, region) {\n if (this[`${_.toUpper(service)}Datasource`].getZones) {\n return this[`${_.toUpper(service)}Datasource`].getZones(region);\n }\n return [];\n }\n\n /**\n * 获取filter中dropdown列表\n * @param service\n * @param param\n */\n getFilterDropdown(service, param) {\n if (this[`${_.toUpper(service)}Datasource`].getFilterDropdown) {\n return this[`${_.toUpper(service)}Datasource`].getFilterDropdown(param);\n }\n return [];\n }\n\n /**\n * 获取实例列表\n * @param service\n * @param region\n * @param params\n */\n getInstances(service, region, params) {\n return this[`${_.toUpper(service)}Datasource`].getInstances(region, params);\n }\n\n /**\n * 获取监听器列表\n * @param service\n * @param region\n * @param params\n */\n getListeners(service, region, instance) {\n if (!this[`${_.toUpper(service)}Datasource`].getListeners) {\n return [];\n }\n return this[`${_.toUpper(service)}Datasource`].getListeners(region, instance);\n }\n\n /**\n * 获取 私有网络列表\n * @param service\n */\n getVpcIds(service, region) {\n if (this[`${_.toUpper(service)}Datasource`].getVpcIds) {\n return this[`${_.toUpper(service)}Datasource`].getVpcIds(region);\n }\n }\n\n // 在 Datasource Config 配置时,验证 SerectId、SerectKey 的有效性,并测试勾选的监控服务项的对应 API 连通性\n testDatasource() {\n const promises: any[] = [];\n const services = this.getSelectedServices();\n _.forEach(services, (service) => {\n promises.push(this[`${_.toUpper(service)}Datasource`].testDatasource());\n });\n if (promises.length === 0) {\n return Promise.resolve(null);\n }\n\n return Promise.all(promises).then((results) => {\n let status = 'success';\n let message = 'DataSource Connection OK';\n\n const errorMsg = _.reduce(\n results,\n (acc, cur) => {\n if (cur.status === 'error') {\n if (acc === '') acc += 'Oops! Found an error in: ';\n acc += `${cur.service}: ${cur.message}; \\n`;\n }\n return acc;\n },\n ''\n );\n\n if (errorMsg) {\n status = 'error';\n message = errorMsg;\n }\n\n return {\n status,\n message,\n title: _.upperFirst(status),\n };\n });\n }\n\n getServiceFn(service, fnName) {\n return (...argu) => {\n if (!this[`${_.toUpper(service)}Datasource`][fnName]) {\n return [];\n }\n return this[`${_.toUpper(service)}Datasource`][fnName](...argu);\n };\n }\n}\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (typeof target === 'object') {\n if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n if (target[i] && typeof target[i] === 'object') {\n target[i] = merge(target[i], item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return value;\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","import coreModule from 'grafana/app/core/core_module';\nimport { DetailQueryConfig } from './types';\n\nclass SPQueryCtrl {\n static _config: DetailQueryConfig;\n\n /** @ngInject */\n constructor($scope, $rootScope) {\n Object.assign($scope, SPQueryCtrl._config);\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n
\n\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n`;\n\nexport function queryDDO() {\n return {\n template: template,\n controller: SPQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\nexport default (name: string, config: DetailQueryConfig) => {\n SPQueryCtrl._config = config;\n coreModule.directive(name, queryDDO);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) { // eslint-disable-line func-name-matching\n return prefix + '[]';\n },\n indices: function indices(prefix, key) { // eslint-disable-line func-name-matching\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) { // eslint-disable-line func-name-matching\n return prefix;\n }\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify( // eslint-disable-line func-name-matching\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (Array.isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (Array.isArray(obj)) {\n values = values.concat(stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n values = values.concat(stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (Array.isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n keys = keys.concat(stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]') {\n obj = [];\n obj = obj.concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","var map = {\n\t\"./_base/query.ts\": 7,\n\t\"./apigateway/datasource\": 70,\n\t\"./apigateway/datasource.ts\": 70,\n\t\"./apigateway/query.ts\": 126,\n\t\"./apigateway/query_def.ts\": 21,\n\t\"./bmIntraLb/datasource\": 71,\n\t\"./bmIntraLb/datasource.ts\": 71,\n\t\"./bmIntraLb/query.ts\": 127,\n\t\"./bmIntraLb/query_def.ts\": 29,\n\t\"./bm_lb/datasource\": 72,\n\t\"./bm_lb/datasource.ts\": 72,\n\t\"./bm_lb/query.ts\": 128,\n\t\"./bm_lb/query_def.ts\": 30,\n\t\"./bm_pcx/datasource\": 73,\n\t\"./bm_pcx/datasource.ts\": 73,\n\t\"./bm_pcx/query.ts\": 129,\n\t\"./bm_pcx/query_def.ts\": 31,\n\t\"./bwp/datasource\": 74,\n\t\"./bwp/datasource.ts\": 74,\n\t\"./bwp/query.ts\": 130,\n\t\"./bwp/query_def.ts\": 61,\n\t\"./cbs/datasource\": 75,\n\t\"./cbs/datasource.ts\": 75,\n\t\"./cbs/query.ts\": 131,\n\t\"./cbs/query_def.ts\": 32,\n\t\"./cdb/datasource\": 76,\n\t\"./cdb/datasource.ts\": 76,\n\t\"./cdb/query.ts\": 132,\n\t\"./cdb/query_def.ts\": 42,\n\t\"./cdn/datasource\": 77,\n\t\"./cdn/datasource.ts\": 77,\n\t\"./cdn/query.ts\": 133,\n\t\"./cdn/query_def.ts\": 62,\n\t\"./cdn_province/datasource\": 78,\n\t\"./cdn_province/datasource.ts\": 78,\n\t\"./cdn_province/query.ts\": 134,\n\t\"./cdn_province/query_def.ts\": 33,\n\t\"./ceip_summary/datasource\": 79,\n\t\"./ceip_summary/datasource.ts\": 79,\n\t\"./ceip_summary/query.ts\": 135,\n\t\"./ceip_summary/query_def.ts\": 34,\n\t\"./ces/datasource\": 80,\n\t\"./ces/datasource.ts\": 80,\n\t\"./ces/query.ts\": 136,\n\t\"./ces/query_def.ts\": 43,\n\t\"./cfs/datasource\": 81,\n\t\"./cfs/datasource.ts\": 81,\n\t\"./cfs/query.ts\": 137,\n\t\"./cfs/query_def.ts\": 55,\n\t\"./ckafka/datasource\": 82,\n\t\"./ckafka/datasource.ts\": 82,\n\t\"./ckafka/query.ts\": 138,\n\t\"./ckafka/query_def.ts\": 10,\n\t\"./clb/datasource\": 83,\n\t\"./clb/datasource.ts\": 83,\n\t\"./clb/query.ts\": 139,\n\t\"./clb/query_def.ts\": 12,\n\t\"./cls/datasource\": 84,\n\t\"./cls/datasource.ts\": 84,\n\t\"./cls/query.ts\": 140,\n\t\"./cls/query_def.ts\": 27,\n\t\"./cmq/datasource\": 85,\n\t\"./cmq/datasource.ts\": 85,\n\t\"./cmq/query.ts\": 141,\n\t\"./cmq/query_def.ts\": 56,\n\t\"./cmq_topic/datasource\": 86,\n\t\"./cmq_topic/datasource.ts\": 86,\n\t\"./cmq_topic/query.ts\": 142,\n\t\"./cmq_topic/query_def.ts\": 35,\n\t\"./cos/datasource\": 87,\n\t\"./cos/datasource.ts\": 87,\n\t\"./cos/query_def.ts\": 143,\n\t\"./cpm/datasource\": 88,\n\t\"./cpm/datasource.ts\": 88,\n\t\"./cpm/query.ts\": 144,\n\t\"./cpm/query_def.ts\": 36,\n\t\"./cvm/datasource\": 89,\n\t\"./cvm/datasource.ts\": 89,\n\t\"./cvm/query.ts\": 145,\n\t\"./cvm/query_def.ts\": 57,\n\t\"./cynosdb_mysql/datasource\": 90,\n\t\"./cynosdb_mysql/datasource.ts\": 90,\n\t\"./cynosdb_mysql/query.ts\": 146,\n\t\"./cynosdb_mysql/query_def.ts\": 24,\n\t\"./dc/datasource\": 91,\n\t\"./dc/datasource.ts\": 91,\n\t\"./dc/query.ts\": 147,\n\t\"./dc/query_def.ts\": 44,\n\t\"./dcdb/datasource\": 92,\n\t\"./dcdb/datasource.ts\": 92,\n\t\"./dcdb/query.ts\": 148,\n\t\"./dcdb/query_def.ts\": 15,\n\t\"./dcg/datasource\": 93,\n\t\"./dcg/datasource.ts\": 93,\n\t\"./dcg/query.ts\": 149,\n\t\"./dcg/query_def.ts\": 45,\n\t\"./dcx/datasource\": 94,\n\t\"./dcx/datasource.ts\": 94,\n\t\"./dcx/query.ts\": 150,\n\t\"./dcx/query_def.ts\": 46,\n\t\"./ecdn/datasource\": 95,\n\t\"./ecdn/datasource.ts\": 95,\n\t\"./ecdn/query.ts\": 151,\n\t\"./ecdn/query_def.ts\": 37,\n\t\"./ecm/datasource\": 96,\n\t\"./ecm/datasource.ts\": 96,\n\t\"./ecm/query.ts\": 152,\n\t\"./ecm/query_def.ts\": 38,\n\t\"./ecm_block_storage/datasource\": 97,\n\t\"./ecm_block_storage/datasource.ts\": 97,\n\t\"./ecm_block_storage/query.ts\": 153,\n\t\"./ecm_block_storage/query_def.ts\": 20,\n\t\"./ecm_lb/datasource\": 98,\n\t\"./ecm_lb/datasource.ts\": 98,\n\t\"./ecm_lb/query.ts\": 154,\n\t\"./ecm_lb/query_def.ts\": 47,\n\t\"./gse/datasource\": 99,\n\t\"./gse/datasource.ts\": 99,\n\t\"./gse/query.ts\": 155,\n\t\"./gse/query_def.ts\": 14,\n\t\"./lb/datasource\": 100,\n\t\"./lb/datasource.ts\": 100,\n\t\"./lb/query.ts\": 156,\n\t\"./lb/query_def.ts\": 63,\n\t\"./lighthouse/datasource\": 101,\n\t\"./lighthouse/datasource.ts\": 101,\n\t\"./lighthouse/query.ts\": 157,\n\t\"./lighthouse/query_def.ts\": 54,\n\t\"./mongodb/datasource\": 102,\n\t\"./mongodb/datasource.ts\": 102,\n\t\"./mongodb/query.ts\": 158,\n\t\"./mongodb/query_def.ts\": 48,\n\t\"./mr/datasource\": 103,\n\t\"./mr/datasource.ts\": 103,\n\t\"./mr/query.ts\": 159,\n\t\"./mr/query_def.ts\": 22,\n\t\"./nat_gateway/datasource\": 104,\n\t\"./nat_gateway/datasource.ts\": 104,\n\t\"./nat_gateway/query.ts\": 160,\n\t\"./nat_gateway/query_def.ts\": 64,\n\t\"./ov_cdn/datasource\": 105,\n\t\"./ov_cdn/datasource.ts\": 105,\n\t\"./ov_cdn/query.ts\": 161,\n\t\"./ov_cdn/query_def.ts\": 65,\n\t\"./pcx/datasource\": 106,\n\t\"./pcx/datasource.ts\": 106,\n\t\"./pcx/query.ts\": 162,\n\t\"./pcx/query_def.ts\": 58,\n\t\"./postgresql/datasource\": 107,\n\t\"./postgresql/datasource.ts\": 107,\n\t\"./postgresql/query.ts\": 163,\n\t\"./postgresql/query_def.ts\": 39,\n\t\"./qaap/datasource\": 108,\n\t\"./qaap/datasource.ts\": 108,\n\t\"./qaap/query.ts\": 164,\n\t\"./qaap/query_def.ts\": 49,\n\t\"./redis/datasource\": 109,\n\t\"./redis/datasource.ts\": 109,\n\t\"./redis/query.ts\": 165,\n\t\"./redis/query_def.ts\": 59,\n\t\"./redis_mem/datasource\": 110,\n\t\"./redis_mem/datasource.ts\": 110,\n\t\"./redis_mem/query.ts\": 166,\n\t\"./redis_mem/query_def.ts\": 16,\n\t\"./scf/datasource\": 111,\n\t\"./scf/datasource.ts\": 111,\n\t\"./scf/query.ts\": 167,\n\t\"./scf/query_def.ts\": 25,\n\t\"./sqlserver/datasource\": 112,\n\t\"./sqlserver/datasource.ts\": 112,\n\t\"./sqlserver/query.ts\": 168,\n\t\"./sqlserver/query_def.ts\": 28,\n\t\"./tcaplus/datasource\": 113,\n\t\"./tcaplus/datasource.ts\": 113,\n\t\"./tcaplus/query.ts\": 169,\n\t\"./tcaplus/query_def.ts\": 50,\n\t\"./tdmq/datasource\": 114,\n\t\"./tdmq/datasource.ts\": 114,\n\t\"./tdmq/query.ts\": 170,\n\t\"./tdmq/query_def.ts\": 13,\n\t\"./tdmq_rabbitmq/datasource\": 115,\n\t\"./tdmq_rabbitmq/datasource.ts\": 115,\n\t\"./tdmq_rabbitmq/query.ts\": 171,\n\t\"./tdmq_rabbitmq/query_def.ts\": 17,\n\t\"./tdmq_rocketmq/datasource\": 116,\n\t\"./tdmq_rocketmq/datasource.ts\": 116,\n\t\"./tdmq_rocketmq/query.ts\": 172,\n\t\"./tdmq_rocketmq/query_def.ts\": 18,\n\t\"./tke/datasource\": 117,\n\t\"./tke/datasource.ts\": 117,\n\t\"./tke/query.ts\": 173,\n\t\"./tke/query_def.ts\": 69,\n\t\"./tsf/datasource\": 118,\n\t\"./tsf/datasource.ts\": 118,\n\t\"./tsf/query.ts\": 174,\n\t\"./tsf/query_def.ts\": 60,\n\t\"./v_clb/datasource\": 119,\n\t\"./v_clb/datasource.ts\": 119,\n\t\"./v_clb/query.ts\": 175,\n\t\"./v_clb/query_def.ts\": 23,\n\t\"./vbc/datasource\": 120,\n\t\"./vbc/datasource.ts\": 120,\n\t\"./vbc/query.ts\": 176,\n\t\"./vbc/query_def.ts\": 51,\n\t\"./vpc_net_detect/datasource\": 121,\n\t\"./vpc_net_detect/datasource.ts\": 121,\n\t\"./vpc_net_detect/query.ts\": 177,\n\t\"./vpc_net_detect/query_def.ts\": 40,\n\t\"./vpngw/datasource\": 122,\n\t\"./vpngw/datasource.ts\": 122,\n\t\"./vpngw/query.ts\": 178,\n\t\"./vpngw/query_def.ts\": 52,\n\t\"./vpnx/datasource\": 123,\n\t\"./vpnx/datasource.ts\": 123,\n\t\"./vpnx/query.ts\": 179,\n\t\"./vpnx/query_def.ts\": 53,\n\t\"./waf/datasource\": 124,\n\t\"./waf/datasource.ts\": 124,\n\t\"./waf/query.ts\": 180,\n\t\"./waf/query_def.ts\": 41\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 191;","module.exports = __WEBPACK_EXTERNAL_MODULE__192__;","module.exports = __WEBPACK_EXTERNAL_MODULE__193__;","module.exports = __WEBPACK_EXTERNAL_MODULE__196__;","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of