From 4d427987fba6ebb3fcf72ec42fdfed889a7e3f9e Mon Sep 17 00:00:00 2001 From: Sanath Kumar Date: Wed, 13 Dec 2023 13:25:09 -0600 Subject: Track periodic and flex intervals in ScheduledJobStateChanged events Added logging of periodic and flex intervals for ScheduledJobStateChanged events. This data will help analyze app usage of periodic job APIs and identify potential optimization opportunities for performance and power. Bug: 296629905 Test: Ran "statsd_testdrive 8". New fields added to the ScheduledJobStateChanged are retrieved shown without any errors. Change-Id: Ib41ea3edfb9d22772206f16975ce3a2d287cbbfd --- .../service/java/com/android/server/job/JobSchedulerService.java | 8 ++++++-- .../service/java/com/android/server/job/JobServiceContext.java | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java index 83db4cbb7e43..900c90203f41 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -1828,7 +1828,9 @@ public class JobSchedulerService extends com.android.server.SystemService /* system_measured_source_download_bytes */0, /* system_measured_source_upload_bytes */ 0, /* system_measured_calling_download_bytes */0, - /* system_measured_calling_upload_bytes */ 0); + /* system_measured_calling_upload_bytes */ 0, + jobStatus.getJob().getIntervalMillis(), + jobStatus.getJob().getFlexMillis()); // If the job is immediately ready to run, then we can just immediately // put it in the pending list and try to schedule it. This is especially @@ -2269,7 +2271,9 @@ public class JobSchedulerService extends com.android.server.SystemService /* system_measured_source_download_bytes */ 0, /* system_measured_source_upload_bytes */ 0, /* system_measured_calling_download_bytes */0, - /* system_measured_calling_upload_bytes */ 0); + /* system_measured_calling_upload_bytes */ 0, + cancelled.getJob().getIntervalMillis(), + cancelled.getJob().getFlexMillis()); } // If this is a replacement, bring in the new version of the job if (incomingJob != null) { diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java index 6449edcd3103..3addf9f98db2 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java @@ -534,7 +534,9 @@ public final class JobServiceContext implements ServiceConnection { /* system_measured_source_download_bytes */ 0, /* system_measured_source_upload_bytes */ 0, /* system_measured_calling_download_bytes */ 0, - /* system_measured_calling_upload_bytes */ 0); + /* system_measured_calling_upload_bytes */ 0, + job.getJob().getIntervalMillis(), + job.getJob().getFlexMillis()); sEnqueuedJwiAtJobStart.logSampleWithUid(job.getUid(), job.getWorkCount()); final String sourcePackage = job.getSourcePackageName(); if (Trace.isTagEnabled(Trace.TRACE_TAG_SYSTEM_SERVER)) { @@ -1616,7 +1618,9 @@ public final class JobServiceContext implements ServiceConnection { TrafficStats.getUidRxBytes(completedJob.getUid()) - mInitialDownloadedBytesFromCalling, TrafficStats.getUidTxBytes(completedJob.getUid()) - - mInitialUploadedBytesFromCalling); + - mInitialUploadedBytesFromCalling, + completedJob.getJob().getIntervalMillis(), + completedJob.getJob().getFlexMillis()); if (Trace.isTagEnabled(Trace.TRACE_TAG_SYSTEM_SERVER)) { Trace.asyncTraceForTrackEnd(Trace.TRACE_TAG_SYSTEM_SERVER, "JobScheduler", getId()); -- cgit v1.2.3-59-g8ed1b