From 47c33cfed4865b74b173453ee088cb3a6265364e Mon Sep 17 00:00:00 2001 From: wescai <35978557@qq.com> Date: Fri, 8 May 2020 10:02:43 +0800 Subject: [PATCH 01/14] =?UTF-8?q?fix:=20=E4=BF=9D=E8=AF=81finalhandler?= =?UTF-8?q?=E6=97=B6=E6=89=A7=E8=A1=8C=E6=AD=A3=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/agent.js | 12 ++++- src/constants.js | 3 +- src/instrumentation/core/http.js | 54 +++++++++++++++++++ src/instrumentation/express.js | 24 ++------- .../tencent-serverless-http.js | 10 ++-- src/instrumentations.js | 1 + src/report.js | 4 +- src/shimmer.js | 30 ++++++++++- src/transaction/index.js | 19 +++++++ 9 files changed, 124 insertions(+), 33 deletions(-) create mode 100644 src/instrumentation/core/http.js create mode 100644 src/transaction/index.js diff --git a/src/agent.js b/src/agent.js index 6da88d9..f5b02f2 100644 --- a/src/agent.js +++ b/src/agent.js @@ -1,5 +1,15 @@ const { EventEmitter } = require('events') -class Agent extends EventEmitter {} +const Transaction = require('./transaction') + +class Agent extends EventEmitter { + constructor() { + super() + this._transaction = new Transaction() + } + get transaction() { + return this._transaction + } +} module.exports = Agent diff --git a/src/constants.js b/src/constants.js index 4470abf..7724b92 100644 --- a/src/constants.js +++ b/src/constants.js @@ -8,7 +8,8 @@ const MODULE_TYPE = { /** Web server framework module, such as Express or Koa. */ WEB_FRAMEWORK: 'web-framework', - PROXY: 'proxy' + PROXY: 'proxy', + TRANSACTION: 'transaction' } exports.MODULE_TYPE = MODULE_TYPE diff --git a/src/instrumentation/core/http.js b/src/instrumentation/core/http.js new file mode 100644 index 0000000..4043bf0 --- /dev/null +++ b/src/instrumentation/core/http.js @@ -0,0 +1,54 @@ +const utils = require('../../utils') + +function wrapEmitWithTransaction(agent, emit) { + const { transaction } = agent + + return function wrappedHandler(evnt, request, response) { + transaction.init() + + function instrumentedFinish() { + response.removeListener('finish', instrumentedFinish) + request.removeListener('aborted', instrumentedFinish) + + // 状态码 + if (response.statusCode != null) { + const statusCode = String(response.statusCode) + const path = transaction.path || request.path + if (/^\d+$/.test(statusCode)) { + const context = request.headers['x-apigateway-context'] + const latency = Date.now() - transaction.start + const data = { + latency, + path, + method: request.method, + statusCode + } + agent.emit('responseFinish', context, data) + } + } + transaction.end() + } + // response结束时上报状态码和耗时 + response.once('finish', instrumentedFinish) + request.once('aborted', instrumentedFinish) + + return emit.apply(this, arguments) + } +} + +module.exports = function initialize(agent, http) { + if (!http) { + return false + } + + utils.wrapMethod(http.Server && http.Server.prototype, 'emit', function wrapEmit(emit) { + var txStarter = wrapEmitWithTransaction(agent, emit) + return function wrappedEmit(evnt) { + // 针对request事件做特殊逻辑 + if (evnt === 'request') { + return txStarter.apply(this, arguments) + } + return emit.apply(this, arguments) + } + }) +} diff --git a/src/instrumentation/express.js b/src/instrumentation/express.js index 0ff29d2..2cf3e92 100644 --- a/src/instrumentation/express.js +++ b/src/instrumentation/express.js @@ -38,27 +38,9 @@ module.exports = function initialize(agent, express) { utils.wrapMethod(layer, 'handle', function(func) { const { route } = layer const { path } = route - return function(request, response) { - function finish() { - response.removeListener('finish', finish) - request.removeListener('aborted', finish) - // 状态码 - if (response.statusCode != null) { - const responseCode = String(response.statusCode) - if (/^\d+$/.test(responseCode)) { - const context = request.headers['x-apigateway-context'] - agent.emit('responseFinish', context, request.method, path, responseCode) - } - } - } - - // response结束时上报状态码和耗时 - response.once('finish', finish) - request.once('aborted', finish) - - const handle = func.apply(this, arguments) - return handle - } + const { transaction } = agent + transaction.path = path + return func }) } return sourceRoute diff --git a/src/instrumentation/tencent-serverless-http.js b/src/instrumentation/tencent-serverless-http.js index 36bceb2..8babbda 100644 --- a/src/instrumentation/tencent-serverless-http.js +++ b/src/instrumentation/tencent-serverless-http.js @@ -1,16 +1,16 @@ const utils = require('../utils') -const { REUQEST_START_KEY } = require('../constants') const report = require('../report') module.exports = function initialize(agent, httpProxy) { utils.wrapMethod(httpProxy, 'proxy', function wrapRoute(fn) { - return function(server, event, context) { - context[REUQEST_START_KEY] = Date.now() + return function() { + const { transaction } = agent + transaction.init() const proxy = fn.apply(this, arguments) return new Promise(function(resolve) { - agent.once('responseFinish', function(ctx, method, path, responseCode) { + agent.once('responseFinish', function(ctx, data) { if (ctx) { - report.reportHttp(ctx, method, path, responseCode).then( + report.reportHttp(ctx, data).then( function() { resolve(proxy) }, diff --git a/src/instrumentations.js b/src/instrumentations.js index f761935..ab73095 100644 --- a/src/instrumentations.js +++ b/src/instrumentations.js @@ -3,6 +3,7 @@ const { MODULE_TYPE } = require('./constants') module.exports = function instrumentations() { return { express: { type: MODULE_TYPE.WEB_FRAMEWORK }, + finalhandler: { type: MODULE_TYPE.WEB_FRAMEWORK }, 'tencent-serverless-http': { type: MODULE_TYPE.PROXY } } } diff --git a/src/report.js b/src/report.js index 8996db9..8bea90a 100644 --- a/src/report.js +++ b/src/report.js @@ -1,6 +1,5 @@ const { Capi } = require('@tencent-sdk/capi') const logger = require('./logger') -const { REUQEST_START_KEY } = require('./constants') // 字符串转16进制 function str2hex(str) { @@ -14,7 +13,7 @@ function str2hex(str) { return arr.join('') } -exports.reportHttp = async function(context, method, path, statusCode) { +exports.reportHttp = async function(context, { latency, method, path, statusCode }) { try { context = JSON.parse(decodeURIComponent(context)) // 自定级监控上报的指标名只支持【a-zA-Z0-9_-】,所以把path进行转义上报 @@ -55,7 +54,6 @@ exports.reportHttp = async function(context, method, path, statusCode) { host: 'monitor.tencentcloudapi.com' } - const latency = Date.now() - context[REUQEST_START_KEY] const keyPrefix = `${method}_${path}` const Metrics = [ { MetricName: 'request', Value: 1 }, diff --git a/src/shimmer.js b/src/shimmer.js index af7c60a..2c48104 100644 --- a/src/shimmer.js +++ b/src/shimmer.js @@ -3,12 +3,25 @@ const fs = require('fs') const utils = require('./utils') const INSTRUMENTATIONS = require('./instrumentations')() -function _firstPartyInstrumentation(agent, fileName, nodule) { +const { MODULE_TYPE } = require('./constants') + +const CORE_INSTRUMENTATION = { + http: { + type: MODULE_TYPE.TRANSACTION, + file: 'http.js' + }, + https: { + type: MODULE_TYPE.TRANSACTION, + file: 'http.js' + } +} + +function _firstPartyInstrumentation(agent, fileName, nodule, moduleName) { if (!fs.existsSync(fileName)) { return } try { - return require(fileName)(agent, nodule) + return require(fileName)(agent, nodule, moduleName) } catch (error) { agent.emit('responseFinish') } @@ -73,6 +86,19 @@ const shimmer = { }, bootstrapInstrumentation: function bootstrapInstrumentation(agent) { + // Instrument each of the core modules. + Object.keys(CORE_INSTRUMENTATION).forEach(function forEachCore(mojule) { + const core = CORE_INSTRUMENTATION[mojule] + const filePath = path.join(__dirname, 'instrumentation', 'core', core.file) + let uninstrumented = null + + try { + uninstrumented = require(mojule) + } catch (err) {} + + _firstPartyInstrumentation(agent, filePath, uninstrumented) + }) + // 注册所有注入模块 Object.keys(INSTRUMENTATIONS).forEach(function forEachInstrumentation(moduleName) { const instrInfo = INSTRUMENTATIONS[moduleName] diff --git a/src/transaction/index.js b/src/transaction/index.js new file mode 100644 index 0000000..6ff162f --- /dev/null +++ b/src/transaction/index.js @@ -0,0 +1,19 @@ +class Transaction { + get start() { + return this._start + } + set Path(path) { + this._path = path + } + get path() { + return this._path + } + init() { + this._start = Date.now() + } + end() { + this._start = null + this._path = null + } +} +module.exports = Transaction From 255460b676d71e3cdb91f679d2248e4f27cb7c40 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 8 May 2020 02:06:34 +0000 Subject: [PATCH 02/14] chore(release): version 1.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## [1.0.1](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.0...v1.0.1) (2020-05-08) ### Bug Fixes * 保证finalhandler时执行正常 ([47c33cf](https://github.com/serverless-tencent/tencent-component-monitor/commit/47c33cfed4865b74b173453ee088cb3a6265364e)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee74b54..a8f5d88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.0.1](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.0...v1.0.1) (2020-05-08) + + +### Bug Fixes + +* 保证finalhandler时执行正常 ([47c33cf](https://github.com/serverless-tencent/tencent-component-monitor/commit/47c33cfed4865b74b173453ee088cb3a6265364e)) + # 1.0.0 (2020-05-06) diff --git a/package.json b/package.json index 0ddd6a9..b69fbc8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tencent-component-monitor", - "version": "1.0.0", + "version": "1.0.1", "description": "Tencent component monitor", "main": "src/index.js", "scripts": { From 3305b52c47fbbe36f25ba96762427ec1324fd71b Mon Sep 17 00:00:00 2001 From: wescai <35978557@qq.com> Date: Sat, 9 May 2020 18:33:25 +0800 Subject: [PATCH 03/14] fix: add report error log --- src/instrumentation/tencent-serverless-http.js | 7 ++++++- src/report.js | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/instrumentation/tencent-serverless-http.js b/src/instrumentation/tencent-serverless-http.js index 8babbda..9bc33df 100644 --- a/src/instrumentation/tencent-serverless-http.js +++ b/src/instrumentation/tencent-serverless-http.js @@ -11,7 +11,12 @@ module.exports = function initialize(agent, httpProxy) { agent.once('responseFinish', function(ctx, data) { if (ctx) { report.reportHttp(ctx, data).then( - function() { + function(_data) { + const { Response } = _data || {} + const { Error: error } = Response || {} + if (error && error.Message) { + console.warn('Report monitor data error: ' + error.Message) + } resolve(proxy) }, function() { diff --git a/src/report.js b/src/report.js index 8bea90a..63fa6c3 100644 --- a/src/report.js +++ b/src/report.js @@ -35,7 +35,7 @@ exports.reportHttp = async function(context, { latency, method, path, statusCode } = environment const Region = tencentcloud_region || envTencentRegion || envRegion || 'ap-guangzhou' if (!SecretId || !SecretKey) { - logger.warn('No SecretId or SecretKey in environment parameters.') + logger.warn('Report monitor data error: No SecretId or SecretKey in environment parameters.') return } const client = new Capi({ From da42f871b5901a1b96eb82386f03deff051492ee Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 9 May 2020 10:37:00 +0000 Subject: [PATCH 04/14] chore(release): version 1.0.2 ## [1.0.2](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.1...v1.0.2) (2020-05-09) ### Bug Fixes * add report error log ([3305b52](https://github.com/serverless-tencent/tencent-component-monitor/commit/3305b52c47fbbe36f25ba96762427ec1324fd71b)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a8f5d88..b73fc9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.0.2](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.1...v1.0.2) (2020-05-09) + + +### Bug Fixes + +* add report error log ([3305b52](https://github.com/serverless-tencent/tencent-component-monitor/commit/3305b52c47fbbe36f25ba96762427ec1324fd71b)) + ## [1.0.1](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.0...v1.0.1) (2020-05-08) diff --git a/package.json b/package.json index b69fbc8..12c22fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tencent-component-monitor", - "version": "1.0.1", + "version": "1.0.2", "description": "Tencent component monitor", "main": "src/index.js", "scripts": { From d9e4dc6ddccc3c8b84c0ce0152efb4bf3799a236 Mon Sep 17 00:00:00 2001 From: wescai <35978557@qq.com> Date: Wed, 13 May 2020 20:26:49 +0800 Subject: [PATCH 05/14] =?UTF-8?q?fix:=20=E8=8E=B7=E5=8F=96context=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/instrumentation/core/http.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/instrumentation/core/http.js b/src/instrumentation/core/http.js index 4043bf0..59c1fa0 100644 --- a/src/instrumentation/core/http.js +++ b/src/instrumentation/core/http.js @@ -15,7 +15,7 @@ function wrapEmitWithTransaction(agent, emit) { const statusCode = String(response.statusCode) const path = transaction.path || request.path if (/^\d+$/.test(statusCode)) { - const context = request.headers['x-apigateway-context'] + const context = request.__SLS_CONTEXT__ const latency = Date.now() - transaction.start const data = { latency, From f60a4831a03790e82d1d0950c3a024c37c670440 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 13 May 2020 12:30:00 +0000 Subject: [PATCH 06/14] chore(release): version 1.0.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## [1.0.3](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.2...v1.0.3) (2020-05-13) ### Bug Fixes * 获取context方式修改 ([d9e4dc6](https://github.com/serverless-tencent/tencent-component-monitor/commit/d9e4dc6ddccc3c8b84c0ce0152efb4bf3799a236)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b73fc9b..37750fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.0.3](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.2...v1.0.3) (2020-05-13) + + +### Bug Fixes + +* 获取context方式修改 ([d9e4dc6](https://github.com/serverless-tencent/tencent-component-monitor/commit/d9e4dc6ddccc3c8b84c0ce0152efb4bf3799a236)) + ## [1.0.2](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.1...v1.0.2) (2020-05-09) diff --git a/package.json b/package.json index 12c22fe..9dd79ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tencent-component-monitor", - "version": "1.0.2", + "version": "1.0.3", "description": "Tencent component monitor", "main": "src/index.js", "scripts": { From 286fe4bb38e946cabeae61aa88cf40a4f05c0089 Mon Sep 17 00:00:00 2001 From: yugasun Date: Wed, 13 May 2020 22:10:47 +0800 Subject: [PATCH 07/14] fix: remove context decode --- src/report.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/report.js b/src/report.js index 63fa6c3..221073f 100644 --- a/src/report.js +++ b/src/report.js @@ -15,7 +15,6 @@ function str2hex(str) { exports.reportHttp = async function(context, { latency, method, path, statusCode }) { try { - context = JSON.parse(decodeURIComponent(context)) // 自定级监控上报的指标名只支持【a-zA-Z0-9_-】,所以把path进行转义上报 path = str2hex(path) const ServiceType = 'monitor' From 2819a2cf5fccc2cad087a5e849a85a85535a1d5c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 13 May 2020 14:15:25 +0000 Subject: [PATCH 08/14] chore(release): version 1.0.4 ## [1.0.4](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.3...v1.0.4) (2020-05-13) ### Bug Fixes * remove context decode ([286fe4b](https://github.com/serverless-tencent/tencent-component-monitor/commit/286fe4bb38e946cabeae61aa88cf40a4f05c0089)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37750fc..ade6d4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.0.4](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.3...v1.0.4) (2020-05-13) + + +### Bug Fixes + +* remove context decode ([286fe4b](https://github.com/serverless-tencent/tencent-component-monitor/commit/286fe4bb38e946cabeae61aa88cf40a4f05c0089)) + ## [1.0.3](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.2...v1.0.3) (2020-05-13) diff --git a/package.json b/package.json index 9dd79ed..f0040bd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tencent-component-monitor", - "version": "1.0.3", + "version": "1.0.4", "description": "Tencent component monitor", "main": "src/index.js", "scripts": { From 62afa5ba57e15af53382290d95b23ef32c30b68f Mon Sep 17 00:00:00 2001 From: wescai <35978557@qq.com> Date: Wed, 20 May 2020 10:18:13 +0800 Subject: [PATCH 09/14] fix: remove monitor log --- src/instrumentation/tencent-serverless-http.js | 12 ++++++------ src/instrumentations.js | 1 - src/report.js | 4 ++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/instrumentation/tencent-serverless-http.js b/src/instrumentation/tencent-serverless-http.js index 9bc33df..ce8ccbf 100644 --- a/src/instrumentation/tencent-serverless-http.js +++ b/src/instrumentation/tencent-serverless-http.js @@ -11,12 +11,12 @@ module.exports = function initialize(agent, httpProxy) { agent.once('responseFinish', function(ctx, data) { if (ctx) { report.reportHttp(ctx, data).then( - function(_data) { - const { Response } = _data || {} - const { Error: error } = Response || {} - if (error && error.Message) { - console.warn('Report monitor data error: ' + error.Message) - } + function(/* _data*/) { + // const { Response } = _data || {} + // const { Error: error } = Response || {} + // if (error && error.Message) { + // console.warn('Report monitor data error: ' + error.Message) + // } resolve(proxy) }, function() { diff --git a/src/instrumentations.js b/src/instrumentations.js index ab73095..f761935 100644 --- a/src/instrumentations.js +++ b/src/instrumentations.js @@ -3,7 +3,6 @@ const { MODULE_TYPE } = require('./constants') module.exports = function instrumentations() { return { express: { type: MODULE_TYPE.WEB_FRAMEWORK }, - finalhandler: { type: MODULE_TYPE.WEB_FRAMEWORK }, 'tencent-serverless-http': { type: MODULE_TYPE.PROXY } } } diff --git a/src/report.js b/src/report.js index 221073f..77a30dc 100644 --- a/src/report.js +++ b/src/report.js @@ -1,5 +1,5 @@ const { Capi } = require('@tencent-sdk/capi') -const logger = require('./logger') +// const logger = require('./logger') // 字符串转16进制 function str2hex(str) { @@ -34,7 +34,7 @@ exports.reportHttp = async function(context, { latency, method, path, statusCode } = environment const Region = tencentcloud_region || envTencentRegion || envRegion || 'ap-guangzhou' if (!SecretId || !SecretKey) { - logger.warn('Report monitor data error: No SecretId or SecretKey in environment parameters.') + // logger.warn('Report monitor data error: No SecretId or SecretKey in environment parameters.') return } const client = new Capi({ From 50e2da5c370cd7586acb207413700ef9af518916 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 20 May 2020 02:20:46 +0000 Subject: [PATCH 10/14] chore(release): version 1.0.5 ## [1.0.5](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.4...v1.0.5) (2020-05-20) ### Bug Fixes * remove monitor log ([62afa5b](https://github.com/serverless-tencent/tencent-component-monitor/commit/62afa5ba57e15af53382290d95b23ef32c30b68f)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ade6d4e..9b20f29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.0.5](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.4...v1.0.5) (2020-05-20) + + +### Bug Fixes + +* remove monitor log ([62afa5b](https://github.com/serverless-tencent/tencent-component-monitor/commit/62afa5ba57e15af53382290d95b23ef32c30b68f)) + ## [1.0.4](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.3...v1.0.4) (2020-05-13) diff --git a/package.json b/package.json index f0040bd..4796f40 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tencent-component-monitor", - "version": "1.0.4", + "version": "1.0.5", "description": "Tencent component monitor", "main": "src/index.js", "scripts": { From a3f75dd05469e35204da38e3401b449539f685c0 Mon Sep 17 00:00:00 2001 From: wescai <35978557@qq.com> Date: Mon, 25 May 2020 15:30:02 +0800 Subject: [PATCH 11/14] =?UTF-8?q?fix:=20=E4=B8=8A=E6=8A=A5=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0100ms=E8=B6=85=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/report.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4796f40..98566f0 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,6 @@ "semantic-release": "^17.0.4" }, "dependencies": { - "@tencent-sdk/capi": "0.2.15" + "@tencent-sdk/capi": "^0.2.16" } } diff --git a/src/report.js b/src/report.js index 77a30dc..976363d 100644 --- a/src/report.js +++ b/src/report.js @@ -50,7 +50,8 @@ exports.reportHttp = async function(context, { latency, method, path, statusCode } const debugOptions = { debug: false, - host: 'monitor.tencentcloudapi.com' + host: 'monitor.tencentcloudapi.com', + timeout: 100 } const keyPrefix = `${method}_${path}` From 09e4cef47efab97765f9447dd19893378586c203 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 25 May 2020 07:32:25 +0000 Subject: [PATCH 12/14] chore(release): version 1.0.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## [1.0.6](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.5...v1.0.6) (2020-05-25) ### Bug Fixes * 上报增加100ms超时 ([a3f75dd](https://github.com/serverless-tencent/tencent-component-monitor/commit/a3f75dd05469e35204da38e3401b449539f685c0)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b20f29..77c89bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.0.6](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.5...v1.0.6) (2020-05-25) + + +### Bug Fixes + +* 上报增加100ms超时 ([a3f75dd](https://github.com/serverless-tencent/tencent-component-monitor/commit/a3f75dd05469e35204da38e3401b449539f685c0)) + ## [1.0.5](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.4...v1.0.5) (2020-05-20) diff --git a/package.json b/package.json index 98566f0..e7cb5be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tencent-component-monitor", - "version": "1.0.5", + "version": "1.0.6", "description": "Tencent component monitor", "main": "src/index.js", "scripts": { From 982b4182e513255f0d093c53aaf3136e0576cdd7 Mon Sep 17 00:00:00 2001 From: yugasun Date: Thu, 28 May 2020 16:43:46 +0800 Subject: [PATCH 13/14] feat: support no report flag --- src/instrumentation/core/http.js | 2 +- src/instrumentation/tencent-serverless-http.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/instrumentation/core/http.js b/src/instrumentation/core/http.js index 59c1fa0..dfb3fbd 100644 --- a/src/instrumentation/core/http.js +++ b/src/instrumentation/core/http.js @@ -23,7 +23,7 @@ function wrapEmitWithTransaction(agent, emit) { method: request.method, statusCode } - agent.emit('responseFinish', context, data) + agent.emit('responseFinish', context, data, request.__SLS_NO_REPORT__) } } transaction.end() diff --git a/src/instrumentation/tencent-serverless-http.js b/src/instrumentation/tencent-serverless-http.js index ce8ccbf..7b64ef8 100644 --- a/src/instrumentation/tencent-serverless-http.js +++ b/src/instrumentation/tencent-serverless-http.js @@ -8,8 +8,8 @@ module.exports = function initialize(agent, httpProxy) { transaction.init() const proxy = fn.apply(this, arguments) return new Promise(function(resolve) { - agent.once('responseFinish', function(ctx, data) { - if (ctx) { + agent.once('responseFinish', function(ctx, data, noReport) { + if (ctx && noReport !== true) { report.reportHttp(ctx, data).then( function(/* _data*/) { // const { Response } = _data || {} From 9f725c68b98fcf93970598f7f12a3e6049c8f85c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 28 May 2020 08:49:18 +0000 Subject: [PATCH 14/14] chore(release): version 1.1.0 # [1.1.0](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.6...v1.1.0) (2020-05-28) ### Features * support no report flag ([982b418](https://github.com/serverless-tencent/tencent-component-monitor/commit/982b4182e513255f0d093c53aaf3136e0576cdd7)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77c89bb..869534a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.1.0](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.6...v1.1.0) (2020-05-28) + + +### Features + +* support no report flag ([982b418](https://github.com/serverless-tencent/tencent-component-monitor/commit/982b4182e513255f0d093c53aaf3136e0576cdd7)) + ## [1.0.6](https://github.com/serverless-tencent/tencent-component-monitor/compare/v1.0.5...v1.0.6) (2020-05-25) diff --git a/package.json b/package.json index e7cb5be..50bb92f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tencent-component-monitor", - "version": "1.0.6", + "version": "1.1.0", "description": "Tencent component monitor", "main": "src/index.js", "scripts": {