From ead54bee00c6f79a2b6305c832cdd56c6b43b9f9 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Tue, 9 Oct 2018 16:30:27 +0800 Subject: [PATCH] app: use newrelic --- .gitignore | 1 + .prettierignore | 1 - config.js | 3 ++- index.js | 4 ++++ newrelic.js | 24 ++++++++++++++++++++++ package.json | 1 + yarn.lock | 53 +++++++++++++++++++++++++++++++++++++++++++++---- 7 files changed, 81 insertions(+), 6 deletions(-) create mode 100644 newrelic.js diff --git a/.gitignore b/.gitignore index 2cbd2bc18..96605804b 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ config/app.json config/config.js yarn-error.log tmp +newrelic_agent.log diff --git a/.prettierignore b/.prettierignore index 06bb38b53..f0ad55e7d 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,3 @@ package.json docs/.vuepress/dist package-lock.json -routes/douyin/fuck-byted-acrawler.js diff --git a/config.js b/config.js index 496fc1904..d4931dc4a 100644 --- a/config.js +++ b/config.js @@ -50,5 +50,6 @@ module.exports = { name: process.env.HTTP_BASIC_AUTH_NAME || 'usernam3', pass: process.env.HTTP_BASIC_AUTH_PASS || 'passw0rd', }, - puppeteerWSEndpoint: process.env.PUPPETEER_WS_ENDPOINT || null, + puppeteerWSEndpoint: process.env.PUPPETEER_WS_ENDPOINT, + newrelicLicenseKey: process.env.NEWRELIC_LICENSE_KEY, }; diff --git a/index.js b/index.js index 30b248bb5..b7d0d0554 100644 --- a/index.js +++ b/index.js @@ -18,6 +18,10 @@ const router = require('./router'); const protected_router = require('./protected_router'); const mount = require('koa-mount'); +if (config.newrelicLicenseKey) { + require('newrelic'); +} + // API related const apiTemplate = require('./middleware/api-template'); diff --git a/newrelic.js b/newrelic.js new file mode 100644 index 000000000..77f0ccf3b --- /dev/null +++ b/newrelic.js @@ -0,0 +1,24 @@ +const config = require('./config'); + +exports.config = { + app_name: ['RSSHub'], + license_key: config.newrelicLicenseKey, + logging: { + level: 'info', + }, + allow_all_headers: true, + attributes: { + exclude: [ + 'request.headers.cookie', + 'request.headers.authorization', + 'request.headers.proxyAuthorization', + 'request.headers.setCookie*', + 'request.headers.x*', + 'response.headers.cookie', + 'response.headers.authorization', + 'response.headers.proxyAuthorization', + 'response.headers.setCookie*', + 'response.headers.x*', + ], + }, +}; diff --git a/package.json b/package.json index 8c1b2c248..be6da3be4 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "lru-cache": "4.1.3", "luxon": "^1.4.3", "markdown-it": "^8.4.2", + "newrelic": "^4.9.0", "path-to-regexp": "2.4.0", "pidusage": "^2.0.17", "plist": "^3.0.1", diff --git a/yarn.lock b/yarn.lock index ba79fe7dc..ba8b66816 100644 --- a/yarn.lock +++ b/yarn.lock @@ -663,6 +663,25 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" +"@newrelic/koa@^1.0.0": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@newrelic/koa/-/koa-1.0.6.tgz#3f34a59472a29e0997bf62f78e01a938bcc099e7" + dependencies: + methods "^1.1.2" + +"@newrelic/native-metrics@^3.0.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@newrelic/native-metrics/-/native-metrics-3.1.1.tgz#b2413a11426a080e9fd288e201607d3bdb0f8d56" + dependencies: + nan "^2.10.0" + semver "^5.5.1" + +"@newrelic/superagent@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@newrelic/superagent/-/superagent-1.0.0.tgz#d51265a9a677312d91f83ff1f99f5a5d51abf557" + dependencies: + methods "^1.1.2" + "@nodelib/fs.stat@^1.0.1": version "1.0.2" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.0.2.tgz#d056b68999769728a1cff8d643bc59eb6f0be436" @@ -693,6 +712,10 @@ version "10.1.0" resolved "https://registry.npmjs.org/@types/node/-/node-10.1.0.tgz#2783ee1b6c47cbd4044f4a233976c1ac5fa9e942" +"@tyriar/fibonacci-heap@^2.0.7": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@tyriar/fibonacci-heap/-/fibonacci-heap-2.0.8.tgz#819fdff85fb559790539ff8a347c246777b4011c" + "@vue/babel-preset-app@3.0.0-beta.11": version "3.0.0-beta.11" resolved "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.0.0-beta.11.tgz#c8b889aa73464050f9cd3f9dc621951d85c24508" @@ -1127,6 +1150,12 @@ async@^1.5.2: version "1.5.2" resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" +async@^2.1.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + dependencies: + lodash "^4.17.10" + async@^2.6.0: version "2.6.0" resolved "https://registry.npmjs.org/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" @@ -4216,7 +4245,7 @@ json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.0, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -4821,7 +4850,7 @@ merge2@^1.2.1: version "1.2.2" resolved "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34" -methods@^1.0.1: +methods@^1.0.1, methods@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -5030,7 +5059,7 @@ mz@^2.6.0, mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.11.1: +nan@^2.10.0, nan@^2.11.1: version "2.11.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" @@ -5107,6 +5136,22 @@ neo-async@^2.5.0: version "2.5.1" resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" +newrelic@^4.9.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/newrelic/-/newrelic-4.9.0.tgz#8d7e0426115e0b2cd078de2dafb95952e17879c3" + dependencies: + "@newrelic/koa" "^1.0.0" + "@newrelic/superagent" "^1.0.0" + "@tyriar/fibonacci-heap" "^2.0.7" + async "^2.1.4" + concat-stream "^1.5.0" + https-proxy-agent "^2.2.1" + json-stringify-safe "^5.0.0" + readable-stream "^2.1.4" + semver "^5.3.0" + optionalDependencies: + "@newrelic/native-metrics" "^3.0.0" + next-tick@1: version "1.0.0" resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" @@ -6245,7 +6290,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6: version "2.3.6" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: