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

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

Merge "Merge multiple eventMetricData entries into a single StatsLogReport when writing to dropbox"

parents 6b8cbb99 fbeb4cb3
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -31,19 +31,18 @@ namespace statsd {
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();
    // }
void DropboxWriter::flushIfNecessary(const EventMetricData& eventMetricData) {
    if (eventMetricData.ByteSize() + mBufferSize > kMaxSerializedBytes) {
        flush();
    }
}

void DropboxWriter::flush() {
    // now we get an exact byte size of the output
+2 −2
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ public:
     */
    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 @@ private:

    /* 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
+2 −6
Original line number Diff line number Diff line
@@ -54,12 +54,8 @@ void StatsLogProcessor::OnLogEvent(const log_msg& msg) {
    // 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);
    }
}