logstash-filter-google_appengine 0.104.0 → 0.105.0
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:
|
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
|