rack-logstasher 1.0.0 → 1.0.1

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
- 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"