Merge "Reduce logging frequency of powerstats data"

This commit is contained in:
TreeHugger Robot
2021-01-11 20:55:56 +00:00
committed by Android (Google) Code Review
5 changed files with 20 additions and 14 deletions

View File

@@ -43,7 +43,7 @@ public final class BatteryTrigger extends PowerStatsLogTrigger {
if (newBatteryLevel < mBatteryLevel) {
if (DEBUG) Slog.d(TAG, "Battery level dropped. Log rail data");
logPowerStatsData();
logPowerStatsData(PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE_BATTERY_DROP);
}
mBatteryLevel = newBatteryLevel;

View File

@@ -31,10 +31,8 @@ public abstract class PowerStatsLogTrigger {
protected Context mContext;
private PowerStatsLogger mPowerStatsLogger;
protected void logPowerStatsData() {
Message.obtain(
mPowerStatsLogger,
PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE).sendToTarget();
protected void logPowerStatsData(int msgType) {
Message.obtain(mPowerStatsLogger, msgType).sendToTarget();
}
public PowerStatsLogTrigger(Context context, PowerStatsLogger powerStatsLogger) {

View File

@@ -52,7 +52,8 @@ import java.io.IOException;
public final class PowerStatsLogger extends Handler {
private static final String TAG = PowerStatsLogger.class.getSimpleName();
private static final boolean DEBUG = false;
protected static final int MSG_LOG_TO_DATA_STORAGE = 0;
protected static final int MSG_LOG_TO_DATA_STORAGE_TIMER = 0;
protected static final int MSG_LOG_TO_DATA_STORAGE_BATTERY_DROP = 1;
private final PowerStatsDataStorage mPowerStatsMeterStorage;
private final PowerStatsDataStorage mPowerStatsModelStorage;
@@ -62,8 +63,8 @@ public final class PowerStatsLogger extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_LOG_TO_DATA_STORAGE:
if (DEBUG) Slog.d(TAG, "Logging to data storage");
case MSG_LOG_TO_DATA_STORAGE_TIMER:
if (DEBUG) Slog.d(TAG, "Logging to data storage on timer");
// Log power meter data.
EnergyMeasurement[] energyMeasurements =
@@ -78,6 +79,10 @@ public final class PowerStatsLogger extends Handler {
mPowerStatsModelStorage.write(
EnergyConsumerResultUtils.getProtoBytes(energyConsumerResults));
if (DEBUG) EnergyConsumerResultUtils.print(energyConsumerResults);
break;
case MSG_LOG_TO_DATA_STORAGE_BATTERY_DROP:
if (DEBUG) Slog.d(TAG, "Logging to data storage on battery drop");
// Log state residency data.
StateResidencyResult[] stateResidencyResults =

View File

@@ -29,7 +29,7 @@ public final class TimerTrigger extends PowerStatsLogTrigger {
private static final String TAG = TimerTrigger.class.getSimpleName();
private static final boolean DEBUG = false;
// TODO(b/166689029): Make configurable through global settings.
private static final long LOG_PERIOD_MS = 60 * 1000;
private static final long LOG_PERIOD_MS = 120 * 1000;
private final Handler mHandler;
@@ -40,7 +40,7 @@ public final class TimerTrigger extends PowerStatsLogTrigger {
// LOG_PERIOD_MS.
mHandler.postDelayed(mLogData, LOG_PERIOD_MS);
if (DEBUG) Slog.d(TAG, "Received delayed message. Log rail data");
logPowerStatsData();
logPowerStatsData(PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE_TIMER);
}
};

View File

@@ -78,6 +78,7 @@ public class PowerStatsServiceTest {
private PowerStatsService mService;
private File mDataStorageDir;
private TimerTrigger mTimerTrigger;
private BatteryTrigger mBatteryTrigger;
private PowerStatsLogger mPowerStatsLogger;
private final PowerStatsService.Injector mInjector = new PowerStatsService.Injector() {
@@ -125,7 +126,9 @@ public class PowerStatsServiceTest {
@Override
BatteryTrigger createBatteryTrigger(Context context, PowerStatsLogger powerStatsLogger) {
return new BatteryTrigger(context, powerStatsLogger, false /* trigger enabled */);
mBatteryTrigger = new BatteryTrigger(context, powerStatsLogger,
false /* trigger enabled */);
return mBatteryTrigger;
}
@Override
@@ -237,7 +240,7 @@ public class PowerStatsServiceTest {
mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED);
// Write data to on-device storage.
mTimerTrigger.logPowerStatsData();
mTimerTrigger.logPowerStatsData(PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE_TIMER);
// The above call puts a message on a handler. Wait for
// it to be processed.
@@ -278,7 +281,7 @@ public class PowerStatsServiceTest {
mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED);
// Write data to on-device storage.
mTimerTrigger.logPowerStatsData();
mTimerTrigger.logPowerStatsData(PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE_TIMER);
// The above call puts a message on a handler. Wait for
// it to be processed.
@@ -318,7 +321,7 @@ public class PowerStatsServiceTest {
mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED);
// Write data to on-device storage.
mTimerTrigger.logPowerStatsData();
mBatteryTrigger.logPowerStatsData(PowerStatsLogger.MSG_LOG_TO_DATA_STORAGE_BATTERY_DROP);
// The above call puts a message on a handler. Wait for
// it to be processed.