UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

233 lines (226 loc) 7.5 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../../tslib.es6-01322ba9.js'); var axios = require('axios'); var tam_api_credential = require('./credential.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios); function getCustomEventQuery(_a) { var startTime = _a.startTime, endTime = _a.endTime, projectId = _a.projectId, _b = _a.env, env = _b === void 0 ? 'production' : _b; var envStr = ''; if (env === 'production') { envStr = ' and "env"=\'production\' '; } return "select delta(count) as allCount from event_url_statistics where time >= ".concat(startTime, "s and time <= ").concat(endTime, "s and id='").concat(projectId, "' ").concat(envStr, " group by \"name\" slimit 1000"); } function flattenEventData(data) { return data.reduce(function (acc, item) { var _a, _b, _c; var key = (_a = item.tags) === null || _a === void 0 ? void 0 : _a.name; if (!key) { return acc; } acc[key] = ((_c = (_b = item.values) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c[1]) || 0; return acc; }, {}); } /** * 获取自定义事件数据 * @ignore * @param {object} options 配置 * @param {number} options.startTime 开始时间,格式如 1655282977 * @param {number} options.endTime 结束时间,格式如 1655282977 * @param {number} options.projectId 项目Id * @param {object} options.secretInfo 密钥信息 * @param {string} [options.env] 环境,默认为production * @returns {Promise<object>} 自定义事件数据 * @example * * getCustomEventData({ * startTime: 1665383837, * endTime: 1665470227, * projectId: 57706, * secretInfo: { * getPwdCode, * encrypt, * apiKey: '', * loginName: '', * }, * }).then(resp => { * console.log(resp) * }) * * // 结果如下: * * { * AI_PLAYER_EVENT_0: 7319, * AI_PLAYER_EVENT_14: 14, * AI_PLAYER_EVENT_300001: 6600, * AI_PLAYER_EVENT_4: 10, * LAUNCH_GAME_FAIL_QQ: 170, * LAUNCH_GAME_FAIL_WX: 25, * LAUNCH_GAME_SUC_GP_HELPER: 31, * LAUNCH_GAME_SUC_QQ: 1179, * } */ function getCustomEventData(_a) { var _b, _c; var startTime = _a.startTime, endTime = _a.endTime, projectId = _a.projectId, _d = _a.env, env = _d === void 0 ? 'production' : _d, secretInfo = _a.secretInfo; return tslib_es6.__awaiter(this, void 0, void 0, function () { var credential, result, res; return tslib_es6.__generator(this, function (_e) { switch (_e.label) { case 0: return [4 /*yield*/, tam_api_credential.getCredential(secretInfo)]; case 1: credential = _e.sent(); return [4 /*yield*/, axios__default["default"]({ method: 'POST', url: '/api/interface/monitor/queryData', data: { Namespace: 'TAM-v1', Query: getCustomEventQuery({ startTime: startTime, endTime: endTime, projectId: projectId, env: env }) }, headers: tslib_es6.__assign({}, credential) })]; case 2: result = _e.sent(); res = []; try { /** * res格式为: * body: { * Response: { * RequestId: '22561d33ea8254619d56c05a-183c5c8b617', * Result: '{"request_id":"22561d33ea8254619d56c05a-183c5c8b617","results":[]}' * } * }, */ res = JSON.parse(result.data.Response.Result) || {}; /** * res: * { * "request_id": "22561d33ea8254619d56c05a-183c5c8b617", * "results": [{ * "statement_id": 0, * "series": [{ * "name": "event_url_statistics", * "tags": { * "name": "PAGE_INDEX" * }, * "columns": ["time", "allCount"], * "values": [ * [0, 13907] * ] * }, { * "name": "event_url_statistics", * "tags": { * "name": "LAUNCH_GAME_SUC_WX" * }, * "columns": ["time", "allCount"], * "values": [ * [0, 94] * ] * }, { * "name": "event_url_statistics", * "tags": { * "name": "PAGE_AI_ROOM" * }, * "columns": ["time", "allCount"], * "values": [ * [0, 1502] * ] * }], * "total": 3 * }] * } */ res = ((_c = (_b = res === null || res === void 0 ? void 0 : res.results) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.series) || []; } catch (e) {} return [2 /*return*/, flattenEventData(res)]; } }); }); } /** * 获取多个项目的自定义事件数据 * @ignore * @param options 配置 */ function getMultiCustomEventData(_a) { var startTime = _a.startTime, endTime = _a.endTime, _b = _a.env, env = _b === void 0 ? 'production' : _b, secretInfo = _a.secretInfo, projectIdMap = _a.projectIdMap; return tslib_es6.__awaiter(this, void 0, void 0, function () { var res, projectIdList, _i, projectIdList_1, projectId, list, _c, projectIdList_2, projectId, info, extraData; return tslib_es6.__generator(this, function (_d) { switch (_d.label) { case 0: res = {}; projectIdList = Object.keys(projectIdMap); if (!projectIdList.length) return [2 /*return*/]; _i = 0, projectIdList_1 = projectIdList; _d.label = 1; case 1: if (!(_i < projectIdList_1.length)) return [3 /*break*/, 4]; projectId = projectIdList_1[_i]; return [4 /*yield*/, getCustomEventData({ startTime: startTime, endTime: endTime, projectId: +projectId, env: env, secretInfo: secretInfo })]; case 2: list = _d.sent(); res[projectId] = list; _d.label = 3; case 3: _i++; return [3 /*break*/, 1]; case 4: _c = 0, projectIdList_2 = projectIdList; _d.label = 5; case 5: if (!(_c < projectIdList_2.length)) return [3 /*break*/, 8]; projectId = projectIdList_2[_c]; info = projectIdMap[projectId]; if (!info.extraProjectId) return [3 /*break*/, 7]; return [4 /*yield*/, getCustomEventData({ startTime: startTime, endTime: endTime, projectId: info.extraProjectId, env: env, secretInfo: secretInfo })]; case 6: extraData = _d.sent(); res[projectId].extraData = extraData; _d.label = 7; case 7: _c++; return [3 /*break*/, 5]; case 8: return [2 /*return*/, res]; } }); }); } exports.getMultiCustomEventData = getMultiCustomEventData;