Skip to content

Commit bc42d60

Browse files
committed
Update frequency of gauge logging
1 parent 1958ced commit bc42d60

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

firebase-perf/src/main/java/com/google/firebase/perf/session/gauges/GaugeCounter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import java.util.concurrent.atomic.AtomicInteger
2323
* [MAX_METRIC_COUNT], it attempts to log the metrics to Firelog.
2424
*/
2525
object GaugeCounter {
26-
private const val MAX_METRIC_COUNT = 25
26+
private const val MAX_METRIC_COUNT = 50
2727
private val counter = AtomicInteger(0)
2828
private val logger = AndroidLogger.getInstance()
2929

firebase-perf/src/test/java/com/google/firebase/perf/session/gauges/GaugeManagerTest.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ public final class GaugeManagerTest extends FirebasePerformanceTestBase {
6666
private static final long DEFAULT_MEMORY_GAUGE_COLLECTION_FREQUENCY_BG_MS = 120;
6767
private static final long DEFAULT_MEMORY_GAUGE_COLLECTION_FREQUENCY_FG_MS = 60;
6868

69+
// See [com.google.firebase.perf.session.gauges.GaugeCounter].
70+
private static long MAX_GAUGE_COUNTER_BEFORE_LOGGING = 50;
71+
6972
private GaugeManager testGaugeManager = null;
7073
private FakeScheduledExecutorService fakeScheduledExecutorService = null;
7174
private TransportManager mockTransportManager = null;
@@ -340,8 +343,7 @@ public void testGaugeCounterStartsAJobToConsumeTheGeneratedMetrics() {
340343
// There's no job to log the gauges.
341344
assertThat(fakeScheduledExecutorService.isEmpty()).isTrue();
342345

343-
// Generate metrics that don't exceed the GaugeCounter.MAX_COUNT.
344-
generateMetricsAndIncrementCounter(20);
346+
generateMetricsAndIncrementCounter(MAX_GAUGE_COUNTER_BEFORE_LOGGING - 10);
345347

346348
// There's still no job to log the gauges.
347349
assertThat(fakeScheduledExecutorService.isEmpty()).isTrue();
@@ -366,7 +368,7 @@ public void testGaugeCounterStartsAJobToConsumeTheGeneratedMetrics() {
366368
int recordedGaugeMetricsCount =
367369
recordedGaugeMetric.getAndroidMemoryReadingsCount()
368370
+ recordedGaugeMetric.getCpuMetricReadingsCount();
369-
assertThat(recordedGaugeMetricsCount).isEqualTo(30);
371+
assertThat(recordedGaugeMetricsCount).isEqualTo(MAX_GAUGE_COUNTER_BEFORE_LOGGING);
370372

371373
assertThat(recordedGaugeMetric.getSessionId()).isEqualTo(testSessionId(1));
372374
}
@@ -410,7 +412,7 @@ public void testUpdateAppStateHandlesMultipleAppStates() {
410412
GaugeCounter.setGaugeManager(testGaugeManager);
411413

412414
// Generate metrics that don't exceed the GaugeCounter.MAX_COUNT.
413-
generateMetricsAndIncrementCounter(10);
415+
generateMetricsAndIncrementCounter(MAX_GAUGE_COUNTER_BEFORE_LOGGING - 10);
414416

415417
// There's no job to log the gauges.
416418
assertThat(fakeScheduledExecutorService.isEmpty()).isTrue();
@@ -425,7 +427,7 @@ public void testUpdateAppStateHandlesMultipleAppStates() {
425427
shadowOf(Looper.getMainLooper()).idle();
426428

427429
// Generate additional metrics in the new app state.
428-
generateMetricsAndIncrementCounter(26);
430+
generateMetricsAndIncrementCounter(MAX_GAUGE_COUNTER_BEFORE_LOGGING + 1);
429431

430432
GaugeMetric recordedGaugeMetric =
431433
getLastRecordedGaugeMetric(ApplicationProcessState.FOREGROUND);
@@ -434,7 +436,7 @@ public void testUpdateAppStateHandlesMultipleAppStates() {
434436
int recordedGaugeMetricsCount =
435437
recordedGaugeMetric.getAndroidMemoryReadingsCount()
436438
+ recordedGaugeMetric.getCpuMetricReadingsCount();
437-
assertThat(recordedGaugeMetricsCount).isEqualTo(10);
439+
assertThat(recordedGaugeMetricsCount).isEqualTo(MAX_GAUGE_COUNTER_BEFORE_LOGGING - 10);
438440

439441
assertThat(recordedGaugeMetric.getSessionId()).isEqualTo(testSessionId(1));
440442

@@ -448,7 +450,7 @@ public void testUpdateAppStateHandlesMultipleAppStates() {
448450
recordedGaugeMetricsCount =
449451
recordedGaugeMetric.getAndroidMemoryReadingsCount()
450452
+ recordedGaugeMetric.getCpuMetricReadingsCount();
451-
assertThat(recordedGaugeMetricsCount).isEqualTo(26);
453+
assertThat(recordedGaugeMetricsCount).isEqualTo(MAX_GAUGE_COUNTER_BEFORE_LOGGING + 1);
452454

453455
assertThat(recordedGaugeMetric.getSessionId()).isEqualTo(testSessionId(1));
454456
}
@@ -462,7 +464,7 @@ public void testGaugeManagerHandlesMultipleSessionIds() {
462464
GaugeCounter.setGaugeManager(testGaugeManager);
463465

464466
// Generate metrics that don't exceed the GaugeCounter.MAX_COUNT.
465-
generateMetricsAndIncrementCounter(10);
467+
generateMetricsAndIncrementCounter(MAX_GAUGE_COUNTER_BEFORE_LOGGING - 10);
466468

467469
PerfSession updatedPerfSession = createTestSession(2);
468470
updatedPerfSession.setGaugeAndEventCollectionEnabled(true);
@@ -479,7 +481,7 @@ public void testGaugeManagerHandlesMultipleSessionIds() {
479481
shadowOf(Looper.getMainLooper()).idle();
480482

481483
// Generate metrics for the new session.
482-
generateMetricsAndIncrementCounter(26);
484+
generateMetricsAndIncrementCounter(MAX_GAUGE_COUNTER_BEFORE_LOGGING + 1);
483485

484486
GaugeMetric recordedGaugeMetric =
485487
getLastRecordedGaugeMetric(ApplicationProcessState.BACKGROUND);
@@ -488,7 +490,7 @@ public void testGaugeManagerHandlesMultipleSessionIds() {
488490
int recordedGaugeMetricsCount =
489491
recordedGaugeMetric.getAndroidMemoryReadingsCount()
490492
+ recordedGaugeMetric.getCpuMetricReadingsCount();
491-
assertThat(recordedGaugeMetricsCount).isEqualTo(10);
493+
assertThat(recordedGaugeMetricsCount).isEqualTo(MAX_GAUGE_COUNTER_BEFORE_LOGGING - 10);
492494

493495
assertThat(recordedGaugeMetric.getSessionId()).isEqualTo(testSessionId(1));
494496

@@ -502,7 +504,7 @@ public void testGaugeManagerHandlesMultipleSessionIds() {
502504
recordedGaugeMetricsCount =
503505
recordedGaugeMetric.getAndroidMemoryReadingsCount()
504506
+ recordedGaugeMetric.getCpuMetricReadingsCount();
505-
assertThat(recordedGaugeMetricsCount).isEqualTo(26);
507+
assertThat(recordedGaugeMetricsCount).isEqualTo(MAX_GAUGE_COUNTER_BEFORE_LOGGING + 1);
506508

507509
assertThat(recordedGaugeMetric.getSessionId()).isEqualTo(testSessionId(2));
508510
}
@@ -638,7 +640,7 @@ private long getMinimumBackgroundCollectionFrequency() {
638640
}
639641

640642
// Simulates the behavior of Cpu and Memory Gauge collector.
641-
private void generateMetricsAndIncrementCounter(int count) {
643+
private void generateMetricsAndIncrementCounter(long count) {
642644
// TODO(b/394127311): Explore actually collecting metrics using the fake Cpu and Memory
643645
// metric collectors.
644646
Random random = new Random();

0 commit comments

Comments
 (0)