researchable_loggable 1.7.0 → 1.8.0
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 +4 -4
- data/CHANGELOG.md +21 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +257 -238
- data/README.md +32 -2
- data/lib/loggable/pyroscope_config.rb +57 -0
- data/lib/loggable/railtie.rb +6 -1
- data/lib/loggable/version.rb +1 -1
- data/lib/researchable_loggable.rb +1 -0
- data/node_modules/semantic-release-rubygem/src/__tests__/fixtures/valid/lib/test-gem/version.rb +1 -1
- data/renovate.json +3 -0
- data/vendor/ruby/ruby/3.2.0/gems/actionpack-7.0.4.2/lib/action_pack/version.rb +10 -0
- data/vendor/ruby/ruby/3.2.0/gems/actionview-7.0.4.2/lib/action_view/version.rb +10 -0
- data/vendor/ruby/ruby/3.2.0/gems/activesupport-7.0.4.2/lib/active_support/version.rb +10 -0
- data/vendor/ruby/ruby/3.2.0/gems/builder-3.2.4/lib/builder/version.rb +9 -0
- data/vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
- data/vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
- data/vendor/ruby/ruby/3.2.0/gems/bundler-2.4.6/lib/bundler/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/concurrent-ruby-1.2.0/lib/concurrent-ruby/concurrent/version.rb +3 -0
- data/vendor/ruby/ruby/3.2.0/gems/crass-1.0.6/lib/crass/version.rb +5 -0
- data/vendor/ruby/ruby/3.2.0/gems/googleapis-common-protos-types-1.15.0/lib/googleapis/common/protos/types/version.rb +23 -0
- data/vendor/ruby/ruby/3.2.0/gems/i18n-1.12.0/lib/i18n/version.rb +5 -0
- data/vendor/ruby/ruby/3.2.0/gems/lograge-0.12.0/lib/lograge/version.rb +5 -0
- data/vendor/ruby/ruby/3.2.0/gems/loofah-2.19.1/lib/loofah/version.rb +5 -0
- data/vendor/ruby/ruby/3.2.0/gems/method_source-1.0.0/lib/method_source/version.rb +3 -0
- data/vendor/ruby/ruby/3.2.0/gems/nokogiri-1.14.1-x86_64-linux/lib/nokogiri/version.rb +4 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-api-1.3.0/lib/opentelemetry/version.rb +10 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-common-0.21.0/lib/opentelemetry/common/version.rb +11 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-exporter-otlp-0.28.1/lib/opentelemetry/exporter/otlp/version.rb +14 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-helpers-mysql-0.1.1/lib/opentelemetry/helpers/mysql/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-helpers-sql-obfuscation-0.2.0/lib/opentelemetry/helpers/sql_obfuscation/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_mailer-0.1.0/lib/opentelemetry/instrumentation/action_mailer/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_pack-0.9.0/lib/opentelemetry/instrumentation/action_pack/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-action_view-0.7.3/lib/opentelemetry/instrumentation/action_view/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_job-0.7.7/lib/opentelemetry/instrumentation/active_job/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_model_serializers-0.20.2/lib/opentelemetry/instrumentation/active_model_serializers/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_record-0.7.4/lib/opentelemetry/instrumentation/active_record/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-active_support-0.6.0/lib/opentelemetry/instrumentation/active_support/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-all-0.63.0/lib/opentelemetry/instrumentation/all/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-aws_lambda-0.1.1/lib/opentelemetry/instrumentation/aws_lambda/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-aws_sdk-0.5.4/lib/opentelemetry/instrumentation/aws_sdk/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-base-0.22.6/lib/opentelemetry/instrumentation/version.rb +11 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-bunny-0.21.4/lib/opentelemetry/instrumentation/bunny/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-concurrent_ruby-0.21.4/lib/opentelemetry/instrumentation/concurrent_ruby/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-dalli-0.25.4/lib/opentelemetry/instrumentation/dalli/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-delayed_job-0.22.4/lib/opentelemetry/instrumentation/delayed_job/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-ethon-0.21.8/lib/opentelemetry/instrumentation/ethon/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-excon-0.22.4/lib/opentelemetry/instrumentation/excon/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-faraday-0.24.6/lib/opentelemetry/instrumentation/faraday/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-grape-0.2.0/lib/opentelemetry/instrumentation/grape/version.rb +14 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-graphql-0.28.4/lib/opentelemetry/instrumentation/graphql/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-gruf-0.2.1/lib/opentelemetry/instrumentation/gruf/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-http-0.23.4/lib/opentelemetry/instrumentation/http/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-http_client-0.22.7/lib/opentelemetry/instrumentation/http_client/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-koala-0.20.5/lib/opentelemetry/instrumentation/koala/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-lmdb-0.22.3/lib/opentelemetry/instrumentation/lmdb/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-mongo-0.22.4/lib/opentelemetry/instrumentation/mongo/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-mysql2-0.27.2/lib/opentelemetry/instrumentation/mysql2/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-net_http-0.22.7/lib/opentelemetry/instrumentation/net/http/version.rb +15 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-pg-0.28.0/lib/opentelemetry/instrumentation/pg/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-que-0.8.4/lib/opentelemetry/instrumentation/que/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-racecar-0.3.4/lib/opentelemetry/instrumentation/racecar/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rack-0.24.6/lib/opentelemetry/instrumentation/rack/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rails-0.31.2/lib/opentelemetry/instrumentation/rails/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rake-0.2.2/lib/opentelemetry/instrumentation/rake/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-rdkafka-0.4.8/lib/opentelemetry/instrumentation/rdkafka/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-redis-0.25.7/lib/opentelemetry/instrumentation/redis/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-resque-0.5.2/lib/opentelemetry/instrumentation/resque/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-restclient-0.22.7/lib/opentelemetry/instrumentation/restclient/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-ruby_kafka-0.21.3/lib/opentelemetry/instrumentation/ruby_kafka/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-sidekiq-0.25.7/lib/opentelemetry/instrumentation/sidekiq/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-sinatra-0.24.1/lib/opentelemetry/instrumentation/sinatra/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-instrumentation-trilogy-0.59.3/lib/opentelemetry/instrumentation/trilogy/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-registry-0.3.1/lib/opentelemetry/instrumentation/registry/version.rb +13 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-sdk-1.5.0/lib/opentelemetry/sdk/version.rb +12 -0
- data/vendor/ruby/ruby/3.2.0/gems/opentelemetry-semantic_conventions-1.10.1/lib/opentelemetry/semantic_conventions/version.rb +11 -0
- data/vendor/ruby/ruby/3.2.0/gems/parallel-1.22.1/lib/parallel/version.rb +4 -0
- data/vendor/ruby/ruby/3.2.0/gems/parser-3.2.1.1/lib/parser/version.rb +5 -0
- data/vendor/ruby/ruby/3.2.0/gems/rack-2.2.6.2/lib/rack/version.rb +29 -0
- data/vendor/ruby/ruby/3.2.0/gems/rack-test-2.0.2/lib/rack/test/version.rb +5 -0
- data/vendor/ruby/ruby/3.2.0/gems/rails-dom-testing-2.0.3/lib/rails/dom/testing/version.rb +7 -0
- data/vendor/ruby/ruby/3.2.0/gems/rails-html-sanitizer-1.5.0/lib/rails/html/sanitizer/version.rb +7 -0
- data/vendor/ruby/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/version.rb +10 -0
- data/vendor/ruby/ruby/3.2.0/gems/rainbow-3.1.1/lib/rainbow/version.rb +5 -0
- data/vendor/ruby/ruby/3.2.0/gems/rake-13.0.6/lib/rake/version.rb +10 -0
- data/vendor/ruby/ruby/3.2.0/gems/regexp_parser-2.7.0/lib/regexp_parser/version.rb +5 -0
- data/vendor/ruby/ruby/3.2.0/gems/request_store-1.5.1/lib/request_store/version.rb +3 -0
- data/vendor/ruby/ruby/3.2.0/gems/rspec-3.12.0/lib/rspec/version.rb +5 -0
- data/vendor/ruby/ruby/3.2.0/gems/rspec-core-3.12.1/lib/rspec/core/version.rb +9 -0
- data/vendor/ruby/ruby/3.2.0/gems/rspec-expectations-3.12.2/lib/rspec/expectations/version.rb +8 -0
- data/vendor/ruby/ruby/3.2.0/gems/rspec-mocks-3.12.3/lib/rspec/mocks/version.rb +9 -0
- data/vendor/ruby/ruby/3.2.0/gems/rspec-support-3.12.0/lib/rspec/support/version.rb +7 -0
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-1.23.0/lib/rubocop/cli/command/version.rb +18 -0
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-1.23.0/lib/rubocop/version.rb +85 -0
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-ast-1.27.0/lib/rubocop/ast/version.rb +9 -0
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-performance-1.12.0/lib/rubocop/performance/version.rb +14 -0
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-rails-2.12.4/lib/rubocop/rails/version.rb +14 -0
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-rake-0.6.0/lib/rubocop/rake/version.rb +7 -0
- data/vendor/ruby/ruby/3.2.0/gems/rubocop-rspec-2.6.0/lib/rubocop/rspec/version.rb +10 -0
- data/vendor/ruby/ruby/3.2.0/gems/ruboguide-1.0.0/lib/ruboguide/version.rb +5 -0
- data/vendor/ruby/ruby/3.2.0/gems/ruby-progressbar-1.13.0/lib/ruby-progressbar/version.rb +3 -0
- data/vendor/ruby/ruby/3.2.0/gems/thor-1.2.1/lib/thor/version.rb +3 -0
- data/vendor/ruby/ruby/3.2.0/gems/tzinfo-2.0.6/lib/tzinfo/version.rb +7 -0
- data/vendor/ruby/ruby/3.2.0/gems/zeitwerk-2.6.7/lib/zeitwerk/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/actionpack-7.0.4.2/lib/action_pack/version.rb +10 -0
- data/vendor/ruby/ruby/3.4.0/gems/actionview-7.0.4.2/lib/action_view/version.rb +10 -0
- data/vendor/ruby/ruby/3.4.0/gems/activesupport-7.0.4.2/lib/active_support/version.rb +10 -0
- data/vendor/ruby/ruby/3.4.0/gems/builder-3.2.4/lib/builder/version.rb +9 -0
- data/vendor/ruby/ruby/3.4.0/gems/bundler-2.4.6/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/vendor/ruby/ruby/3.4.0/gems/bundler-2.4.6/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/vendor/ruby/ruby/3.4.0/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
- data/vendor/ruby/ruby/3.4.0/gems/bundler-2.4.6/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
- data/vendor/ruby/ruby/3.4.0/gems/bundler-2.4.6/lib/bundler/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/concurrent-ruby-1.2.0/lib/concurrent-ruby/concurrent/version.rb +3 -0
- data/vendor/ruby/ruby/3.4.0/gems/crass-1.0.6/lib/crass/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/googleapis-common-protos-types-1.15.0/lib/googleapis/common/protos/types/version.rb +23 -0
- data/vendor/ruby/ruby/3.4.0/gems/i18n-1.12.0/lib/i18n/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/lograge-0.12.0/lib/lograge/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/loofah-2.19.1/lib/loofah/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/method_source-1.0.0/lib/method_source/version.rb +3 -0
- data/vendor/ruby/ruby/3.4.0/gems/mini_portile2-2.8.8/lib/mini_portile2/version.rb +3 -0
- data/vendor/ruby/ruby/3.4.0/gems/nokogiri-1.14.1/lib/nokogiri/version.rb +4 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-api-1.3.0/lib/opentelemetry/version.rb +10 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-common-0.21.0/lib/opentelemetry/common/version.rb +11 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-exporter-otlp-0.28.1/lib/opentelemetry/exporter/otlp/version.rb +14 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-helpers-mysql-0.1.1/lib/opentelemetry/helpers/mysql/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-helpers-sql-obfuscation-0.2.0/lib/opentelemetry/helpers/sql_obfuscation/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-action_mailer-0.1.0/lib/opentelemetry/instrumentation/action_mailer/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-action_pack-0.9.0/lib/opentelemetry/instrumentation/action_pack/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-action_view-0.7.3/lib/opentelemetry/instrumentation/action_view/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-active_job-0.7.7/lib/opentelemetry/instrumentation/active_job/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-active_model_serializers-0.20.2/lib/opentelemetry/instrumentation/active_model_serializers/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-active_record-0.7.4/lib/opentelemetry/instrumentation/active_record/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-active_support-0.6.0/lib/opentelemetry/instrumentation/active_support/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-all-0.63.0/lib/opentelemetry/instrumentation/all/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-aws_lambda-0.1.1/lib/opentelemetry/instrumentation/aws_lambda/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-aws_sdk-0.5.4/lib/opentelemetry/instrumentation/aws_sdk/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-base-0.22.6/lib/opentelemetry/instrumentation/version.rb +11 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-bunny-0.21.4/lib/opentelemetry/instrumentation/bunny/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-concurrent_ruby-0.21.4/lib/opentelemetry/instrumentation/concurrent_ruby/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-dalli-0.25.4/lib/opentelemetry/instrumentation/dalli/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-delayed_job-0.22.4/lib/opentelemetry/instrumentation/delayed_job/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-ethon-0.21.8/lib/opentelemetry/instrumentation/ethon/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-excon-0.22.4/lib/opentelemetry/instrumentation/excon/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-faraday-0.24.6/lib/opentelemetry/instrumentation/faraday/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-grape-0.2.0/lib/opentelemetry/instrumentation/grape/version.rb +14 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-graphql-0.28.4/lib/opentelemetry/instrumentation/graphql/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-gruf-0.2.1/lib/opentelemetry/instrumentation/gruf/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-http-0.23.4/lib/opentelemetry/instrumentation/http/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-http_client-0.22.7/lib/opentelemetry/instrumentation/http_client/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-koala-0.20.5/lib/opentelemetry/instrumentation/koala/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-lmdb-0.22.3/lib/opentelemetry/instrumentation/lmdb/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-mongo-0.22.4/lib/opentelemetry/instrumentation/mongo/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-mysql2-0.27.2/lib/opentelemetry/instrumentation/mysql2/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-net_http-0.22.7/lib/opentelemetry/instrumentation/net/http/version.rb +15 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-pg-0.28.0/lib/opentelemetry/instrumentation/pg/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-que-0.8.4/lib/opentelemetry/instrumentation/que/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-racecar-0.3.4/lib/opentelemetry/instrumentation/racecar/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-rack-0.24.6/lib/opentelemetry/instrumentation/rack/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-rails-0.31.2/lib/opentelemetry/instrumentation/rails/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-rake-0.2.2/lib/opentelemetry/instrumentation/rake/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-rdkafka-0.4.8/lib/opentelemetry/instrumentation/rdkafka/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-redis-0.25.7/lib/opentelemetry/instrumentation/redis/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-resque-0.5.2/lib/opentelemetry/instrumentation/resque/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-restclient-0.22.7/lib/opentelemetry/instrumentation/restclient/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-ruby_kafka-0.21.3/lib/opentelemetry/instrumentation/ruby_kafka/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-sidekiq-0.25.7/lib/opentelemetry/instrumentation/sidekiq/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-sinatra-0.24.1/lib/opentelemetry/instrumentation/sinatra/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-instrumentation-trilogy-0.59.3/lib/opentelemetry/instrumentation/trilogy/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-registry-0.3.1/lib/opentelemetry/instrumentation/registry/version.rb +13 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-sdk-1.5.0/lib/opentelemetry/sdk/version.rb +12 -0
- data/vendor/ruby/ruby/3.4.0/gems/opentelemetry-semantic_conventions-1.10.1/lib/opentelemetry/semantic_conventions/version.rb +11 -0
- data/vendor/ruby/ruby/3.4.0/gems/parallel-1.22.1/lib/parallel/version.rb +4 -0
- data/vendor/ruby/ruby/3.4.0/gems/parser-3.2.1.1/lib/parser/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/rack-2.2.6.2/lib/rack/version.rb +29 -0
- data/vendor/ruby/ruby/3.4.0/gems/rack-test-2.0.2/lib/rack/test/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/rails-dom-testing-2.0.3/lib/rails/dom/testing/version.rb +7 -0
- data/vendor/ruby/ruby/3.4.0/gems/rails-html-sanitizer-1.5.0/lib/rails/html/sanitizer/version.rb +7 -0
- data/vendor/ruby/ruby/3.4.0/gems/railties-7.0.4.2/lib/rails/version.rb +10 -0
- data/vendor/ruby/ruby/3.4.0/gems/rainbow-3.1.1/lib/rainbow/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/rake-13.0.6/lib/rake/version.rb +10 -0
- data/vendor/ruby/ruby/3.4.0/gems/regexp_parser-2.7.0/lib/regexp_parser/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/request_store-1.5.1/lib/request_store/version.rb +3 -0
- data/vendor/ruby/ruby/3.4.0/gems/rspec-3.12.0/lib/rspec/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/rspec-core-3.12.1/lib/rspec/core/version.rb +9 -0
- data/vendor/ruby/ruby/3.4.0/gems/rspec-expectations-3.12.2/lib/rspec/expectations/version.rb +8 -0
- data/vendor/ruby/ruby/3.4.0/gems/rspec-mocks-3.12.3/lib/rspec/mocks/version.rb +9 -0
- data/vendor/ruby/ruby/3.4.0/gems/rspec-support-3.12.0/lib/rspec/support/version.rb +7 -0
- data/vendor/ruby/ruby/3.4.0/gems/rubocop-1.23.0/lib/rubocop/cli/command/version.rb +18 -0
- data/vendor/ruby/ruby/3.4.0/gems/rubocop-1.23.0/lib/rubocop/version.rb +85 -0
- data/vendor/ruby/ruby/3.4.0/gems/rubocop-ast-1.27.0/lib/rubocop/ast/version.rb +9 -0
- data/vendor/ruby/ruby/3.4.0/gems/rubocop-performance-1.12.0/lib/rubocop/performance/version.rb +14 -0
- data/vendor/ruby/ruby/3.4.0/gems/rubocop-rails-2.12.4/lib/rubocop/rails/version.rb +14 -0
- data/vendor/ruby/ruby/3.4.0/gems/rubocop-rake-0.6.0/lib/rubocop/rake/version.rb +7 -0
- data/vendor/ruby/ruby/3.4.0/gems/rubocop-rspec-2.6.0/lib/rubocop/rspec/version.rb +10 -0
- data/vendor/ruby/ruby/3.4.0/gems/ruboguide-1.0.0/lib/ruboguide/version.rb +5 -0
- data/vendor/ruby/ruby/3.4.0/gems/ruby-progressbar-1.13.0/lib/ruby-progressbar/version.rb +3 -0
- data/vendor/ruby/ruby/3.4.0/gems/thor-1.2.1/lib/thor/version.rb +3 -0
- data/vendor/ruby/ruby/3.4.0/gems/tzinfo-2.0.6/lib/tzinfo/version.rb +7 -0
- data/vendor/ruby/ruby/3.4.0/gems/zeitwerk-2.6.7/lib/zeitwerk/version.rb +5 -0
- metadata +199 -9
data/README.md
CHANGED
|
@@ -13,6 +13,7 @@ by the elastic stack. Specifically it does the following:
|
|
|
13
13
|
4. Enables log-correlation for the elastic apm.
|
|
14
14
|
|
|
15
15
|
After adding this gem, your (production) logs will go from looking like this:
|
|
16
|
+
|
|
16
17
|
```
|
|
17
18
|
Started GET "/api/v1/profiles/my?hola=adiosa" for 172.19.0.1 at 2023-02-21 12:48:48 +0000
|
|
18
19
|
Processing by Api::V1::ProfilesController#my as */*
|
|
@@ -21,14 +22,16 @@ Completed 401 Unauthorized in 11ms (ActiveRecord: 0.0ms | MongoDB: 0.0ms | Alloc
|
|
|
21
22
|
```
|
|
22
23
|
|
|
23
24
|
to looking like this:
|
|
25
|
+
|
|
24
26
|
```
|
|
25
|
-
{"@timestamp":"2023-02-21T13:11:56.457Z","log.level":"INFO","message":"method=GET path=/api/v1/profiles/my format=*/* controller=Api::V1::ProfilesController action=my status=200 duration=11.54 view=0.00 db=0.00 unpermitted_params=[\"hola\"] params={\"hola\"=>\"adiosa\"}","ecs.version":"1.4.0","
|
|
27
|
+
{"@timestamp":"2023-02-21T13:11:56.457Z","log.level":"INFO","message":"method=GET path=/api/v1/profiles/my format=*/* controller=Api::V1::ProfilesController action=my status=200 duration=11.54 view=0.00 db=0.00 unpermitted_params=[\"hola\"] params={\"hola\"=>\"adiosa\"}","ecs.version":"1.4.0","user.id":null,"http.code":"200"}
|
|
26
28
|
```
|
|
27
29
|
|
|
28
30
|
While slightly less human readable, this is meant to be used along with a log aggregator that will display it in a
|
|
29
31
|
readable form. Development logs remain unaffected (see [Usage](#usage) for more on this).
|
|
30
32
|
|
|
31
33
|
## How it works
|
|
34
|
+
|
|
32
35
|
Loggable is a Railtie that overrides the default rails logger configuration. Right from the initialization process, the
|
|
33
36
|
logger is set to `::EcsLogging::Logger` and the default log level is set to `INFO` (this can be overridden in
|
|
34
37
|
application.rb or your environment configuration). It also configures lograge automatically. Note that the
|
|
@@ -39,17 +42,21 @@ of lograge as the message, however some of the fields in the lograge output are
|
|
|
39
42
|
monkey patch on the ECS gem that flattens the lograge output onto the Ecs object.
|
|
40
43
|
|
|
41
44
|
## Installation
|
|
45
|
+
|
|
42
46
|
Add this to your Gemfile:
|
|
47
|
+
|
|
43
48
|
```ruby
|
|
44
49
|
gem 'researchable_loggable', '~> 1.0'
|
|
45
50
|
```
|
|
46
51
|
|
|
47
52
|
Additionally, if you want to be able to correlate logs with Elastic's APM traces, you may also add the elastic apm gem:
|
|
53
|
+
|
|
48
54
|
```ruby
|
|
49
55
|
gem 'elastic-apm'
|
|
50
56
|
```
|
|
51
57
|
|
|
52
58
|
Then execute:
|
|
59
|
+
|
|
53
60
|
```bash
|
|
54
61
|
$ bundle install
|
|
55
62
|
```
|
|
@@ -61,8 +68,8 @@ If loggable detects the presence of this gem, it will inject `transaction.id`, `
|
|
|
61
68
|
For a brand new Rails application, adding this gem to the Gemfile should be all the configuration that is needed. This
|
|
62
69
|
gem will automatically configure the Rails logger and lograge to follow the Researchable standard.
|
|
63
70
|
|
|
64
|
-
|
|
65
71
|
### Parameters
|
|
72
|
+
|
|
66
73
|
This are the parameters that can be configured in the `config.loggable` namespace:
|
|
67
74
|
|
|
68
75
|
`production_like`. By default loggable will only
|
|
@@ -71,21 +78,42 @@ human readable (in favour of machine readability and compatibility with the Elas
|
|
|
71
78
|
Rails one. For development, the more human readable format is preferred. However, if you want to override this and
|
|
72
79
|
log in the production format while on development (e.g. because you are troubleshooting a problem with the logs or you
|
|
73
80
|
are developing against this gem) then you may add the following to your `config/environment/development.rb` file:
|
|
81
|
+
|
|
74
82
|
```ruby
|
|
75
83
|
config.loggable.production_like = true
|
|
76
84
|
```
|
|
77
85
|
|
|
78
86
|
`current_user_method`. This is the name of the method that will be called on the controller to get the current user. By default this is set to `current_user`. If you want to override this, you may add the following to your `config/application.rb` file:
|
|
87
|
+
|
|
79
88
|
```ruby
|
|
80
89
|
config.loggable.current_user_method = :my_current_user_method
|
|
81
90
|
```
|
|
91
|
+
|
|
82
92
|
This method is used for ECS logging, if the method is not found, the user.id field will be set to nil.
|
|
83
93
|
|
|
84
94
|
`disable_open_telemetry`. By default, loggable will try to inject the open telemetry trace ids into the log line. If you want to disable this, you may add the following to your `config/application.rb` file:
|
|
95
|
+
|
|
85
96
|
```ruby
|
|
86
97
|
config.loggable.disable_open_telemetry = true
|
|
87
98
|
```
|
|
88
99
|
|
|
100
|
+
`disable_pyroscope`. Loggable can configure [Pyroscope](https://grafana.com/docs/pyroscope/) for continuous profiling in production. The `pyroscope` gem is optional, so it is not installed with loggable (it has no prebuilt binaries for Alpine/musl). To enable profiling, add it to your Gemfile:
|
|
101
|
+
|
|
102
|
+
```ruby
|
|
103
|
+
gem 'pyroscope', '~> 1.0'
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The configuration is the same regardless of the backend it points to (Grafana Cloud, a self-hosted Pyroscope or an Alloy instance):
|
|
107
|
+
|
|
108
|
+
- `PYROSCOPE_SERVER_ADDRESS` (required): the address of the backend (e.g. `https://profiles-prod-001.grafana.net` or `http://localhost:4040`).
|
|
109
|
+
- `PYROSCOPE_BASIC_AUTH_USER` and `PYROSCOPE_BASIC_AUTH_PASSWORD` (optional): basic auth credentials, used when both are set.
|
|
110
|
+
|
|
111
|
+
If `PYROSCOPE_SERVER_ADDRESS` is not present, Pyroscope configuration is skipped entirely. If you want to disable profiling regardless, you may add the following to your `config/application.rb` file:
|
|
112
|
+
|
|
113
|
+
```ruby
|
|
114
|
+
config.loggable.disable_pyroscope = true
|
|
115
|
+
```
|
|
116
|
+
|
|
89
117
|
No other configuration options are provided because this gem seeks to enforce consistency across all applications.
|
|
90
118
|
|
|
91
119
|
For applications that already had some level of log customization, some cleanup might be needed:
|
|
@@ -103,9 +131,11 @@ For applications that already had some level of log customization, some cleanup
|
|
|
103
131
|
|
|
104
132
|
This gem is a Railtie, and it's meant to be run under a Rails project. The easiest way to develop and test this gem is
|
|
105
133
|
to add it to your Rails project locally by adding this to your Rails Gemfile:
|
|
134
|
+
|
|
106
135
|
```ruby
|
|
107
136
|
gem 'loggable', path: "<your local path to the loggable gem you're developing against>"
|
|
108
137
|
```
|
|
138
|
+
|
|
109
139
|
If your Rails application is being executed by a docker container, then map the local gem repository to a directory in
|
|
110
140
|
the container through a volume, and add the path of the volume to the Gemfile statement instead.
|
|
111
141
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'active_support/core_ext/object/blank'
|
|
4
|
+
require 'socket'
|
|
5
|
+
|
|
6
|
+
module Loggable
|
|
7
|
+
# The PyroscopeConfig module provides a method to configure Pyroscope for continuous profiling.
|
|
8
|
+
# The same env vars are used regardless of the backend (Grafana Cloud, a self-hosted Pyroscope or Alloy instance):
|
|
9
|
+
# - PYROSCOPE_SERVER_ADDRESS (required)
|
|
10
|
+
# - PYROSCOPE_BASIC_AUTH_USER and PYROSCOPE_BASIC_AUTH_PASSWORD (optional, enables basic auth when both are set)
|
|
11
|
+
# If PYROSCOPE_SERVER_ADDRESS is not present, Pyroscope configuration is skipped.
|
|
12
|
+
# The pyroscope gem is optional: applications that want profiling must add it to their own Gemfile.
|
|
13
|
+
module PyroscopeConfig
|
|
14
|
+
def self.configure(application_name)
|
|
15
|
+
server_address = env('PYROSCOPE_SERVER_ADDRESS')
|
|
16
|
+
return unless server_address && pyroscope_available?
|
|
17
|
+
|
|
18
|
+
::Pyroscope.configure do |config|
|
|
19
|
+
config.application_name = application_name
|
|
20
|
+
config.server_address = server_address
|
|
21
|
+
configure_basic_auth(config)
|
|
22
|
+
config.tags = {
|
|
23
|
+
'pod' => env('HOSTNAME') || Socket.gethostname,
|
|
24
|
+
'domain' => env('HOST_NAME')
|
|
25
|
+
}.compact
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.pyroscope_available?
|
|
30
|
+
require 'pyroscope'
|
|
31
|
+
true
|
|
32
|
+
rescue LoadError
|
|
33
|
+
warn 'Loggable: PYROSCOPE_SERVER_ADDRESS is set but the pyroscope gem is not installed, skipping Pyroscope'
|
|
34
|
+
false
|
|
35
|
+
end
|
|
36
|
+
private_class_method :pyroscope_available?
|
|
37
|
+
|
|
38
|
+
def self.configure_basic_auth(config)
|
|
39
|
+
username = env('PYROSCOPE_BASIC_AUTH_USER')
|
|
40
|
+
password = env('PYROSCOPE_BASIC_AUTH_PASSWORD')
|
|
41
|
+
if username.nil? ^ password.nil?
|
|
42
|
+
warn 'Loggable: PYROSCOPE_BASIC_AUTH_USER and PYROSCOPE_BASIC_AUTH_PASSWORD must both be set, ' \
|
|
43
|
+
'skipping basic auth'
|
|
44
|
+
end
|
|
45
|
+
return unless username && password
|
|
46
|
+
|
|
47
|
+
config.basic_auth_username = username
|
|
48
|
+
config.basic_auth_password = password
|
|
49
|
+
end
|
|
50
|
+
private_class_method :configure_basic_auth
|
|
51
|
+
|
|
52
|
+
def self.env(name)
|
|
53
|
+
ENV.fetch(name, nil).presence
|
|
54
|
+
end
|
|
55
|
+
private_class_method :env
|
|
56
|
+
end
|
|
57
|
+
end
|
data/lib/loggable/railtie.rb
CHANGED
|
@@ -11,6 +11,7 @@ module Loggable
|
|
|
11
11
|
config.loggable = ActiveSupport::OrderedOptions.new
|
|
12
12
|
config.loggable.production_like = false
|
|
13
13
|
config.loggable.current_user_method = :current_user
|
|
14
|
+
config.loggable.disable_pyroscope = false
|
|
14
15
|
|
|
15
16
|
# Initializer runs before initialize_logger (found in Bootstrap) so from the very beginning we are logging using
|
|
16
17
|
# the logfmt format, even during the initialization process
|
|
@@ -19,6 +20,7 @@ module Loggable
|
|
|
19
20
|
Rails.application.configure do
|
|
20
21
|
production_like = Rails.env.production? || config.loggable.production_like
|
|
21
22
|
disable_open_telemetry = config.loggable.disable_open_telemetry
|
|
23
|
+
disable_pyroscope = config.loggable.disable_pyroscope
|
|
22
24
|
|
|
23
25
|
if production_like
|
|
24
26
|
if Rails.application.config.respond_to?(:assets) && Rails.application.config.assets.quiet
|
|
@@ -30,6 +32,10 @@ module Loggable
|
|
|
30
32
|
unless disable_open_telemetry
|
|
31
33
|
Loggable::OpenTelemetryConfig.configure(Rails.application.class.module_parent_name.underscore.dasherize)
|
|
32
34
|
end
|
|
35
|
+
|
|
36
|
+
unless disable_pyroscope
|
|
37
|
+
Loggable::PyroscopeConfig.configure(Rails.application.class.module_parent_name.underscore.dasherize)
|
|
38
|
+
end
|
|
33
39
|
end
|
|
34
40
|
|
|
35
41
|
# lograge configuration
|
|
@@ -47,7 +53,6 @@ module Loggable
|
|
|
47
53
|
controller.request.env['HTTP_X_REQUEST_ID'] # Fallback to Rack's normalized header
|
|
48
54
|
|
|
49
55
|
payload = {
|
|
50
|
-
'source.ip': controller.request.ip,
|
|
51
56
|
'user.id': user_id,
|
|
52
57
|
'request.id': request_id,
|
|
53
58
|
status: response_code
|
data/lib/loggable/version.rb
CHANGED
|
@@ -3,6 +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/pyroscope_config'
|
|
6
7
|
require_relative 'loggable/logfmt/logger'
|
|
7
8
|
|
|
8
9
|
module ResearchableLoggable
|
data/renovate.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: false
|
|
2
|
+
|
|
3
|
+
module Bundler
|
|
4
|
+
VERSION = "2.4.6".freeze
|
|
5
|
+
|
|
6
|
+
def self.bundler_major_version
|
|
7
|
+
@bundler_major_version ||= VERSION.split(".").first.to_i
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.gem_version
|
|
11
|
+
@gem_version ||= Gem::Version.create(VERSION)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Copyright 2021 Google LLC
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
|
|
17
|
+
module Google
|
|
18
|
+
module CommonProtos
|
|
19
|
+
module Types
|
|
20
|
+
VERSION = "1.15.0".freeze
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Copyright The OpenTelemetry Authors
|
|
4
|
+
#
|
|
5
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
module OpenTelemetry
|
|
8
|
+
module Exporter
|
|
9
|
+
module OTLP
|
|
10
|
+
## Current OpenTelemetry OTLP exporter version
|
|
11
|
+
VERSION = '1.8.0'
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|