我需要找到从亚马逊EC2实例发出的API(Rest API调用外部实例)调用的响应时间(在EC2上运行的应用程序正在进行这些调用)。如果我还可以根据正则表达式或完整的网址过滤调用,那将会很棒。我们一直在考虑记录调用和分析数据或使用Dynatrace,Nagios等工具,因此不需要更改代码。 如果有人实施了这样的解决方案,请告诉我们。
答案 0 :(得分:0)
这可能不是一个完整的答案,但是按照从日志开始的想法,我建议使用Cloudwatch:https://aws.amazon.com/cloudwatch/details/#log-monitoring
答案 1 :(得分:0)
根据您的访问级别,您可以使用https://www.wireshark.org/之类的内容来监控所有流量并进行网址/协议过滤。您可以尝试使用http://papertrailapp.com/等日志聚合器进行过滤。
如你所说,你也可以使用某种形式的APM,如dynatrace,statsd,instrumental [1],newrelic,datadog等,在你的应用程序中进行监控。
[1]我为乐器工作。
答案 2 :(得分:0)
您可以设置一个简单的代理,用于衡量Web请求时间并为此度量编写度量标准。
有一些不错的工具,请查看http://datadoghq.com/product或http://devmetrics.io/logslib
例如,简单的nodejs代理与devmetrics lib:
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);