rack-logstasher 1.0.0 → 1.0.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
- SHA1:
3
- metadata.gz: 2d5dadb9e4dfe9709a500d0d95c547473c085fde
4
- data.tar.gz: 3bfee07e71c02dc05878c8824a258d86193302b9
2
+ SHA256:
3
+ metadata.gz: d5094e6e9fe586e95d7dd08699e18c62d0019dee66ad0da6e2da1d6ac6b2d024
4
+ data.tar.gz: 6bebaffb4cb498b604a78fc3a3505144578c169fd158f464fb321a16201e1668
5
5
  SHA512:
6
- metadata.gz: 0bdce96aa0baed8c87f6866d2587160830b6431809141d3f184560a3fd6ba8966fbe5309ae1606f9a3bf23a8b31118d9cfd6d33d3017b192839eebc664c3377f
7
- data.tar.gz: 71dfb7ba5e1e77a33f2f379feef745d74c693736e292530ab1e5c477e4e5fb591b159cce7560e7d5c6ae75b4d6a42b80576ae971864cba22b5421db8b4d9a03f
6
+ metadata.gz: 252b77f49678629284adf356cdf662241ec7fcad6f4f773c8c974b51fab8d8c81d814ae32a252deffeb6eb5c48f8ebfcb3a74f8faa976cf45b4f296b48ad9852
7
+ data.tar.gz: 19451f78071d21aeb47807d6a11c9aaa7a82c8a61f3872db8fc31e30eb26469af1abcfbe332bc46cb433e69076bc184b01c9df67f43d9bdb7cb2a1a409212571
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.1
1
+ 2.6.1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # 1.0.1
2
+
3
+ - *Changes logging format* to drop the "@fields" prefix and rename "@tags" to "tags".
4
+ - Updates development dependencies
5
+
1
6
  # 1.0.0
2
7
 
3
8
  - Add support for Rack 2 (thanks @anicholson https://github.com/alphagov/rack-logstasher/issues/5)
data/Jenkinsfile ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env groovy
2
+
3
+ library("govuk")
4
+
5
+ node {
6
+ govuk.buildProject()
7
+ }
data/Rakefile CHANGED
@@ -4,9 +4,3 @@ require "rspec/core/rake_task"
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task :default => :spec
7
-
8
- require "gem_publisher"
9
- task :publish_gem do |t|
10
- gem = GemPublisher.publish_if_updated("rack-logstasher.gemspec", :rubygems)
11
- puts "Published #{gem}" if gem
12
- end
@@ -39,7 +39,7 @@ module Rack
39
39
  end
40
40
  end
41
41
 
42
- event = LogStash::Event.new('@fields' => data, '@tags' => ['request'])
42
+ event = LogStash::Event.new(data.merge('tags' => ['request']))
43
43
  msg = event.to_json + "\n"
44
44
  if @logger.respond_to?(:write)
45
45
  @logger.write(msg)
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  module Logstasher
3
- VERSION = "1.0.0"
3
+ VERSION = "1.0.1"
4
4
  end
5
5
  end
@@ -6,8 +6,8 @@ require 'rack/logstasher/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "rack-logstasher"
8
8
  spec.version = Rack::Logstasher::VERSION
9
- spec.authors = ["Alex Tomlins"]
10
- spec.email = ["alex.tomlins@digital.cabinet-office.gov.uk"]
9
+ spec.authors = ["GOV.UK Dev"]
10
+ spec.email = ["govuk-dev@digital.cabinet-office.gov.uk"]
11
11
  spec.description = %q{Rack middleware to log requests in logstash json event format. Like the logstasher gem, but for rack apps.}
12
12
  spec.summary = %q{Rack middleware to log requests in logstash json event format}
13
13
  spec.homepage = "https://github.com/alphagov/rack-logstasher"
@@ -21,9 +21,8 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency "rack", "~> 2.0"
22
22
  spec.add_dependency "logstash-event"
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.3"
24
+ spec.add_development_dependency "bundler"
25
25
  spec.add_development_dependency "rake"
26
- spec.add_development_dependency "rack-test", "0.6.2"
27
- spec.add_development_dependency "rspec", "2.14.1"
28
- spec.add_development_dependency "gem_publisher", "1.2.0"
26
+ spec.add_development_dependency "rack-test"
27
+ spec.add_development_dependency "rspec"
29
28
  end
data/spec/logger_spec.rb CHANGED
@@ -22,12 +22,11 @@ describe "Logger" do
22
22
  get "/foo?bar=baz"
23
23
 
24
24
  log_details = JSON.parse(last_log_line)
25
- fields = log_details['@fields']
26
25
 
27
- expect(fields['method']).to eq('GET')
28
- expect(fields['path']).to eq('/foo')
29
- expect(fields['query_string']).to eq('bar=baz')
30
- expect(fields['request']).to eq('GET /foo?bar=baz ') # env['SERVER_PROTOCOL'] is not set under rack-test
26
+ expect(log_details['method']).to eq('GET')
27
+ expect(log_details['path']).to eq('/foo')
28
+ expect(log_details['query_string']).to eq('bar=baz')
29
+ expect(log_details['request']).to eq('GET /foo?bar=baz ') # env['SERVER_PROTOCOL'] is not set under rack-test
31
30
  end
32
31
 
33
32
  it "should add request duration" do
@@ -35,16 +34,15 @@ describe "Logger" do
35
34
  get "/foo"
36
35
 
37
36
  log_details = JSON.parse(last_log_line)
38
- fields = log_details['@fields']
39
37
 
40
- expect(fields['duration']).to be_within(5).of(100)
38
+ expect(log_details['duration']).to be_within(5).of(100)
41
39
  end
42
40
 
43
41
  it "should add a tag of 'request'" do
44
42
  get "/foo?bar=baz"
45
43
 
46
44
  log_details = JSON.parse(last_log_line)
47
- expect(log_details['@tags']).to eq(['request'])
45
+ expect(log_details['tags']).to eq(['request'])
48
46
  end
49
47
 
50
48
  describe "adding extra headers to the log" do
@@ -70,9 +68,8 @@ describe "Logger" do
70
68
  get "/something", {}, {"HTTP_FOO" => "bar"}
71
69
 
72
70
  log_details = JSON.parse(last_log_line)
73
- fields = log_details['@fields']
74
71
 
75
- expect(fields['header_foo']).to eq('bar')
72
+ expect(log_details['header_foo']).to eq('bar')
76
73
  end
77
74
 
78
75
  it "should not add the key if the header is missing" do
@@ -80,9 +77,8 @@ describe "Logger" do
80
77
  get "/something"
81
78
 
82
79
  log_details = JSON.parse(last_log_line)
83
- fields = log_details['@fields']
84
80
 
85
- expect(fields).not_to have_key('header_foo')
81
+ expect(log_details).not_to have_key('header_foo')
86
82
  end
87
83
 
88
84
  it "should handle dashes in header name" do
@@ -90,9 +86,8 @@ describe "Logger" do
90
86
  get "/something", {}, {"HTTP_VARNISH_ID" => "1234"}
91
87
 
92
88
  log_details = JSON.parse(last_log_line)
93
- fields = log_details['@fields']
94
89
 
95
- expect(fields['varnish_id']).to eq('1234')
90
+ expect(log_details['varnish_id']).to eq('1234')
96
91
  end
97
92
  end
98
93
 
@@ -103,9 +98,8 @@ describe "Logger" do
103
98
  get "/something"
104
99
 
105
100
  log_details = JSON.parse(last_log_line)
106
- fields = log_details['@fields']
107
101
 
108
- expect(fields['header_foo']).to eq('bar')
102
+ expect(log_details['header_foo']).to eq('bar')
109
103
  end
110
104
 
111
105
  it "should not add the key if the header is missing" do
@@ -113,9 +107,8 @@ describe "Logger" do
113
107
  get "/something"
114
108
 
115
109
  log_details = JSON.parse(last_log_line)
116
- fields = log_details['@fields']
117
110
 
118
- expect(fields).not_to have_key('header_foo')
111
+ expect(log_details).not_to have_key('header_foo')
119
112
  end
120
113
 
121
114
  it "should handle dashes in header name" do
@@ -124,9 +117,8 @@ describe "Logger" do
124
117
  get "/something"
125
118
 
126
119
  log_details = JSON.parse(last_log_line)
127
- fields = log_details['@fields']
128
120
 
129
- expect(fields['cache_status']).to eq('MISS')
121
+ expect(log_details['cache_status']).to eq('MISS')
130
122
  end
131
123
 
132
124
  it "should match header in a case-insensitive fashion" do
@@ -135,9 +127,8 @@ describe "Logger" do
135
127
  get "/something"
136
128
 
137
129
  log_details = JSON.parse(last_log_line)
138
- fields = log_details['@fields']
139
130
 
140
- expect(fields['cache_status']).to eq('MISS')
131
+ expect(log_details['cache_status']).to eq('MISS')
141
132
  end
142
133
  end
143
134
  end
data/spec/spec_helper.rb CHANGED
@@ -10,7 +10,6 @@ Dir[File.expand_path("../support/**/*.rb", __FILE__)].each { |f| require f }
10
10
 
11
11
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
12
12
  RSpec.configure do |config|
13
- config.treat_symbols_as_metadata_keys_with_true_values = true
14
13
  config.run_all_when_everything_filtered = true
15
14
  config.filter_run :focus
16
15
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-logstasher
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
- - Alex Tomlins
7
+ - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-14 00:00:00.000000000 Z
11
+ date: 2019-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.3'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.3'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -70,48 +70,34 @@ dependencies:
70
70
  name: rack-test
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.6.2
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 0.6.2
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '='
88
- - !ruby/object:Gem::Version
89
- version: 2.14.1
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '='
95
- - !ruby/object:Gem::Version
96
- version: 2.14.1
97
- - !ruby/object:Gem::Dependency
98
- name: gem_publisher
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - '='
87
+ - - ">="
102
88
  - !ruby/object:Gem::Version
103
- version: 1.2.0
89
+ version: '0'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - '='
94
+ - - ">="
109
95
  - !ruby/object:Gem::Version
110
- version: 1.2.0
96
+ version: '0'
111
97
  description: Rack middleware to log requests in logstash json event format. Like
112
98
  the logstasher gem, but for rack apps.
113
99
  email:
114
- - alex.tomlins@digital.cabinet-office.gov.uk
100
+ - govuk-dev@digital.cabinet-office.gov.uk
115
101
  executables: []
116
102
  extensions: []
117
103
  extra_rdoc_files: []
@@ -121,10 +107,10 @@ files:
121
107
  - ".ruby-version"
122
108
  - CHANGELOG.md
123
109
  - Gemfile
110
+ - Jenkinsfile
124
111
  - LICENSE.txt
125
112
  - README.md
126
113
  - Rakefile
127
- - jenkins.sh
128
114
  - lib/rack/logstasher.rb
129
115
  - lib/rack/logstasher/logger.rb
130
116
  - lib/rack/logstasher/version.rb
@@ -151,8 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
137
  - !ruby/object:Gem::Version
152
138
  version: '0'
153
139
  requirements: []
154
- rubyforge_project:
155
- rubygems_version: 2.5.1
140
+ rubygems_version: 3.0.1
156
141
  signing_key:
157
142
  specification_version: 4
158
143
  summary: Rack middleware to log requests in logstash json event format
data/jenkins.sh DELETED
@@ -1,58 +0,0 @@
1
- #!/bin/bash
2
-
3
- REPO_NAME=${REPO_NAME:-"alphagov/rack-logstasher"}
4
- CONTEXT_MESSAGE=${CONTEXT_MESSAGE:-"default"}
5
- GH_STATUS_GIT_COMMIT=${SCHEMA_GIT_COMMIT:-${GIT_COMMIT}}
6
-
7
- function github_status {
8
- REPO_NAME="$1"
9
- STATUS="$2"
10
- MESSAGE="$3"
11
- gh-status "$REPO_NAME" "$GH_STATUS_GIT_COMMIT" "$STATUS" -d "Build #${BUILD_NUMBER} ${MESSAGE}" -u "$BUILD_URL" -c "$CONTEXT_MESSAGE" >/dev/null
12
- }
13
-
14
- function error_handler {
15
- trap - ERR # disable error trap to avoid recursion
16
- local parent_lineno="$1"
17
- local message="$2"
18
- local code="${3:-1}"
19
- if [[ -n "$message" ]] ; then
20
- echo "Error on or near line ${parent_lineno}: ${message}; exiting with status ${code}"
21
- else
22
- echo "Error on or near line ${parent_lineno}; exiting with status ${code}"
23
- fi
24
- github_status "$REPO_NAME" error "errored on Jenkins"
25
- exit "${code}"
26
- }
27
-
28
- trap 'error_handler ${LINENO}' ERR
29
- github_status "$REPO_NAME" pending "is running on Jenkins"
30
-
31
- # Cleanup anything left from previous test runs
32
- git clean -fdx
33
-
34
- # Try to merge master into the current branch, and abort if it doesn't exit
35
- # cleanly (ie there are conflicts). This will be a noop if the current branch
36
- # is master.
37
- git merge --no-commit origin/master || git merge --abort
38
-
39
- # Bundle and run tests against multiple ruby versions
40
- for version in 2.3 2.2; do
41
- rm -f Gemfile.lock
42
- export RBENV_VERSION=$version
43
- echo "Running tests under ruby $version"
44
- bundle install --path "${HOME}/bundles/${JOB_NAME}"
45
-
46
- if ! bundle exec rake ${TEST_TASK:-"default"}; then
47
- github_status "$REPO_NAME" failure "failed on Jenkins"
48
- exit 1
49
- fi
50
- done
51
- unset RBENV_VERSION
52
-
53
- if [[ -n "$PUBLISH_GEM" ]]; then
54
- bundle install --path "${HOME}/bundles/${JOB_NAME}"
55
- bundle exec rake publish_gem --trace
56
- fi
57
-
58
- github_status "$REPO_NAME" success "succeeded on Jenkins"