Merge multiple eventMetricData entries into a single StatsLogReport
when writing to dropbox
Test: manual test.
Change-Id: I8ce323002ae1cad62703ece92bd99a5058b16fba
diff --git a/cmds/statsd/src/DropboxWriter.cpp b/cmds/statsd/src/DropboxWriter.cpp
index 37df834..b72e530 100644
--- a/cmds/statsd/src/DropboxWriter.cpp
+++ b/cmds/statsd/src/DropboxWriter.cpp
@@ -31,18 +31,17 @@
DropboxWriter::DropboxWriter(const string& tag) : mTag(tag), mLogReport(), mBufferSize(0) {
}
-void DropboxWriter::addStatsLogReport(const StatsLogReport& log) {
- mLogReport = log;
- flushIfNecessary(log);
- mBufferSize += log.ByteSize();
+void DropboxWriter::addEventMetricData(const EventMetricData& eventMetricData) {
+ flushIfNecessary(eventMetricData);
+ EventMetricData* newEntry = mLogReport.mutable_event_metrics()->add_data();
+ newEntry->CopyFrom(eventMetricData);
+ mBufferSize += eventMetricData.ByteSize();
}
-void DropboxWriter::flushIfNecessary(const StatsLogReport& log) {
- // TODO: Decide to flush depending on the serialized size of the StatsLogReport.
- // if (entry.ByteSize() + mBufferSize > kMaxSerializedBytes) {
- // flush();
- // }
- flush();
+void DropboxWriter::flushIfNecessary(const EventMetricData& eventMetricData) {
+ if (eventMetricData.ByteSize() + mBufferSize > kMaxSerializedBytes) {
+ flush();
+ }
}
void DropboxWriter::flush() {
diff --git a/cmds/statsd/src/DropboxWriter.h b/cmds/statsd/src/DropboxWriter.h
index 1fd0d75..6107685 100644
--- a/cmds/statsd/src/DropboxWriter.h
+++ b/cmds/statsd/src/DropboxWriter.h
@@ -32,7 +32,7 @@
*/
DropboxWriter(const string& tag);
- void addStatsLogReport(const StatsLogReport& log);
+ void addEventMetricData(const EventMetricData& eventMetricData);
/* Request a flush to dropbox. */
void flush();
@@ -61,7 +61,7 @@
/* Check if the buffer size exceeds the max buffer size when the new entry is added, and flush
the logs to dropbox if true. */
- void flushIfNecessary(const StatsLogReport& log);
+ void flushIfNecessary(const EventMetricData& eventMetricData);
};
} // namespace statsd
diff --git a/cmds/statsd/src/StatsLogProcessor.cpp b/cmds/statsd/src/StatsLogProcessor.cpp
index 0c77ee5..280f9af 100644
--- a/cmds/statsd/src/StatsLogProcessor.cpp
+++ b/cmds/statsd/src/StatsLogProcessor.cpp
@@ -54,12 +54,8 @@
// dump all statsd logs to dropbox for now.
// TODO: Add filtering, aggregation, etc.
if (err == NO_ERROR) {
- StatsLogReport logReport;
- logReport.set_start_report_millis(entry.tv_sec * 1000 + entry.tv_nsec / 1000 / 1000);
- EventMetricData* eventMetricData = logReport.mutable_event_metrics()->add_data();
- *eventMetricData = parse(msg);
-
- m_dropbox_writer.addStatsLogReport(logReport);
+ EventMetricData eventMetricData = parse(msg);
+ m_dropbox_writer.addEventMetricData(eventMetricData);
}
}