researchable_loggable 1.3.1 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/Gemfile +0 -1
  4. data/Gemfile.lock +1 -4
  5. data/lib/loggable/logfmt/logger.rb +86 -0
  6. data/lib/loggable/opentelemetry_config.rb +1 -1
  7. data/lib/loggable/railtie.rb +18 -12
  8. data/lib/loggable/version.rb +1 -1
  9. data/lib/researchable_loggable.rb +1 -2
  10. data/node_modules/semantic-release-rubygem/src/__tests__/fixtures/valid/lib/test-gem/version.rb +1 -1
  11. data/vendor/ruby/ruby/3.2.0/gems/concurrent-ruby-1.2.0/lib/concurrent-ruby/concurrent/version.rb +1 -1
  12. data/vendor/ruby/ruby/3.2.0/gems/crass-1.0.6/lib/crass/version.rb +1 -1
  13. data/vendor/ruby/ruby/3.2.0/gems/lograge-0.12.0/lib/lograge/version.rb +1 -1
  14. data/vendor/ruby/ruby/3.2.0/gems/method_source-1.0.0/lib/method_source/version.rb +1 -1
  15. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-api-1.3.0/lib/opentelemetry/version.rb +1 -1
  16. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-common-0.21.0/lib/opentelemetry/common/version.rb +1 -1
  17. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-exporter-otlp-0.28.1/lib/opentelemetry/exporter/otlp/version.rb +1 -1
  18. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-helpers-mysql-0.1.1/lib/opentelemetry/helpers/mysql/version.rb +1 -1
  19. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-helpers-sql-obfuscation-0.2.0/lib/opentelemetry/helpers/sql_obfuscation/version.rb +1 -1
  20. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_mailer-0.1.0/lib/opentelemetry/instrumentation/action_mailer/version.rb +1 -1
  21. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_pack-0.9.0/lib/opentelemetry/instrumentation/action_pack/version.rb +1 -1
  22. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_view-0.7.3/lib/opentelemetry/instrumentation/action_view/version.rb +1 -1
  23. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_job-0.7.7/lib/opentelemetry/instrumentation/active_job/version.rb +1 -1
  24. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_model_serializers-0.20.2/lib/opentelemetry/instrumentation/active_model_serializers/version.rb +1 -1
  25. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_record-0.7.4/lib/opentelemetry/instrumentation/active_record/version.rb +1 -1
  26. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_support-0.6.0/lib/opentelemetry/instrumentation/active_support/version.rb +1 -1
  27. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-all-0.63.0/lib/opentelemetry/instrumentation/all/version.rb +1 -1
  28. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-aws_lambda-0.1.1/lib/opentelemetry/instrumentation/aws_lambda/version.rb +1 -1
  29. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-aws_sdk-0.5.4/lib/opentelemetry/instrumentation/aws_sdk/version.rb +1 -1
  30. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-base-0.22.6/lib/opentelemetry/instrumentation/version.rb +1 -1
  31. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-bunny-0.21.4/lib/opentelemetry/instrumentation/bunny/version.rb +1 -1
  32. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-concurrent_ruby-0.21.4/lib/opentelemetry/instrumentation/concurrent_ruby/version.rb +1 -1
  33. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-dalli-0.25.4/lib/opentelemetry/instrumentation/dalli/version.rb +1 -1
  34. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-delayed_job-0.22.4/lib/opentelemetry/instrumentation/delayed_job/version.rb +1 -1
  35. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-ethon-0.21.8/lib/opentelemetry/instrumentation/ethon/version.rb +1 -1
  36. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-excon-0.22.4/lib/opentelemetry/instrumentation/excon/version.rb +1 -1
  37. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-faraday-0.24.6/lib/opentelemetry/instrumentation/faraday/version.rb +1 -1
  38. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-grape-0.2.0/lib/opentelemetry/instrumentation/grape/version.rb +1 -1
  39. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-graphql-0.28.4/lib/opentelemetry/instrumentation/graphql/version.rb +1 -1
  40. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-gruf-0.2.1/lib/opentelemetry/instrumentation/gruf/version.rb +1 -1
  41. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-http-0.23.4/lib/opentelemetry/instrumentation/http/version.rb +1 -1
  42. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-http_client-0.22.7/lib/opentelemetry/instrumentation/http_client/version.rb +1 -1
  43. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-koala-0.20.5/lib/opentelemetry/instrumentation/koala/version.rb +1 -1
  44. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-lmdb-0.22.3/lib/opentelemetry/instrumentation/lmdb/version.rb +1 -1
  45. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-mongo-0.22.4/lib/opentelemetry/instrumentation/mongo/version.rb +1 -1
  46. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-mysql2-0.27.2/lib/opentelemetry/instrumentation/mysql2/version.rb +1 -1
  47. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-net_http-0.22.7/lib/opentelemetry/instrumentation/net/http/version.rb +1 -1
  48. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-pg-0.28.0/lib/opentelemetry/instrumentation/pg/version.rb +1 -1
  49. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-que-0.8.4/lib/opentelemetry/instrumentation/que/version.rb +1 -1
  50. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-racecar-0.3.4/lib/opentelemetry/instrumentation/racecar/version.rb +1 -1
  51. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rack-0.24.6/lib/opentelemetry/instrumentation/rack/version.rb +1 -1
  52. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rails-0.31.2/lib/opentelemetry/instrumentation/rails/version.rb +1 -1
  53. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rake-0.2.2/lib/opentelemetry/instrumentation/rake/version.rb +1 -1
  54. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rdkafka-0.4.8/lib/opentelemetry/instrumentation/rdkafka/version.rb +1 -1
  55. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-redis-0.25.7/lib/opentelemetry/instrumentation/redis/version.rb +1 -1
  56. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-resque-0.5.2/lib/opentelemetry/instrumentation/resque/version.rb +1 -1
  57. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-restclient-0.22.7/lib/opentelemetry/instrumentation/restclient/version.rb +1 -1
  58. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-ruby_kafka-0.21.3/lib/opentelemetry/instrumentation/ruby_kafka/version.rb +1 -1
  59. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-sidekiq-0.25.7/lib/opentelemetry/instrumentation/sidekiq/version.rb +1 -1
  60. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-sinatra-0.24.1/lib/opentelemetry/instrumentation/sinatra/version.rb +1 -1
  61. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-trilogy-0.59.3/lib/opentelemetry/instrumentation/trilogy/version.rb +1 -1
  62. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-registry-0.3.1/lib/opentelemetry/instrumentation/registry/version.rb +1 -1
  63. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-sdk-1.5.0/lib/opentelemetry/sdk/version.rb +1 -1
  64. data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-semantic_conventions-1.10.1/lib/opentelemetry/semantic_conventions/version.rb +1 -1
  65. data/vendor/ruby/ruby/3.2.0/gems/rack-test-2.0.2/lib/rack/test/version.rb +1 -1
  66. data/vendor/ruby/ruby/3.2.0/gems/regexp_parser-2.7.0/lib/regexp_parser/version.rb +1 -1
  67. data/vendor/ruby/ruby/3.2.0/gems/ruboguide-1.0.0/lib/ruboguide/version.rb +1 -1
  68. data/vendor/ruby/ruby/3.2.0/gems/ruby-progressbar-1.13.0/lib/ruby-progressbar/version.rb +1 -1
  69. data/vendor/ruby/ruby/3.2.0/gems/tzinfo-2.0.6/lib/tzinfo/version.rb +1 -1
  70. metadata +6 -22
  71. data/lib/loggable/ecs_logging/formatter_monkey_patch.rb +0 -55
  72. data/lib/loggable/lograge/formatter.rb +0 -22
  73. data/vendor/ruby/ruby/3.2.0/gems/ecs-logging-1.0.0/lib/ecs_logging/version.rb +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5fe5ffbeff35ebd66ff13d1e846b709146ca5e2c60b940db355550ebd73e4296
4
- data.tar.gz: 34b3aaad1e4a56831893b29b57643797f5f256bea4cb0787a8f9ff66e2dc1bdc
3
+ metadata.gz: a356ec5967b01443f13f9636b36cfd43c50a1302b19cef806d786681fab6a4a1
4
+ data.tar.gz: c440471ef3530be9cc5b34bbc36edc500ddb23e3cd44bdee4d47bae793ca99bd
5
5
  SHA512:
6
- metadata.gz: c3c7d6854c90271dfc8843c4bf05b8558bf23569bdefef96ffbf272e6253588384dbc85d1f9dfe532defcb2b692691ea5bd936685a139732bb597499d5a945c4
7
- data.tar.gz: ca852ff5ce276a1033966a881a2273b202c76e27eb7dd0c0b513b13460b93af1d2eab8dee98bfd522f819b94f461c9171ffad893eab6a57a18235922516da35a
6
+ metadata.gz: 67227dd3e381992a84ed08183ffc635073f5f991c04ab170e41b798c2786c09aa8eb21fd37c6aa81d25c51070e5c5b4a995aaad5f013d40823e1c613b1a4b237
7
+ data.tar.gz: f896dd740a142d8335f957293324f0b08d7f8695d2499f3fb7759be22be1666dd2a8c790ccb7511321a265a648b2299a52e6b7a3f6313cb8cd0b4e1f4268b737
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ # [1.5.0](https://gitlab.com/researchable/general/gems/loggable/compare/v1.4.0...v1.5.0) (2024-12-05)
2
+
3
+
4
+ ### Features
5
+
6
+ * use the correct import ([600ff6a](https://gitlab.com/researchable/general/gems/loggable/commit/600ff6a805b559c6a6de375c4c3e39232062a6a0))
7
+
8
+ # [1.4.0](https://gitlab.com/researchable/general/gems/loggable/compare/v1.3.1...v1.4.0) (2024-11-29)
9
+
10
+
11
+ ### Features
12
+
13
+ * add trace and span id ([6e486e0](https://gitlab.com/researchable/general/gems/loggable/commit/6e486e03f7bef1ecf739195d80472f3cf3c2b7f6))
14
+ * replace ecs logging format to logfmt ([19eb571](https://gitlab.com/researchable/general/gems/loggable/commit/19eb571719ed294fed4f94094c091c76470cae53))
15
+
1
16
  ## [1.3.1](https://gitlab.com/researchable/general/gems/loggable/compare/v1.3.0...v1.3.1) (2024-11-26)
2
17
 
3
18
 
data/Gemfile CHANGED
@@ -11,7 +11,6 @@ gem 'rspec', '~> 3.0'
11
11
 
12
12
  gem 'ruboguide', '~> 1.0'
13
13
 
14
- gem 'ecs-logging', '~> 1.0'
15
14
  gem 'lograge'
16
15
  gem 'logstash-event'
17
16
 
data/Gemfile.lock CHANGED
@@ -1,8 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- researchable_loggable (1.2.0)
5
- ecs-logging (~> 1.0)
4
+ researchable_loggable (1.3.1)
6
5
  lograge
7
6
  logstash-event
8
7
  opentelemetry-exporter-otlp (~> 0.28)
@@ -36,7 +35,6 @@ GEM
36
35
  concurrent-ruby (1.2.0)
37
36
  crass (1.0.6)
38
37
  diff-lcs (1.5.0)
39
- ecs-logging (1.0.0)
40
38
  erubi (1.12.0)
41
39
  google-protobuf (4.27.4-x86_64-linux)
42
40
  bigdecimal
@@ -335,7 +333,6 @@ PLATFORMS
335
333
  x86_64-linux
336
334
 
337
335
  DEPENDENCIES
338
- ecs-logging (~> 1.0)
339
336
  lograge
340
337
  logstash-event
341
338
  opentelemetry-exporter-otlp (~> 0.28)
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'logger'
4
+ require 'time'
5
+ require 'active_support/logger_silence'
6
+
7
+ module Loggable
8
+ module Logfmt
9
+ # A structured logger that formats log messages in a key-value style using Logfmt formatting
10
+ # This has been adapted from https://github.com/cyberdelia/logfmt-ruby/
11
+ class Logger < ::Logger
12
+ def initialize(*args, **kwargs)
13
+ super
14
+ @formatter ||= KeyValueFormatter.new
15
+ end
16
+
17
+ # Include the LoggerSilence module to fix the incompatibility with ActiveSupport::LoggerSilence whe
18
+ # Rails.application.config.assets.quiet option is set to true, but do not include the module for the
19
+ # test environment as it causes issues with ActiveSupport::LoggerThreadSafeLevel::IsolatedExecutionState.
20
+ def self.include_logger_silence
21
+ include ActiveSupport::LoggerSilence
22
+ end
23
+
24
+ # Custom formatter class that renders logs as in a key-value style using Logfmt formatting
25
+ class KeyValueFormatter < ::Logger::Formatter
26
+ def call(severity, timestamp, progname, msg)
27
+ %(time=#{datetime(timestamp)} severity=#{severity.ljust(5)}#{progname(progname)} #{message(msg)}\n)
28
+ end
29
+
30
+ private
31
+
32
+ def datetime(time)
33
+ time.utc.iso8601(3)
34
+ end
35
+
36
+ def message(msg)
37
+ return unless msg
38
+
39
+ if msg.respond_to?(:to_hash)
40
+ pairs = msg.to_hash.map { |k, v| format_pair(k, v) }
41
+ pairs.compact.join(' ')
42
+ else
43
+ format_pair('message', msg)
44
+ end
45
+ end
46
+
47
+ def format_pair(key, value)
48
+ return nil if value.nil?
49
+
50
+ # Return a bare key when the value is a `TrueClass`
51
+ return key if value == true
52
+
53
+ "#{key}=#{format_value(value)}"
54
+ end
55
+
56
+ def progname(progname)
57
+ return nil unless progname
58
+
59
+ # Format this pair like any other to ensure quoting, escaping, etc…,
60
+ # But we also need a leading space so we can interpolate the resulting
61
+ # key/value pair into our log line.
62
+ " #{format_pair(' progname', progname)}"
63
+ end
64
+
65
+ def format_value(value)
66
+ if value.is_a?(Float)
67
+ format('%.3f', value)
68
+ elsif value.is_a?(Time)
69
+ datetime(value)
70
+ elsif value.respond_to?(:to_ary)
71
+ format_value(
72
+ "[#{Array(value).map { |v| format_value(v) }.join(', ')}]"
73
+ )
74
+ else
75
+ # Interpolating due to a weird/subtle behaviour possible in #to_s.
76
+ # Namely, it's possible it doesn't actually return a String:
77
+ # https://github.com/ruby/spec/blob/3affe1e54fcd11918a242ad5d4a7ba895ee30c4c/language/string_spec.rb#L130-L141
78
+ value = "#{value}" # rubocop:disable Style/RedundantInterpolation
79
+ value = value.dump if value.match?(/[[:space:]]|[[:cntrl:]]/) # wrap in quotes and escape control characters
80
+ value
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'opentelemetry/sdk'
4
4
  require 'opentelemetry/instrumentation/all'
5
- require 'opentelemetry/exporter/otlp'
5
+ require 'opentelemetry-exporter-otlp'
6
6
 
7
7
  module Loggable
8
8
  # The OpenTelemetryConfig module provides a method to configure OpenTelemetry for Rails applications.
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ecs_logging/logger'
3
+ require 'lograge'
4
4
  require 'rails'
5
+ require 'opentelemetry/sdk'
5
6
 
6
7
  module Loggable
7
8
  # Railtie to configure logging before rails starts
@@ -12,13 +13,14 @@ module Loggable
12
13
  config.loggable.current_user_method = :current_user
13
14
 
14
15
  # Initializer runs before initialize_logger (found in Bootstrap) so from the very beginning we are logging using
15
- # the ecs format, even during the initialization process
16
+ # the logfmt format, even during the initialization process
16
17
  # rubocop:disable Metrics/BlockLength
17
18
  initializer :loggable_web, before: :initialize_logger do
18
19
  Rails.application.configure do
19
20
  production_like = Rails.env.production? || config.loggable.production_like
20
21
  if production_like
21
- Rails.logger = ::EcsLogging::Logger.new($stdout)
22
+ Loggable::Logfmt::Logger.include_logger_silence if Rails.application.config.assets.quiet
23
+ Rails.logger = Loggable::Logfmt::Logger.new($stdout)
22
24
  Rails.logger.level = ActiveSupport::Logger.const_get(config.log_level.to_s.upcase || 'INFO')
23
25
 
24
26
  Loggable::OpenTelemetryConfig.configure(Rails.application.class.module_parent_name.underscore.dasherize)
@@ -32,22 +34,26 @@ module Loggable
32
34
  if controller.respond_to?(config.loggable.current_user_method)
33
35
  user_id = controller.send(config.loggable.current_user_method).try(:id)
34
36
  end
37
+
35
38
  {
36
- ecs: {
37
- 'source.ip': controller.request.ip,
38
- 'user.id': user_id,
39
- 'http.code': response_code
40
- },
41
- status: response_code
39
+ 'source.ip': controller.request.ip,
40
+ 'user.id': user_id,
41
+ status: response_code,
42
+ span_id: OpenTelemetry::Trace.current_span.context.hex_span_id,
43
+ trace_id: OpenTelemetry::Trace.current_span.context.hex_trace_id
42
44
  }
43
45
  end
44
46
  config.lograge.custom_options = lambda do |event|
45
47
  return if event.payload[:params].blank?
46
48
 
47
49
  exceptions = %w[controller action format id]
48
- { params: event.payload[:params].except(*exceptions) }
50
+ params = event.payload[:params].except(*exceptions)
51
+ # append a suffix to each param
52
+ params.each_with_object({}) do |(key, value), result|
53
+ result["params.#{key}"] = value
54
+ end
49
55
  end
50
- config.lograge.formatter = Loggable::Lograge::Formatter.new if production_like
56
+ config.lograge.formatter = ::Lograge::Formatters::Raw.new
51
57
  end
52
58
  end
53
59
  # rubocop:enable Metrics/BlockLength
@@ -56,7 +62,7 @@ module Loggable
56
62
  Rails.application.configure do
57
63
  if defined?(Delayed::Worker)
58
64
  if Rails.env.production? || config.loggable.production_like
59
- Delayed::Worker.logger = ::EcsLogging::Logger.new($stdout)
65
+ Delayed::Worker.logger = Loggable::Logfmt::Logger.new($stdout)
60
66
  Delayed::Worker.logger.level = ActiveSupport::Logger.const_get(config.log_level.to_s.upcase || 'INFO')
61
67
  Loggable::OpenTelemetryConfig.configure("#{Rails.application.class.module_parent_name.underscore.dasherize}
62
68
  -worker")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Loggable
4
- VERSION = '1.3.1'
4
+ VERSION = '1.5.0'
5
5
  end
@@ -3,8 +3,7 @@
3
3
  require_relative 'loggable/version'
4
4
  require_relative 'loggable/railtie' if defined?(Rails::Railtie)
5
5
  require_relative 'loggable/opentelemetry_config'
6
- require_relative 'loggable/ecs_logging/formatter_monkey_patch'
7
- require_relative 'loggable/lograge/formatter'
6
+ require_relative 'loggable/logfmt/logger'
8
7
 
9
8
  module ResearchableLoggable
10
9
  class Error < StandardError
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TestGem
4
- VERSION = '1.3.1'
4
+ VERSION = '1.5.0'
5
5
  end
@@ -1,3 +1,3 @@
1
1
  module Concurrent
2
- VERSION = '1.3.1'
2
+ VERSION = '1.5.0'
3
3
  end
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Crass
4
- VERSION = '1.3.1'
4
+ VERSION = '1.5.0'
5
5
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lograge
4
- VERSION = '1.3.1'
4
+ VERSION = '1.5.0'
5
5
  end
@@ -1,3 +1,3 @@
1
1
  module MethodSource
2
- VERSION = '1.3.1'.freeze
2
+ VERSION = '1.5.0'.freeze
3
3
  end
@@ -6,5 +6,5 @@
6
6
 
7
7
  module OpenTelemetry
8
8
  ## Current OpenTelemetry version
9
- VERSION = '1.3.1'
9
+ VERSION = '1.5.0'
10
10
  end
@@ -6,6 +6,6 @@
6
6
 
7
7
  module OpenTelemetry
8
8
  module Common
9
- VERSION = '1.3.1'
9
+ VERSION = '1.5.0'
10
10
  end
11
11
  end
@@ -8,7 +8,7 @@ module OpenTelemetry
8
8
  module Exporter
9
9
  module OTLP
10
10
  ## Current OpenTelemetry OTLP exporter version
11
- VERSION = '1.3.1'
11
+ VERSION = '1.5.0'
12
12
  end
13
13
  end
14
14
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Helpers
9
9
  module MySQL
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Helpers
9
9
  module SqlObfuscation
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ActionMailer
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ActionPack
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ActionView
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ActiveJob
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ActiveModelSerializers
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ActiveRecord
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ActiveSupport
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module All
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module AwsLambda
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module AwsSdk
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -6,6 +6,6 @@
6
6
 
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
- VERSION = '1.3.1'
9
+ VERSION = '1.5.0'
10
10
  end
11
11
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Bunny
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ConcurrentRuby
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Dalli
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module DelayedJob
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Ethon
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Excon
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Faraday
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -8,7 +8,7 @@ module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Grape
10
10
  # Current gem version
11
- VERSION = '1.3.1'
11
+ VERSION = '1.5.0'
12
12
  end
13
13
  end
14
14
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module GraphQL
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Gruf
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module HTTP
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module HttpClient
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Koala
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module LMDB
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Mongo
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Mysql2
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -8,7 +8,7 @@ module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Net
10
10
  module HTTP
11
- VERSION = '1.3.1'
11
+ VERSION = '1.5.0'
12
12
  end
13
13
  end
14
14
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module PG
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Que
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Racecar
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Rack
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Rails
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Rake
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Rdkafka
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Redis
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Resque
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module RestClient
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module RubyKafka
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Sidekiq
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Sinatra
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Trilogy
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  class Registry
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
13
13
  end
@@ -7,6 +7,6 @@
7
7
  module OpenTelemetry
8
8
  module SDK
9
9
  ## Current OpenTelemetry version
10
- VERSION = '1.3.1'
10
+ VERSION = '1.5.0'
11
11
  end
12
12
  end
@@ -6,6 +6,6 @@
6
6
 
7
7
  module OpenTelemetry
8
8
  module SemanticConventions
9
- VERSION = '1.3.1'
9
+ VERSION = '1.5.0'
10
10
  end
11
11
  end
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  module Test
3
- VERSION = '1.3.1'.freeze
3
+ VERSION = '1.5.0'.freeze
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  class Regexp
2
2
  class Parser
3
- VERSION = '1.3.1'
3
+ VERSION = '1.5.0'
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ruboguide
4
- VERSION = '1.3.1'
4
+ VERSION = '1.5.0'
5
5
  end
@@ -1,3 +1,3 @@
1
1
  class ProgressBar
2
- VERSION = '1.3.1'.freeze
2
+ VERSION = '1.5.0'.freeze
3
3
  end
@@ -3,5 +3,5 @@
3
3
 
4
4
  module TZInfo
5
5
  # The TZInfo version number.
6
- VERSION = '1.3.1'
6
+ VERSION = '1.5.0'
7
7
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: researchable_loggable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Researchable
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-26 00:00:00.000000000 Z
11
+ date: 2024-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: ecs-logging
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: lograge
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -114,8 +100,7 @@ files:
114
100
  - LICENSE.txt
115
101
  - README.md
116
102
  - Rakefile
117
- - lib/loggable/ecs_logging/formatter_monkey_patch.rb
118
- - lib/loggable/lograge/formatter.rb
103
+ - lib/loggable/logfmt/logger.rb
119
104
  - lib/loggable/opentelemetry_config.rb
120
105
  - lib/loggable/railtie.rb
121
106
  - lib/loggable/version.rb
@@ -135,7 +120,6 @@ files:
135
120
  - vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/version.rb
136
121
  - vendor/ruby/ruby/3.2.0/gems/concurrent-ruby-1.2.0/lib/concurrent-ruby/concurrent/version.rb
137
122
  - vendor/ruby/ruby/3.2.0/gems/crass-1.0.6/lib/crass/version.rb
138
- - vendor/ruby/ruby/3.2.0/gems/ecs-logging-1.0.0/lib/ecs_logging/version.rb
139
123
  - vendor/ruby/ruby/3.2.0/gems/googleapis-common-protos-types-1.15.0/lib/googleapis/common/protos/types/version.rb
140
124
  - vendor/ruby/ruby/3.2.0/gems/i18n-1.12.0/lib/i18n/version.rb
141
125
  - vendor/ruby/ruby/3.2.0/gems/lograge-0.12.0/lib/lograge/version.rb
@@ -220,13 +204,13 @@ files:
220
204
  - vendor/ruby/ruby/3.2.0/gems/thor-1.2.1/lib/thor/version.rb
221
205
  - vendor/ruby/ruby/3.2.0/gems/tzinfo-2.0.6/lib/tzinfo/version.rb
222
206
  - vendor/ruby/ruby/3.2.0/gems/zeitwerk-2.6.7/lib/zeitwerk/version.rb
223
- homepage: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.3.1/README.md
207
+ homepage: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.5.0/README.md
224
208
  licenses:
225
209
  - MIT
226
210
  metadata:
227
- homepage_uri: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.3.1/README.md
211
+ homepage_uri: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.5.0/README.md
228
212
  source_code_uri: https://gitlab.com/researchable/general/gems/loggable
229
- changelog_uri: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.3.1/CHANGELOG.md
213
+ changelog_uri: https://gitlab.com/researchable/general/gems/loggable/-/blob/v1.5.0/CHANGELOG.md
230
214
  post_install_message:
231
215
  rdoc_options: []
232
216
  require_paths:
@@ -1,55 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'ecs_logging/formatter'
4
-
5
- module Loggable
6
- module EcsLogging
7
- # A monkey patch to the ::EcsLogging::Formatter to customize how messages from lograge are rendered
8
- module FormatterMonkeyPatch
9
- def call(severity, time, progname, msg, **extras)
10
- base = {
11
- '@timestamp': time.utc.iso8601(3),
12
- 'log.level': severity,
13
- message: msg,
14
- 'ecs.version': '1.4.0'
15
- }
16
-
17
- base['log.logger'] = progname if progname
18
-
19
- base.merge!(msg.except(:lograge)) if msg.is_a?(Hash) && msg.key?(:lograge)
20
- base.merge!(extras) if extras
21
-
22
- "#{JSON.fast_generate(base)}\n"
23
- end
24
-
25
- class << self
26
- def apply_patch
27
- const = find_const
28
- mtd = find_method(const)
29
-
30
- # byebug
31
- const.prepend(self) if const && mtd && mtd.arity == -5
32
- end
33
-
34
- private
35
-
36
- def find_const
37
- Kernel.const_get('::EcsLogging::Formatter')
38
- rescue NameError
39
- puts '[WARN] ::EcsLogging::Formatter not found. Patch could not be applied.' # rubocop:disable Rails/Output
40
- end
41
-
42
- def find_method(const)
43
- return unless const
44
-
45
- method_name = :call
46
- const.instance_method(method_name)
47
- rescue NameError
48
- puts "[WARN] '#{method_name}' method not found in '#{const}'. Patch could not be applied." # rubocop:disable Rails/Output
49
- end
50
- end
51
- end
52
- end
53
- end
54
-
55
- Loggable::EcsLogging::FormatterMonkeyPatch.apply_patch
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'lograge'
4
- require 'active_support/core_ext/array'
5
-
6
- module Loggable
7
- module Lograge
8
- # Custom formatter class that renders logs as ruby objects with just the ecs fields generated by the logger, the
9
- # message, and a lograge flag so the ECS logger knows to process this further before rendering
10
- class Formatter < ::Lograge::Formatters::KeyValue
11
- def call(data)
12
- (data[:ecs] || {}).merge(message: super(data), lograge: true)
13
- end
14
-
15
- protected
16
-
17
- def fields_to_display(data)
18
- data.keys.excluding(%i[ecs])
19
- end
20
- end
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- # Licensed to Elasticsearch B.V. under one or more contributor
2
- # license agreements. See the NOTICE file distributed with
3
- # this work for additional information regarding copyright
4
- # ownership. Elasticsearch B.V. licenses this file to you under
5
- # the Apache License, Version 2.0 (the "License"); you may
6
- # not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
-
18
- # frozen_string_literal: true
19
-
20
- module EcsLogging
21
- VERSION = "1.0.0"
22
- end