1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 // 5 // Histogram-collected metrics. 6 7 syntax = "proto2"; 8 9 option optimize_for = LITE_RUNTIME; 10 11 package metrics; 12 13 // Next tag: 4 14 message HistogramEventProto { 15 // The name of the histogram, hashed. 16 optional fixed64 name_hash = 1; 17 18 // The sum of all the sample values. 19 // Together with the total count of the sample values, this allows us to 20 // compute the average value. The count of all sample values is just the sum 21 // of the counts of all the buckets. 22 optional int64 sum = 2; 23 24 // The per-bucket data. 25 message Bucket { 26 // Each bucket's range is bounded by min <= x < max. 27 // We expect min and max (as well all other fields in this file) to always 28 // be set. They're marked as optional because that is considered to be good 29 // practice in protocol buffer design, for the sake of 30 // forward-compatibility. 31 optional int64 min = 1; 32 optional int64 max = 2; 33 34 // The bucket's index in the list of buckets, sorted in ascending order. 35 // Historically, we've had trouble with corruption of the min or the max, 36 // most commonly in the client. The bucket index gives us some redundancy, 37 // which allows the processing code to "vote" on what the correct range 38 // should be for each bucket. This in turn allows us to better identify and 39 // discard corrupted reports. 40 optional int32 bucket_index = 3; 41 42 // The number of entries in this bucket. 43 optional int64 count = 4; 44 } 45 repeated Bucket bucket = 3; 46 } 47