logstash-filter-google_appengine 0.104.0 → 0.105.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e1e6c994bf36f5d7ec9d62843bb0108cb1f4fbc
|
4
|
+
data.tar.gz: 7adf185fbcb159dd37e9a4b1b157b7ea873d2a20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ad6b05101512292f48886d68a570aafefe08dd985ab410f718505dc1becedb9c50eedf5468fe78f263822c7cb3a6402087b73d9ec98671ea663613943e5b5c2
|
7
|
+
data.tar.gz: 6580ac9dd91cfecd13b59bd4dd4f4675a40373d0d6907e9b96de70deac781d9b26eb2afeb3e7ae31673f645d2037d7faa5ad195dd4cc9e342766ef0b561cf972
|
@@ -10,43 +10,50 @@ class LogStash::Filters::GoogleAppengine < LogStash::Filters::Base
|
|
10
10
|
public
|
11
11
|
def register
|
12
12
|
@md5 = Digest::MD5.new
|
13
|
-
end
|
13
|
+
end
|
14
14
|
|
15
|
-
public
|
16
15
|
def filter(event)
|
17
16
|
return unless filter?(event)
|
18
|
-
|
19
17
|
payload = event['protoPayload']
|
20
18
|
payload.delete '@type'
|
21
19
|
payload['type'] = 'gae'
|
22
20
|
lines = payload.delete 'line'
|
23
|
-
|
24
21
|
if lines
|
25
22
|
lines.each_with_index { |line, i|
|
26
|
-
|
27
|
-
line_data = {
|
28
|
-
'_id' => @md5.hexdigest(payload['requestId'] + i.to_s),
|
29
|
-
'message' => line.delete('logMessage')
|
30
|
-
}
|
31
|
-
.merge(payload)
|
32
|
-
.merge(line)
|
33
|
-
|
34
|
-
yield create_event(line_data)
|
35
|
-
|
23
|
+
yield create_event(collect_line_data(i, line, payload))
|
36
24
|
}
|
37
25
|
else
|
38
|
-
|
39
|
-
payload['time'] = payload['endTime']
|
40
|
-
yield create_event(payload)
|
26
|
+
yield create_event(collect_resource_request_data(payload))
|
41
27
|
end
|
42
28
|
event.cancel
|
43
|
-
end
|
29
|
+
end
|
44
30
|
|
45
31
|
private
|
32
|
+
# noinspection RubyStringKeysInHashInspection
|
33
|
+
def collect_line_data(i, line, payload)
|
34
|
+
{
|
35
|
+
'_id' => @md5.hexdigest(payload['requestId'] + i.to_s),
|
36
|
+
'message' => line.delete('logMessage'),
|
37
|
+
'position' => i
|
38
|
+
}
|
39
|
+
.merge(payload)
|
40
|
+
.merge(line)
|
41
|
+
end
|
42
|
+
|
43
|
+
# noinspection RubyStringKeysInHashInspection
|
44
|
+
def collect_resource_request_data(payload)
|
45
|
+
{
|
46
|
+
'_id' => @md5.hexdigest(payload['requestId']),
|
47
|
+
'time' => payload['endTime'],
|
48
|
+
'position' => 0
|
49
|
+
}
|
50
|
+
.merge(payload)
|
51
|
+
end
|
52
|
+
|
46
53
|
def create_event(payload)
|
47
54
|
new_event = LogStash::Event::new(payload)
|
48
55
|
filter_matched(new_event)
|
49
56
|
new_event
|
50
|
-
end
|
57
|
+
end
|
51
58
|
|
52
59
|
end # class LogStash::Filters::GoogleAppengine
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-filter-google_appengine'
|
4
|
-
s.version = '0.
|
4
|
+
s.version = '0.105.0'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "This filter may be used to decode via inputs appengine logs"
|
7
7
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
|
@@ -7,13 +7,13 @@ describe LogStash::Filters::GoogleAppengine do
|
|
7
7
|
|
8
8
|
md5 = Digest::MD5.new
|
9
9
|
|
10
|
-
|
11
|
-
config <<-CONFIG
|
10
|
+
config <<-CONFIG
|
12
11
|
filter {
|
13
12
|
google_appengine { }
|
14
13
|
}
|
15
|
-
|
14
|
+
CONFIG
|
16
15
|
|
16
|
+
describe "should merge the request payload with the reuest lines data" do
|
17
17
|
test_sample = LogStash::Json::load(File.open("spec/filters/appengine.logs.jsonl", "rb").read)
|
18
18
|
sample (test_sample) do
|
19
19
|
insist { subject.length } == 3
|
@@ -21,6 +21,7 @@ describe LogStash::Filters::GoogleAppengine do
|
|
21
21
|
insist { subject[0]["message"] }=="IdentityFilter logUserIdentity: [[meta]] <anonymous:true>\n"
|
22
22
|
insist { subject[0]["_id"] }== md5.hexdigest(subject[0]["requestId"] + "0")
|
23
23
|
insist { subject[0]["time"] } == "2015-09-03T10:59:40.589Z"
|
24
|
+
insist { subject[0]["position"] } == 0
|
24
25
|
|
25
26
|
insist { subject[0]["type"] } == "gae"
|
26
27
|
|
@@ -31,15 +32,11 @@ describe LogStash::Filters::GoogleAppengine do
|
|
31
32
|
insist { subject[1]["@type"] } == nil
|
32
33
|
insist { subject[1]["time"] } =="2015-09-03T10:59:40.65Z"
|
33
34
|
insist { subject[1]["type"] } == "gae"
|
35
|
+
insist { subject[1]["position"] } == 1
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
37
39
|
describe "should handle logs even when they have no lines" do
|
38
|
-
config <<-CONFIG
|
39
|
-
filter {
|
40
|
-
google_appengine { }
|
41
|
-
}
|
42
|
-
CONFIG
|
43
40
|
test_sample = LogStash::Json.load(File.open("spec/filters/appengine.logs-without-lines.jsonl", "rb").read)
|
44
41
|
sample (test_sample) do
|
45
42
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-google_appengine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.105.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Small Improvements
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logstash-core
|