logstash-filter-google_appengine 0.120.0 → 0.121.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: d611a1687fbd6223a5fddc1369fd0dd87c85a142
4
- data.tar.gz: 4d31825089d96b056217accf706425073e019cb7
3
+ metadata.gz: a3b95e78210a10d77a1042ed9d7a598bcd9d577a
4
+ data.tar.gz: 83eee1233cf84a75374c1f64984c3ef9b8ecfa71
5
5
  SHA512:
6
- metadata.gz: f6d922c64b3a9e64a299e4f1dba5621ae3252c5fa2674c1d358a682822a70f85c62c182b692324da837771775e1ae16cf25f22bf7c4f9d254ba6d084a3f662cf
7
- data.tar.gz: fc8620ce2f83a84eda9d5a587e844007c5b3e19b1aadd86453e1d5c1ed9f93e0362a7bf00373d2ca511f1a7a2e649701e686901ca8a422384446861e1692203b
6
+ metadata.gz: 3675bf66f7ff2b80afc9c7303a51e777a244bfbeb2b435f0dce665cec426319ce9a40934c8055b2bf76d72e01d2060369aa2342759c764b09e74f67413adf018
7
+ data.tar.gz: b625103c5261ecaecae991d48c55ac29bde8143f859f492febd6cb63f039303a503bf3ce6b521feb480a8a8b881c522583bae6db8c53c388962ea45a59bcb624
@@ -1,16 +1,14 @@
1
1
  # encoding: utf-8
2
2
  require "logstash/filters/base"
3
3
  require "logstash/namespace"
4
- require 'digest'
5
4
 
6
5
  class LogStash::Filters::GoogleAppengine < LogStash::Filters::Base
7
6
 
8
7
  config_name "google_appengine"
9
8
 
10
9
  public
10
+
11
11
  def register
12
- @md5 = Digest::MD5.new
13
- @semaphore = Mutex.new
14
12
  end
15
13
 
16
14
  def filter(event)
@@ -43,7 +41,7 @@ class LogStash::Filters::GoogleAppengine < LogStash::Filters::Base
43
41
 
44
42
  def collect_line_data(i, line, payload)
45
43
  {
46
- 'id' => get_id(payload['requestId'] + i.to_s),
44
+ 'id' => (payload['requestId'] + i.to_s),
47
45
  'message' => line.delete('logMessage'),
48
46
  'position' => i
49
47
  }
@@ -54,7 +52,7 @@ class LogStash::Filters::GoogleAppengine < LogStash::Filters::Base
54
52
  # noinspection RubyStringKeysInHashInspection
55
53
  def collect_resource_request_data(payload)
56
54
  {
57
- 'id' => get_id(payload['requestId']),
55
+ 'id' => payload['requestId'],
58
56
  'time' => payload['endTime'],
59
57
  'position' => 0
60
58
  }
@@ -67,10 +65,4 @@ class LogStash::Filters::GoogleAppengine < LogStash::Filters::Base
67
65
  new_event
68
66
  end
69
67
 
70
- def get_id(source)
71
- @semaphore.synchronize {
72
- @md5.hexdigest(source) #md5 isn't threadsafe :(
73
- }
74
- end
75
-
76
68
  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.120.0'
4
+ s.version = '0.121.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"
@@ -16,10 +16,9 @@ Gem::Specification.new do |s|
16
16
 
17
17
  s.metadata = {"logstash_plugin" => "true", "logstash_group" => "filter"}
18
18
 
19
- #s.add_runtime_dependency "logstash-core", '>= 5.0.0', '< 6.0.0'
20
- s.add_runtime_dependency "logstash-core", '5.0.0'
19
+ s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
20
+
21
+ s.add_development_dependency 'logstash-devutils'
21
22
 
22
- s.add_development_dependency 'logstash-devutils', '>= 1.0.0', '< 2.0.0'
23
- s.add_development_dependency 'logstash-core-plugin-api', '2.1.17'
24
23
  end
25
24
 
@@ -0,0 +1 @@
1
+ {"httpRequest":{"status":200},"insertId":"58aa3f900007437ae2d40d60","labels":{"clone_id":"00c61b117cfd455a65e9c255fe7ad6e20ee1f8a53bd8decf33c2a74b062edf2f4d9a62eec424"},"logName":"projects/small-improvements-hrd/logs/appengine.googleapis.com%2Frequest_log","operation":{"first":true,"id":"58aa3f8f00ff03c6042eabdadf0001737e736d616c6c2d696d70726f76656d656e74732d687264000133000100","last":true,"producer":"appengine.googleapis.com/request_id"},"protoPayload":{"@type":"type.googleapis.com/google.appengine.logging.v1.RequestLog","appEngineRelease":"1.9.48","appId":"s~small-improvements-hrd","cost":1.12093e-07,"endTime":"2017-02-20T00:59:59.659992Z","finished":true,"first":true,"host":"radius.small-improvements.com","httpVersion":"HTTP/1.1","instanceId":"00c61b117cfd455a65e9c255fe7ad6e20ee1f8a53bd8decf33c2a74b062edf2f4d9a62eec424","instanceIndex":-1,"ip":"104.154.201.157","latency":"0.412692s","line":[{"logMessage":"IdentityContextLogger logUserAndHisProperties: [Identity][BEGIN] userId:userId userMail:e@mail.com companyId:companyId isSI:false\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.265Z"},{"logMessage":"StoreReviewJSON init: e@mail.com ( user ) is viewing StoreReviewJSON\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.277Z"},{"logMessage":"StoreReviewJSON respond: type is BOSS_EVALUATION\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.278Z"},{"logMessage":"DraftService storeDraft: tim.rehm@radius.com is creating new draft type BOSS_EVALUATION, length=(92/0/0/0/0/0/0/0/0/0/0/)\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.306Z"},{"logMessage":"ReviewService editManagerEvaluation: new manager's review of matt@company.com foo.com: <div><br></div><div><br></div><div>Overall - [...]\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.404Z"},{"logMessage":"ReviewService editManagerEvaluation: basic manager ratings are changed\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.405Z"},{"logMessage":"ReviewService editManagerEvaluation: manager-review item 0 is changed (0->92 chars)\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.406Z"},{"logMessage":"ReviewService editManagerEvaluation: new boss x:-1 and new boss y:-1\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.411Z"},{"logMessage":"ActionBroker post: Dispatching ReviewManagerChangedAction\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.451Z"},{"logMessage":"RemoteAddressService getRemoteAddr: Request is forwarded by proxy '104.154.201.157'. Remote Address of client is '4.16.194.178, 35.186.210.178'\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.455Z"},{"logMessage":"AuditRecordService trackAuditRecord: tracking auditRecord REVIEW_EDIT_MANAGERASSESSMENT for companyID *jNS-sWGTzKWrvR4xcy46w: edited the manager's-assessment of the review {userName} in {containerName}\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.457Z"},{"logMessage":"AppEngineQueue enqueueBatch: 1 task(s) of /api/tasks/reviews/stats/cycle enqueued\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.603Z"},{"logMessage":"IdentityContextLogger logContextEnd: [Identity END]\n","severity":"INFO","sourceLocation":{"file":"JavaUtilLoggingAppender.java","functionName":"com.praisemanager.util.JavaUtilLoggingAppender.append","line":"25"},"time":"2017-02-20T00:59:59.604Z"}],"megaCycles":"241","method":"POST","requestId":"58aa3f8f00ff03c6042eabdadf0001737e736d616c6c2d696d70726f76656d656e74732d687264000133000100","resource":"/storeReviewJSON?csrfToken=de190133f12807935ed240369fd102a924128001f4eb911344eab432267514fa","responseSize":"1003","startTime":"2017-02-20T00:59:59.2473Z","status":200,"urlMapEntry":"unused","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36","versionId":"3"},"resource":{"labels":{"module_id":"default","project_id":"small-improvements-hrd","version_id":"3","zone":"us2"},"type":"gae_app"},"severity":"INFO","timestamp":"2017-02-20T00:59:59.2473Z"}
@@ -1,43 +1,60 @@
1
1
  require "logstash/devutils/rspec/spec_helper"
2
2
  require "logstash/filters/google_appengine"
3
3
  require "logstash/json"
4
- require 'digest'
5
4
 
6
5
  describe LogStash::Filters::GoogleAppengine do
7
6
 
8
- md5 = Digest::MD5.new
9
-
10
7
  config <<-CONFIG
11
8
  filter {
12
9
  google_appengine { }
13
10
  }
14
11
  CONFIG
15
12
 
16
- describe "should merge the request payload with the reuest lines data" do
13
+ describe "should merge the request payload with the request lines data" do
17
14
  test_sample = LogStash::Json::load(File.open("spec/filters/appengine.logs.json", "rb").read)
18
15
  sample (test_sample) do
19
16
  insist { subject.length } == 3
20
17
 
21
18
  insist { subject[0].get("message") }=="IdentityFilter logUserIdentity: [[meta]] <anonymous:true>\n"
22
- insist { subject[0].get("id") }== md5.hexdigest(subject[0].get("requestId") + "0")
19
+ insist { subject[0].get("id") }== subject[0].get("requestId") + "0"
23
20
  insist { subject[0].get("time") } == "2015-09-03T10:59:40.589Z"
24
21
  insist { subject[0].get("position") } == 0
25
22
  insist { subject[0].get("@type") } == nil
26
23
 
27
24
  insist { subject[1].get("message") }=="HttpOnlyFilter getSession: add additional Set-Cookie with httpOnly-flag for JSESSIONID\n"
28
- insist { subject[1].get("id") } == md5.hexdigest(subject[1].get("requestId") + "1")
25
+ insist { subject[1].get("id") } == subject[1].get("requestId") + "1"
29
26
  insist { subject[1].get("@type") } == nil
30
27
  insist { subject[1].get("time") } =="2015-09-03T10:59:40.65Z"
31
28
  insist { subject[1].get("position") } == 1
32
29
  end
33
30
  end
34
31
 
32
+ describe "should readv2 log data" do
33
+ test_sample = LogStash::Json::load(File.open("spec/filters/appengine.logs-v2.json", "rb").read)
34
+ sample (test_sample) do
35
+ insist { subject.length } == 13
36
+
37
+ insist { subject[0].get("message") }=="IdentityContextLogger logUserAndHisProperties: [Identity][BEGIN] userId:userId userMail:e@mail.com companyId:companyId isSI:false\n"
38
+ insist { subject[0].get("id") }== subject[0].get("requestId") + "0"
39
+ insist { subject[0].get("time") } == "2017-02-20T00:59:59.265Z"
40
+ insist { subject[0].get("position") } == 0
41
+ insist { subject[0].get("@type") } == nil
42
+
43
+ insist { subject[1].get("message") } == "StoreReviewJSON init: e@mail.com ( user ) is viewing StoreReviewJSON\n"
44
+ insist { subject[1].get("id") } == subject[1].get("requestId") + "1"
45
+ insist { subject[1].get("@type") } == nil
46
+ insist { subject[1].get("time") } =="2017-02-20T00:59:59.277Z"
47
+ insist { subject[1].get("position") } == 1
48
+ end
49
+ end
50
+
51
+
35
52
  describe "should handle logs even when they have no lines" do
36
53
  test_sample = LogStash::Json.load(File.open("spec/filters/appengine.logs-without-lines.json", "rb").read)
37
54
  sample (test_sample) do
38
55
 
39
56
  insist { subject.get("resource") } == "/images/website/welcome/keyFeatures/objectives.jpg"
40
- insist { subject.get("id") } == md5.hexdigest(subject.get("requestId"))
57
+ insist { subject.get("id") } == subject.get("requestId")
41
58
  insist { subject.get("time") } == subject.get("endTime")
42
59
  insist { subject.get("@type") } == nil
43
60
  end
metadata CHANGED
@@ -1,63 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-google_appengine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.120.0
4
+ version: 0.121.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: 2017-01-18 00:00:00.000000000 Z
11
+ date: 2017-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: logstash-core
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - '='
16
+ - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 5.0.0
20
- version_requirements: !ruby/object:Gem::Requirement
21
- requirements:
22
- - - '='
18
+ version: '1.60'
19
+ - - "<="
23
20
  - !ruby/object:Gem::Version
24
- version: 5.0.0
21
+ version: '2.99'
22
+ name: logstash-core-plugin-api
25
23
  prerelease: false
26
24
  type: :runtime
27
- - !ruby/object:Gem::Dependency
28
- name: logstash-devutils
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 1.0.0
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: 2.0.0
37
25
  version_requirements: !ruby/object:Gem::Requirement
38
26
  requirements:
39
27
  - - ">="
40
28
  - !ruby/object:Gem::Version
41
- version: 1.0.0
42
- - - "<"
29
+ version: '1.60'
30
+ - - "<="
43
31
  - !ruby/object:Gem::Version
44
- version: 2.0.0
45
- prerelease: false
46
- type: :development
32
+ version: '2.99'
47
33
  - !ruby/object:Gem::Dependency
48
- name: logstash-core-plugin-api
49
34
  requirement: !ruby/object:Gem::Requirement
50
35
  requirements:
51
- - - '='
36
+ - - ">="
52
37
  - !ruby/object:Gem::Version
53
- version: 2.1.17
38
+ version: '0'
39
+ name: logstash-devutils
40
+ prerelease: false
41
+ type: :development
54
42
  version_requirements: !ruby/object:Gem::Requirement
55
43
  requirements:
56
- - - '='
44
+ - - ">="
57
45
  - !ruby/object:Gem::Version
58
- version: 2.1.17
59
- prerelease: false
60
- type: :development
46
+ version: '0'
61
47
  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
62
48
  email: mruhwedel@small-improvements.com
63
49
  executables: []
@@ -71,6 +57,7 @@ files:
71
57
  - Rakefile
72
58
  - lib/logstash/filters/google_appengine.rb
73
59
  - logstash-filter-google_appengine.gemspec
60
+ - spec/filters/appengine.logs-v2.json
74
61
  - spec/filters/appengine.logs-without-lines.json
75
62
  - spec/filters/appengine.logs.json
76
63
  - spec/filters/google_appengine_spec.rb
@@ -103,6 +90,7 @@ signing_key:
103
90
  specification_version: 4
104
91
  summary: This filter may be used to decode via inputs appengine logs
105
92
  test_files:
93
+ - spec/filters/appengine.logs-v2.json
106
94
  - spec/filters/appengine.logs-without-lines.json
107
95
  - spec/filters/appengine.logs.json
108
96
  - spec/filters/google_appengine_spec.rb