Skip to main content

UBP troubleshooting

Reminders:

- Keep in mind ubp works between powr and powr_counter repos

- It uses Redis in order to store apps views and subscription info

- It uses some workers for work(see below)

- Currently is legacy


Powr repo

How to find user's views?

Fallback::Redis.get("user_#{user_id}_visits").to_i

How to find user's subscription info?

Fallback::Redis.get("user_subscription_#{user_id}")

Getting threshold users

REDIS.smembers('user_threshold_reached')
REDIS.smembers('user_threshold_warning')

Getting user status of blocking apps

select * from views_counts where user_id=your_user_id

Workers and Tasks

Apps::UpdateUserSubscriptionCacheWorker - updates users subscription info in Redis when plan was upgraded or it's free.

UsageBasedThresholdWorker - verifies that limits by the plan were reached or not, also it blocks users apps.

UsageBasedResetViewsDelayedWorker - works only for shopify users. It will create delayed worker for resetting apps views base on subscription frequency.

lib/tasks/usage_based.rake (powr_counter repo) - calculates views and creates some Redis keys for ubp flow.

Some schema for Heroku: https://drive.google.com/file/d/1tkPWT7VTr4RuJS1C5WMWgX9nLHQw77r1/view?usp=sharing