inner_performance 0.1.0 → 0.1.2

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: 5b0f7620adf9d09e4c9a58a007fdf054d5a89760ad099e8d699bc3deff12f00d
4
- data.tar.gz: 271e25fe6de8f021a05ac78ac295cbcf3b8c69ebde3b798151526143776eed86
3
+ metadata.gz: c6fb86a53413ef53d7256b526e4b75dd7d910473fc8d047b97976285ad82a91f
4
+ data.tar.gz: 60147dd06fb7069a809c402e3cd9aeebf18df7d4921d1df52f0733159390ec22
5
5
  SHA512:
6
- metadata.gz: 1cdcbbef0725de7a886b2c10ad2a392d0bfe77c9591bdebc4d26219bba832caf25694a7a79d4ef9476748db9e576e48214db5edf896e0688906e6f36bedb4e2d
7
- data.tar.gz: 3321bac2c9273787a3b3d0a3c6ed84e8a0a702be9cb180fada9bd5188eca7412ca5e2275702e20b043da06699a945ea8da82cc296be8145521bc4bb036b1b212
6
+ metadata.gz: 71ffe8d954c92f5736d9a57d161657dbca3cbbea5303fb42f31a5f007af962096f8a9709a190eb21bb10cfd78004ff628f7548317fc90505971d2f0893a3477b
7
+ data.tar.gz: cc4a9176b3d7c787f0bd9636c294ffc554471fd3466c1a10c92eb267dd67d273152df7e00fbdb21eee520157b7cdf11a40fa1738b9762eeed8d551fc2648e293
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # InnerPerformance
1
+ # ☯️ InnerPerformance [![Gem Version](https://badge.fury.io/rb/inner_performance.svg)](https://badge.fury.io/rb/inner_performance)
2
2
  Database-backed modest performance monitoring tool for your Rails app.
3
3
 
4
4
  <img width="1188" alt="image" src="https://github.com/user-attachments/assets/cb659c76-8139-4ee0-b683-d6acef227dc6">
@@ -62,7 +62,7 @@ InnerPerformance.configure do |config|
62
62
  # the job that saves the events because that leeds to infinite loop.
63
63
  # Better not remove this rule as it will lead to stack overflow.
64
64
  config.ignore_rules.push(
65
- proc { |event| event.is_a?(ActiveSupport::Notifications::Event) }
65
+ proc { |event| !event.is_a?(ActiveSupport::Notifications::Event) }
66
66
  )
67
67
  end
68
68
  ```
@@ -1,10 +1,7 @@
1
1
  module InnerPerformance
2
2
  class DashboardController < ApplicationController
3
3
  def index
4
- @q = InnerPerformance::Event.all.ransack(params[:q])
5
- @q.sorts = "created_at desc" if @q.sorts.empty?
6
- @recent_events = @q.result.limit(100)
7
-
4
+ @recent_events = InnerPerformance::Event.all.order(id: :desc).limit(25)
8
5
  @average_req_duration = InnerPerformance::Events::ProcessActionActionController.all.average(:duration)
9
6
  @average_job_duration = InnerPerformance::Events::PerformActiveJob.average(:duration) || 0
10
7
  @biggest_events = \
@@ -1,7 +1,6 @@
1
1
  module InnerPerformance
2
2
  class EventsController < ApplicationController
3
3
  include Pagy::Backend
4
- include Pagy::Frontend
5
4
 
6
5
  def index
7
6
  @q = InnerPerformance::Event.all.ransack(params[:q])
@@ -1,5 +1,7 @@
1
1
  module InnerPerformance
2
2
  module ApplicationHelper
3
+ include Pagy::Frontend
4
+
3
5
  # Based on https://stackoverflow.com/a/45428183/552936 and
4
6
  # https://datadome.co/learning-center/how-to-reduce-server-response-time/
5
7
  def row_class_from_duration(duration)
@@ -41,14 +41,12 @@
41
41
  <h4 class="mt-4">Recent events</h4>
42
42
  <table class="table table-hover">
43
43
  <thead>
44
- <th><%= sort_link @q, :name, hide_indicator: true %></th>
45
- <th><%= sort_link @q, :duration, hide_indicator: true %></th>
46
- <th><%= sort_link @q, :db_runtime, hide_indicator: true %></th>
47
- <th class="text-end"><%= sort_link @q, :created_at, hide_indicator: true %></th>
44
+ <th>Name</th>
45
+ <th>Duration</th>
46
+ <th>DB</th>
47
+ <th class="text-end">When</th>
48
48
  </thead>
49
49
  <tbody>
50
- <% @recent_events.each do |event| %>
51
- <%= render event.becomes(InnerPerformance::Event) %>
52
- <% end %>
50
+ <%= render collection: @recent_events, partial: 'inner_performance/events/event', cached: true %>
53
51
  </tbody>
54
52
  </table>
@@ -21,9 +21,7 @@
21
21
  <th class="text-end"><%= sort_link @q, :created_at, hide_indicator: true %></th>
22
22
  </thead>
23
23
  <tbody>
24
- <% @events.each do |event| %>
25
- <%= render event.becomes(InnerPerformance::Event) %>
26
- <% end %>
24
+ <%= render collection: @events, partial: 'inner_performance/events/event', cached: true %>
27
25
  </tbody>
28
26
  </table>
29
27
 
@@ -1,4 +1,4 @@
1
- class AddTypeToInnerPerformanceEvents < ActiveRecord::Migration[8.0]
1
+ class AddTypeToInnerPerformanceEvents < ActiveRecord::Migration[7.1]
2
2
  def change
3
3
  add_column :inner_performance_events, :type, :string
4
4
  end
@@ -13,8 +13,8 @@ module InnerPerformance
13
13
  @events_retention = 1.week
14
14
  @medium_duration_range = [200, 999]
15
15
  @ignore_rules = [
16
- proc { |event| rand(100) <= InnerPerformance.configuration.sample_rates[event.name.to_s] },
17
- proc { |event| (event.payload[:job]&.class&.name || '').exclude?('InnerPerformance') }
16
+ proc { |event| rand(100) > InnerPerformance.configuration.sample_rates[event.name.to_s] },
17
+ proc { |event| (event.payload[:job]&.class&.name || '').include?('InnerPerformance') }
18
18
  ]
19
19
  end
20
20
  end
@@ -1,3 +1,3 @@
1
1
  module InnerPerformance
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -46,10 +46,12 @@ module InnerPerformance
46
46
  end
47
47
  end
48
48
 
49
+ # Iterate throug the ignored_rules array and return false on first rule
50
+ # that returns `true`
49
51
  def save_event?(event)
50
52
  InnerPerformance.configuration.ignore_rules.each_with_object([]) do |rule, arr|
51
53
  arr << rule.call(event)
52
- end.all? { |r| r == true }
54
+ end.find { |r| r == true }
53
55
  end
54
56
  end
55
57
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inner_performance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - mbajur