gitlab-labkit 0.18.0 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d1b3569e3032ab75917a5fccc48dc4d29a7f8bb7ce25bd94b07552693cde66f
4
- data.tar.gz: 521050774784e77217b6ac86e9faa4c82455802b10d9a33d263849e65c91be62
3
+ metadata.gz: 2ffa08defed93e465326a1f5db11670aacc69f3ebf2382d25459e4a9db3834b0
4
+ data.tar.gz: 81e98feb830a7247ecfb21b227d0b8f9bd632a1e7d3a90b95e4563d7a6ccfb6c
5
5
  SHA512:
6
- metadata.gz: c7956a088be110af584ebc8f5e4979e6edd154cf8f13dc587b413afb1247feb9ed5712e5f76625bf48c800d5d36e896f58b62de909d212d4292235d02d57b9d6
7
- data.tar.gz: 9dbc20edb7bf500cc30317c5c4f385de32cf03980907e993802850710f3d797ee05cc086e74948df4110c4a0f63a511e5c8857cb3aeb93288e9fe47acce0011e
6
+ metadata.gz: 8132d375526e57b7afa78b4edcc93268cfffbe9b3c1cf5db9de0f18e6f4c8ac22b934d7e2deed413caf13583e483a896584acd8e56fa1318a748fedf19cd98a0
7
+ data.tar.gz: 1f18c8ab7c8bacf6f8549d741c8ed500eebbca0e3fc4a47bed3fc5d239fc19eac9316c43ddfefdc771eb58ef11adc52e1a358ef46502bf4de0c7a6bca2e08207
data/.gitlab-ci.yml CHANGED
@@ -17,6 +17,10 @@ workflow:
17
17
  - bundle install
18
18
  - bundle exec rake verify build install
19
19
 
20
+ test:3.0:
21
+ image: ruby:3.0
22
+ <<: *test_definition
23
+
20
24
  test:2.7:
21
25
  image: ruby:2.7
22
26
  <<: *test_definition
data/Rakefile CHANGED
@@ -3,10 +3,8 @@
3
3
  require "bundler/gem_tasks"
4
4
  require "rufo"
5
5
 
6
- begin
7
- require "rspec/core/rake_task"
8
- RSpec::Core::RakeTask.new(:spec)
9
- end
6
+ require "rspec/core/rake_task"
7
+ RSpec::Core::RakeTask.new(:spec)
10
8
 
11
9
  require "rubocop/rake_task"
12
10
  RuboCop::RakeTask.new(:rubocop) do |task|
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_runtime_dependency "grpc", "~> 1.19" # Be sure to update the "grpc-tools" dev_depenency too
25
25
  spec.add_runtime_dependency "jaeger-client", "~> 1.1"
26
26
  spec.add_runtime_dependency "opentracing", "~> 0.4"
27
- spec.add_runtime_dependency "gitlab-pg_query", "~> 2.0"
27
+ spec.add_runtime_dependency "pg_query", "~> 2.1"
28
28
  spec.add_runtime_dependency "redis", ">3.0.0", "<5.0.0"
29
29
 
30
30
  # Please maintain alphabetical order for dev dependencies
@@ -42,4 +42,5 @@ Gem::Specification.new do |spec|
42
42
  spec.add_development_dependency "rspec-parameterized", "~> 0.4"
43
43
  spec.add_development_dependency "rufo", "0.9.0"
44
44
  spec.add_development_dependency "sidekiq", "~> 5.2.7"
45
+ spec.add_development_dependency "webrick", "~> 1.7.0"
45
46
  end
@@ -1,7 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "securerandom"
4
+
3
5
  require "active_support/core_ext/module/delegation"
4
6
  require "active_support/core_ext/string/starts_ends_with"
7
+ require "active_support/core_ext/string/inflections"
5
8
 
6
9
  module Labkit
7
10
  # A context can be used to provide structured information on what resources
@@ -28,6 +28,12 @@ module Labkit
28
28
  ""
29
29
  end
30
30
 
31
+ def self.sql_fingerprint(normalized_sql)
32
+ PgQuery.parse(normalized_sql)&.fingerprint
33
+ rescue PgQuery::ParseError
34
+ ""
35
+ end
36
+
31
37
  # Ensures that URLS are sanitized to hide credentials
32
38
  def self.mask_url(url)
33
39
  url = url.to_s.strip
@@ -14,7 +14,11 @@ module Labkit
14
14
  end
15
15
 
16
16
  def tags(payload)
17
- sql = Labkit::Logging::Sanitizer.sanitize_sql(payload[:sql]) if Labkit::Tracing.sampled? && payload[:sql]
17
+ if Labkit::Tracing.sampled? && payload[:sql]
18
+ sql = Labkit::Logging::Sanitizer.sanitize_sql(payload[:sql])
19
+ fingerprint = Labkit::Logging::Sanitizer.sql_fingerprint(sql)
20
+ end
21
+
18
22
  {
19
23
  "component" => COMPONENT_TAG,
20
24
  "span.kind" => "client",
@@ -22,6 +26,7 @@ module Labkit
22
26
  "db.connection_id" => payload[:connection_id],
23
27
  "db.cached" => payload[:cached] || false,
24
28
  "db.statement" => sql,
29
+ "db.statement_fingerprint" => fingerprint,
25
30
  }
26
31
  end
27
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-labkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Newdigate
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-31 00:00:00.000000000 Z
11
+ date: 2021-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -93,19 +93,19 @@ dependencies:
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0.4'
95
95
  - !ruby/object:Gem::Dependency
96
- name: gitlab-pg_query
96
+ name: pg_query
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: '2.0'
101
+ version: '2.1'
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: '2.0'
108
+ version: '2.1'
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: redis
111
111
  requirement: !ruby/object:Gem::Requirement
@@ -322,6 +322,20 @@ dependencies:
322
322
  - - "~>"
323
323
  - !ruby/object:Gem::Version
324
324
  version: 5.2.7
325
+ - !ruby/object:Gem::Dependency
326
+ name: webrick
327
+ requirement: !ruby/object:Gem::Requirement
328
+ requirements:
329
+ - - "~>"
330
+ - !ruby/object:Gem::Version
331
+ version: 1.7.0
332
+ type: :development
333
+ prerelease: false
334
+ version_requirements: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ - - "~>"
337
+ - !ruby/object:Gem::Version
338
+ version: 1.7.0
325
339
  description:
326
340
  email:
327
341
  - andrew@gitlab.com