С тех пор, как мы добавили этот код, чтобы проверить, может ли наш API связываться с другим сервисом, объем памяти, записанный с помощью AWS, неуклонно увеличивается, пока контейнер не будет извлечен и перезапущен. За шесть дней он поднялся до 600% своего предыдущего стабильного состояния, перезапустился и сделал то же самое. Он делал это 4 раза подряд с одинаковой скоростью. API используется в течение дня с разными скоростями, но запросы проверки работоспособности - с постоянной скоростью.
Намерение состоит в том, чтобы использовать это как простую «канарейку в угольной шахте», так что мы видим, что наш API больше не может связаться с другой службой, мы знаем, что любые подлинные запросы данных будут терпеть неудачу
const request = require('basic-request');
...
app.get( '/healthcheck', ( req, res ) => {
request.getResponse('https://' + process.env.UVAPI_ECO_HOST + ':' + process.env.UVAPI_ECO_PORT + '/rest/api/swagger.json',
'GET', null, (error: string, response: any) => {
res.send({
build: process.env.ORIGINAL_BUILD_NUMBER,
deploy: process.env.DEPLOY_NUMBER,
hash: process.env.GIT_COMMIT,
hostname: process.env.hostname,
service_status: {
ecoconnect: (error || String(response.statusCode) !== '200') ? 'failed' : 'ok'
},
tracking_id: process.env.TRACKING_ID,
version: process.env.VERSION
});
});
} );
Ранее он создавал объект из process.env .______ значений и затем res.send его обратно. Только когда мы начали использовать request.getResponse , память начала накапливаться.