| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto3"; |
| |
| package build.util.lib.proto; |
| |
| import "google/protobuf/timestamp.proto"; |
| |
| // Stored under the field "extended_properties" with key "test_script_metrics" |
| // in luci.resultdb.v1.Invocation message |
| // Usually clients do not need to use this protobuf directly, instead, the |
| // helpers in the build/util/lib/proto can help. |
| |
| // As a repeated message cannot fit directly into a google.protobuf.Struct, |
| // Use "TestScriptMetrics" message as a wrap. |
| message TestScriptMetrics { |
| repeated TestScriptMetric metrics = 1; |
| } |
| |
| message TestScriptMetric { |
| string name = 1; |
| |
| message DataPoint { |
| double value = 1; |
| google.protobuf.Timestamp timestamp = 2; |
| } |
| |
| message DataPoints { |
| repeated DataPoint points = 1; |
| } |
| |
| oneof OneOf { |
| // Usually it's preferred to aggregate the data before sending it out. Try |
| // various types of data aggregators in build/util/lib/proto. |
| double value = 2; |
| // A way to record all the data points in raw format. It's very expensive, |
| // and should be used with cautions. |
| DataPoints points = 3; |
| } |
| } |