@@ -27,19 +27,80 @@ message StreamExperimentsRequest {
27
27
string user_id = 2 ;
28
28
// Limits the number of experiment IDs returned. This is useful to check if
29
29
// user might have any data by setting limit=1. Also useful to preview the
30
- // list of experiments.
30
+ // list of experiments. TODO(@karthikv2k): Support pagination.
31
31
int64 limit = 3 ;
32
- // TODO(@karthikv2k): Support pagination.
32
+ // Field mask for what experiment data to return via the `experiments` field
33
+ // on the response. If not specified, this should be interpreted the same as
34
+ // an empty message: i.e., only the experiment ID should be returned.
35
+ ExperimentMask experiments_mask = 4 ;
33
36
}
34
37
35
- // Streams experiment IDs returned from TensorBoard.dev.
38
+ // Streams experiment metadata (ID, creation time, etc.) from TensorBoard.dev.
36
39
message StreamExperimentsResponse {
37
- // List of experiment IDs for the experiments owned by the user. The entire
38
- // list of experiments owned by the user is streamed in batches and each batch
39
- // contains a list of experiment IDs. A consumer of this stream needs to
40
- // concatenate all these lists to get the full response. The order of
41
- // experiment IDs in the stream is not defined.
40
+ // Deprecated in favor of `experiments`. If a response has `experiments` set,
41
+ // clients should ignore `experiment_ids` entirely. Otherwise, clients should
42
+ // treat `experiment_ids` as a list of `experiments` for which only the
43
+ // `experiment_id` field is set, with the understanding that the other fields
44
+ // were not populated regardless of the requested field mask.
45
+ //
46
+ // For example, the following responses should be treated the same:
47
+ //
48
+ // # Response 1
49
+ // experiment_ids: "123"
50
+ // experiment_ids: "456"
51
+ //
52
+ // # Response 2
53
+ // experiments { experiment_id: "123" }
54
+ // experiments { experiment_id: "456" }
55
+ //
56
+ // # Response 3
57
+ // experiment_ids: "789"
58
+ // experiments { experiment_id: "123" }
59
+ // experiments { experiment_id: "456" }
60
+ //
61
+ // See documentation on `experiments` for batching semantics.
42
62
repeated string experiment_ids = 1 ;
63
+ // List of experiments owned by the user. The entire list of experiments
64
+ // owned by the user is streamed in batches and each batch contains a list of
65
+ // experiments. A consumer of this stream needs to concatenate all these
66
+ // lists to get the full response. The order of experiments in the stream is
67
+ // not defined. Every response will contain at least one experiment.
68
+ //
69
+ // These messages may be partially populated, in accordance with the field
70
+ // mask given in the request.
71
+ repeated Experiment experiments = 2 ;
72
+ }
73
+
74
+ // Metadata about an experiment.
75
+ message Experiment {
76
+ // Permanent ID of this experiment; e.g.: "AdYd1TgeTlaLWXx6I8JUbA".
77
+ string experiment_id = 1 ;
78
+ // The time that the experiment was created.
79
+ google.protobuf.Timestamp create_time = 2 ;
80
+ // The time that the experiment was last modified: i.e., the most recent time
81
+ // that scalars were added to the experiment.
82
+ google.protobuf.Timestamp update_time = 3 ;
83
+ // The number of scalars in this experiment, across all time series.
84
+ int64 num_scalars = 4 ;
85
+ // The number of distinct run names in this experiment.
86
+ int64 num_runs = 5 ;
87
+ // The number of distinct tag names in this experiment. A tag name that
88
+ // appears in multiple runs will be counted only once.
89
+ int64 num_tags = 6 ;
90
+ }
91
+
92
+ // Field mask for `Experiment`. The `experiment_id` field is always implicitly
93
+ // considered to be requested. Other fields of `Experiment` will be populated
94
+ // if their corresponding bits in the `ExperimentMask` are set. The server may
95
+ // choose to populate fields that are not explicitly requested.
96
+ message ExperimentMask {
97
+ reserved 1 ;
98
+ reserved "experiment_id" ;
99
+ bool create_time = 2 ;
100
+ bool update_time = 3 ;
101
+ bool num_scalars = 4 ;
102
+ bool num_runs = 5 ;
103
+ bool num_tags = 6 ;
43
104
}
44
105
45
106
// Request to stream scalars from all the runs and tags in an experiment.
0 commit comments