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 +5 -5
- data/.ruby-version +1 -1
- data/CHANGELOG.md +5 -0
- data/Jenkinsfile +7 -0
- data/Rakefile +0 -6
- data/lib/rack/logstasher/logger.rb +1 -1
- data/lib/rack/logstasher/version.rb +1 -1
- data/rack-logstasher.gemspec +5 -6
- data/spec/logger_spec.rb +13 -22
- data/spec/spec_helper.rb +0 -1
- metadata +18 -33
- data/jenkins.sh +0 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d5094e6e9fe586e95d7dd08699e18c62d0019dee66ad0da6e2da1d6ac6b2d024
|
4
|
+
data.tar.gz: 6bebaffb4cb498b604a78fc3a3505144578c169fd158f464fb321a16201e1668
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 252b77f49678629284adf356cdf662241ec7fcad6f4f773c8c974b51fab8d8c81d814ae32a252deffeb6eb5c48f8ebfcb3a74f8faa976cf45b4f296b48ad9852
|
7
|
+
data.tar.gz: 19451f78071d21aeb47807d6a11c9aaa7a82c8a61f3872db8fc31e30eb26469af1abcfbe332bc46cb433e69076bc184b01c9df67f43d9bdb7cb2a1a409212571
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.6.1
|
data/CHANGELOG.md
CHANGED
data/Jenkinsfile
ADDED
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
|
data/rack-logstasher.gemspec
CHANGED
@@ -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 = ["
|
10
|
-
spec.email = ["
|
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"
|
24
|
+
spec.add_development_dependency "bundler"
|
25
25
|
spec.add_development_dependency "rake"
|
26
|
-
spec.add_development_dependency "rack-test"
|
27
|
-
spec.add_development_dependency "rspec"
|
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(
|
28
|
-
expect(
|
29
|
-
expect(
|
30
|
-
expect(
|
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(
|
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['
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
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: '
|
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: '
|
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
|
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
|
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:
|
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:
|
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
|
-
-
|
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
|
-
|
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"
|