Files
doris/gensrc/thrift/RuntimeProfile.thrift
Xinyi Zou 8e4710079d [improvement](profile) Insert into add LoadChannel runtime profile (#18908)
TabletSink and LoadChannel in BE are M: N relationship,
Every once in a while LoadChannel will randomly return its own runtime profile to a TabletSink, so usually all LoadChannel runtime profiles are saved on each TabletSink, and the timeliness of the same LoadChannel profile saved on different TabletSinks is different, and each TabletSink will periodically send fe reports all the LoadChannel profiles saved by itself, and ensures to update the latest LoadChannel profile according to the timestamp.
2023-04-24 09:41:57 +08:00

61 lines
2.0 KiB
Thrift

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
namespace cpp doris
namespace java org.apache.doris.thrift
include "Metrics.thrift"
// Counter data
struct TCounter {
1: required string name
2: required Metrics.TUnit type
3: required i64 value
}
// A single runtime profile
struct TRuntimeProfileNode {
1: required string name
2: required i32 num_children
3: required list<TCounter> counters
// TODO: should we make metadata a serializable struct? We only use it to
// store the node id right now so this is sufficient.
4: required i64 metadata
// indicates whether the child will be printed with extra indentation;
// corresponds to indent param of RuntimeProfile::AddChild()
5: required bool indent
// map of key,value info strings that capture any kind of additional information
// about the profiled object
6: required map<string, string> info_strings
// Auxilliary structure to capture the info strings display order when printed
7: required list<string> info_strings_display_order
// map from parent counter name to child counter name
8: required map<string, set<string>> child_counters_map
9: required i64 timestamp
}
// A flattened tree of runtime profiles, obtained by an
// in-order traversal
struct TRuntimeProfileTree {
1: required list<TRuntimeProfileNode> nodes
}