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

Commit 9dc4cf25 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add shard ID to statsd atom for procstats collection" into rvc-dev am:...

Merge "Add shard ID to statsd atom for procstats collection" into rvc-dev am: b0f26f32 am: ddd439cf

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11971040

Change-Id: I96eb669170f0b3177194a3a6ad64c34bc498732e
parents 283e7696 ddd439cf
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -6131,6 +6131,10 @@ message ProcessStatsAvailablePagesProto {
 */
message ProcStats {
    optional ProcessStatsSectionProto proc_stats_section = 1;
    // Data pulled from device into this is sometimes sharded across multiple atoms to work around
    // a size limit. When this happens, this shard ID will contain an increasing 1-indexed integer
    // with the number of this shard.
    optional int32 shard_id = 2;
}

/**
+9 −3
Original line number Diff line number Diff line
@@ -2575,11 +2575,17 @@ public class StatsPullAtomService extends SystemService {
                    lastHighWaterMark, section, true, statsFiles, procStats);
            procStats.dumpAggregatedProtoForStatsd(protoStreams, MAX_PROCSTATS_RAW_SHARD_SIZE);

            for (ProtoOutputStream proto : protoStreams) {
                if (proto.getBytes().length > 0) {
            for (int i = 0; i < protoStreams.length; i++) {
                byte[] bytes = protoStreams[i].getBytes(); // cache the value
                if (bytes.length > 0) {
                    StatsEvent e = StatsEvent.newBuilder()
                            .setAtomId(atomTag)
                            .writeByteArray(proto.getBytes())
                            .writeByteArray(bytes)
                            // This is a shard ID, and is specified in the metric definition to be
                            // a dimension. This will result in statsd using RANDOM_ONE_SAMPLE to
                            // keep all the shards, as it thinks each shard is a different dimension
                            // of data.
                            .writeInt(i)
                            .build();
                    pulledData.add(e);
                }