Skip to content

Commit 9d80e3a

Browse files
Merge pull request #1953 from jcantrill/1833486_174_on_46
Bug 1833486: Revert fluentd to 1.7.4 to address performance regression
2 parents 315b7df + 651e426 commit 9d80e3a

File tree

473 files changed

+17993
-32719
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

473 files changed

+17993
-32719
lines changed

fluentd/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ FROM ubi7/ruby-25:latest as builder
33
MAINTAINER OpenShift Development <[email protected]>
44

55
ARG DATA_VERSION_VALUE=1.6.0
6-
ARG FLUENTD_VERSION_VALUE=1.11.1
6+
ARG FLUENTD_VERSION_VALUE=1.7.4
77
ARG HOME_VALUE=/opt/app-root/src
88
ARG PATH_VALUE=/opt/app-root/src/bin:/opt/app-root/bin
99
ARG LOGGING_FILE_PATH_VALUE=/var/log/fluentd/fluentd.log

fluentd/Gemfile.lock

Lines changed: 17 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,12 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
activemodel (5.2.4.3)
5-
activesupport (= 5.2.4.3)
6-
activesupport (5.2.4.3)
7-
concurrent-ruby (~> 1.0, >= 1.0.2)
8-
i18n (>= 0.7, < 2)
9-
minitest (~> 5.1)
10-
tzinfo (~> 1.1)
114
addressable (2.7.0)
125
public_suffix (>= 2.0.2, < 5.0)
13-
aes_key_wrap (1.1.0)
14-
attr_required (1.0.1)
15-
bindata (2.4.7)
166
concurrent-ruby (1.1.6)
177
connection_pool (2.2.3)
188
cool.io (1.6.0)
9+
dig_rb (1.0.1)
1910
digest-crc (0.6.1)
2011
rake (~> 13.0)
2112
domain_name (0.5.20190701)
@@ -42,22 +33,22 @@ GEM
4233
uuidtools (>= 2.1.5)
4334
fluent-plugin-concat (2.4.0)
4435
fluentd (>= 0.14.0, < 2)
45-
fluent-plugin-elasticsearch (4.1.0)
36+
fluent-plugin-elasticsearch (4.1.1)
4637
elasticsearch
4738
excon
4839
fluentd (>= 0.14.22)
49-
fluent-plugin-kafka (0.13.0)
40+
fluent-plugin-kafka (0.13.1)
5041
fluentd (>= 0.10.58, < 2)
5142
ltsv
5243
ruby-kafka (>= 0.7.8, < 2)
53-
fluent-plugin-kubernetes_metadata_filter (2.5.1)
44+
fluent-plugin-kubernetes_metadata_filter (2.5.2)
5445
fluentd (>= 0.14.0, < 1.12)
5546
kubeclient (< 5)
5647
lru_redux
5748
fluent-plugin-multi-format-parser (1.0.0)
5849
fluentd (>= 0.14.0, < 2)
59-
fluent-plugin-prometheus (1.8.1)
60-
fluentd (>= 1.9.1, < 2)
50+
fluent-plugin-prometheus (1.7.3)
51+
fluentd (>= 0.14.20, < 2)
6152
prometheus-client (< 0.10)
6253
fluent-plugin-record-modifier (2.1.0)
6354
fluentd (>= 1.0, < 2)
@@ -68,26 +59,22 @@ GEM
6859
fluent-plugin-rewrite-tag-filter (2.3.0)
6960
fluent-config-regexp-type
7061
fluentd (>= 0.14.2, < 2)
71-
fluent-plugin-splunk-hec (1.2.2)
72-
activesupport (~> 5.2)
73-
fluent-plugin-kubernetes_metadata_filter (~> 2.4)
74-
fluentd (>= 1.4)
75-
http_parser.rb (= 0.5.3)
62+
fluent-plugin-splunk-hec (1.1.2)
63+
fluentd (~> 1.4)
7664
multi_json (~> 1.13)
77-
net-http-persistent (~> 3.1)
78-
openid_connect (~> 1.1.8)
79-
prometheus-client (< 0.10.0)
65+
net-http-persistent (~> 3.0)
8066
fluent-plugin-systemd (1.0.2)
8167
fluentd (>= 0.14.11, < 2)
8268
systemd-journal (~> 1.3.2)
83-
fluentd (1.11.1)
69+
fluentd (1.7.4)
8470
cool.io (>= 1.4.5, < 2.0.0)
71+
dig_rb (~> 1.0.0)
8572
http_parser.rb (>= 0.5.1, < 0.7.0)
86-
msgpack (>= 1.3.1, < 2.0.0)
73+
msgpack (>= 1.2.0, < 2.0.0)
8774
serverengine (>= 2.0.4, < 3.0.0)
8875
sigdump (~> 0.2.2)
8976
strptime (>= 0.2.2, < 1.0.0)
90-
tzinfo (>= 1.0, < 3.0)
77+
tzinfo (~> 2.0)
9178
tzinfo-data (~> 1.0)
9279
yajl-ruby (~> 1.0)
9380
http (4.4.1)
@@ -101,14 +88,7 @@ GEM
10188
http-form_data (2.3.0)
10289
http-parser (1.2.1)
10390
ffi-compiler (>= 1.0, < 2.0)
104-
http_parser.rb (0.5.3)
105-
httpclient (2.8.3)
106-
i18n (1.8.3)
107-
concurrent-ruby (~> 1.0)
108-
json-jwt (1.13.0)
109-
activesupport (>= 4.2)
110-
aes_key_wrap
111-
bindata
91+
http_parser.rb (0.6.0)
11292
jsonpath (1.0.5)
11393
multi_json
11494
to_regexp (~> 0.2.1)
@@ -119,40 +99,19 @@ GEM
11999
rest-client (~> 2.0)
120100
lru_redux (1.1.0)
121101
ltsv (0.1.2)
122-
mail (2.7.1)
123-
mini_mime (>= 0.1.1)
124102
mime-types (3.3.1)
125103
mime-types-data (~> 3.2015)
126104
mime-types-data (3.2020.0512)
127-
mini_mime (1.0.2)
128-
minitest (5.14.1)
129105
msgpack (1.3.3)
130106
multi_json (1.15.0)
131107
multipart-post (2.1.1)
132108
net-http-persistent (3.1.0)
133109
connection_pool (~> 2.2)
134110
netrc (0.11.0)
135-
openid_connect (1.1.8)
136-
activemodel
137-
attr_required (>= 1.0.0)
138-
json-jwt (>= 1.5.0)
139-
rack-oauth2 (>= 1.6.1)
140-
swd (>= 1.0.0)
141-
tzinfo
142-
validate_email
143-
validate_url
144-
webfinger (>= 1.0.1)
145111
prometheus-client (0.9.0)
146112
quantile (~> 0.2.1)
147113
public_suffix (4.0.5)
148114
quantile (0.2.1)
149-
rack (2.2.3)
150-
rack-oauth2 (1.15.0)
151-
activesupport
152-
attr_required
153-
httpclient
154-
json-jwt (>= 1.11.0)
155-
rack (>= 2.1.0)
156115
rake (13.0.1)
157116
recursive-open-struct (1.1.2)
158117
rest-client (2.1.0)
@@ -166,32 +125,18 @@ GEM
166125
sigdump (~> 0.2.2)
167126
sigdump (0.2.4)
168127
strptime (0.2.4)
169-
swd (1.2.0)
170-
activesupport (>= 3)
171-
attr_required (>= 0.0.5)
172-
httpclient (>= 2.4)
173128
syslog_protocol (0.9.2)
174129
systemd-journal (1.3.3)
175130
ffi (~> 1.9)
176-
thread_safe (0.3.6)
177131
to_regexp (0.2.1)
178-
tzinfo (1.2.7)
179-
thread_safe (~> 0.1)
132+
tzinfo (2.0.2)
133+
concurrent-ruby (~> 1.0)
180134
tzinfo-data (1.2020.1)
181135
tzinfo (>= 1.0.0)
182136
unf (0.1.4)
183137
unf_ext
184138
unf_ext (0.0.7.7)
185139
uuidtools (2.1.5)
186-
validate_email (0.1.6)
187-
activemodel (>= 3.0)
188-
mail (>= 2.2.5)
189-
validate_url (1.0.11)
190-
activemodel (>= 3.0.0)
191-
public_suffix
192-
webfinger (1.1.0)
193-
activesupport
194-
httpclient (>= 2.4)
195140
yajl-ruby (1.4.1)
196141

197142
PLATFORMS
@@ -213,7 +158,7 @@ DEPENDENCIES
213158
fluent-plugin-rewrite-tag-filter
214159
fluent-plugin-splunk-hec
215160
fluent-plugin-systemd
216-
fluentd (= 1.11.1)!
161+
fluentd (= 1.7.4)!
217162
uuidtools (= 2.1.5)
218163

219164
BUNDLED WITH

fluentd/install-gems.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ for dir in * ; do
5959
done
6060

6161
if CONFIGURE_ARGS="--with-cflags='$( rpm --eval %optflags )' ${CONFIGURE_ARGS:-}" \
62-
gem install -V --local -N *.gem ; then
62+
gem install *.gem -V --local -N --ignore-dependencies ; then
6363
echo INFO: all gems installed successfully
6464
rc=0
6565
else

fluentd/rh-manifest.txt

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,17 @@
1-
aes_key_wrap 1.1.0 https://github.com/tomdalling/aes_key_wrap
2-
attr_required 1.0.1 http://github.com/nov/attr_required
3-
bindata 2.4.7 http://github.com/dmendel/bindata
41
digest-crc 0.6.1 https://github.com/postmodern/digest-crc#readme
2+
dig_rb 1.0.1 https://github.com/jrochkind/dig_rb
53
ffi-compiler 1.0.1 http://wiki.github.com/ffi/ffi
64
fluent-config-regexp-type 1.0.0 https://github.com/okkez/fluent-config-regexp-type
7-
fluentd 1.11.1 https://www.fluentd.org/
5+
fluentd 1.7.4 https://www.fluentd.org/
86
fluent-plugin-concat 2.4.0 https://github.com/fluent-plugins-nursery/fluent-plugin-concat
9-
fluent-plugin-kafka 0.13.0 https://github.com/fluent/fluent-plugin-kafka
7+
fluent-plugin-kafka 0.13.1 https://github.com/fluent/fluent-plugin-kafka
108
fluent-plugin-multi-format-parser 1.0.0 https://github.com/repeatedly/fluent-plugin-multi-format-parser
11-
fluent-plugin-splunk-hec 1.2.2 https://github.com/splunk/fluent-plugin-splunk-hec
9+
fluent-plugin-splunk-hec 1.1.2 https://github.com/splunk/fluent-plugin-splunk-hec
1210
http-accept 1.7.0 https://github.com/ioquatix/http-accept
1311
http-parser 1.2.1 https://github.com/cotag/http-parser
1412
jemalloc 5.2.1 https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2
15-
json-jwt 1.13.0 https://github.com/nov/json-jwt
1613
jsonpath 1.0.5 https://github.com/joshbuddy/jsonpath
1714
ltsv 0.1.2 https://github.com/condor/ltsv
18-
openid_connect 1.1.8 https://github.com/nov/openid_connect
19-
rack-oauth2 1.15.0 http://github.com/nov/rack-oauth2
20-
rubygem-activemodel 5.2.4.3 http://rubyonrails.org
21-
rubygem-activesupport 5.2.4.3 http://rubyonrails.org
2215
rubygem-addressable 2.7.0 https://github.com/sporkmonger/addressable
2316
rubygem-concurrent-ruby 1.1.6 http://www.concurrent-ruby.com
2417
rubygem-connection_pool 2.2.3 https://github.com/mperham/connection_pool
@@ -31,26 +24,21 @@ rubygem-excon 0.75.0 https://github.com/excon/excon
3124
rubygem-faraday 1.0.1 https://lostisland.github.io/faraday
3225
rubygem-ffi 1.11.3 https://github.com/ffi/ffi/wiki
3326
rubygem-fluent-mixin-config-placeholders 0.4.0 https://github.com/tagomoris/fluent-mixin-config-placeholders
34-
rubygem-fluent-plugin-elasticsearch 4.1.0 https://github.com/uken/fluent-plugin-elasticsearch
35-
rubygem-fluent-plugin-kubernetes_metadata_filter 2.5.1 https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter
36-
rubygem-fluent-plugin-prometheus 1.8.1 https://github.com/fluent/fluent-plugin-prometheus
27+
rubygem-fluent-plugin-elasticsearch 4.1.1 https://github.com/uken/fluent-plugin-elasticsearch
28+
rubygem-fluent-plugin-kubernetes_metadata_filter 2.5.2 https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter
29+
rubygem-fluent-plugin-prometheus 1.7.3 https://github.com/fluent/fluent-plugin-prometheus
3730
rubygem-fluent-plugin-record-modifier 2.1.0 https://github.com/repeatedly/fluent-plugin-record-modifier
3831
rubygem-fluent-plugin-remote-syslog 1.1 https://github.com/docebo/fluent-plugin-remote-syslog
3932
rubygem-fluent-plugin-rewrite-tag-filter 2.3.0 https://github.com/fluent/fluent-plugin-rewrite-tag-filter
4033
rubygem-fluent-plugin-systemd 1.0.2 https://github.com/reevoo/fluent-plugin-systemd
4134
rubygem-http 4.4.1 https://github.com/httprb/http
42-
rubygem-httpclient 2.8.3 https://github.com/nahi/httpclient
4335
rubygem-http-cookie 1.0.3 https://github.com/sparklemotion/http-cookie
4436
rubygem-http-form_data 2.3.0 https://github.com/httprb/form_data.rb
45-
rubygem-http_parser.rb 0.5.3 http://github.com/tmm1/http_parser.rb
46-
rubygem-i18n 1.8.3 https://github.com/ruby-i18n/i18n
37+
rubygem-http_parser.rb 0.6.0 http://github.com/tmm1/http_parser.rb
4738
rubygem-kubeclient 4.8.0 https://github.com/abonas/kubeclient
4839
rubygem-lru_redux 1.1.0 https://github.com/SamSaffron/lru_redux
49-
rubygem-mail 2.7.1 https://github.com/mikel/mail
5040
rubygem-mime-types 3.3.1 https://github.com/mime-types/ruby-mime-types/
5141
rubygem-mime-types-data 3.2020.0512 https://github.com/mime-types/mime-types-data/
52-
rubygem-mini_mime 1.0.2 https://github.com/discourse/mini_mime
53-
rubygem-minitest 5.14.1 https://github.com/seattlerb/minitest
5442
rubygem-msgpack 1.3.3 http://msgpack.org/
5543
rubygem-multi_json 1.15.0 https://github.com/intridea/multi_json
5644
rubygem-multipart-post 2.1.1 https://github.com/nicksieger/multipart-post
@@ -59,15 +47,13 @@ rubygem-netrc 0.11.0 https://github.com/geemus/netrc
5947
rubygem-prometheus-client 0.9.0 https://github.com/prometheus/client_ruby
6048
rubygem-public_suffix 4.0.5 https://simonecarletti.com/code/publicsuffix-ruby
6149
rubygem-quantile 0.2.1 http://github.com/matttproud/ruby_quantile_estimation
62-
rubygem-rack 2.2.3 https://github.com/rack/rack
6350
rubygem-rake 13.0.1 https://github.com/ruby/rake
6451
rubygem-recursive-open-struct 1.1.2 https://github.com/aetherknight/recursive-open-struct
6552
rubygem-rest-client 2.1.0 https://github.com/rest-client/rest-client
6653
rubygem-sigdump 0.2.4 https://github.com/frsyuki/sigdump
6754
rubygem-syslog_protocol 0.9.2 https://github.com/eric/syslog_protocol
6855
rubygem-systemd-journal 1.3.3 https://github.com/ledbettj/systemd-journal
69-
rubygem-thread_safe 0.3.6 https://github.com/ruby-concurrency/thread_safe
70-
rubygem-tzinfo 1.2.7 https://tzinfo.github.io
56+
rubygem-tzinfo 2.0.2 https://tzinfo.github.io
7157
rubygem-tzinfo-data 1.2020.1 https://tzinfo.github.io
7258
rubygem-unf 0.1.4 https://github.com/knu/ruby-unf
7359
rubygem-unf_ext 0.0.7.7 https://github.com/knu/ruby-unf_ext
@@ -76,8 +62,4 @@ rubygem-yajl-ruby 1.4.1 http://github.com/brianmario/yajl-ruby
7662
ruby-kafka 1.1.0 https://github.com/zendesk/ruby-kafka
7763
serverengine 2.2.1 https://github.com/fluent/serverengine
7864
strptime 0.2.4 https://github.com/nurse/strptime
79-
swd 1.2.0 https://github.com/nov/swd
8065
to_regexp 0.2.1 https://github.com/seamusabshere/to_regexp
81-
validate_email 0.1.6 http://github.com/perfectline/validates_email/tree/master
82-
validate_url 1.0.11 http://github.com/perfectline/validates_url/tree/master
83-
webfinger 1.1.0 https://github.com/nov/webfinger
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
language: ruby
2+
rvm:
3+
- 2.2.4
4+
- 2.1.8
5+
- 2.0.0-p648
6+
- jruby-9.0.4.0
7+
- jruby-1.7.23
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
source 'https://rubygems.org'
2+
3+
# Specify your gem's dependencies in dig_rb.gemspec
4+
gemspec
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2016 Jonathan Rochkind
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in
13+
all copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
THE SOFTWARE.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Dig_rb
2+
3+
[![Gem Version](https://badge.fury.io/rb/dig_rb.svg)](https://badge.fury.io/rb/dig_rb) [![Build Status](https://travis-ci.org/jrochkind/dig_rb.svg?branch=master)](https://travis-ci.org/jrochkind/dig_rb)
4+
5+
[Ruby 2.3.0 introduced #dig on Hash, Array, and Struct](https://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-released/). With this gem, you can have dig on ruby pre 2.3.0, or any ruby lacking dig.
6+
7+
If you are writing an app and want to use dig in it you should probably just upgrade to ruby 2.3.0. But if you are writing a gem and want it to work with both MRI 2.3.0 and others (including JRuby 9.0.x), this gem is for you. This gem only adds #dig methods if they aren't already defined, so it's safe to use in code that is for all rubies, if run on MRI 2.3.0 you'll still be using native #dig, otherwise dig_rb's implementation.
8+
9+
### Will it work identically to MRI 2.3.0 dig?
10+
11+
Dig_rb is tested with:
12+
13+
* Specs found in MRI repo for #dig in 2.3.0
14+
* [Ruby Spec Suite](https://github.com/ruby/spec/) specs found in repo for Array and Hash#dig
15+
* All examples in MRI 2.3.0 generated method API docs. (One example in MRI 2.3.0 is _wrong_ about exception class and message returned, dig_rb matches actual 2.3.0 behavior there, not documented example)
16+
17+
[Our travis](https://travis-ci.org/jrochkind/dig_rb) runs tests on a variety of ruby platforms.
18+
19+
If you find any weird edge cases that work differenty in MRI 2.3.0 than in ruby_dig, let me know in a GitHub Issue please.
20+
21+
The performance of dig_rb will probably be less than native MRI 2.3.0 implementation, this code is not written for performance. But it should
22+
be fine, really.
23+
24+
## Installation
25+
26+
Add this line to your application's Gemfile:
27+
28+
```ruby
29+
gem 'dig_rb'
30+
```
31+
32+
And then execute:
33+
34+
$ bundle
35+
36+
Or install it yourself as:
37+
38+
$ gem install dig_rb
39+
40+
## Usage
41+
42+
Just go ahead and use #dig as doc'd in MRI 2.3.0, now it'll work on any ruby.
43+
44+
* [Hash](http://ruby-doc.org/core-2.3.0/Hash.html#method-i-dig)
45+
* [Array](http://ruby-doc.org/core-2.3.0/Array.html#method-i-dig)
46+
* [Struct](http://ruby-doc.org/core-2.3.0/Struct.html#method-i-dig)
47+
* [OpenStruct](http://ruby-doc.org/stdlib-2.3.0/libdoc/ostruct/rdoc/OpenStruct.html#method-i-dig)
48+
49+
## Development
50+
51+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
52+
53+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
54+
55+
## Contributing
56+
57+
1. Fork it ( https://github.com/jrochkind/dig_rb/fork )
58+
2. Create your feature branch (`git checkout -b my-new-feature`)
59+
3. Commit your changes (`git commit -am 'Add some feature'`)
60+
4. Push to the branch (`git push origin my-new-feature`)
61+
5. Create a new Pull Request
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
require "bundler/gem_tasks"
2+
require 'rake/testtask'
3+
4+
Rake::TestTask.new do |t|
5+
t.libs << "test"
6+
t.test_files = FileList['test/**/test*.rb'] + FileList['test/**/*_spec.rb']
7+
t.verbose = true
8+
end
9+
10+
task :default => [:test]

0 commit comments

Comments
 (0)