Files
QTradeProgram/include/Proto/GetDelayStatistics.proto

104 lines
3.7 KiB
Protocol Buffer
Raw Normal View History

2025-08-15 15:57:31 +08:00
syntax = "proto2";
package GetDelayStatistics;
option java_package = "com.futu.openapi.pb";
option go_package = "github.com/futuopen/ftapi4go/pb/getdelaystatistics";
import "Common.proto";
enum DelayStatisticsType
{
DelayStatisticsType_Unkonw = 0; //未知类型
DelayStatisticsType_QotPush = 1; //行情推送统计
DelayStatisticsType_ReqReply = 2; //请求回应统计
DelayStatisticsType_PlaceOrder = 3; //下单统计
}
//某段时间的统计数据
//SR表示服务器收到数据目前只有港股支持SR字段SS表示服务器发出数据
//CR表示OpenD收到数据CS表示OpenD发出数据
enum QotPushStage
{
QotPushStage_Unkonw = 0; // 未知
QotPushStage_SR2SS = 1; //统计服务端处理耗时
QotPushStage_SS2CR = 2; //统计网络耗时
QotPushStage_CR2CS = 3; //统计OpenD处理耗时
QotPushStage_SS2CS = 4; //统计服务器发出到OpenD发出的处理耗时
QotPushStage_SR2CS = 5; //统计服务器收到数据到OpenD发出的处理耗时
}
//行情推送类型
enum QotPushType
{
QotPushType_Unkonw = 0; // 未知
QotPushType_Price = 1; //最新价
QotPushType_Ticker = 2; //逐笔
QotPushType_OrderBook = 3; //摆盘
QotPushType_Broker = 4; //经纪队列
}
message C2S
{
repeated int32 typeList = 1; //统计数据类型DelayStatisticsType
optional int32 qotPushStage = 2; //行情推送统计的区间行情推送统计时有效QotPushStage
repeated int32 segmentList = 3; //统计分段默认100ms以下以2ms分段100ms以上以50010002000-1分段-1表示无穷大。
//传入的分段范围0-100ms最小支持1ms100-1000ms最小支持50ms1000-5000ms最小支持500ms5000ms以上无法指定
}
message DelayStatisticsItem
{
//范围左闭右开,[begin,end)
required int32 begin = 1; //耗时范围起点,毫秒单位
required int32 end = 2; //耗时范围结束,毫秒单位
required int32 count = 3; //个数
required float proportion = 4; //占比, %
required float cumulativeRatio = 5; //累计占比, %
}
message DelayStatistics
{
required int32 qotPushType = 1; //行情推送类型,QotPushType
repeated DelayStatisticsItem itemList = 2; //统计信息
required float delayAvg = 3; //平均延迟
required int32 count = 4; //总包数
}
message ReqReplyStatisticsItem
{
required int32 protoID = 1; //协议ID
required int32 count = 2; //请求个数
required float totalCostAvg = 3; //平均总耗时,毫秒单位
required float openDCostAvg = 4; //平均OpenD耗时毫秒单位
required float netDelayAvg = 5; //平均网络耗时,非当时实际请求网络耗时,毫秒单位
required bool isLocalReply = 6; //是否本地直接回包,没有向服务器请求数据
}
message PlaceOrderStatisticsItem
{
required string orderID = 1; //订单ID
required float totalCost = 2; //总耗时,毫秒单位
required float openDCost = 3; //OpenD耗时毫秒单位
required float netDelay = 4; //网络耗时,非当时实际请求网络耗时,毫秒单位
required float updateCost = 5; //订单回包后到接收到订单下到交易所的耗时,毫秒单位
}
message S2C
{
repeated DelayStatistics qotPushStatisticsList = 1; //行情推送延迟统计
repeated ReqReplyStatisticsItem reqReplyStatisticsList = 2; //请求延迟统计
repeated PlaceOrderStatisticsItem placeOrderStatisticsList = 3; //下单延迟统计
}
message Request
{
required C2S c2s = 1;
}
message Response
{
required int32 retType = 1 [default = -400]; //返回结果参见Common.RetType的枚举定义
optional string retMsg = 2; //返回结果描述
optional int32 errCode = 3; //错误码客户端一般通过retType和retMsg来判断结果和详情errCode只做日志记录仅在个别协议失败时对账用
optional S2C s2c = 4;
}