// Copyright (c) 2012 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. // // Histogram-collected metrics. syntax = "proto2"; option optimize_for = LITE_RUNTIME; package metrics; // Next tag: 4 message HistogramEventProto { // The name of the histogram, hashed. optional fixed64 name_hash = 1; // The sum of all the sample values. // Together with the total count of the sample values, this allows us to // compute the average value. The count of all sample values is just the sum // of the counts of all the buckets. optional int64 sum = 2; // The per-bucket data. message Bucket { // Each bucket's range is bounded by min <= x < max. // We expect min and max (as well all other fields in this file) to always // be set. They're marked as optional because that is considered to be good // practice in protocol buffer design, for the sake of // forward-compatibility. optional int64 min = 1; optional int64 max = 2; // The bucket's index in the list of buckets, sorted in ascending order. // Historically, we've had trouble with corruption of the min or the max, // most commonly in the client. The bucket index gives us some redundancy, // which allows the processing code to "vote" on what the correct range // should be for each bucket. This in turn allows us to better identify and // discard corrupted reports. optional int32 bucket_index = 3; // The number of entries in this bucket. optional int64 count = 4; } repeated Bucket bucket = 3; }