logstash-filter-varnishlog 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2e70f08b94d6fa83c9151078e5c806b796418a4b
4
- data.tar.gz: 9aed70b3bff1a9ab3518ef526d03067b343d8268
3
+ metadata.gz: 3c08d34b9ad5c2eae13c1dd98206da8454e621b4
4
+ data.tar.gz: e4d80155ac77d30b1f87ec044451b971a72ce2ed
5
5
  SHA512:
6
- metadata.gz: 82a1140cf06a4906c5f554f4e241c4ced35333c909c47eb66f17c2cf44867dac26fbbd640ff541f9accb8819fba48edfd9d2073242831b06befa72d3e81ce7a7
7
- data.tar.gz: 818cf06c1a7d2508014ecff6cca6c4d72918dce3d6e0c9d8f8bd2a96ec04f7eb4b27e0c4b75779bb9333ea79adbd8cd2ac3d1b8c024a14316597fb1b0053f126
6
+ metadata.gz: 7a913c38bb62a4d456d4750e4738344732acad406e1316ee654719afb27ef7d30ca52f02d4b1f43a6fb151a037509bd20b55fe8e41d833b23b5a0802fbd2137e
7
+ data.tar.gz: 4c8c91d49762da74d81a5ef7942dad4624349ba47a54e17b41022d4ad6fb84d51f7a24c738657dedd01db8deb9c9d22342cdda8100361fb635d92fad38cdf5b9
@@ -1,3 +1,6 @@
1
+ ## 0.2.1
2
+ - Add xid and begin line
3
+ - regex performance
1
4
  ## 0.2.0
2
5
  - Make better RegEx Patterns
3
6
  ## 0.1.9
@@ -39,9 +39,16 @@ class LogStash::Filters::Varnishlog < LogStash::Filters::Base
39
39
  public
40
40
  def filter(event)
41
41
  items = event.get("[message]").split("\n")
42
- if request=/\*+\s+<<\s+(?<type>\w+)\s+>>\s+/.match(items[0])
42
+ if request=/\*+\s+<<\s+(?<type>\w+)\s+>>\s+(?<xid>\d+)/.match(items[0])
43
43
  event.set("type", request['type'].downcase)
44
+ event.set("xid", request['xid'])
44
45
  end
46
+
47
+ ##Begin
48
+ if first=/-+\s+Begin\s+(?<id>\w+\s\d+\s\w+)/.match(items[1])
49
+ event.set("begin", first['id'])
50
+ end
51
+
45
52
  ##Remove Blacklisted items from items hash
46
53
  items = items.grepv(blacklist_sections.join("|")) if blacklist_sections.any?
47
54
  ##
@@ -49,7 +56,7 @@ class LogStash::Filters::Varnishlog < LogStash::Filters::Base
49
56
  ##timestamps
50
57
  timestamps = items.grep(/Timestamp/)
51
58
  timestamps.each do |timestamp|
52
- if match = /-\s+Timestamp\s+(?<step>.+): (?<time_a>.*) (?<time_b>.+) (?<time_c>.+)/.match(timestamp)
59
+ if match = /-{1,2}\s+Timestamp\s+(?<step>\w{3,10}): (?<time_a>\d{10}\.\d{6}) (?<time_b>(0|\d+)\.\d{6}) (?<time_c>(0|\d+)\.\d{6})/.match(timestamp)
53
60
  event.set(normalize_fields("timestamp_" + match['step'] ), match['time_a'])
54
61
  event.set(normalize_fields("timestamp_" + match['step'] + "_raw"), match['time_a'] + " " + match['time_b'] + " " + match['time_c'])
55
62
  end
@@ -76,22 +83,22 @@ class LogStash::Filters::Varnishlog < LogStash::Filters::Base
76
83
 
77
84
  # Requests
78
85
  ## Request headers.
79
- request_headers = items.grep(/(Be)?([rR]eq|[rR]esp)Header/)
86
+ request_headers = items.grep(/(Bereq|Req|Beresp|Resp)Header/)
80
87
  request_headers.each do |header|
81
- if match = /-+\s+(Be)?([rR]eq|[rR]esp)Header\s+(?<header_name>.+): (?<header_value>.*)/.match(header)
88
+ if match = /-+\s+(Bereq|Req|Beresp|Resp)Header\s+(?<header_name>.+): (?<header_value>.*)/.match(header)
82
89
  event.set(normalize_fields(match['header_name']), match['header_value'])
83
90
  end
84
91
  end
85
92
  ## Match ReqMethod.
86
- if method_match = /-+\s+(Be)?([rR]eq|[rR]esp)Method\s+(?<method>.+)/.match(items.grep(/(Be)?([rR]eq|[rR]esp)Method/)[0])
93
+ if method_match = /-+\s+(Bereq|Req|Beresp|Resp)Method\s+(?<method>.+)/.match(items.grep(/(Bereq|Req|Beresp|Resp)Method/)[0])
87
94
  event.set("http_method", method_match['method'])
88
95
  end
89
96
  ## Match ReqURL.
90
- if url_match = /-+\s+(Be)?([rR]eq|[rR]esp)URL\s+(?<url>\/.+)/.match(items.grep(/(Be)?([rR]eq|[rR]esp)URL/)[0])
97
+ if url_match = /-+\s+(Bereq|Req|Beresp|Resp)URL\s+(?<url>\/.+)/.match(items.grep(/(Bereq|Req|Beresp|Resp)URL/)[0])
91
98
  event.set("url", url_match['url'])
92
99
  end
93
100
  ## Match ReqProtocol.
94
- if protocol_match = /-+\s+(Be)?([rR]eq|[rR]esp)Protocol\s+(?<protocol>.+)/.match(items.grep(/(Be)?([rR]eq|[rR]esp)Protocol/)[0])
101
+ if protocol_match = /-+\s+(Bereq|Req|Beresp|Resp)Protocol\s+(?<protocol>.+)/.match(items.grep(/(Bereq|Req|Beresp|Resp)Protocol/)[0])
95
102
  event.set("protocol", protocol_match['protocol'])
96
103
  end
97
104
  ## FetchError.
@@ -99,10 +106,10 @@ class LogStash::Filters::Varnishlog < LogStash::Filters::Base
99
106
  event.set("FetchError", error_match['error'])
100
107
  end
101
108
  ## Match RespStatus
102
- status_match = items.grep(/(Be)?([rR]eq|[rR]esp)Status/)
109
+ status_match = items.grep(/(Bereq|Req|Beresp|Resp)Status/)
103
110
  states = []
104
111
  status_match.each_with_index do |status, index|
105
- if match = /-+\s+(Be)?([rR]eq|[rR]esp)Status\s+(?<status>.+)/.match(status)
112
+ if match = /-+\s+(Bereq|Req|Beresp|Resp)Status\s+(?<status>\d{3})/.match(status)
106
113
  states.push(match['status'].to_i)
107
114
  end
108
115
  if index == status_match.size - 1
@@ -110,10 +117,10 @@ class LogStash::Filters::Varnishlog < LogStash::Filters::Base
110
117
  end
111
118
  end
112
119
  ## Match RespReason
113
- response_reason = items.grep(/(Be)?([rR]eq|[rR]esp)Reason/)
120
+ response_reason = items.grep(/(Bereq|Req|Beresp|Resp)Reason/)
114
121
  reasons = []
115
122
  response_reason.each_with_index do |reason, index|
116
- if match = /-+\s+(Be)?([rR]eq|[rR]esp)Reason\s+(?<reason>.+)/.match(reason)
123
+ if match = /-+\s+(Bereq|Req|Beresp|Resp)Reason\s+(?<reason>.+)/.match(reason)
117
124
  reasons.push(match['reason'])
118
125
  end
119
126
  if index == response_reason.size - 1
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-filter-varnishlog'
3
- s.version = '0.2.0'
3
+ s.version = '0.2.1'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = 'A logstash plugin reading varnishlog output'
6
6
  s.description = 'logstash filter plugin reading varnishlog grouped by id'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-varnishlog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Herweg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-03 00:00:00.000000000 Z
11
+ date: 2018-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement