activeinsights 0.3.4 → 1.0.1

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: c526447c184e259fc011f7938bf6deacfc67e8f9fc9d8c3e7f02183814909723
4
- data.tar.gz: 04e5ed0a3bddc0c9a5bf9cf6a2437b227ca9293d833ab73cb7525a2bb75256a5
3
+ metadata.gz: a2778801a841416fe7477c3eaabd4b6a5a77b9fda76256e7254e36d14491c9b9
4
+ data.tar.gz: adb6b90323b2d2798bd30a4a316e8b9f60216a2108d6c929e0d1e9bc8d7e8a14
5
5
  SHA512:
6
- metadata.gz: b1bc842745370b458b007d3076abba08e1f10c5c68f81158a3224bbb73b1039476a3801002349ca3ee1bfa5ad5e53396a9a2dcce0dc3f0bd1c9d6fec002ee75c
7
- data.tar.gz: 0ac0ae72f8d0984ef8818e8d87423b3d1bef4d161aee098d8317c015f8f91b6c84a50251d38b6959973735f64421f162854a4311a0d0287c4f87b2f9be738824
6
+ metadata.gz: 79c9abe8a4f26633ad888639829209fd63a9871b5a2a00249e4cc6c94dc18b86547c8a19c212a06d2888099b6ee4eb3d0611ceebc0eb955d37d3d21794dc1f53
7
+ data.tar.gz: fa13721b3a897868c7c39d87582f044371bb8b27959b3d0264024a908c18ed611b5fb71e3b40eb78ad6031985f6514527d8730c51246d2030b4c187b7f00eaaf
data/README.md CHANGED
@@ -1,17 +1,21 @@
1
1
  # ActiveInsights
2
2
 
3
- One of the fundemental tools needed to take your Rails app to production is a
4
- way to track response times. Unfortunately, theres no free, easy,
3
+ One of the fundemental tools needed when taking your Rails app to production is
4
+ a way to track response times. Unfortunately, theres no free, easy,
5
5
  open source way to track them for small or medium apps. Skylight, Honeybadger,
6
- Sentry, and AppSignal are great, but they are are closed source and
6
+ Sentry, AppSignal, etc. are great, but they are are closed source and
7
7
  there should be an easy open source alternative where you control the data.
8
8
 
9
- ActiveInsights hooks into the ActiveSupport [instrumention](https://guides.rubyonrails.org/active_support_instrumentation.html#) baked directly into Rails. ActiveInsights tracks RPM, RPM per controller, and p50/p95/p99 response times and charts all those by the minute.
9
+ ActiveInsights hooks into the ActiveSupport [instrumention](https://guides.rubyonrails.org/active_support_instrumentation.html#)
10
+ baked directly into Rails. ActiveInsights tracks RPM, RPM per controller, and
11
+ p50/p95/p99 response times and charts all those by the minute. It also tracks
12
+ jobs per minute, their duration, and latency.
10
13
 
11
14
  ![screenshot 1](https://github.com/npezza93/activeinsights/blob/main/.github/screenshot1.png)
12
15
  ![screenshot 2](https://github.com/npezza93/activeinsights/blob/main/.github/screenshot2.png)
13
16
  ![screenshot 3](https://github.com/npezza93/activeinsights/blob/main/.github/screenshot3.png)
14
17
  ![screenshot 4](https://github.com/npezza93/activeinsights/blob/main/.github/screenshot4.png)
18
+ ![screenshot 5](https://github.com/npezza93/activeinsights/blob/main/.github/screenshot5.png)
15
19
 
16
20
  ## Installation
17
21
  Add this line to your application's Gemfile:
@@ -23,8 +23,8 @@ module ActiveInsights
23
23
  "'#{table_name}'.'started_at')")
24
24
  when "Mysql2", "Mysql2Spatial", "Mysql2Rgeo", "Trilogy"
25
25
  group("CONVERT_TZ(DATE_FORMAT(#{table_name.split('.').map do |arg|
26
- "`#{arg}`"
27
- end.join('.')}.`started_at`" \
26
+ "`#{arg}`"
27
+ end.join('.')}.`started_at`" \
28
28
  ", '%Y-%m-%d %H:%i:00'), 'Etc/UTC', '+00:00')")
29
29
  when "PostgreSQL"
30
30
  group("DATE_TRUNC('minute', \"#{table_name}\"." \
@@ -28,6 +28,8 @@ module ActiveInsights
28
28
  ActiveSupport::Notifications.
29
29
  subscribe("perform.active_job") do |_name,
30
30
  started, finished, unique_id, payload|
31
+ next unless ActiveInsights.enabled?
32
+
31
33
  ActiveInsights::Job.setup(started, finished, unique_id, payload)
32
34
  end
33
35
  end
@@ -36,8 +38,8 @@ module ActiveInsights
36
38
  ActiveSupport::Notifications.
37
39
  subscribe("process_action.action_controller") do |_name,
38
40
  started, finished, unique_id, payload|
39
- next if Rails.env.development? ||
40
- ActiveInsights.ignored_endpoint?(payload)
41
+ next if ActiveInsights.ignored_endpoint?(payload) ||
42
+ !ActiveInsights.enabled?
41
43
 
42
44
  Thread.new do
43
45
  ActiveRecord::Base.connection_pool.with_connection do
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveInsights
4
- VERSION = "0.3.4"
4
+ VERSION = "1.0.1"
5
5
  end
@@ -7,11 +7,21 @@ require "active_insights/version"
7
7
  require "active_insights/engine"
8
8
 
9
9
  module ActiveInsights
10
- mattr_accessor :connects_to, :ignored_endpoints
10
+ mattr_accessor :connects_to, :ignored_endpoints, :enabled
11
11
 
12
- def self.ignored_endpoint?(payload)
13
- ignored_endpoints.to_a.include?(
14
- "#{payload[:controller]}##{payload[:action]}"
15
- )
12
+ class << self
13
+ def ignored_endpoint?(payload)
14
+ ignored_endpoints.to_a.include?(
15
+ "#{payload[:controller]}##{payload[:action]}"
16
+ )
17
+ end
18
+
19
+ def enabled?
20
+ if enabled.nil?
21
+ !Rails.env.development?
22
+ else
23
+ enabled.present?
24
+ end
25
+ end
16
26
  end
17
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeinsights
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Pezza
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-23 00:00:00.000000000 Z
11
+ date: 2024-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chartkick
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  requirements: []
114
- rubygems_version: 3.5.3
114
+ rubygems_version: 3.5.5
115
115
  signing_key:
116
116
  specification_version: 4
117
117
  summary: Rails performance tracking