catpm 0.1.2 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a84d81e5f4bbf2dca6af9f3b1c91d18af2160e9a15e24c8093216be4b8c5e20
4
- data.tar.gz: 347b9026049cb39becf4d7618996c3091ddc0243115efdf47e689c644ec03f89
3
+ metadata.gz: d64ad9022afec2d8de112617ff00ef0a43900f4d1d0f3c81b24a8d08fe8e18b2
4
+ data.tar.gz: 6881f8432b4ec2f330b5f17a419e53b68b15c0dd4a7059a98eb0bc43f89dd3a0
5
5
  SHA512:
6
- metadata.gz: da7474f427ad062a4cad9098263adacc90df2835cc8e2425689363346e805ca3fa520870fe2366cb750ea0f47bb3579adc06872891c413a2bcb9bd9222467278
7
- data.tar.gz: a1161b1475b8c45654a6e0833cc1884686adaf2bdb1de5293c8337085e5e290503399053a19d2c3d2ce1fce2c79cc7ec0b31ea5d0e31207ffaff3a32ce50710b
6
+ metadata.gz: a64704f846d4d4c5bcd7ecda2703f31e056c8f9861490eafb261560072004513e229dcc99ef1ff47114655b3db4ff81358a3d71f4636149014d4ca8d99a82832
7
+ data.tar.gz: ed1c75c3508829c7f8a692cf5df3001c6d930b1d7603c815e26b866e54046424e56d5d5bd834a2fc6e49bf01923a1f518e3f7c6d21354bfc51f4a309a12f25cf
data/README.md CHANGED
@@ -1,3 +1,6 @@
1
+ gem build catpm.gemspec
2
+ gem push catpm-0.1.2.gem
3
+
1
4
  # Catpm
2
5
 
3
6
  Lightweight, self-hosted performance monitoring for Rails. Track requests, background jobs, errors, and custom traces — all stored in your existing database. No external services, no Redis, no extra infrastructure.
data/lib/catpm/flusher.rb CHANGED
@@ -44,12 +44,12 @@ module Catpm
44
44
  events = @buffer.drain
45
45
  return if events.empty?
46
46
 
47
- perf_events, custom_events = events.partition { |e| e.is_a?(Catpm::Event) }
47
+ ActiveRecord::Base.connection_pool.with_connection do
48
+ perf_events, custom_events = events.partition { |e| e.is_a?(Catpm::Event) }
48
49
 
49
- if perf_events.any?
50
- buckets, samples, errors = aggregate(perf_events)
50
+ if perf_events.any?
51
+ buckets, samples, errors = aggregate(perf_events)
51
52
 
52
- ActiveRecord::Base.connection_pool.with_connection do
53
53
  adapter = Catpm::Adapter.current
54
54
  adapter.persist_buckets(buckets)
55
55
 
@@ -58,12 +58,10 @@ module Catpm
58
58
  adapter.persist_samples(samples, bucket_map)
59
59
  adapter.persist_errors(errors)
60
60
  end
61
- end
62
61
 
63
- if custom_events.any?
64
- event_buckets, event_samples = aggregate_custom_events(custom_events)
62
+ if custom_events.any?
63
+ event_buckets, event_samples = aggregate_custom_events(custom_events)
65
64
 
66
- ActiveRecord::Base.connection_pool.with_connection do
67
65
  adapter = Catpm::Adapter.current
68
66
  adapter.persist_event_buckets(event_buckets)
69
67
  adapter.persist_event_samples(event_samples)
@@ -75,8 +73,10 @@ module Catpm
75
73
 
76
74
  maybe_cleanup
77
75
  rescue => e
76
+ events&.each { |ev| @buffer.push(ev) }
78
77
  @circuit.record_failure
79
78
  Catpm.config.error_handler.call(e)
79
+ Rails.logger.error("[catpm] flush error: #{e.class}: #{e.message}\n#{e.backtrace&.first(5)&.join("\n")}")
80
80
  end
81
81
 
82
82
  def reset!
data/lib/catpm/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Catpm
4
- VERSION = '0.1.2'
4
+ VERSION = '0.1.3'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: catpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''