Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 017fde0a authored by Kweku Adams's avatar Kweku Adams
Browse files

Log additional data to statsd.

Log additional fields so we can better understand app usage of jobs.
With these fields, we can identify how many jobs are periodic, the
distribution of timing delays apps set, the estimated byte values they
provide (and if they're reasonable based on the device capabilities),
and how many JobWorkItems are queued.

Bug: 138239687
Test: statsd_testdrive 8
Change-Id: I7631dea7abe56cc9dfb4a2db10d623419aea2b54
parent 08fdc875
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -1499,16 +1499,21 @@ public class JobSchedulerService extends com.android.server.SystemService
                    jobStatus.getNumPreviousAttempts(),
                    jobStatus.getJob().getMaxExecutionDelayMillis(),
                    /* isDeadlineConstraintSatisfied */ false,
                    /* isCharging */ false,
                    /* batteryNotLow */ false,
                    /* storageNotLow */false,
                    /* isChargingSatisfied */ false,
                    /* batteryNotLowSatisfied */ false,
                    /* storageNotLowSatisfied */false,
                    /* timingDelayConstraintSatisfied */ false,
                    /* isDeviceIdle */ false,
                    /* isDeviceIdleSatisfied */ false,
                    /* hasConnectivityConstraintSatisfied */ false,
                    /* hasContentTriggerConstraintSatisfied */ false,
                    0,
                    /* jobStartLatencyMs */ 0,
                    jobStatus.getJob().isUserInitiated(),
                    /* isRunningAsUserInitiatedJob */ false);
                    /* isRunningAsUserInitiatedJob */ false,
                    jobStatus.getJob().isPeriodic(),
                    jobStatus.getJob().getMinLatencyMillis(),
                    jobStatus.getEstimatedNetworkDownloadBytes(),
                    jobStatus.getEstimatedNetworkUploadBytes(),
                    jobStatus.getWorkCount());

            // 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
@@ -1929,9 +1934,14 @@ public class JobSchedulerService extends com.android.server.SystemService
                    cancelled.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_DEVICE_IDLE),
                    cancelled.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY),
                    cancelled.isConstraintSatisfied(JobStatus.CONSTRAINT_CONTENT_TRIGGER),
                    0,
                    /* jobStartLatencyMs */ 0,
                    cancelled.getJob().isUserInitiated(),
                    /* isRunningAsUserInitiatedJob */ false);
                    /* isRunningAsUserInitiatedJob */ false,
                    cancelled.getJob().isPeriodic(),
                    cancelled.getJob().getMinLatencyMillis(),
                    cancelled.getEstimatedNetworkDownloadBytes(),
                    cancelled.getEstimatedNetworkUploadBytes(),
                    cancelled.getWorkCount());
        }
        // If this is a replacement, bring in the new version of the job
        if (incomingJob != null) {
+13 −3
Original line number Diff line number Diff line
@@ -464,7 +464,12 @@ public final class JobServiceContext implements ServiceConnection {
                    job.isConstraintSatisfied(JobStatus.CONSTRAINT_CONTENT_TRIGGER),
                    mExecutionStartTimeElapsed - job.enqueueTime,
                    job.getJob().isUserInitiated(),
                    job.shouldTreatAsUserInitiatedJob());
                    job.shouldTreatAsUserInitiatedJob(),
                    job.getJob().isPeriodic(),
                    job.getJob().getMinLatencyMillis(),
                    job.getEstimatedNetworkDownloadBytes(),
                    job.getEstimatedNetworkUploadBytes(),
                    job.getWorkCount());
            final String sourcePackage = job.getSourcePackageName();
            if (Trace.isTagEnabled(Trace.TRACE_TAG_SYSTEM_SERVER)) {
                final String componentPackage = job.getServiceComponent().getPackageName();
@@ -1388,9 +1393,14 @@ public final class JobServiceContext implements ServiceConnection {
                completedJob.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_DEVICE_IDLE),
                completedJob.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY),
                completedJob.isConstraintSatisfied(JobStatus.CONSTRAINT_CONTENT_TRIGGER),
                0,
                mExecutionStartTimeElapsed - completedJob.enqueueTime,
                completedJob.getJob().isUserInitiated(),
                completedJob.startedAsUserInitiatedJob);
                completedJob.startedAsUserInitiatedJob,
                completedJob.getJob().isPeriodic(),
                completedJob.getJob().getMinLatencyMillis(),
                completedJob.getEstimatedNetworkDownloadBytes(),
                completedJob.getEstimatedNetworkUploadBytes(),
                completedJob.getWorkCount());
        if (Trace.isTagEnabled(Trace.TRACE_TAG_SYSTEM_SERVER)) {
            Trace.asyncTraceForTrackEnd(Trace.TRACE_TAG_SYSTEM_SERVER, "JobScheduler",
                    getId());