Loading cmds/statsd/src/StatsLogProcessor.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ #include <log/log_event_list.h> #include <utils/Errors.h> #include <utils/SystemClock.h> using namespace android; using android::base::StringPrintf; Loading Loading @@ -60,6 +61,8 @@ const int FIELD_ID_ID = 2; // for ConfigMetricsReport const int FIELD_ID_METRICS = 1; const int FIELD_ID_UID_MAP = 2; const int FIELD_ID_LAST_REPORT_NANOS = 3; const int FIELD_ID_CURRENT_REPORT_NANOS = 4; #define STATS_DATA_DIR "/data/misc/stats-data" Loading Loading @@ -264,6 +267,12 @@ void StatsLogProcessor::onDumpReportLocked(const ConfigKey& key, vector<uint8_t> uidMap.SerializeToArray(&uidMapBuffer[0], uidMapSize); proto.write(FIELD_TYPE_MESSAGE | FIELD_ID_UID_MAP, uidMapBuffer, uidMapSize); // Fill in the timestamps. proto.write(FIELD_TYPE_INT64 | FIELD_ID_LAST_REPORT_NANOS, (long long)it->second->getLastReportTimeNs()); proto.write(FIELD_TYPE_INT64 | FIELD_ID_CURRENT_REPORT_NANOS, (long long)::android::elapsedRealtimeNano()); // End of ConfigMetricsReport (reports). proto.end(reportsToken); Loading cmds/statsd/src/metrics/CountMetricProducer.cpp +0 −5 Original line number Diff line number Diff line Loading @@ -45,8 +45,6 @@ namespace statsd { // for StatsLogReport const int FIELD_ID_ID = 1; const int FIELD_ID_START_REPORT_NANOS = 2; const int FIELD_ID_END_REPORT_NANOS = 3; const int FIELD_ID_COUNT_METRICS = 5; // for CountMetricDataWrapper const int FIELD_ID_DATA = 1; Loading Loading @@ -97,7 +95,6 @@ void CountMetricProducer::onSlicedConditionMayChangeLocked(const uint64_t eventT void CountMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, StatsLogReport* report) { flushIfNeededLocked(dumpTimeNs); report->set_metric_id(mMetricId); report->set_start_report_nanos(mStartTimeNs); auto count_metrics = report->mutable_count_metrics(); for (const auto& counter : mPastBuckets) { Loading @@ -123,7 +120,6 @@ void CountMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, } protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_ID, (long long)mMetricId); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_START_REPORT_NANOS, (long long)mStartTimeNs); long long protoToken = protoOutput->start(FIELD_TYPE_MESSAGE | FIELD_ID_COUNT_METRICS); VLOG("metric %lld dump report now...",(long long)mMetricId); Loading Loading @@ -167,7 +163,6 @@ void CountMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, } protoOutput->end(protoToken); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_END_REPORT_NANOS, (long long)dumpTimeNs); mPastBuckets.clear(); Loading cmds/statsd/src/metrics/DurationMetricProducer.cpp +0 −5 Original line number Diff line number Diff line Loading @@ -44,8 +44,6 @@ namespace statsd { // for StatsLogReport const int FIELD_ID_ID = 1; const int FIELD_ID_START_REPORT_NANOS = 2; const int FIELD_ID_END_REPORT_NANOS = 3; const int FIELD_ID_DURATION_METRICS = 6; // for DurationMetricDataWrapper const int FIELD_ID_DATA = 1; Loading Loading @@ -179,7 +177,6 @@ void DurationMetricProducer::onConditionChangedLocked(const bool conditionMet, void DurationMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, StatsLogReport* report) { flushIfNeededLocked(dumpTimeNs); report->set_metric_id(mMetricId); report->set_start_report_nanos(mStartTimeNs); auto duration_metrics = report->mutable_duration_metrics(); for (const auto& pair : mPastBuckets) { Loading @@ -205,7 +202,6 @@ void DurationMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, } protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_ID, (long long)mMetricId); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_START_REPORT_NANOS, (long long)mStartTimeNs); long long protoToken = protoOutput->start(FIELD_TYPE_MESSAGE | FIELD_ID_DURATION_METRICS); VLOG("metric %lld dump report now...", (long long)mMetricId); Loading Loading @@ -250,7 +246,6 @@ void DurationMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, } protoOutput->end(protoToken); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_END_REPORT_NANOS, (long long)dumpTimeNs); mPastBuckets.clear(); } Loading cmds/statsd/src/metrics/EventMetricProducer.cpp +0 −4 Original line number Diff line number Diff line Loading @@ -42,8 +42,6 @@ namespace statsd { // for StatsLogReport const int FIELD_ID_ID = 1; const int FIELD_ID_START_REPORT_NANOS = 2; const int FIELD_ID_END_REPORT_NANOS = 3; const int FIELD_ID_EVENT_METRICS = 4; // for EventMetricDataWrapper const int FIELD_ID_DATA = 1; Loading Loading @@ -106,8 +104,6 @@ void EventMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, return; } protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_ID, (long long)mMetricId); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_START_REPORT_NANOS, (long long)mStartTimeNs); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_END_REPORT_NANOS, (long long)dumpTimeNs); size_t bufferSize = mProto->size(); VLOG("metric %lld dump report now... proto size: %zu ", Loading cmds/statsd/src/metrics/GaugeMetricProducer.cpp +0 −4 Original line number Diff line number Diff line Loading @@ -45,8 +45,6 @@ namespace statsd { // for StatsLogReport const int FIELD_ID_ID = 1; const int FIELD_ID_START_REPORT_NANOS = 2; const int FIELD_ID_END_REPORT_NANOS = 3; const int FIELD_ID_GAUGE_METRICS = 8; // for GaugeMetricDataWrapper const int FIELD_ID_DATA = 1; Loading Loading @@ -134,7 +132,6 @@ void GaugeMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, } protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_ID, (long long)mMetricId); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_START_REPORT_NANOS, (long long)mStartTimeNs); long long protoToken = protoOutput->start(FIELD_TYPE_MESSAGE | FIELD_ID_GAUGE_METRICS); for (const auto& pair : mPastBuckets) { Loading Loading @@ -188,7 +185,6 @@ void GaugeMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, protoOutput->end(wrapperToken); } protoOutput->end(protoToken); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_END_REPORT_NANOS, (long long)dumpTimeNs); mPastBuckets.clear(); // TODO: Clear mDimensionKeyMap once the report is dumped. Loading Loading
cmds/statsd/src/StatsLogProcessor.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ #include <log/log_event_list.h> #include <utils/Errors.h> #include <utils/SystemClock.h> using namespace android; using android::base::StringPrintf; Loading Loading @@ -60,6 +61,8 @@ const int FIELD_ID_ID = 2; // for ConfigMetricsReport const int FIELD_ID_METRICS = 1; const int FIELD_ID_UID_MAP = 2; const int FIELD_ID_LAST_REPORT_NANOS = 3; const int FIELD_ID_CURRENT_REPORT_NANOS = 4; #define STATS_DATA_DIR "/data/misc/stats-data" Loading Loading @@ -264,6 +267,12 @@ void StatsLogProcessor::onDumpReportLocked(const ConfigKey& key, vector<uint8_t> uidMap.SerializeToArray(&uidMapBuffer[0], uidMapSize); proto.write(FIELD_TYPE_MESSAGE | FIELD_ID_UID_MAP, uidMapBuffer, uidMapSize); // Fill in the timestamps. proto.write(FIELD_TYPE_INT64 | FIELD_ID_LAST_REPORT_NANOS, (long long)it->second->getLastReportTimeNs()); proto.write(FIELD_TYPE_INT64 | FIELD_ID_CURRENT_REPORT_NANOS, (long long)::android::elapsedRealtimeNano()); // End of ConfigMetricsReport (reports). proto.end(reportsToken); Loading
cmds/statsd/src/metrics/CountMetricProducer.cpp +0 −5 Original line number Diff line number Diff line Loading @@ -45,8 +45,6 @@ namespace statsd { // for StatsLogReport const int FIELD_ID_ID = 1; const int FIELD_ID_START_REPORT_NANOS = 2; const int FIELD_ID_END_REPORT_NANOS = 3; const int FIELD_ID_COUNT_METRICS = 5; // for CountMetricDataWrapper const int FIELD_ID_DATA = 1; Loading Loading @@ -97,7 +95,6 @@ void CountMetricProducer::onSlicedConditionMayChangeLocked(const uint64_t eventT void CountMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, StatsLogReport* report) { flushIfNeededLocked(dumpTimeNs); report->set_metric_id(mMetricId); report->set_start_report_nanos(mStartTimeNs); auto count_metrics = report->mutable_count_metrics(); for (const auto& counter : mPastBuckets) { Loading @@ -123,7 +120,6 @@ void CountMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, } protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_ID, (long long)mMetricId); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_START_REPORT_NANOS, (long long)mStartTimeNs); long long protoToken = protoOutput->start(FIELD_TYPE_MESSAGE | FIELD_ID_COUNT_METRICS); VLOG("metric %lld dump report now...",(long long)mMetricId); Loading Loading @@ -167,7 +163,6 @@ void CountMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, } protoOutput->end(protoToken); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_END_REPORT_NANOS, (long long)dumpTimeNs); mPastBuckets.clear(); Loading
cmds/statsd/src/metrics/DurationMetricProducer.cpp +0 −5 Original line number Diff line number Diff line Loading @@ -44,8 +44,6 @@ namespace statsd { // for StatsLogReport const int FIELD_ID_ID = 1; const int FIELD_ID_START_REPORT_NANOS = 2; const int FIELD_ID_END_REPORT_NANOS = 3; const int FIELD_ID_DURATION_METRICS = 6; // for DurationMetricDataWrapper const int FIELD_ID_DATA = 1; Loading Loading @@ -179,7 +177,6 @@ void DurationMetricProducer::onConditionChangedLocked(const bool conditionMet, void DurationMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, StatsLogReport* report) { flushIfNeededLocked(dumpTimeNs); report->set_metric_id(mMetricId); report->set_start_report_nanos(mStartTimeNs); auto duration_metrics = report->mutable_duration_metrics(); for (const auto& pair : mPastBuckets) { Loading @@ -205,7 +202,6 @@ void DurationMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, } protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_ID, (long long)mMetricId); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_START_REPORT_NANOS, (long long)mStartTimeNs); long long protoToken = protoOutput->start(FIELD_TYPE_MESSAGE | FIELD_ID_DURATION_METRICS); VLOG("metric %lld dump report now...", (long long)mMetricId); Loading Loading @@ -250,7 +246,6 @@ void DurationMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, } protoOutput->end(protoToken); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_END_REPORT_NANOS, (long long)dumpTimeNs); mPastBuckets.clear(); } Loading
cmds/statsd/src/metrics/EventMetricProducer.cpp +0 −4 Original line number Diff line number Diff line Loading @@ -42,8 +42,6 @@ namespace statsd { // for StatsLogReport const int FIELD_ID_ID = 1; const int FIELD_ID_START_REPORT_NANOS = 2; const int FIELD_ID_END_REPORT_NANOS = 3; const int FIELD_ID_EVENT_METRICS = 4; // for EventMetricDataWrapper const int FIELD_ID_DATA = 1; Loading Loading @@ -106,8 +104,6 @@ void EventMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, return; } protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_ID, (long long)mMetricId); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_START_REPORT_NANOS, (long long)mStartTimeNs); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_END_REPORT_NANOS, (long long)dumpTimeNs); size_t bufferSize = mProto->size(); VLOG("metric %lld dump report now... proto size: %zu ", Loading
cmds/statsd/src/metrics/GaugeMetricProducer.cpp +0 −4 Original line number Diff line number Diff line Loading @@ -45,8 +45,6 @@ namespace statsd { // for StatsLogReport const int FIELD_ID_ID = 1; const int FIELD_ID_START_REPORT_NANOS = 2; const int FIELD_ID_END_REPORT_NANOS = 3; const int FIELD_ID_GAUGE_METRICS = 8; // for GaugeMetricDataWrapper const int FIELD_ID_DATA = 1; Loading Loading @@ -134,7 +132,6 @@ void GaugeMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, } protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_ID, (long long)mMetricId); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_START_REPORT_NANOS, (long long)mStartTimeNs); long long protoToken = protoOutput->start(FIELD_TYPE_MESSAGE | FIELD_ID_GAUGE_METRICS); for (const auto& pair : mPastBuckets) { Loading Loading @@ -188,7 +185,6 @@ void GaugeMetricProducer::onDumpReportLocked(const uint64_t dumpTimeNs, protoOutput->end(wrapperToken); } protoOutput->end(protoToken); protoOutput->write(FIELD_TYPE_INT64 | FIELD_ID_END_REPORT_NANOS, (long long)dumpTimeNs); mPastBuckets.clear(); // TODO: Clear mDimensionKeyMap once the report is dumped. Loading