// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package metrics;

// Stores output generated by the "perf stat" command.
//
// See https://perf.wiki.kernel.org/index.php/Tutorial#Counting_with_perf_stat
// for more details.

// Next tag: 3
message PerfStatProto {
  // All lines printed by "perf stat".
  repeated PerfStatLine line = 1;

  // The command line used to run "perf stat".
  optional string command_line = 2;

  // Represents one line of "perf stat" output.
  // Next tag: 4
  message PerfStatLine {
    // Time since the start of the "perf stat" command, in milliseconds.
    //
    // When running "perf stat" and printing the counters at the end, this is
    // the total time taken by the run.
    //
    // Alternatively, "perf stat" can print its stats at regular intervals until
    // the end of the run. For example, if "perf stat" runs for one second and
    // prints at 200-ms intervals, it will print counter values for each event
    // a total of five times. According to "perf stat" usage instructions, the
    // printing interval should be no less than 100 ms.
    optional uint64 time_ms = 1;

    // Current count value of the event being counted. May be different from the
    // nominal counter value reported by "perf stat", depending on the event.
    // For example, memory access counters are in units of 64 bytes. A counter
    // value of 1024 would represent 65536 bytes, and we would set this field to
    // 65536.
    optional uint64 count = 2;

    // Name of event whose counter is listed on this line.
    // This string should also appear as part of |PerfStatProto::command_line|.
    // "perf stat" will preserve the event name exactly as it is passed in via
    // the command line.
    optional string event_name = 3;
  }
}
