upfluence-utils 0.10.0 → 0.10.4

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: c8c88069b0d18a4f8f01315a252a691a7410d3dfcfdf268f3c99508b8a31e504
4
- data.tar.gz: 536742411a6e92e68787c5fdb64f5542f9fcdb6f0e138d9bfa6e3d3d5857e697
3
+ metadata.gz: 5e5e3018756c335b480c5ccfcd42964c183789228edb4be10f5348c4c9b4a678
4
+ data.tar.gz: 46f34226defdc5e3de22ac837ec7f41c2c3938cd58d77ff1dbb747b23baa5ea6
5
5
  SHA512:
6
- metadata.gz: d3defd0c55f04af0751f337e50ed62a32915b83d2f9b90ac9aed21513ca38ae37b89d8db49d3614f634596fdad2876316643967c21d5d54bcaf3e543a3068b09
7
- data.tar.gz: b5ca86d6ca49687d46f5ea3b4b1e2de8b5907f4928335f10212d74ac6772b28d5a16f3891f7f7365828f6c5a49cdc8b72e7260d828e893284cb6641e81c25377
6
+ metadata.gz: '0032398f8a0bf1f604e29d0c5ba8ddbcc8214e898ff752c8a3a6201336a9657d48c7623ecf1b8a15b774876f9f1ae3f602640f70ff33e7ec96ec245fd62439dc'
7
+ data.tar.gz: eb3d4d5f34bb3949adfcccee69a0e09616714ed882a2750f1ff348958a15bcb4537bf612fd2fd828a8a899c1cb5632dd2dcdbb29424b0b4ef002233df738c7a1
@@ -44,9 +44,11 @@ module Upfluence
44
44
  end
45
45
 
46
46
  def record(env, code, duration)
47
+ path = parse_route(env, code)
48
+
47
49
  @request_total_count.increment(
48
50
  labels: {
49
- path: parse_route(env),
51
+ path: path,
50
52
  method: env['REQUEST_METHOD'].downcase,
51
53
  status: code,
52
54
  env: Upfluence.env.to_s
@@ -56,16 +58,16 @@ module Upfluence
56
58
  @request_histogram.observe(
57
59
  duration,
58
60
  labels: {
59
- path: parse_route(env),
61
+ path: path,
60
62
  method: env['REQUEST_METHOD'].downcase,
61
63
  env: Upfluence.env.to_s
62
64
  }
63
65
  )
64
66
  end
65
67
 
66
- def parse_route(env)
68
+ def parse_route(env, code)
67
69
  parse_route_sinatra(env) || parse_route_rails(env) ||
68
- parse_route_default(env)
70
+ parse_route_default(env, code)
69
71
  end
70
72
 
71
73
  def parse_route_rails(env)
@@ -90,7 +92,9 @@ module Upfluence
90
92
  end.reverse.join('/')
91
93
  end
92
94
 
93
- def parse_route_default(env)
95
+ def parse_route_default(env, code)
96
+ return 'unexpected-route' if code.eql? 404
97
+
94
98
  Rack::Request.new(env).path.gsub(%r{/\d+(/|$)}, '/:id\\1')
95
99
  end
96
100
  end
@@ -3,6 +3,12 @@ module Upfluence
3
3
  module Thrift
4
4
  module Middleware
5
5
  class ErrorCatcher
6
+ STANDARD_THRIFT_EXCEPTIONS = [
7
+ ::Thrift::ApplicationException,
8
+ ::Thrift::TransportException,
9
+ ::Thrift::ProtocolException
10
+ ].freeze
11
+
6
12
  def initialize(app, error_logger)
7
13
  @app = app
8
14
  @error_logger = error_logger
@@ -11,6 +17,10 @@ module Upfluence
11
17
  def method_missing(method, *args, &block)
12
18
  @app.send(method, *args, &block)
13
19
  rescue ::Thrift::Exception => e
20
+ if STANDARD_THRIFT_EXCEPTIONS.include? e.class
21
+ @error_logger.notify(e, method, *args)
22
+ end
23
+
14
24
  raise e
15
25
  rescue => e
16
26
  @error_logger.notify(e, method, *args)
@@ -1 +1,2 @@
1
+ require 'thrift'
1
2
  require 'upfluence/utils/thrift/middleware'
@@ -1,5 +1,5 @@
1
1
  module Upfluence
2
2
  module Utils
3
- VERSION = '0.10.0'.freeze
3
+ VERSION = '0.10.4'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upfluence-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Upfluence
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-22 00:00:00.000000000 Z
11
+ date: 2021-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler