new relic로 일정 기간이 경과한 레코드 삭제
new relic에서 "server not responding"이 된 후 일정 기간이 경과한 레코드 삭제
AWS EC2에서 인스턴스가 Auto Scaling으로 종료된 후에도 new relic 측에서 레코드가 계속 남아 있으므로 Lambda를 사용하여 정기적으로 삭제하도록 했습니다.
code
npm install moment request
하고 curl적인 처리를 하고 있을 뿐 index.js
var request = require('request');
var moment = require('moment');
var expireDays = process.env.expireDays || 7;
var apiKey = '【new relic で発行されたAPI KEY】';
var options = {
url: 'https://api.newrelic.com/v2/servers.json',
headers: {
'X-Api-Key': apiKey
}
};
var options_del = {
url: 'https://api.newrelic.com/v2/servers/%s.json', // 実行時に上書き
method: 'DELETE',
headers: {
'X-Api-Key': apiKey
}
};
var now = moment();
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body);
info.servers.forEach(function(item, index, arr) {
if (item.reporting == false) {
var m = moment(item.last_reported_at);
if (now.diff(m, 'days') >= expireDays) {
// send DETETE request
console.log('*** deleting not reporting server from newrelic ***')
console.log(item);
options_del['url'] = 'https://api.newrelic.com/v2/servers/' + item.id + '.json';
// console.log(options_del);
request(options_del, callback_del);
}
}
});
} else {
console.log('*** execute FAILED ***');
console.log(body);
}
}
function callback_del(error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body);
// console.log(info);
var id = info.server.id;
console.log('*** execute DELETE SUCCEEDED:' + id + ' ***');
} else {
console.log('*** execute DELETE FAILED ***');
console.log(body);
}
}
exports.handler = (event, context, _callback) => {
console.log('*** start: deleting not reporting server from newrelic more than '+ expireDays + ' days ago ***');
request(options, callback);
_callback(null, 'all done: delete records more than '+ expireDays + ' days ago.');
};
대상의 일수는 환경 변수로 바꿀 수 있다
process.env.*
에서 환경 변수를 참조 할 수 있으므로 이것을 사용합니다.expireDays 로 지정할 수 있다 (지정 없는 경우는 7일에 처리) 대로.
별로 바꾸는 수요는 없을지도 모릅니다.
see also
Feature Idea: Auto Delete Non-Reporting Servers - Feature Ideas / Feature Ideas: APM/UI - New Relic Online Technical Community
처음에는 이 원라이너를, 깨달았을 때에 수동으로 가고 있었습니다.
Reference
이 문제에 관하여(new relic로 일정 기간이 경과한 레코드 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masawo/items/ad2bd9dc9a6552372e3d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(new relic로 일정 기간이 경과한 레코드 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masawo/items/ad2bd9dc9a6552372e3d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)