Skip to content

Commit 360e8f7

Browse files
committed
Add logs
1 parent a9c504c commit 360e8f7

File tree

5 files changed

+23
-6
lines changed

5 files changed

+23
-6
lines changed

pir/pir-impl/src/main/java/com/duckduckgo/pir/impl/common/PirJobConstants.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ object PirJobConstants {
2222
const val MAX_DETACHED_WEBVIEW_COUNT = 20
2323
const val SCHEDULED_SCAN_INTERVAL_HOURS = 12L
2424
const val EMAIL_CONFIRMATION_INTERVAL_HOURS = 8L
25+
const val CUSTOM_PIXEL_INTERVAL_HOURS = 5L
2526
}

pir/pir-impl/src/main/java/com/duckduckgo/pir/impl/pixels/OptOut24HourSubmissionSuccessRateReporter.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.duckduckgo.common.utils.CurrentTimeProvider
2020
import com.duckduckgo.di.scopes.AppScope
2121
import com.duckduckgo.pir.impl.store.PirRepository
2222
import com.squareup.anvil.annotations.ContributesBinding
23+
import logcat.logcat
2324
import java.util.concurrent.TimeUnit
2425
import javax.inject.Inject
2526
import kotlin.math.abs
@@ -36,10 +37,12 @@ class RealOptOut24HourSubmissionSuccessRateReporter @Inject constructor(
3637
private val pirPixelSender: PirPixelSender,
3738
) : OptOut24HourSubmissionSuccessRateReporter {
3839
override suspend fun attemptFirePixel() {
40+
logcat { "PIR-CUSTOM-STATS: Attempt to fire 24hour submission pixels" }
3941
val startDate = pirRepository.getCustomStatsPixelsLastSentMs()
4042
val now = currentTimeProvider.currentTimeMillis()
4143

4244
if (shouldFirePixel(startDate, now)) {
45+
logcat { "PIR-CUSTOM-STATS: Should fire pixel - 24hrs passed since last send" }
4346
val endDate = now - TimeUnit.HOURS.toMillis(24)
4447
val activeBrokers = pirRepository.getAllActiveBrokerObjects()
4548
val hasUserProfiles = pirRepository.getAllUserProfileQueries().isNotEmpty()
@@ -52,6 +55,7 @@ class RealOptOut24HourSubmissionSuccessRateReporter @Inject constructor(
5255
endDate,
5356
)
5457

58+
logcat { "PIR-CUSTOM-STATS: 24hr submission ${it.name} : $successRate" }
5559
if (successRate != null) {
5660
pirPixelSender.reportBrokerCustomStateOptOutSubmitRate(
5761
brokerUrl = it.url,
@@ -60,6 +64,7 @@ class RealOptOut24HourSubmissionSuccessRateReporter @Inject constructor(
6064
}
6165
}
6266

67+
logcat { "PIR-CUSTOM-STATS: Updating last send date to $endDate" }
6368
pirRepository.setCustomStatsPixelsLastSentMs(endDate)
6469
}
6570
}

pir/pir-impl/src/main/java/com/duckduckgo/pir/impl/pixels/OptOutConfirmationReporter.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import com.duckduckgo.pir.impl.store.PirRepository
2727
import com.duckduckgo.pir.impl.store.PirSchedulingRepository
2828
import com.squareup.anvil.annotations.ContributesBinding
2929
import kotlinx.coroutines.withContext
30+
import logcat.logcat
3031
import java.util.concurrent.TimeUnit
3132
import javax.inject.Inject
3233

@@ -43,6 +44,8 @@ class RealOptOutConfirmationReporter @Inject constructor(
4344
private val pixelSender: PirPixelSender,
4445
) : OptOutConfirmationReporter {
4546
override suspend fun attemptFirePixel() {
47+
logcat { "PIR-CUSTOM-STATS: Attempt to fire confirmation pixels" }
48+
4649
withContext(dispatcherProvider.io()) {
4750
val activeBrokers = pirRepository.getAllActiveBrokerObjects().associateBy { it.name }
4851
val allValidRequestedOptOutJobs = pirSchedulingRepository.getAllValidOptOutJobRecords().filter {
@@ -51,6 +54,7 @@ class RealOptOutConfirmationReporter @Inject constructor(
5154

5255
if (activeBrokers.isEmpty() || allValidRequestedOptOutJobs.isEmpty()) return@withContext
5356

57+
logcat { "PIR-CUSTOM-STATS: Will fire confirmation pixels for ${allValidRequestedOptOutJobs.size} jobs" }
5458
allValidRequestedOptOutJobs.also {
5559
// Fire 7 day pixel
5660
it.attemptFirePixelForConfirmationDay(
@@ -112,17 +116,20 @@ class RealOptOutConfirmationReporter @Inject constructor(
112116
markOptOutJobRecordReporting: suspend (OptOutJobRecord, Long) -> Unit,
113117
) {
114118
val now = currentTimeProvider.currentTimeMillis()
115-
val optOutsForSevenDayPixel = this.filter {
119+
val optOutsForPixel = this.filter {
116120
it.daysPassedSinceSubmission(now, confirmationDay) && jobRecordFilter(it)
117121
}
118122

119-
optOutsForSevenDayPixel.forEach { optOutJobRecord ->
120-
val brokerUrl = activeBrokers[optOutJobRecord.brokerName]?.url ?: return@forEach
123+
logcat { "PIR-CUSTOM-STATS: Firing 7day confirmation pixels for ${optOutsForPixel.size} jobs" }
124+
optOutsForPixel.forEach { optOutJobRecord ->
125+
val broker = activeBrokers[optOutJobRecord.brokerName] ?: return@forEach
121126

122127
if (optOutJobRecord.status == REMOVED) {
123-
emitConfirmPixel(brokerUrl)
128+
logcat { "PIR-CUSTOM-STATS: Firing $confirmationDay day confirmation pixels for ${broker.name}" }
129+
emitConfirmPixel(broker.url)
124130
} else {
125-
emitUnconfirmPixel(brokerUrl)
131+
logcat { "PIR-CUSTOM-STATS: Firing $confirmationDay day unconfirmation pixels for ${broker.name}" }
132+
emitUnconfirmPixel(broker.url)
126133
}
127134

128135
markOptOutJobRecordReporting(optOutJobRecord, now)

pir/pir-impl/src/main/java/com/duckduckgo/pir/impl/pixels/PirCustomStatsWorker.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import androidx.work.CoroutineWorker
2121
import androidx.work.WorkerParameters
2222
import com.duckduckgo.anvil.annotations.ContributesWorker
2323
import com.duckduckgo.di.scopes.AppScope
24+
import logcat.logcat
2425
import javax.inject.Inject
2526

2627
@ContributesWorker(AppScope::class)
@@ -35,6 +36,7 @@ class PirCustomStatsWorker(
3536
lateinit var optOutConfirmationReporter: OptOutConfirmationReporter
3637

3738
override suspend fun doWork(): Result {
39+
logcat { "PIR-CUSTOM-STATS: Attempt to fire custom pixels" }
3840
optOutSubmissionSuccessRateReporter.attemptFirePixel()
3941
optOutConfirmationReporter.attemptFirePixel()
4042

pir/pir-impl/src/main/java/com/duckduckgo/pir/impl/scan/PirScanScheduler.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import com.duckduckgo.app.di.AppCoroutineScope
3131
import com.duckduckgo.appbuildconfig.api.AppBuildConfig
3232
import com.duckduckgo.common.utils.CurrentTimeProvider
3333
import com.duckduckgo.di.scopes.AppScope
34+
import com.duckduckgo.pir.impl.common.PirJobConstants.CUSTOM_PIXEL_INTERVAL_HOURS
3435
import com.duckduckgo.pir.impl.common.PirJobConstants.EMAIL_CONFIRMATION_INTERVAL_HOURS
3536
import com.duckduckgo.pir.impl.common.PirJobConstants.SCHEDULED_SCAN_INTERVAL_HOURS
3637
import com.duckduckgo.pir.impl.email.PirEmailConfirmationRemoteWorker
@@ -134,8 +135,9 @@ class RealPirScanScheduler @Inject constructor(
134135
}
135136

136137
private fun scheduleRecurringPixelStats() {
137-
val periodicWorkRequest = PeriodicWorkRequestBuilder<PirCustomStatsWorker>(5, TimeUnit.HOURS)
138+
val periodicWorkRequest = PeriodicWorkRequestBuilder<PirCustomStatsWorker>(CUSTOM_PIXEL_INTERVAL_HOURS, TimeUnit.HOURS)
138139
.addTag(TAG_PIR_RECURRING_CUSTOM_STATS)
140+
.setInitialDelay(CUSTOM_PIXEL_INTERVAL_HOURS, TimeUnit.HOURS)
139141
.build()
140142

141143
workManager.enqueueUniquePeriodicWork(

0 commit comments

Comments
 (0)