summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Howard Ro <yro@google.com> 2018-10-09 03:18:09 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-10-09 03:18:09 +0000
commitbb6736228130b269b8cadae478869b9da4abf3db (patch)
tree4ba4ea2893e566d1965978ce2f2b2dbeaaf53b77
parentbf90544829837f8e565ba335d0d842f1fdbd6c04 (diff)
parentef89d730c45b9972a9607471472fe1dc7249b7f4 (diff)
Merge "MetricsLogger writes to both event log and statsd"
-rw-r--r--core/java/android/metrics/LogMaker.java8
-rw-r--r--core/java/com/android/internal/logging/MetricsLogger.java49
-rw-r--r--core/java/com/android/internal/logging/testing/FakeMetricsLogger.java4
3 files changed, 28 insertions, 33 deletions
diff --git a/core/java/android/metrics/LogMaker.java b/core/java/android/metrics/LogMaker.java
index e84f91314386..19848ee6d415 100644
--- a/core/java/android/metrics/LogMaker.java
+++ b/core/java/android/metrics/LogMaker.java
@@ -436,4 +436,12 @@ public class LogMaker {
}
return true;
}
+
+ /**
+ * @return entries containing key value pairs.
+ * @hide
+ */
+ public SparseArray<Object> getEntries() {
+ return entries;
+ }
}
diff --git a/core/java/com/android/internal/logging/MetricsLogger.java b/core/java/com/android/internal/logging/MetricsLogger.java
index e99e39e1284c..c4aa1d7583a3 100644
--- a/core/java/com/android/internal/logging/MetricsLogger.java
+++ b/core/java/com/android/internal/logging/MetricsLogger.java
@@ -19,6 +19,7 @@ import android.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.metrics.LogMaker;
import android.os.Build;
+import android.util.StatsLog;
import android.view.View;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -41,8 +42,11 @@ public class MetricsLogger {
return sMetricsLogger;
}
- protected void saveLog(Object[] rep) {
- EventLogTags.writeSysuiMultiAction(rep);
+ protected void saveLog(LogMaker log) {
+ // TODO(b/116684537): Flag guard logging to event log and statsd socket.
+ EventLogTags.writeSysuiMultiAction(log.serialize());
+ StatsLog.write(StatsLog.KEY_VALUE_PAIRS_ATOM, /* UID is retrieved from statsd side */ 0,
+ log.getEntries());
}
public static final int VIEW_UNKNOWN = MetricsEvent.VIEW_UNKNOWN;
@@ -53,7 +57,7 @@ public class MetricsLogger {
if (content.getType() == MetricsEvent.TYPE_UNKNOWN) {
content.setType(MetricsEvent.TYPE_ACTION);
}
- saveLog(content.serialize());
+ saveLog(content);
}
public void visible(int category) throws IllegalArgumentException {
@@ -61,9 +65,7 @@ public class MetricsLogger {
throw new IllegalArgumentException("Must define metric category");
}
EventLogTags.writeSysuiViewVisibility(category, 100);
- saveLog(new LogMaker(category)
- .setType(MetricsEvent.TYPE_OPEN)
- .serialize());
+ saveLog(new LogMaker(category).setType(MetricsEvent.TYPE_OPEN));
}
public void hidden(int category) throws IllegalArgumentException {
@@ -71,9 +73,7 @@ public class MetricsLogger {
throw new IllegalArgumentException("Must define metric category");
}
EventLogTags.writeSysuiViewVisibility(category, 0);
- saveLog(new LogMaker(category)
- .setType(MetricsEvent.TYPE_CLOSE)
- .serialize());
+ saveLog(new LogMaker(category).setType(MetricsEvent.TYPE_CLOSE));
}
public void visibility(int category, boolean visibile)
@@ -92,25 +92,17 @@ public class MetricsLogger {
public void action(int category) {
EventLogTags.writeSysuiAction(category, "");
- saveLog(new LogMaker(category)
- .setType(MetricsEvent.TYPE_ACTION)
- .serialize());
+ saveLog(new LogMaker(category).setType(MetricsEvent.TYPE_ACTION));
}
public void action(int category, int value) {
EventLogTags.writeSysuiAction(category, Integer.toString(value));
- saveLog(new LogMaker(category)
- .setType(MetricsEvent.TYPE_ACTION)
- .setSubtype(value)
- .serialize());
+ saveLog(new LogMaker(category).setType(MetricsEvent.TYPE_ACTION).setSubtype(value));
}
public void action(int category, boolean value) {
EventLogTags.writeSysuiAction(category, Boolean.toString(value));
- saveLog(new LogMaker(category)
- .setType(MetricsEvent.TYPE_ACTION)
- .setSubtype(value ? 1 : 0)
- .serialize());
+ saveLog(new LogMaker(category).setType(MetricsEvent.TYPE_ACTION).setSubtype(value ? 1 : 0));
}
public void action(int category, String pkg) {
@@ -118,19 +110,15 @@ public class MetricsLogger {
throw new IllegalArgumentException("Must define metric category");
}
EventLogTags.writeSysuiAction(category, pkg);
- saveLog(new LogMaker(category)
- .setType(MetricsEvent.TYPE_ACTION)
- .setPackageName(pkg)
- .serialize());
+ saveLog(new LogMaker(category).setType(MetricsEvent.TYPE_ACTION).setPackageName(pkg));
}
/** Add an integer value to the monotonically increasing counter with the given name. */
public void count(String name, int value) {
EventLogTags.writeSysuiCount(name, value);
saveLog(new LogMaker(MetricsEvent.RESERVED_FOR_LOGBUILDER_COUNTER)
- .setCounterName(name)
- .setCounterValue(value)
- .serialize());
+ .setCounterName(name)
+ .setCounterValue(value));
}
/** Increment the bucket with the integer label on the histogram with the given name. */
@@ -138,10 +126,9 @@ public class MetricsLogger {
// see LogHistogram in system/core/libmetricslogger/metrics_logger.cpp
EventLogTags.writeSysuiHistogram(name, bucket);
saveLog(new LogMaker(MetricsEvent.RESERVED_FOR_LOGBUILDER_HISTOGRAM)
- .setCounterName(name)
- .setCounterBucket(bucket)
- .setCounterValue(1)
- .serialize());
+ .setCounterName(name)
+ .setCounterBucket(bucket)
+ .setCounterValue(1));
}
/** @deprecated use {@link #visible(int)} */
diff --git a/core/java/com/android/internal/logging/testing/FakeMetricsLogger.java b/core/java/com/android/internal/logging/testing/FakeMetricsLogger.java
index fbaf87a30b24..6786427b5d86 100644
--- a/core/java/com/android/internal/logging/testing/FakeMetricsLogger.java
+++ b/core/java/com/android/internal/logging/testing/FakeMetricsLogger.java
@@ -16,8 +16,8 @@ public class FakeMetricsLogger extends MetricsLogger {
private Queue<LogMaker> logs = new LinkedList<>();
@Override
- protected void saveLog(Object[] rep) {
- logs.offer(new LogMaker(rep));
+ protected void saveLog(LogMaker log) {
+ logs.offer(log);
}
public Queue<LogMaker> getLogs() {