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

// This file was exported from google3, do not edit manually.
// See README.chromium for details.

edition = "2023";

option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.metrics";

option java_outer_classname = "HistogramEventProtos";

package metrics;

// Histogram-collected metrics.
// Next tag: 4
message HistogramEventProto {
  // The name of the histogram, hashed.
  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.  As of M51, when the value of this field
  // would be 0, the field will be omitted instead.
  int64 sum = 2;

  // The per-bucket data.
  // Next tag: 5
  message Bucket {
    // Each bucket's range is bounded by min <= x < max.
    // It is valid to omit one of these two fields in a bucket, but not both.
    // If the min field is omitted, its value is assumed to be equal to max - 1.
    // If the max field is omitted, its value is assumed to be equal to the next
    // bucket's min value (possibly computed per above).  The last bucket in a
    // histogram should always include the max field.
    int64 min = 1;

    int64 max = 2;

    // The number of entries in this bucket.  As of M51, when the value of this
    // field would be 1, the field will be omitted instead.
    int64 count = 4 [default = 1];
  }

  repeated Bucket bucket = 3;
}
