mirror of
https://github.com/ctripcorp/zeus.git
synced 2024-09-20 23:56:05 +08:00
analyzer bug when nginx does internal redirect
This commit is contained in:
parent
163cbf9e50
commit
5d0a5645d1
|
@ -22,6 +22,10 @@ public class AccessLogLineFormat implements LineFormat {
|
|||
public AccessLogLineFormat(String format) {
|
||||
setFormat(format);
|
||||
registerPatternForKey("http_x_forwarded_for", "(-|(?:[0-9.]+(?:, [0-9.]+)*))");
|
||||
registerPatternForKey("request_time", "(-|\\d+\\.\\d+)");
|
||||
registerPatternForKey("upstream_response_time", "((?:-|\\d+\\.\\d+)(?: : (?:-|\\d+\\.\\d+))?)");
|
||||
registerPatternForKey("upstream_addr", "((?:-|\\S+)(?: : (?:-|\\S+)?))");
|
||||
registerPatternForKey("upstream_status", "((?:-|\\d{3})(?: : (?:-|\\d{3})?))");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -72,6 +72,10 @@ public class LogParsingTest {
|
|||
String log4 = "[02/Dec/2015:13:00:10 +0800] ws.schedule.ctripcorp.com vms09191 10.8.95.27 POST /UbtPushApi/UserActionReceiveHandler.ashx \"-\" 80 - 10.8.91.104 - HTTP/1.1 \"Java/THttpClient/HC\" \"-\" \"-\" ws.schedule.ctripcorp.com 200 24 0.007 0.007 10.8.168.238:80 200";
|
||||
LineFormat lineFormat = new AccessLogLineFormat()
|
||||
.setFormat(AccessLogFormat)
|
||||
.registerPatternForKey("request_time", "(-|\\d+\\.\\d+)")
|
||||
.registerPatternForKey("upstream_response_time", "((?:-|\\d+\\.\\d+)(?: : (?:-|\\d+\\.\\d+))?)")
|
||||
.registerPatternForKey("upstream_addr", "((?:-|\\S+)(?: : (?:-|\\S+)?))")
|
||||
.registerPatternForKey("upstream_status", "((?:-|\\d{3})(?: : (?:-|\\d{3})?))")
|
||||
.registerPatternForKey("http_x_forwarded_for", "(-|(?:[0-9.]+(?:, [0-9.]+)*))")
|
||||
.generate();
|
||||
List<LineFormat> formats = new ArrayList<>();
|
||||
|
@ -95,6 +99,35 @@ public class LogParsingTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInternalRewriteParser() {
|
||||
String log = "[02/Feb/2016:17:01:02 +0800] ws.connect.qiche.ctripcorp.com vms14669 10.8.208.22 GET /502page \"-\" 80 - 10.8.78.102 - HTTP/1.1 \"-\" \"-\" \"-\" ws.connect.qiche.ctripcorp.com 502 6003 0.015 - : 0.006 10.8.91.168:80 : 10.8.16.4:80 - : 200";
|
||||
System.out.println(log);
|
||||
LineFormat lineFormat = new AccessLogLineFormat().setFormat(AccessLogFormat)
|
||||
.registerPatternForKey("request_time", "(-|\\d+\\.\\d+)")
|
||||
.registerPatternForKey("upstream_response_time", "((?:-|\\d+\\.\\d+)(?: : (?:-|\\d+\\.\\d+))?)")
|
||||
.registerPatternForKey("upstream_addr", "((?:-|\\S+)(?: : (?:-|\\S+)?))")
|
||||
.registerPatternForKey("upstream_status", "((?:-|\\d{3})(?: : (?:-|\\d{3})?))")
|
||||
.generate();
|
||||
List<LineFormat> formats = new ArrayList<>();
|
||||
formats.add(lineFormat);
|
||||
final LogParser parser = new AccessLogParser(formats);
|
||||
Assert.assertTrue(parser.parse(log).size() > 0);
|
||||
for (KeyValue keyValue : parser.parse(log)) {
|
||||
switch (keyValue.getKey()) {
|
||||
case "upstream_response_time":
|
||||
Assert.assertEquals("- : 0.006", keyValue.getValue());
|
||||
break;
|
||||
case "upstream_addr":
|
||||
Assert.assertEquals("10.8.91.168:80 : 10.8.16.4:80", keyValue.getValue());
|
||||
break;
|
||||
case "upstream_status":
|
||||
Assert.assertEquals("- : 200", keyValue.getValue());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJsonSerializer() {
|
||||
String log = "[17/Nov/2015:15:10:44 +0800] ws.you.ctripcorp.com vms09191 10.8.95.27 POST /gsapi/api/xml/GetRecmdProduct \"-\" 80 - 10.8.106.66 - HTTP/1.1 \"-\" \"-\" \"-\" ws.you.ctripcorp.com 200 521 0.042 0.039 10.8.168.228:80 200";
|
||||
|
|
Loading…
Reference in a new issue