File tree Expand file tree Collapse file tree 5 files changed +22
-18
lines changed
extensions/postgres_cdc_rls
monitoring/prom_ex/plugins Expand file tree Collapse file tree 5 files changed +22
-18
lines changed Original file line number Diff line number Diff line change @@ -31,7 +31,8 @@ defmodule Extensions.PostgresCdcRls.ReplicationPoller do
3131 tenant_id = args [ "id" ]
3232 Logger . metadata ( external_id: tenant_id , project: tenant_id )
3333
34- rate_counter_args = Tenants . db_events_per_second_rate ( tenant_id , 4000 )
34+ % Realtime.Api.Tenant { } = tenant = Tenants.Cache . get_tenant_by_external_id ( tenant_id )
35+ rate_counter_args = Tenants . db_events_per_second_rate ( tenant )
3536
3637 RateCounter . new ( rate_counter_args )
3738
Original file line number Diff line number Diff line change @@ -233,20 +233,9 @@ defmodule Realtime.Tenants do
233233 end
234234
235235 @ doc "RateCounter arguments for counting database events per second."
236- @ spec db_events_per_second_rate ( Tenant . t ( ) | String . t ( ) ) :: RateCounter.Args . t ( )
237- def db_events_per_second_rate ( % Tenant { } = tenant ) , do: db_events_per_second_rate ( tenant . external_id )
238-
239- def db_events_per_second_rate ( tenant_id ) when is_binary ( tenant_id ) do
240- opts = [
241- telemetry: % {
242- event_name: [ :channel , :db_events ] ,
243- measurements: % { } ,
244- metadata: % { tenant: tenant_id }
245- }
246- ]
247-
248- % RateCounter.Args { id: db_events_per_second_key ( tenant_id ) , opts: opts }
249- end
236+ @ spec db_events_per_second_rate ( Tenant . t ( ) ) :: RateCounter.Args . t ( )
237+ def db_events_per_second_rate ( % Tenant { } = tenant ) ,
238+ do: db_events_per_second_rate ( tenant . external_id , tenant . max_events_per_second )
250239
251240 @ doc "RateCounter arguments for counting database events per second with a limit."
252241 @ spec db_events_per_second_rate ( String . t ( ) , non_neg_integer ) :: RateCounter.Args . t ( )
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ defmodule Realtime.MixProject do
44 def project do
55 [
66 app: :realtime ,
7- version: "2.61.0 " ,
7+ version: "2.61.1 " ,
88 elixir: "~> 1.18" ,
99 elixirc_paths: elixirc_paths ( Mix . env ( ) ) ,
1010 start_permanent: Mix . env ( ) == :prod ,
Original file line number Diff line number Diff line change @@ -37,6 +37,10 @@ defmodule Realtime.Extensions.PostgresCdcRls.ReplicationPollerTest do
3737
3838 tenant = Containers . checkout_tenant ( run_migrations: true )
3939
40+ { :ok , tenant } =
41+ Realtime.Api . get_tenant_by_external_id ( tenant . external_id )
42+ |> Realtime.Api . update_tenant ( % { "max_events_per_second" => 123 } )
43+
4044 subscribers_pids_table = :ets . new ( __MODULE__ , [ :public , :bag ] )
4145 subscribers_nodes_table = :ets . new ( __MODULE__ , [ :public , :set ] )
4246
@@ -71,7 +75,17 @@ defmodule Realtime.Extensions.PostgresCdcRls.ReplicationPollerTest do
7175 Process . sleep ( 1100 )
7276
7377 rate = Realtime.Tenants . db_events_per_second_rate ( tenant )
74- assert { :ok , % RateCounter { sum: sum } } = RateCounter . get ( rate )
78+
79+ assert { :ok ,
80+ % RateCounter {
81+ sum: sum ,
82+ limit: % {
83+ value: 123 ,
84+ measurement: :avg ,
85+ triggered: false
86+ }
87+ } } = RateCounter . get ( rate )
88+
7589 assert sum == 0
7690 end
7791
Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ defmodule Realtime.PromEx.Plugins.TenantTest do
2525
2626 def fake_db_event ( external_id ) do
2727 external_id
28- |> Realtime.Tenants . db_events_per_second_rate ( )
28+ |> Realtime.Tenants . db_events_per_second_rate ( 100 )
2929 |> Realtime.RateCounter . new ( )
3030
3131 external_id
You can’t perform that action at this time.
0 commit comments