Amazon ec2 如何监控EC2上的API调用?
我需要找到AmazonEC2实例发出的API(对外部实例的RESTAPI调用)调用的响应时间(有一个运行在EC2上的应用程序进行这些调用)。如果我也能根据正则表达式或完整的URL过滤调用,那就太好了。我们一直在考虑记录调用和分析数据,或者使用Dynatrace、Nagios等工具,这样就不需要更改代码。Amazon ec2 如何监控EC2上的API调用?,amazon-ec2,monitoring,Amazon Ec2,Monitoring,我需要找到AmazonEC2实例发出的API(对外部实例的RESTAPI调用)调用的响应时间(有一个运行在EC2上的应用程序进行这些调用)。如果我也能根据正则表达式或完整的URL过滤调用,那就太好了。我们一直在考虑记录调用和分析数据,或者使用Dynatrace、Nagios等工具,这样就不需要更改代码。 如果有人实施了这样的解决方案,请让我们知道 这可能不是一个完整的答案,但遵循从日志开始的想法,我建议您考虑使用Cloudwatch:根据您拥有的访问级别,您可以使用类似的方法来监控所有流量并进行
如果有人实施了这样的解决方案,请让我们知道 这可能不是一个完整的答案,但遵循从日志开始的想法,我建议您考虑使用Cloudwatch:根据您拥有的访问级别,您可以使用类似的方法来监控所有流量并进行url/协议过滤。您可以尝试类似的日志聚合器,它具有过滤功能 正如您所说的,您还可以使用某种形式的APM,如dynatrace、statsd、instrumental[1]、newrelic、datadog等,在应用程序内部进行监视
[1] 我为instrumental工作。您可以设置一个简单的代理,用于测量web请求时间,并为该度量编写度量标准 有一些很好的工具,看看或者 例如,具有devmetrics库的简单nodejs代理:
var httpProxy = require('http-proxy');
var logger = require('devmetrics-core');
var http = require('http');
var proxy = new httpProxy.createProxyServer({});
var proxyServer = http.createServer(function (req, res) {
// now
var start_time = new Date().getTime();
proxy.web(req, res, { target: 'http://localhost:80' });
res.on('finish', function() {
var latency = new Date().getTime() - start_time;
console.log("The request was proxied in " + latency + "ms");
logger.appGauge('web_request', latency);
});
});
proxyServer.listen(3000);