summaryrefslogtreecommitdiffstats
path: root/chrome/common/metrics/proto/histogram_event.proto
blob: 5da6fbd9bdc87929fbf79048edc6ce8383425e12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// 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;
}