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

Commit 2ff754c1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Improvements to loadtest app."

parents 2c2ce763 14e076e6
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -160,13 +160,6 @@
            android:layout_width="1dp"
            android:layout_height="30dp"/>

        <Button
            android:id="@+id/display_output"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/display_output"
            android:textSize="30dp"/>

        <Space
            android:layout_width="1dp"
            android:layout_height="30dp"/>
+0 −1
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@
    <string name="app_name">Statsd Loadtest</string>
    <string name="bucket_label">bucket size (mins):&#160;</string>
    <string name="burst_label">burst:&#160;</string>
    <string name="display_output">Show metrics data</string>
    <string name="placebo">placebo</string>
    <string name="period_label">logging period (secs):&#160;</string>
    <string name="replication_label">metric replication:&#160;</string>
+50 −43
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package com.android.statsd.loadtest;

import android.annotation.Nullable;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
@@ -43,6 +44,10 @@ import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.android.os.StatsLog.ConfigMetricsReport;
import com.android.os.StatsLog.ConfigMetricsReportList;
import com.android.os.StatsLog.StatsdStatsReport;
import java.util.List;

/**
 * Runs a load test for statsd.
@@ -191,13 +196,6 @@ public class LoadtestActivity extends Activity {
            }
        });

        findViewById(R.id.display_output).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                fetchAndDisplayData();
            }
        });

        mAlarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        mStatsManager = (StatsManager) getSystemService("stats");
        mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
@@ -239,6 +237,48 @@ public class LoadtestActivity extends Activity {
        super.onDestroy();
    }

    @Nullable
    public StatsdStatsReport getMetadata() {
        if (!statsdRunning()) {
            return null;
        }
        if (mStatsManager != null) {
            byte[] data = mStatsManager.getMetadata();
            if (data != null) {
                StatsdStatsReport report = null;
                boolean good = false;
                try {
                    return StatsdStatsReport.parseFrom(data);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    Log.d(TAG, "Bad StatsdStatsReport");
                }
            }
        }
        return null;
    }

    @Nullable
    public List<ConfigMetricsReport> getData() {
        if (!statsdRunning()) {
            return null;
        }
        if (mStatsManager != null) {
            byte[] data = mStatsManager.getData(ConfigFactory.CONFIG_NAME);
            if (data != null) {
                ConfigMetricsReportList reports = null;
                try {
                    reports = ConfigMetricsReportList.parseFrom(data);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    Log.d(TAG, "Invalid data");
                }
                if (reports != null) {
                    return reports.getReportsList();
                }
            }
        }
        return null;
    }

    private void onPerfAlarm() {
        if (mPerfData != null) {
            mPerfData.onAlarm(this);
@@ -285,6 +325,9 @@ public class LoadtestActivity extends Activity {
        // Prepare to push a sequence of atoms to logd.
        mPusher = new SequencePusher(mBurst, mPlacebo);

        // Force a data flush by requesting data.
        getData();

        // Create a config and push it to statsd.
        if (!setConfig(mFactory.getConfig(mReplication, mBucketMins * 60 * 1000, mPlacebo))) {
            return;
@@ -355,42 +398,6 @@ public class LoadtestActivity extends Activity {
        mPlaceboCheckBox.setEnabled(!mStarted);
    }

    private void fetchAndDisplayData() {
        if (!statsdRunning()) {
            return;
        }
        if (mStatsManager != null) {
            byte[] data = mStatsManager.getData(ConfigFactory.CONFIG_NAME);
            if (data != null) {
                displayData(data);
            } else {
                mReportText.setText("Failed to pull data");
            }
        }
    }

    private void displayData(byte[] data) {
        com.android.os.StatsLog.ConfigMetricsReportList reports = null;
        boolean good = false;
        if (data != null) {
            try {
                reports = com.android.os.StatsLog.ConfigMetricsReportList.parseFrom(data);
                good = true;
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                // display it in the text view.
            }
        }
        int size = data == null ? 0 : data.length;
        StringBuilder sb = new StringBuilder();
        sb.append(good ? "Proto parsing OK!" : "Proto parsing Error!");
        sb.append(" size:").append(size).append("\n");

        if (good && reports != null) {
            DisplayProtoUtils.displayLogReport(sb, reports);
            mReportText.setText(sb.toString());
        }
    }

    private boolean statsdRunning() {
        if (IStatsManager.Stub.asInterface(ServiceManager.getService("stats")) == null) {
            Log.d(TAG, "Statsd not running");
+0 −1
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ public class MemoryDataRecorder extends PerfDataRecorder {

    @Override
    public void onAlarm(Context context) {
      Log.d(TAG, "GOT ALARM IN MEM");
        runDumpsysStats(context, DUMP_FILENAME, "meminfo");
        readDumpData(context, DUMP_FILENAME, new MemInfoParser(mStartTimeMillis), mSb);
    }
Loading