diff --git a/backend/api/handler/coze/loop/apis/observability_open_apiservice.go b/backend/api/handler/coze/loop/apis/observability_open_apiservice.go index ac453f74b..e7a6687d4 100644 --- a/backend/api/handler/coze/loop/apis/observability_open_apiservice.go +++ b/backend/api/handler/coze/loop/apis/observability_open_apiservice.go @@ -61,6 +61,12 @@ func ListTracesOApi(ctx context.Context, c *app.RequestContext) { invokeAndRender(ctx, c, observabilityOpenAPIClient.ListTracesOApi) } +// SearchTraceTreeOApi . +// @router /v1/loop/traces/search_tree [POST] +func SearchTraceTreeOApi(ctx context.Context, c *app.RequestContext) { + invokeAndRender(ctx, c, observabilityOpenAPIClient.SearchTraceTreeOApi) +} + // CreateAnnotation . // @router /v1/loop/annotations/create [POST] func CreateAnnotation(ctx context.Context, c *app.RequestContext) { diff --git a/backend/api/handler/coze/loop/apis/observability_trace_service.go b/backend/api/handler/coze/loop/apis/observability_trace_service.go index 15ba67560..64ba512ea 100644 --- a/backend/api/handler/coze/loop/apis/observability_trace_service.go +++ b/backend/api/handler/coze/loop/apis/observability_trace_service.go @@ -121,6 +121,22 @@ func PreviewExportTracesToDataset(ctx context.Context, c *app.RequestContext) { c.JSON(consts.StatusOK, resp) } +// SearchTraceTree . +// @router /api/observability/v1/traces/search_tree [POST] +func SearchTraceTree(ctx context.Context, c *app.RequestContext) { + var err error + var req trace.SearchTraceTreeRequest + err = c.BindAndValidate(&req) + if err != nil { + c.String(consts.StatusBadRequest, err.Error()) + return + } + + resp := new(trace.SearchTraceTreeResponse) + + c.JSON(consts.StatusOK, resp) +} + // ChangeEvaluatorScore . // @router /api/observability/v1/annotations/change_eEvaluator_sScore [POST] func ChangeEvaluatorScore(ctx context.Context, c *app.RequestContext) { diff --git a/backend/api/router/coze/loop/apis/coze.loop.apis.go b/backend/api/router/coze/loop/apis/coze.loop.apis.go index 9bcd25735..8c817934b 100644 --- a/backend/api/router/coze/loop/apis/coze.loop.apis.go +++ b/backend/api/router/coze/loop/apis/coze.loop.apis.go @@ -320,6 +320,7 @@ func Register(r *server.Hertz, handler *apis.APIHandler) { _traces.POST("/export_to_dataset", append(_exporttracestodatasetMw(handler), apis.ExportTracesToDataset)...) _traces.GET("/meta_info", append(_gettracesmetainfoMw(handler), apis.GetTracesMetaInfo)...) _traces.POST("/preview_export_to_dataset", append(_previewexporttracestodatasetMw(handler), apis.PreviewExportTracesToDataset)...) + _traces.POST("/search_tree", append(_searchtracetreeMw(handler), apis.SearchTraceTree)...) _traces.GET("/:trace_id", append(_gettraceMw(handler), apis.GetTrace)...) } } @@ -406,6 +407,7 @@ func Register(r *server.Hertz, handler *apis.APIHandler) { _traces0.POST("/ingest", append(_ingesttracesMw(handler), apis.IngestTraces)...) _traces0.POST("/list", append(_listtracesoapiMw(handler), apis.ListTracesOApi)...) _traces0.POST("/search", append(_searchtraceoapiMw(handler), apis.SearchTraceOApi)...) + _traces0.POST("/search_tree", append(_searchtracetreeoapiMw(handler), apis.SearchTraceTreeOApi)...) } } } diff --git a/backend/api/router/coze/loop/apis/middleware.go b/backend/api/router/coze/loop/apis/middleware.go index 280dc31d6..ac4522715 100644 --- a/backend/api/router/coze/loop/apis/middleware.go +++ b/backend/api/router/coze/loop/apis/middleware.go @@ -1419,6 +1419,35 @@ func _listexptinsightanalysisrecordMw(handler *apis.APIHandler) []app.HandlerFun return nil } +func _v2Mw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + +func _gettracev2Mw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + +func _traces1Mw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + +func _trace_treeMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + +func _searchtracetreeMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + +func _searchtracetreeoapiMw(handler *apis.APIHandler) []app.HandlerFunc { + return nil +} + func _annotations0Mw(handler *apis.APIHandler) []app.HandlerFunc { // your code... return nil diff --git a/backend/kitex_gen/coze/loop/apis/observabilityopenapiservice/client.go b/backend/kitex_gen/coze/loop/apis/observabilityopenapiservice/client.go index 2952f3631..e1d170434 100644 --- a/backend/kitex_gen/coze/loop/apis/observabilityopenapiservice/client.go +++ b/backend/kitex_gen/coze/loop/apis/observabilityopenapiservice/client.go @@ -14,6 +14,7 @@ type Client interface { IngestTraces(ctx context.Context, req *openapi.IngestTracesRequest, callOptions ...callopt.Option) (r *openapi.IngestTracesResponse, err error) OtelIngestTraces(ctx context.Context, req *openapi.OtelIngestTracesRequest, callOptions ...callopt.Option) (r *openapi.OtelIngestTracesResponse, err error) SearchTraceOApi(ctx context.Context, req *openapi.SearchTraceOApiRequest, callOptions ...callopt.Option) (r *openapi.SearchTraceOApiResponse, err error) + SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest, callOptions ...callopt.Option) (r *openapi.SearchTraceTreeOApiResponse, err error) ListSpansOApi(ctx context.Context, req *openapi.ListSpansOApiRequest, callOptions ...callopt.Option) (r *openapi.ListSpansOApiResponse, err error) ListTracesOApi(ctx context.Context, req *openapi.ListTracesOApiRequest, callOptions ...callopt.Option) (r *openapi.ListTracesOApiResponse, err error) CreateAnnotation(ctx context.Context, req *openapi.CreateAnnotationRequest, callOptions ...callopt.Option) (r *openapi.CreateAnnotationResponse, err error) @@ -64,6 +65,11 @@ func (p *kObservabilityOpenAPIServiceClient) SearchTraceOApi(ctx context.Context return p.kClient.SearchTraceOApi(ctx, req) } +func (p *kObservabilityOpenAPIServiceClient) SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest, callOptions ...callopt.Option) (r *openapi.SearchTraceTreeOApiResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.SearchTraceTreeOApi(ctx, req) +} + func (p *kObservabilityOpenAPIServiceClient) ListSpansOApi(ctx context.Context, req *openapi.ListSpansOApiRequest, callOptions ...callopt.Option) (r *openapi.ListSpansOApiResponse, err error) { ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.ListSpansOApi(ctx, req) diff --git a/backend/kitex_gen/coze/loop/apis/observabilityopenapiservice/observabilityopenapiservice.go b/backend/kitex_gen/coze/loop/apis/observabilityopenapiservice/observabilityopenapiservice.go index 9a1ce2e4d..53774af40 100644 --- a/backend/kitex_gen/coze/loop/apis/observabilityopenapiservice/observabilityopenapiservice.go +++ b/backend/kitex_gen/coze/loop/apis/observabilityopenapiservice/observabilityopenapiservice.go @@ -35,6 +35,13 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "SearchTraceTreeOApi": kitex.NewMethodInfo( + searchTraceTreeOApiHandler, + newOpenAPIServiceSearchTraceTreeOApiArgs, + newOpenAPIServiceSearchTraceTreeOApiResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), "ListSpansOApi": kitex.NewMethodInfo( listSpansOApiHandler, newOpenAPIServiceListSpansOApiArgs, @@ -153,6 +160,25 @@ func newOpenAPIServiceSearchTraceOApiResult() interface{} { return openapi.NewOpenAPIServiceSearchTraceOApiResult() } +func searchTraceTreeOApiHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*openapi.OpenAPIServiceSearchTraceTreeOApiArgs) + realResult := result.(*openapi.OpenAPIServiceSearchTraceTreeOApiResult) + success, err := handler.(openapi.OpenAPIService).SearchTraceTreeOApi(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newOpenAPIServiceSearchTraceTreeOApiArgs() interface{} { + return openapi.NewOpenAPIServiceSearchTraceTreeOApiArgs() +} + +func newOpenAPIServiceSearchTraceTreeOApiResult() interface{} { + return openapi.NewOpenAPIServiceSearchTraceTreeOApiResult() +} + func listSpansOApiHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { realArg := arg.(*openapi.OpenAPIServiceListSpansOApiArgs) realResult := result.(*openapi.OpenAPIServiceListSpansOApiResult) @@ -271,6 +297,16 @@ func (p *kClient) SearchTraceOApi(ctx context.Context, req *openapi.SearchTraceO return _result.GetSuccess(), nil } +func (p *kClient) SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest) (r *openapi.SearchTraceTreeOApiResponse, err error) { + var _args openapi.OpenAPIServiceSearchTraceTreeOApiArgs + _args.Req = req + var _result openapi.OpenAPIServiceSearchTraceTreeOApiResult + if err = p.c.Call(ctx, "SearchTraceTreeOApi", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + func (p *kClient) ListSpansOApi(ctx context.Context, req *openapi.ListSpansOApiRequest) (r *openapi.ListSpansOApiResponse, err error) { var _args openapi.OpenAPIServiceListSpansOApiArgs _args.Req = req diff --git a/backend/kitex_gen/coze/loop/apis/observabilitytraceservice/client.go b/backend/kitex_gen/coze/loop/apis/observabilitytraceservice/client.go index 9079d147d..21403e1db 100644 --- a/backend/kitex_gen/coze/loop/apis/observabilitytraceservice/client.go +++ b/backend/kitex_gen/coze/loop/apis/observabilitytraceservice/client.go @@ -13,6 +13,7 @@ import ( type Client interface { ListSpans(ctx context.Context, req *trace.ListSpansRequest, callOptions ...callopt.Option) (r *trace.ListSpansResponse, err error) GetTrace(ctx context.Context, req *trace.GetTraceRequest, callOptions ...callopt.Option) (r *trace.GetTraceResponse, err error) + SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest, callOptions ...callopt.Option) (r *trace.SearchTraceTreeResponse, err error) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest, callOptions ...callopt.Option) (r *trace.BatchGetTracesAdvanceInfoResponse, err error) IngestTracesInner(ctx context.Context, req *trace.IngestTracesRequest, callOptions ...callopt.Option) (r *trace.IngestTracesResponse, err error) GetTracesMetaInfo(ctx context.Context, req *trace.GetTracesMetaInfoRequest, callOptions ...callopt.Option) (r *trace.GetTracesMetaInfoResponse, err error) @@ -70,6 +71,11 @@ func (p *kObservabilityTraceServiceClient) GetTrace(ctx context.Context, req *tr return p.kClient.GetTrace(ctx, req) } +func (p *kObservabilityTraceServiceClient) SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest, callOptions ...callopt.Option) (r *trace.SearchTraceTreeResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.SearchTraceTree(ctx, req) +} + func (p *kObservabilityTraceServiceClient) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest, callOptions ...callopt.Option) (r *trace.BatchGetTracesAdvanceInfoResponse, err error) { ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.BatchGetTracesAdvanceInfo(ctx, req) diff --git a/backend/kitex_gen/coze/loop/apis/observabilitytraceservice/observabilitytraceservice.go b/backend/kitex_gen/coze/loop/apis/observabilitytraceservice/observabilitytraceservice.go index b2b236cd3..78ab55468 100644 --- a/backend/kitex_gen/coze/loop/apis/observabilitytraceservice/observabilitytraceservice.go +++ b/backend/kitex_gen/coze/loop/apis/observabilitytraceservice/observabilitytraceservice.go @@ -28,6 +28,13 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "SearchTraceTree": kitex.NewMethodInfo( + searchTraceTreeHandler, + newTraceServiceSearchTraceTreeArgs, + newTraceServiceSearchTraceTreeResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), "BatchGetTracesAdvanceInfo": kitex.NewMethodInfo( batchGetTracesAdvanceInfoHandler, newTraceServiceBatchGetTracesAdvanceInfoArgs, @@ -211,6 +218,25 @@ func newTraceServiceGetTraceResult() interface{} { return trace.NewTraceServiceGetTraceResult() } +func searchTraceTreeHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*trace.TraceServiceSearchTraceTreeArgs) + realResult := result.(*trace.TraceServiceSearchTraceTreeResult) + success, err := handler.(trace.TraceService).SearchTraceTree(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newTraceServiceSearchTraceTreeArgs() interface{} { + return trace.NewTraceServiceSearchTraceTreeArgs() +} + +func newTraceServiceSearchTraceTreeResult() interface{} { + return trace.NewTraceServiceSearchTraceTreeResult() +} + func batchGetTracesAdvanceInfoHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { realArg := arg.(*trace.TraceServiceBatchGetTracesAdvanceInfoArgs) realResult := result.(*trace.TraceServiceBatchGetTracesAdvanceInfoResult) @@ -547,6 +573,16 @@ func (p *kClient) GetTrace(ctx context.Context, req *trace.GetTraceRequest) (r * return _result.GetSuccess(), nil } +func (p *kClient) SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest) (r *trace.SearchTraceTreeResponse, err error) { + var _args trace.TraceServiceSearchTraceTreeArgs + _args.Req = req + var _result trace.TraceServiceSearchTraceTreeResult + if err = p.c.Call(ctx, "SearchTraceTree", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + func (p *kClient) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest) (r *trace.BatchGetTracesAdvanceInfoResponse, err error) { var _args trace.TraceServiceBatchGetTracesAdvanceInfoArgs _args.Req = req diff --git a/backend/kitex_gen/coze/loop/observability/domain/filter/filter.go b/backend/kitex_gen/coze/loop/observability/domain/filter/filter.go index 231a1678c..4812e3c0c 100644 --- a/backend/kitex_gen/coze/loop/observability/domain/filter/filter.go +++ b/backend/kitex_gen/coze/loop/observability/domain/filter/filter.go @@ -348,6 +348,7 @@ type FilterField struct { QueryType *QueryType `thrift:"query_type,4,optional" frugal:"4,optional,string" form:"query_type" json:"query_type,omitempty" query:"query_type"` QueryAndOr *QueryRelation `thrift:"query_and_or,5,optional" frugal:"5,optional,string" form:"query_and_or" json:"query_and_or,omitempty" query:"query_and_or"` SubFilter *FilterFields `thrift:"sub_filter,6,optional" frugal:"6,optional,FilterFields" form:"sub_filter" json:"sub_filter,omitempty" query:"sub_filter"` + IsCustom *bool `thrift:"is_custom,7,optional" frugal:"7,optional,bool" form:"is_custom" json:"is_custom,omitempty" query:"is_custom"` } func NewFilterField() *FilterField { @@ -428,6 +429,18 @@ func (p *FilterField) GetSubFilter() (v *FilterFields) { } return p.SubFilter } + +var FilterField_IsCustom_DEFAULT bool + +func (p *FilterField) GetIsCustom() (v bool) { + if p == nil { + return + } + if !p.IsSetIsCustom() { + return FilterField_IsCustom_DEFAULT + } + return *p.IsCustom +} func (p *FilterField) SetFieldName(val *string) { p.FieldName = val } @@ -446,6 +459,9 @@ func (p *FilterField) SetQueryAndOr(val *QueryRelation) { func (p *FilterField) SetSubFilter(val *FilterFields) { p.SubFilter = val } +func (p *FilterField) SetIsCustom(val *bool) { + p.IsCustom = val +} var fieldIDToName_FilterField = map[int16]string{ 1: "field_name", @@ -454,6 +470,7 @@ var fieldIDToName_FilterField = map[int16]string{ 4: "query_type", 5: "query_and_or", 6: "sub_filter", + 7: "is_custom", } func (p *FilterField) IsSetFieldName() bool { @@ -480,6 +497,10 @@ func (p *FilterField) IsSetSubFilter() bool { return p.SubFilter != nil } +func (p *FilterField) IsSetIsCustom() bool { + return p.IsCustom != nil +} + func (p *FilterField) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -546,6 +567,14 @@ func (p *FilterField) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 7: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -650,6 +679,17 @@ func (p *FilterField) ReadField6(iprot thrift.TProtocol) error { p.SubFilter = _field return nil } +func (p *FilterField) ReadField7(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.IsCustom = _field + return nil +} func (p *FilterField) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -681,6 +721,10 @@ func (p *FilterField) Write(oprot thrift.TProtocol) (err error) { fieldId = 6 goto WriteFieldError } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -815,6 +859,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } +func (p *FilterField) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetIsCustom() { + if err = oprot.WriteFieldBegin("is_custom", thrift.BOOL, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.IsCustom); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} func (p *FilterField) String() string { if p == nil { @@ -848,6 +910,9 @@ func (p *FilterField) DeepEqual(ano *FilterField) bool { if !p.Field6DeepEqual(ano.SubFilter) { return false } + if !p.Field7DeepEqual(ano.IsCustom) { + return false + } return true } @@ -919,6 +984,18 @@ func (p *FilterField) Field6DeepEqual(src *FilterFields) bool { } return true } +func (p *FilterField) Field7DeepEqual(src *bool) bool { + + if p.IsCustom == src { + return true + } else if p.IsCustom == nil || src == nil { + return false + } + if *p.IsCustom != *src { + return false + } + return true +} type FieldOptions struct { I64List []int64 `thrift:"i64_list,2,optional" frugal:"2,optional,list" json:"i64_list" form:"i64_list" query:"i64_list"` diff --git a/backend/kitex_gen/coze/loop/observability/domain/filter/k-filter.go b/backend/kitex_gen/coze/loop/observability/domain/filter/k-filter.go index 4e4867186..26d26b6f2 100644 --- a/backend/kitex_gen/coze/loop/observability/domain/filter/k-filter.go +++ b/backend/kitex_gen/coze/loop/observability/domain/filter/k-filter.go @@ -334,6 +334,20 @@ func (p *FilterField) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 7: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -444,6 +458,20 @@ func (p *FilterField) FastReadField6(buf []byte) (int, error) { return offset, nil } +func (p *FilterField) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.IsCustom = _field + return offset, nil +} + func (p *FilterField) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -451,6 +479,7 @@ func (p *FilterField) FastWrite(buf []byte) int { func (p *FilterField) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField7(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) @@ -471,6 +500,7 @@ func (p *FilterField) BLength() int { l += p.field4Length() l += p.field5Length() l += p.field6Length() + l += p.field7Length() } l += thrift.Binary.FieldStopLength() return l @@ -537,6 +567,15 @@ func (p *FilterField) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *FilterField) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetIsCustom() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 7) + offset += thrift.Binary.WriteBool(buf[offset:], *p.IsCustom) + } + return offset +} + func (p *FilterField) field1Length() int { l := 0 if p.IsSetFieldName() { @@ -595,6 +634,15 @@ func (p *FilterField) field6Length() int { return l } +func (p *FilterField) field7Length() int { + l := 0 + if p.IsSetIsCustom() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + func (p *FilterField) DeepCopy(s interface{}) error { src, ok := s.(*FilterField) if !ok { @@ -644,6 +692,11 @@ func (p *FilterField) DeepCopy(s interface{}) error { } p.SubFilter = _subFilter + if src.IsCustom != nil { + tmp := *src.IsCustom + p.IsCustom = &tmp + } + return nil } diff --git a/backend/kitex_gen/coze/loop/observability/observabilityopenapiservice/client.go b/backend/kitex_gen/coze/loop/observability/observabilityopenapiservice/client.go index 2952f3631..e1d170434 100644 --- a/backend/kitex_gen/coze/loop/observability/observabilityopenapiservice/client.go +++ b/backend/kitex_gen/coze/loop/observability/observabilityopenapiservice/client.go @@ -14,6 +14,7 @@ type Client interface { IngestTraces(ctx context.Context, req *openapi.IngestTracesRequest, callOptions ...callopt.Option) (r *openapi.IngestTracesResponse, err error) OtelIngestTraces(ctx context.Context, req *openapi.OtelIngestTracesRequest, callOptions ...callopt.Option) (r *openapi.OtelIngestTracesResponse, err error) SearchTraceOApi(ctx context.Context, req *openapi.SearchTraceOApiRequest, callOptions ...callopt.Option) (r *openapi.SearchTraceOApiResponse, err error) + SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest, callOptions ...callopt.Option) (r *openapi.SearchTraceTreeOApiResponse, err error) ListSpansOApi(ctx context.Context, req *openapi.ListSpansOApiRequest, callOptions ...callopt.Option) (r *openapi.ListSpansOApiResponse, err error) ListTracesOApi(ctx context.Context, req *openapi.ListTracesOApiRequest, callOptions ...callopt.Option) (r *openapi.ListTracesOApiResponse, err error) CreateAnnotation(ctx context.Context, req *openapi.CreateAnnotationRequest, callOptions ...callopt.Option) (r *openapi.CreateAnnotationResponse, err error) @@ -64,6 +65,11 @@ func (p *kObservabilityOpenAPIServiceClient) SearchTraceOApi(ctx context.Context return p.kClient.SearchTraceOApi(ctx, req) } +func (p *kObservabilityOpenAPIServiceClient) SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest, callOptions ...callopt.Option) (r *openapi.SearchTraceTreeOApiResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.SearchTraceTreeOApi(ctx, req) +} + func (p *kObservabilityOpenAPIServiceClient) ListSpansOApi(ctx context.Context, req *openapi.ListSpansOApiRequest, callOptions ...callopt.Option) (r *openapi.ListSpansOApiResponse, err error) { ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.ListSpansOApi(ctx, req) diff --git a/backend/kitex_gen/coze/loop/observability/observabilityopenapiservice/observabilityopenapiservice.go b/backend/kitex_gen/coze/loop/observability/observabilityopenapiservice/observabilityopenapiservice.go index 080b77e35..91239ed75 100644 --- a/backend/kitex_gen/coze/loop/observability/observabilityopenapiservice/observabilityopenapiservice.go +++ b/backend/kitex_gen/coze/loop/observability/observabilityopenapiservice/observabilityopenapiservice.go @@ -35,6 +35,13 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "SearchTraceTreeOApi": kitex.NewMethodInfo( + searchTraceTreeOApiHandler, + newOpenAPIServiceSearchTraceTreeOApiArgs, + newOpenAPIServiceSearchTraceTreeOApiResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), "ListSpansOApi": kitex.NewMethodInfo( listSpansOApiHandler, newOpenAPIServiceListSpansOApiArgs, @@ -153,6 +160,25 @@ func newOpenAPIServiceSearchTraceOApiResult() interface{} { return openapi.NewOpenAPIServiceSearchTraceOApiResult() } +func searchTraceTreeOApiHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*openapi.OpenAPIServiceSearchTraceTreeOApiArgs) + realResult := result.(*openapi.OpenAPIServiceSearchTraceTreeOApiResult) + success, err := handler.(openapi.OpenAPIService).SearchTraceTreeOApi(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newOpenAPIServiceSearchTraceTreeOApiArgs() interface{} { + return openapi.NewOpenAPIServiceSearchTraceTreeOApiArgs() +} + +func newOpenAPIServiceSearchTraceTreeOApiResult() interface{} { + return openapi.NewOpenAPIServiceSearchTraceTreeOApiResult() +} + func listSpansOApiHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { realArg := arg.(*openapi.OpenAPIServiceListSpansOApiArgs) realResult := result.(*openapi.OpenAPIServiceListSpansOApiResult) @@ -271,6 +297,16 @@ func (p *kClient) SearchTraceOApi(ctx context.Context, req *openapi.SearchTraceO return _result.GetSuccess(), nil } +func (p *kClient) SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest) (r *openapi.SearchTraceTreeOApiResponse, err error) { + var _args openapi.OpenAPIServiceSearchTraceTreeOApiArgs + _args.Req = req + var _result openapi.OpenAPIServiceSearchTraceTreeOApiResult + if err = p.c.Call(ctx, "SearchTraceTreeOApi", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + func (p *kClient) ListSpansOApi(ctx context.Context, req *openapi.ListSpansOApiRequest) (r *openapi.ListSpansOApiResponse, err error) { var _args openapi.OpenAPIServiceListSpansOApiArgs _args.Req = req diff --git a/backend/kitex_gen/coze/loop/observability/observabilitytraceservice/client.go b/backend/kitex_gen/coze/loop/observability/observabilitytraceservice/client.go index 9079d147d..21403e1db 100644 --- a/backend/kitex_gen/coze/loop/observability/observabilitytraceservice/client.go +++ b/backend/kitex_gen/coze/loop/observability/observabilitytraceservice/client.go @@ -13,6 +13,7 @@ import ( type Client interface { ListSpans(ctx context.Context, req *trace.ListSpansRequest, callOptions ...callopt.Option) (r *trace.ListSpansResponse, err error) GetTrace(ctx context.Context, req *trace.GetTraceRequest, callOptions ...callopt.Option) (r *trace.GetTraceResponse, err error) + SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest, callOptions ...callopt.Option) (r *trace.SearchTraceTreeResponse, err error) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest, callOptions ...callopt.Option) (r *trace.BatchGetTracesAdvanceInfoResponse, err error) IngestTracesInner(ctx context.Context, req *trace.IngestTracesRequest, callOptions ...callopt.Option) (r *trace.IngestTracesResponse, err error) GetTracesMetaInfo(ctx context.Context, req *trace.GetTracesMetaInfoRequest, callOptions ...callopt.Option) (r *trace.GetTracesMetaInfoResponse, err error) @@ -70,6 +71,11 @@ func (p *kObservabilityTraceServiceClient) GetTrace(ctx context.Context, req *tr return p.kClient.GetTrace(ctx, req) } +func (p *kObservabilityTraceServiceClient) SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest, callOptions ...callopt.Option) (r *trace.SearchTraceTreeResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.SearchTraceTree(ctx, req) +} + func (p *kObservabilityTraceServiceClient) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest, callOptions ...callopt.Option) (r *trace.BatchGetTracesAdvanceInfoResponse, err error) { ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.BatchGetTracesAdvanceInfo(ctx, req) diff --git a/backend/kitex_gen/coze/loop/observability/observabilitytraceservice/observabilitytraceservice.go b/backend/kitex_gen/coze/loop/observability/observabilitytraceservice/observabilitytraceservice.go index 30bdc7a2f..e5c48426e 100644 --- a/backend/kitex_gen/coze/loop/observability/observabilitytraceservice/observabilitytraceservice.go +++ b/backend/kitex_gen/coze/loop/observability/observabilitytraceservice/observabilitytraceservice.go @@ -28,6 +28,13 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "SearchTraceTree": kitex.NewMethodInfo( + searchTraceTreeHandler, + newTraceServiceSearchTraceTreeArgs, + newTraceServiceSearchTraceTreeResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), "BatchGetTracesAdvanceInfo": kitex.NewMethodInfo( batchGetTracesAdvanceInfoHandler, newTraceServiceBatchGetTracesAdvanceInfoArgs, @@ -211,6 +218,25 @@ func newTraceServiceGetTraceResult() interface{} { return trace.NewTraceServiceGetTraceResult() } +func searchTraceTreeHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*trace.TraceServiceSearchTraceTreeArgs) + realResult := result.(*trace.TraceServiceSearchTraceTreeResult) + success, err := handler.(trace.TraceService).SearchTraceTree(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newTraceServiceSearchTraceTreeArgs() interface{} { + return trace.NewTraceServiceSearchTraceTreeArgs() +} + +func newTraceServiceSearchTraceTreeResult() interface{} { + return trace.NewTraceServiceSearchTraceTreeResult() +} + func batchGetTracesAdvanceInfoHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { realArg := arg.(*trace.TraceServiceBatchGetTracesAdvanceInfoArgs) realResult := result.(*trace.TraceServiceBatchGetTracesAdvanceInfoResult) @@ -547,6 +573,16 @@ func (p *kClient) GetTrace(ctx context.Context, req *trace.GetTraceRequest) (r * return _result.GetSuccess(), nil } +func (p *kClient) SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest) (r *trace.SearchTraceTreeResponse, err error) { + var _args trace.TraceServiceSearchTraceTreeArgs + _args.Req = req + var _result trace.TraceServiceSearchTraceTreeResult + if err = p.c.Call(ctx, "SearchTraceTree", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + func (p *kClient) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest) (r *trace.BatchGetTracesAdvanceInfoResponse, err error) { var _args trace.TraceServiceBatchGetTracesAdvanceInfoArgs _args.Req = req diff --git a/backend/kitex_gen/coze/loop/observability/openapi/coze.loop.observability.openapi.go b/backend/kitex_gen/coze/loop/observability/openapi/coze.loop.observability.openapi.go index 7ba729b63..d1c418320 100644 --- a/backend/kitex_gen/coze/loop/observability/openapi/coze.loop.observability.openapi.go +++ b/backend/kitex_gen/coze/loop/observability/openapi/coze.loop.observability.openapi.go @@ -2867,6 +2867,7 @@ type SearchTraceOApiRequest struct { EndTime int64 `thrift:"end_time,5,required" frugal:"5,required,i64" json:"end_time" form:"end_time,required" ` Limit int32 `thrift:"limit,6,required" frugal:"6,required,i32" form:"limit,required" json:"limit,required"` PlatformType *common.PlatformType `thrift:"platform_type,8,optional" frugal:"8,optional,string" form:"platform_type" json:"platform_type,omitempty"` + SpanIds []string `thrift:"span_ids,9,optional" frugal:"9,optional,list" json:"span_ids,omitempty" query:"span_ids"` Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } @@ -2941,6 +2942,18 @@ func (p *SearchTraceOApiRequest) GetPlatformType() (v common.PlatformType) { return *p.PlatformType } +var SearchTraceOApiRequest_SpanIds_DEFAULT []string + +func (p *SearchTraceOApiRequest) GetSpanIds() (v []string) { + if p == nil { + return + } + if !p.IsSetSpanIds() { + return SearchTraceOApiRequest_SpanIds_DEFAULT + } + return p.SpanIds +} + var SearchTraceOApiRequest_Base_DEFAULT *base.Base func (p *SearchTraceOApiRequest) GetBase() (v *base.Base) { @@ -2973,6 +2986,9 @@ func (p *SearchTraceOApiRequest) SetLimit(val int32) { func (p *SearchTraceOApiRequest) SetPlatformType(val *common.PlatformType) { p.PlatformType = val } +func (p *SearchTraceOApiRequest) SetSpanIds(val []string) { + p.SpanIds = val +} func (p *SearchTraceOApiRequest) SetBase(val *base.Base) { p.Base = val } @@ -2985,6 +3001,7 @@ var fieldIDToName_SearchTraceOApiRequest = map[int16]string{ 5: "end_time", 6: "limit", 8: "platform_type", + 9: "span_ids", 255: "Base", } @@ -3000,6 +3017,10 @@ func (p *SearchTraceOApiRequest) IsSetPlatformType() bool { return p.PlatformType != nil } +func (p *SearchTraceOApiRequest) IsSetSpanIds() bool { + return p.SpanIds != nil +} + func (p *SearchTraceOApiRequest) IsSetBase() bool { return p.Base != nil } @@ -3086,6 +3107,14 @@ func (p *SearchTraceOApiRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 9: + if fieldTypeId == thrift.LIST { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -3221,6 +3250,29 @@ func (p *SearchTraceOApiRequest) ReadField8(iprot thrift.TProtocol) error { p.PlatformType = _field return nil } +func (p *SearchTraceOApiRequest) ReadField9(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + + var _elem string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.SpanIds = _field + return nil +} func (p *SearchTraceOApiRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { @@ -3264,6 +3316,10 @@ func (p *SearchTraceOApiRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 8 goto WriteFieldError } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -3404,6 +3460,32 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) } +func (p *SearchTraceOApiRequest) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetSpanIds() { + if err = oprot.WriteFieldBegin("span_ids", thrift.LIST, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.SpanIds)); err != nil { + return err + } + for _, v := range p.SpanIds { + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} func (p *SearchTraceOApiRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { @@ -3458,6 +3540,9 @@ func (p *SearchTraceOApiRequest) DeepEqual(ano *SearchTraceOApiRequest) bool { if !p.Field8DeepEqual(ano.PlatformType) { return false } + if !p.Field9DeepEqual(ano.SpanIds) { + return false + } if !p.Field255DeepEqual(ano.Base) { return false } @@ -3528,6 +3613,19 @@ func (p *SearchTraceOApiRequest) Field8DeepEqual(src *common.PlatformType) bool } return true } +func (p *SearchTraceOApiRequest) Field9DeepEqual(src []string) bool { + + if len(p.SpanIds) != len(src) { + return false + } + for i, v := range p.SpanIds { + _src := src[i] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} func (p *SearchTraceOApiRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { @@ -4200,210 +4298,184 @@ func (p *SearchTraceOApiData) Field2DeepEqual(src *trace0.TraceAdvanceInfo) bool return true } -type ListSpansOApiRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` +type SearchTraceTreeOApiRequest struct { + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` + TraceID *string `thrift:"trace_id,3,optional" frugal:"3,optional,string" json:"trace_id" form:"trace_id" ` // ms - StartTime int64 `thrift:"start_time,2,required" frugal:"2,required,i64" json:"start_time" form:"start_time,required" ` + StartTime *int64 `thrift:"start_time,4,optional" frugal:"4,optional,i64" json:"start_time" form:"start_time" ` // ms - EndTime int64 `thrift:"end_time,3,required" frugal:"3,required,i64" json:"end_time" form:"end_time,required" ` - Filters *filter.FilterFields `thrift:"filters,4,optional" frugal:"4,optional,filter.FilterFields" form:"filters" json:"filters,omitempty"` - PageSize *int32 `thrift:"page_size,5,optional" frugal:"5,optional,i32" form:"page_size" json:"page_size,omitempty"` - OrderBys []*common.OrderBy `thrift:"order_bys,6,optional" frugal:"6,optional,list" form:"order_bys" json:"order_bys,omitempty"` - PageToken *string `thrift:"page_token,7,optional" frugal:"7,optional,string" form:"page_token" json:"page_token,omitempty"` + EndTime *int64 `thrift:"end_time,5,optional" frugal:"5,optional,i64" json:"end_time" form:"end_time" ` + Limit int32 `thrift:"limit,6,required" frugal:"6,required,i32" form:"limit,required" json:"limit,required"` PlatformType *common.PlatformType `thrift:"platform_type,8,optional" frugal:"8,optional,string" form:"platform_type" json:"platform_type,omitempty"` - SpanListType *common.SpanListType `thrift:"span_list_type,9,optional" frugal:"9,optional,string" form:"span_list_type" json:"span_list_type,omitempty"` + Filters *filter.FilterFields `thrift:"filters,10,optional" frugal:"10,optional,filter.FilterFields" form:"filters" json:"filters,omitempty"` Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewListSpansOApiRequest() *ListSpansOApiRequest { - return &ListSpansOApiRequest{} +func NewSearchTraceTreeOApiRequest() *SearchTraceTreeOApiRequest { + return &SearchTraceTreeOApiRequest{} } -func (p *ListSpansOApiRequest) InitDefault() { +func (p *SearchTraceTreeOApiRequest) InitDefault() { } -func (p *ListSpansOApiRequest) GetWorkspaceID() (v int64) { - if p != nil { - return p.WorkspaceID - } - return -} +var SearchTraceTreeOApiRequest_WorkspaceID_DEFAULT int64 -func (p *ListSpansOApiRequest) GetStartTime() (v int64) { - if p != nil { - return p.StartTime +func (p *SearchTraceTreeOApiRequest) GetWorkspaceID() (v int64) { + if p == nil { + return } - return -} - -func (p *ListSpansOApiRequest) GetEndTime() (v int64) { - if p != nil { - return p.EndTime + if !p.IsSetWorkspaceID() { + return SearchTraceTreeOApiRequest_WorkspaceID_DEFAULT } - return + return *p.WorkspaceID } -var ListSpansOApiRequest_Filters_DEFAULT *filter.FilterFields +var SearchTraceTreeOApiRequest_TraceID_DEFAULT string -func (p *ListSpansOApiRequest) GetFilters() (v *filter.FilterFields) { +func (p *SearchTraceTreeOApiRequest) GetTraceID() (v string) { if p == nil { return } - if !p.IsSetFilters() { - return ListSpansOApiRequest_Filters_DEFAULT + if !p.IsSetTraceID() { + return SearchTraceTreeOApiRequest_TraceID_DEFAULT } - return p.Filters + return *p.TraceID } -var ListSpansOApiRequest_PageSize_DEFAULT int32 +var SearchTraceTreeOApiRequest_StartTime_DEFAULT int64 -func (p *ListSpansOApiRequest) GetPageSize() (v int32) { +func (p *SearchTraceTreeOApiRequest) GetStartTime() (v int64) { if p == nil { return } - if !p.IsSetPageSize() { - return ListSpansOApiRequest_PageSize_DEFAULT + if !p.IsSetStartTime() { + return SearchTraceTreeOApiRequest_StartTime_DEFAULT } - return *p.PageSize + return *p.StartTime } -var ListSpansOApiRequest_OrderBys_DEFAULT []*common.OrderBy +var SearchTraceTreeOApiRequest_EndTime_DEFAULT int64 -func (p *ListSpansOApiRequest) GetOrderBys() (v []*common.OrderBy) { +func (p *SearchTraceTreeOApiRequest) GetEndTime() (v int64) { if p == nil { return } - if !p.IsSetOrderBys() { - return ListSpansOApiRequest_OrderBys_DEFAULT + if !p.IsSetEndTime() { + return SearchTraceTreeOApiRequest_EndTime_DEFAULT } - return p.OrderBys + return *p.EndTime } -var ListSpansOApiRequest_PageToken_DEFAULT string - -func (p *ListSpansOApiRequest) GetPageToken() (v string) { - if p == nil { - return - } - if !p.IsSetPageToken() { - return ListSpansOApiRequest_PageToken_DEFAULT +func (p *SearchTraceTreeOApiRequest) GetLimit() (v int32) { + if p != nil { + return p.Limit } - return *p.PageToken + return } -var ListSpansOApiRequest_PlatformType_DEFAULT common.PlatformType +var SearchTraceTreeOApiRequest_PlatformType_DEFAULT common.PlatformType -func (p *ListSpansOApiRequest) GetPlatformType() (v common.PlatformType) { +func (p *SearchTraceTreeOApiRequest) GetPlatformType() (v common.PlatformType) { if p == nil { return } if !p.IsSetPlatformType() { - return ListSpansOApiRequest_PlatformType_DEFAULT + return SearchTraceTreeOApiRequest_PlatformType_DEFAULT } return *p.PlatformType } -var ListSpansOApiRequest_SpanListType_DEFAULT common.SpanListType +var SearchTraceTreeOApiRequest_Filters_DEFAULT *filter.FilterFields -func (p *ListSpansOApiRequest) GetSpanListType() (v common.SpanListType) { +func (p *SearchTraceTreeOApiRequest) GetFilters() (v *filter.FilterFields) { if p == nil { return } - if !p.IsSetSpanListType() { - return ListSpansOApiRequest_SpanListType_DEFAULT + if !p.IsSetFilters() { + return SearchTraceTreeOApiRequest_Filters_DEFAULT } - return *p.SpanListType + return p.Filters } -var ListSpansOApiRequest_Base_DEFAULT *base.Base +var SearchTraceTreeOApiRequest_Base_DEFAULT *base.Base -func (p *ListSpansOApiRequest) GetBase() (v *base.Base) { +func (p *SearchTraceTreeOApiRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return ListSpansOApiRequest_Base_DEFAULT + return SearchTraceTreeOApiRequest_Base_DEFAULT } return p.Base } -func (p *ListSpansOApiRequest) SetWorkspaceID(val int64) { +func (p *SearchTraceTreeOApiRequest) SetWorkspaceID(val *int64) { p.WorkspaceID = val } -func (p *ListSpansOApiRequest) SetStartTime(val int64) { +func (p *SearchTraceTreeOApiRequest) SetTraceID(val *string) { + p.TraceID = val +} +func (p *SearchTraceTreeOApiRequest) SetStartTime(val *int64) { p.StartTime = val } -func (p *ListSpansOApiRequest) SetEndTime(val int64) { +func (p *SearchTraceTreeOApiRequest) SetEndTime(val *int64) { p.EndTime = val } -func (p *ListSpansOApiRequest) SetFilters(val *filter.FilterFields) { - p.Filters = val -} -func (p *ListSpansOApiRequest) SetPageSize(val *int32) { - p.PageSize = val -} -func (p *ListSpansOApiRequest) SetOrderBys(val []*common.OrderBy) { - p.OrderBys = val -} -func (p *ListSpansOApiRequest) SetPageToken(val *string) { - p.PageToken = val +func (p *SearchTraceTreeOApiRequest) SetLimit(val int32) { + p.Limit = val } -func (p *ListSpansOApiRequest) SetPlatformType(val *common.PlatformType) { +func (p *SearchTraceTreeOApiRequest) SetPlatformType(val *common.PlatformType) { p.PlatformType = val } -func (p *ListSpansOApiRequest) SetSpanListType(val *common.SpanListType) { - p.SpanListType = val +func (p *SearchTraceTreeOApiRequest) SetFilters(val *filter.FilterFields) { + p.Filters = val } -func (p *ListSpansOApiRequest) SetBase(val *base.Base) { +func (p *SearchTraceTreeOApiRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ListSpansOApiRequest = map[int16]string{ +var fieldIDToName_SearchTraceTreeOApiRequest = map[int16]string{ 1: "workspace_id", - 2: "start_time", - 3: "end_time", - 4: "filters", - 5: "page_size", - 6: "order_bys", - 7: "page_token", + 3: "trace_id", + 4: "start_time", + 5: "end_time", + 6: "limit", 8: "platform_type", - 9: "span_list_type", + 10: "filters", 255: "Base", } -func (p *ListSpansOApiRequest) IsSetFilters() bool { - return p.Filters != nil +func (p *SearchTraceTreeOApiRequest) IsSetWorkspaceID() bool { + return p.WorkspaceID != nil } -func (p *ListSpansOApiRequest) IsSetPageSize() bool { - return p.PageSize != nil +func (p *SearchTraceTreeOApiRequest) IsSetTraceID() bool { + return p.TraceID != nil } -func (p *ListSpansOApiRequest) IsSetOrderBys() bool { - return p.OrderBys != nil +func (p *SearchTraceTreeOApiRequest) IsSetStartTime() bool { + return p.StartTime != nil } -func (p *ListSpansOApiRequest) IsSetPageToken() bool { - return p.PageToken != nil +func (p *SearchTraceTreeOApiRequest) IsSetEndTime() bool { + return p.EndTime != nil } -func (p *ListSpansOApiRequest) IsSetPlatformType() bool { +func (p *SearchTraceTreeOApiRequest) IsSetPlatformType() bool { return p.PlatformType != nil } -func (p *ListSpansOApiRequest) IsSetSpanListType() bool { - return p.SpanListType != nil +func (p *SearchTraceTreeOApiRequest) IsSetFilters() bool { + return p.Filters != nil } -func (p *ListSpansOApiRequest) IsSetBase() bool { +func (p *SearchTraceTreeOApiRequest) IsSetBase() bool { return p.Base != nil } -func (p *ListSpansOApiRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetWorkspaceID bool = false - var issetStartTime bool = false - var issetEndTime bool = false + var issetLimit bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -4424,30 +4496,19 @@ func (p *ListSpansOApiRequest) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetWorkspaceID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I64 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - issetStartTime = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 3: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } - issetEndTime = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 4: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.I64 { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } @@ -4455,7 +4516,7 @@ func (p *ListSpansOApiRequest) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 5: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.I64 { if err = p.ReadField5(iprot); err != nil { goto ReadFieldError } @@ -4463,18 +4524,11 @@ func (p *ListSpansOApiRequest) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 6: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.I32 { if err = p.ReadField6(iprot); err != nil { goto ReadFieldError } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.STRING { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } + issetLimit = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -4486,9 +4540,9 @@ func (p *ListSpansOApiRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 9: - if fieldTypeId == thrift.STRING { - if err = p.ReadField9(iprot); err != nil { + case 10: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField10(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -4515,18 +4569,8 @@ func (p *ListSpansOApiRequest) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetWorkspaceID { - fieldId = 1 - goto RequiredFieldNotSetError - } - - if !issetStartTime { - fieldId = 2 - goto RequiredFieldNotSetError - } - - if !issetEndTime { - fieldId = 3 + if !issetLimit { + fieldId = 6 goto RequiredFieldNotSetError } return nil @@ -4535,7 +4579,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListSpansOApiRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceTreeOApiRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -4544,96 +4588,65 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListSpansOApiRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_SearchTraceTreeOApiRequest[fieldId])) } -func (p *ListSpansOApiRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiRequest) ReadField1(iprot thrift.TProtocol) error { - var _field int64 + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = v + _field = &v } p.WorkspaceID = _field return nil } -func (p *ListSpansOApiRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiRequest) ReadField3(iprot thrift.TProtocol) error { - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + var _field *string + if v, err := iprot.ReadString(); err != nil { return err } else { - _field = v + _field = &v } - p.StartTime = _field + p.TraceID = _field return nil } -func (p *ListSpansOApiRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiRequest) ReadField4(iprot thrift.TProtocol) error { - var _field int64 + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = v - } - p.EndTime = _field - return nil -} -func (p *ListSpansOApiRequest) ReadField4(iprot thrift.TProtocol) error { - _field := filter.NewFilterFields() - if err := _field.Read(iprot); err != nil { - return err + _field = &v } - p.Filters = _field + p.StartTime = _field return nil } -func (p *ListSpansOApiRequest) ReadField5(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiRequest) ReadField5(iprot thrift.TProtocol) error { - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { _field = &v } - p.PageSize = _field - return nil -} -func (p *ListSpansOApiRequest) ReadField6(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*common.OrderBy, 0, size) - values := make([]common.OrderBy, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.OrderBys = _field + p.EndTime = _field return nil } -func (p *ListSpansOApiRequest) ReadField7(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiRequest) ReadField6(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { + var _field int32 + if v, err := iprot.ReadI32(); err != nil { return err } else { - _field = &v + _field = v } - p.PageToken = _field + p.Limit = _field return nil } -func (p *ListSpansOApiRequest) ReadField8(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiRequest) ReadField8(iprot thrift.TProtocol) error { var _field *common.PlatformType if v, err := iprot.ReadString(); err != nil { @@ -4644,18 +4657,15 @@ func (p *ListSpansOApiRequest) ReadField8(iprot thrift.TProtocol) error { p.PlatformType = _field return nil } -func (p *ListSpansOApiRequest) ReadField9(iprot thrift.TProtocol) error { - - var _field *common.SpanListType - if v, err := iprot.ReadString(); err != nil { +func (p *SearchTraceTreeOApiRequest) ReadField10(iprot thrift.TProtocol) error { + _field := filter.NewFilterFields() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.SpanListType = _field + p.Filters = _field return nil } -func (p *ListSpansOApiRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -4664,9 +4674,9 @@ func (p *ListSpansOApiRequest) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *ListSpansOApiRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListSpansOApiRequest"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceTreeOApiRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -4674,10 +4684,6 @@ func (p *ListSpansOApiRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } if err = p.writeField3(oprot); err != nil { fieldId = 3 goto WriteFieldError @@ -4694,16 +4700,12 @@ func (p *ListSpansOApiRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 6 goto WriteFieldError } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } if err = p.writeField8(oprot); err != nil { fieldId = 8 goto WriteFieldError } - if err = p.writeField9(oprot); err != nil { - fieldId = 9 + if err = p.writeField10(oprot); err != nil { + fieldId = 10 goto WriteFieldError } if err = p.writeField255(oprot); err != nil { @@ -4728,15 +4730,17 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListSpansOApiRequest) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *SearchTraceTreeOApiRequest) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetWorkspaceID() { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.WorkspaceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -4744,31 +4748,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListSpansOApiRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("start_time", thrift.I64, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.StartTime); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ListSpansOApiRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("end_time", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.EndTime); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *SearchTraceTreeOApiRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetTraceID() { + if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.TraceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -4776,12 +4766,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ListSpansOApiRequest) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetFilters() { - if err = oprot.WriteFieldBegin("filters", thrift.STRUCT, 4); err != nil { +func (p *SearchTraceTreeOApiRequest) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetStartTime() { + if err = oprot.WriteFieldBegin("start_time", thrift.I64, 4); err != nil { goto WriteFieldBeginError } - if err := p.Filters.Write(oprot); err != nil { + if err := oprot.WriteI64(*p.StartTime); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4794,12 +4784,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *ListSpansOApiRequest) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetPageSize() { - if err = oprot.WriteFieldBegin("page_size", thrift.I32, 5); err != nil { +func (p *SearchTraceTreeOApiRequest) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetEndTime() { + if err = oprot.WriteFieldBegin("end_time", thrift.I64, 5); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(*p.PageSize); err != nil { + if err := oprot.WriteI64(*p.EndTime); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4812,25 +4802,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) } -func (p *ListSpansOApiRequest) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetOrderBys() { - if err = oprot.WriteFieldBegin("order_bys", thrift.LIST, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.OrderBys)); err != nil { - return err - } - for _, v := range p.OrderBys { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *SearchTraceTreeOApiRequest) writeField6(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("limit", thrift.I32, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(p.Limit); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -4838,25 +4818,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } -func (p *ListSpansOApiRequest) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetPageToken() { - if err = oprot.WriteFieldBegin("page_token", thrift.STRING, 7); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PageToken); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} -func (p *ListSpansOApiRequest) writeField8(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiRequest) writeField8(oprot thrift.TProtocol) (err error) { if p.IsSetPlatformType() { if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 8); err != nil { goto WriteFieldBeginError @@ -4874,12 +4836,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) } -func (p *ListSpansOApiRequest) writeField9(oprot thrift.TProtocol) (err error) { - if p.IsSetSpanListType() { - if err = oprot.WriteFieldBegin("span_list_type", thrift.STRING, 9); err != nil { +func (p *SearchTraceTreeOApiRequest) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetFilters() { + if err = oprot.WriteFieldBegin("filters", thrift.STRUCT, 10); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.SpanListType); err != nil { + if err := p.Filters.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4888,11 +4850,11 @@ func (p *ListSpansOApiRequest) writeField9(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) } -func (p *ListSpansOApiRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -4911,15 +4873,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListSpansOApiRequest) String() string { +func (p *SearchTraceTreeOApiRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ListSpansOApiRequest(%+v)", *p) + return fmt.Sprintf("SearchTraceTreeOApiRequest(%+v)", *p) } -func (p *ListSpansOApiRequest) DeepEqual(ano *ListSpansOApiRequest) bool { +func (p *SearchTraceTreeOApiRequest) DeepEqual(ano *SearchTraceTreeOApiRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -4928,28 +4890,22 @@ func (p *ListSpansOApiRequest) DeepEqual(ano *ListSpansOApiRequest) bool { if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.StartTime) { - return false - } - if !p.Field3DeepEqual(ano.EndTime) { - return false - } - if !p.Field4DeepEqual(ano.Filters) { + if !p.Field3DeepEqual(ano.TraceID) { return false } - if !p.Field5DeepEqual(ano.PageSize) { + if !p.Field4DeepEqual(ano.StartTime) { return false } - if !p.Field6DeepEqual(ano.OrderBys) { + if !p.Field5DeepEqual(ano.EndTime) { return false } - if !p.Field7DeepEqual(ano.PageToken) { + if !p.Field6DeepEqual(ano.Limit) { return false } if !p.Field8DeepEqual(ano.PlatformType) { return false } - if !p.Field9DeepEqual(ano.SpanListType) { + if !p.Field10DeepEqual(ano.Filters) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -4958,72 +4914,62 @@ func (p *ListSpansOApiRequest) DeepEqual(ano *ListSpansOApiRequest) bool { return true } -func (p *ListSpansOApiRequest) Field1DeepEqual(src int64) bool { +func (p *SearchTraceTreeOApiRequest) Field1DeepEqual(src *int64) bool { - if p.WorkspaceID != src { + if p.WorkspaceID == src { + return true + } else if p.WorkspaceID == nil || src == nil { return false } - return true -} -func (p *ListSpansOApiRequest) Field2DeepEqual(src int64) bool { - - if p.StartTime != src { + if *p.WorkspaceID != *src { return false } return true } -func (p *ListSpansOApiRequest) Field3DeepEqual(src int64) bool { +func (p *SearchTraceTreeOApiRequest) Field3DeepEqual(src *string) bool { - if p.EndTime != src { + if p.TraceID == src { + return true + } else if p.TraceID == nil || src == nil { return false } - return true -} -func (p *ListSpansOApiRequest) Field4DeepEqual(src *filter.FilterFields) bool { - - if !p.Filters.DeepEqual(src) { + if strings.Compare(*p.TraceID, *src) != 0 { return false } return true } -func (p *ListSpansOApiRequest) Field5DeepEqual(src *int32) bool { +func (p *SearchTraceTreeOApiRequest) Field4DeepEqual(src *int64) bool { - if p.PageSize == src { + if p.StartTime == src { return true - } else if p.PageSize == nil || src == nil { + } else if p.StartTime == nil || src == nil { return false } - if *p.PageSize != *src { + if *p.StartTime != *src { return false } return true } -func (p *ListSpansOApiRequest) Field6DeepEqual(src []*common.OrderBy) bool { +func (p *SearchTraceTreeOApiRequest) Field5DeepEqual(src *int64) bool { - if len(p.OrderBys) != len(src) { + if p.EndTime == src { + return true + } else if p.EndTime == nil || src == nil { return false } - for i, v := range p.OrderBys { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } + if *p.EndTime != *src { + return false } return true } -func (p *ListSpansOApiRequest) Field7DeepEqual(src *string) bool { +func (p *SearchTraceTreeOApiRequest) Field6DeepEqual(src int32) bool { - if p.PageToken == src { - return true - } else if p.PageToken == nil || src == nil { - return false - } - if strings.Compare(*p.PageToken, *src) != 0 { + if p.Limit != src { return false } return true } -func (p *ListSpansOApiRequest) Field8DeepEqual(src *common.PlatformType) bool { +func (p *SearchTraceTreeOApiRequest) Field8DeepEqual(src *common.PlatformType) bool { if p.PlatformType == src { return true @@ -5035,19 +4981,14 @@ func (p *ListSpansOApiRequest) Field8DeepEqual(src *common.PlatformType) bool { } return true } -func (p *ListSpansOApiRequest) Field9DeepEqual(src *common.SpanListType) bool { +func (p *SearchTraceTreeOApiRequest) Field10DeepEqual(src *filter.FilterFields) bool { - if p.SpanListType == src { - return true - } else if p.SpanListType == nil || src == nil { - return false - } - if strings.Compare(*p.SpanListType, *src) != 0 { + if !p.Filters.DeepEqual(src) { return false } return true } -func (p *ListSpansOApiRequest) Field255DeepEqual(src *base.Base) bool { +func (p *SearchTraceTreeOApiRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -5055,104 +4996,104 @@ func (p *ListSpansOApiRequest) Field255DeepEqual(src *base.Base) bool { return true } -type ListSpansOApiResponse struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty"` - Data *ListSpansOApiData `thrift:"data,3,optional" frugal:"3,optional,ListSpansOApiData" form:"data" json:"data,omitempty"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +type SearchTraceTreeOApiResponse struct { + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty"` + Data *SearchTraceOApiData `thrift:"data,3,optional" frugal:"3,optional,SearchTraceOApiData" form:"data" json:"data,omitempty"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewListSpansOApiResponse() *ListSpansOApiResponse { - return &ListSpansOApiResponse{} +func NewSearchTraceTreeOApiResponse() *SearchTraceTreeOApiResponse { + return &SearchTraceTreeOApiResponse{} } -func (p *ListSpansOApiResponse) InitDefault() { +func (p *SearchTraceTreeOApiResponse) InitDefault() { } -var ListSpansOApiResponse_Code_DEFAULT int32 +var SearchTraceTreeOApiResponse_Code_DEFAULT int32 -func (p *ListSpansOApiResponse) GetCode() (v int32) { +func (p *SearchTraceTreeOApiResponse) GetCode() (v int32) { if p == nil { return } if !p.IsSetCode() { - return ListSpansOApiResponse_Code_DEFAULT + return SearchTraceTreeOApiResponse_Code_DEFAULT } return *p.Code } -var ListSpansOApiResponse_Msg_DEFAULT string +var SearchTraceTreeOApiResponse_Msg_DEFAULT string -func (p *ListSpansOApiResponse) GetMsg() (v string) { +func (p *SearchTraceTreeOApiResponse) GetMsg() (v string) { if p == nil { return } if !p.IsSetMsg() { - return ListSpansOApiResponse_Msg_DEFAULT + return SearchTraceTreeOApiResponse_Msg_DEFAULT } return *p.Msg } -var ListSpansOApiResponse_Data_DEFAULT *ListSpansOApiData +var SearchTraceTreeOApiResponse_Data_DEFAULT *SearchTraceOApiData -func (p *ListSpansOApiResponse) GetData() (v *ListSpansOApiData) { +func (p *SearchTraceTreeOApiResponse) GetData() (v *SearchTraceOApiData) { if p == nil { return } if !p.IsSetData() { - return ListSpansOApiResponse_Data_DEFAULT + return SearchTraceTreeOApiResponse_Data_DEFAULT } return p.Data } -var ListSpansOApiResponse_BaseResp_DEFAULT *base.BaseResp +var SearchTraceTreeOApiResponse_BaseResp_DEFAULT *base.BaseResp -func (p *ListSpansOApiResponse) GetBaseResp() (v *base.BaseResp) { +func (p *SearchTraceTreeOApiResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return ListSpansOApiResponse_BaseResp_DEFAULT + return SearchTraceTreeOApiResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *ListSpansOApiResponse) SetCode(val *int32) { +func (p *SearchTraceTreeOApiResponse) SetCode(val *int32) { p.Code = val } -func (p *ListSpansOApiResponse) SetMsg(val *string) { +func (p *SearchTraceTreeOApiResponse) SetMsg(val *string) { p.Msg = val } -func (p *ListSpansOApiResponse) SetData(val *ListSpansOApiData) { +func (p *SearchTraceTreeOApiResponse) SetData(val *SearchTraceOApiData) { p.Data = val } -func (p *ListSpansOApiResponse) SetBaseResp(val *base.BaseResp) { +func (p *SearchTraceTreeOApiResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_ListSpansOApiResponse = map[int16]string{ +var fieldIDToName_SearchTraceTreeOApiResponse = map[int16]string{ 1: "code", 2: "msg", 3: "data", 255: "BaseResp", } -func (p *ListSpansOApiResponse) IsSetCode() bool { +func (p *SearchTraceTreeOApiResponse) IsSetCode() bool { return p.Code != nil } -func (p *ListSpansOApiResponse) IsSetMsg() bool { +func (p *SearchTraceTreeOApiResponse) IsSetMsg() bool { return p.Msg != nil } -func (p *ListSpansOApiResponse) IsSetData() bool { +func (p *SearchTraceTreeOApiResponse) IsSetData() bool { return p.Data != nil } -func (p *ListSpansOApiResponse) IsSetBaseResp() bool { +func (p *SearchTraceTreeOApiResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *ListSpansOApiResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -5221,7 +5162,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListSpansOApiResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceTreeOApiResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -5231,7 +5172,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ListSpansOApiResponse) ReadField1(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiResponse) ReadField1(iprot thrift.TProtocol) error { var _field *int32 if v, err := iprot.ReadI32(); err != nil { @@ -5242,7 +5183,7 @@ func (p *ListSpansOApiResponse) ReadField1(iprot thrift.TProtocol) error { p.Code = _field return nil } -func (p *ListSpansOApiResponse) ReadField2(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiResponse) ReadField2(iprot thrift.TProtocol) error { var _field *string if v, err := iprot.ReadString(); err != nil { @@ -5253,15 +5194,15 @@ func (p *ListSpansOApiResponse) ReadField2(iprot thrift.TProtocol) error { p.Msg = _field return nil } -func (p *ListSpansOApiResponse) ReadField3(iprot thrift.TProtocol) error { - _field := NewListSpansOApiData() +func (p *SearchTraceTreeOApiResponse) ReadField3(iprot thrift.TProtocol) error { + _field := NewSearchTraceOApiData() if err := _field.Read(iprot); err != nil { return err } p.Data = _field return nil } -func (p *ListSpansOApiResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -5270,9 +5211,9 @@ func (p *ListSpansOApiResponse) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *ListSpansOApiResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListSpansOApiResponse"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceTreeOApiResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -5310,7 +5251,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListSpansOApiResponse) writeField1(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiResponse) writeField1(oprot thrift.TProtocol) (err error) { if p.IsSetCode() { if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { goto WriteFieldBeginError @@ -5328,7 +5269,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListSpansOApiResponse) writeField2(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiResponse) writeField2(oprot thrift.TProtocol) (err error) { if p.IsSetMsg() { if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { goto WriteFieldBeginError @@ -5346,7 +5287,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListSpansOApiResponse) writeField3(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiResponse) writeField3(oprot thrift.TProtocol) (err error) { if p.IsSetData() { if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 3); err != nil { goto WriteFieldBeginError @@ -5364,7 +5305,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ListSpansOApiResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -5383,15 +5324,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListSpansOApiResponse) String() string { +func (p *SearchTraceTreeOApiResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ListSpansOApiResponse(%+v)", *p) + return fmt.Sprintf("SearchTraceTreeOApiResponse(%+v)", *p) } -func (p *ListSpansOApiResponse) DeepEqual(ano *ListSpansOApiResponse) bool { +func (p *SearchTraceTreeOApiResponse) DeepEqual(ano *SearchTraceTreeOApiResponse) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -5412,7 +5353,7 @@ func (p *ListSpansOApiResponse) DeepEqual(ano *ListSpansOApiResponse) bool { return true } -func (p *ListSpansOApiResponse) Field1DeepEqual(src *int32) bool { +func (p *SearchTraceTreeOApiResponse) Field1DeepEqual(src *int32) bool { if p.Code == src { return true @@ -5424,7 +5365,7 @@ func (p *ListSpansOApiResponse) Field1DeepEqual(src *int32) bool { } return true } -func (p *ListSpansOApiResponse) Field2DeepEqual(src *string) bool { +func (p *SearchTraceTreeOApiResponse) Field2DeepEqual(src *string) bool { if p.Msg == src { return true @@ -5436,14 +5377,14 @@ func (p *ListSpansOApiResponse) Field2DeepEqual(src *string) bool { } return true } -func (p *ListSpansOApiResponse) Field3DeepEqual(src *ListSpansOApiData) bool { +func (p *SearchTraceTreeOApiResponse) Field3DeepEqual(src *SearchTraceOApiData) bool { if !p.Data.DeepEqual(src) { return false } return true } -func (p *ListSpansOApiResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *SearchTraceTreeOApiResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -5451,61 +5392,56 @@ func (p *ListSpansOApiResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type ListSpansOApiData struct { - Spans []*span.OutputSpan `thrift:"spans,1,required" frugal:"1,required,list" form:"spans,required" json:"spans,required" query:"spans,required"` - NextPageToken string `thrift:"next_page_token,2,required" frugal:"2,required,string" form:"next_page_token,required" json:"next_page_token,required" query:"next_page_token,required"` - HasMore bool `thrift:"has_more,3,required" frugal:"3,required,bool" form:"has_more,required" json:"has_more,required" query:"has_more,required"` +type SearchTraceTreeOApiData struct { + Spans []*span.OutputSpan `thrift:"spans,1,required" frugal:"1,required,list" form:"spans,required" json:"spans,required" query:"spans,required"` + TracesAdvanceInfo *trace0.TraceAdvanceInfo `thrift:"traces_advance_info,2,optional" frugal:"2,optional,trace.TraceAdvanceInfo" form:"traces_advance_info" json:"traces_advance_info,omitempty" query:"traces_advance_info"` } -func NewListSpansOApiData() *ListSpansOApiData { - return &ListSpansOApiData{} +func NewSearchTraceTreeOApiData() *SearchTraceTreeOApiData { + return &SearchTraceTreeOApiData{} } -func (p *ListSpansOApiData) InitDefault() { +func (p *SearchTraceTreeOApiData) InitDefault() { } -func (p *ListSpansOApiData) GetSpans() (v []*span.OutputSpan) { +func (p *SearchTraceTreeOApiData) GetSpans() (v []*span.OutputSpan) { if p != nil { return p.Spans } return } -func (p *ListSpansOApiData) GetNextPageToken() (v string) { - if p != nil { - return p.NextPageToken - } - return -} +var SearchTraceTreeOApiData_TracesAdvanceInfo_DEFAULT *trace0.TraceAdvanceInfo -func (p *ListSpansOApiData) GetHasMore() (v bool) { - if p != nil { - return p.HasMore +func (p *SearchTraceTreeOApiData) GetTracesAdvanceInfo() (v *trace0.TraceAdvanceInfo) { + if p == nil { + return } - return + if !p.IsSetTracesAdvanceInfo() { + return SearchTraceTreeOApiData_TracesAdvanceInfo_DEFAULT + } + return p.TracesAdvanceInfo } -func (p *ListSpansOApiData) SetSpans(val []*span.OutputSpan) { +func (p *SearchTraceTreeOApiData) SetSpans(val []*span.OutputSpan) { p.Spans = val } -func (p *ListSpansOApiData) SetNextPageToken(val string) { - p.NextPageToken = val -} -func (p *ListSpansOApiData) SetHasMore(val bool) { - p.HasMore = val +func (p *SearchTraceTreeOApiData) SetTracesAdvanceInfo(val *trace0.TraceAdvanceInfo) { + p.TracesAdvanceInfo = val } -var fieldIDToName_ListSpansOApiData = map[int16]string{ +var fieldIDToName_SearchTraceTreeOApiData = map[int16]string{ 1: "spans", - 2: "next_page_token", - 3: "has_more", + 2: "traces_advance_info", } -func (p *ListSpansOApiData) Read(iprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiData) IsSetTracesAdvanceInfo() bool { + return p.TracesAdvanceInfo != nil +} + +func (p *SearchTraceTreeOApiData) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetSpans bool = false - var issetNextPageToken bool = false - var issetHasMore bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -5531,20 +5467,10 @@ func (p *ListSpansOApiData) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetNextPageToken = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.BOOL { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - issetHasMore = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -5565,23 +5491,13 @@ func (p *ListSpansOApiData) Read(iprot thrift.TProtocol) (err error) { fieldId = 1 goto RequiredFieldNotSetError } - - if !issetNextPageToken { - fieldId = 2 - goto RequiredFieldNotSetError - } - - if !issetHasMore { - fieldId = 3 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListSpansOApiData[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceTreeOApiData[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -5590,10 +5506,10 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListSpansOApiData[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_SearchTraceTreeOApiData[fieldId])) } -func (p *ListSpansOApiData) ReadField1(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeOApiData) ReadField1(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { return err @@ -5616,32 +5532,18 @@ func (p *ListSpansOApiData) ReadField1(iprot thrift.TProtocol) error { p.Spans = _field return nil } -func (p *ListSpansOApiData) ReadField2(iprot thrift.TProtocol) error { - - var _field string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } - p.NextPageToken = _field - return nil -} -func (p *ListSpansOApiData) ReadField3(iprot thrift.TProtocol) error { - - var _field bool - if v, err := iprot.ReadBool(); err != nil { +func (p *SearchTraceTreeOApiData) ReadField2(iprot thrift.TProtocol) error { + _field := trace0.NewTraceAdvanceInfo() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = v } - p.HasMore = _field + p.TracesAdvanceInfo = _field return nil } -func (p *ListSpansOApiData) Write(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiData) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListSpansOApiData"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceTreeOApiData"); err != nil { goto WriteStructBeginError } if p != nil { @@ -5653,10 +5555,6 @@ func (p *ListSpansOApiData) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -5675,7 +5573,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListSpansOApiData) writeField1(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeOApiData) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("spans", thrift.LIST, 1); err != nil { goto WriteFieldBeginError } @@ -5699,15 +5597,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListSpansOApiData) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("next_page_token", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.NextPageToken); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *SearchTraceTreeOApiData) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetTracesAdvanceInfo() { + if err = oprot.WriteFieldBegin("traces_advance_info", thrift.STRUCT, 2); err != nil { + goto WriteFieldBeginError + } + if err := p.TracesAdvanceInfo.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -5715,32 +5615,16 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListSpansOApiData) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("has_more", thrift.BOOL, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteBool(p.HasMore); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ListSpansOApiData) String() string { +func (p *SearchTraceTreeOApiData) String() string { if p == nil { return "" } - return fmt.Sprintf("ListSpansOApiData(%+v)", *p) + return fmt.Sprintf("SearchTraceTreeOApiData(%+v)", *p) } -func (p *ListSpansOApiData) DeepEqual(ano *ListSpansOApiData) bool { +func (p *SearchTraceTreeOApiData) DeepEqual(ano *SearchTraceTreeOApiData) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -5749,16 +5633,13 @@ func (p *ListSpansOApiData) DeepEqual(ano *ListSpansOApiData) bool { if !p.Field1DeepEqual(ano.Spans) { return false } - if !p.Field2DeepEqual(ano.NextPageToken) { - return false - } - if !p.Field3DeepEqual(ano.HasMore) { + if !p.Field2DeepEqual(ano.TracesAdvanceInfo) { return false } return true } -func (p *ListSpansOApiData) Field1DeepEqual(src []*span.OutputSpan) bool { +func (p *SearchTraceTreeOApiData) Field1DeepEqual(src []*span.OutputSpan) bool { if len(p.Spans) != len(src) { return false @@ -5771,133 +5652,218 @@ func (p *ListSpansOApiData) Field1DeepEqual(src []*span.OutputSpan) bool { } return true } -func (p *ListSpansOApiData) Field2DeepEqual(src string) bool { - - if strings.Compare(p.NextPageToken, src) != 0 { - return false - } - return true -} -func (p *ListSpansOApiData) Field3DeepEqual(src bool) bool { +func (p *SearchTraceTreeOApiData) Field2DeepEqual(src *trace0.TraceAdvanceInfo) bool { - if p.HasMore != src { + if !p.TracesAdvanceInfo.DeepEqual(src) { return false } return true } -type ListTracesOApiRequest struct { +type ListSpansOApiRequest struct { WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` // ms StartTime int64 `thrift:"start_time,2,required" frugal:"2,required,i64" json:"start_time" form:"start_time,required" ` // ms EndTime int64 `thrift:"end_time,3,required" frugal:"3,required,i64" json:"end_time" form:"end_time,required" ` - TraceIds []string `thrift:"trace_ids,4,required" frugal:"4,required,list" form:"trace_ids,required" json:"trace_ids,required"` + Filters *filter.FilterFields `thrift:"filters,4,optional" frugal:"4,optional,filter.FilterFields" form:"filters" json:"filters,omitempty"` + PageSize *int32 `thrift:"page_size,5,optional" frugal:"5,optional,i32" form:"page_size" json:"page_size,omitempty"` + OrderBys []*common.OrderBy `thrift:"order_bys,6,optional" frugal:"6,optional,list" form:"order_bys" json:"order_bys,omitempty"` + PageToken *string `thrift:"page_token,7,optional" frugal:"7,optional,string" form:"page_token" json:"page_token,omitempty"` PlatformType *common.PlatformType `thrift:"platform_type,8,optional" frugal:"8,optional,string" form:"platform_type" json:"platform_type,omitempty"` + SpanListType *common.SpanListType `thrift:"span_list_type,9,optional" frugal:"9,optional,string" form:"span_list_type" json:"span_list_type,omitempty"` Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewListTracesOApiRequest() *ListTracesOApiRequest { - return &ListTracesOApiRequest{} +func NewListSpansOApiRequest() *ListSpansOApiRequest { + return &ListSpansOApiRequest{} } -func (p *ListTracesOApiRequest) InitDefault() { +func (p *ListSpansOApiRequest) InitDefault() { } -func (p *ListTracesOApiRequest) GetWorkspaceID() (v int64) { +func (p *ListSpansOApiRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *ListTracesOApiRequest) GetStartTime() (v int64) { +func (p *ListSpansOApiRequest) GetStartTime() (v int64) { if p != nil { return p.StartTime } return } -func (p *ListTracesOApiRequest) GetEndTime() (v int64) { +func (p *ListSpansOApiRequest) GetEndTime() (v int64) { if p != nil { return p.EndTime } return } -func (p *ListTracesOApiRequest) GetTraceIds() (v []string) { - if p != nil { - return p.TraceIds - } - return -} - -var ListTracesOApiRequest_PlatformType_DEFAULT common.PlatformType +var ListSpansOApiRequest_Filters_DEFAULT *filter.FilterFields -func (p *ListTracesOApiRequest) GetPlatformType() (v common.PlatformType) { +func (p *ListSpansOApiRequest) GetFilters() (v *filter.FilterFields) { if p == nil { return } - if !p.IsSetPlatformType() { - return ListTracesOApiRequest_PlatformType_DEFAULT + if !p.IsSetFilters() { + return ListSpansOApiRequest_Filters_DEFAULT } - return *p.PlatformType + return p.Filters } -var ListTracesOApiRequest_Base_DEFAULT *base.Base +var ListSpansOApiRequest_PageSize_DEFAULT int32 -func (p *ListTracesOApiRequest) GetBase() (v *base.Base) { +func (p *ListSpansOApiRequest) GetPageSize() (v int32) { if p == nil { return } - if !p.IsSetBase() { - return ListTracesOApiRequest_Base_DEFAULT + if !p.IsSetPageSize() { + return ListSpansOApiRequest_PageSize_DEFAULT + } + return *p.PageSize +} + +var ListSpansOApiRequest_OrderBys_DEFAULT []*common.OrderBy + +func (p *ListSpansOApiRequest) GetOrderBys() (v []*common.OrderBy) { + if p == nil { + return + } + if !p.IsSetOrderBys() { + return ListSpansOApiRequest_OrderBys_DEFAULT + } + return p.OrderBys +} + +var ListSpansOApiRequest_PageToken_DEFAULT string + +func (p *ListSpansOApiRequest) GetPageToken() (v string) { + if p == nil { + return + } + if !p.IsSetPageToken() { + return ListSpansOApiRequest_PageToken_DEFAULT + } + return *p.PageToken +} + +var ListSpansOApiRequest_PlatformType_DEFAULT common.PlatformType + +func (p *ListSpansOApiRequest) GetPlatformType() (v common.PlatformType) { + if p == nil { + return + } + if !p.IsSetPlatformType() { + return ListSpansOApiRequest_PlatformType_DEFAULT + } + return *p.PlatformType +} + +var ListSpansOApiRequest_SpanListType_DEFAULT common.SpanListType + +func (p *ListSpansOApiRequest) GetSpanListType() (v common.SpanListType) { + if p == nil { + return + } + if !p.IsSetSpanListType() { + return ListSpansOApiRequest_SpanListType_DEFAULT + } + return *p.SpanListType +} + +var ListSpansOApiRequest_Base_DEFAULT *base.Base + +func (p *ListSpansOApiRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return ListSpansOApiRequest_Base_DEFAULT } return p.Base } -func (p *ListTracesOApiRequest) SetWorkspaceID(val int64) { +func (p *ListSpansOApiRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *ListTracesOApiRequest) SetStartTime(val int64) { +func (p *ListSpansOApiRequest) SetStartTime(val int64) { p.StartTime = val } -func (p *ListTracesOApiRequest) SetEndTime(val int64) { +func (p *ListSpansOApiRequest) SetEndTime(val int64) { p.EndTime = val } -func (p *ListTracesOApiRequest) SetTraceIds(val []string) { - p.TraceIds = val +func (p *ListSpansOApiRequest) SetFilters(val *filter.FilterFields) { + p.Filters = val } -func (p *ListTracesOApiRequest) SetPlatformType(val *common.PlatformType) { +func (p *ListSpansOApiRequest) SetPageSize(val *int32) { + p.PageSize = val +} +func (p *ListSpansOApiRequest) SetOrderBys(val []*common.OrderBy) { + p.OrderBys = val +} +func (p *ListSpansOApiRequest) SetPageToken(val *string) { + p.PageToken = val +} +func (p *ListSpansOApiRequest) SetPlatformType(val *common.PlatformType) { p.PlatformType = val } -func (p *ListTracesOApiRequest) SetBase(val *base.Base) { +func (p *ListSpansOApiRequest) SetSpanListType(val *common.SpanListType) { + p.SpanListType = val +} +func (p *ListSpansOApiRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ListTracesOApiRequest = map[int16]string{ +var fieldIDToName_ListSpansOApiRequest = map[int16]string{ 1: "workspace_id", 2: "start_time", 3: "end_time", - 4: "trace_ids", + 4: "filters", + 5: "page_size", + 6: "order_bys", + 7: "page_token", 8: "platform_type", + 9: "span_list_type", 255: "Base", } -func (p *ListTracesOApiRequest) IsSetPlatformType() bool { +func (p *ListSpansOApiRequest) IsSetFilters() bool { + return p.Filters != nil +} + +func (p *ListSpansOApiRequest) IsSetPageSize() bool { + return p.PageSize != nil +} + +func (p *ListSpansOApiRequest) IsSetOrderBys() bool { + return p.OrderBys != nil +} + +func (p *ListSpansOApiRequest) IsSetPageToken() bool { + return p.PageToken != nil +} + +func (p *ListSpansOApiRequest) IsSetPlatformType() bool { return p.PlatformType != nil } -func (p *ListTracesOApiRequest) IsSetBase() bool { +func (p *ListSpansOApiRequest) IsSetSpanListType() bool { + return p.SpanListType != nil +} + +func (p *ListSpansOApiRequest) IsSetBase() bool { return p.Base != nil } -func (p *ListTracesOApiRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false var issetStartTime bool = false var issetEndTime bool = false - var issetTraceIds bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -5941,11 +5907,34 @@ func (p *ListTracesOApiRequest) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 4: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } - issetTraceIds = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.I32 { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.LIST { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.STRING { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -5957,6 +5946,14 @@ func (p *ListTracesOApiRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 9: + if fieldTypeId == thrift.STRING { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -5992,18 +5989,13 @@ func (p *ListTracesOApiRequest) Read(iprot thrift.TProtocol) (err error) { fieldId = 3 goto RequiredFieldNotSetError } - - if !issetTraceIds { - fieldId = 4 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListTracesOApiRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListSpansOApiRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -6012,10 +6004,10 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListTracesOApiRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListSpansOApiRequest[fieldId])) } -func (p *ListTracesOApiRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *ListSpansOApiRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -6026,7 +6018,7 @@ func (p *ListTracesOApiRequest) ReadField1(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *ListTracesOApiRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *ListSpansOApiRequest) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -6037,7 +6029,7 @@ func (p *ListTracesOApiRequest) ReadField2(iprot thrift.TProtocol) error { p.StartTime = _field return nil } -func (p *ListTracesOApiRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *ListSpansOApiRequest) ReadField3(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -6048,19 +6040,38 @@ func (p *ListTracesOApiRequest) ReadField3(iprot thrift.TProtocol) error { p.EndTime = _field return nil } -func (p *ListTracesOApiRequest) ReadField4(iprot thrift.TProtocol) error { +func (p *ListSpansOApiRequest) ReadField4(iprot thrift.TProtocol) error { + _field := filter.NewFilterFields() + if err := _field.Read(iprot); err != nil { + return err + } + p.Filters = _field + return nil +} +func (p *ListSpansOApiRequest) ReadField5(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.PageSize = _field + return nil +} +func (p *ListSpansOApiRequest) ReadField6(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { return err } - _field := make([]string, 0, size) + _field := make([]*common.OrderBy, 0, size) + values := make([]common.OrderBy, size) for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _elem string - if v, err := iprot.ReadString(); err != nil { + if err := _elem.Read(iprot); err != nil { return err - } else { - _elem = v } _field = append(_field, _elem) @@ -6068,10 +6079,21 @@ func (p *ListTracesOApiRequest) ReadField4(iprot thrift.TProtocol) error { if err := iprot.ReadListEnd(); err != nil { return err } - p.TraceIds = _field + p.OrderBys = _field return nil } -func (p *ListTracesOApiRequest) ReadField8(iprot thrift.TProtocol) error { +func (p *ListSpansOApiRequest) ReadField7(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PageToken = _field + return nil +} +func (p *ListSpansOApiRequest) ReadField8(iprot thrift.TProtocol) error { var _field *common.PlatformType if v, err := iprot.ReadString(); err != nil { @@ -6082,7 +6104,18 @@ func (p *ListTracesOApiRequest) ReadField8(iprot thrift.TProtocol) error { p.PlatformType = _field return nil } -func (p *ListTracesOApiRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *ListSpansOApiRequest) ReadField9(iprot thrift.TProtocol) error { + + var _field *common.SpanListType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.SpanListType = _field + return nil +} +func (p *ListSpansOApiRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -6091,9 +6124,9 @@ func (p *ListTracesOApiRequest) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *ListTracesOApiRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListTracesOApiRequest"); err != nil { + if err = oprot.WriteStructBegin("ListSpansOApiRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -6113,10 +6146,26 @@ func (p *ListTracesOApiRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 4 goto WriteFieldError } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } if err = p.writeField8(oprot); err != nil { fieldId = 8 goto WriteFieldError } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -6139,7 +6188,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListTracesOApiRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -6155,7 +6204,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListTracesOApiRequest) writeField2(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiRequest) writeField2(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("start_time", thrift.I64, 2); err != nil { goto WriteFieldBeginError } @@ -6171,7 +6220,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListTracesOApiRequest) writeField3(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiRequest) writeField3(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("end_time", thrift.I64, 3); err != nil { goto WriteFieldBeginError } @@ -6187,31 +6236,87 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ListTracesOApiRequest) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("trace_ids", thrift.LIST, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRING, len(p.TraceIds)); err != nil { - return err +func (p *ListSpansOApiRequest) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetFilters() { + if err = oprot.WriteFieldBegin("filters", thrift.STRUCT, 4); err != nil { + goto WriteFieldBeginError + } + if err := p.Filters.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - for _, v := range p.TraceIds { - if err := oprot.WriteString(v); err != nil { + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ListSpansOApiRequest) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetPageSize() { + if err = oprot.WriteFieldBegin("page_size", thrift.I32, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.PageSize); err != nil { return err } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - if err := oprot.WriteListEnd(); err != nil { - return err + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ListSpansOApiRequest) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetOrderBys() { + if err = oprot.WriteFieldBegin("order_bys", thrift.LIST, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.OrderBys)); err != nil { + return err + } + for _, v := range p.OrderBys { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *ListSpansOApiRequest) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetPageToken() { + if err = oprot.WriteFieldBegin("page_token", thrift.STRING, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PageToken); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) } -func (p *ListTracesOApiRequest) writeField8(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiRequest) writeField8(oprot thrift.TProtocol) (err error) { if p.IsSetPlatformType() { if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 8); err != nil { goto WriteFieldBeginError @@ -6229,7 +6334,25 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) } -func (p *ListTracesOApiRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiRequest) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetSpanListType() { + if err = oprot.WriteFieldBegin("span_list_type", thrift.STRING, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.SpanListType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} +func (p *ListSpansOApiRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -6248,15 +6371,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListTracesOApiRequest) String() string { +func (p *ListSpansOApiRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ListTracesOApiRequest(%+v)", *p) + return fmt.Sprintf("ListSpansOApiRequest(%+v)", *p) } -func (p *ListTracesOApiRequest) DeepEqual(ano *ListTracesOApiRequest) bool { +func (p *ListSpansOApiRequest) DeepEqual(ano *ListSpansOApiRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -6271,53 +6394,96 @@ func (p *ListTracesOApiRequest) DeepEqual(ano *ListTracesOApiRequest) bool { if !p.Field3DeepEqual(ano.EndTime) { return false } - if !p.Field4DeepEqual(ano.TraceIds) { + if !p.Field4DeepEqual(ano.Filters) { + return false + } + if !p.Field5DeepEqual(ano.PageSize) { + return false + } + if !p.Field6DeepEqual(ano.OrderBys) { + return false + } + if !p.Field7DeepEqual(ano.PageToken) { return false } if !p.Field8DeepEqual(ano.PlatformType) { return false } + if !p.Field9DeepEqual(ano.SpanListType) { + return false + } if !p.Field255DeepEqual(ano.Base) { return false } return true } -func (p *ListTracesOApiRequest) Field1DeepEqual(src int64) bool { +func (p *ListSpansOApiRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *ListTracesOApiRequest) Field2DeepEqual(src int64) bool { +func (p *ListSpansOApiRequest) Field2DeepEqual(src int64) bool { if p.StartTime != src { return false } return true } -func (p *ListTracesOApiRequest) Field3DeepEqual(src int64) bool { +func (p *ListSpansOApiRequest) Field3DeepEqual(src int64) bool { if p.EndTime != src { return false } return true } -func (p *ListTracesOApiRequest) Field4DeepEqual(src []string) bool { +func (p *ListSpansOApiRequest) Field4DeepEqual(src *filter.FilterFields) bool { - if len(p.TraceIds) != len(src) { + if !p.Filters.DeepEqual(src) { return false } - for i, v := range p.TraceIds { + return true +} +func (p *ListSpansOApiRequest) Field5DeepEqual(src *int32) bool { + + if p.PageSize == src { + return true + } else if p.PageSize == nil || src == nil { + return false + } + if *p.PageSize != *src { + return false + } + return true +} +func (p *ListSpansOApiRequest) Field6DeepEqual(src []*common.OrderBy) bool { + + if len(p.OrderBys) != len(src) { + return false + } + for i, v := range p.OrderBys { _src := src[i] - if strings.Compare(v, _src) != 0 { + if !v.DeepEqual(_src) { return false } } return true } -func (p *ListTracesOApiRequest) Field8DeepEqual(src *common.PlatformType) bool { +func (p *ListSpansOApiRequest) Field7DeepEqual(src *string) bool { + + if p.PageToken == src { + return true + } else if p.PageToken == nil || src == nil { + return false + } + if strings.Compare(*p.PageToken, *src) != 0 { + return false + } + return true +} +func (p *ListSpansOApiRequest) Field8DeepEqual(src *common.PlatformType) bool { if p.PlatformType == src { return true @@ -6329,7 +6495,19 @@ func (p *ListTracesOApiRequest) Field8DeepEqual(src *common.PlatformType) bool { } return true } -func (p *ListTracesOApiRequest) Field255DeepEqual(src *base.Base) bool { +func (p *ListSpansOApiRequest) Field9DeepEqual(src *common.SpanListType) bool { + + if p.SpanListType == src { + return true + } else if p.SpanListType == nil || src == nil { + return false + } + if strings.Compare(*p.SpanListType, *src) != 0 { + return false + } + return true +} +func (p *ListSpansOApiRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -6337,104 +6515,104 @@ func (p *ListTracesOApiRequest) Field255DeepEqual(src *base.Base) bool { return true } -type ListTracesOApiResponse struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty"` - Data *ListTracesData `thrift:"data,3,optional" frugal:"3,optional,ListTracesData" form:"data" json:"data,omitempty"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +type ListSpansOApiResponse struct { + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty"` + Data *ListSpansOApiData `thrift:"data,3,optional" frugal:"3,optional,ListSpansOApiData" form:"data" json:"data,omitempty"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewListTracesOApiResponse() *ListTracesOApiResponse { - return &ListTracesOApiResponse{} +func NewListSpansOApiResponse() *ListSpansOApiResponse { + return &ListSpansOApiResponse{} } -func (p *ListTracesOApiResponse) InitDefault() { +func (p *ListSpansOApiResponse) InitDefault() { } -var ListTracesOApiResponse_Code_DEFAULT int32 +var ListSpansOApiResponse_Code_DEFAULT int32 -func (p *ListTracesOApiResponse) GetCode() (v int32) { +func (p *ListSpansOApiResponse) GetCode() (v int32) { if p == nil { return } if !p.IsSetCode() { - return ListTracesOApiResponse_Code_DEFAULT + return ListSpansOApiResponse_Code_DEFAULT } return *p.Code } -var ListTracesOApiResponse_Msg_DEFAULT string +var ListSpansOApiResponse_Msg_DEFAULT string -func (p *ListTracesOApiResponse) GetMsg() (v string) { +func (p *ListSpansOApiResponse) GetMsg() (v string) { if p == nil { return } if !p.IsSetMsg() { - return ListTracesOApiResponse_Msg_DEFAULT + return ListSpansOApiResponse_Msg_DEFAULT } return *p.Msg } -var ListTracesOApiResponse_Data_DEFAULT *ListTracesData +var ListSpansOApiResponse_Data_DEFAULT *ListSpansOApiData -func (p *ListTracesOApiResponse) GetData() (v *ListTracesData) { +func (p *ListSpansOApiResponse) GetData() (v *ListSpansOApiData) { if p == nil { return } if !p.IsSetData() { - return ListTracesOApiResponse_Data_DEFAULT + return ListSpansOApiResponse_Data_DEFAULT } return p.Data } -var ListTracesOApiResponse_BaseResp_DEFAULT *base.BaseResp +var ListSpansOApiResponse_BaseResp_DEFAULT *base.BaseResp -func (p *ListTracesOApiResponse) GetBaseResp() (v *base.BaseResp) { +func (p *ListSpansOApiResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return ListTracesOApiResponse_BaseResp_DEFAULT + return ListSpansOApiResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *ListTracesOApiResponse) SetCode(val *int32) { +func (p *ListSpansOApiResponse) SetCode(val *int32) { p.Code = val } -func (p *ListTracesOApiResponse) SetMsg(val *string) { +func (p *ListSpansOApiResponse) SetMsg(val *string) { p.Msg = val } -func (p *ListTracesOApiResponse) SetData(val *ListTracesData) { +func (p *ListSpansOApiResponse) SetData(val *ListSpansOApiData) { p.Data = val } -func (p *ListTracesOApiResponse) SetBaseResp(val *base.BaseResp) { +func (p *ListSpansOApiResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_ListTracesOApiResponse = map[int16]string{ +var fieldIDToName_ListSpansOApiResponse = map[int16]string{ 1: "code", 2: "msg", 3: "data", 255: "BaseResp", } -func (p *ListTracesOApiResponse) IsSetCode() bool { +func (p *ListSpansOApiResponse) IsSetCode() bool { return p.Code != nil } -func (p *ListTracesOApiResponse) IsSetMsg() bool { +func (p *ListSpansOApiResponse) IsSetMsg() bool { return p.Msg != nil } -func (p *ListTracesOApiResponse) IsSetData() bool { +func (p *ListSpansOApiResponse) IsSetData() bool { return p.Data != nil } -func (p *ListTracesOApiResponse) IsSetBaseResp() bool { +func (p *ListSpansOApiResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *ListTracesOApiResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -6503,7 +6681,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListTracesOApiResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListSpansOApiResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -6513,7 +6691,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ListTracesOApiResponse) ReadField1(iprot thrift.TProtocol) error { +func (p *ListSpansOApiResponse) ReadField1(iprot thrift.TProtocol) error { var _field *int32 if v, err := iprot.ReadI32(); err != nil { @@ -6524,7 +6702,7 @@ func (p *ListTracesOApiResponse) ReadField1(iprot thrift.TProtocol) error { p.Code = _field return nil } -func (p *ListTracesOApiResponse) ReadField2(iprot thrift.TProtocol) error { +func (p *ListSpansOApiResponse) ReadField2(iprot thrift.TProtocol) error { var _field *string if v, err := iprot.ReadString(); err != nil { @@ -6535,15 +6713,15 @@ func (p *ListTracesOApiResponse) ReadField2(iprot thrift.TProtocol) error { p.Msg = _field return nil } -func (p *ListTracesOApiResponse) ReadField3(iprot thrift.TProtocol) error { - _field := NewListTracesData() - if err := _field.Read(iprot); err != nil { +func (p *ListSpansOApiResponse) ReadField3(iprot thrift.TProtocol) error { + _field := NewListSpansOApiData() + if err := _field.Read(iprot); err != nil { return err } p.Data = _field return nil } -func (p *ListTracesOApiResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *ListSpansOApiResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -6552,9 +6730,9 @@ func (p *ListTracesOApiResponse) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *ListTracesOApiResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListTracesOApiResponse"); err != nil { + if err = oprot.WriteStructBegin("ListSpansOApiResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -6592,7 +6770,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListTracesOApiResponse) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiResponse) writeField1(oprot thrift.TProtocol) (err error) { if p.IsSetCode() { if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { goto WriteFieldBeginError @@ -6610,7 +6788,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListTracesOApiResponse) writeField2(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiResponse) writeField2(oprot thrift.TProtocol) (err error) { if p.IsSetMsg() { if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { goto WriteFieldBeginError @@ -6628,7 +6806,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListTracesOApiResponse) writeField3(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiResponse) writeField3(oprot thrift.TProtocol) (err error) { if p.IsSetData() { if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 3); err != nil { goto WriteFieldBeginError @@ -6646,7 +6824,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ListTracesOApiResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ListSpansOApiResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -6665,15 +6843,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListTracesOApiResponse) String() string { +func (p *ListSpansOApiResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ListTracesOApiResponse(%+v)", *p) + return fmt.Sprintf("ListSpansOApiResponse(%+v)", *p) } -func (p *ListTracesOApiResponse) DeepEqual(ano *ListTracesOApiResponse) bool { +func (p *ListSpansOApiResponse) DeepEqual(ano *ListSpansOApiResponse) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -6694,7 +6872,7 @@ func (p *ListTracesOApiResponse) DeepEqual(ano *ListTracesOApiResponse) bool { return true } -func (p *ListTracesOApiResponse) Field1DeepEqual(src *int32) bool { +func (p *ListSpansOApiResponse) Field1DeepEqual(src *int32) bool { if p.Code == src { return true @@ -6706,7 +6884,7 @@ func (p *ListTracesOApiResponse) Field1DeepEqual(src *int32) bool { } return true } -func (p *ListTracesOApiResponse) Field2DeepEqual(src *string) bool { +func (p *ListSpansOApiResponse) Field2DeepEqual(src *string) bool { if p.Msg == src { return true @@ -6718,14 +6896,14 @@ func (p *ListTracesOApiResponse) Field2DeepEqual(src *string) bool { } return true } -func (p *ListTracesOApiResponse) Field3DeepEqual(src *ListTracesData) bool { +func (p *ListSpansOApiResponse) Field3DeepEqual(src *ListSpansOApiData) bool { if !p.Data.DeepEqual(src) { return false } return true } -func (p *ListTracesOApiResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *ListSpansOApiResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -6733,35 +6911,61 @@ func (p *ListTracesOApiResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type ListTracesData struct { - Traces []*trace.Trace `thrift:"traces,1,required" frugal:"1,required,list" form:"traces,required" json:"traces,required" query:"traces,required"` +type ListSpansOApiData struct { + Spans []*span.OutputSpan `thrift:"spans,1,required" frugal:"1,required,list" form:"spans,required" json:"spans,required" query:"spans,required"` + NextPageToken string `thrift:"next_page_token,2,required" frugal:"2,required,string" form:"next_page_token,required" json:"next_page_token,required" query:"next_page_token,required"` + HasMore bool `thrift:"has_more,3,required" frugal:"3,required,bool" form:"has_more,required" json:"has_more,required" query:"has_more,required"` } -func NewListTracesData() *ListTracesData { - return &ListTracesData{} +func NewListSpansOApiData() *ListSpansOApiData { + return &ListSpansOApiData{} } -func (p *ListTracesData) InitDefault() { +func (p *ListSpansOApiData) InitDefault() { } -func (p *ListTracesData) GetTraces() (v []*trace.Trace) { +func (p *ListSpansOApiData) GetSpans() (v []*span.OutputSpan) { if p != nil { - return p.Traces + return p.Spans } return } -func (p *ListTracesData) SetTraces(val []*trace.Trace) { - p.Traces = val + +func (p *ListSpansOApiData) GetNextPageToken() (v string) { + if p != nil { + return p.NextPageToken + } + return } -var fieldIDToName_ListTracesData = map[int16]string{ - 1: "traces", +func (p *ListSpansOApiData) GetHasMore() (v bool) { + if p != nil { + return p.HasMore + } + return +} +func (p *ListSpansOApiData) SetSpans(val []*span.OutputSpan) { + p.Spans = val +} +func (p *ListSpansOApiData) SetNextPageToken(val string) { + p.NextPageToken = val +} +func (p *ListSpansOApiData) SetHasMore(val bool) { + p.HasMore = val } -func (p *ListTracesData) Read(iprot thrift.TProtocol) (err error) { +var fieldIDToName_ListSpansOApiData = map[int16]string{ + 1: "spans", + 2: "next_page_token", + 3: "has_more", +} + +func (p *ListSpansOApiData) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetTraces bool = false + var issetSpans bool = false + var issetNextPageToken bool = false + var issetHasMore bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -6782,7 +6986,25 @@ func (p *ListTracesData) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetTraces = true + issetSpans = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetNextPageToken = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + issetHasMore = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -6799,17 +7021,27 @@ func (p *ListTracesData) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetTraces { + if !issetSpans { fieldId = 1 goto RequiredFieldNotSetError } + + if !issetNextPageToken { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetHasMore { + fieldId = 3 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListTracesData[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListSpansOApiData[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -6818,16 +7050,16 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListTracesData[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListSpansOApiData[fieldId])) } -func (p *ListTracesData) ReadField1(iprot thrift.TProtocol) error { +func (p *ListSpansOApiData) ReadField1(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { return err } - _field := make([]*trace.Trace, 0, size) - values := make([]trace.Trace, size) + _field := make([]*span.OutputSpan, 0, size) + values := make([]span.OutputSpan, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -6841,13 +7073,35 @@ func (p *ListTracesData) ReadField1(iprot thrift.TProtocol) error { if err := iprot.ReadListEnd(); err != nil { return err } - p.Traces = _field + p.Spans = _field + return nil +} +func (p *ListSpansOApiData) ReadField2(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.NextPageToken = _field return nil } +func (p *ListSpansOApiData) ReadField3(iprot thrift.TProtocol) error { -func (p *ListTracesData) Write(oprot thrift.TProtocol) (err error) { + var _field bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = v + } + p.HasMore = _field + return nil +} + +func (p *ListSpansOApiData) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListTracesData"); err != nil { + if err = oprot.WriteStructBegin("ListSpansOApiData"); err != nil { goto WriteStructBeginError } if p != nil { @@ -6855,6 +7109,14 @@ func (p *ListTracesData) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -6873,14 +7135,14 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListTracesData) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("traces", thrift.LIST, 1); err != nil { +func (p *ListSpansOApiData) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("spans", thrift.LIST, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Traces)); err != nil { + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Spans)); err != nil { return err } - for _, v := range p.Traces { + for _, v := range p.Spans { if err := v.Write(oprot); err != nil { return err } @@ -6897,33 +7159,71 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } +func (p *ListSpansOApiData) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("next_page_token", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.NextPageToken); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ListSpansOApiData) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("has_more", thrift.BOOL, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(p.HasMore); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} -func (p *ListTracesData) String() string { +func (p *ListSpansOApiData) String() string { if p == nil { return "" } - return fmt.Sprintf("ListTracesData(%+v)", *p) + return fmt.Sprintf("ListSpansOApiData(%+v)", *p) } -func (p *ListTracesData) DeepEqual(ano *ListTracesData) bool { +func (p *ListSpansOApiData) DeepEqual(ano *ListSpansOApiData) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Traces) { + if !p.Field1DeepEqual(ano.Spans) { + return false + } + if !p.Field2DeepEqual(ano.NextPageToken) { + return false + } + if !p.Field3DeepEqual(ano.HasMore) { return false } return true } -func (p *ListTracesData) Field1DeepEqual(src []*trace.Trace) bool { +func (p *ListSpansOApiData) Field1DeepEqual(src []*span.OutputSpan) bool { - if len(p.Traces) != len(src) { + if len(p.Spans) != len(src) { return false } - for i, v := range p.Traces { + for i, v := range p.Spans { _src := src[i] if !v.DeepEqual(_src) { return false @@ -6931,248 +7231,1564 @@ func (p *ListTracesData) Field1DeepEqual(src []*trace.Trace) bool { } return true } +func (p *ListSpansOApiData) Field2DeepEqual(src string) bool { -type OpenAPIService interface { - IngestTraces(ctx context.Context, req *IngestTracesRequest) (r *IngestTracesResponse, err error) - - OtelIngestTraces(ctx context.Context, req *OtelIngestTracesRequest) (r *OtelIngestTracesResponse, err error) - - SearchTraceOApi(ctx context.Context, req *SearchTraceOApiRequest) (r *SearchTraceOApiResponse, err error) - - ListSpansOApi(ctx context.Context, req *ListSpansOApiRequest) (r *ListSpansOApiResponse, err error) - - ListTracesOApi(ctx context.Context, req *ListTracesOApiRequest) (r *ListTracesOApiResponse, err error) - - CreateAnnotation(ctx context.Context, req *CreateAnnotationRequest) (r *CreateAnnotationResponse, err error) - - DeleteAnnotation(ctx context.Context, req *DeleteAnnotationRequest) (r *DeleteAnnotationResponse, err error) -} - -type OpenAPIServiceClient struct { - c thrift.TClient -} - -func NewOpenAPIServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *OpenAPIServiceClient { - return &OpenAPIServiceClient{ - c: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)), + if strings.Compare(p.NextPageToken, src) != 0 { + return false } + return true } +func (p *ListSpansOApiData) Field3DeepEqual(src bool) bool { -func NewOpenAPIServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *OpenAPIServiceClient { - return &OpenAPIServiceClient{ - c: thrift.NewTStandardClient(iprot, oprot), + if p.HasMore != src { + return false } + return true } -func NewOpenAPIServiceClient(c thrift.TClient) *OpenAPIServiceClient { - return &OpenAPIServiceClient{ - c: c, - } +type ListTracesOApiRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + // ms + StartTime int64 `thrift:"start_time,2,required" frugal:"2,required,i64" json:"start_time" form:"start_time,required" ` + // ms + EndTime int64 `thrift:"end_time,3,required" frugal:"3,required,i64" json:"end_time" form:"end_time,required" ` + TraceIds []string `thrift:"trace_ids,4,required" frugal:"4,required,list" form:"trace_ids,required" json:"trace_ids,required"` + PlatformType *common.PlatformType `thrift:"platform_type,8,optional" frugal:"8,optional,string" form:"platform_type" json:"platform_type,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func (p *OpenAPIServiceClient) Client_() thrift.TClient { - return p.c +func NewListTracesOApiRequest() *ListTracesOApiRequest { + return &ListTracesOApiRequest{} } -func (p *OpenAPIServiceClient) IngestTraces(ctx context.Context, req *IngestTracesRequest) (r *IngestTracesResponse, err error) { - var _args OpenAPIServiceIngestTracesArgs - _args.Req = req - var _result OpenAPIServiceIngestTracesResult - if err = p.Client_().Call(ctx, "IngestTraces", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil +func (p *ListTracesOApiRequest) InitDefault() { } -func (p *OpenAPIServiceClient) OtelIngestTraces(ctx context.Context, req *OtelIngestTracesRequest) (r *OtelIngestTracesResponse, err error) { - var _args OpenAPIServiceOtelIngestTracesArgs - _args.Req = req - var _result OpenAPIServiceOtelIngestTracesResult - if err = p.Client_().Call(ctx, "OtelIngestTraces", &_args, &_result); err != nil { - return + +func (p *ListTracesOApiRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID } - return _result.GetSuccess(), nil + return } -func (p *OpenAPIServiceClient) SearchTraceOApi(ctx context.Context, req *SearchTraceOApiRequest) (r *SearchTraceOApiResponse, err error) { - var _args OpenAPIServiceSearchTraceOApiArgs - _args.Req = req - var _result OpenAPIServiceSearchTraceOApiResult - if err = p.Client_().Call(ctx, "SearchTraceOApi", &_args, &_result); err != nil { - return + +func (p *ListTracesOApiRequest) GetStartTime() (v int64) { + if p != nil { + return p.StartTime } - return _result.GetSuccess(), nil + return } -func (p *OpenAPIServiceClient) ListSpansOApi(ctx context.Context, req *ListSpansOApiRequest) (r *ListSpansOApiResponse, err error) { - var _args OpenAPIServiceListSpansOApiArgs - _args.Req = req - var _result OpenAPIServiceListSpansOApiResult - if err = p.Client_().Call(ctx, "ListSpansOApi", &_args, &_result); err != nil { - return + +func (p *ListTracesOApiRequest) GetEndTime() (v int64) { + if p != nil { + return p.EndTime } - return _result.GetSuccess(), nil + return } -func (p *OpenAPIServiceClient) ListTracesOApi(ctx context.Context, req *ListTracesOApiRequest) (r *ListTracesOApiResponse, err error) { - var _args OpenAPIServiceListTracesOApiArgs - _args.Req = req - var _result OpenAPIServiceListTracesOApiResult - if err = p.Client_().Call(ctx, "ListTracesOApi", &_args, &_result); err != nil { - return + +func (p *ListTracesOApiRequest) GetTraceIds() (v []string) { + if p != nil { + return p.TraceIds } - return _result.GetSuccess(), nil + return } -func (p *OpenAPIServiceClient) CreateAnnotation(ctx context.Context, req *CreateAnnotationRequest) (r *CreateAnnotationResponse, err error) { - var _args OpenAPIServiceCreateAnnotationArgs - _args.Req = req - var _result OpenAPIServiceCreateAnnotationResult - if err = p.Client_().Call(ctx, "CreateAnnotation", &_args, &_result); err != nil { + +var ListTracesOApiRequest_PlatformType_DEFAULT common.PlatformType + +func (p *ListTracesOApiRequest) GetPlatformType() (v common.PlatformType) { + if p == nil { return } - return _result.GetSuccess(), nil + if !p.IsSetPlatformType() { + return ListTracesOApiRequest_PlatformType_DEFAULT + } + return *p.PlatformType } -func (p *OpenAPIServiceClient) DeleteAnnotation(ctx context.Context, req *DeleteAnnotationRequest) (r *DeleteAnnotationResponse, err error) { - var _args OpenAPIServiceDeleteAnnotationArgs - _args.Req = req - var _result OpenAPIServiceDeleteAnnotationResult - if err = p.Client_().Call(ctx, "DeleteAnnotation", &_args, &_result); err != nil { + +var ListTracesOApiRequest_Base_DEFAULT *base.Base + +func (p *ListTracesOApiRequest) GetBase() (v *base.Base) { + if p == nil { return } - return _result.GetSuccess(), nil + if !p.IsSetBase() { + return ListTracesOApiRequest_Base_DEFAULT + } + return p.Base } - -type OpenAPIServiceProcessor struct { - processorMap map[string]thrift.TProcessorFunction - handler OpenAPIService +func (p *ListTracesOApiRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val } - -func (p *OpenAPIServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) { - p.processorMap[key] = processor +func (p *ListTracesOApiRequest) SetStartTime(val int64) { + p.StartTime = val } - -func (p *OpenAPIServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) { - processor, ok = p.processorMap[key] - return processor, ok +func (p *ListTracesOApiRequest) SetEndTime(val int64) { + p.EndTime = val } - -func (p *OpenAPIServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction { - return p.processorMap +func (p *ListTracesOApiRequest) SetTraceIds(val []string) { + p.TraceIds = val } - -func NewOpenAPIServiceProcessor(handler OpenAPIService) *OpenAPIServiceProcessor { - self := &OpenAPIServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)} - self.AddToProcessorMap("IngestTraces", &openAPIServiceProcessorIngestTraces{handler: handler}) - self.AddToProcessorMap("OtelIngestTraces", &openAPIServiceProcessorOtelIngestTraces{handler: handler}) - self.AddToProcessorMap("SearchTraceOApi", &openAPIServiceProcessorSearchTraceOApi{handler: handler}) - self.AddToProcessorMap("ListSpansOApi", &openAPIServiceProcessorListSpansOApi{handler: handler}) - self.AddToProcessorMap("ListTracesOApi", &openAPIServiceProcessorListTracesOApi{handler: handler}) - self.AddToProcessorMap("CreateAnnotation", &openAPIServiceProcessorCreateAnnotation{handler: handler}) - self.AddToProcessorMap("DeleteAnnotation", &openAPIServiceProcessorDeleteAnnotation{handler: handler}) - return self +func (p *ListTracesOApiRequest) SetPlatformType(val *common.PlatformType) { + p.PlatformType = val } -func (p *OpenAPIServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - name, _, seqId, err := iprot.ReadMessageBegin() - if err != nil { - return false, err - } - if processor, ok := p.GetProcessorFunction(name); ok { - return processor.Process(ctx, seqId, iprot, oprot) - } - iprot.Skip(thrift.STRUCT) - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, "Unknown function "+name) - oprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, x +func (p *ListTracesOApiRequest) SetBase(val *base.Base) { + p.Base = val } -type openAPIServiceProcessorIngestTraces struct { - handler OpenAPIService +var fieldIDToName_ListTracesOApiRequest = map[int16]string{ + 1: "workspace_id", + 2: "start_time", + 3: "end_time", + 4: "trace_ids", + 8: "platform_type", + 255: "Base", } -func (p *openAPIServiceProcessorIngestTraces) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := OpenAPIServiceIngestTracesArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("IngestTraces", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } - - iprot.ReadMessageEnd() - var err2 error - result := OpenAPIServiceIngestTracesResult{} - var retval *IngestTracesResponse - if retval, err2 = p.handler.IngestTraces(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing IngestTraces: "+err2.Error()) - oprot.WriteMessageBegin("IngestTraces", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("IngestTraces", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 - } - if err != nil { - return - } - return true, err +func (p *ListTracesOApiRequest) IsSetPlatformType() bool { + return p.PlatformType != nil } -type openAPIServiceProcessorOtelIngestTraces struct { - handler OpenAPIService +func (p *ListTracesOApiRequest) IsSetBase() bool { + return p.Base != nil } -func (p *openAPIServiceProcessorOtelIngestTraces) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := OpenAPIServiceOtelIngestTracesArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("OtelIngestTraces", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func (p *ListTracesOApiRequest) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetStartTime bool = false + var issetEndTime bool = false + var issetTraceIds bool = false - iprot.ReadMessageEnd() - var err2 error - result := OpenAPIServiceOtelIngestTracesResult{} - var retval *OtelIngestTracesResponse - if retval, err2 = p.handler.OtelIngestTraces(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing OtelIngestTraces: "+err2.Error()) - oprot.WriteMessageBegin("OtelIngestTraces", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("OtelIngestTraces", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetWorkspaceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetStartTime = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + issetEndTime = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.LIST { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + issetTraceIds = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.STRING { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + if !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetStartTime { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetEndTime { + fieldId = 3 + goto RequiredFieldNotSetError + } + + if !issetTraceIds { + fieldId = 4 + goto RequiredFieldNotSetError + } + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListTracesOApiRequest[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListTracesOApiRequest[fieldId])) +} + +func (p *ListTracesOApiRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *ListTracesOApiRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.StartTime = _field + return nil +} +func (p *ListTracesOApiRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.EndTime = _field + return nil +} +func (p *ListTracesOApiRequest) ReadField4(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + + var _elem string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.TraceIds = _field + return nil +} +func (p *ListTracesOApiRequest) ReadField8(iprot thrift.TProtocol) error { + + var _field *common.PlatformType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PlatformType = _field + return nil +} +func (p *ListTracesOApiRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *ListTracesOApiRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListTracesOApiRequest"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ListTracesOApiRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.WorkspaceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ListTracesOApiRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("start_time", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.StartTime); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ListTracesOApiRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("end_time", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.EndTime); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *ListTracesOApiRequest) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("trace_ids", thrift.LIST, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.TraceIds)); err != nil { + return err + } + for _, v := range p.TraceIds { + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ListTracesOApiRequest) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetPlatformType() { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PlatformType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *ListTracesOApiRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *ListTracesOApiRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ListTracesOApiRequest(%+v)", *p) + +} + +func (p *ListTracesOApiRequest) DeepEqual(ano *ListTracesOApiRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.StartTime) { + return false + } + if !p.Field3DeepEqual(ano.EndTime) { + return false + } + if !p.Field4DeepEqual(ano.TraceIds) { + return false + } + if !p.Field8DeepEqual(ano.PlatformType) { + return false + } + if !p.Field255DeepEqual(ano.Base) { + return false + } + return true +} + +func (p *ListTracesOApiRequest) Field1DeepEqual(src int64) bool { + + if p.WorkspaceID != src { + return false + } + return true +} +func (p *ListTracesOApiRequest) Field2DeepEqual(src int64) bool { + + if p.StartTime != src { + return false + } + return true +} +func (p *ListTracesOApiRequest) Field3DeepEqual(src int64) bool { + + if p.EndTime != src { + return false + } + return true +} +func (p *ListTracesOApiRequest) Field4DeepEqual(src []string) bool { + + if len(p.TraceIds) != len(src) { + return false + } + for i, v := range p.TraceIds { + _src := src[i] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} +func (p *ListTracesOApiRequest) Field8DeepEqual(src *common.PlatformType) bool { + + if p.PlatformType == src { + return true + } else if p.PlatformType == nil || src == nil { + return false + } + if strings.Compare(*p.PlatformType, *src) != 0 { + return false + } + return true +} +func (p *ListTracesOApiRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type ListTracesOApiResponse struct { + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty"` + Data *ListTracesData `thrift:"data,3,optional" frugal:"3,optional,ListTracesData" form:"data" json:"data,omitempty"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +} + +func NewListTracesOApiResponse() *ListTracesOApiResponse { + return &ListTracesOApiResponse{} +} + +func (p *ListTracesOApiResponse) InitDefault() { +} + +var ListTracesOApiResponse_Code_DEFAULT int32 + +func (p *ListTracesOApiResponse) GetCode() (v int32) { + if p == nil { + return + } + if !p.IsSetCode() { + return ListTracesOApiResponse_Code_DEFAULT + } + return *p.Code +} + +var ListTracesOApiResponse_Msg_DEFAULT string + +func (p *ListTracesOApiResponse) GetMsg() (v string) { + if p == nil { + return + } + if !p.IsSetMsg() { + return ListTracesOApiResponse_Msg_DEFAULT + } + return *p.Msg +} + +var ListTracesOApiResponse_Data_DEFAULT *ListTracesData + +func (p *ListTracesOApiResponse) GetData() (v *ListTracesData) { + if p == nil { + return + } + if !p.IsSetData() { + return ListTracesOApiResponse_Data_DEFAULT + } + return p.Data +} + +var ListTracesOApiResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *ListTracesOApiResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return + } + if !p.IsSetBaseResp() { + return ListTracesOApiResponse_BaseResp_DEFAULT + } + return p.BaseResp +} +func (p *ListTracesOApiResponse) SetCode(val *int32) { + p.Code = val +} +func (p *ListTracesOApiResponse) SetMsg(val *string) { + p.Msg = val +} +func (p *ListTracesOApiResponse) SetData(val *ListTracesData) { + p.Data = val +} +func (p *ListTracesOApiResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_ListTracesOApiResponse = map[int16]string{ + 1: "code", + 2: "msg", + 3: "data", + 255: "BaseResp", +} + +func (p *ListTracesOApiResponse) IsSetCode() bool { + return p.Code != nil +} + +func (p *ListTracesOApiResponse) IsSetMsg() bool { + return p.Msg != nil +} + +func (p *ListTracesOApiResponse) IsSetData() bool { + return p.Data != nil +} + +func (p *ListTracesOApiResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *ListTracesOApiResponse) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I32 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListTracesOApiResponse[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ListTracesOApiResponse) ReadField1(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.Code = _field + return nil +} +func (p *ListTracesOApiResponse) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Msg = _field + return nil +} +func (p *ListTracesOApiResponse) ReadField3(iprot thrift.TProtocol) error { + _field := NewListTracesData() + if err := _field.Read(iprot); err != nil { + return err + } + p.Data = _field + return nil +} +func (p *ListTracesOApiResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field + return nil +} + +func (p *ListTracesOApiResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListTracesOApiResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ListTracesOApiResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetCode() { + if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.Code); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ListTracesOApiResponse) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetMsg() { + if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Msg); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ListTracesOApiResponse) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetData() { + if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.Data.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *ListTracesOApiResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *ListTracesOApiResponse) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ListTracesOApiResponse(%+v)", *p) + +} + +func (p *ListTracesOApiResponse) DeepEqual(ano *ListTracesOApiResponse) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Code) { + return false + } + if !p.Field2DeepEqual(ano.Msg) { + return false + } + if !p.Field3DeepEqual(ano.Data) { + return false + } + if !p.Field255DeepEqual(ano.BaseResp) { + return false + } + return true +} + +func (p *ListTracesOApiResponse) Field1DeepEqual(src *int32) bool { + + if p.Code == src { + return true + } else if p.Code == nil || src == nil { + return false + } + if *p.Code != *src { + return false + } + return true +} +func (p *ListTracesOApiResponse) Field2DeepEqual(src *string) bool { + + if p.Msg == src { + return true + } else if p.Msg == nil || src == nil { + return false + } + if strings.Compare(*p.Msg, *src) != 0 { + return false + } + return true +} +func (p *ListTracesOApiResponse) Field3DeepEqual(src *ListTracesData) bool { + + if !p.Data.DeepEqual(src) { + return false + } + return true +} +func (p *ListTracesOApiResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { + return false + } + return true +} + +type ListTracesData struct { + Traces []*trace.Trace `thrift:"traces,1,required" frugal:"1,required,list" form:"traces,required" json:"traces,required" query:"traces,required"` +} + +func NewListTracesData() *ListTracesData { + return &ListTracesData{} +} + +func (p *ListTracesData) InitDefault() { +} + +func (p *ListTracesData) GetTraces() (v []*trace.Trace) { + if p != nil { + return p.Traces + } + return +} +func (p *ListTracesData) SetTraces(val []*trace.Trace) { + p.Traces = val +} + +var fieldIDToName_ListTracesData = map[int16]string{ + 1: "traces", +} + +func (p *ListTracesData) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetTraces bool = false + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetTraces = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + if !issetTraces { + fieldId = 1 + goto RequiredFieldNotSetError + } + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListTracesData[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListTracesData[fieldId])) +} + +func (p *ListTracesData) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*trace.Trace, 0, size) + values := make([]trace.Trace, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Traces = _field + return nil +} + +func (p *ListTracesData) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListTracesData"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ListTracesData) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("traces", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Traces)); err != nil { + return err + } + for _, v := range p.Traces { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *ListTracesData) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ListTracesData(%+v)", *p) + +} + +func (p *ListTracesData) DeepEqual(ano *ListTracesData) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Traces) { + return false + } + return true +} + +func (p *ListTracesData) Field1DeepEqual(src []*trace.Trace) bool { + + if len(p.Traces) != len(src) { + return false + } + for i, v := range p.Traces { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type OpenAPIService interface { + IngestTraces(ctx context.Context, req *IngestTracesRequest) (r *IngestTracesResponse, err error) + + OtelIngestTraces(ctx context.Context, req *OtelIngestTracesRequest) (r *OtelIngestTracesResponse, err error) + + SearchTraceOApi(ctx context.Context, req *SearchTraceOApiRequest) (r *SearchTraceOApiResponse, err error) + + SearchTraceTreeOApi(ctx context.Context, req *SearchTraceTreeOApiRequest) (r *SearchTraceTreeOApiResponse, err error) + + ListSpansOApi(ctx context.Context, req *ListSpansOApiRequest) (r *ListSpansOApiResponse, err error) + + ListTracesOApi(ctx context.Context, req *ListTracesOApiRequest) (r *ListTracesOApiResponse, err error) + + CreateAnnotation(ctx context.Context, req *CreateAnnotationRequest) (r *CreateAnnotationResponse, err error) + + DeleteAnnotation(ctx context.Context, req *DeleteAnnotationRequest) (r *DeleteAnnotationResponse, err error) +} + +type OpenAPIServiceClient struct { + c thrift.TClient +} + +func NewOpenAPIServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *OpenAPIServiceClient { + return &OpenAPIServiceClient{ + c: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)), + } +} + +func NewOpenAPIServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *OpenAPIServiceClient { + return &OpenAPIServiceClient{ + c: thrift.NewTStandardClient(iprot, oprot), + } +} + +func NewOpenAPIServiceClient(c thrift.TClient) *OpenAPIServiceClient { + return &OpenAPIServiceClient{ + c: c, + } +} + +func (p *OpenAPIServiceClient) Client_() thrift.TClient { + return p.c +} + +func (p *OpenAPIServiceClient) IngestTraces(ctx context.Context, req *IngestTracesRequest) (r *IngestTracesResponse, err error) { + var _args OpenAPIServiceIngestTracesArgs + _args.Req = req + var _result OpenAPIServiceIngestTracesResult + if err = p.Client_().Call(ctx, "IngestTraces", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *OpenAPIServiceClient) OtelIngestTraces(ctx context.Context, req *OtelIngestTracesRequest) (r *OtelIngestTracesResponse, err error) { + var _args OpenAPIServiceOtelIngestTracesArgs + _args.Req = req + var _result OpenAPIServiceOtelIngestTracesResult + if err = p.Client_().Call(ctx, "OtelIngestTraces", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *OpenAPIServiceClient) SearchTraceOApi(ctx context.Context, req *SearchTraceOApiRequest) (r *SearchTraceOApiResponse, err error) { + var _args OpenAPIServiceSearchTraceOApiArgs + _args.Req = req + var _result OpenAPIServiceSearchTraceOApiResult + if err = p.Client_().Call(ctx, "SearchTraceOApi", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *OpenAPIServiceClient) SearchTraceTreeOApi(ctx context.Context, req *SearchTraceTreeOApiRequest) (r *SearchTraceTreeOApiResponse, err error) { + var _args OpenAPIServiceSearchTraceTreeOApiArgs + _args.Req = req + var _result OpenAPIServiceSearchTraceTreeOApiResult + if err = p.Client_().Call(ctx, "SearchTraceTreeOApi", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *OpenAPIServiceClient) ListSpansOApi(ctx context.Context, req *ListSpansOApiRequest) (r *ListSpansOApiResponse, err error) { + var _args OpenAPIServiceListSpansOApiArgs + _args.Req = req + var _result OpenAPIServiceListSpansOApiResult + if err = p.Client_().Call(ctx, "ListSpansOApi", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *OpenAPIServiceClient) ListTracesOApi(ctx context.Context, req *ListTracesOApiRequest) (r *ListTracesOApiResponse, err error) { + var _args OpenAPIServiceListTracesOApiArgs + _args.Req = req + var _result OpenAPIServiceListTracesOApiResult + if err = p.Client_().Call(ctx, "ListTracesOApi", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *OpenAPIServiceClient) CreateAnnotation(ctx context.Context, req *CreateAnnotationRequest) (r *CreateAnnotationResponse, err error) { + var _args OpenAPIServiceCreateAnnotationArgs + _args.Req = req + var _result OpenAPIServiceCreateAnnotationResult + if err = p.Client_().Call(ctx, "CreateAnnotation", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *OpenAPIServiceClient) DeleteAnnotation(ctx context.Context, req *DeleteAnnotationRequest) (r *DeleteAnnotationResponse, err error) { + var _args OpenAPIServiceDeleteAnnotationArgs + _args.Req = req + var _result OpenAPIServiceDeleteAnnotationResult + if err = p.Client_().Call(ctx, "DeleteAnnotation", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +type OpenAPIServiceProcessor struct { + processorMap map[string]thrift.TProcessorFunction + handler OpenAPIService +} + +func (p *OpenAPIServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) { + p.processorMap[key] = processor +} + +func (p *OpenAPIServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) { + processor, ok = p.processorMap[key] + return processor, ok +} + +func (p *OpenAPIServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction { + return p.processorMap +} + +func NewOpenAPIServiceProcessor(handler OpenAPIService) *OpenAPIServiceProcessor { + self := &OpenAPIServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)} + self.AddToProcessorMap("IngestTraces", &openAPIServiceProcessorIngestTraces{handler: handler}) + self.AddToProcessorMap("OtelIngestTraces", &openAPIServiceProcessorOtelIngestTraces{handler: handler}) + self.AddToProcessorMap("SearchTraceOApi", &openAPIServiceProcessorSearchTraceOApi{handler: handler}) + self.AddToProcessorMap("SearchTraceTreeOApi", &openAPIServiceProcessorSearchTraceTreeOApi{handler: handler}) + self.AddToProcessorMap("ListSpansOApi", &openAPIServiceProcessorListSpansOApi{handler: handler}) + self.AddToProcessorMap("ListTracesOApi", &openAPIServiceProcessorListTracesOApi{handler: handler}) + self.AddToProcessorMap("CreateAnnotation", &openAPIServiceProcessorCreateAnnotation{handler: handler}) + self.AddToProcessorMap("DeleteAnnotation", &openAPIServiceProcessorDeleteAnnotation{handler: handler}) + return self +} +func (p *OpenAPIServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + name, _, seqId, err := iprot.ReadMessageBegin() + if err != nil { + return false, err + } + if processor, ok := p.GetProcessorFunction(name); ok { + return processor.Process(ctx, seqId, iprot, oprot) + } + iprot.Skip(thrift.STRUCT) + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, "Unknown function "+name) + oprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, x +} + +type openAPIServiceProcessorIngestTraces struct { + handler OpenAPIService +} + +func (p *openAPIServiceProcessorIngestTraces) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := OpenAPIServiceIngestTracesArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("IngestTraces", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := OpenAPIServiceIngestTracesResult{} + var retval *IngestTracesResponse + if retval, err2 = p.handler.IngestTraces(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing IngestTraces: "+err2.Error()) + oprot.WriteMessageBegin("IngestTraces", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("IngestTraces", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type openAPIServiceProcessorOtelIngestTraces struct { + handler OpenAPIService +} + +func (p *openAPIServiceProcessorOtelIngestTraces) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := OpenAPIServiceOtelIngestTracesArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("OtelIngestTraces", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := OpenAPIServiceOtelIngestTracesResult{} + var retval *OtelIngestTracesResponse + if retval, err2 = p.handler.OtelIngestTraces(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing OtelIngestTraces: "+err2.Error()) + oprot.WriteMessageBegin("OtelIngestTraces", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("OtelIngestTraces", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type openAPIServiceProcessorSearchTraceOApi struct { + handler OpenAPIService +} + +func (p *openAPIServiceProcessorSearchTraceOApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := OpenAPIServiceSearchTraceOApiArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("SearchTraceOApi", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := OpenAPIServiceSearchTraceOApiResult{} + var retval *SearchTraceOApiResponse + if retval, err2 = p.handler.SearchTraceOApi(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing SearchTraceOApi: "+err2.Error()) + oprot.WriteMessageBegin("SearchTraceOApi", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("SearchTraceOApi", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type openAPIServiceProcessorSearchTraceTreeOApi struct { + handler OpenAPIService +} + +func (p *openAPIServiceProcessorSearchTraceTreeOApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := OpenAPIServiceSearchTraceTreeOApiArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("SearchTraceTreeOApi", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := OpenAPIServiceSearchTraceTreeOApiResult{} + var retval *SearchTraceTreeOApiResponse + if retval, err2 = p.handler.SearchTraceTreeOApi(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing SearchTraceTreeOApi: "+err2.Error()) + oprot.WriteMessageBegin("SearchTraceTreeOApi", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("SearchTraceTreeOApi", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type openAPIServiceProcessorListSpansOApi struct { + handler OpenAPIService +} + +func (p *openAPIServiceProcessorListSpansOApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := OpenAPIServiceListSpansOApiArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("ListSpansOApi", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := OpenAPIServiceListSpansOApiResult{} + var retval *ListSpansOApiResponse + if retval, err2 = p.handler.ListSpansOApi(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListSpansOApi: "+err2.Error()) + oprot.WriteMessageBegin("ListSpansOApi", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("ListSpansOApi", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { err = err2 } if err != nil { @@ -7181,16 +8797,16 @@ func (p *openAPIServiceProcessorOtelIngestTraces) Process(ctx context.Context, s return true, err } -type openAPIServiceProcessorSearchTraceOApi struct { +type openAPIServiceProcessorListTracesOApi struct { handler OpenAPIService } -func (p *openAPIServiceProcessorSearchTraceOApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := OpenAPIServiceSearchTraceOApiArgs{} +func (p *openAPIServiceProcessorListTracesOApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := OpenAPIServiceListTracesOApiArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("SearchTraceOApi", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("ListTracesOApi", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -7199,11 +8815,11 @@ func (p *openAPIServiceProcessorSearchTraceOApi) Process(ctx context.Context, se iprot.ReadMessageEnd() var err2 error - result := OpenAPIServiceSearchTraceOApiResult{} - var retval *SearchTraceOApiResponse - if retval, err2 = p.handler.SearchTraceOApi(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing SearchTraceOApi: "+err2.Error()) - oprot.WriteMessageBegin("SearchTraceOApi", thrift.EXCEPTION, seqId) + result := OpenAPIServiceListTracesOApiResult{} + var retval *ListTracesOApiResponse + if retval, err2 = p.handler.ListTracesOApi(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListTracesOApi: "+err2.Error()) + oprot.WriteMessageBegin("ListTracesOApi", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -7211,7 +8827,7 @@ func (p *openAPIServiceProcessorSearchTraceOApi) Process(ctx context.Context, se } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("SearchTraceOApi", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("ListTracesOApi", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -7229,16 +8845,16 @@ func (p *openAPIServiceProcessorSearchTraceOApi) Process(ctx context.Context, se return true, err } -type openAPIServiceProcessorListSpansOApi struct { +type openAPIServiceProcessorCreateAnnotation struct { handler OpenAPIService } -func (p *openAPIServiceProcessorListSpansOApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := OpenAPIServiceListSpansOApiArgs{} +func (p *openAPIServiceProcessorCreateAnnotation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := OpenAPIServiceCreateAnnotationArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ListSpansOApi", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("CreateAnnotation", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -7247,11 +8863,11 @@ func (p *openAPIServiceProcessorListSpansOApi) Process(ctx context.Context, seqI iprot.ReadMessageEnd() var err2 error - result := OpenAPIServiceListSpansOApiResult{} - var retval *ListSpansOApiResponse - if retval, err2 = p.handler.ListSpansOApi(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListSpansOApi: "+err2.Error()) - oprot.WriteMessageBegin("ListSpansOApi", thrift.EXCEPTION, seqId) + result := OpenAPIServiceCreateAnnotationResult{} + var retval *CreateAnnotationResponse + if retval, err2 = p.handler.CreateAnnotation(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CreateAnnotation: "+err2.Error()) + oprot.WriteMessageBegin("CreateAnnotation", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -7259,7 +8875,55 @@ func (p *openAPIServiceProcessorListSpansOApi) Process(ctx context.Context, seqI } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("ListSpansOApi", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("CreateAnnotation", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type openAPIServiceProcessorDeleteAnnotation struct { + handler OpenAPIService +} + +func (p *openAPIServiceProcessorDeleteAnnotation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := OpenAPIServiceDeleteAnnotationArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("DeleteAnnotation", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := OpenAPIServiceDeleteAnnotationResult{} + var retval *DeleteAnnotationResponse + if retval, err2 = p.handler.DeleteAnnotation(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteAnnotation: "+err2.Error()) + oprot.WriteMessageBegin("DeleteAnnotation", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("DeleteAnnotation", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -7268,194 +8932,394 @@ func (p *openAPIServiceProcessorListSpansOApi) Process(ctx context.Context, seqI if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { err = err2 } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type OpenAPIServiceIngestTracesArgs struct { + Req *IngestTracesRequest `thrift:"req,1" frugal:"1,default,IngestTracesRequest"` +} + +func NewOpenAPIServiceIngestTracesArgs() *OpenAPIServiceIngestTracesArgs { + return &OpenAPIServiceIngestTracesArgs{} +} + +func (p *OpenAPIServiceIngestTracesArgs) InitDefault() { +} + +var OpenAPIServiceIngestTracesArgs_Req_DEFAULT *IngestTracesRequest + +func (p *OpenAPIServiceIngestTracesArgs) GetReq() (v *IngestTracesRequest) { + if p == nil { + return + } + if !p.IsSetReq() { + return OpenAPIServiceIngestTracesArgs_Req_DEFAULT + } + return p.Req +} +func (p *OpenAPIServiceIngestTracesArgs) SetReq(val *IngestTracesRequest) { + p.Req = val +} + +var fieldIDToName_OpenAPIServiceIngestTracesArgs = map[int16]string{ + 1: "req", +} + +func (p *OpenAPIServiceIngestTracesArgs) IsSetReq() bool { + return p.Req != nil +} + +func (p *OpenAPIServiceIngestTracesArgs) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceIngestTracesArgs[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *OpenAPIServiceIngestTracesArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewIngestTracesRequest() + if err := _field.Read(iprot); err != nil { + return err + } + p.Req = _field + return nil +} + +func (p *OpenAPIServiceIngestTracesArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("IngestTraces_args"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *OpenAPIServiceIngestTracesArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.Req.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *OpenAPIServiceIngestTracesArgs) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("OpenAPIServiceIngestTracesArgs(%+v)", *p) + +} + +func (p *OpenAPIServiceIngestTracesArgs) DeepEqual(ano *OpenAPIServiceIngestTracesArgs) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Req) { + return false } - if err != nil { - return + return true +} + +func (p *OpenAPIServiceIngestTracesArgs) Field1DeepEqual(src *IngestTracesRequest) bool { + + if !p.Req.DeepEqual(src) { + return false } - return true, err + return true } -type openAPIServiceProcessorListTracesOApi struct { - handler OpenAPIService +type OpenAPIServiceIngestTracesResult struct { + Success *IngestTracesResponse `thrift:"success,0,optional" frugal:"0,optional,IngestTracesResponse"` } -func (p *openAPIServiceProcessorListTracesOApi) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := OpenAPIServiceListTracesOApiArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ListTracesOApi", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func NewOpenAPIServiceIngestTracesResult() *OpenAPIServiceIngestTracesResult { + return &OpenAPIServiceIngestTracesResult{} +} - iprot.ReadMessageEnd() - var err2 error - result := OpenAPIServiceListTracesOApiResult{} - var retval *ListTracesOApiResponse - if retval, err2 = p.handler.ListTracesOApi(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListTracesOApi: "+err2.Error()) - oprot.WriteMessageBegin("ListTracesOApi", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("ListTracesOApi", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 - } - if err != nil { +func (p *OpenAPIServiceIngestTracesResult) InitDefault() { +} + +var OpenAPIServiceIngestTracesResult_Success_DEFAULT *IngestTracesResponse + +func (p *OpenAPIServiceIngestTracesResult) GetSuccess() (v *IngestTracesResponse) { + if p == nil { return } - return true, err + if !p.IsSetSuccess() { + return OpenAPIServiceIngestTracesResult_Success_DEFAULT + } + return p.Success +} +func (p *OpenAPIServiceIngestTracesResult) SetSuccess(x interface{}) { + p.Success = x.(*IngestTracesResponse) } -type openAPIServiceProcessorCreateAnnotation struct { - handler OpenAPIService +var fieldIDToName_OpenAPIServiceIngestTracesResult = map[int16]string{ + 0: "success", } -func (p *openAPIServiceProcessorCreateAnnotation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := OpenAPIServiceCreateAnnotationArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("CreateAnnotation", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func (p *OpenAPIServiceIngestTracesResult) IsSetSuccess() bool { + return p.Success != nil +} - iprot.ReadMessageEnd() - var err2 error - result := OpenAPIServiceCreateAnnotationResult{} - var retval *CreateAnnotationResponse - if retval, err2 = p.handler.CreateAnnotation(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CreateAnnotation: "+err2.Error()) - oprot.WriteMessageBegin("CreateAnnotation", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("CreateAnnotation", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +func (p *OpenAPIServiceIngestTracesResult) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } } - if err != nil { - return + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type openAPIServiceProcessorDeleteAnnotation struct { - handler OpenAPIService + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceIngestTracesResult[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *openAPIServiceProcessorDeleteAnnotation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := OpenAPIServiceDeleteAnnotationArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("DeleteAnnotation", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *OpenAPIServiceIngestTracesResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewIngestTracesResponse() + if err := _field.Read(iprot); err != nil { + return err } + p.Success = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := OpenAPIServiceDeleteAnnotationResult{} - var retval *DeleteAnnotationResponse - if retval, err2 = p.handler.DeleteAnnotation(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteAnnotation: "+err2.Error()) - oprot.WriteMessageBegin("DeleteAnnotation", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval +func (p *OpenAPIServiceIngestTracesResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("IngestTraces_result"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageBegin("DeleteAnnotation", thrift.REPLY, seqId); err2 != nil { - err = err2 + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + goto WriteFieldError + } } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *OpenAPIServiceIngestTracesResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) +} + +func (p *OpenAPIServiceIngestTracesResult) String() string { + if p == nil { + return "" } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + return fmt.Sprintf("OpenAPIServiceIngestTracesResult(%+v)", *p) + +} + +func (p *OpenAPIServiceIngestTracesResult) DeepEqual(ano *OpenAPIServiceIngestTracesResult) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field0DeepEqual(ano.Success) { + return false } - if err != nil { - return + return true +} + +func (p *OpenAPIServiceIngestTracesResult) Field0DeepEqual(src *IngestTracesResponse) bool { + + if !p.Success.DeepEqual(src) { + return false } - return true, err + return true } -type OpenAPIServiceIngestTracesArgs struct { - Req *IngestTracesRequest `thrift:"req,1" frugal:"1,default,IngestTracesRequest"` +type OpenAPIServiceOtelIngestTracesArgs struct { + Req *OtelIngestTracesRequest `thrift:"req,1" frugal:"1,default,OtelIngestTracesRequest"` } -func NewOpenAPIServiceIngestTracesArgs() *OpenAPIServiceIngestTracesArgs { - return &OpenAPIServiceIngestTracesArgs{} +func NewOpenAPIServiceOtelIngestTracesArgs() *OpenAPIServiceOtelIngestTracesArgs { + return &OpenAPIServiceOtelIngestTracesArgs{} } -func (p *OpenAPIServiceIngestTracesArgs) InitDefault() { +func (p *OpenAPIServiceOtelIngestTracesArgs) InitDefault() { } -var OpenAPIServiceIngestTracesArgs_Req_DEFAULT *IngestTracesRequest +var OpenAPIServiceOtelIngestTracesArgs_Req_DEFAULT *OtelIngestTracesRequest -func (p *OpenAPIServiceIngestTracesArgs) GetReq() (v *IngestTracesRequest) { +func (p *OpenAPIServiceOtelIngestTracesArgs) GetReq() (v *OtelIngestTracesRequest) { if p == nil { return } if !p.IsSetReq() { - return OpenAPIServiceIngestTracesArgs_Req_DEFAULT + return OpenAPIServiceOtelIngestTracesArgs_Req_DEFAULT } return p.Req } -func (p *OpenAPIServiceIngestTracesArgs) SetReq(val *IngestTracesRequest) { +func (p *OpenAPIServiceOtelIngestTracesArgs) SetReq(val *OtelIngestTracesRequest) { p.Req = val } -var fieldIDToName_OpenAPIServiceIngestTracesArgs = map[int16]string{ +var fieldIDToName_OpenAPIServiceOtelIngestTracesArgs = map[int16]string{ 1: "req", } -func (p *OpenAPIServiceIngestTracesArgs) IsSetReq() bool { +func (p *OpenAPIServiceOtelIngestTracesArgs) IsSetReq() bool { return p.Req != nil } -func (p *OpenAPIServiceIngestTracesArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceOtelIngestTracesArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -7500,7 +9364,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceIngestTracesArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceOtelIngestTracesArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -7510,8 +9374,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *OpenAPIServiceIngestTracesArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewIngestTracesRequest() +func (p *OpenAPIServiceOtelIngestTracesArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewOtelIngestTracesRequest() if err := _field.Read(iprot); err != nil { return err } @@ -7519,9 +9383,9 @@ func (p *OpenAPIServiceIngestTracesArgs) ReadField1(iprot thrift.TProtocol) erro return nil } -func (p *OpenAPIServiceIngestTracesArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceOtelIngestTracesArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("IngestTraces_args"); err != nil { + if err = oprot.WriteStructBegin("OtelIngestTraces_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -7547,7 +9411,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *OpenAPIServiceIngestTracesArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceOtelIngestTracesArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -7564,15 +9428,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *OpenAPIServiceIngestTracesArgs) String() string { +func (p *OpenAPIServiceOtelIngestTracesArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("OpenAPIServiceIngestTracesArgs(%+v)", *p) + return fmt.Sprintf("OpenAPIServiceOtelIngestTracesArgs(%+v)", *p) } -func (p *OpenAPIServiceIngestTracesArgs) DeepEqual(ano *OpenAPIServiceIngestTracesArgs) bool { +func (p *OpenAPIServiceOtelIngestTracesArgs) DeepEqual(ano *OpenAPIServiceOtelIngestTracesArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -7584,7 +9448,7 @@ func (p *OpenAPIServiceIngestTracesArgs) DeepEqual(ano *OpenAPIServiceIngestTrac return true } -func (p *OpenAPIServiceIngestTracesArgs) Field1DeepEqual(src *IngestTracesRequest) bool { +func (p *OpenAPIServiceOtelIngestTracesArgs) Field1DeepEqual(src *OtelIngestTracesRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -7592,41 +9456,41 @@ func (p *OpenAPIServiceIngestTracesArgs) Field1DeepEqual(src *IngestTracesReques return true } -type OpenAPIServiceIngestTracesResult struct { - Success *IngestTracesResponse `thrift:"success,0,optional" frugal:"0,optional,IngestTracesResponse"` +type OpenAPIServiceOtelIngestTracesResult struct { + Success *OtelIngestTracesResponse `thrift:"success,0,optional" frugal:"0,optional,OtelIngestTracesResponse"` } -func NewOpenAPIServiceIngestTracesResult() *OpenAPIServiceIngestTracesResult { - return &OpenAPIServiceIngestTracesResult{} +func NewOpenAPIServiceOtelIngestTracesResult() *OpenAPIServiceOtelIngestTracesResult { + return &OpenAPIServiceOtelIngestTracesResult{} } -func (p *OpenAPIServiceIngestTracesResult) InitDefault() { +func (p *OpenAPIServiceOtelIngestTracesResult) InitDefault() { } -var OpenAPIServiceIngestTracesResult_Success_DEFAULT *IngestTracesResponse +var OpenAPIServiceOtelIngestTracesResult_Success_DEFAULT *OtelIngestTracesResponse -func (p *OpenAPIServiceIngestTracesResult) GetSuccess() (v *IngestTracesResponse) { +func (p *OpenAPIServiceOtelIngestTracesResult) GetSuccess() (v *OtelIngestTracesResponse) { if p == nil { return } if !p.IsSetSuccess() { - return OpenAPIServiceIngestTracesResult_Success_DEFAULT + return OpenAPIServiceOtelIngestTracesResult_Success_DEFAULT } return p.Success } -func (p *OpenAPIServiceIngestTracesResult) SetSuccess(x interface{}) { - p.Success = x.(*IngestTracesResponse) +func (p *OpenAPIServiceOtelIngestTracesResult) SetSuccess(x interface{}) { + p.Success = x.(*OtelIngestTracesResponse) } -var fieldIDToName_OpenAPIServiceIngestTracesResult = map[int16]string{ +var fieldIDToName_OpenAPIServiceOtelIngestTracesResult = map[int16]string{ 0: "success", } -func (p *OpenAPIServiceIngestTracesResult) IsSetSuccess() bool { +func (p *OpenAPIServiceOtelIngestTracesResult) IsSetSuccess() bool { return p.Success != nil } -func (p *OpenAPIServiceIngestTracesResult) Read(iprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceOtelIngestTracesResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -7671,7 +9535,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceIngestTracesResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceOtelIngestTracesResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -7681,8 +9545,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *OpenAPIServiceIngestTracesResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewIngestTracesResponse() +func (p *OpenAPIServiceOtelIngestTracesResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewOtelIngestTracesResponse() if err := _field.Read(iprot); err != nil { return err } @@ -7690,9 +9554,9 @@ func (p *OpenAPIServiceIngestTracesResult) ReadField0(iprot thrift.TProtocol) er return nil } -func (p *OpenAPIServiceIngestTracesResult) Write(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceOtelIngestTracesResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("IngestTraces_result"); err != nil { + if err = oprot.WriteStructBegin("OtelIngestTraces_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -7718,7 +9582,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *OpenAPIServiceIngestTracesResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceOtelIngestTracesResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -7737,15 +9601,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *OpenAPIServiceIngestTracesResult) String() string { +func (p *OpenAPIServiceOtelIngestTracesResult) String() string { if p == nil { return "" } - return fmt.Sprintf("OpenAPIServiceIngestTracesResult(%+v)", *p) + return fmt.Sprintf("OpenAPIServiceOtelIngestTracesResult(%+v)", *p) } -func (p *OpenAPIServiceIngestTracesResult) DeepEqual(ano *OpenAPIServiceIngestTracesResult) bool { +func (p *OpenAPIServiceOtelIngestTracesResult) DeepEqual(ano *OpenAPIServiceOtelIngestTracesResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -7757,7 +9621,7 @@ func (p *OpenAPIServiceIngestTracesResult) DeepEqual(ano *OpenAPIServiceIngestTr return true } -func (p *OpenAPIServiceIngestTracesResult) Field0DeepEqual(src *IngestTracesResponse) bool { +func (p *OpenAPIServiceOtelIngestTracesResult) Field0DeepEqual(src *OtelIngestTracesResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -7765,41 +9629,41 @@ func (p *OpenAPIServiceIngestTracesResult) Field0DeepEqual(src *IngestTracesResp return true } -type OpenAPIServiceOtelIngestTracesArgs struct { - Req *OtelIngestTracesRequest `thrift:"req,1" frugal:"1,default,OtelIngestTracesRequest"` +type OpenAPIServiceSearchTraceOApiArgs struct { + Req *SearchTraceOApiRequest `thrift:"req,1" frugal:"1,default,SearchTraceOApiRequest"` } -func NewOpenAPIServiceOtelIngestTracesArgs() *OpenAPIServiceOtelIngestTracesArgs { - return &OpenAPIServiceOtelIngestTracesArgs{} +func NewOpenAPIServiceSearchTraceOApiArgs() *OpenAPIServiceSearchTraceOApiArgs { + return &OpenAPIServiceSearchTraceOApiArgs{} } -func (p *OpenAPIServiceOtelIngestTracesArgs) InitDefault() { +func (p *OpenAPIServiceSearchTraceOApiArgs) InitDefault() { } -var OpenAPIServiceOtelIngestTracesArgs_Req_DEFAULT *OtelIngestTracesRequest +var OpenAPIServiceSearchTraceOApiArgs_Req_DEFAULT *SearchTraceOApiRequest -func (p *OpenAPIServiceOtelIngestTracesArgs) GetReq() (v *OtelIngestTracesRequest) { +func (p *OpenAPIServiceSearchTraceOApiArgs) GetReq() (v *SearchTraceOApiRequest) { if p == nil { return } if !p.IsSetReq() { - return OpenAPIServiceOtelIngestTracesArgs_Req_DEFAULT + return OpenAPIServiceSearchTraceOApiArgs_Req_DEFAULT } return p.Req } -func (p *OpenAPIServiceOtelIngestTracesArgs) SetReq(val *OtelIngestTracesRequest) { +func (p *OpenAPIServiceSearchTraceOApiArgs) SetReq(val *SearchTraceOApiRequest) { p.Req = val } -var fieldIDToName_OpenAPIServiceOtelIngestTracesArgs = map[int16]string{ +var fieldIDToName_OpenAPIServiceSearchTraceOApiArgs = map[int16]string{ 1: "req", } -func (p *OpenAPIServiceOtelIngestTracesArgs) IsSetReq() bool { +func (p *OpenAPIServiceSearchTraceOApiArgs) IsSetReq() bool { return p.Req != nil } -func (p *OpenAPIServiceOtelIngestTracesArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceOApiArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -7844,7 +9708,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceOtelIngestTracesArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceSearchTraceOApiArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -7854,8 +9718,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *OpenAPIServiceOtelIngestTracesArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewOtelIngestTracesRequest() +func (p *OpenAPIServiceSearchTraceOApiArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewSearchTraceOApiRequest() if err := _field.Read(iprot); err != nil { return err } @@ -7863,9 +9727,9 @@ func (p *OpenAPIServiceOtelIngestTracesArgs) ReadField1(iprot thrift.TProtocol) return nil } -func (p *OpenAPIServiceOtelIngestTracesArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceOApiArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("OtelIngestTraces_args"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceOApi_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -7891,7 +9755,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *OpenAPIServiceOtelIngestTracesArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceOApiArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -7908,15 +9772,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *OpenAPIServiceOtelIngestTracesArgs) String() string { +func (p *OpenAPIServiceSearchTraceOApiArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("OpenAPIServiceOtelIngestTracesArgs(%+v)", *p) + return fmt.Sprintf("OpenAPIServiceSearchTraceOApiArgs(%+v)", *p) } -func (p *OpenAPIServiceOtelIngestTracesArgs) DeepEqual(ano *OpenAPIServiceOtelIngestTracesArgs) bool { +func (p *OpenAPIServiceSearchTraceOApiArgs) DeepEqual(ano *OpenAPIServiceSearchTraceOApiArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -7928,7 +9792,7 @@ func (p *OpenAPIServiceOtelIngestTracesArgs) DeepEqual(ano *OpenAPIServiceOtelIn return true } -func (p *OpenAPIServiceOtelIngestTracesArgs) Field1DeepEqual(src *OtelIngestTracesRequest) bool { +func (p *OpenAPIServiceSearchTraceOApiArgs) Field1DeepEqual(src *SearchTraceOApiRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -7936,41 +9800,41 @@ func (p *OpenAPIServiceOtelIngestTracesArgs) Field1DeepEqual(src *OtelIngestTrac return true } -type OpenAPIServiceOtelIngestTracesResult struct { - Success *OtelIngestTracesResponse `thrift:"success,0,optional" frugal:"0,optional,OtelIngestTracesResponse"` +type OpenAPIServiceSearchTraceOApiResult struct { + Success *SearchTraceOApiResponse `thrift:"success,0,optional" frugal:"0,optional,SearchTraceOApiResponse"` } -func NewOpenAPIServiceOtelIngestTracesResult() *OpenAPIServiceOtelIngestTracesResult { - return &OpenAPIServiceOtelIngestTracesResult{} +func NewOpenAPIServiceSearchTraceOApiResult() *OpenAPIServiceSearchTraceOApiResult { + return &OpenAPIServiceSearchTraceOApiResult{} } -func (p *OpenAPIServiceOtelIngestTracesResult) InitDefault() { +func (p *OpenAPIServiceSearchTraceOApiResult) InitDefault() { } -var OpenAPIServiceOtelIngestTracesResult_Success_DEFAULT *OtelIngestTracesResponse +var OpenAPIServiceSearchTraceOApiResult_Success_DEFAULT *SearchTraceOApiResponse -func (p *OpenAPIServiceOtelIngestTracesResult) GetSuccess() (v *OtelIngestTracesResponse) { +func (p *OpenAPIServiceSearchTraceOApiResult) GetSuccess() (v *SearchTraceOApiResponse) { if p == nil { return } if !p.IsSetSuccess() { - return OpenAPIServiceOtelIngestTracesResult_Success_DEFAULT + return OpenAPIServiceSearchTraceOApiResult_Success_DEFAULT } return p.Success } -func (p *OpenAPIServiceOtelIngestTracesResult) SetSuccess(x interface{}) { - p.Success = x.(*OtelIngestTracesResponse) +func (p *OpenAPIServiceSearchTraceOApiResult) SetSuccess(x interface{}) { + p.Success = x.(*SearchTraceOApiResponse) } -var fieldIDToName_OpenAPIServiceOtelIngestTracesResult = map[int16]string{ +var fieldIDToName_OpenAPIServiceSearchTraceOApiResult = map[int16]string{ 0: "success", } -func (p *OpenAPIServiceOtelIngestTracesResult) IsSetSuccess() bool { +func (p *OpenAPIServiceSearchTraceOApiResult) IsSetSuccess() bool { return p.Success != nil } -func (p *OpenAPIServiceOtelIngestTracesResult) Read(iprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceOApiResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -8015,7 +9879,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceOtelIngestTracesResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceSearchTraceOApiResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -8025,8 +9889,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *OpenAPIServiceOtelIngestTracesResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewOtelIngestTracesResponse() +func (p *OpenAPIServiceSearchTraceOApiResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewSearchTraceOApiResponse() if err := _field.Read(iprot); err != nil { return err } @@ -8034,9 +9898,9 @@ func (p *OpenAPIServiceOtelIngestTracesResult) ReadField0(iprot thrift.TProtocol return nil } -func (p *OpenAPIServiceOtelIngestTracesResult) Write(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceOApiResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("OtelIngestTraces_result"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceOApi_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -8062,7 +9926,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *OpenAPIServiceOtelIngestTracesResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceOApiResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -8081,15 +9945,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *OpenAPIServiceOtelIngestTracesResult) String() string { +func (p *OpenAPIServiceSearchTraceOApiResult) String() string { if p == nil { return "" } - return fmt.Sprintf("OpenAPIServiceOtelIngestTracesResult(%+v)", *p) + return fmt.Sprintf("OpenAPIServiceSearchTraceOApiResult(%+v)", *p) } -func (p *OpenAPIServiceOtelIngestTracesResult) DeepEqual(ano *OpenAPIServiceOtelIngestTracesResult) bool { +func (p *OpenAPIServiceSearchTraceOApiResult) DeepEqual(ano *OpenAPIServiceSearchTraceOApiResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -8101,7 +9965,7 @@ func (p *OpenAPIServiceOtelIngestTracesResult) DeepEqual(ano *OpenAPIServiceOtel return true } -func (p *OpenAPIServiceOtelIngestTracesResult) Field0DeepEqual(src *OtelIngestTracesResponse) bool { +func (p *OpenAPIServiceSearchTraceOApiResult) Field0DeepEqual(src *SearchTraceOApiResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -8109,41 +9973,41 @@ func (p *OpenAPIServiceOtelIngestTracesResult) Field0DeepEqual(src *OtelIngestTr return true } -type OpenAPIServiceSearchTraceOApiArgs struct { - Req *SearchTraceOApiRequest `thrift:"req,1" frugal:"1,default,SearchTraceOApiRequest"` +type OpenAPIServiceSearchTraceTreeOApiArgs struct { + Req *SearchTraceTreeOApiRequest `thrift:"req,1" frugal:"1,default,SearchTraceTreeOApiRequest"` } -func NewOpenAPIServiceSearchTraceOApiArgs() *OpenAPIServiceSearchTraceOApiArgs { - return &OpenAPIServiceSearchTraceOApiArgs{} +func NewOpenAPIServiceSearchTraceTreeOApiArgs() *OpenAPIServiceSearchTraceTreeOApiArgs { + return &OpenAPIServiceSearchTraceTreeOApiArgs{} } -func (p *OpenAPIServiceSearchTraceOApiArgs) InitDefault() { +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) InitDefault() { } -var OpenAPIServiceSearchTraceOApiArgs_Req_DEFAULT *SearchTraceOApiRequest +var OpenAPIServiceSearchTraceTreeOApiArgs_Req_DEFAULT *SearchTraceTreeOApiRequest -func (p *OpenAPIServiceSearchTraceOApiArgs) GetReq() (v *SearchTraceOApiRequest) { +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) GetReq() (v *SearchTraceTreeOApiRequest) { if p == nil { return } if !p.IsSetReq() { - return OpenAPIServiceSearchTraceOApiArgs_Req_DEFAULT + return OpenAPIServiceSearchTraceTreeOApiArgs_Req_DEFAULT } return p.Req } -func (p *OpenAPIServiceSearchTraceOApiArgs) SetReq(val *SearchTraceOApiRequest) { +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) SetReq(val *SearchTraceTreeOApiRequest) { p.Req = val } -var fieldIDToName_OpenAPIServiceSearchTraceOApiArgs = map[int16]string{ +var fieldIDToName_OpenAPIServiceSearchTraceTreeOApiArgs = map[int16]string{ 1: "req", } -func (p *OpenAPIServiceSearchTraceOApiArgs) IsSetReq() bool { +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) IsSetReq() bool { return p.Req != nil } -func (p *OpenAPIServiceSearchTraceOApiArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -8188,7 +10052,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceSearchTraceOApiArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceSearchTraceTreeOApiArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -8198,8 +10062,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *OpenAPIServiceSearchTraceOApiArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewSearchTraceOApiRequest() +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewSearchTraceTreeOApiRequest() if err := _field.Read(iprot); err != nil { return err } @@ -8207,9 +10071,9 @@ func (p *OpenAPIServiceSearchTraceOApiArgs) ReadField1(iprot thrift.TProtocol) e return nil } -func (p *OpenAPIServiceSearchTraceOApiArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("SearchTraceOApi_args"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceTreeOApi_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -8235,7 +10099,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *OpenAPIServiceSearchTraceOApiArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -8252,15 +10116,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *OpenAPIServiceSearchTraceOApiArgs) String() string { +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("OpenAPIServiceSearchTraceOApiArgs(%+v)", *p) + return fmt.Sprintf("OpenAPIServiceSearchTraceTreeOApiArgs(%+v)", *p) } -func (p *OpenAPIServiceSearchTraceOApiArgs) DeepEqual(ano *OpenAPIServiceSearchTraceOApiArgs) bool { +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) DeepEqual(ano *OpenAPIServiceSearchTraceTreeOApiArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -8272,7 +10136,7 @@ func (p *OpenAPIServiceSearchTraceOApiArgs) DeepEqual(ano *OpenAPIServiceSearchT return true } -func (p *OpenAPIServiceSearchTraceOApiArgs) Field1DeepEqual(src *SearchTraceOApiRequest) bool { +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) Field1DeepEqual(src *SearchTraceTreeOApiRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -8280,41 +10144,41 @@ func (p *OpenAPIServiceSearchTraceOApiArgs) Field1DeepEqual(src *SearchTraceOApi return true } -type OpenAPIServiceSearchTraceOApiResult struct { - Success *SearchTraceOApiResponse `thrift:"success,0,optional" frugal:"0,optional,SearchTraceOApiResponse"` +type OpenAPIServiceSearchTraceTreeOApiResult struct { + Success *SearchTraceTreeOApiResponse `thrift:"success,0,optional" frugal:"0,optional,SearchTraceTreeOApiResponse"` } -func NewOpenAPIServiceSearchTraceOApiResult() *OpenAPIServiceSearchTraceOApiResult { - return &OpenAPIServiceSearchTraceOApiResult{} +func NewOpenAPIServiceSearchTraceTreeOApiResult() *OpenAPIServiceSearchTraceTreeOApiResult { + return &OpenAPIServiceSearchTraceTreeOApiResult{} } -func (p *OpenAPIServiceSearchTraceOApiResult) InitDefault() { +func (p *OpenAPIServiceSearchTraceTreeOApiResult) InitDefault() { } -var OpenAPIServiceSearchTraceOApiResult_Success_DEFAULT *SearchTraceOApiResponse +var OpenAPIServiceSearchTraceTreeOApiResult_Success_DEFAULT *SearchTraceTreeOApiResponse -func (p *OpenAPIServiceSearchTraceOApiResult) GetSuccess() (v *SearchTraceOApiResponse) { +func (p *OpenAPIServiceSearchTraceTreeOApiResult) GetSuccess() (v *SearchTraceTreeOApiResponse) { if p == nil { return } if !p.IsSetSuccess() { - return OpenAPIServiceSearchTraceOApiResult_Success_DEFAULT + return OpenAPIServiceSearchTraceTreeOApiResult_Success_DEFAULT } return p.Success } -func (p *OpenAPIServiceSearchTraceOApiResult) SetSuccess(x interface{}) { - p.Success = x.(*SearchTraceOApiResponse) +func (p *OpenAPIServiceSearchTraceTreeOApiResult) SetSuccess(x interface{}) { + p.Success = x.(*SearchTraceTreeOApiResponse) } -var fieldIDToName_OpenAPIServiceSearchTraceOApiResult = map[int16]string{ +var fieldIDToName_OpenAPIServiceSearchTraceTreeOApiResult = map[int16]string{ 0: "success", } -func (p *OpenAPIServiceSearchTraceOApiResult) IsSetSuccess() bool { +func (p *OpenAPIServiceSearchTraceTreeOApiResult) IsSetSuccess() bool { return p.Success != nil } -func (p *OpenAPIServiceSearchTraceOApiResult) Read(iprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceTreeOApiResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -8359,7 +10223,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceSearchTraceOApiResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceSearchTraceTreeOApiResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -8369,8 +10233,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *OpenAPIServiceSearchTraceOApiResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewSearchTraceOApiResponse() +func (p *OpenAPIServiceSearchTraceTreeOApiResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewSearchTraceTreeOApiResponse() if err := _field.Read(iprot); err != nil { return err } @@ -8378,9 +10242,9 @@ func (p *OpenAPIServiceSearchTraceOApiResult) ReadField0(iprot thrift.TProtocol) return nil } -func (p *OpenAPIServiceSearchTraceOApiResult) Write(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceTreeOApiResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("SearchTraceOApi_result"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceTreeOApi_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -8406,7 +10270,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *OpenAPIServiceSearchTraceOApiResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *OpenAPIServiceSearchTraceTreeOApiResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -8425,15 +10289,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *OpenAPIServiceSearchTraceOApiResult) String() string { +func (p *OpenAPIServiceSearchTraceTreeOApiResult) String() string { if p == nil { return "" } - return fmt.Sprintf("OpenAPIServiceSearchTraceOApiResult(%+v)", *p) + return fmt.Sprintf("OpenAPIServiceSearchTraceTreeOApiResult(%+v)", *p) } -func (p *OpenAPIServiceSearchTraceOApiResult) DeepEqual(ano *OpenAPIServiceSearchTraceOApiResult) bool { +func (p *OpenAPIServiceSearchTraceTreeOApiResult) DeepEqual(ano *OpenAPIServiceSearchTraceTreeOApiResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -8445,7 +10309,7 @@ func (p *OpenAPIServiceSearchTraceOApiResult) DeepEqual(ano *OpenAPIServiceSearc return true } -func (p *OpenAPIServiceSearchTraceOApiResult) Field0DeepEqual(src *SearchTraceOApiResponse) bool { +func (p *OpenAPIServiceSearchTraceTreeOApiResult) Field0DeepEqual(src *SearchTraceTreeOApiResponse) bool { if !p.Success.DeepEqual(src) { return false diff --git a/backend/kitex_gen/coze/loop/observability/openapi/coze.loop.observability.openapi_validator.go b/backend/kitex_gen/coze/loop/observability/openapi/coze.loop.observability.openapi_validator.go index 610982a6a..c5ad8123c 100644 --- a/backend/kitex_gen/coze/loop/observability/openapi/coze.loop.observability.openapi_validator.go +++ b/backend/kitex_gen/coze/loop/observability/openapi/coze.loop.observability.openapi_validator.go @@ -135,6 +135,40 @@ func (p *SearchTraceOApiData) IsValid() error { } return nil } +func (p *SearchTraceTreeOApiRequest) IsValid() error { + if p.Filters != nil { + if err := p.Filters.IsValid(); err != nil { + return fmt.Errorf("field Filters not valid, %w", err) + } + } + if p.Base != nil { + if err := p.Base.IsValid(); err != nil { + return fmt.Errorf("field Base not valid, %w", err) + } + } + return nil +} +func (p *SearchTraceTreeOApiResponse) IsValid() error { + if p.Data != nil { + if err := p.Data.IsValid(); err != nil { + return fmt.Errorf("field Data not valid, %w", err) + } + } + if p.BaseResp != nil { + if err := p.BaseResp.IsValid(); err != nil { + return fmt.Errorf("field BaseResp not valid, %w", err) + } + } + return nil +} +func (p *SearchTraceTreeOApiData) IsValid() error { + if p.TracesAdvanceInfo != nil { + if err := p.TracesAdvanceInfo.IsValid(); err != nil { + return fmt.Errorf("field TracesAdvanceInfo not valid, %w", err) + } + } + return nil +} func (p *ListSpansOApiRequest) IsValid() error { if p.WorkspaceID <= int64(0) { return fmt.Errorf("field WorkspaceID gt rule failed, current value: %v", p.WorkspaceID) diff --git a/backend/kitex_gen/coze/loop/observability/openapi/k-coze.loop.observability.openapi.go b/backend/kitex_gen/coze/loop/observability/openapi/k-coze.loop.observability.openapi.go index 8eca6ef94..6c4bf415a 100644 --- a/backend/kitex_gen/coze/loop/observability/openapi/k-coze.loop.observability.openapi.go +++ b/backend/kitex_gen/coze/loop/observability/openapi/k-coze.loop.observability.openapi.go @@ -2239,6 +2239,20 @@ func (p *SearchTraceOApiRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 9: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField9(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -2390,6 +2404,30 @@ func (p *SearchTraceOApiRequest) FastReadField8(buf []byte) (int, error) { return offset, nil } +func (p *SearchTraceOApiRequest) FastReadField9(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + var _elem string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) + } + p.SpanIds = _field + return offset, nil +} + func (p *SearchTraceOApiRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() @@ -2416,6 +2454,7 @@ func (p *SearchTraceOApiRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWrit offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -2432,6 +2471,7 @@ func (p *SearchTraceOApiRequest) BLength() int { l += p.field5Length() l += p.field6Length() l += p.field8Length() + l += p.field9Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -2493,6 +2533,22 @@ func (p *SearchTraceOApiRequest) fastWriteField8(buf []byte, w thrift.NocopyWrit return offset } +func (p *SearchTraceOApiRequest) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSpanIds() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 9) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.SpanIds { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRING, length) + } + return offset +} + func (p *SearchTraceOApiRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { @@ -2557,6 +2613,19 @@ func (p *SearchTraceOApiRequest) field8Length() int { return l } +func (p *SearchTraceOApiRequest) field9Length() int { + l := 0 + if p.IsSetSpanIds() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.SpanIds { + _ = v + l += thrift.Binary.StringLengthNocopy(v) + } + } + return l +} + func (p *SearchTraceOApiRequest) field255Length() int { l := 0 if p.IsSetBase() { @@ -2601,6 +2670,1004 @@ func (p *SearchTraceOApiRequest) DeepCopy(s interface{}) error { p.PlatformType = &tmp } + if src.SpanIds != nil { + p.SpanIds = make([]string, 0, len(src.SpanIds)) + for _, elem := range src.SpanIds { + var _elem string + if elem != "" { + _elem = kutils.StringDeepCopy(elem) + } + p.SpanIds = append(p.SpanIds, _elem) + } + } + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *SearchTraceOApiResponse) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceOApiResponse[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *SearchTraceOApiResponse) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Code = _field + return offset, nil +} + +func (p *SearchTraceOApiResponse) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Msg = _field + return offset, nil +} + +func (p *SearchTraceOApiResponse) FastReadField3(buf []byte) (int, error) { + offset := 0 + _field := NewSearchTraceOApiData() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Data = _field + return offset, nil +} + +func (p *SearchTraceOApiResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *SearchTraceOApiResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *SearchTraceOApiResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *SearchTraceOApiResponse) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *SearchTraceOApiResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCode() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) + offset += thrift.Binary.WriteI32(buf[offset:], *p.Code) + } + return offset +} + +func (p *SearchTraceOApiResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMsg() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Msg) + } + return offset +} + +func (p *SearchTraceOApiResponse) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetData() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.Data.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *SearchTraceOApiResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBaseResp() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *SearchTraceOApiResponse) field1Length() int { + l := 0 + if p.IsSetCode() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *SearchTraceOApiResponse) field2Length() int { + l := 0 + if p.IsSetMsg() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Msg) + } + return l +} + +func (p *SearchTraceOApiResponse) field3Length() int { + l := 0 + if p.IsSetData() { + l += thrift.Binary.FieldBeginLength() + l += p.Data.BLength() + } + return l +} + +func (p *SearchTraceOApiResponse) field255Length() int { + l := 0 + if p.IsSetBaseResp() { + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + } + return l +} + +func (p *SearchTraceOApiResponse) DeepCopy(s interface{}) error { + src, ok := s.(*SearchTraceOApiResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Code != nil { + tmp := *src.Code + p.Code = &tmp + } + + if src.Msg != nil { + var tmp string + if *src.Msg != "" { + tmp = kutils.StringDeepCopy(*src.Msg) + } + p.Msg = &tmp + } + + var _data *SearchTraceOApiData + if src.Data != nil { + _data = &SearchTraceOApiData{} + if err := _data.DeepCopy(src.Data); err != nil { + return err + } + } + p.Data = _data + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + +func (p *SearchTraceOApiData) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetSpans bool = false + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetSpans = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + if !issetSpans { + fieldId = 1 + goto RequiredFieldNotSetError + } + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceOApiData[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +RequiredFieldNotSetError: + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_SearchTraceOApiData[fieldId])) +} + +func (p *SearchTraceOApiData) FastReadField1(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*span.OutputSpan, 0, size) + values := make([]span.OutputSpan, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.Spans = _field + return offset, nil +} + +func (p *SearchTraceOApiData) FastReadField2(buf []byte) (int, error) { + offset := 0 + _field := trace0.NewTraceAdvanceInfo() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.TracesAdvanceInfo = _field + return offset, nil +} + +func (p *SearchTraceOApiData) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *SearchTraceOApiData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *SearchTraceOApiData) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *SearchTraceOApiData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.Spans { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + return offset +} + +func (p *SearchTraceOApiData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTracesAdvanceInfo() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) + offset += p.TracesAdvanceInfo.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *SearchTraceOApiData) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.Spans { + _ = v + l += v.BLength() + } + return l +} + +func (p *SearchTraceOApiData) field2Length() int { + l := 0 + if p.IsSetTracesAdvanceInfo() { + l += thrift.Binary.FieldBeginLength() + l += p.TracesAdvanceInfo.BLength() + } + return l +} + +func (p *SearchTraceOApiData) DeepCopy(s interface{}) error { + src, ok := s.(*SearchTraceOApiData) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Spans != nil { + p.Spans = make([]*span.OutputSpan, 0, len(src.Spans)) + for _, elem := range src.Spans { + var _elem *span.OutputSpan + if elem != nil { + _elem = &span.OutputSpan{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.Spans = append(p.Spans, _elem) + } + } + + var _tracesAdvanceInfo *trace0.TraceAdvanceInfo + if src.TracesAdvanceInfo != nil { + _tracesAdvanceInfo = &trace0.TraceAdvanceInfo{} + if err := _tracesAdvanceInfo.DeepCopy(src.TracesAdvanceInfo); err != nil { + return err + } + } + p.TracesAdvanceInfo = _tracesAdvanceInfo + + return nil +} + +func (p *SearchTraceTreeOApiRequest) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetLimit bool = false + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetLimit = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 8: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 10: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + if !issetLimit { + fieldId = 6 + goto RequiredFieldNotSetError + } + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceTreeOApiRequest[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +RequiredFieldNotSetError: + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_SearchTraceTreeOApiRequest[fieldId])) +} + +func (p *SearchTraceTreeOApiRequest) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.WorkspaceID = _field + return offset, nil +} + +func (p *SearchTraceTreeOApiRequest) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.TraceID = _field + return offset, nil +} + +func (p *SearchTraceTreeOApiRequest) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.StartTime = _field + return offset, nil +} + +func (p *SearchTraceTreeOApiRequest) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.EndTime = _field + return offset, nil +} + +func (p *SearchTraceTreeOApiRequest) FastReadField6(buf []byte) (int, error) { + offset := 0 + + var _field int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.Limit = _field + return offset, nil +} + +func (p *SearchTraceTreeOApiRequest) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *common.PlatformType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PlatformType = _field + return offset, nil +} + +func (p *SearchTraceTreeOApiRequest) FastReadField10(buf []byte) (int, error) { + offset := 0 + _field := filter.NewFilterFields() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Filters = _field + return offset, nil +} + +func (p *SearchTraceTreeOApiRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *SearchTraceTreeOApiRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *SearchTraceTreeOApiRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *SearchTraceTreeOApiRequest) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field6Length() + l += p.field8Length() + l += p.field10Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *SearchTraceTreeOApiRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetWorkspaceID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) + } + return offset +} + +func (p *SearchTraceTreeOApiRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTraceID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.TraceID) + } + return offset +} + +func (p *SearchTraceTreeOApiRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetStartTime() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) + offset += thrift.Binary.WriteI64(buf[offset:], *p.StartTime) + } + return offset +} + +func (p *SearchTraceTreeOApiRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEndTime() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 5) + offset += thrift.Binary.WriteI64(buf[offset:], *p.EndTime) + } + return offset +} + +func (p *SearchTraceTreeOApiRequest) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 6) + offset += thrift.Binary.WriteI32(buf[offset:], p.Limit) + return offset +} + +func (p *SearchTraceTreeOApiRequest) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPlatformType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PlatformType) + } + return offset +} + +func (p *SearchTraceTreeOApiRequest) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFilters() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) + offset += p.Filters.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *SearchTraceTreeOApiRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *SearchTraceTreeOApiRequest) field1Length() int { + l := 0 + if p.IsSetWorkspaceID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *SearchTraceTreeOApiRequest) field3Length() int { + l := 0 + if p.IsSetTraceID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.TraceID) + } + return l +} + +func (p *SearchTraceTreeOApiRequest) field4Length() int { + l := 0 + if p.IsSetStartTime() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *SearchTraceTreeOApiRequest) field5Length() int { + l := 0 + if p.IsSetEndTime() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *SearchTraceTreeOApiRequest) field6Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + return l +} + +func (p *SearchTraceTreeOApiRequest) field8Length() int { + l := 0 + if p.IsSetPlatformType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.PlatformType) + } + return l +} + +func (p *SearchTraceTreeOApiRequest) field10Length() int { + l := 0 + if p.IsSetFilters() { + l += thrift.Binary.FieldBeginLength() + l += p.Filters.BLength() + } + return l +} + +func (p *SearchTraceTreeOApiRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *SearchTraceTreeOApiRequest) DeepCopy(s interface{}) error { + src, ok := s.(*SearchTraceTreeOApiRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.WorkspaceID != nil { + tmp := *src.WorkspaceID + p.WorkspaceID = &tmp + } + + if src.TraceID != nil { + var tmp string + if *src.TraceID != "" { + tmp = kutils.StringDeepCopy(*src.TraceID) + } + p.TraceID = &tmp + } + + if src.StartTime != nil { + tmp := *src.StartTime + p.StartTime = &tmp + } + + if src.EndTime != nil { + tmp := *src.EndTime + p.EndTime = &tmp + } + + p.Limit = src.Limit + + if src.PlatformType != nil { + tmp := *src.PlatformType + p.PlatformType = &tmp + } + + var _filters *filter.FilterFields + if src.Filters != nil { + _filters = &filter.FilterFields{} + if err := _filters.DeepCopy(src.Filters); err != nil { + return err + } + } + p.Filters = _filters + var _base *base.Base if src.Base != nil { _base = &base.Base{} @@ -2613,7 +3680,7 @@ func (p *SearchTraceOApiRequest) DeepCopy(s interface{}) error { return nil } -func (p *SearchTraceOApiResponse) FastRead(buf []byte) (int, error) { +func (p *SearchTraceTreeOApiResponse) FastRead(buf []byte) (int, error) { var err error var offset int @@ -2699,12 +3766,12 @@ func (p *SearchTraceOApiResponse) FastRead(buf []byte) (int, error) { ReadFieldBeginError: return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceOApiResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceTreeOApiResponse[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *SearchTraceOApiResponse) FastReadField1(buf []byte) (int, error) { +func (p *SearchTraceTreeOApiResponse) FastReadField1(buf []byte) (int, error) { offset := 0 var _field *int32 @@ -2718,7 +3785,7 @@ func (p *SearchTraceOApiResponse) FastReadField1(buf []byte) (int, error) { return offset, nil } -func (p *SearchTraceOApiResponse) FastReadField2(buf []byte) (int, error) { +func (p *SearchTraceTreeOApiResponse) FastReadField2(buf []byte) (int, error) { offset := 0 var _field *string @@ -2732,7 +3799,7 @@ func (p *SearchTraceOApiResponse) FastReadField2(buf []byte) (int, error) { return offset, nil } -func (p *SearchTraceOApiResponse) FastReadField3(buf []byte) (int, error) { +func (p *SearchTraceTreeOApiResponse) FastReadField3(buf []byte) (int, error) { offset := 0 _field := NewSearchTraceOApiData() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -2744,7 +3811,7 @@ func (p *SearchTraceOApiResponse) FastReadField3(buf []byte) (int, error) { return offset, nil } -func (p *SearchTraceOApiResponse) FastReadField255(buf []byte) (int, error) { +func (p *SearchTraceTreeOApiResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -2756,11 +3823,11 @@ func (p *SearchTraceOApiResponse) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *SearchTraceOApiResponse) FastWrite(buf []byte) int { +func (p *SearchTraceTreeOApiResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *SearchTraceOApiResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *SearchTraceTreeOApiResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -2772,7 +3839,7 @@ func (p *SearchTraceOApiResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWri return offset } -func (p *SearchTraceOApiResponse) BLength() int { +func (p *SearchTraceTreeOApiResponse) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -2784,7 +3851,7 @@ func (p *SearchTraceOApiResponse) BLength() int { return l } -func (p *SearchTraceOApiResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *SearchTraceTreeOApiResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetCode() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) @@ -2793,7 +3860,7 @@ func (p *SearchTraceOApiResponse) fastWriteField1(buf []byte, w thrift.NocopyWri return offset } -func (p *SearchTraceOApiResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *SearchTraceTreeOApiResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetMsg() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) @@ -2802,7 +3869,7 @@ func (p *SearchTraceOApiResponse) fastWriteField2(buf []byte, w thrift.NocopyWri return offset } -func (p *SearchTraceOApiResponse) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *SearchTraceTreeOApiResponse) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetData() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) @@ -2811,7 +3878,7 @@ func (p *SearchTraceOApiResponse) fastWriteField3(buf []byte, w thrift.NocopyWri return offset } -func (p *SearchTraceOApiResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *SearchTraceTreeOApiResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBaseResp() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -2820,7 +3887,7 @@ func (p *SearchTraceOApiResponse) fastWriteField255(buf []byte, w thrift.NocopyW return offset } -func (p *SearchTraceOApiResponse) field1Length() int { +func (p *SearchTraceTreeOApiResponse) field1Length() int { l := 0 if p.IsSetCode() { l += thrift.Binary.FieldBeginLength() @@ -2829,7 +3896,7 @@ func (p *SearchTraceOApiResponse) field1Length() int { return l } -func (p *SearchTraceOApiResponse) field2Length() int { +func (p *SearchTraceTreeOApiResponse) field2Length() int { l := 0 if p.IsSetMsg() { l += thrift.Binary.FieldBeginLength() @@ -2838,7 +3905,7 @@ func (p *SearchTraceOApiResponse) field2Length() int { return l } -func (p *SearchTraceOApiResponse) field3Length() int { +func (p *SearchTraceTreeOApiResponse) field3Length() int { l := 0 if p.IsSetData() { l += thrift.Binary.FieldBeginLength() @@ -2847,7 +3914,7 @@ func (p *SearchTraceOApiResponse) field3Length() int { return l } -func (p *SearchTraceOApiResponse) field255Length() int { +func (p *SearchTraceTreeOApiResponse) field255Length() int { l := 0 if p.IsSetBaseResp() { l += thrift.Binary.FieldBeginLength() @@ -2856,8 +3923,8 @@ func (p *SearchTraceOApiResponse) field255Length() int { return l } -func (p *SearchTraceOApiResponse) DeepCopy(s interface{}) error { - src, ok := s.(*SearchTraceOApiResponse) +func (p *SearchTraceTreeOApiResponse) DeepCopy(s interface{}) error { + src, ok := s.(*SearchTraceTreeOApiResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -2896,7 +3963,7 @@ func (p *SearchTraceOApiResponse) DeepCopy(s interface{}) error { return nil } -func (p *SearchTraceOApiData) FastRead(buf []byte) (int, error) { +func (p *SearchTraceTreeOApiData) FastRead(buf []byte) (int, error) { var err error var offset int @@ -2960,14 +4027,14 @@ func (p *SearchTraceOApiData) FastRead(buf []byte) (int, error) { ReadFieldBeginError: return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceOApiData[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceTreeOApiData[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) RequiredFieldNotSetError: - return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_SearchTraceOApiData[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_SearchTraceTreeOApiData[fieldId])) } -func (p *SearchTraceOApiData) FastReadField1(buf []byte) (int, error) { +func (p *SearchTraceTreeOApiData) FastReadField1(buf []byte) (int, error) { offset := 0 _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) @@ -2992,7 +4059,7 @@ func (p *SearchTraceOApiData) FastReadField1(buf []byte) (int, error) { return offset, nil } -func (p *SearchTraceOApiData) FastReadField2(buf []byte) (int, error) { +func (p *SearchTraceTreeOApiData) FastReadField2(buf []byte) (int, error) { offset := 0 _field := trace0.NewTraceAdvanceInfo() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -3004,11 +4071,11 @@ func (p *SearchTraceOApiData) FastReadField2(buf []byte) (int, error) { return offset, nil } -func (p *SearchTraceOApiData) FastWrite(buf []byte) int { +func (p *SearchTraceTreeOApiData) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *SearchTraceOApiData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *SearchTraceTreeOApiData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -3018,7 +4085,7 @@ func (p *SearchTraceOApiData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) return offset } -func (p *SearchTraceOApiData) BLength() int { +func (p *SearchTraceTreeOApiData) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -3028,7 +4095,7 @@ func (p *SearchTraceOApiData) BLength() int { return l } -func (p *SearchTraceOApiData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *SearchTraceTreeOApiData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) listBeginOffset := offset @@ -3042,7 +4109,7 @@ func (p *SearchTraceOApiData) fastWriteField1(buf []byte, w thrift.NocopyWriter) return offset } -func (p *SearchTraceOApiData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *SearchTraceTreeOApiData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetTracesAdvanceInfo() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) @@ -3051,7 +4118,7 @@ func (p *SearchTraceOApiData) fastWriteField2(buf []byte, w thrift.NocopyWriter) return offset } -func (p *SearchTraceOApiData) field1Length() int { +func (p *SearchTraceTreeOApiData) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.ListBeginLength() @@ -3062,7 +4129,7 @@ func (p *SearchTraceOApiData) field1Length() int { return l } -func (p *SearchTraceOApiData) field2Length() int { +func (p *SearchTraceTreeOApiData) field2Length() int { l := 0 if p.IsSetTracesAdvanceInfo() { l += thrift.Binary.FieldBeginLength() @@ -3071,8 +4138,8 @@ func (p *SearchTraceOApiData) field2Length() int { return l } -func (p *SearchTraceOApiData) DeepCopy(s interface{}) error { - src, ok := s.(*SearchTraceOApiData) +func (p *SearchTraceTreeOApiData) DeepCopy(s interface{}) error { + src, ok := s.(*SearchTraceTreeOApiData) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -5835,6 +6902,240 @@ func (p *OpenAPIServiceSearchTraceOApiResult) DeepCopy(s interface{}) error { return nil } +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceSearchTraceTreeOApiArgs[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewSearchTraceTreeOApiRequest() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Req = _field + return offset, nil +} + +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Req.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.Req.BLength() + return l +} + +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) DeepCopy(s interface{}) error { + src, ok := s.(*OpenAPIServiceSearchTraceTreeOApiArgs) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _req *SearchTraceTreeOApiRequest + if src.Req != nil { + _req = &SearchTraceTreeOApiRequest{} + if err := _req.DeepCopy(src.Req); err != nil { + return err + } + } + p.Req = _req + + return nil +} + +func (p *OpenAPIServiceSearchTraceTreeOApiResult) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField0(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_OpenAPIServiceSearchTraceTreeOApiResult[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *OpenAPIServiceSearchTraceTreeOApiResult) FastReadField0(buf []byte) (int, error) { + offset := 0 + _field := NewSearchTraceTreeOApiResponse() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Success = _field + return offset, nil +} + +func (p *OpenAPIServiceSearchTraceTreeOApiResult) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *OpenAPIServiceSearchTraceTreeOApiResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField0(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *OpenAPIServiceSearchTraceTreeOApiResult) BLength() int { + l := 0 + if p != nil { + l += p.field0Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *OpenAPIServiceSearchTraceTreeOApiResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSuccess() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) + offset += p.Success.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *OpenAPIServiceSearchTraceTreeOApiResult) field0Length() int { + l := 0 + if p.IsSetSuccess() { + l += thrift.Binary.FieldBeginLength() + l += p.Success.BLength() + } + return l +} + +func (p *OpenAPIServiceSearchTraceTreeOApiResult) DeepCopy(s interface{}) error { + src, ok := s.(*OpenAPIServiceSearchTraceTreeOApiResult) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _success *SearchTraceTreeOApiResponse + if src.Success != nil { + _success = &SearchTraceTreeOApiResponse{} + if err := _success.DeepCopy(src.Success); err != nil { + return err + } + } + p.Success = _success + + return nil +} + func (p *OpenAPIServiceListSpansOApiArgs) FastRead(buf []byte) (int, error) { var err error @@ -6795,6 +8096,14 @@ func (p *OpenAPIServiceSearchTraceOApiResult) GetResult() interface{} { return p.Success } +func (p *OpenAPIServiceSearchTraceTreeOApiArgs) GetFirstArgument() interface{} { + return p.Req +} + +func (p *OpenAPIServiceSearchTraceTreeOApiResult) GetResult() interface{} { + return p.Success +} + func (p *OpenAPIServiceListSpansOApiArgs) GetFirstArgument() interface{} { return p.Req } diff --git a/backend/kitex_gen/coze/loop/observability/openapi/openapiservice/client.go b/backend/kitex_gen/coze/loop/observability/openapi/openapiservice/client.go index cf24a4d87..e66aaf856 100644 --- a/backend/kitex_gen/coze/loop/observability/openapi/openapiservice/client.go +++ b/backend/kitex_gen/coze/loop/observability/openapi/openapiservice/client.go @@ -14,6 +14,7 @@ type Client interface { IngestTraces(ctx context.Context, req *openapi.IngestTracesRequest, callOptions ...callopt.Option) (r *openapi.IngestTracesResponse, err error) OtelIngestTraces(ctx context.Context, req *openapi.OtelIngestTracesRequest, callOptions ...callopt.Option) (r *openapi.OtelIngestTracesResponse, err error) SearchTraceOApi(ctx context.Context, req *openapi.SearchTraceOApiRequest, callOptions ...callopt.Option) (r *openapi.SearchTraceOApiResponse, err error) + SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest, callOptions ...callopt.Option) (r *openapi.SearchTraceTreeOApiResponse, err error) ListSpansOApi(ctx context.Context, req *openapi.ListSpansOApiRequest, callOptions ...callopt.Option) (r *openapi.ListSpansOApiResponse, err error) ListTracesOApi(ctx context.Context, req *openapi.ListTracesOApiRequest, callOptions ...callopt.Option) (r *openapi.ListTracesOApiResponse, err error) CreateAnnotation(ctx context.Context, req *openapi.CreateAnnotationRequest, callOptions ...callopt.Option) (r *openapi.CreateAnnotationResponse, err error) @@ -64,6 +65,11 @@ func (p *kOpenAPIServiceClient) SearchTraceOApi(ctx context.Context, req *openap return p.kClient.SearchTraceOApi(ctx, req) } +func (p *kOpenAPIServiceClient) SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest, callOptions ...callopt.Option) (r *openapi.SearchTraceTreeOApiResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.SearchTraceTreeOApi(ctx, req) +} + func (p *kOpenAPIServiceClient) ListSpansOApi(ctx context.Context, req *openapi.ListSpansOApiRequest, callOptions ...callopt.Option) (r *openapi.ListSpansOApiResponse, err error) { ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.ListSpansOApi(ctx, req) diff --git a/backend/kitex_gen/coze/loop/observability/openapi/openapiservice/openapiservice.go b/backend/kitex_gen/coze/loop/observability/openapi/openapiservice/openapiservice.go index 6f63fb847..5d95da287 100644 --- a/backend/kitex_gen/coze/loop/observability/openapi/openapiservice/openapiservice.go +++ b/backend/kitex_gen/coze/loop/observability/openapi/openapiservice/openapiservice.go @@ -34,6 +34,13 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "SearchTraceTreeOApi": kitex.NewMethodInfo( + searchTraceTreeOApiHandler, + newOpenAPIServiceSearchTraceTreeOApiArgs, + newOpenAPIServiceSearchTraceTreeOApiResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), "ListSpansOApi": kitex.NewMethodInfo( listSpansOApiHandler, newOpenAPIServiceListSpansOApiArgs, @@ -152,6 +159,25 @@ func newOpenAPIServiceSearchTraceOApiResult() interface{} { return openapi.NewOpenAPIServiceSearchTraceOApiResult() } +func searchTraceTreeOApiHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*openapi.OpenAPIServiceSearchTraceTreeOApiArgs) + realResult := result.(*openapi.OpenAPIServiceSearchTraceTreeOApiResult) + success, err := handler.(openapi.OpenAPIService).SearchTraceTreeOApi(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newOpenAPIServiceSearchTraceTreeOApiArgs() interface{} { + return openapi.NewOpenAPIServiceSearchTraceTreeOApiArgs() +} + +func newOpenAPIServiceSearchTraceTreeOApiResult() interface{} { + return openapi.NewOpenAPIServiceSearchTraceTreeOApiResult() +} + func listSpansOApiHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { realArg := arg.(*openapi.OpenAPIServiceListSpansOApiArgs) realResult := result.(*openapi.OpenAPIServiceListSpansOApiResult) @@ -270,6 +296,16 @@ func (p *kClient) SearchTraceOApi(ctx context.Context, req *openapi.SearchTraceO return _result.GetSuccess(), nil } +func (p *kClient) SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest) (r *openapi.SearchTraceTreeOApiResponse, err error) { + var _args openapi.OpenAPIServiceSearchTraceTreeOApiArgs + _args.Req = req + var _result openapi.OpenAPIServiceSearchTraceTreeOApiResult + if err = p.c.Call(ctx, "SearchTraceTreeOApi", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + func (p *kClient) ListSpansOApi(ctx context.Context, req *openapi.ListSpansOApiRequest) (r *openapi.ListSpansOApiResponse, err error) { var _args openapi.OpenAPIServiceListSpansOApiArgs _args.Req = req diff --git a/backend/kitex_gen/coze/loop/observability/trace/coze.loop.observability.trace.go b/backend/kitex_gen/coze/loop/observability/trace/coze.loop.observability.trace.go index 99322c8a5..5fb6a631b 100644 --- a/backend/kitex_gen/coze/loop/observability/trace/coze.loop.observability.trace.go +++ b/backend/kitex_gen/coze/loop/observability/trace/coze.loop.observability.trace.go @@ -2725,58 +2725,136 @@ func (p *GetTraceResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type TraceQueryParams struct { - TraceID string `thrift:"trace_id,1,required" frugal:"1,required,string" form:"trace_id,required" json:"trace_id,required" query:"trace_id,required"` - StartTime int64 `thrift:"start_time,2,required" frugal:"2,required,i64" json:"start_time" form:"start_time,required" query:"start_time,required"` - EndTime int64 `thrift:"end_time,3,required" frugal:"3,required,i64" json:"end_time" form:"end_time,required" query:"end_time,required"` +type SearchTraceTreeRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + TraceID string `thrift:"trace_id,2,required" frugal:"2,required,string" json:"trace_id" form:"trace_id,required" ` + // ms + StartTime int64 `thrift:"start_time,3,required" frugal:"3,required,i64" json:"start_time" form:"start_time,required" ` + // ms + EndTime int64 `thrift:"end_time,4,required" frugal:"4,required,i64" json:"end_time" form:"end_time,required" ` + PlatformType *common.PlatformType `thrift:"platform_type,8,optional" frugal:"8,optional,string" form:"platform_type" json:"platform_type,omitempty"` + Filters *filter.FilterFields `thrift:"filters,10,optional" frugal:"10,optional,filter.FilterFields" form:"filters" json:"filters,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewTraceQueryParams() *TraceQueryParams { - return &TraceQueryParams{} +func NewSearchTraceTreeRequest() *SearchTraceTreeRequest { + return &SearchTraceTreeRequest{} } -func (p *TraceQueryParams) InitDefault() { +func (p *SearchTraceTreeRequest) InitDefault() { } -func (p *TraceQueryParams) GetTraceID() (v string) { +func (p *SearchTraceTreeRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID + } + return +} + +func (p *SearchTraceTreeRequest) GetTraceID() (v string) { if p != nil { return p.TraceID } return } -func (p *TraceQueryParams) GetStartTime() (v int64) { +func (p *SearchTraceTreeRequest) GetStartTime() (v int64) { if p != nil { return p.StartTime } return } -func (p *TraceQueryParams) GetEndTime() (v int64) { +func (p *SearchTraceTreeRequest) GetEndTime() (v int64) { if p != nil { return p.EndTime } return } -func (p *TraceQueryParams) SetTraceID(val string) { + +var SearchTraceTreeRequest_PlatformType_DEFAULT common.PlatformType + +func (p *SearchTraceTreeRequest) GetPlatformType() (v common.PlatformType) { + if p == nil { + return + } + if !p.IsSetPlatformType() { + return SearchTraceTreeRequest_PlatformType_DEFAULT + } + return *p.PlatformType +} + +var SearchTraceTreeRequest_Filters_DEFAULT *filter.FilterFields + +func (p *SearchTraceTreeRequest) GetFilters() (v *filter.FilterFields) { + if p == nil { + return + } + if !p.IsSetFilters() { + return SearchTraceTreeRequest_Filters_DEFAULT + } + return p.Filters +} + +var SearchTraceTreeRequest_Base_DEFAULT *base.Base + +func (p *SearchTraceTreeRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return SearchTraceTreeRequest_Base_DEFAULT + } + return p.Base +} +func (p *SearchTraceTreeRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val +} +func (p *SearchTraceTreeRequest) SetTraceID(val string) { p.TraceID = val } -func (p *TraceQueryParams) SetStartTime(val int64) { +func (p *SearchTraceTreeRequest) SetStartTime(val int64) { p.StartTime = val } -func (p *TraceQueryParams) SetEndTime(val int64) { +func (p *SearchTraceTreeRequest) SetEndTime(val int64) { p.EndTime = val } +func (p *SearchTraceTreeRequest) SetPlatformType(val *common.PlatformType) { + p.PlatformType = val +} +func (p *SearchTraceTreeRequest) SetFilters(val *filter.FilterFields) { + p.Filters = val +} +func (p *SearchTraceTreeRequest) SetBase(val *base.Base) { + p.Base = val +} -var fieldIDToName_TraceQueryParams = map[int16]string{ - 1: "trace_id", - 2: "start_time", - 3: "end_time", +var fieldIDToName_SearchTraceTreeRequest = map[int16]string{ + 1: "workspace_id", + 2: "trace_id", + 3: "start_time", + 4: "end_time", + 8: "platform_type", + 10: "filters", + 255: "Base", } -func (p *TraceQueryParams) Read(iprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeRequest) IsSetPlatformType() bool { + return p.PlatformType != nil +} + +func (p *SearchTraceTreeRequest) IsSetFilters() bool { + return p.Filters != nil +} + +func (p *SearchTraceTreeRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *SearchTraceTreeRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetWorkspaceID bool = false var issetTraceID bool = false var issetStartTime bool = false var issetEndTime bool = false @@ -2796,20 +2874,20 @@ func (p *TraceQueryParams) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetTraceID = true + issetWorkspaceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetStartTime = true + issetTraceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -2818,10 +2896,43 @@ func (p *TraceQueryParams) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } + issetStartTime = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I64 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } issetEndTime = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 8: + if fieldTypeId == thrift.STRING { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 10: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -2835,27 +2946,32 @@ func (p *TraceQueryParams) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetTraceID { + if !issetWorkspaceID { fieldId = 1 goto RequiredFieldNotSetError } - if !issetStartTime { + if !issetTraceID { fieldId = 2 goto RequiredFieldNotSetError } - if !issetEndTime { + if !issetStartTime { fieldId = 3 goto RequiredFieldNotSetError } + + if !issetEndTime { + fieldId = 4 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceQueryParams[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceTreeRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -2864,10 +2980,21 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_TraceQueryParams[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_SearchTraceTreeRequest[fieldId])) } -func (p *TraceQueryParams) ReadField1(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *SearchTraceTreeRequest) ReadField2(iprot thrift.TProtocol) error { var _field string if v, err := iprot.ReadString(); err != nil { @@ -2878,7 +3005,7 @@ func (p *TraceQueryParams) ReadField1(iprot thrift.TProtocol) error { p.TraceID = _field return nil } -func (p *TraceQueryParams) ReadField2(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeRequest) ReadField3(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -2889,7 +3016,7 @@ func (p *TraceQueryParams) ReadField2(iprot thrift.TProtocol) error { p.StartTime = _field return nil } -func (p *TraceQueryParams) ReadField3(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeRequest) ReadField4(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -2900,10 +3027,37 @@ func (p *TraceQueryParams) ReadField3(iprot thrift.TProtocol) error { p.EndTime = _field return nil } +func (p *SearchTraceTreeRequest) ReadField8(iprot thrift.TProtocol) error { -func (p *TraceQueryParams) Write(oprot thrift.TProtocol) (err error) { + var _field *common.PlatformType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PlatformType = _field + return nil +} +func (p *SearchTraceTreeRequest) ReadField10(iprot thrift.TProtocol) error { + _field := filter.NewFilterFields() + if err := _field.Read(iprot); err != nil { + return err + } + p.Filters = _field + return nil +} +func (p *SearchTraceTreeRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *SearchTraceTreeRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("TraceQueryParams"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceTreeRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -2919,6 +3073,22 @@ func (p *TraceQueryParams) Write(oprot thrift.TProtocol) (err error) { fieldId = 3 goto WriteFieldError } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -2937,11 +3107,11 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TraceQueryParams) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 1); err != nil { +func (p *SearchTraceTreeRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(p.TraceID); err != nil { + if err := oprot.WriteI64(p.WorkspaceID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2953,11 +3123,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *TraceQueryParams) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("start_time", thrift.I64, 2); err != nil { +func (p *SearchTraceTreeRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.StartTime); err != nil { + if err := oprot.WriteString(p.TraceID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2969,11 +3139,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *TraceQueryParams) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("end_time", thrift.I64, 3); err != nil { +func (p *SearchTraceTreeRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("start_time", thrift.I64, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.EndTime); err != nil { + if err := oprot.WriteI64(p.StartTime); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2985,139 +3155,241 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } - -func (p *TraceQueryParams) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("TraceQueryParams(%+v)", *p) - -} - -func (p *TraceQueryParams) DeepEqual(ano *TraceQueryParams) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.TraceID) { - return false +func (p *SearchTraceTreeRequest) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("end_time", thrift.I64, 4); err != nil { + goto WriteFieldBeginError } - if !p.Field2DeepEqual(ano.StartTime) { - return false + if err := oprot.WriteI64(p.EndTime); err != nil { + return err } - if !p.Field3DeepEqual(ano.EndTime) { - return false + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } - return true + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } - -func (p *TraceQueryParams) Field1DeepEqual(src string) bool { - - if strings.Compare(p.TraceID, src) != 0 { - return false +func (p *SearchTraceTreeRequest) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetPlatformType() { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PlatformType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return true + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) } -func (p *TraceQueryParams) Field2DeepEqual(src int64) bool { - - if p.StartTime != src { +func (p *SearchTraceTreeRequest) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetFilters() { + if err = oprot.WriteFieldBegin("filters", thrift.STRUCT, 10); err != nil { + goto WriteFieldBeginError + } + if err := p.Filters.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} +func (p *SearchTraceTreeRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *SearchTraceTreeRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("SearchTraceTreeRequest(%+v)", *p) + +} + +func (p *SearchTraceTreeRequest) DeepEqual(ano *SearchTraceTreeRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.TraceID) { + return false + } + if !p.Field3DeepEqual(ano.StartTime) { + return false + } + if !p.Field4DeepEqual(ano.EndTime) { + return false + } + if !p.Field8DeepEqual(ano.PlatformType) { + return false + } + if !p.Field10DeepEqual(ano.Filters) { + return false + } + if !p.Field255DeepEqual(ano.Base) { return false } return true } -func (p *TraceQueryParams) Field3DeepEqual(src int64) bool { - if p.EndTime != src { +func (p *SearchTraceTreeRequest) Field1DeepEqual(src int64) bool { + + if p.WorkspaceID != src { return false } return true } +func (p *SearchTraceTreeRequest) Field2DeepEqual(src string) bool { -type BatchGetTracesAdvanceInfoRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - Traces []*TraceQueryParams `thrift:"traces,2,required" frugal:"2,required,list" form:"traces,required" json:"traces,required"` - PlatformType *common.PlatformType `thrift:"platform_type,6,optional" frugal:"6,optional,string" form:"platform_type" json:"platform_type,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + if strings.Compare(p.TraceID, src) != 0 { + return false + } + return true } +func (p *SearchTraceTreeRequest) Field3DeepEqual(src int64) bool { -func NewBatchGetTracesAdvanceInfoRequest() *BatchGetTracesAdvanceInfoRequest { - return &BatchGetTracesAdvanceInfoRequest{} + if p.StartTime != src { + return false + } + return true } +func (p *SearchTraceTreeRequest) Field4DeepEqual(src int64) bool { -func (p *BatchGetTracesAdvanceInfoRequest) InitDefault() { + if p.EndTime != src { + return false + } + return true } +func (p *SearchTraceTreeRequest) Field8DeepEqual(src *common.PlatformType) bool { -func (p *BatchGetTracesAdvanceInfoRequest) GetWorkspaceID() (v int64) { - if p != nil { - return p.WorkspaceID + if p.PlatformType == src { + return true + } else if p.PlatformType == nil || src == nil { + return false } - return + if strings.Compare(*p.PlatformType, *src) != 0 { + return false + } + return true } +func (p *SearchTraceTreeRequest) Field10DeepEqual(src *filter.FilterFields) bool { -func (p *BatchGetTracesAdvanceInfoRequest) GetTraces() (v []*TraceQueryParams) { + if !p.Filters.DeepEqual(src) { + return false + } + return true +} +func (p *SearchTraceTreeRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type SearchTraceTreeResponse struct { + Spans []*span.OutputSpan `thrift:"spans,1,required" frugal:"1,required,list" form:"spans,required" json:"spans,required" query:"spans,required"` + TracesAdvanceInfo *TraceAdvanceInfo `thrift:"traces_advance_info,2,optional" frugal:"2,optional,TraceAdvanceInfo" form:"traces_advance_info" json:"traces_advance_info,omitempty" query:"traces_advance_info"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +} + +func NewSearchTraceTreeResponse() *SearchTraceTreeResponse { + return &SearchTraceTreeResponse{} +} + +func (p *SearchTraceTreeResponse) InitDefault() { +} + +func (p *SearchTraceTreeResponse) GetSpans() (v []*span.OutputSpan) { if p != nil { - return p.Traces + return p.Spans } return } -var BatchGetTracesAdvanceInfoRequest_PlatformType_DEFAULT common.PlatformType +var SearchTraceTreeResponse_TracesAdvanceInfo_DEFAULT *TraceAdvanceInfo -func (p *BatchGetTracesAdvanceInfoRequest) GetPlatformType() (v common.PlatformType) { +func (p *SearchTraceTreeResponse) GetTracesAdvanceInfo() (v *TraceAdvanceInfo) { if p == nil { return } - if !p.IsSetPlatformType() { - return BatchGetTracesAdvanceInfoRequest_PlatformType_DEFAULT + if !p.IsSetTracesAdvanceInfo() { + return SearchTraceTreeResponse_TracesAdvanceInfo_DEFAULT } - return *p.PlatformType + return p.TracesAdvanceInfo } -var BatchGetTracesAdvanceInfoRequest_Base_DEFAULT *base.Base +var SearchTraceTreeResponse_BaseResp_DEFAULT *base.BaseResp -func (p *BatchGetTracesAdvanceInfoRequest) GetBase() (v *base.Base) { +func (p *SearchTraceTreeResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } - if !p.IsSetBase() { - return BatchGetTracesAdvanceInfoRequest_Base_DEFAULT + if !p.IsSetBaseResp() { + return SearchTraceTreeResponse_BaseResp_DEFAULT } - return p.Base -} -func (p *BatchGetTracesAdvanceInfoRequest) SetWorkspaceID(val int64) { - p.WorkspaceID = val + return p.BaseResp } -func (p *BatchGetTracesAdvanceInfoRequest) SetTraces(val []*TraceQueryParams) { - p.Traces = val +func (p *SearchTraceTreeResponse) SetSpans(val []*span.OutputSpan) { + p.Spans = val } -func (p *BatchGetTracesAdvanceInfoRequest) SetPlatformType(val *common.PlatformType) { - p.PlatformType = val +func (p *SearchTraceTreeResponse) SetTracesAdvanceInfo(val *TraceAdvanceInfo) { + p.TracesAdvanceInfo = val } -func (p *BatchGetTracesAdvanceInfoRequest) SetBase(val *base.Base) { - p.Base = val +func (p *SearchTraceTreeResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val } -var fieldIDToName_BatchGetTracesAdvanceInfoRequest = map[int16]string{ - 1: "workspace_id", - 2: "traces", - 6: "platform_type", - 255: "Base", +var fieldIDToName_SearchTraceTreeResponse = map[int16]string{ + 1: "spans", + 2: "traces_advance_info", + 255: "BaseResp", } -func (p *BatchGetTracesAdvanceInfoRequest) IsSetPlatformType() bool { - return p.PlatformType != nil +func (p *SearchTraceTreeResponse) IsSetTracesAdvanceInfo() bool { + return p.TracesAdvanceInfo != nil } -func (p *BatchGetTracesAdvanceInfoRequest) IsSetBase() bool { - return p.Base != nil +func (p *SearchTraceTreeResponse) IsSetBaseResp() bool { + return p.BaseResp != nil } -func (p *BatchGetTracesAdvanceInfoRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetWorkspaceID bool = false - var issetTraces bool = false + var issetSpans bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -3134,28 +3406,19 @@ func (p *BatchGetTracesAdvanceInfoRequest) Read(iprot thrift.TProtocol) (err err switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.LIST { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetWorkspaceID = true + issetSpans = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetTraces = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRING { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -3180,22 +3443,17 @@ func (p *BatchGetTracesAdvanceInfoRequest) Read(iprot thrift.TProtocol) (err err goto ReadStructEndError } - if !issetWorkspaceID { + if !issetSpans { fieldId = 1 goto RequiredFieldNotSetError } - - if !issetTraces { - fieldId = 2 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetTracesAdvanceInfoRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceTreeResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -3204,27 +3462,16 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_BatchGetTracesAdvanceInfoRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_SearchTraceTreeResponse[fieldId])) } -func (p *BatchGetTracesAdvanceInfoRequest) ReadField1(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.WorkspaceID = _field - return nil -} -func (p *BatchGetTracesAdvanceInfoRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *SearchTraceTreeResponse) ReadField1(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { return err } - _field := make([]*TraceQueryParams, 0, size) - values := make([]TraceQueryParams, size) + _field := make([]*span.OutputSpan, 0, size) + values := make([]span.OutputSpan, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -3238,32 +3485,29 @@ func (p *BatchGetTracesAdvanceInfoRequest) ReadField2(iprot thrift.TProtocol) er if err := iprot.ReadListEnd(); err != nil { return err } - p.Traces = _field + p.Spans = _field return nil } -func (p *BatchGetTracesAdvanceInfoRequest) ReadField6(iprot thrift.TProtocol) error { - - var _field *common.PlatformType - if v, err := iprot.ReadString(); err != nil { +func (p *SearchTraceTreeResponse) ReadField2(iprot thrift.TProtocol) error { + _field := NewTraceAdvanceInfo() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.PlatformType = _field + p.TracesAdvanceInfo = _field return nil } -func (p *BatchGetTracesAdvanceInfoRequest) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBase() +func (p *SearchTraceTreeResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err } - p.Base = _field + p.BaseResp = _field return nil } -func (p *BatchGetTracesAdvanceInfoRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *SearchTraceTreeResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchGetTracesAdvanceInfoRequest"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceTreeResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -3275,10 +3519,6 @@ func (p *BatchGetTracesAdvanceInfoRequest) Write(oprot thrift.TProtocol) (err er fieldId = 2 goto WriteFieldError } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -3301,30 +3541,14 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *BatchGetTracesAdvanceInfoRequest) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *BatchGetTracesAdvanceInfoRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("traces", thrift.LIST, 2); err != nil { +func (p *SearchTraceTreeResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("spans", thrift.LIST, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Traces)); err != nil { + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Spans)); err != nil { return err } - for _, v := range p.Traces { + for _, v := range p.Spans { if err := v.Write(oprot); err != nil { return err } @@ -3337,16 +3561,16 @@ func (p *BatchGetTracesAdvanceInfoRequest) writeField2(oprot thrift.TProtocol) ( } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *BatchGetTracesAdvanceInfoRequest) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 6); err != nil { +func (p *SearchTraceTreeResponse) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetTracesAdvanceInfo() { + if err = oprot.WriteFieldBegin("traces_advance_info", thrift.STRUCT, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.PlatformType); err != nil { + if err := p.TracesAdvanceInfo.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3355,16 +3579,16 @@ func (p *BatchGetTracesAdvanceInfoRequest) writeField6(oprot thrift.TProtocol) ( } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *BatchGetTracesAdvanceInfoRequest) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBase() { - if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { +func (p *SearchTraceTreeResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } - if err := p.Base.Write(oprot); err != nil { + if err := p.BaseResp.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3378,48 +3602,38 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *BatchGetTracesAdvanceInfoRequest) String() string { +func (p *SearchTraceTreeResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("BatchGetTracesAdvanceInfoRequest(%+v)", *p) + return fmt.Sprintf("SearchTraceTreeResponse(%+v)", *p) } -func (p *BatchGetTracesAdvanceInfoRequest) DeepEqual(ano *BatchGetTracesAdvanceInfoRequest) bool { +func (p *SearchTraceTreeResponse) DeepEqual(ano *SearchTraceTreeResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field2DeepEqual(ano.Traces) { + if !p.Field1DeepEqual(ano.Spans) { return false } - if !p.Field6DeepEqual(ano.PlatformType) { + if !p.Field2DeepEqual(ano.TracesAdvanceInfo) { return false } - if !p.Field255DeepEqual(ano.Base) { + if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *BatchGetTracesAdvanceInfoRequest) Field1DeepEqual(src int64) bool { - - if p.WorkspaceID != src { - return false - } - return true -} -func (p *BatchGetTracesAdvanceInfoRequest) Field2DeepEqual(src []*TraceQueryParams) bool { +func (p *SearchTraceTreeResponse) Field1DeepEqual(src []*span.OutputSpan) bool { - if len(p.Traces) != len(src) { + if len(p.Spans) != len(src) { return false } - for i, v := range p.Traces { + for i, v := range p.Spans { _src := src[i] if !v.DeepEqual(_src) { return false @@ -3427,76 +3641,76 @@ func (p *BatchGetTracesAdvanceInfoRequest) Field2DeepEqual(src []*TraceQueryPara } return true } -func (p *BatchGetTracesAdvanceInfoRequest) Field6DeepEqual(src *common.PlatformType) bool { +func (p *SearchTraceTreeResponse) Field2DeepEqual(src *TraceAdvanceInfo) bool { - if p.PlatformType == src { - return true - } else if p.PlatformType == nil || src == nil { - return false - } - if strings.Compare(*p.PlatformType, *src) != 0 { + if !p.TracesAdvanceInfo.DeepEqual(src) { return false } return true } -func (p *BatchGetTracesAdvanceInfoRequest) Field255DeepEqual(src *base.Base) bool { +func (p *SearchTraceTreeResponse) Field255DeepEqual(src *base.BaseResp) bool { - if !p.Base.DeepEqual(src) { + if !p.BaseResp.DeepEqual(src) { return false } return true } -type BatchGetTracesAdvanceInfoResponse struct { - TracesAdvanceInfo []*TraceAdvanceInfo `thrift:"traces_advance_info,1,required" frugal:"1,required,list" form:"traces_advance_info,required" json:"traces_advance_info,required" query:"traces_advance_info,required"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +type TraceQueryParams struct { + TraceID string `thrift:"trace_id,1,required" frugal:"1,required,string" form:"trace_id,required" json:"trace_id,required" query:"trace_id,required"` + StartTime int64 `thrift:"start_time,2,required" frugal:"2,required,i64" json:"start_time" form:"start_time,required" query:"start_time,required"` + EndTime int64 `thrift:"end_time,3,required" frugal:"3,required,i64" json:"end_time" form:"end_time,required" query:"end_time,required"` } -func NewBatchGetTracesAdvanceInfoResponse() *BatchGetTracesAdvanceInfoResponse { - return &BatchGetTracesAdvanceInfoResponse{} +func NewTraceQueryParams() *TraceQueryParams { + return &TraceQueryParams{} } -func (p *BatchGetTracesAdvanceInfoResponse) InitDefault() { +func (p *TraceQueryParams) InitDefault() { } -func (p *BatchGetTracesAdvanceInfoResponse) GetTracesAdvanceInfo() (v []*TraceAdvanceInfo) { +func (p *TraceQueryParams) GetTraceID() (v string) { if p != nil { - return p.TracesAdvanceInfo + return p.TraceID } return } -var BatchGetTracesAdvanceInfoResponse_BaseResp_DEFAULT *base.BaseResp - -func (p *BatchGetTracesAdvanceInfoResponse) GetBaseResp() (v *base.BaseResp) { - if p == nil { - return +func (p *TraceQueryParams) GetStartTime() (v int64) { + if p != nil { + return p.StartTime } - if !p.IsSetBaseResp() { - return BatchGetTracesAdvanceInfoResponse_BaseResp_DEFAULT + return +} + +func (p *TraceQueryParams) GetEndTime() (v int64) { + if p != nil { + return p.EndTime } - return p.BaseResp + return } -func (p *BatchGetTracesAdvanceInfoResponse) SetTracesAdvanceInfo(val []*TraceAdvanceInfo) { - p.TracesAdvanceInfo = val +func (p *TraceQueryParams) SetTraceID(val string) { + p.TraceID = val } -func (p *BatchGetTracesAdvanceInfoResponse) SetBaseResp(val *base.BaseResp) { - p.BaseResp = val +func (p *TraceQueryParams) SetStartTime(val int64) { + p.StartTime = val } - -var fieldIDToName_BatchGetTracesAdvanceInfoResponse = map[int16]string{ - 1: "traces_advance_info", - 255: "BaseResp", +func (p *TraceQueryParams) SetEndTime(val int64) { + p.EndTime = val } -func (p *BatchGetTracesAdvanceInfoResponse) IsSetBaseResp() bool { - return p.BaseResp != nil +var fieldIDToName_TraceQueryParams = map[int16]string{ + 1: "trace_id", + 2: "start_time", + 3: "end_time", } -func (p *BatchGetTracesAdvanceInfoResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *TraceQueryParams) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetTracesAdvanceInfo bool = false + var issetTraceID bool = false + var issetStartTime bool = false + var issetEndTime bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -3513,19 +3727,29 @@ func (p *BatchGetTracesAdvanceInfoResponse) Read(iprot thrift.TProtocol) (err er switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetTracesAdvanceInfo = true + issetTraceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 255: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField255(iprot); err != nil { + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetStartTime = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } + issetEndTime = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -3542,17 +3766,27 @@ func (p *BatchGetTracesAdvanceInfoResponse) Read(iprot thrift.TProtocol) (err er goto ReadStructEndError } - if !issetTracesAdvanceInfo { + if !issetTraceID { fieldId = 1 goto RequiredFieldNotSetError } + + if !issetStartTime { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetEndTime { + fieldId = 3 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetTracesAdvanceInfoResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceQueryParams[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -3561,44 +3795,46 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_BatchGetTracesAdvanceInfoResponse[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_TraceQueryParams[fieldId])) } -func (p *BatchGetTracesAdvanceInfoResponse) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { +func (p *TraceQueryParams) ReadField1(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { return err + } else { + _field = v } - _field := make([]*TraceAdvanceInfo, 0, size) - values := make([]TraceAdvanceInfo, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } + p.TraceID = _field + return nil +} +func (p *TraceQueryParams) ReadField2(iprot thrift.TProtocol) error { - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { + var _field int64 + if v, err := iprot.ReadI64(); err != nil { return err + } else { + _field = v } - p.TracesAdvanceInfo = _field + p.StartTime = _field return nil } -func (p *BatchGetTracesAdvanceInfoResponse) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBaseResp() - if err := _field.Read(iprot); err != nil { +func (p *TraceQueryParams) ReadField3(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { return err + } else { + _field = v } - p.BaseResp = _field + p.EndTime = _field return nil } -func (p *BatchGetTracesAdvanceInfoResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *TraceQueryParams) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchGetTracesAdvanceInfoResponse"); err != nil { + if err = oprot.WriteStructBegin("TraceQueryParams"); err != nil { goto WriteStructBeginError } if p != nil { @@ -3606,8 +3842,12 @@ func (p *BatchGetTracesAdvanceInfoResponse) Write(oprot thrift.TProtocol) (err e fieldId = 1 goto WriteFieldError } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 goto WriteFieldError } } @@ -3628,19 +3868,27 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *BatchGetTracesAdvanceInfoResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("traces_advance_info", thrift.LIST, 1); err != nil { +func (p *TraceQueryParams) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.TracesAdvanceInfo)); err != nil { + if err := oprot.WriteString(p.TraceID); err != nil { return err } - for _, v := range p.TracesAdvanceInfo { - if err := v.Write(oprot); err != nil { - return err - } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } - if err := oprot.WriteListEnd(); err != nil { + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *TraceQueryParams) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("start_time", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.StartTime); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3648,131 +3896,159 @@ func (p *BatchGetTracesAdvanceInfoResponse) writeField1(oprot thrift.TProtocol) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *BatchGetTracesAdvanceInfoResponse) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBaseResp() { - if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.BaseResp.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *TraceQueryParams) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("end_time", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.EndTime); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *BatchGetTracesAdvanceInfoResponse) String() string { +func (p *TraceQueryParams) String() string { if p == nil { return "" } - return fmt.Sprintf("BatchGetTracesAdvanceInfoResponse(%+v)", *p) + return fmt.Sprintf("TraceQueryParams(%+v)", *p) } -func (p *BatchGetTracesAdvanceInfoResponse) DeepEqual(ano *BatchGetTracesAdvanceInfoResponse) bool { +func (p *TraceQueryParams) DeepEqual(ano *TraceQueryParams) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.TracesAdvanceInfo) { + if !p.Field1DeepEqual(ano.TraceID) { return false } - if !p.Field255DeepEqual(ano.BaseResp) { + if !p.Field2DeepEqual(ano.StartTime) { + return false + } + if !p.Field3DeepEqual(ano.EndTime) { return false } return true } -func (p *BatchGetTracesAdvanceInfoResponse) Field1DeepEqual(src []*TraceAdvanceInfo) bool { +func (p *TraceQueryParams) Field1DeepEqual(src string) bool { - if len(p.TracesAdvanceInfo) != len(src) { + if strings.Compare(p.TraceID, src) != 0 { return false } - for i, v := range p.TracesAdvanceInfo { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } + return true +} +func (p *TraceQueryParams) Field2DeepEqual(src int64) bool { + + if p.StartTime != src { + return false } return true } -func (p *BatchGetTracesAdvanceInfoResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *TraceQueryParams) Field3DeepEqual(src int64) bool { - if !p.BaseResp.DeepEqual(src) { + if p.EndTime != src { return false } return true } -type IngestTracesRequest struct { - Spans []*span.InputSpan `thrift:"spans,1,optional" frugal:"1,optional,list" form:"spans" json:"spans,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type BatchGetTracesAdvanceInfoRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + Traces []*TraceQueryParams `thrift:"traces,2,required" frugal:"2,required,list" form:"traces,required" json:"traces,required"` + PlatformType *common.PlatformType `thrift:"platform_type,6,optional" frugal:"6,optional,string" form:"platform_type" json:"platform_type,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewIngestTracesRequest() *IngestTracesRequest { - return &IngestTracesRequest{} +func NewBatchGetTracesAdvanceInfoRequest() *BatchGetTracesAdvanceInfoRequest { + return &BatchGetTracesAdvanceInfoRequest{} } -func (p *IngestTracesRequest) InitDefault() { +func (p *BatchGetTracesAdvanceInfoRequest) InitDefault() { } -var IngestTracesRequest_Spans_DEFAULT []*span.InputSpan +func (p *BatchGetTracesAdvanceInfoRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID + } + return +} -func (p *IngestTracesRequest) GetSpans() (v []*span.InputSpan) { +func (p *BatchGetTracesAdvanceInfoRequest) GetTraces() (v []*TraceQueryParams) { + if p != nil { + return p.Traces + } + return +} + +var BatchGetTracesAdvanceInfoRequest_PlatformType_DEFAULT common.PlatformType + +func (p *BatchGetTracesAdvanceInfoRequest) GetPlatformType() (v common.PlatformType) { if p == nil { return } - if !p.IsSetSpans() { - return IngestTracesRequest_Spans_DEFAULT + if !p.IsSetPlatformType() { + return BatchGetTracesAdvanceInfoRequest_PlatformType_DEFAULT } - return p.Spans + return *p.PlatformType } -var IngestTracesRequest_Base_DEFAULT *base.Base +var BatchGetTracesAdvanceInfoRequest_Base_DEFAULT *base.Base -func (p *IngestTracesRequest) GetBase() (v *base.Base) { +func (p *BatchGetTracesAdvanceInfoRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return IngestTracesRequest_Base_DEFAULT + return BatchGetTracesAdvanceInfoRequest_Base_DEFAULT } return p.Base } -func (p *IngestTracesRequest) SetSpans(val []*span.InputSpan) { - p.Spans = val +func (p *BatchGetTracesAdvanceInfoRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val } -func (p *IngestTracesRequest) SetBase(val *base.Base) { +func (p *BatchGetTracesAdvanceInfoRequest) SetTraces(val []*TraceQueryParams) { + p.Traces = val +} +func (p *BatchGetTracesAdvanceInfoRequest) SetPlatformType(val *common.PlatformType) { + p.PlatformType = val +} +func (p *BatchGetTracesAdvanceInfoRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_IngestTracesRequest = map[int16]string{ - 1: "spans", +var fieldIDToName_BatchGetTracesAdvanceInfoRequest = map[int16]string{ + 1: "workspace_id", + 2: "traces", + 6: "platform_type", 255: "Base", } -func (p *IngestTracesRequest) IsSetSpans() bool { - return p.Spans != nil +func (p *BatchGetTracesAdvanceInfoRequest) IsSetPlatformType() bool { + return p.PlatformType != nil } -func (p *IngestTracesRequest) IsSetBase() bool { +func (p *BatchGetTracesAdvanceInfoRequest) IsSetBase() bool { return p.Base != nil } -func (p *IngestTracesRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *BatchGetTracesAdvanceInfoRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetWorkspaceID bool = false + var issetTraces bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -3789,10 +4065,28 @@ func (p *IngestTracesRequest) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.I64 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } + issetWorkspaceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetTraces = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -3817,13 +4111,22 @@ func (p *IngestTracesRequest) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } + if !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetTraces { + fieldId = 2 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_IngestTracesRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetTracesAdvanceInfoRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -3831,15 +4134,28 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_BatchGetTracesAdvanceInfoRequest[fieldId])) } -func (p *IngestTracesRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *BatchGetTracesAdvanceInfoRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *BatchGetTracesAdvanceInfoRequest) ReadField2(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { return err } - _field := make([]*span.InputSpan, 0, size) - values := make([]span.InputSpan, size) + _field := make([]*TraceQueryParams, 0, size) + values := make([]TraceQueryParams, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -3853,10 +4169,21 @@ func (p *IngestTracesRequest) ReadField1(iprot thrift.TProtocol) error { if err := iprot.ReadListEnd(); err != nil { return err } - p.Spans = _field + p.Traces = _field return nil } -func (p *IngestTracesRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *BatchGetTracesAdvanceInfoRequest) ReadField6(iprot thrift.TProtocol) error { + + var _field *common.PlatformType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PlatformType = _field + return nil +} +func (p *BatchGetTracesAdvanceInfoRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -3865,9 +4192,9 @@ func (p *IngestTracesRequest) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *IngestTracesRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *BatchGetTracesAdvanceInfoRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("IngestTracesRequest"); err != nil { + if err = oprot.WriteStructBegin("BatchGetTracesAdvanceInfoRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -3875,6 +4202,14 @@ func (p *IngestTracesRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -3897,20 +4232,52 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *IngestTracesRequest) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetSpans() { - if err = oprot.WriteFieldBegin("spans", thrift.LIST, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Spans)); err != nil { +func (p *BatchGetTracesAdvanceInfoRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.WorkspaceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *BatchGetTracesAdvanceInfoRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("traces", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Traces)); err != nil { + return err + } + for _, v := range p.Traces { + if err := v.Write(oprot); err != nil { return err } - for _, v := range p.Spans { - if err := v.Write(oprot); err != nil { - return err - } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *BatchGetTracesAdvanceInfoRequest) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetPlatformType() { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteString(*p.PlatformType); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3919,11 +4286,11 @@ func (p *IngestTracesRequest) writeField1(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } -func (p *IngestTracesRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *BatchGetTracesAdvanceInfoRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -3942,21 +4309,27 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *IngestTracesRequest) String() string { +func (p *BatchGetTracesAdvanceInfoRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("IngestTracesRequest(%+v)", *p) + return fmt.Sprintf("BatchGetTracesAdvanceInfoRequest(%+v)", *p) } -func (p *IngestTracesRequest) DeepEqual(ano *IngestTracesRequest) bool { +func (p *BatchGetTracesAdvanceInfoRequest) DeepEqual(ano *BatchGetTracesAdvanceInfoRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Spans) { + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.Traces) { + return false + } + if !p.Field6DeepEqual(ano.PlatformType) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -3965,12 +4338,19 @@ func (p *IngestTracesRequest) DeepEqual(ano *IngestTracesRequest) bool { return true } -func (p *IngestTracesRequest) Field1DeepEqual(src []*span.InputSpan) bool { +func (p *BatchGetTracesAdvanceInfoRequest) Field1DeepEqual(src int64) bool { - if len(p.Spans) != len(src) { + if p.WorkspaceID != src { return false } - for i, v := range p.Spans { + return true +} +func (p *BatchGetTracesAdvanceInfoRequest) Field2DeepEqual(src []*TraceQueryParams) bool { + + if len(p.Traces) != len(src) { + return false + } + for i, v := range p.Traces { _src := src[i] if !v.DeepEqual(_src) { return false @@ -3978,93 +4358,76 @@ func (p *IngestTracesRequest) Field1DeepEqual(src []*span.InputSpan) bool { } return true } -func (p *IngestTracesRequest) Field255DeepEqual(src *base.Base) bool { +func (p *BatchGetTracesAdvanceInfoRequest) Field6DeepEqual(src *common.PlatformType) bool { - if !p.Base.DeepEqual(src) { + if p.PlatformType == src { + return true + } else if p.PlatformType == nil || src == nil { + return false + } + if strings.Compare(*p.PlatformType, *src) != 0 { return false } return true } +func (p *BatchGetTracesAdvanceInfoRequest) Field255DeepEqual(src *base.Base) bool { -type IngestTracesResponse struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` + if !p.Base.DeepEqual(src) { + return false + } + return true } -func NewIngestTracesResponse() *IngestTracesResponse { - return &IngestTracesResponse{} +type BatchGetTracesAdvanceInfoResponse struct { + TracesAdvanceInfo []*TraceAdvanceInfo `thrift:"traces_advance_info,1,required" frugal:"1,required,list" form:"traces_advance_info,required" json:"traces_advance_info,required" query:"traces_advance_info,required"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func (p *IngestTracesResponse) InitDefault() { +func NewBatchGetTracesAdvanceInfoResponse() *BatchGetTracesAdvanceInfoResponse { + return &BatchGetTracesAdvanceInfoResponse{} } -var IngestTracesResponse_Code_DEFAULT int32 - -func (p *IngestTracesResponse) GetCode() (v int32) { - if p == nil { - return - } - if !p.IsSetCode() { - return IngestTracesResponse_Code_DEFAULT - } - return *p.Code +func (p *BatchGetTracesAdvanceInfoResponse) InitDefault() { } -var IngestTracesResponse_Msg_DEFAULT string - -func (p *IngestTracesResponse) GetMsg() (v string) { - if p == nil { - return - } - if !p.IsSetMsg() { - return IngestTracesResponse_Msg_DEFAULT +func (p *BatchGetTracesAdvanceInfoResponse) GetTracesAdvanceInfo() (v []*TraceAdvanceInfo) { + if p != nil { + return p.TracesAdvanceInfo } - return *p.Msg + return } -var IngestTracesResponse_BaseResp_DEFAULT *base.BaseResp +var BatchGetTracesAdvanceInfoResponse_BaseResp_DEFAULT *base.BaseResp -func (p *IngestTracesResponse) GetBaseResp() (v *base.BaseResp) { +func (p *BatchGetTracesAdvanceInfoResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return IngestTracesResponse_BaseResp_DEFAULT + return BatchGetTracesAdvanceInfoResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *IngestTracesResponse) SetCode(val *int32) { - p.Code = val -} -func (p *IngestTracesResponse) SetMsg(val *string) { - p.Msg = val +func (p *BatchGetTracesAdvanceInfoResponse) SetTracesAdvanceInfo(val []*TraceAdvanceInfo) { + p.TracesAdvanceInfo = val } -func (p *IngestTracesResponse) SetBaseResp(val *base.BaseResp) { +func (p *BatchGetTracesAdvanceInfoResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_IngestTracesResponse = map[int16]string{ - 1: "code", - 2: "msg", +var fieldIDToName_BatchGetTracesAdvanceInfoResponse = map[int16]string{ + 1: "traces_advance_info", 255: "BaseResp", } -func (p *IngestTracesResponse) IsSetCode() bool { - return p.Code != nil -} - -func (p *IngestTracesResponse) IsSetMsg() bool { - return p.Msg != nil -} - -func (p *IngestTracesResponse) IsSetBaseResp() bool { +func (p *BatchGetTracesAdvanceInfoResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *IngestTracesResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *BatchGetTracesAdvanceInfoResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetTracesAdvanceInfo bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -4081,18 +4444,11 @@ func (p *IngestTracesResponse) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.LIST { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } + issetTracesAdvanceInfo = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -4117,13 +4473,17 @@ func (p *IngestTracesResponse) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } + if !issetTracesAdvanceInfo { + fieldId = 1 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_IngestTracesResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetTracesAdvanceInfoResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -4131,31 +4491,34 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_BatchGetTracesAdvanceInfoResponse[fieldId])) } -func (p *IngestTracesResponse) ReadField1(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { +func (p *BatchGetTracesAdvanceInfoResponse) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { return err - } else { - _field = &v } - p.Code = _field - return nil -} -func (p *IngestTracesResponse) ReadField2(iprot thrift.TProtocol) error { + _field := make([]*TraceAdvanceInfo, 0, size) + values := make([]TraceAdvanceInfo, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field *string - if v, err := iprot.ReadString(); err != nil { + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - _field = &v } - p.Msg = _field + p.TracesAdvanceInfo = _field return nil } -func (p *IngestTracesResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *BatchGetTracesAdvanceInfoResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -4164,9 +4527,9 @@ func (p *IngestTracesResponse) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *IngestTracesResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *BatchGetTracesAdvanceInfoResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("IngestTracesResponse"); err != nil { + if err = oprot.WriteStructBegin("BatchGetTracesAdvanceInfoResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -4174,10 +4537,6 @@ func (p *IngestTracesResponse) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -4200,17 +4559,23 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *IngestTracesResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetCode() { - if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.Code); err != nil { +func (p *BatchGetTracesAdvanceInfoResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("traces_advance_info", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.TracesAdvanceInfo)); err != nil { + return err + } + for _, v := range p.TracesAdvanceInfo { + if err := v.Write(oprot); err != nil { return err } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -4218,12 +4583,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *IngestTracesResponse) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetMsg() { - if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { +func (p *BatchGetTracesAdvanceInfoResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.Msg); err != nil { + if err := p.BaseResp.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4231,46 +4596,27 @@ func (p *IngestTracesResponse) writeField2(oprot thrift.TProtocol) (err error) { } } return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *IngestTracesResponse) writeField255(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.BaseResp.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil WriteFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *IngestTracesResponse) String() string { +func (p *BatchGetTracesAdvanceInfoResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("IngestTracesResponse(%+v)", *p) + return fmt.Sprintf("BatchGetTracesAdvanceInfoResponse(%+v)", *p) } -func (p *IngestTracesResponse) DeepEqual(ano *IngestTracesResponse) bool { +func (p *BatchGetTracesAdvanceInfoResponse) DeepEqual(ano *BatchGetTracesAdvanceInfoResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Code) { - return false - } - if !p.Field2DeepEqual(ano.Msg) { + if !p.Field1DeepEqual(ano.TracesAdvanceInfo) { return false } if !p.Field255DeepEqual(ano.BaseResp) { @@ -4279,31 +4625,20 @@ func (p *IngestTracesResponse) DeepEqual(ano *IngestTracesResponse) bool { return true } -func (p *IngestTracesResponse) Field1DeepEqual(src *int32) bool { - - if p.Code == src { - return true - } else if p.Code == nil || src == nil { - return false - } - if *p.Code != *src { - return false - } - return true -} -func (p *IngestTracesResponse) Field2DeepEqual(src *string) bool { +func (p *BatchGetTracesAdvanceInfoResponse) Field1DeepEqual(src []*TraceAdvanceInfo) bool { - if p.Msg == src { - return true - } else if p.Msg == nil || src == nil { + if len(p.TracesAdvanceInfo) != len(src) { return false } - if strings.Compare(*p.Msg, *src) != 0 { - return false + for i, v := range p.TracesAdvanceInfo { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } } return true } -func (p *IngestTracesResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *BatchGetTracesAdvanceInfoResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -4311,90 +4646,64 @@ func (p *IngestTracesResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type FieldMeta struct { - ValueType filter.FieldType `thrift:"value_type,1,required" frugal:"1,required,string" form:"value_type,required" json:"value_type,required" query:"value_type,required"` - FilterTypes []filter.QueryType `thrift:"filter_types,2,required" frugal:"2,required,list" form:"filter_types,required" json:"filter_types,required" query:"filter_types,required"` - FieldOptions *filter.FieldOptions `thrift:"field_options,3,optional" frugal:"3,optional,filter.FieldOptions" form:"field_options" json:"field_options,omitempty" query:"field_options"` - SupportCustomizableOption *bool `thrift:"support_customizable_option,4,optional" frugal:"4,optional,bool" form:"support_customizable_option" json:"support_customizable_option,omitempty" query:"support_customizable_option"` +type IngestTracesRequest struct { + Spans []*span.InputSpan `thrift:"spans,1,optional" frugal:"1,optional,list" form:"spans" json:"spans,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewFieldMeta() *FieldMeta { - return &FieldMeta{} +func NewIngestTracesRequest() *IngestTracesRequest { + return &IngestTracesRequest{} } -func (p *FieldMeta) InitDefault() { +func (p *IngestTracesRequest) InitDefault() { } -func (p *FieldMeta) GetValueType() (v filter.FieldType) { - if p != nil { - return p.ValueType - } - return -} - -func (p *FieldMeta) GetFilterTypes() (v []filter.QueryType) { - if p != nil { - return p.FilterTypes - } - return -} - -var FieldMeta_FieldOptions_DEFAULT *filter.FieldOptions +var IngestTracesRequest_Spans_DEFAULT []*span.InputSpan -func (p *FieldMeta) GetFieldOptions() (v *filter.FieldOptions) { +func (p *IngestTracesRequest) GetSpans() (v []*span.InputSpan) { if p == nil { return } - if !p.IsSetFieldOptions() { - return FieldMeta_FieldOptions_DEFAULT + if !p.IsSetSpans() { + return IngestTracesRequest_Spans_DEFAULT } - return p.FieldOptions + return p.Spans } -var FieldMeta_SupportCustomizableOption_DEFAULT bool +var IngestTracesRequest_Base_DEFAULT *base.Base -func (p *FieldMeta) GetSupportCustomizableOption() (v bool) { +func (p *IngestTracesRequest) GetBase() (v *base.Base) { if p == nil { return } - if !p.IsSetSupportCustomizableOption() { - return FieldMeta_SupportCustomizableOption_DEFAULT + if !p.IsSetBase() { + return IngestTracesRequest_Base_DEFAULT } - return *p.SupportCustomizableOption -} -func (p *FieldMeta) SetValueType(val filter.FieldType) { - p.ValueType = val -} -func (p *FieldMeta) SetFilterTypes(val []filter.QueryType) { - p.FilterTypes = val + return p.Base } -func (p *FieldMeta) SetFieldOptions(val *filter.FieldOptions) { - p.FieldOptions = val +func (p *IngestTracesRequest) SetSpans(val []*span.InputSpan) { + p.Spans = val } -func (p *FieldMeta) SetSupportCustomizableOption(val *bool) { - p.SupportCustomizableOption = val +func (p *IngestTracesRequest) SetBase(val *base.Base) { + p.Base = val } -var fieldIDToName_FieldMeta = map[int16]string{ - 1: "value_type", - 2: "filter_types", - 3: "field_options", - 4: "support_customizable_option", +var fieldIDToName_IngestTracesRequest = map[int16]string{ + 1: "spans", + 255: "Base", } -func (p *FieldMeta) IsSetFieldOptions() bool { - return p.FieldOptions != nil +func (p *IngestTracesRequest) IsSetSpans() bool { + return p.Spans != nil } -func (p *FieldMeta) IsSetSupportCustomizableOption() bool { - return p.SupportCustomizableOption != nil +func (p *IngestTracesRequest) IsSetBase() bool { + return p.Base != nil } -func (p *FieldMeta) Read(iprot thrift.TProtocol) (err error) { +func (p *IngestTracesRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetValueType bool = false - var issetFilterTypes bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -4411,34 +4720,16 @@ func (p *FieldMeta) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - issetValueType = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: if fieldTypeId == thrift.LIST { - if err = p.ReadField2(iprot); err != nil { + if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetFilterTypes = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 3: + case 255: if fieldTypeId == thrift.STRUCT { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.BOOL { - if err = p.ReadField4(iprot); err != nil { + if err = p.ReadField255(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -4457,22 +4748,13 @@ func (p *FieldMeta) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetValueType { - fieldId = 1 - goto RequiredFieldNotSetError - } - - if !issetFilterTypes { - fieldId = 2 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FieldMeta[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_IngestTracesRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -4480,34 +4762,21 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_FieldMeta[fieldId])) } -func (p *FieldMeta) ReadField1(iprot thrift.TProtocol) error { - - var _field filter.FieldType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } - p.ValueType = _field - return nil -} -func (p *FieldMeta) ReadField2(iprot thrift.TProtocol) error { +func (p *IngestTracesRequest) ReadField1(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { return err } - _field := make([]filter.QueryType, 0, size) + _field := make([]*span.InputSpan, 0, size) + values := make([]span.InputSpan, size) for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _elem filter.QueryType - if v, err := iprot.ReadString(); err != nil { + if err := _elem.Read(iprot); err != nil { return err - } else { - _elem = v } _field = append(_field, _elem) @@ -4515,32 +4784,21 @@ func (p *FieldMeta) ReadField2(iprot thrift.TProtocol) error { if err := iprot.ReadListEnd(); err != nil { return err } - p.FilterTypes = _field + p.Spans = _field return nil } -func (p *FieldMeta) ReadField3(iprot thrift.TProtocol) error { - _field := filter.NewFieldOptions() +func (p *IngestTracesRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err } - p.FieldOptions = _field - return nil -} -func (p *FieldMeta) ReadField4(iprot thrift.TProtocol) error { - - var _field *bool - if v, err := iprot.ReadBool(); err != nil { - return err - } else { - _field = &v - } - p.SupportCustomizableOption = _field + p.Base = _field return nil } -func (p *FieldMeta) Write(oprot thrift.TProtocol) (err error) { +func (p *IngestTracesRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("FieldMeta"); err != nil { + if err = oprot.WriteStructBegin("IngestTracesRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -4548,16 +4806,8 @@ func (p *FieldMeta) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 + if err = p.writeField255(oprot); err != nil { + fieldId = 255 goto WriteFieldError } } @@ -4578,52 +4828,20 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *FieldMeta) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("value_type", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.ValueType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *FieldMeta) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("filter_types", thrift.LIST, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRING, len(p.FilterTypes)); err != nil { - return err - } - for _, v := range p.FilterTypes { - if err := oprot.WriteString(v); err != nil { +func (p *IngestTracesRequest) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetSpans() { + if err = oprot.WriteFieldBegin("spans", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Spans)); err != nil { return err } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *FieldMeta) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetFieldOptions() { - if err = oprot.WriteFieldBegin("field_options", thrift.STRUCT, 3); err != nil { - goto WriteFieldBeginError + for _, v := range p.Spans { + if err := v.Write(oprot); err != nil { + return err + } } - if err := p.FieldOptions.Write(oprot); err != nil { + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4632,16 +4850,16 @@ func (p *FieldMeta) writeField3(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *FieldMeta) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetSupportCustomizableOption() { - if err = oprot.WriteFieldBegin("support_customizable_option", thrift.BOOL, 4); err != nil { +func (p *IngestTracesRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteBool(*p.SupportCustomizableOption); err != nil { + if err := p.Base.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4650,179 +4868,132 @@ func (p *FieldMeta) writeField4(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *FieldMeta) String() string { +func (p *IngestTracesRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("FieldMeta(%+v)", *p) + return fmt.Sprintf("IngestTracesRequest(%+v)", *p) } -func (p *FieldMeta) DeepEqual(ano *FieldMeta) bool { +func (p *IngestTracesRequest) DeepEqual(ano *IngestTracesRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ValueType) { - return false - } - if !p.Field2DeepEqual(ano.FilterTypes) { - return false - } - if !p.Field3DeepEqual(ano.FieldOptions) { + if !p.Field1DeepEqual(ano.Spans) { return false } - if !p.Field4DeepEqual(ano.SupportCustomizableOption) { + if !p.Field255DeepEqual(ano.Base) { return false } return true } -func (p *FieldMeta) Field1DeepEqual(src filter.FieldType) bool { +func (p *IngestTracesRequest) Field1DeepEqual(src []*span.InputSpan) bool { - if strings.Compare(p.ValueType, src) != 0 { + if len(p.Spans) != len(src) { return false } - return true -} -func (p *FieldMeta) Field2DeepEqual(src []filter.QueryType) bool { - - if len(p.FilterTypes) != len(src) { - return false - } - for i, v := range p.FilterTypes { + for i, v := range p.Spans { _src := src[i] - if strings.Compare(v, _src) != 0 { + if !v.DeepEqual(_src) { return false } } return true } -func (p *FieldMeta) Field3DeepEqual(src *filter.FieldOptions) bool { - - if !p.FieldOptions.DeepEqual(src) { - return false - } - return true -} -func (p *FieldMeta) Field4DeepEqual(src *bool) bool { +func (p *IngestTracesRequest) Field255DeepEqual(src *base.Base) bool { - if p.SupportCustomizableOption == src { - return true - } else if p.SupportCustomizableOption == nil || src == nil { - return false - } - if *p.SupportCustomizableOption != *src { + if !p.Base.DeepEqual(src) { return false } return true } -type GetTracesMetaInfoRequest struct { - PlatformType *common.PlatformType `thrift:"platform_type,1,optional" frugal:"1,optional,string" json:"platform_type,omitempty" query:"platform_type"` - SpanListType *common.SpanListType `thrift:"spanList_type,2,optional" frugal:"2,optional,string" json:"spanList_type,omitempty" query:"span_list_type"` - // required - WorkspaceID *int64 `thrift:"workspace_id,3,optional" frugal:"3,optional,i64" json:"workspace_id,string,omitempty" query:"workspace_id"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` -} - -func NewGetTracesMetaInfoRequest() *GetTracesMetaInfoRequest { - return &GetTracesMetaInfoRequest{} +type IngestTracesResponse struct { + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func (p *GetTracesMetaInfoRequest) InitDefault() { +func NewIngestTracesResponse() *IngestTracesResponse { + return &IngestTracesResponse{} } -var GetTracesMetaInfoRequest_PlatformType_DEFAULT common.PlatformType - -func (p *GetTracesMetaInfoRequest) GetPlatformType() (v common.PlatformType) { - if p == nil { - return - } - if !p.IsSetPlatformType() { - return GetTracesMetaInfoRequest_PlatformType_DEFAULT - } - return *p.PlatformType +func (p *IngestTracesResponse) InitDefault() { } -var GetTracesMetaInfoRequest_SpanListType_DEFAULT common.SpanListType +var IngestTracesResponse_Code_DEFAULT int32 -func (p *GetTracesMetaInfoRequest) GetSpanListType() (v common.SpanListType) { +func (p *IngestTracesResponse) GetCode() (v int32) { if p == nil { return } - if !p.IsSetSpanListType() { - return GetTracesMetaInfoRequest_SpanListType_DEFAULT + if !p.IsSetCode() { + return IngestTracesResponse_Code_DEFAULT } - return *p.SpanListType + return *p.Code } -var GetTracesMetaInfoRequest_WorkspaceID_DEFAULT int64 +var IngestTracesResponse_Msg_DEFAULT string -func (p *GetTracesMetaInfoRequest) GetWorkspaceID() (v int64) { +func (p *IngestTracesResponse) GetMsg() (v string) { if p == nil { return } - if !p.IsSetWorkspaceID() { - return GetTracesMetaInfoRequest_WorkspaceID_DEFAULT + if !p.IsSetMsg() { + return IngestTracesResponse_Msg_DEFAULT } - return *p.WorkspaceID + return *p.Msg } -var GetTracesMetaInfoRequest_Base_DEFAULT *base.Base +var IngestTracesResponse_BaseResp_DEFAULT *base.BaseResp -func (p *GetTracesMetaInfoRequest) GetBase() (v *base.Base) { +func (p *IngestTracesResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } - if !p.IsSetBase() { - return GetTracesMetaInfoRequest_Base_DEFAULT + if !p.IsSetBaseResp() { + return IngestTracesResponse_BaseResp_DEFAULT } - return p.Base -} -func (p *GetTracesMetaInfoRequest) SetPlatformType(val *common.PlatformType) { - p.PlatformType = val -} -func (p *GetTracesMetaInfoRequest) SetSpanListType(val *common.SpanListType) { - p.SpanListType = val + return p.BaseResp } -func (p *GetTracesMetaInfoRequest) SetWorkspaceID(val *int64) { - p.WorkspaceID = val +func (p *IngestTracesResponse) SetCode(val *int32) { + p.Code = val } -func (p *GetTracesMetaInfoRequest) SetBase(val *base.Base) { - p.Base = val +func (p *IngestTracesResponse) SetMsg(val *string) { + p.Msg = val } - -var fieldIDToName_GetTracesMetaInfoRequest = map[int16]string{ - 1: "platform_type", - 2: "spanList_type", - 3: "workspace_id", - 255: "Base", +func (p *IngestTracesResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val } -func (p *GetTracesMetaInfoRequest) IsSetPlatformType() bool { - return p.PlatformType != nil +var fieldIDToName_IngestTracesResponse = map[int16]string{ + 1: "code", + 2: "msg", + 255: "BaseResp", } -func (p *GetTracesMetaInfoRequest) IsSetSpanListType() bool { - return p.SpanListType != nil +func (p *IngestTracesResponse) IsSetCode() bool { + return p.Code != nil } -func (p *GetTracesMetaInfoRequest) IsSetWorkspaceID() bool { - return p.WorkspaceID != nil +func (p *IngestTracesResponse) IsSetMsg() bool { + return p.Msg != nil } -func (p *GetTracesMetaInfoRequest) IsSetBase() bool { - return p.Base != nil +func (p *IngestTracesResponse) IsSetBaseResp() bool { + return p.BaseResp != nil } -func (p *GetTracesMetaInfoRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *IngestTracesResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -4841,7 +5012,7 @@ func (p *GetTracesMetaInfoRequest) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I32 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -4856,14 +5027,6 @@ func (p *GetTracesMetaInfoRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 3: - if fieldTypeId == thrift.I64 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -4891,7 +5054,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_GetTracesMetaInfoRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_IngestTracesResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -4901,51 +5064,40 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *GetTracesMetaInfoRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *IngestTracesResponse) ReadField1(iprot thrift.TProtocol) error { - var _field *common.PlatformType - if v, err := iprot.ReadString(); err != nil { + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err } else { _field = &v } - p.PlatformType = _field + p.Code = _field return nil } -func (p *GetTracesMetaInfoRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *IngestTracesResponse) ReadField2(iprot thrift.TProtocol) error { - var _field *common.SpanListType + var _field *string if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.SpanListType = _field - return nil -} -func (p *GetTracesMetaInfoRequest) ReadField3(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.WorkspaceID = _field + p.Msg = _field return nil } -func (p *GetTracesMetaInfoRequest) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBase() +func (p *IngestTracesResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err } - p.Base = _field + p.BaseResp = _field return nil } -func (p *GetTracesMetaInfoRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *IngestTracesResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetTracesMetaInfoRequest"); err != nil { + if err = oprot.WriteStructBegin("IngestTracesResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -4957,10 +5109,6 @@ func (p *GetTracesMetaInfoRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -4983,12 +5131,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *GetTracesMetaInfoRequest) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 1); err != nil { +func (p *IngestTracesResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetCode() { + if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.PlatformType); err != nil { + if err := oprot.WriteI32(*p.Code); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5001,12 +5149,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *GetTracesMetaInfoRequest) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetSpanListType() { - if err = oprot.WriteFieldBegin("spanList_type", thrift.STRING, 2); err != nil { +func (p *IngestTracesResponse) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetMsg() { + if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.SpanListType); err != nil { + if err := oprot.WriteString(*p.Msg); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5019,35 +5167,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *GetTracesMetaInfoRequest) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetWorkspaceID() { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *IngestTracesResponse) writeField255(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *GetTracesMetaInfoRequest) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBase() { - if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.Base.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } + if err := p.BaseResp.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -5056,129 +5184,148 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *GetTracesMetaInfoRequest) String() string { +func (p *IngestTracesResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("GetTracesMetaInfoRequest(%+v)", *p) + return fmt.Sprintf("IngestTracesResponse(%+v)", *p) } -func (p *GetTracesMetaInfoRequest) DeepEqual(ano *GetTracesMetaInfoRequest) bool { +func (p *IngestTracesResponse) DeepEqual(ano *IngestTracesResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.PlatformType) { - return false - } - if !p.Field2DeepEqual(ano.SpanListType) { + if !p.Field1DeepEqual(ano.Code) { return false } - if !p.Field3DeepEqual(ano.WorkspaceID) { + if !p.Field2DeepEqual(ano.Msg) { return false } - if !p.Field255DeepEqual(ano.Base) { + if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *GetTracesMetaInfoRequest) Field1DeepEqual(src *common.PlatformType) bool { +func (p *IngestTracesResponse) Field1DeepEqual(src *int32) bool { - if p.PlatformType == src { + if p.Code == src { return true - } else if p.PlatformType == nil || src == nil { + } else if p.Code == nil || src == nil { return false } - if strings.Compare(*p.PlatformType, *src) != 0 { + if *p.Code != *src { return false } return true } -func (p *GetTracesMetaInfoRequest) Field2DeepEqual(src *common.SpanListType) bool { +func (p *IngestTracesResponse) Field2DeepEqual(src *string) bool { - if p.SpanListType == src { + if p.Msg == src { return true - } else if p.SpanListType == nil || src == nil { + } else if p.Msg == nil || src == nil { return false } - if strings.Compare(*p.SpanListType, *src) != 0 { + if strings.Compare(*p.Msg, *src) != 0 { return false } return true } -func (p *GetTracesMetaInfoRequest) Field3DeepEqual(src *int64) bool { +func (p *IngestTracesResponse) Field255DeepEqual(src *base.BaseResp) bool { - if p.WorkspaceID == src { - return true - } else if p.WorkspaceID == nil || src == nil { - return false - } - if *p.WorkspaceID != *src { + if !p.BaseResp.DeepEqual(src) { return false } return true } -func (p *GetTracesMetaInfoRequest) Field255DeepEqual(src *base.Base) bool { - if !p.Base.DeepEqual(src) { - return false - } - return true +type FieldMeta struct { + ValueType filter.FieldType `thrift:"value_type,1,required" frugal:"1,required,string" form:"value_type,required" json:"value_type,required" query:"value_type,required"` + FilterTypes []filter.QueryType `thrift:"filter_types,2,required" frugal:"2,required,list" form:"filter_types,required" json:"filter_types,required" query:"filter_types,required"` + FieldOptions *filter.FieldOptions `thrift:"field_options,3,optional" frugal:"3,optional,filter.FieldOptions" form:"field_options" json:"field_options,omitempty" query:"field_options"` + SupportCustomizableOption *bool `thrift:"support_customizable_option,4,optional" frugal:"4,optional,bool" form:"support_customizable_option" json:"support_customizable_option,omitempty" query:"support_customizable_option"` } -type GetTracesMetaInfoResponse struct { - FieldMetas map[string]*FieldMeta `thrift:"field_metas,1,required" frugal:"1,required,map" form:"field_metas,required" json:"field_metas,required" query:"field_metas,required"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +func NewFieldMeta() *FieldMeta { + return &FieldMeta{} } -func NewGetTracesMetaInfoResponse() *GetTracesMetaInfoResponse { - return &GetTracesMetaInfoResponse{} +func (p *FieldMeta) InitDefault() { } -func (p *GetTracesMetaInfoResponse) InitDefault() { +func (p *FieldMeta) GetValueType() (v filter.FieldType) { + if p != nil { + return p.ValueType + } + return } -func (p *GetTracesMetaInfoResponse) GetFieldMetas() (v map[string]*FieldMeta) { +func (p *FieldMeta) GetFilterTypes() (v []filter.QueryType) { if p != nil { - return p.FieldMetas + return p.FilterTypes } return } -var GetTracesMetaInfoResponse_BaseResp_DEFAULT *base.BaseResp +var FieldMeta_FieldOptions_DEFAULT *filter.FieldOptions -func (p *GetTracesMetaInfoResponse) GetBaseResp() (v *base.BaseResp) { +func (p *FieldMeta) GetFieldOptions() (v *filter.FieldOptions) { if p == nil { return } - if !p.IsSetBaseResp() { - return GetTracesMetaInfoResponse_BaseResp_DEFAULT + if !p.IsSetFieldOptions() { + return FieldMeta_FieldOptions_DEFAULT } - return p.BaseResp + return p.FieldOptions } -func (p *GetTracesMetaInfoResponse) SetFieldMetas(val map[string]*FieldMeta) { - p.FieldMetas = val + +var FieldMeta_SupportCustomizableOption_DEFAULT bool + +func (p *FieldMeta) GetSupportCustomizableOption() (v bool) { + if p == nil { + return + } + if !p.IsSetSupportCustomizableOption() { + return FieldMeta_SupportCustomizableOption_DEFAULT + } + return *p.SupportCustomizableOption } -func (p *GetTracesMetaInfoResponse) SetBaseResp(val *base.BaseResp) { - p.BaseResp = val +func (p *FieldMeta) SetValueType(val filter.FieldType) { + p.ValueType = val +} +func (p *FieldMeta) SetFilterTypes(val []filter.QueryType) { + p.FilterTypes = val +} +func (p *FieldMeta) SetFieldOptions(val *filter.FieldOptions) { + p.FieldOptions = val +} +func (p *FieldMeta) SetSupportCustomizableOption(val *bool) { + p.SupportCustomizableOption = val } -var fieldIDToName_GetTracesMetaInfoResponse = map[int16]string{ - 1: "field_metas", - 255: "BaseResp", +var fieldIDToName_FieldMeta = map[int16]string{ + 1: "value_type", + 2: "filter_types", + 3: "field_options", + 4: "support_customizable_option", } -func (p *GetTracesMetaInfoResponse) IsSetBaseResp() bool { - return p.BaseResp != nil +func (p *FieldMeta) IsSetFieldOptions() bool { + return p.FieldOptions != nil } -func (p *GetTracesMetaInfoResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *FieldMeta) IsSetSupportCustomizableOption() bool { + return p.SupportCustomizableOption != nil +} + +func (p *FieldMeta) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetFieldMetas bool = false + var issetValueType bool = false + var issetFilterTypes bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -5195,17 +5342,34 @@ func (p *GetTracesMetaInfoResponse) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.MAP { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetFieldMetas = true + issetValueType = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 255: + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetFilterTypes = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: if fieldTypeId == thrift.STRUCT { - if err = p.ReadField255(iprot); err != nil { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -5224,17 +5388,22 @@ func (p *GetTracesMetaInfoResponse) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetFieldMetas { + if !issetValueType { fieldId = 1 goto RequiredFieldNotSetError } + + if !issetFilterTypes { + fieldId = 2 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_GetTracesMetaInfoResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FieldMeta[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -5243,50 +5412,66 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_GetTracesMetaInfoResponse[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_FieldMeta[fieldId])) } -func (p *GetTracesMetaInfoResponse) ReadField1(iprot thrift.TProtocol) error { - _, _, size, err := iprot.ReadMapBegin() +func (p *FieldMeta) ReadField1(iprot thrift.TProtocol) error { + + var _field filter.FieldType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.ValueType = _field + return nil +} +func (p *FieldMeta) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() if err != nil { return err } - _field := make(map[string]*FieldMeta, size) - values := make([]FieldMeta, size) + _field := make([]filter.QueryType, 0, size) for i := 0; i < size; i++ { - var _key string + + var _elem filter.QueryType if v, err := iprot.ReadString(); err != nil { return err } else { - _key = v - } - - _val := &values[i] - _val.InitDefault() - if err := _val.Read(iprot); err != nil { - return err + _elem = v } - _field[_key] = _val + _field = append(_field, _elem) } - if err := iprot.ReadMapEnd(); err != nil { + if err := iprot.ReadListEnd(); err != nil { return err } - p.FieldMetas = _field + p.FilterTypes = _field return nil } -func (p *GetTracesMetaInfoResponse) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBaseResp() +func (p *FieldMeta) ReadField3(iprot thrift.TProtocol) error { + _field := filter.NewFieldOptions() if err := _field.Read(iprot); err != nil { return err } - p.BaseResp = _field + p.FieldOptions = _field return nil } +func (p *FieldMeta) ReadField4(iprot thrift.TProtocol) error { -func (p *GetTracesMetaInfoResponse) Write(oprot thrift.TProtocol) (err error) { + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.SupportCustomizableOption = _field + return nil +} + +func (p *FieldMeta) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetTracesMetaInfoResponse"); err != nil { + if err = oprot.WriteStructBegin("FieldMeta"); err != nil { goto WriteStructBeginError } if p != nil { @@ -5294,8 +5479,16 @@ func (p *GetTracesMetaInfoResponse) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 goto WriteFieldError } } @@ -5316,22 +5509,35 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *GetTracesMetaInfoResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("field_metas", thrift.MAP, 1); err != nil { +func (p *FieldMeta) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("value_type", thrift.STRING, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.FieldMetas)); err != nil { + if err := oprot.WriteString(p.ValueType); err != nil { return err } - for k, v := range p.FieldMetas { - if err := oprot.WriteString(k); err != nil { - return err - } - if err := v.Write(oprot); err != nil { + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *FieldMeta) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("filter_types", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.FilterTypes)); err != nil { + return err + } + for _, v := range p.FilterTypes { + if err := oprot.WriteString(v); err != nil { return err } } - if err := oprot.WriteMapEnd(); err != nil { + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5339,16 +5545,16 @@ func (p *GetTracesMetaInfoResponse) writeField1(oprot thrift.TProtocol) (err err } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *GetTracesMetaInfoResponse) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBaseResp() { - if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { +func (p *FieldMeta) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetFieldOptions() { + if err = oprot.WriteFieldBegin("field_options", thrift.STRUCT, 3); err != nil { goto WriteFieldBeginError } - if err := p.BaseResp.Write(oprot); err != nil { + if err := p.FieldOptions.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5357,178 +5563,199 @@ func (p *GetTracesMetaInfoResponse) writeField255(oprot thrift.TProtocol) (err e } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) -} - -func (p *GetTracesMetaInfoResponse) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("GetTracesMetaInfoResponse(%+v)", *p) - + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } - -func (p *GetTracesMetaInfoResponse) DeepEqual(ano *GetTracesMetaInfoResponse) bool { - if p == ano { - return true - } else if p == nil || ano == nil { +func (p *FieldMeta) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetSupportCustomizableOption() { + if err = oprot.WriteFieldBegin("support_customizable_option", thrift.BOOL, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.SupportCustomizableOption); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} + +func (p *FieldMeta) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("FieldMeta(%+v)", *p) + +} + +func (p *FieldMeta) DeepEqual(ano *FieldMeta) bool { + if p == ano { + return true + } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.FieldMetas) { + if !p.Field1DeepEqual(ano.ValueType) { return false } - if !p.Field255DeepEqual(ano.BaseResp) { + if !p.Field2DeepEqual(ano.FilterTypes) { + return false + } + if !p.Field3DeepEqual(ano.FieldOptions) { + return false + } + if !p.Field4DeepEqual(ano.SupportCustomizableOption) { return false } return true } -func (p *GetTracesMetaInfoResponse) Field1DeepEqual(src map[string]*FieldMeta) bool { +func (p *FieldMeta) Field1DeepEqual(src filter.FieldType) bool { - if len(p.FieldMetas) != len(src) { + if strings.Compare(p.ValueType, src) != 0 { return false } - for k, v := range p.FieldMetas { - _src := src[k] - if !v.DeepEqual(_src) { + return true +} +func (p *FieldMeta) Field2DeepEqual(src []filter.QueryType) bool { + + if len(p.FilterTypes) != len(src) { + return false + } + for i, v := range p.FilterTypes { + _src := src[i] + if strings.Compare(v, _src) != 0 { return false } } return true } -func (p *GetTracesMetaInfoResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *FieldMeta) Field3DeepEqual(src *filter.FieldOptions) bool { - if !p.BaseResp.DeepEqual(src) { + if !p.FieldOptions.DeepEqual(src) { return false } return true } +func (p *FieldMeta) Field4DeepEqual(src *bool) bool { -type CreateViewRequest struct { - EnterpriseID *string `thrift:"enterprise_id,1,optional" frugal:"1,optional,string" form:"enterprise_id" json:"enterprise_id,omitempty"` - WorkspaceID int64 `thrift:"workspace_id,2,required" frugal:"2,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ViewName string `thrift:"view_name,3,required" frugal:"3,required,string" form:"view_name,required" json:"view_name,required"` - PlatformType common.PlatformType `thrift:"platform_type,4,required" frugal:"4,required,string" form:"platform_type,required" json:"platform_type,required"` - SpanListType common.SpanListType `thrift:"span_list_type,5,required" frugal:"5,required,string" form:"span_list_type,required" json:"span_list_type,required"` - Filters string `thrift:"filters,6,required" frugal:"6,required,string" form:"filters,required" json:"filters,required"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + if p.SupportCustomizableOption == src { + return true + } else if p.SupportCustomizableOption == nil || src == nil { + return false + } + if *p.SupportCustomizableOption != *src { + return false + } + return true } -func NewCreateViewRequest() *CreateViewRequest { - return &CreateViewRequest{} +type GetTracesMetaInfoRequest struct { + PlatformType *common.PlatformType `thrift:"platform_type,1,optional" frugal:"1,optional,string" json:"platform_type,omitempty" query:"platform_type"` + SpanListType *common.SpanListType `thrift:"spanList_type,2,optional" frugal:"2,optional,string" json:"spanList_type,omitempty" query:"span_list_type"` + // required + WorkspaceID *int64 `thrift:"workspace_id,3,optional" frugal:"3,optional,i64" json:"workspace_id,string,omitempty" query:"workspace_id"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func (p *CreateViewRequest) InitDefault() { +func NewGetTracesMetaInfoRequest() *GetTracesMetaInfoRequest { + return &GetTracesMetaInfoRequest{} } -var CreateViewRequest_EnterpriseID_DEFAULT string +func (p *GetTracesMetaInfoRequest) InitDefault() { +} -func (p *CreateViewRequest) GetEnterpriseID() (v string) { +var GetTracesMetaInfoRequest_PlatformType_DEFAULT common.PlatformType + +func (p *GetTracesMetaInfoRequest) GetPlatformType() (v common.PlatformType) { if p == nil { return } - if !p.IsSetEnterpriseID() { - return CreateViewRequest_EnterpriseID_DEFAULT + if !p.IsSetPlatformType() { + return GetTracesMetaInfoRequest_PlatformType_DEFAULT } - return *p.EnterpriseID + return *p.PlatformType } -func (p *CreateViewRequest) GetWorkspaceID() (v int64) { - if p != nil { - return p.WorkspaceID - } - return -} +var GetTracesMetaInfoRequest_SpanListType_DEFAULT common.SpanListType -func (p *CreateViewRequest) GetViewName() (v string) { - if p != nil { - return p.ViewName +func (p *GetTracesMetaInfoRequest) GetSpanListType() (v common.SpanListType) { + if p == nil { + return } - return -} - -func (p *CreateViewRequest) GetPlatformType() (v common.PlatformType) { - if p != nil { - return p.PlatformType + if !p.IsSetSpanListType() { + return GetTracesMetaInfoRequest_SpanListType_DEFAULT } - return + return *p.SpanListType } -func (p *CreateViewRequest) GetSpanListType() (v common.SpanListType) { - if p != nil { - return p.SpanListType - } - return -} +var GetTracesMetaInfoRequest_WorkspaceID_DEFAULT int64 -func (p *CreateViewRequest) GetFilters() (v string) { - if p != nil { - return p.Filters +func (p *GetTracesMetaInfoRequest) GetWorkspaceID() (v int64) { + if p == nil { + return } - return + if !p.IsSetWorkspaceID() { + return GetTracesMetaInfoRequest_WorkspaceID_DEFAULT + } + return *p.WorkspaceID } -var CreateViewRequest_Base_DEFAULT *base.Base +var GetTracesMetaInfoRequest_Base_DEFAULT *base.Base -func (p *CreateViewRequest) GetBase() (v *base.Base) { +func (p *GetTracesMetaInfoRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return CreateViewRequest_Base_DEFAULT + return GetTracesMetaInfoRequest_Base_DEFAULT } return p.Base } -func (p *CreateViewRequest) SetEnterpriseID(val *string) { - p.EnterpriseID = val -} -func (p *CreateViewRequest) SetWorkspaceID(val int64) { - p.WorkspaceID = val -} -func (p *CreateViewRequest) SetViewName(val string) { - p.ViewName = val -} -func (p *CreateViewRequest) SetPlatformType(val common.PlatformType) { +func (p *GetTracesMetaInfoRequest) SetPlatformType(val *common.PlatformType) { p.PlatformType = val } -func (p *CreateViewRequest) SetSpanListType(val common.SpanListType) { +func (p *GetTracesMetaInfoRequest) SetSpanListType(val *common.SpanListType) { p.SpanListType = val } -func (p *CreateViewRequest) SetFilters(val string) { - p.Filters = val +func (p *GetTracesMetaInfoRequest) SetWorkspaceID(val *int64) { + p.WorkspaceID = val } -func (p *CreateViewRequest) SetBase(val *base.Base) { +func (p *GetTracesMetaInfoRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_CreateViewRequest = map[int16]string{ - 1: "enterprise_id", - 2: "workspace_id", - 3: "view_name", - 4: "platform_type", - 5: "span_list_type", - 6: "filters", +var fieldIDToName_GetTracesMetaInfoRequest = map[int16]string{ + 1: "platform_type", + 2: "spanList_type", + 3: "workspace_id", 255: "Base", } -func (p *CreateViewRequest) IsSetEnterpriseID() bool { - return p.EnterpriseID != nil +func (p *GetTracesMetaInfoRequest) IsSetPlatformType() bool { + return p.PlatformType != nil } -func (p *CreateViewRequest) IsSetBase() bool { +func (p *GetTracesMetaInfoRequest) IsSetSpanListType() bool { + return p.SpanListType != nil +} + +func (p *GetTracesMetaInfoRequest) IsSetWorkspaceID() bool { + return p.WorkspaceID != nil +} + +func (p *GetTracesMetaInfoRequest) IsSetBase() bool { return p.Base != nil } -func (p *CreateViewRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *GetTracesMetaInfoRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetWorkspaceID bool = false - var issetViewName bool = false - var issetPlatformType bool = false - var issetSpanListType bool = false - var issetFilters bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -5553,47 +5780,18 @@ func (p *CreateViewRequest) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetWorkspaceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 3: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } - issetViewName = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - issetPlatformType = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRING { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - issetSpanListType = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRING { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - issetFilters = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -5618,115 +5816,56 @@ func (p *CreateViewRequest) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetWorkspaceID { - fieldId = 2 - goto RequiredFieldNotSetError - } - - if !issetViewName { - fieldId = 3 - goto RequiredFieldNotSetError - } - - if !issetPlatformType { - fieldId = 4 - goto RequiredFieldNotSetError - } - - if !issetSpanListType { - fieldId = 5 - goto RequiredFieldNotSetError - } - - if !issetFilters { - fieldId = 6 - goto RequiredFieldNotSetError - } - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateViewRequest[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_GetTracesMetaInfoRequest[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_CreateViewRequest[fieldId])) } -func (p *CreateViewRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *GetTracesMetaInfoRequest) ReadField1(iprot thrift.TProtocol) error { - var _field *string + var _field *common.PlatformType if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.EnterpriseID = _field - return nil -} -func (p *CreateViewRequest) ReadField2(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.WorkspaceID = _field - return nil -} -func (p *CreateViewRequest) ReadField3(iprot thrift.TProtocol) error { - - var _field string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } - p.ViewName = _field - return nil -} -func (p *CreateViewRequest) ReadField4(iprot thrift.TProtocol) error { - - var _field common.PlatformType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } p.PlatformType = _field return nil } -func (p *CreateViewRequest) ReadField5(iprot thrift.TProtocol) error { +func (p *GetTracesMetaInfoRequest) ReadField2(iprot thrift.TProtocol) error { - var _field common.SpanListType + var _field *common.SpanListType if v, err := iprot.ReadString(); err != nil { return err } else { - _field = v + _field = &v } p.SpanListType = _field return nil } -func (p *CreateViewRequest) ReadField6(iprot thrift.TProtocol) error { +func (p *GetTracesMetaInfoRequest) ReadField3(iprot thrift.TProtocol) error { - var _field string - if v, err := iprot.ReadString(); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = v + _field = &v } - p.Filters = _field + p.WorkspaceID = _field return nil } -func (p *CreateViewRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *GetTracesMetaInfoRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -5735,9 +5874,9 @@ func (p *CreateViewRequest) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *CreateViewRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *GetTracesMetaInfoRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreateViewRequest"); err != nil { + if err = oprot.WriteStructBegin("GetTracesMetaInfoRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -5753,18 +5892,6 @@ func (p *CreateViewRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 3 goto WriteFieldError } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -5787,12 +5914,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *CreateViewRequest) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetEnterpriseID() { - if err = oprot.WriteFieldBegin("enterprise_id", thrift.STRING, 1); err != nil { +func (p *GetTracesMetaInfoRequest) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetPlatformType() { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.EnterpriseID); err != nil { + if err := oprot.WriteString(*p.PlatformType); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5805,15 +5932,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *CreateViewRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *GetTracesMetaInfoRequest) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetSpanListType() { + if err = oprot.WriteFieldBegin("spanList_type", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.SpanListType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -5821,15 +5950,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *CreateViewRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("view_name", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.ViewName); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *GetTracesMetaInfoRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetWorkspaceID() { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.WorkspaceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -5837,55 +5968,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *CreateViewRequest) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.PlatformType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *CreateViewRequest) writeField5(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("span_list_type", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.SpanListType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *CreateViewRequest) writeField6(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("filters", thrift.STRING, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.Filters); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *CreateViewRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *GetTracesMetaInfoRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -5904,36 +5987,27 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *CreateViewRequest) String() string { +func (p *GetTracesMetaInfoRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("CreateViewRequest(%+v)", *p) + return fmt.Sprintf("GetTracesMetaInfoRequest(%+v)", *p) } -func (p *CreateViewRequest) DeepEqual(ano *CreateViewRequest) bool { +func (p *GetTracesMetaInfoRequest) DeepEqual(ano *GetTracesMetaInfoRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.EnterpriseID) { - return false - } - if !p.Field2DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field3DeepEqual(ano.ViewName) { - return false - } - if !p.Field4DeepEqual(ano.PlatformType) { + if !p.Field1DeepEqual(ano.PlatformType) { return false } - if !p.Field5DeepEqual(ano.SpanListType) { + if !p.Field2DeepEqual(ano.SpanListType) { return false } - if !p.Field6DeepEqual(ano.Filters) { + if !p.Field3DeepEqual(ano.WorkspaceID) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -5942,111 +6016,121 @@ func (p *CreateViewRequest) DeepEqual(ano *CreateViewRequest) bool { return true } -func (p *CreateViewRequest) Field1DeepEqual(src *string) bool { +func (p *GetTracesMetaInfoRequest) Field1DeepEqual(src *common.PlatformType) bool { - if p.EnterpriseID == src { + if p.PlatformType == src { return true - } else if p.EnterpriseID == nil || src == nil { + } else if p.PlatformType == nil || src == nil { return false } - if strings.Compare(*p.EnterpriseID, *src) != 0 { + if strings.Compare(*p.PlatformType, *src) != 0 { return false } return true } -func (p *CreateViewRequest) Field2DeepEqual(src int64) bool { +func (p *GetTracesMetaInfoRequest) Field2DeepEqual(src *common.SpanListType) bool { - if p.WorkspaceID != src { + if p.SpanListType == src { + return true + } else if p.SpanListType == nil || src == nil { return false } - return true -} -func (p *CreateViewRequest) Field3DeepEqual(src string) bool { - - if strings.Compare(p.ViewName, src) != 0 { + if strings.Compare(*p.SpanListType, *src) != 0 { return false } return true } -func (p *CreateViewRequest) Field4DeepEqual(src common.PlatformType) bool { +func (p *GetTracesMetaInfoRequest) Field3DeepEqual(src *int64) bool { - if strings.Compare(p.PlatformType, src) != 0 { + if p.WorkspaceID == src { + return true + } else if p.WorkspaceID == nil || src == nil { return false } - return true -} -func (p *CreateViewRequest) Field5DeepEqual(src common.SpanListType) bool { - - if strings.Compare(p.SpanListType, src) != 0 { + if *p.WorkspaceID != *src { return false } return true } -func (p *CreateViewRequest) Field6DeepEqual(src string) bool { +func (p *GetTracesMetaInfoRequest) Field255DeepEqual(src *base.Base) bool { - if strings.Compare(p.Filters, src) != 0 { + if !p.Base.DeepEqual(src) { return false } return true } -func (p *CreateViewRequest) Field255DeepEqual(src *base.Base) bool { - if !p.Base.DeepEqual(src) { - return false - } - return true +type GetTracesMetaInfoResponse struct { + FieldMetas map[string]*FieldMeta `thrift:"field_metas,1,required" frugal:"1,required,map" form:"field_metas,required" json:"field_metas,required" query:"field_metas,required"` + KeySpanType []string `thrift:"key_span_type,2,optional" frugal:"2,optional,list" form:"key_span_type" json:"key_span_type,omitempty" query:"key_span_type"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -type CreateViewResponse struct { - ID int64 `thrift:"id,1,required" frugal:"1,required,i64" json:"id" form:"id,required" ` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` -} - -func NewCreateViewResponse() *CreateViewResponse { - return &CreateViewResponse{} +func NewGetTracesMetaInfoResponse() *GetTracesMetaInfoResponse { + return &GetTracesMetaInfoResponse{} } -func (p *CreateViewResponse) InitDefault() { +func (p *GetTracesMetaInfoResponse) InitDefault() { } -func (p *CreateViewResponse) GetID() (v int64) { +func (p *GetTracesMetaInfoResponse) GetFieldMetas() (v map[string]*FieldMeta) { if p != nil { - return p.ID + return p.FieldMetas } return } -var CreateViewResponse_BaseResp_DEFAULT *base.BaseResp +var GetTracesMetaInfoResponse_KeySpanType_DEFAULT []string -func (p *CreateViewResponse) GetBaseResp() (v *base.BaseResp) { +func (p *GetTracesMetaInfoResponse) GetKeySpanType() (v []string) { + if p == nil { + return + } + if !p.IsSetKeySpanType() { + return GetTracesMetaInfoResponse_KeySpanType_DEFAULT + } + return p.KeySpanType +} + +var GetTracesMetaInfoResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *GetTracesMetaInfoResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return CreateViewResponse_BaseResp_DEFAULT + return GetTracesMetaInfoResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *CreateViewResponse) SetID(val int64) { - p.ID = val +func (p *GetTracesMetaInfoResponse) SetFieldMetas(val map[string]*FieldMeta) { + p.FieldMetas = val } -func (p *CreateViewResponse) SetBaseResp(val *base.BaseResp) { +func (p *GetTracesMetaInfoResponse) SetKeySpanType(val []string) { + p.KeySpanType = val +} +func (p *GetTracesMetaInfoResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_CreateViewResponse = map[int16]string{ - 1: "id", +var fieldIDToName_GetTracesMetaInfoResponse = map[int16]string{ + 1: "field_metas", + 2: "key_span_type", 255: "BaseResp", } -func (p *CreateViewResponse) IsSetBaseResp() bool { +func (p *GetTracesMetaInfoResponse) IsSetKeySpanType() bool { + return p.KeySpanType != nil +} + +func (p *GetTracesMetaInfoResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *CreateViewResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *GetTracesMetaInfoResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetID bool = false + var issetFieldMetas bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -6063,11 +6147,19 @@ func (p *CreateViewResponse) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.MAP { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetID = true + issetFieldMetas = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -6092,7 +6184,7 @@ func (p *CreateViewResponse) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetID { + if !issetFieldMetas { fieldId = 1 goto RequiredFieldNotSetError } @@ -6102,7 +6194,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateViewResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_GetTracesMetaInfoResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -6111,21 +6203,62 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_CreateViewResponse[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_GetTracesMetaInfoResponse[fieldId])) } -func (p *CreateViewResponse) ReadField1(iprot thrift.TProtocol) error { +func (p *GetTracesMetaInfoResponse) ReadField1(iprot thrift.TProtocol) error { + _, _, size, err := iprot.ReadMapBegin() + if err != nil { + return err + } + _field := make(map[string]*FieldMeta, size) + values := make([]FieldMeta, size) + for i := 0; i < size; i++ { + var _key string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _key = v + } - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + _val := &values[i] + _val.InitDefault() + if err := _val.Read(iprot); err != nil { + return err + } + + _field[_key] = _val + } + if err := iprot.ReadMapEnd(); err != nil { return err - } else { - _field = v } - p.ID = _field + p.FieldMetas = _field return nil } -func (p *CreateViewResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *GetTracesMetaInfoResponse) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + + var _elem string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.KeySpanType = _field + return nil +} +func (p *GetTracesMetaInfoResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -6134,9 +6267,9 @@ func (p *CreateViewResponse) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *CreateViewResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *GetTracesMetaInfoResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreateViewResponse"); err != nil { + if err = oprot.WriteStructBegin("GetTracesMetaInfoResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -6144,6 +6277,10 @@ func (p *CreateViewResponse) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -6166,11 +6303,22 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *CreateViewResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { +func (p *GetTracesMetaInfoResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("field_metas", thrift.MAP, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.ID); err != nil { + if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.FieldMetas)); err != nil { + return err + } + for k, v := range p.FieldMetas { + if err := oprot.WriteString(k); err != nil { + return err + } + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteMapEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -6182,7 +6330,33 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *CreateViewResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *GetTracesMetaInfoResponse) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetKeySpanType() { + if err = oprot.WriteFieldBegin("key_span_type", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.KeySpanType)); err != nil { + return err + } + for _, v := range p.KeySpanType { + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *GetTracesMetaInfoResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -6201,21 +6375,24 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *CreateViewResponse) String() string { +func (p *GetTracesMetaInfoResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("CreateViewResponse(%+v)", *p) + return fmt.Sprintf("GetTracesMetaInfoResponse(%+v)", *p) } -func (p *CreateViewResponse) DeepEqual(ano *CreateViewResponse) bool { +func (p *GetTracesMetaInfoResponse) DeepEqual(ano *GetTracesMetaInfoResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ID) { + if !p.Field1DeepEqual(ano.FieldMetas) { + return false + } + if !p.Field2DeepEqual(ano.KeySpanType) { return false } if !p.Field255DeepEqual(ano.BaseResp) { @@ -6224,14 +6401,33 @@ func (p *CreateViewResponse) DeepEqual(ano *CreateViewResponse) bool { return true } -func (p *CreateViewResponse) Field1DeepEqual(src int64) bool { +func (p *GetTracesMetaInfoResponse) Field1DeepEqual(src map[string]*FieldMeta) bool { - if p.ID != src { + if len(p.FieldMetas) != len(src) { return false } + for k, v := range p.FieldMetas { + _src := src[k] + if !v.DeepEqual(_src) { + return false + } + } return true } -func (p *CreateViewResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *GetTracesMetaInfoResponse) Field2DeepEqual(src []string) bool { + + if len(p.KeySpanType) != len(src) { + return false + } + for i, v := range p.KeySpanType { + _src := src[i] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} +func (p *GetTracesMetaInfoResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -6239,120 +6435,105 @@ func (p *CreateViewResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type UpdateViewRequest struct { - ID int64 `thrift:"id,1,required" frugal:"1,required,i64" json:"id" path:"view_id,required" ` - WorkspaceID int64 `thrift:"workspace_id,2,required" frugal:"2,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ViewName *string `thrift:"view_name,3,optional" frugal:"3,optional,string" form:"view_name" json:"view_name,omitempty"` - PlatformType *common.PlatformType `thrift:"platform_type,4,optional" frugal:"4,optional,string" form:"platform_type" json:"platform_type,omitempty"` - SpanListType *common.SpanListType `thrift:"span_list_type,5,optional" frugal:"5,optional,string" form:"span_list_type" json:"span_list_type,omitempty"` - Filters *string `thrift:"filters,6,optional" frugal:"6,optional,string" form:"filters" json:"filters,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type CreateViewRequest struct { + EnterpriseID *string `thrift:"enterprise_id,1,optional" frugal:"1,optional,string" form:"enterprise_id" json:"enterprise_id,omitempty"` + WorkspaceID int64 `thrift:"workspace_id,2,required" frugal:"2,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ViewName string `thrift:"view_name,3,required" frugal:"3,required,string" form:"view_name,required" json:"view_name,required"` + PlatformType common.PlatformType `thrift:"platform_type,4,required" frugal:"4,required,string" form:"platform_type,required" json:"platform_type,required"` + SpanListType common.SpanListType `thrift:"span_list_type,5,required" frugal:"5,required,string" form:"span_list_type,required" json:"span_list_type,required"` + Filters string `thrift:"filters,6,required" frugal:"6,required,string" form:"filters,required" json:"filters,required"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewUpdateViewRequest() *UpdateViewRequest { - return &UpdateViewRequest{} +func NewCreateViewRequest() *CreateViewRequest { + return &CreateViewRequest{} } -func (p *UpdateViewRequest) InitDefault() { +func (p *CreateViewRequest) InitDefault() { } -func (p *UpdateViewRequest) GetID() (v int64) { - if p != nil { - return p.ID +var CreateViewRequest_EnterpriseID_DEFAULT string + +func (p *CreateViewRequest) GetEnterpriseID() (v string) { + if p == nil { + return } - return + if !p.IsSetEnterpriseID() { + return CreateViewRequest_EnterpriseID_DEFAULT + } + return *p.EnterpriseID } -func (p *UpdateViewRequest) GetWorkspaceID() (v int64) { +func (p *CreateViewRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -var UpdateViewRequest_ViewName_DEFAULT string - -func (p *UpdateViewRequest) GetViewName() (v string) { - if p == nil { - return - } - if !p.IsSetViewName() { - return UpdateViewRequest_ViewName_DEFAULT +func (p *CreateViewRequest) GetViewName() (v string) { + if p != nil { + return p.ViewName } - return *p.ViewName + return } -var UpdateViewRequest_PlatformType_DEFAULT common.PlatformType - -func (p *UpdateViewRequest) GetPlatformType() (v common.PlatformType) { - if p == nil { - return +func (p *CreateViewRequest) GetPlatformType() (v common.PlatformType) { + if p != nil { + return p.PlatformType } - if !p.IsSetPlatformType() { - return UpdateViewRequest_PlatformType_DEFAULT - } - return *p.PlatformType + return } -var UpdateViewRequest_SpanListType_DEFAULT common.SpanListType - -func (p *UpdateViewRequest) GetSpanListType() (v common.SpanListType) { - if p == nil { - return - } - if !p.IsSetSpanListType() { - return UpdateViewRequest_SpanListType_DEFAULT +func (p *CreateViewRequest) GetSpanListType() (v common.SpanListType) { + if p != nil { + return p.SpanListType } - return *p.SpanListType + return } -var UpdateViewRequest_Filters_DEFAULT string - -func (p *UpdateViewRequest) GetFilters() (v string) { - if p == nil { - return - } - if !p.IsSetFilters() { - return UpdateViewRequest_Filters_DEFAULT +func (p *CreateViewRequest) GetFilters() (v string) { + if p != nil { + return p.Filters } - return *p.Filters + return } -var UpdateViewRequest_Base_DEFAULT *base.Base +var CreateViewRequest_Base_DEFAULT *base.Base -func (p *UpdateViewRequest) GetBase() (v *base.Base) { +func (p *CreateViewRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return UpdateViewRequest_Base_DEFAULT + return CreateViewRequest_Base_DEFAULT } return p.Base } -func (p *UpdateViewRequest) SetID(val int64) { - p.ID = val +func (p *CreateViewRequest) SetEnterpriseID(val *string) { + p.EnterpriseID = val } -func (p *UpdateViewRequest) SetWorkspaceID(val int64) { +func (p *CreateViewRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *UpdateViewRequest) SetViewName(val *string) { +func (p *CreateViewRequest) SetViewName(val string) { p.ViewName = val } -func (p *UpdateViewRequest) SetPlatformType(val *common.PlatformType) { +func (p *CreateViewRequest) SetPlatformType(val common.PlatformType) { p.PlatformType = val } -func (p *UpdateViewRequest) SetSpanListType(val *common.SpanListType) { +func (p *CreateViewRequest) SetSpanListType(val common.SpanListType) { p.SpanListType = val } -func (p *UpdateViewRequest) SetFilters(val *string) { +func (p *CreateViewRequest) SetFilters(val string) { p.Filters = val } -func (p *UpdateViewRequest) SetBase(val *base.Base) { +func (p *CreateViewRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_UpdateViewRequest = map[int16]string{ - 1: "id", +var fieldIDToName_CreateViewRequest = map[int16]string{ + 1: "enterprise_id", 2: "workspace_id", 3: "view_name", 4: "platform_type", @@ -6361,31 +6542,22 @@ var fieldIDToName_UpdateViewRequest = map[int16]string{ 255: "Base", } -func (p *UpdateViewRequest) IsSetViewName() bool { - return p.ViewName != nil -} - -func (p *UpdateViewRequest) IsSetPlatformType() bool { - return p.PlatformType != nil -} - -func (p *UpdateViewRequest) IsSetSpanListType() bool { - return p.SpanListType != nil -} - -func (p *UpdateViewRequest) IsSetFilters() bool { - return p.Filters != nil +func (p *CreateViewRequest) IsSetEnterpriseID() bool { + return p.EnterpriseID != nil } -func (p *UpdateViewRequest) IsSetBase() bool { +func (p *CreateViewRequest) IsSetBase() bool { return p.Base != nil } -func (p *UpdateViewRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *CreateViewRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetID bool = false var issetWorkspaceID bool = false + var issetViewName bool = false + var issetPlatformType bool = false + var issetSpanListType bool = false + var issetFilters bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -6402,11 +6574,10 @@ func (p *UpdateViewRequest) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -6424,6 +6595,7 @@ func (p *UpdateViewRequest) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } + issetViewName = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -6432,6 +6604,7 @@ func (p *UpdateViewRequest) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } + issetPlatformType = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -6440,6 +6613,7 @@ func (p *UpdateViewRequest) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField5(iprot); err != nil { goto ReadFieldError } + issetSpanListType = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -6448,6 +6622,7 @@ func (p *UpdateViewRequest) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField6(iprot); err != nil { goto ReadFieldError } + issetFilters = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -6472,13 +6647,28 @@ func (p *UpdateViewRequest) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetID { - fieldId = 1 + if !issetWorkspaceID { + fieldId = 2 goto RequiredFieldNotSetError } - if !issetWorkspaceID { - fieldId = 2 + if !issetViewName { + fieldId = 3 + goto RequiredFieldNotSetError + } + + if !issetPlatformType { + fieldId = 4 + goto RequiredFieldNotSetError + } + + if !issetSpanListType { + fieldId = 5 + goto RequiredFieldNotSetError + } + + if !issetFilters { + fieldId = 6 goto RequiredFieldNotSetError } return nil @@ -6487,7 +6677,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateViewRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateViewRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -6496,21 +6686,21 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_UpdateViewRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_CreateViewRequest[fieldId])) } -func (p *UpdateViewRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *CreateViewRequest) ReadField1(iprot thrift.TProtocol) error { - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + var _field *string + if v, err := iprot.ReadString(); err != nil { return err } else { - _field = v + _field = &v } - p.ID = _field + p.EnterpriseID = _field return nil } -func (p *UpdateViewRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *CreateViewRequest) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -6521,51 +6711,51 @@ func (p *UpdateViewRequest) ReadField2(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *UpdateViewRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *CreateViewRequest) ReadField3(iprot thrift.TProtocol) error { - var _field *string + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - _field = &v + _field = v } p.ViewName = _field return nil } -func (p *UpdateViewRequest) ReadField4(iprot thrift.TProtocol) error { +func (p *CreateViewRequest) ReadField4(iprot thrift.TProtocol) error { - var _field *common.PlatformType + var _field common.PlatformType if v, err := iprot.ReadString(); err != nil { return err } else { - _field = &v + _field = v } p.PlatformType = _field return nil } -func (p *UpdateViewRequest) ReadField5(iprot thrift.TProtocol) error { +func (p *CreateViewRequest) ReadField5(iprot thrift.TProtocol) error { - var _field *common.SpanListType + var _field common.SpanListType if v, err := iprot.ReadString(); err != nil { return err } else { - _field = &v + _field = v } p.SpanListType = _field return nil } -func (p *UpdateViewRequest) ReadField6(iprot thrift.TProtocol) error { +func (p *CreateViewRequest) ReadField6(iprot thrift.TProtocol) error { - var _field *string + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - _field = &v + _field = v } p.Filters = _field return nil } -func (p *UpdateViewRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *CreateViewRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -6574,9 +6764,9 @@ func (p *UpdateViewRequest) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *UpdateViewRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *CreateViewRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpdateViewRequest"); err != nil { + if err = oprot.WriteStructBegin("CreateViewRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -6626,15 +6816,17 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UpdateViewRequest) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.ID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *CreateViewRequest) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetEnterpriseID() { + if err = oprot.WriteFieldBegin("enterprise_id", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.EnterpriseID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -6642,7 +6834,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *UpdateViewRequest) writeField2(oprot thrift.TProtocol) (err error) { +func (p *CreateViewRequest) writeField2(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } @@ -6658,17 +6850,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *UpdateViewRequest) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetViewName() { - if err = oprot.WriteFieldBegin("view_name", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ViewName); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *CreateViewRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("view_name", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.ViewName); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -6676,17 +6866,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *UpdateViewRequest) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PlatformType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *CreateViewRequest) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.PlatformType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -6694,17 +6882,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *UpdateViewRequest) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetSpanListType() { - if err = oprot.WriteFieldBegin("span_list_type", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.SpanListType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *CreateViewRequest) writeField5(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("span_list_type", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.SpanListType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -6712,25 +6898,23 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) } -func (p *UpdateViewRequest) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetFilters() { - if err = oprot.WriteFieldBegin("filters", thrift.STRING, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Filters); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *CreateViewRequest) writeField6(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("filters", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) + if err := oprot.WriteString(p.Filters); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } -func (p *UpdateViewRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *CreateViewRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -6749,21 +6933,21 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *UpdateViewRequest) String() string { +func (p *CreateViewRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("UpdateViewRequest(%+v)", *p) + return fmt.Sprintf("CreateViewRequest(%+v)", *p) } -func (p *UpdateViewRequest) DeepEqual(ano *UpdateViewRequest) bool { +func (p *CreateViewRequest) DeepEqual(ano *CreateViewRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ID) { + if !p.Field1DeepEqual(ano.EnterpriseID) { return false } if !p.Field2DeepEqual(ano.WorkspaceID) { @@ -6787,69 +6971,54 @@ func (p *UpdateViewRequest) DeepEqual(ano *UpdateViewRequest) bool { return true } -func (p *UpdateViewRequest) Field1DeepEqual(src int64) bool { +func (p *CreateViewRequest) Field1DeepEqual(src *string) bool { - if p.ID != src { + if p.EnterpriseID == src { + return true + } else if p.EnterpriseID == nil || src == nil { + return false + } + if strings.Compare(*p.EnterpriseID, *src) != 0 { return false } return true } -func (p *UpdateViewRequest) Field2DeepEqual(src int64) bool { +func (p *CreateViewRequest) Field2DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *UpdateViewRequest) Field3DeepEqual(src *string) bool { +func (p *CreateViewRequest) Field3DeepEqual(src string) bool { - if p.ViewName == src { - return true - } else if p.ViewName == nil || src == nil { - return false - } - if strings.Compare(*p.ViewName, *src) != 0 { + if strings.Compare(p.ViewName, src) != 0 { return false } return true } -func (p *UpdateViewRequest) Field4DeepEqual(src *common.PlatformType) bool { +func (p *CreateViewRequest) Field4DeepEqual(src common.PlatformType) bool { - if p.PlatformType == src { - return true - } else if p.PlatformType == nil || src == nil { - return false - } - if strings.Compare(*p.PlatformType, *src) != 0 { + if strings.Compare(p.PlatformType, src) != 0 { return false } return true } -func (p *UpdateViewRequest) Field5DeepEqual(src *common.SpanListType) bool { +func (p *CreateViewRequest) Field5DeepEqual(src common.SpanListType) bool { - if p.SpanListType == src { - return true - } else if p.SpanListType == nil || src == nil { - return false - } - if strings.Compare(*p.SpanListType, *src) != 0 { + if strings.Compare(p.SpanListType, src) != 0 { return false } return true } -func (p *UpdateViewRequest) Field6DeepEqual(src *string) bool { +func (p *CreateViewRequest) Field6DeepEqual(src string) bool { - if p.Filters == src { - return true - } else if p.Filters == nil || src == nil { - return false - } - if strings.Compare(*p.Filters, *src) != 0 { + if strings.Compare(p.Filters, src) != 0 { return false } return true } -func (p *UpdateViewRequest) Field255DeepEqual(src *base.Base) bool { +func (p *CreateViewRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -6857,43 +7026,56 @@ func (p *UpdateViewRequest) Field255DeepEqual(src *base.Base) bool { return true } -type UpdateViewResponse struct { +type CreateViewResponse struct { + ID int64 `thrift:"id,1,required" frugal:"1,required,i64" json:"id" form:"id,required" ` BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewUpdateViewResponse() *UpdateViewResponse { - return &UpdateViewResponse{} +func NewCreateViewResponse() *CreateViewResponse { + return &CreateViewResponse{} } -func (p *UpdateViewResponse) InitDefault() { +func (p *CreateViewResponse) InitDefault() { } -var UpdateViewResponse_BaseResp_DEFAULT *base.BaseResp +func (p *CreateViewResponse) GetID() (v int64) { + if p != nil { + return p.ID + } + return +} -func (p *UpdateViewResponse) GetBaseResp() (v *base.BaseResp) { +var CreateViewResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *CreateViewResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return UpdateViewResponse_BaseResp_DEFAULT + return CreateViewResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *UpdateViewResponse) SetBaseResp(val *base.BaseResp) { +func (p *CreateViewResponse) SetID(val int64) { + p.ID = val +} +func (p *CreateViewResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_UpdateViewResponse = map[int16]string{ +var fieldIDToName_CreateViewResponse = map[int16]string{ + 1: "id", 255: "BaseResp", } -func (p *UpdateViewResponse) IsSetBaseResp() bool { +func (p *CreateViewResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *UpdateViewResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *CreateViewResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -6909,6 +7091,15 @@ func (p *UpdateViewResponse) Read(iprot thrift.TProtocol) (err error) { } switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -6930,13 +7121,17 @@ func (p *UpdateViewResponse) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } + if !issetID { + fieldId = 1 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateViewResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateViewResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -6944,9 +7139,22 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_CreateViewResponse[fieldId])) } -func (p *UpdateViewResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *CreateViewResponse) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ID = _field + return nil +} +func (p *CreateViewResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -6955,12 +7163,16 @@ func (p *UpdateViewResponse) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *UpdateViewResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *CreateViewResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpdateViewResponse"); err != nil { + if err = oprot.WriteStructBegin("CreateViewResponse"); err != nil { goto WriteStructBeginError } if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -6983,7 +7195,23 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UpdateViewResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *CreateViewResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *CreateViewResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -7002,27 +7230,37 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *UpdateViewResponse) String() string { +func (p *CreateViewResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("UpdateViewResponse(%+v)", *p) + return fmt.Sprintf("CreateViewResponse(%+v)", *p) } -func (p *UpdateViewResponse) DeepEqual(ano *UpdateViewResponse) bool { +func (p *CreateViewResponse) DeepEqual(ano *CreateViewResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } + if !p.Field1DeepEqual(ano.ID) { + return false + } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *UpdateViewResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *CreateViewResponse) Field1DeepEqual(src int64) bool { + + if p.ID != src { + return false + } + return true +} +func (p *CreateViewResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -7030,80 +7268,164 @@ func (p *UpdateViewResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type DeleteViewRequest struct { - ID int64 `thrift:"id,1,required" frugal:"1,required,i64" json:"id" path:"view_id,required" ` - WorkspaceID int64 `thrift:"workspace_id,2,required" frugal:"2,required,i64" json:"workspace_id" query:"workspace_id,required" ` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type UpdateViewRequest struct { + ID int64 `thrift:"id,1,required" frugal:"1,required,i64" json:"id" path:"view_id,required" ` + WorkspaceID int64 `thrift:"workspace_id,2,required" frugal:"2,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ViewName *string `thrift:"view_name,3,optional" frugal:"3,optional,string" form:"view_name" json:"view_name,omitempty"` + PlatformType *common.PlatformType `thrift:"platform_type,4,optional" frugal:"4,optional,string" form:"platform_type" json:"platform_type,omitempty"` + SpanListType *common.SpanListType `thrift:"span_list_type,5,optional" frugal:"5,optional,string" form:"span_list_type" json:"span_list_type,omitempty"` + Filters *string `thrift:"filters,6,optional" frugal:"6,optional,string" form:"filters" json:"filters,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewDeleteViewRequest() *DeleteViewRequest { - return &DeleteViewRequest{} +func NewUpdateViewRequest() *UpdateViewRequest { + return &UpdateViewRequest{} } -func (p *DeleteViewRequest) InitDefault() { +func (p *UpdateViewRequest) InitDefault() { } -func (p *DeleteViewRequest) GetID() (v int64) { +func (p *UpdateViewRequest) GetID() (v int64) { if p != nil { return p.ID } return } -func (p *DeleteViewRequest) GetWorkspaceID() (v int64) { +func (p *UpdateViewRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -var DeleteViewRequest_Base_DEFAULT *base.Base +var UpdateViewRequest_ViewName_DEFAULT string -func (p *DeleteViewRequest) GetBase() (v *base.Base) { +func (p *UpdateViewRequest) GetViewName() (v string) { if p == nil { return } - if !p.IsSetBase() { - return DeleteViewRequest_Base_DEFAULT + if !p.IsSetViewName() { + return UpdateViewRequest_ViewName_DEFAULT } - return p.Base -} -func (p *DeleteViewRequest) SetID(val int64) { - p.ID = val -} -func (p *DeleteViewRequest) SetWorkspaceID(val int64) { - p.WorkspaceID = val -} -func (p *DeleteViewRequest) SetBase(val *base.Base) { - p.Base = val + return *p.ViewName } -var fieldIDToName_DeleteViewRequest = map[int16]string{ - 1: "id", - 2: "workspace_id", - 255: "Base", -} +var UpdateViewRequest_PlatformType_DEFAULT common.PlatformType -func (p *DeleteViewRequest) IsSetBase() bool { - return p.Base != nil +func (p *UpdateViewRequest) GetPlatformType() (v common.PlatformType) { + if p == nil { + return + } + if !p.IsSetPlatformType() { + return UpdateViewRequest_PlatformType_DEFAULT + } + return *p.PlatformType } -func (p *DeleteViewRequest) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - var issetID bool = false - var issetWorkspaceID bool = false +var UpdateViewRequest_SpanListType_DEFAULT common.SpanListType - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError +func (p *UpdateViewRequest) GetSpanListType() (v common.SpanListType) { + if p == nil { + return + } + if !p.IsSetSpanListType() { + return UpdateViewRequest_SpanListType_DEFAULT } + return *p.SpanListType +} - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { +var UpdateViewRequest_Filters_DEFAULT string + +func (p *UpdateViewRequest) GetFilters() (v string) { + if p == nil { + return + } + if !p.IsSetFilters() { + return UpdateViewRequest_Filters_DEFAULT + } + return *p.Filters +} + +var UpdateViewRequest_Base_DEFAULT *base.Base + +func (p *UpdateViewRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return UpdateViewRequest_Base_DEFAULT + } + return p.Base +} +func (p *UpdateViewRequest) SetID(val int64) { + p.ID = val +} +func (p *UpdateViewRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val +} +func (p *UpdateViewRequest) SetViewName(val *string) { + p.ViewName = val +} +func (p *UpdateViewRequest) SetPlatformType(val *common.PlatformType) { + p.PlatformType = val +} +func (p *UpdateViewRequest) SetSpanListType(val *common.SpanListType) { + p.SpanListType = val +} +func (p *UpdateViewRequest) SetFilters(val *string) { + p.Filters = val +} +func (p *UpdateViewRequest) SetBase(val *base.Base) { + p.Base = val +} + +var fieldIDToName_UpdateViewRequest = map[int16]string{ + 1: "id", + 2: "workspace_id", + 3: "view_name", + 4: "platform_type", + 5: "span_list_type", + 6: "filters", + 255: "Base", +} + +func (p *UpdateViewRequest) IsSetViewName() bool { + return p.ViewName != nil +} + +func (p *UpdateViewRequest) IsSetPlatformType() bool { + return p.PlatformType != nil +} + +func (p *UpdateViewRequest) IsSetSpanListType() bool { + return p.SpanListType != nil +} + +func (p *UpdateViewRequest) IsSetFilters() bool { + return p.Filters != nil +} + +func (p *UpdateViewRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *UpdateViewRequest) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetID bool = false + var issetWorkspaceID bool = false + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { break } @@ -7126,6 +7448,38 @@ func (p *DeleteViewRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.STRING { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.STRING { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -7162,7 +7516,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteViewRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateViewRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -7171,10 +7525,10 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_DeleteViewRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_UpdateViewRequest[fieldId])) } -func (p *DeleteViewRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *UpdateViewRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -7185,7 +7539,7 @@ func (p *DeleteViewRequest) ReadField1(iprot thrift.TProtocol) error { p.ID = _field return nil } -func (p *DeleteViewRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *UpdateViewRequest) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -7196,7 +7550,51 @@ func (p *DeleteViewRequest) ReadField2(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *DeleteViewRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *UpdateViewRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ViewName = _field + return nil +} +func (p *UpdateViewRequest) ReadField4(iprot thrift.TProtocol) error { + + var _field *common.PlatformType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PlatformType = _field + return nil +} +func (p *UpdateViewRequest) ReadField5(iprot thrift.TProtocol) error { + + var _field *common.SpanListType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.SpanListType = _field + return nil +} +func (p *UpdateViewRequest) ReadField6(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Filters = _field + return nil +} +func (p *UpdateViewRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -7205,9 +7603,9 @@ func (p *DeleteViewRequest) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *DeleteViewRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *UpdateViewRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteViewRequest"); err != nil { + if err = oprot.WriteStructBegin("UpdateViewRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -7219,6 +7617,22 @@ func (p *DeleteViewRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -7241,7 +7655,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *DeleteViewRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *UpdateViewRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -7257,7 +7671,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *DeleteViewRequest) writeField2(oprot thrift.TProtocol) (err error) { +func (p *UpdateViewRequest) writeField2(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } @@ -7273,12 +7687,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *DeleteViewRequest) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBase() { - if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { +func (p *UpdateViewRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetViewName() { + if err = oprot.WriteFieldBegin("view_name", thrift.STRING, 3); err != nil { goto WriteFieldBeginError } - if err := p.Base.Write(oprot); err != nil { + if err := oprot.WriteString(*p.ViewName); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -7287,29 +7701,113 @@ func (p *DeleteViewRequest) writeField255(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } - -func (p *DeleteViewRequest) String() string { - if p == nil { - return "" +func (p *UpdateViewRequest) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetPlatformType() { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PlatformType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return fmt.Sprintf("DeleteViewRequest(%+v)", *p) - + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } - -func (p *DeleteViewRequest) DeepEqual(ano *DeleteViewRequest) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.ID) { - return false +func (p *UpdateViewRequest) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetSpanListType() { + if err = oprot.WriteFieldBegin("span_list_type", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.SpanListType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - if !p.Field2DeepEqual(ano.WorkspaceID) { + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *UpdateViewRequest) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetFilters() { + if err = oprot.WriteFieldBegin("filters", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Filters); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *UpdateViewRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *UpdateViewRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("UpdateViewRequest(%+v)", *p) + +} + +func (p *UpdateViewRequest) DeepEqual(ano *UpdateViewRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ID) { + return false + } + if !p.Field2DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field3DeepEqual(ano.ViewName) { + return false + } + if !p.Field4DeepEqual(ano.PlatformType) { + return false + } + if !p.Field5DeepEqual(ano.SpanListType) { + return false + } + if !p.Field6DeepEqual(ano.Filters) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -7318,21 +7816,69 @@ func (p *DeleteViewRequest) DeepEqual(ano *DeleteViewRequest) bool { return true } -func (p *DeleteViewRequest) Field1DeepEqual(src int64) bool { +func (p *UpdateViewRequest) Field1DeepEqual(src int64) bool { if p.ID != src { return false } return true } -func (p *DeleteViewRequest) Field2DeepEqual(src int64) bool { +func (p *UpdateViewRequest) Field2DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *DeleteViewRequest) Field255DeepEqual(src *base.Base) bool { +func (p *UpdateViewRequest) Field3DeepEqual(src *string) bool { + + if p.ViewName == src { + return true + } else if p.ViewName == nil || src == nil { + return false + } + if strings.Compare(*p.ViewName, *src) != 0 { + return false + } + return true +} +func (p *UpdateViewRequest) Field4DeepEqual(src *common.PlatformType) bool { + + if p.PlatformType == src { + return true + } else if p.PlatformType == nil || src == nil { + return false + } + if strings.Compare(*p.PlatformType, *src) != 0 { + return false + } + return true +} +func (p *UpdateViewRequest) Field5DeepEqual(src *common.SpanListType) bool { + + if p.SpanListType == src { + return true + } else if p.SpanListType == nil || src == nil { + return false + } + if strings.Compare(*p.SpanListType, *src) != 0 { + return false + } + return true +} +func (p *UpdateViewRequest) Field6DeepEqual(src *string) bool { + + if p.Filters == src { + return true + } else if p.Filters == nil || src == nil { + return false + } + if strings.Compare(*p.Filters, *src) != 0 { + return false + } + return true +} +func (p *UpdateViewRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -7340,41 +7886,41 @@ func (p *DeleteViewRequest) Field255DeepEqual(src *base.Base) bool { return true } -type DeleteViewResponse struct { +type UpdateViewResponse struct { BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewDeleteViewResponse() *DeleteViewResponse { - return &DeleteViewResponse{} +func NewUpdateViewResponse() *UpdateViewResponse { + return &UpdateViewResponse{} } -func (p *DeleteViewResponse) InitDefault() { +func (p *UpdateViewResponse) InitDefault() { } -var DeleteViewResponse_BaseResp_DEFAULT *base.BaseResp +var UpdateViewResponse_BaseResp_DEFAULT *base.BaseResp -func (p *DeleteViewResponse) GetBaseResp() (v *base.BaseResp) { +func (p *UpdateViewResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return DeleteViewResponse_BaseResp_DEFAULT + return UpdateViewResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *DeleteViewResponse) SetBaseResp(val *base.BaseResp) { +func (p *UpdateViewResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_DeleteViewResponse = map[int16]string{ +var fieldIDToName_UpdateViewResponse = map[int16]string{ 255: "BaseResp", } -func (p *DeleteViewResponse) IsSetBaseResp() bool { +func (p *UpdateViewResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *DeleteViewResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *UpdateViewResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -7419,7 +7965,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteViewResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateViewResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -7429,7 +7975,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *DeleteViewResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *UpdateViewResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -7438,9 +7984,9 @@ func (p *DeleteViewResponse) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *DeleteViewResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *UpdateViewResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteViewResponse"); err != nil { + if err = oprot.WriteStructBegin("UpdateViewResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -7466,7 +8012,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *DeleteViewResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *UpdateViewResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -7485,15 +8031,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *DeleteViewResponse) String() string { +func (p *UpdateViewResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("DeleteViewResponse(%+v)", *p) + return fmt.Sprintf("UpdateViewResponse(%+v)", *p) } -func (p *DeleteViewResponse) DeepEqual(ano *DeleteViewResponse) bool { +func (p *UpdateViewResponse) DeepEqual(ano *UpdateViewResponse) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -7505,7 +8051,7 @@ func (p *DeleteViewResponse) DeepEqual(ano *DeleteViewResponse) bool { return true } -func (p *DeleteViewResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *UpdateViewResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -7513,97 +8059,68 @@ func (p *DeleteViewResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type ListViewsRequest struct { - EnterpriseID *string `thrift:"enterprise_id,1,optional" frugal:"1,optional,string" form:"enterprise_id" json:"enterprise_id,omitempty"` - WorkspaceID int64 `thrift:"workspace_id,2,required" frugal:"2,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ViewName *string `thrift:"view_name,3,optional" frugal:"3,optional,string" form:"view_name" json:"view_name,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type DeleteViewRequest struct { + ID int64 `thrift:"id,1,required" frugal:"1,required,i64" json:"id" path:"view_id,required" ` + WorkspaceID int64 `thrift:"workspace_id,2,required" frugal:"2,required,i64" json:"workspace_id" query:"workspace_id,required" ` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewListViewsRequest() *ListViewsRequest { - return &ListViewsRequest{} +func NewDeleteViewRequest() *DeleteViewRequest { + return &DeleteViewRequest{} } -func (p *ListViewsRequest) InitDefault() { +func (p *DeleteViewRequest) InitDefault() { } -var ListViewsRequest_EnterpriseID_DEFAULT string - -func (p *ListViewsRequest) GetEnterpriseID() (v string) { - if p == nil { - return - } - if !p.IsSetEnterpriseID() { - return ListViewsRequest_EnterpriseID_DEFAULT +func (p *DeleteViewRequest) GetID() (v int64) { + if p != nil { + return p.ID } - return *p.EnterpriseID + return } -func (p *ListViewsRequest) GetWorkspaceID() (v int64) { +func (p *DeleteViewRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -var ListViewsRequest_ViewName_DEFAULT string - -func (p *ListViewsRequest) GetViewName() (v string) { - if p == nil { - return - } - if !p.IsSetViewName() { - return ListViewsRequest_ViewName_DEFAULT - } - return *p.ViewName -} - -var ListViewsRequest_Base_DEFAULT *base.Base +var DeleteViewRequest_Base_DEFAULT *base.Base -func (p *ListViewsRequest) GetBase() (v *base.Base) { +func (p *DeleteViewRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return ListViewsRequest_Base_DEFAULT + return DeleteViewRequest_Base_DEFAULT } return p.Base } -func (p *ListViewsRequest) SetEnterpriseID(val *string) { - p.EnterpriseID = val +func (p *DeleteViewRequest) SetID(val int64) { + p.ID = val } -func (p *ListViewsRequest) SetWorkspaceID(val int64) { +func (p *DeleteViewRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *ListViewsRequest) SetViewName(val *string) { - p.ViewName = val -} -func (p *ListViewsRequest) SetBase(val *base.Base) { +func (p *DeleteViewRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ListViewsRequest = map[int16]string{ - 1: "enterprise_id", +var fieldIDToName_DeleteViewRequest = map[int16]string{ + 1: "id", 2: "workspace_id", - 3: "view_name", 255: "Base", } -func (p *ListViewsRequest) IsSetEnterpriseID() bool { - return p.EnterpriseID != nil -} - -func (p *ListViewsRequest) IsSetViewName() bool { - return p.ViewName != nil -} - -func (p *ListViewsRequest) IsSetBase() bool { +func (p *DeleteViewRequest) IsSetBase() bool { return p.Base != nil } -func (p *ListViewsRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *DeleteViewRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetID bool = false var issetWorkspaceID bool = false if _, err = iprot.ReadStructBegin(); err != nil { @@ -7621,10 +8138,11 @@ func (p *ListViewsRequest) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } + issetID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -7637,14 +8155,6 @@ func (p *ListViewsRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -7666,7 +8176,12 @@ func (p *ListViewsRequest) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetWorkspaceID { + if !issetID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetWorkspaceID { fieldId = 2 goto RequiredFieldNotSetError } @@ -7676,7 +8191,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListViewsRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteViewRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -7685,21 +8200,21 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListViewsRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_DeleteViewRequest[fieldId])) } -func (p *ListViewsRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *DeleteViewRequest) ReadField1(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { + var _field int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = &v + _field = v } - p.EnterpriseID = _field + p.ID = _field return nil } -func (p *ListViewsRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *DeleteViewRequest) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -7710,18 +8225,7 @@ func (p *ListViewsRequest) ReadField2(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *ListViewsRequest) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ViewName = _field - return nil -} -func (p *ListViewsRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *DeleteViewRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -7730,9 +8234,9 @@ func (p *ListViewsRequest) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *ListViewsRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *DeleteViewRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListViewsRequest"); err != nil { + if err = oprot.WriteStructBegin("DeleteViewRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -7744,10 +8248,6 @@ func (p *ListViewsRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -7770,17 +8270,15 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListViewsRequest) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetEnterpriseID() { - if err = oprot.WriteFieldBegin("enterprise_id", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.EnterpriseID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *DeleteViewRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -7788,7 +8286,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListViewsRequest) writeField2(oprot thrift.TProtocol) (err error) { +func (p *DeleteViewRequest) writeField2(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } @@ -7804,25 +8302,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListViewsRequest) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetViewName() { - if err = oprot.WriteFieldBegin("view_name", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ViewName); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ListViewsRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *DeleteViewRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -7841,67 +8321,47 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListViewsRequest) String() string { +func (p *DeleteViewRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ListViewsRequest(%+v)", *p) + return fmt.Sprintf("DeleteViewRequest(%+v)", *p) } -func (p *ListViewsRequest) DeepEqual(ano *ListViewsRequest) bool { +func (p *DeleteViewRequest) DeepEqual(ano *DeleteViewRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.EnterpriseID) { + if !p.Field1DeepEqual(ano.ID) { return false } if !p.Field2DeepEqual(ano.WorkspaceID) { return false } - if !p.Field3DeepEqual(ano.ViewName) { - return false - } if !p.Field255DeepEqual(ano.Base) { return false } return true } -func (p *ListViewsRequest) Field1DeepEqual(src *string) bool { +func (p *DeleteViewRequest) Field1DeepEqual(src int64) bool { - if p.EnterpriseID == src { - return true - } else if p.EnterpriseID == nil || src == nil { - return false - } - if strings.Compare(*p.EnterpriseID, *src) != 0 { + if p.ID != src { return false } return true } -func (p *ListViewsRequest) Field2DeepEqual(src int64) bool { +func (p *DeleteViewRequest) Field2DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *ListViewsRequest) Field3DeepEqual(src *string) bool { - - if p.ViewName == src { - return true - } else if p.ViewName == nil || src == nil { - return false - } - if strings.Compare(*p.ViewName, *src) != 0 { - return false - } - return true -} -func (p *ListViewsRequest) Field255DeepEqual(src *base.Base) bool { +func (p *DeleteViewRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -7909,56 +8369,43 @@ func (p *ListViewsRequest) Field255DeepEqual(src *base.Base) bool { return true } -type ListViewsResponse struct { - Views []*view.View `thrift:"views,1,required" frugal:"1,required,list" form:"views,required" json:"views,required" query:"views,required"` +type DeleteViewResponse struct { BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewListViewsResponse() *ListViewsResponse { - return &ListViewsResponse{} -} - -func (p *ListViewsResponse) InitDefault() { +func NewDeleteViewResponse() *DeleteViewResponse { + return &DeleteViewResponse{} } -func (p *ListViewsResponse) GetViews() (v []*view.View) { - if p != nil { - return p.Views - } - return +func (p *DeleteViewResponse) InitDefault() { } -var ListViewsResponse_BaseResp_DEFAULT *base.BaseResp +var DeleteViewResponse_BaseResp_DEFAULT *base.BaseResp -func (p *ListViewsResponse) GetBaseResp() (v *base.BaseResp) { +func (p *DeleteViewResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return ListViewsResponse_BaseResp_DEFAULT + return DeleteViewResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *ListViewsResponse) SetViews(val []*view.View) { - p.Views = val -} -func (p *ListViewsResponse) SetBaseResp(val *base.BaseResp) { +func (p *DeleteViewResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_ListViewsResponse = map[int16]string{ - 1: "views", +var fieldIDToName_DeleteViewResponse = map[int16]string{ 255: "BaseResp", } -func (p *ListViewsResponse) IsSetBaseResp() bool { +func (p *DeleteViewResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *ListViewsResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *DeleteViewResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetViews bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -7974,15 +8421,6 @@ func (p *ListViewsResponse) Read(iprot thrift.TProtocol) (err error) { } switch fieldId { - case 1: - if fieldTypeId == thrift.LIST { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - issetViews = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -8004,17 +8442,13 @@ func (p *ListViewsResponse) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetViews { - fieldId = 1 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListViewsResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteViewResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -8022,34 +8456,9 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListViewsResponse[fieldId])) } -func (p *ListViewsResponse) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*view.View, 0, size) - values := make([]view.View, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Views = _field - return nil -} -func (p *ListViewsResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *DeleteViewResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -8058,16 +8467,12 @@ func (p *ListViewsResponse) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *ListViewsResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *DeleteViewResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListViewsResponse"); err != nil { + if err = oprot.WriteStructBegin("DeleteViewResponse"); err != nil { goto WriteStructBeginError } if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -8090,31 +8495,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListViewsResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("views", thrift.LIST, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Views)); err != nil { - return err - } - for _, v := range p.Views { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ListViewsResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *DeleteViewResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -8133,43 +8514,27 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListViewsResponse) String() string { +func (p *DeleteViewResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ListViewsResponse(%+v)", *p) + return fmt.Sprintf("DeleteViewResponse(%+v)", *p) } -func (p *ListViewsResponse) DeepEqual(ano *ListViewsResponse) bool { +func (p *DeleteViewResponse) DeepEqual(ano *DeleteViewResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Views) { - return false - } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *ListViewsResponse) Field1DeepEqual(src []*view.View) bool { - - if len(p.Views) != len(src) { - return false - } - for i, v := range p.Views { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *ListViewsResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *DeleteViewResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -8177,86 +8542,98 @@ func (p *ListViewsResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type CreateManualAnnotationRequest struct { - Annotation *annotation.Annotation `thrift:"annotation,1,required" frugal:"1,required,annotation.Annotation" form:"annotation,required" json:"annotation,required"` - PlatformType *common.PlatformType `thrift:"platform_type,2,optional" frugal:"2,optional,string" form:"platform_type" json:"platform_type,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type ListViewsRequest struct { + EnterpriseID *string `thrift:"enterprise_id,1,optional" frugal:"1,optional,string" form:"enterprise_id" json:"enterprise_id,omitempty"` + WorkspaceID int64 `thrift:"workspace_id,2,required" frugal:"2,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ViewName *string `thrift:"view_name,3,optional" frugal:"3,optional,string" form:"view_name" json:"view_name,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewCreateManualAnnotationRequest() *CreateManualAnnotationRequest { - return &CreateManualAnnotationRequest{} +func NewListViewsRequest() *ListViewsRequest { + return &ListViewsRequest{} } -func (p *CreateManualAnnotationRequest) InitDefault() { +func (p *ListViewsRequest) InitDefault() { } -var CreateManualAnnotationRequest_Annotation_DEFAULT *annotation.Annotation +var ListViewsRequest_EnterpriseID_DEFAULT string -func (p *CreateManualAnnotationRequest) GetAnnotation() (v *annotation.Annotation) { +func (p *ListViewsRequest) GetEnterpriseID() (v string) { if p == nil { return } - if !p.IsSetAnnotation() { - return CreateManualAnnotationRequest_Annotation_DEFAULT + if !p.IsSetEnterpriseID() { + return ListViewsRequest_EnterpriseID_DEFAULT } - return p.Annotation + return *p.EnterpriseID } -var CreateManualAnnotationRequest_PlatformType_DEFAULT common.PlatformType +func (p *ListViewsRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID + } + return +} -func (p *CreateManualAnnotationRequest) GetPlatformType() (v common.PlatformType) { +var ListViewsRequest_ViewName_DEFAULT string + +func (p *ListViewsRequest) GetViewName() (v string) { if p == nil { return } - if !p.IsSetPlatformType() { - return CreateManualAnnotationRequest_PlatformType_DEFAULT + if !p.IsSetViewName() { + return ListViewsRequest_ViewName_DEFAULT } - return *p.PlatformType + return *p.ViewName } -var CreateManualAnnotationRequest_Base_DEFAULT *base.Base +var ListViewsRequest_Base_DEFAULT *base.Base -func (p *CreateManualAnnotationRequest) GetBase() (v *base.Base) { +func (p *ListViewsRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return CreateManualAnnotationRequest_Base_DEFAULT + return ListViewsRequest_Base_DEFAULT } return p.Base } -func (p *CreateManualAnnotationRequest) SetAnnotation(val *annotation.Annotation) { - p.Annotation = val +func (p *ListViewsRequest) SetEnterpriseID(val *string) { + p.EnterpriseID = val } -func (p *CreateManualAnnotationRequest) SetPlatformType(val *common.PlatformType) { - p.PlatformType = val +func (p *ListViewsRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val } -func (p *CreateManualAnnotationRequest) SetBase(val *base.Base) { +func (p *ListViewsRequest) SetViewName(val *string) { + p.ViewName = val +} +func (p *ListViewsRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_CreateManualAnnotationRequest = map[int16]string{ - 1: "annotation", - 2: "platform_type", +var fieldIDToName_ListViewsRequest = map[int16]string{ + 1: "enterprise_id", + 2: "workspace_id", + 3: "view_name", 255: "Base", } -func (p *CreateManualAnnotationRequest) IsSetAnnotation() bool { - return p.Annotation != nil +func (p *ListViewsRequest) IsSetEnterpriseID() bool { + return p.EnterpriseID != nil } -func (p *CreateManualAnnotationRequest) IsSetPlatformType() bool { - return p.PlatformType != nil +func (p *ListViewsRequest) IsSetViewName() bool { + return p.ViewName != nil } -func (p *CreateManualAnnotationRequest) IsSetBase() bool { +func (p *ListViewsRequest) IsSetBase() bool { return p.Base != nil } -func (p *CreateManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *ListViewsRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetAnnotation bool = false + var issetWorkspaceID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -8273,19 +8650,27 @@ func (p *CreateManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) switch fieldId { case 1: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetAnnotation = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } + issetWorkspaceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -8310,8 +8695,8 @@ func (p *CreateManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) goto ReadStructEndError } - if !issetAnnotation { - fieldId = 1 + if !issetWorkspaceID { + fieldId = 2 goto RequiredFieldNotSetError } return nil @@ -8320,7 +8705,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateManualAnnotationRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListViewsRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -8329,29 +8714,43 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_CreateManualAnnotationRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListViewsRequest[fieldId])) } -func (p *CreateManualAnnotationRequest) ReadField1(iprot thrift.TProtocol) error { - _field := annotation.NewAnnotation() - if err := _field.Read(iprot); err != nil { +func (p *ListViewsRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { return err + } else { + _field = &v } - p.Annotation = _field + p.EnterpriseID = _field return nil } -func (p *CreateManualAnnotationRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *ListViewsRequest) ReadField2(iprot thrift.TProtocol) error { - var _field *common.PlatformType + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *ListViewsRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field *string if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.PlatformType = _field + p.ViewName = _field return nil } -func (p *CreateManualAnnotationRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *ListViewsRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -8360,9 +8759,9 @@ func (p *CreateManualAnnotationRequest) ReadField255(iprot thrift.TProtocol) err return nil } -func (p *CreateManualAnnotationRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *ListViewsRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreateManualAnnotationRequest"); err != nil { + if err = oprot.WriteStructBegin("ListViewsRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -8374,6 +8773,10 @@ func (p *CreateManualAnnotationRequest) Write(oprot thrift.TProtocol) (err error fieldId = 2 goto WriteFieldError } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -8396,11 +8799,29 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *CreateManualAnnotationRequest) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotation", thrift.STRUCT, 1); err != nil { +func (p *ListViewsRequest) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetEnterpriseID() { + if err = oprot.WriteFieldBegin("enterprise_id", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.EnterpriseID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ListViewsRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } - if err := p.Annotation.Write(oprot); err != nil { + if err := oprot.WriteI64(p.WorkspaceID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -8408,16 +8829,16 @@ func (p *CreateManualAnnotationRequest) writeField1(oprot thrift.TProtocol) (err } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *CreateManualAnnotationRequest) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 2); err != nil { +func (p *ListViewsRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetViewName() { + if err = oprot.WriteFieldBegin("view_name", thrift.STRING, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.PlatformType); err != nil { + if err := oprot.WriteString(*p.ViewName); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -8426,11 +8847,11 @@ func (p *CreateManualAnnotationRequest) writeField2(oprot thrift.TProtocol) (err } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *CreateManualAnnotationRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ListViewsRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -8449,24 +8870,27 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *CreateManualAnnotationRequest) String() string { +func (p *ListViewsRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("CreateManualAnnotationRequest(%+v)", *p) + return fmt.Sprintf("ListViewsRequest(%+v)", *p) } -func (p *CreateManualAnnotationRequest) DeepEqual(ano *CreateManualAnnotationRequest) bool { +func (p *ListViewsRequest) DeepEqual(ano *ListViewsRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Annotation) { + if !p.Field1DeepEqual(ano.EnterpriseID) { return false } - if !p.Field2DeepEqual(ano.PlatformType) { + if !p.Field2DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field3DeepEqual(ano.ViewName) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -8475,26 +8899,38 @@ func (p *CreateManualAnnotationRequest) DeepEqual(ano *CreateManualAnnotationReq return true } -func (p *CreateManualAnnotationRequest) Field1DeepEqual(src *annotation.Annotation) bool { +func (p *ListViewsRequest) Field1DeepEqual(src *string) bool { - if !p.Annotation.DeepEqual(src) { + if p.EnterpriseID == src { + return true + } else if p.EnterpriseID == nil || src == nil { + return false + } + if strings.Compare(*p.EnterpriseID, *src) != 0 { return false } return true } -func (p *CreateManualAnnotationRequest) Field2DeepEqual(src *common.PlatformType) bool { +func (p *ListViewsRequest) Field2DeepEqual(src int64) bool { - if p.PlatformType == src { + if p.WorkspaceID != src { + return false + } + return true +} +func (p *ListViewsRequest) Field3DeepEqual(src *string) bool { + + if p.ViewName == src { return true - } else if p.PlatformType == nil || src == nil { + } else if p.ViewName == nil || src == nil { return false } - if strings.Compare(*p.PlatformType, *src) != 0 { + if strings.Compare(*p.ViewName, *src) != 0 { return false } return true } -func (p *CreateManualAnnotationRequest) Field255DeepEqual(src *base.Base) bool { +func (p *ListViewsRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -8502,64 +8938,56 @@ func (p *CreateManualAnnotationRequest) Field255DeepEqual(src *base.Base) bool { return true } -type CreateManualAnnotationResponse struct { - AnnotationID *string `thrift:"annotation_id,1,optional" frugal:"1,optional,string" form:"annotation_id" json:"annotation_id,omitempty" query:"annotation_id"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +type ListViewsResponse struct { + Views []*view.View `thrift:"views,1,required" frugal:"1,required,list" form:"views,required" json:"views,required" query:"views,required"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewCreateManualAnnotationResponse() *CreateManualAnnotationResponse { - return &CreateManualAnnotationResponse{} +func NewListViewsResponse() *ListViewsResponse { + return &ListViewsResponse{} } -func (p *CreateManualAnnotationResponse) InitDefault() { +func (p *ListViewsResponse) InitDefault() { } -var CreateManualAnnotationResponse_AnnotationID_DEFAULT string - -func (p *CreateManualAnnotationResponse) GetAnnotationID() (v string) { - if p == nil { - return - } - if !p.IsSetAnnotationID() { - return CreateManualAnnotationResponse_AnnotationID_DEFAULT +func (p *ListViewsResponse) GetViews() (v []*view.View) { + if p != nil { + return p.Views } - return *p.AnnotationID + return } -var CreateManualAnnotationResponse_BaseResp_DEFAULT *base.BaseResp +var ListViewsResponse_BaseResp_DEFAULT *base.BaseResp -func (p *CreateManualAnnotationResponse) GetBaseResp() (v *base.BaseResp) { +func (p *ListViewsResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return CreateManualAnnotationResponse_BaseResp_DEFAULT + return ListViewsResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *CreateManualAnnotationResponse) SetAnnotationID(val *string) { - p.AnnotationID = val +func (p *ListViewsResponse) SetViews(val []*view.View) { + p.Views = val } -func (p *CreateManualAnnotationResponse) SetBaseResp(val *base.BaseResp) { +func (p *ListViewsResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_CreateManualAnnotationResponse = map[int16]string{ - 1: "annotation_id", +var fieldIDToName_ListViewsResponse = map[int16]string{ + 1: "views", 255: "BaseResp", } -func (p *CreateManualAnnotationResponse) IsSetAnnotationID() bool { - return p.AnnotationID != nil -} - -func (p *CreateManualAnnotationResponse) IsSetBaseResp() bool { +func (p *ListViewsResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *CreateManualAnnotationResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *ListViewsResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetViews bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -8576,10 +9004,11 @@ func (p *CreateManualAnnotationResponse) Read(iprot thrift.TProtocol) (err error switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.LIST { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } + issetViews = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -8604,13 +9033,17 @@ func (p *CreateManualAnnotationResponse) Read(iprot thrift.TProtocol) (err error goto ReadStructEndError } + if !issetViews { + fieldId = 1 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateManualAnnotationResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListViewsResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -8618,20 +9051,34 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListViewsResponse[fieldId])) } -func (p *CreateManualAnnotationResponse) ReadField1(iprot thrift.TProtocol) error { +func (p *ListViewsResponse) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*view.View, 0, size) + values := make([]view.View, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field *string - if v, err := iprot.ReadString(); err != nil { + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - _field = &v } - p.AnnotationID = _field + p.Views = _field return nil } -func (p *CreateManualAnnotationResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *ListViewsResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -8640,9 +9087,9 @@ func (p *CreateManualAnnotationResponse) ReadField255(iprot thrift.TProtocol) er return nil } -func (p *CreateManualAnnotationResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *ListViewsResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreateManualAnnotationResponse"); err != nil { + if err = oprot.WriteStructBegin("ListViewsResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -8672,17 +9119,23 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *CreateManualAnnotationResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetAnnotationID() { - if err = oprot.WriteFieldBegin("annotation_id", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.AnnotationID); err != nil { +func (p *ListViewsResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("views", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Views)); err != nil { + return err + } + for _, v := range p.Views { + if err := v.Write(oprot); err != nil { return err } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -8690,7 +9143,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *CreateManualAnnotationResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ListViewsResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -8709,21 +9162,21 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *CreateManualAnnotationResponse) String() string { +func (p *ListViewsResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("CreateManualAnnotationResponse(%+v)", *p) + return fmt.Sprintf("ListViewsResponse(%+v)", *p) } -func (p *CreateManualAnnotationResponse) DeepEqual(ano *CreateManualAnnotationResponse) bool { +func (p *ListViewsResponse) DeepEqual(ano *ListViewsResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.AnnotationID) { + if !p.Field1DeepEqual(ano.Views) { return false } if !p.Field255DeepEqual(ano.BaseResp) { @@ -8732,19 +9185,20 @@ func (p *CreateManualAnnotationResponse) DeepEqual(ano *CreateManualAnnotationRe return true } -func (p *CreateManualAnnotationResponse) Field1DeepEqual(src *string) bool { +func (p *ListViewsResponse) Field1DeepEqual(src []*view.View) bool { - if p.AnnotationID == src { - return true - } else if p.AnnotationID == nil || src == nil { + if len(p.Views) != len(src) { return false } - if strings.Compare(*p.AnnotationID, *src) != 0 { - return false + for i, v := range p.Views { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } } return true } -func (p *CreateManualAnnotationResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *ListViewsResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -8752,98 +9206,85 @@ func (p *CreateManualAnnotationResponse) Field255DeepEqual(src *base.BaseResp) b return true } -type UpdateManualAnnotationRequest struct { - AnnotationID string `thrift:"annotation_id,1,required" frugal:"1,required,string" json:"annotation_id,required" path:"annotation_id,required"` - Annotation *annotation.Annotation `thrift:"annotation,2,required" frugal:"2,required,annotation.Annotation" form:"annotation,required" json:"annotation,required"` - PlatformType *common.PlatformType `thrift:"platform_type,3,optional" frugal:"3,optional,string" form:"platform_type" json:"platform_type,omitempty"` +type CreateManualAnnotationRequest struct { + Annotation *annotation.Annotation `thrift:"annotation,1,required" frugal:"1,required,annotation.Annotation" form:"annotation,required" json:"annotation,required"` + PlatformType *common.PlatformType `thrift:"platform_type,2,optional" frugal:"2,optional,string" form:"platform_type" json:"platform_type,omitempty"` Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewUpdateManualAnnotationRequest() *UpdateManualAnnotationRequest { - return &UpdateManualAnnotationRequest{} -} - -func (p *UpdateManualAnnotationRequest) InitDefault() { +func NewCreateManualAnnotationRequest() *CreateManualAnnotationRequest { + return &CreateManualAnnotationRequest{} } -func (p *UpdateManualAnnotationRequest) GetAnnotationID() (v string) { - if p != nil { - return p.AnnotationID - } - return +func (p *CreateManualAnnotationRequest) InitDefault() { } -var UpdateManualAnnotationRequest_Annotation_DEFAULT *annotation.Annotation +var CreateManualAnnotationRequest_Annotation_DEFAULT *annotation.Annotation -func (p *UpdateManualAnnotationRequest) GetAnnotation() (v *annotation.Annotation) { +func (p *CreateManualAnnotationRequest) GetAnnotation() (v *annotation.Annotation) { if p == nil { return } if !p.IsSetAnnotation() { - return UpdateManualAnnotationRequest_Annotation_DEFAULT + return CreateManualAnnotationRequest_Annotation_DEFAULT } return p.Annotation } -var UpdateManualAnnotationRequest_PlatformType_DEFAULT common.PlatformType +var CreateManualAnnotationRequest_PlatformType_DEFAULT common.PlatformType -func (p *UpdateManualAnnotationRequest) GetPlatformType() (v common.PlatformType) { +func (p *CreateManualAnnotationRequest) GetPlatformType() (v common.PlatformType) { if p == nil { return } if !p.IsSetPlatformType() { - return UpdateManualAnnotationRequest_PlatformType_DEFAULT + return CreateManualAnnotationRequest_PlatformType_DEFAULT } return *p.PlatformType } -var UpdateManualAnnotationRequest_Base_DEFAULT *base.Base +var CreateManualAnnotationRequest_Base_DEFAULT *base.Base -func (p *UpdateManualAnnotationRequest) GetBase() (v *base.Base) { +func (p *CreateManualAnnotationRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return UpdateManualAnnotationRequest_Base_DEFAULT + return CreateManualAnnotationRequest_Base_DEFAULT } return p.Base } -func (p *UpdateManualAnnotationRequest) SetAnnotationID(val string) { - p.AnnotationID = val -} -func (p *UpdateManualAnnotationRequest) SetAnnotation(val *annotation.Annotation) { +func (p *CreateManualAnnotationRequest) SetAnnotation(val *annotation.Annotation) { p.Annotation = val } -func (p *UpdateManualAnnotationRequest) SetPlatformType(val *common.PlatformType) { +func (p *CreateManualAnnotationRequest) SetPlatformType(val *common.PlatformType) { p.PlatformType = val } -func (p *UpdateManualAnnotationRequest) SetBase(val *base.Base) { +func (p *CreateManualAnnotationRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_UpdateManualAnnotationRequest = map[int16]string{ - 1: "annotation_id", - 2: "annotation", - 3: "platform_type", +var fieldIDToName_CreateManualAnnotationRequest = map[int16]string{ + 1: "annotation", + 2: "platform_type", 255: "Base", } -func (p *UpdateManualAnnotationRequest) IsSetAnnotation() bool { +func (p *CreateManualAnnotationRequest) IsSetAnnotation() bool { return p.Annotation != nil } -func (p *UpdateManualAnnotationRequest) IsSetPlatformType() bool { +func (p *CreateManualAnnotationRequest) IsSetPlatformType() bool { return p.PlatformType != nil } -func (p *UpdateManualAnnotationRequest) IsSetBase() bool { +func (p *CreateManualAnnotationRequest) IsSetBase() bool { return p.Base != nil } -func (p *UpdateManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *CreateManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetAnnotationID bool = false var issetAnnotation bool = false if _, err = iprot.ReadStructBegin(); err != nil { @@ -8861,26 +9302,17 @@ func (p *UpdateManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) switch fieldId { case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - issetAnnotationID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: if fieldTypeId == thrift.STRUCT { - if err = p.ReadField2(iprot); err != nil { + if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } issetAnnotation = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 3: + case 2: if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { + if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -8907,13 +9339,8 @@ func (p *UpdateManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) goto ReadStructEndError } - if !issetAnnotationID { - fieldId = 1 - goto RequiredFieldNotSetError - } - if !issetAnnotation { - fieldId = 2 + fieldId = 1 goto RequiredFieldNotSetError } return nil @@ -8922,7 +9349,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateManualAnnotationRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateManualAnnotationRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -8931,21 +9358,10 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_UpdateManualAnnotationRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_CreateManualAnnotationRequest[fieldId])) } -func (p *UpdateManualAnnotationRequest) ReadField1(iprot thrift.TProtocol) error { - - var _field string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } - p.AnnotationID = _field - return nil -} -func (p *UpdateManualAnnotationRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *CreateManualAnnotationRequest) ReadField1(iprot thrift.TProtocol) error { _field := annotation.NewAnnotation() if err := _field.Read(iprot); err != nil { return err @@ -8953,7 +9369,7 @@ func (p *UpdateManualAnnotationRequest) ReadField2(iprot thrift.TProtocol) error p.Annotation = _field return nil } -func (p *UpdateManualAnnotationRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *CreateManualAnnotationRequest) ReadField2(iprot thrift.TProtocol) error { var _field *common.PlatformType if v, err := iprot.ReadString(); err != nil { @@ -8964,7 +9380,7 @@ func (p *UpdateManualAnnotationRequest) ReadField3(iprot thrift.TProtocol) error p.PlatformType = _field return nil } -func (p *UpdateManualAnnotationRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *CreateManualAnnotationRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -8973,9 +9389,9 @@ func (p *UpdateManualAnnotationRequest) ReadField255(iprot thrift.TProtocol) err return nil } -func (p *UpdateManualAnnotationRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *CreateManualAnnotationRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpdateManualAnnotationRequest"); err != nil { + if err = oprot.WriteStructBegin("CreateManualAnnotationRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -8987,10 +9403,6 @@ func (p *UpdateManualAnnotationRequest) Write(oprot thrift.TProtocol) (err error fieldId = 2 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -9013,11 +9425,11 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UpdateManualAnnotationRequest) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotation_id", thrift.STRING, 1); err != nil { +func (p *CreateManualAnnotationRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotation", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(p.AnnotationID); err != nil { + if err := p.Annotation.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -9029,25 +9441,9 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *UpdateManualAnnotationRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotation", thrift.STRUCT, 2); err != nil { - goto WriteFieldBeginError - } - if err := p.Annotation.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *UpdateManualAnnotationRequest) writeField3(oprot thrift.TProtocol) (err error) { +func (p *CreateManualAnnotationRequest) writeField2(oprot thrift.TProtocol) (err error) { if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 3); err != nil { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } if err := oprot.WriteString(*p.PlatformType); err != nil { @@ -9059,11 +9455,11 @@ func (p *UpdateManualAnnotationRequest) writeField3(oprot thrift.TProtocol) (err } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *UpdateManualAnnotationRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *CreateManualAnnotationRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -9082,27 +9478,24 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *UpdateManualAnnotationRequest) String() string { +func (p *CreateManualAnnotationRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("UpdateManualAnnotationRequest(%+v)", *p) + return fmt.Sprintf("CreateManualAnnotationRequest(%+v)", *p) } -func (p *UpdateManualAnnotationRequest) DeepEqual(ano *UpdateManualAnnotationRequest) bool { +func (p *CreateManualAnnotationRequest) DeepEqual(ano *CreateManualAnnotationRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.AnnotationID) { - return false - } - if !p.Field2DeepEqual(ano.Annotation) { + if !p.Field1DeepEqual(ano.Annotation) { return false } - if !p.Field3DeepEqual(ano.PlatformType) { + if !p.Field2DeepEqual(ano.PlatformType) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -9111,21 +9504,14 @@ func (p *UpdateManualAnnotationRequest) DeepEqual(ano *UpdateManualAnnotationReq return true } -func (p *UpdateManualAnnotationRequest) Field1DeepEqual(src string) bool { - - if strings.Compare(p.AnnotationID, src) != 0 { - return false - } - return true -} -func (p *UpdateManualAnnotationRequest) Field2DeepEqual(src *annotation.Annotation) bool { +func (p *CreateManualAnnotationRequest) Field1DeepEqual(src *annotation.Annotation) bool { if !p.Annotation.DeepEqual(src) { return false } return true } -func (p *UpdateManualAnnotationRequest) Field3DeepEqual(src *common.PlatformType) bool { +func (p *CreateManualAnnotationRequest) Field2DeepEqual(src *common.PlatformType) bool { if p.PlatformType == src { return true @@ -9137,7 +9523,7 @@ func (p *UpdateManualAnnotationRequest) Field3DeepEqual(src *common.PlatformType } return true } -func (p *UpdateManualAnnotationRequest) Field255DeepEqual(src *base.Base) bool { +func (p *CreateManualAnnotationRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -9145,41 +9531,62 @@ func (p *UpdateManualAnnotationRequest) Field255DeepEqual(src *base.Base) bool { return true } -type UpdateManualAnnotationResponse struct { - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +type CreateManualAnnotationResponse struct { + AnnotationID *string `thrift:"annotation_id,1,optional" frugal:"1,optional,string" form:"annotation_id" json:"annotation_id,omitempty" query:"annotation_id"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewUpdateManualAnnotationResponse() *UpdateManualAnnotationResponse { - return &UpdateManualAnnotationResponse{} +func NewCreateManualAnnotationResponse() *CreateManualAnnotationResponse { + return &CreateManualAnnotationResponse{} } -func (p *UpdateManualAnnotationResponse) InitDefault() { +func (p *CreateManualAnnotationResponse) InitDefault() { } -var UpdateManualAnnotationResponse_BaseResp_DEFAULT *base.BaseResp +var CreateManualAnnotationResponse_AnnotationID_DEFAULT string -func (p *UpdateManualAnnotationResponse) GetBaseResp() (v *base.BaseResp) { +func (p *CreateManualAnnotationResponse) GetAnnotationID() (v string) { + if p == nil { + return + } + if !p.IsSetAnnotationID() { + return CreateManualAnnotationResponse_AnnotationID_DEFAULT + } + return *p.AnnotationID +} + +var CreateManualAnnotationResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *CreateManualAnnotationResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return UpdateManualAnnotationResponse_BaseResp_DEFAULT + return CreateManualAnnotationResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *UpdateManualAnnotationResponse) SetBaseResp(val *base.BaseResp) { +func (p *CreateManualAnnotationResponse) SetAnnotationID(val *string) { + p.AnnotationID = val +} +func (p *CreateManualAnnotationResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_UpdateManualAnnotationResponse = map[int16]string{ +var fieldIDToName_CreateManualAnnotationResponse = map[int16]string{ + 1: "annotation_id", 255: "BaseResp", } -func (p *UpdateManualAnnotationResponse) IsSetBaseResp() bool { +func (p *CreateManualAnnotationResponse) IsSetAnnotationID() bool { + return p.AnnotationID != nil +} + +func (p *CreateManualAnnotationResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *UpdateManualAnnotationResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *CreateManualAnnotationResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -9197,6 +9604,14 @@ func (p *UpdateManualAnnotationResponse) Read(iprot thrift.TProtocol) (err error } switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -9224,7 +9639,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateManualAnnotationResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateManualAnnotationResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -9234,7 +9649,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UpdateManualAnnotationResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *CreateManualAnnotationResponse) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.AnnotationID = _field + return nil +} +func (p *CreateManualAnnotationResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -9243,12 +9669,16 @@ func (p *UpdateManualAnnotationResponse) ReadField255(iprot thrift.TProtocol) er return nil } -func (p *UpdateManualAnnotationResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *CreateManualAnnotationResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpdateManualAnnotationResponse"); err != nil { + if err = oprot.WriteStructBegin("CreateManualAnnotationResponse"); err != nil { goto WriteStructBeginError } if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -9271,7 +9701,25 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UpdateManualAnnotationResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *CreateManualAnnotationResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetAnnotationID() { + if err = oprot.WriteFieldBegin("annotation_id", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.AnnotationID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *CreateManualAnnotationResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -9290,170 +9738,142 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *UpdateManualAnnotationResponse) String() string { +func (p *CreateManualAnnotationResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("UpdateManualAnnotationResponse(%+v)", *p) + return fmt.Sprintf("CreateManualAnnotationResponse(%+v)", *p) } -func (p *UpdateManualAnnotationResponse) DeepEqual(ano *UpdateManualAnnotationResponse) bool { +func (p *CreateManualAnnotationResponse) DeepEqual(ano *CreateManualAnnotationResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } + if !p.Field1DeepEqual(ano.AnnotationID) { + return false + } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *UpdateManualAnnotationResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *CreateManualAnnotationResponse) Field1DeepEqual(src *string) bool { - if !p.BaseResp.DeepEqual(src) { + if p.AnnotationID == src { + return true + } else if p.AnnotationID == nil || src == nil { + return false + } + if strings.Compare(*p.AnnotationID, *src) != 0 { return false } return true } +func (p *CreateManualAnnotationResponse) Field255DeepEqual(src *base.BaseResp) bool { -type DeleteManualAnnotationRequest struct { - AnnotationID string `thrift:"annotation_id,1,required" frugal:"1,required,string" json:"annotation_id,required" path:"annotation_id,required"` - WorkspaceID int64 `thrift:"workspace_id,2,required" frugal:"2,required,i64" json:"workspace_id" query:"workspace_id,required" ` - TraceID string `thrift:"trace_id,3,required" frugal:"3,required,string" json:"trace_id,required" query:"trace_id,required"` - SpanID string `thrift:"span_id,4,required" frugal:"4,required,string" json:"span_id,required" query:"span_id,required"` - StartTime int64 `thrift:"start_time,5,required" frugal:"5,required,i64" json:"start_time" query:"start_time,required" ` - AnnotationKey string `thrift:"annotation_key,6,required" frugal:"6,required,string" json:"annotation_key,required" query:"annotation_key,required"` - PlatformType *common.PlatformType `thrift:"platform_type,7,optional" frugal:"7,optional,string" json:"platform_type,omitempty" query:"platform_type"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` -} - -func NewDeleteManualAnnotationRequest() *DeleteManualAnnotationRequest { - return &DeleteManualAnnotationRequest{} + if !p.BaseResp.DeepEqual(src) { + return false + } + return true } -func (p *DeleteManualAnnotationRequest) InitDefault() { +type UpdateManualAnnotationRequest struct { + AnnotationID string `thrift:"annotation_id,1,required" frugal:"1,required,string" json:"annotation_id,required" path:"annotation_id,required"` + Annotation *annotation.Annotation `thrift:"annotation,2,required" frugal:"2,required,annotation.Annotation" form:"annotation,required" json:"annotation,required"` + PlatformType *common.PlatformType `thrift:"platform_type,3,optional" frugal:"3,optional,string" form:"platform_type" json:"platform_type,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func (p *DeleteManualAnnotationRequest) GetAnnotationID() (v string) { - if p != nil { - return p.AnnotationID - } - return +func NewUpdateManualAnnotationRequest() *UpdateManualAnnotationRequest { + return &UpdateManualAnnotationRequest{} } -func (p *DeleteManualAnnotationRequest) GetWorkspaceID() (v int64) { - if p != nil { - return p.WorkspaceID - } - return +func (p *UpdateManualAnnotationRequest) InitDefault() { } -func (p *DeleteManualAnnotationRequest) GetTraceID() (v string) { +func (p *UpdateManualAnnotationRequest) GetAnnotationID() (v string) { if p != nil { - return p.TraceID + return p.AnnotationID } return } -func (p *DeleteManualAnnotationRequest) GetSpanID() (v string) { - if p != nil { - return p.SpanID - } - return -} +var UpdateManualAnnotationRequest_Annotation_DEFAULT *annotation.Annotation -func (p *DeleteManualAnnotationRequest) GetStartTime() (v int64) { - if p != nil { - return p.StartTime +func (p *UpdateManualAnnotationRequest) GetAnnotation() (v *annotation.Annotation) { + if p == nil { + return } - return -} - -func (p *DeleteManualAnnotationRequest) GetAnnotationKey() (v string) { - if p != nil { - return p.AnnotationKey + if !p.IsSetAnnotation() { + return UpdateManualAnnotationRequest_Annotation_DEFAULT } - return + return p.Annotation } -var DeleteManualAnnotationRequest_PlatformType_DEFAULT common.PlatformType +var UpdateManualAnnotationRequest_PlatformType_DEFAULT common.PlatformType -func (p *DeleteManualAnnotationRequest) GetPlatformType() (v common.PlatformType) { +func (p *UpdateManualAnnotationRequest) GetPlatformType() (v common.PlatformType) { if p == nil { return } if !p.IsSetPlatformType() { - return DeleteManualAnnotationRequest_PlatformType_DEFAULT + return UpdateManualAnnotationRequest_PlatformType_DEFAULT } return *p.PlatformType } -var DeleteManualAnnotationRequest_Base_DEFAULT *base.Base +var UpdateManualAnnotationRequest_Base_DEFAULT *base.Base -func (p *DeleteManualAnnotationRequest) GetBase() (v *base.Base) { +func (p *UpdateManualAnnotationRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return DeleteManualAnnotationRequest_Base_DEFAULT + return UpdateManualAnnotationRequest_Base_DEFAULT } return p.Base } -func (p *DeleteManualAnnotationRequest) SetAnnotationID(val string) { +func (p *UpdateManualAnnotationRequest) SetAnnotationID(val string) { p.AnnotationID = val } -func (p *DeleteManualAnnotationRequest) SetWorkspaceID(val int64) { - p.WorkspaceID = val -} -func (p *DeleteManualAnnotationRequest) SetTraceID(val string) { - p.TraceID = val -} -func (p *DeleteManualAnnotationRequest) SetSpanID(val string) { - p.SpanID = val -} -func (p *DeleteManualAnnotationRequest) SetStartTime(val int64) { - p.StartTime = val -} -func (p *DeleteManualAnnotationRequest) SetAnnotationKey(val string) { - p.AnnotationKey = val +func (p *UpdateManualAnnotationRequest) SetAnnotation(val *annotation.Annotation) { + p.Annotation = val } -func (p *DeleteManualAnnotationRequest) SetPlatformType(val *common.PlatformType) { +func (p *UpdateManualAnnotationRequest) SetPlatformType(val *common.PlatformType) { p.PlatformType = val } -func (p *DeleteManualAnnotationRequest) SetBase(val *base.Base) { +func (p *UpdateManualAnnotationRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_DeleteManualAnnotationRequest = map[int16]string{ +var fieldIDToName_UpdateManualAnnotationRequest = map[int16]string{ 1: "annotation_id", - 2: "workspace_id", - 3: "trace_id", - 4: "span_id", - 5: "start_time", - 6: "annotation_key", - 7: "platform_type", + 2: "annotation", + 3: "platform_type", 255: "Base", } -func (p *DeleteManualAnnotationRequest) IsSetPlatformType() bool { +func (p *UpdateManualAnnotationRequest) IsSetAnnotation() bool { + return p.Annotation != nil +} + +func (p *UpdateManualAnnotationRequest) IsSetPlatformType() bool { return p.PlatformType != nil } -func (p *DeleteManualAnnotationRequest) IsSetBase() bool { +func (p *UpdateManualAnnotationRequest) IsSetBase() bool { return p.Base != nil } -func (p *DeleteManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *UpdateManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetAnnotationID bool = false - var issetWorkspaceID bool = false - var issetTraceID bool = false - var issetSpanID bool = false - var issetStartTime bool = false - var issetAnnotationKey bool = false + var issetAnnotation bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -9479,11 +9899,11 @@ func (p *DeleteManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) goto SkipFieldError } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetWorkspaceID = true + issetAnnotation = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -9492,42 +9912,6 @@ func (p *DeleteManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } - issetTraceID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - issetSpanID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.I64 { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - issetStartTime = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRING { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - issetAnnotationKey = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.STRING { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -9557,37 +9941,17 @@ func (p *DeleteManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) goto RequiredFieldNotSetError } - if !issetWorkspaceID { + if !issetAnnotation { fieldId = 2 goto RequiredFieldNotSetError } - - if !issetTraceID { - fieldId = 3 - goto RequiredFieldNotSetError - } - - if !issetSpanID { - fieldId = 4 - goto RequiredFieldNotSetError - } - - if !issetStartTime { - fieldId = 5 - goto RequiredFieldNotSetError - } - - if !issetAnnotationKey { - fieldId = 6 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteManualAnnotationRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateManualAnnotationRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -9596,10 +9960,10 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_DeleteManualAnnotationRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_UpdateManualAnnotationRequest[fieldId])) } -func (p *DeleteManualAnnotationRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *UpdateManualAnnotationRequest) ReadField1(iprot thrift.TProtocol) error { var _field string if v, err := iprot.ReadString(); err != nil { @@ -9610,62 +9974,15 @@ func (p *DeleteManualAnnotationRequest) ReadField1(iprot thrift.TProtocol) error p.AnnotationID = _field return nil } -func (p *DeleteManualAnnotationRequest) ReadField2(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.WorkspaceID = _field - return nil -} -func (p *DeleteManualAnnotationRequest) ReadField3(iprot thrift.TProtocol) error { - - var _field string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } - p.TraceID = _field - return nil -} -func (p *DeleteManualAnnotationRequest) ReadField4(iprot thrift.TProtocol) error { - - var _field string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } - p.SpanID = _field - return nil -} -func (p *DeleteManualAnnotationRequest) ReadField5(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.StartTime = _field - return nil -} -func (p *DeleteManualAnnotationRequest) ReadField6(iprot thrift.TProtocol) error { - - var _field string - if v, err := iprot.ReadString(); err != nil { +func (p *UpdateManualAnnotationRequest) ReadField2(iprot thrift.TProtocol) error { + _field := annotation.NewAnnotation() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = v } - p.AnnotationKey = _field + p.Annotation = _field return nil } -func (p *DeleteManualAnnotationRequest) ReadField7(iprot thrift.TProtocol) error { +func (p *UpdateManualAnnotationRequest) ReadField3(iprot thrift.TProtocol) error { var _field *common.PlatformType if v, err := iprot.ReadString(); err != nil { @@ -9676,7 +9993,7 @@ func (p *DeleteManualAnnotationRequest) ReadField7(iprot thrift.TProtocol) error p.PlatformType = _field return nil } -func (p *DeleteManualAnnotationRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *UpdateManualAnnotationRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -9685,9 +10002,9 @@ func (p *DeleteManualAnnotationRequest) ReadField255(iprot thrift.TProtocol) err return nil } -func (p *DeleteManualAnnotationRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *UpdateManualAnnotationRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteManualAnnotationRequest"); err != nil { + if err = oprot.WriteStructBegin("UpdateManualAnnotationRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -9703,22 +10020,6 @@ func (p *DeleteManualAnnotationRequest) Write(oprot thrift.TProtocol) (err error fieldId = 3 goto WriteFieldError } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -9741,7 +10042,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *DeleteManualAnnotationRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *UpdateManualAnnotationRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("annotation_id", thrift.STRING, 1); err != nil { goto WriteFieldBeginError } @@ -9757,11 +10058,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *DeleteManualAnnotationRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { +func (p *UpdateManualAnnotationRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotation", thrift.STRUCT, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.WorkspaceID); err != nil { + if err := p.Annotation.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -9773,73 +10074,9 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *DeleteManualAnnotationRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.TraceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *DeleteManualAnnotationRequest) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("span_id", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.SpanID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *DeleteManualAnnotationRequest) writeField5(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("start_time", thrift.I64, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.StartTime); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *DeleteManualAnnotationRequest) writeField6(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotation_key", thrift.STRING, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.AnnotationKey); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *DeleteManualAnnotationRequest) writeField7(oprot thrift.TProtocol) (err error) { +func (p *UpdateManualAnnotationRequest) writeField3(oprot thrift.TProtocol) (err error) { if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 7); err != nil { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 3); err != nil { goto WriteFieldBeginError } if err := oprot.WriteString(*p.PlatformType); err != nil { @@ -9851,11 +10088,11 @@ func (p *DeleteManualAnnotationRequest) writeField7(oprot thrift.TProtocol) (err } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *DeleteManualAnnotationRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *UpdateManualAnnotationRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -9874,15 +10111,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *DeleteManualAnnotationRequest) String() string { +func (p *UpdateManualAnnotationRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("DeleteManualAnnotationRequest(%+v)", *p) + return fmt.Sprintf("UpdateManualAnnotationRequest(%+v)", *p) } -func (p *DeleteManualAnnotationRequest) DeepEqual(ano *DeleteManualAnnotationRequest) bool { +func (p *UpdateManualAnnotationRequest) DeepEqual(ano *UpdateManualAnnotationRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -9891,22 +10128,10 @@ func (p *DeleteManualAnnotationRequest) DeepEqual(ano *DeleteManualAnnotationReq if !p.Field1DeepEqual(ano.AnnotationID) { return false } - if !p.Field2DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field3DeepEqual(ano.TraceID) { - return false - } - if !p.Field4DeepEqual(ano.SpanID) { - return false - } - if !p.Field5DeepEqual(ano.StartTime) { - return false - } - if !p.Field6DeepEqual(ano.AnnotationKey) { + if !p.Field2DeepEqual(ano.Annotation) { return false } - if !p.Field7DeepEqual(ano.PlatformType) { + if !p.Field3DeepEqual(ano.PlatformType) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -9915,49 +10140,21 @@ func (p *DeleteManualAnnotationRequest) DeepEqual(ano *DeleteManualAnnotationReq return true } -func (p *DeleteManualAnnotationRequest) Field1DeepEqual(src string) bool { +func (p *UpdateManualAnnotationRequest) Field1DeepEqual(src string) bool { if strings.Compare(p.AnnotationID, src) != 0 { return false } return true } -func (p *DeleteManualAnnotationRequest) Field2DeepEqual(src int64) bool { - - if p.WorkspaceID != src { - return false - } - return true -} -func (p *DeleteManualAnnotationRequest) Field3DeepEqual(src string) bool { - - if strings.Compare(p.TraceID, src) != 0 { - return false - } - return true -} -func (p *DeleteManualAnnotationRequest) Field4DeepEqual(src string) bool { - - if strings.Compare(p.SpanID, src) != 0 { - return false - } - return true -} -func (p *DeleteManualAnnotationRequest) Field5DeepEqual(src int64) bool { - - if p.StartTime != src { - return false - } - return true -} -func (p *DeleteManualAnnotationRequest) Field6DeepEqual(src string) bool { +func (p *UpdateManualAnnotationRequest) Field2DeepEqual(src *annotation.Annotation) bool { - if strings.Compare(p.AnnotationKey, src) != 0 { + if !p.Annotation.DeepEqual(src) { return false } return true } -func (p *DeleteManualAnnotationRequest) Field7DeepEqual(src *common.PlatformType) bool { +func (p *UpdateManualAnnotationRequest) Field3DeepEqual(src *common.PlatformType) bool { if p.PlatformType == src { return true @@ -9969,7 +10166,7 @@ func (p *DeleteManualAnnotationRequest) Field7DeepEqual(src *common.PlatformType } return true } -func (p *DeleteManualAnnotationRequest) Field255DeepEqual(src *base.Base) bool { +func (p *UpdateManualAnnotationRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -9977,41 +10174,41 @@ func (p *DeleteManualAnnotationRequest) Field255DeepEqual(src *base.Base) bool { return true } -type DeleteManualAnnotationResponse struct { +type UpdateManualAnnotationResponse struct { BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewDeleteManualAnnotationResponse() *DeleteManualAnnotationResponse { - return &DeleteManualAnnotationResponse{} +func NewUpdateManualAnnotationResponse() *UpdateManualAnnotationResponse { + return &UpdateManualAnnotationResponse{} } -func (p *DeleteManualAnnotationResponse) InitDefault() { +func (p *UpdateManualAnnotationResponse) InitDefault() { } -var DeleteManualAnnotationResponse_BaseResp_DEFAULT *base.BaseResp +var UpdateManualAnnotationResponse_BaseResp_DEFAULT *base.BaseResp -func (p *DeleteManualAnnotationResponse) GetBaseResp() (v *base.BaseResp) { +func (p *UpdateManualAnnotationResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return DeleteManualAnnotationResponse_BaseResp_DEFAULT + return UpdateManualAnnotationResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *DeleteManualAnnotationResponse) SetBaseResp(val *base.BaseResp) { +func (p *UpdateManualAnnotationResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_DeleteManualAnnotationResponse = map[int16]string{ +var fieldIDToName_UpdateManualAnnotationResponse = map[int16]string{ 255: "BaseResp", } -func (p *DeleteManualAnnotationResponse) IsSetBaseResp() bool { +func (p *UpdateManualAnnotationResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *DeleteManualAnnotationResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *UpdateManualAnnotationResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -10056,7 +10253,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteManualAnnotationResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateManualAnnotationResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -10066,7 +10263,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *DeleteManualAnnotationResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *UpdateManualAnnotationResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -10075,9 +10272,9 @@ func (p *DeleteManualAnnotationResponse) ReadField255(iprot thrift.TProtocol) er return nil } -func (p *DeleteManualAnnotationResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *UpdateManualAnnotationResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteManualAnnotationResponse"); err != nil { + if err = oprot.WriteStructBegin("UpdateManualAnnotationResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -10103,7 +10300,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *DeleteManualAnnotationResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *UpdateManualAnnotationResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -10122,15 +10319,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *DeleteManualAnnotationResponse) String() string { +func (p *UpdateManualAnnotationResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("DeleteManualAnnotationResponse(%+v)", *p) + return fmt.Sprintf("UpdateManualAnnotationResponse(%+v)", *p) } -func (p *DeleteManualAnnotationResponse) DeepEqual(ano *DeleteManualAnnotationResponse) bool { +func (p *UpdateManualAnnotationResponse) DeepEqual(ano *UpdateManualAnnotationResponse) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -10142,7 +10339,7 @@ func (p *DeleteManualAnnotationResponse) DeepEqual(ano *DeleteManualAnnotationRe return true } -func (p *DeleteManualAnnotationResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *UpdateManualAnnotationResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -10150,137 +10347,142 @@ func (p *DeleteManualAnnotationResponse) Field255DeepEqual(src *base.BaseResp) b return true } -type ListAnnotationsRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - SpanID string `thrift:"span_id,2,required" frugal:"2,required,string" form:"span_id,required" json:"span_id,required"` - TraceID string `thrift:"trace_id,3,required" frugal:"3,required,string" form:"trace_id,required" json:"trace_id,required"` - StartTime int64 `thrift:"start_time,4,required" frugal:"4,required,i64" json:"start_time" form:"start_time,required" ` - PlatformType *common.PlatformType `thrift:"platform_type,5,optional" frugal:"5,optional,string" form:"platform_type" json:"platform_type,omitempty"` - DescByUpdatedAt *bool `thrift:"desc_by_updated_at,6,optional" frugal:"6,optional,bool" form:"desc_by_updated_at" json:"desc_by_updated_at,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type DeleteManualAnnotationRequest struct { + AnnotationID string `thrift:"annotation_id,1,required" frugal:"1,required,string" json:"annotation_id,required" path:"annotation_id,required"` + WorkspaceID int64 `thrift:"workspace_id,2,required" frugal:"2,required,i64" json:"workspace_id" query:"workspace_id,required" ` + TraceID string `thrift:"trace_id,3,required" frugal:"3,required,string" json:"trace_id,required" query:"trace_id,required"` + SpanID string `thrift:"span_id,4,required" frugal:"4,required,string" json:"span_id,required" query:"span_id,required"` + StartTime int64 `thrift:"start_time,5,required" frugal:"5,required,i64" json:"start_time" query:"start_time,required" ` + AnnotationKey string `thrift:"annotation_key,6,required" frugal:"6,required,string" json:"annotation_key,required" query:"annotation_key,required"` + PlatformType *common.PlatformType `thrift:"platform_type,7,optional" frugal:"7,optional,string" json:"platform_type,omitempty" query:"platform_type"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewListAnnotationsRequest() *ListAnnotationsRequest { - return &ListAnnotationsRequest{} +func NewDeleteManualAnnotationRequest() *DeleteManualAnnotationRequest { + return &DeleteManualAnnotationRequest{} } -func (p *ListAnnotationsRequest) InitDefault() { +func (p *DeleteManualAnnotationRequest) InitDefault() { } -func (p *ListAnnotationsRequest) GetWorkspaceID() (v int64) { +func (p *DeleteManualAnnotationRequest) GetAnnotationID() (v string) { if p != nil { - return p.WorkspaceID + return p.AnnotationID } return } -func (p *ListAnnotationsRequest) GetSpanID() (v string) { +func (p *DeleteManualAnnotationRequest) GetWorkspaceID() (v int64) { if p != nil { - return p.SpanID + return p.WorkspaceID } return } -func (p *ListAnnotationsRequest) GetTraceID() (v string) { +func (p *DeleteManualAnnotationRequest) GetTraceID() (v string) { if p != nil { return p.TraceID } return } -func (p *ListAnnotationsRequest) GetStartTime() (v int64) { +func (p *DeleteManualAnnotationRequest) GetSpanID() (v string) { if p != nil { - return p.StartTime + return p.SpanID } return } -var ListAnnotationsRequest_PlatformType_DEFAULT common.PlatformType - -func (p *ListAnnotationsRequest) GetPlatformType() (v common.PlatformType) { - if p == nil { - return +func (p *DeleteManualAnnotationRequest) GetStartTime() (v int64) { + if p != nil { + return p.StartTime } - if !p.IsSetPlatformType() { - return ListAnnotationsRequest_PlatformType_DEFAULT + return +} + +func (p *DeleteManualAnnotationRequest) GetAnnotationKey() (v string) { + if p != nil { + return p.AnnotationKey } - return *p.PlatformType + return } -var ListAnnotationsRequest_DescByUpdatedAt_DEFAULT bool +var DeleteManualAnnotationRequest_PlatformType_DEFAULT common.PlatformType -func (p *ListAnnotationsRequest) GetDescByUpdatedAt() (v bool) { +func (p *DeleteManualAnnotationRequest) GetPlatformType() (v common.PlatformType) { if p == nil { return } - if !p.IsSetDescByUpdatedAt() { - return ListAnnotationsRequest_DescByUpdatedAt_DEFAULT + if !p.IsSetPlatformType() { + return DeleteManualAnnotationRequest_PlatformType_DEFAULT } - return *p.DescByUpdatedAt + return *p.PlatformType } -var ListAnnotationsRequest_Base_DEFAULT *base.Base +var DeleteManualAnnotationRequest_Base_DEFAULT *base.Base -func (p *ListAnnotationsRequest) GetBase() (v *base.Base) { +func (p *DeleteManualAnnotationRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return ListAnnotationsRequest_Base_DEFAULT + return DeleteManualAnnotationRequest_Base_DEFAULT } return p.Base } -func (p *ListAnnotationsRequest) SetWorkspaceID(val int64) { - p.WorkspaceID = val +func (p *DeleteManualAnnotationRequest) SetAnnotationID(val string) { + p.AnnotationID = val } -func (p *ListAnnotationsRequest) SetSpanID(val string) { - p.SpanID = val +func (p *DeleteManualAnnotationRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val } -func (p *ListAnnotationsRequest) SetTraceID(val string) { +func (p *DeleteManualAnnotationRequest) SetTraceID(val string) { p.TraceID = val } -func (p *ListAnnotationsRequest) SetStartTime(val int64) { +func (p *DeleteManualAnnotationRequest) SetSpanID(val string) { + p.SpanID = val +} +func (p *DeleteManualAnnotationRequest) SetStartTime(val int64) { p.StartTime = val } -func (p *ListAnnotationsRequest) SetPlatformType(val *common.PlatformType) { - p.PlatformType = val +func (p *DeleteManualAnnotationRequest) SetAnnotationKey(val string) { + p.AnnotationKey = val } -func (p *ListAnnotationsRequest) SetDescByUpdatedAt(val *bool) { - p.DescByUpdatedAt = val +func (p *DeleteManualAnnotationRequest) SetPlatformType(val *common.PlatformType) { + p.PlatformType = val } -func (p *ListAnnotationsRequest) SetBase(val *base.Base) { +func (p *DeleteManualAnnotationRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ListAnnotationsRequest = map[int16]string{ - 1: "workspace_id", - 2: "span_id", +var fieldIDToName_DeleteManualAnnotationRequest = map[int16]string{ + 1: "annotation_id", + 2: "workspace_id", 3: "trace_id", - 4: "start_time", - 5: "platform_type", - 6: "desc_by_updated_at", + 4: "span_id", + 5: "start_time", + 6: "annotation_key", + 7: "platform_type", 255: "Base", } -func (p *ListAnnotationsRequest) IsSetPlatformType() bool { +func (p *DeleteManualAnnotationRequest) IsSetPlatformType() bool { return p.PlatformType != nil } -func (p *ListAnnotationsRequest) IsSetDescByUpdatedAt() bool { - return p.DescByUpdatedAt != nil -} - -func (p *ListAnnotationsRequest) IsSetBase() bool { +func (p *DeleteManualAnnotationRequest) IsSetBase() bool { return p.Base != nil } -func (p *ListAnnotationsRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *DeleteManualAnnotationRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetAnnotationID bool = false var issetWorkspaceID bool = false - var issetSpanID bool = false var issetTraceID bool = false + var issetSpanID bool = false var issetStartTime bool = false + var issetAnnotationKey bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -10297,20 +10499,20 @@ func (p *ListAnnotationsRequest) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetWorkspaceID = true + issetAnnotationID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetSpanID = true + issetWorkspaceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -10324,27 +10526,37 @@ func (p *ListAnnotationsRequest) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 4: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } - issetStartTime = true + issetSpanID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 5: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField5(iprot); err != nil { goto ReadFieldError } + issetStartTime = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 6: - if fieldTypeId == thrift.BOOL { + if fieldTypeId == thrift.STRING { if err = p.ReadField6(iprot); err != nil { goto ReadFieldError } + issetAnnotationKey = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.STRING { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -10369,12 +10581,12 @@ func (p *ListAnnotationsRequest) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetWorkspaceID { + if !issetAnnotationID { fieldId = 1 goto RequiredFieldNotSetError } - if !issetSpanID { + if !issetWorkspaceID { fieldId = 2 goto RequiredFieldNotSetError } @@ -10384,17 +10596,27 @@ func (p *ListAnnotationsRequest) Read(iprot thrift.TProtocol) (err error) { goto RequiredFieldNotSetError } - if !issetStartTime { + if !issetSpanID { fieldId = 4 goto RequiredFieldNotSetError } + + if !issetStartTime { + fieldId = 5 + goto RequiredFieldNotSetError + } + + if !issetAnnotationKey { + fieldId = 6 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListAnnotationsRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteManualAnnotationRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -10403,21 +10625,32 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListAnnotationsRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_DeleteManualAnnotationRequest[fieldId])) } -func (p *ListAnnotationsRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *DeleteManualAnnotationRequest) ReadField1(iprot thrift.TProtocol) error { - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + var _field string + if v, err := iprot.ReadString(); err != nil { return err } else { _field = v } - p.WorkspaceID = _field + p.AnnotationID = _field return nil } -func (p *ListAnnotationsRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *DeleteManualAnnotationRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *DeleteManualAnnotationRequest) ReadField3(iprot thrift.TProtocol) error { var _field string if v, err := iprot.ReadString(); err != nil { @@ -10425,10 +10658,10 @@ func (p *ListAnnotationsRequest) ReadField2(iprot thrift.TProtocol) error { } else { _field = v } - p.SpanID = _field + p.TraceID = _field return nil } -func (p *ListAnnotationsRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *DeleteManualAnnotationRequest) ReadField4(iprot thrift.TProtocol) error { var _field string if v, err := iprot.ReadString(); err != nil { @@ -10436,10 +10669,10 @@ func (p *ListAnnotationsRequest) ReadField3(iprot thrift.TProtocol) error { } else { _field = v } - p.TraceID = _field + p.SpanID = _field return nil } -func (p *ListAnnotationsRequest) ReadField4(iprot thrift.TProtocol) error { +func (p *DeleteManualAnnotationRequest) ReadField5(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -10450,29 +10683,29 @@ func (p *ListAnnotationsRequest) ReadField4(iprot thrift.TProtocol) error { p.StartTime = _field return nil } -func (p *ListAnnotationsRequest) ReadField5(iprot thrift.TProtocol) error { +func (p *DeleteManualAnnotationRequest) ReadField6(iprot thrift.TProtocol) error { - var _field *common.PlatformType + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - _field = &v + _field = v } - p.PlatformType = _field + p.AnnotationKey = _field return nil } -func (p *ListAnnotationsRequest) ReadField6(iprot thrift.TProtocol) error { +func (p *DeleteManualAnnotationRequest) ReadField7(iprot thrift.TProtocol) error { - var _field *bool - if v, err := iprot.ReadBool(); err != nil { + var _field *common.PlatformType + if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.DescByUpdatedAt = _field + p.PlatformType = _field return nil } -func (p *ListAnnotationsRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *DeleteManualAnnotationRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -10481,9 +10714,9 @@ func (p *ListAnnotationsRequest) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *ListAnnotationsRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *DeleteManualAnnotationRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListAnnotationsRequest"); err != nil { + if err = oprot.WriteStructBegin("DeleteManualAnnotationRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -10511,6 +10744,10 @@ func (p *ListAnnotationsRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 6 goto WriteFieldError } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -10533,11 +10770,11 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListAnnotationsRequest) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { +func (p *DeleteManualAnnotationRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotation_id", thrift.STRING, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.WorkspaceID); err != nil { + if err := oprot.WriteString(p.AnnotationID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -10549,11 +10786,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListAnnotationsRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("span_id", thrift.STRING, 2); err != nil { +func (p *DeleteManualAnnotationRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(p.SpanID); err != nil { + if err := oprot.WriteI64(p.WorkspaceID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -10565,7 +10802,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListAnnotationsRequest) writeField3(oprot thrift.TProtocol) (err error) { +func (p *DeleteManualAnnotationRequest) writeField3(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 3); err != nil { goto WriteFieldBeginError } @@ -10581,11 +10818,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ListAnnotationsRequest) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("start_time", thrift.I64, 4); err != nil { +func (p *DeleteManualAnnotationRequest) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("span_id", thrift.STRING, 4); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.StartTime); err != nil { + if err := oprot.WriteString(p.SpanID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -10597,17 +10834,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *ListAnnotationsRequest) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PlatformType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *DeleteManualAnnotationRequest) writeField5(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("start_time", thrift.I64, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.StartTime); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -10615,12 +10850,28 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) } -func (p *ListAnnotationsRequest) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetDescByUpdatedAt() { - if err = oprot.WriteFieldBegin("desc_by_updated_at", thrift.BOOL, 6); err != nil { +func (p *DeleteManualAnnotationRequest) writeField6(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotation_key", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.AnnotationKey); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *DeleteManualAnnotationRequest) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetPlatformType() { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 7); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteBool(*p.DescByUpdatedAt); err != nil { + if err := oprot.WriteString(*p.PlatformType); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -10629,11 +10880,11 @@ func (p *ListAnnotationsRequest) writeField6(oprot thrift.TProtocol) (err error) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) } -func (p *ListAnnotationsRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *DeleteManualAnnotationRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -10652,36 +10903,39 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListAnnotationsRequest) String() string { +func (p *DeleteManualAnnotationRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ListAnnotationsRequest(%+v)", *p) + return fmt.Sprintf("DeleteManualAnnotationRequest(%+v)", *p) } -func (p *ListAnnotationsRequest) DeepEqual(ano *ListAnnotationsRequest) bool { +func (p *DeleteManualAnnotationRequest) DeepEqual(ano *DeleteManualAnnotationRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.WorkspaceID) { + if !p.Field1DeepEqual(ano.AnnotationID) { return false } - if !p.Field2DeepEqual(ano.SpanID) { + if !p.Field2DeepEqual(ano.WorkspaceID) { return false } if !p.Field3DeepEqual(ano.TraceID) { return false } - if !p.Field4DeepEqual(ano.StartTime) { + if !p.Field4DeepEqual(ano.SpanID) { return false } - if !p.Field5DeepEqual(ano.PlatformType) { + if !p.Field5DeepEqual(ano.StartTime) { return false } - if !p.Field6DeepEqual(ano.DescByUpdatedAt) { + if !p.Field6DeepEqual(ano.AnnotationKey) { + return false + } + if !p.Field7DeepEqual(ano.PlatformType) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -10690,59 +10944,61 @@ func (p *ListAnnotationsRequest) DeepEqual(ano *ListAnnotationsRequest) bool { return true } -func (p *ListAnnotationsRequest) Field1DeepEqual(src int64) bool { +func (p *DeleteManualAnnotationRequest) Field1DeepEqual(src string) bool { - if p.WorkspaceID != src { + if strings.Compare(p.AnnotationID, src) != 0 { return false } return true } -func (p *ListAnnotationsRequest) Field2DeepEqual(src string) bool { +func (p *DeleteManualAnnotationRequest) Field2DeepEqual(src int64) bool { - if strings.Compare(p.SpanID, src) != 0 { + if p.WorkspaceID != src { return false } return true } -func (p *ListAnnotationsRequest) Field3DeepEqual(src string) bool { +func (p *DeleteManualAnnotationRequest) Field3DeepEqual(src string) bool { if strings.Compare(p.TraceID, src) != 0 { return false } return true } -func (p *ListAnnotationsRequest) Field4DeepEqual(src int64) bool { +func (p *DeleteManualAnnotationRequest) Field4DeepEqual(src string) bool { - if p.StartTime != src { + if strings.Compare(p.SpanID, src) != 0 { return false } return true } -func (p *ListAnnotationsRequest) Field5DeepEqual(src *common.PlatformType) bool { +func (p *DeleteManualAnnotationRequest) Field5DeepEqual(src int64) bool { - if p.PlatformType == src { - return true - } else if p.PlatformType == nil || src == nil { + if p.StartTime != src { return false } - if strings.Compare(*p.PlatformType, *src) != 0 { + return true +} +func (p *DeleteManualAnnotationRequest) Field6DeepEqual(src string) bool { + + if strings.Compare(p.AnnotationKey, src) != 0 { return false } return true } -func (p *ListAnnotationsRequest) Field6DeepEqual(src *bool) bool { +func (p *DeleteManualAnnotationRequest) Field7DeepEqual(src *common.PlatformType) bool { - if p.DescByUpdatedAt == src { + if p.PlatformType == src { return true - } else if p.DescByUpdatedAt == nil || src == nil { + } else if p.PlatformType == nil || src == nil { return false } - if *p.DescByUpdatedAt != *src { + if strings.Compare(*p.PlatformType, *src) != 0 { return false } return true } -func (p *ListAnnotationsRequest) Field255DeepEqual(src *base.Base) bool { +func (p *DeleteManualAnnotationRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -10750,56 +11006,43 @@ func (p *ListAnnotationsRequest) Field255DeepEqual(src *base.Base) bool { return true } -type ListAnnotationsResponse struct { - Annotations []*annotation.Annotation `thrift:"annotations,1,required" frugal:"1,required,list" form:"annotations,required" json:"annotations,required" query:"annotations,required"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` -} - -func NewListAnnotationsResponse() *ListAnnotationsResponse { - return &ListAnnotationsResponse{} +type DeleteManualAnnotationResponse struct { + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func (p *ListAnnotationsResponse) InitDefault() { +func NewDeleteManualAnnotationResponse() *DeleteManualAnnotationResponse { + return &DeleteManualAnnotationResponse{} } -func (p *ListAnnotationsResponse) GetAnnotations() (v []*annotation.Annotation) { - if p != nil { - return p.Annotations - } - return +func (p *DeleteManualAnnotationResponse) InitDefault() { } -var ListAnnotationsResponse_BaseResp_DEFAULT *base.BaseResp +var DeleteManualAnnotationResponse_BaseResp_DEFAULT *base.BaseResp -func (p *ListAnnotationsResponse) GetBaseResp() (v *base.BaseResp) { +func (p *DeleteManualAnnotationResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return ListAnnotationsResponse_BaseResp_DEFAULT + return DeleteManualAnnotationResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *ListAnnotationsResponse) SetAnnotations(val []*annotation.Annotation) { - p.Annotations = val -} -func (p *ListAnnotationsResponse) SetBaseResp(val *base.BaseResp) { +func (p *DeleteManualAnnotationResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_ListAnnotationsResponse = map[int16]string{ - 1: "annotations", +var fieldIDToName_DeleteManualAnnotationResponse = map[int16]string{ 255: "BaseResp", } -func (p *ListAnnotationsResponse) IsSetBaseResp() bool { +func (p *DeleteManualAnnotationResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *ListAnnotationsResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *DeleteManualAnnotationResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetAnnotations bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -10815,15 +11058,6 @@ func (p *ListAnnotationsResponse) Read(iprot thrift.TProtocol) (err error) { } switch fieldId { - case 1: - if fieldTypeId == thrift.LIST { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - issetAnnotations = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -10845,17 +11079,13 @@ func (p *ListAnnotationsResponse) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetAnnotations { - fieldId = 1 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListAnnotationsResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteManualAnnotationResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -10863,34 +11093,9 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListAnnotationsResponse[fieldId])) } -func (p *ListAnnotationsResponse) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*annotation.Annotation, 0, size) - values := make([]annotation.Annotation, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Annotations = _field - return nil -} -func (p *ListAnnotationsResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *DeleteManualAnnotationResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -10899,16 +11104,12 @@ func (p *ListAnnotationsResponse) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *ListAnnotationsResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *DeleteManualAnnotationResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListAnnotationsResponse"); err != nil { + if err = oprot.WriteStructBegin("DeleteManualAnnotationResponse"); err != nil { goto WriteStructBeginError } if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -10931,31 +11132,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListAnnotationsResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotations", thrift.LIST, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Annotations)); err != nil { - return err - } - for _, v := range p.Annotations { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ListAnnotationsResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *DeleteManualAnnotationResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -10974,43 +11151,27 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListAnnotationsResponse) String() string { +func (p *DeleteManualAnnotationResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ListAnnotationsResponse(%+v)", *p) + return fmt.Sprintf("DeleteManualAnnotationResponse(%+v)", *p) } -func (p *ListAnnotationsResponse) DeepEqual(ano *ListAnnotationsResponse) bool { +func (p *DeleteManualAnnotationResponse) DeepEqual(ano *DeleteManualAnnotationResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Annotations) { - return false - } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *ListAnnotationsResponse) Field1DeepEqual(src []*annotation.Annotation) bool { - - if len(p.Annotations) != len(src) { - return false - } - for i, v := range p.Annotations { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *ListAnnotationsResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *DeleteManualAnnotationResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -11018,186 +11179,137 @@ func (p *ListAnnotationsResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type ExportTracesToDatasetRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - SpanIds []*SpanID `thrift:"span_ids,2,required" frugal:"2,required,list" form:"span_ids,required" json:"span_ids,required"` - Category dataset.DatasetCategory `thrift:"category,3,required" frugal:"3,required,DatasetCategory" form:"category,required" json:"category,required"` - Config *DatasetConfig `thrift:"config,4,required" frugal:"4,required,DatasetConfig" form:"config,required" json:"config,required"` - StartTime int64 `thrift:"start_time,5,required" frugal:"5,required,i64" json:"start_time" form:"start_time,required" ` - EndTime int64 `thrift:"end_time,6,required" frugal:"6,required,i64" json:"end_time" form:"end_time,required" ` - PlatformType *common.PlatformType `thrift:"platform_type,7,optional" frugal:"7,optional,string" form:"platform_type" json:"platform_type,omitempty"` - // 导入方式,不填默认为追加 - ExportType dataset0.ExportType `thrift:"export_type,8,required" frugal:"8,required,string" form:"export_type,required" json:"export_type,required"` - FieldMappings []*dataset0.FieldMapping `thrift:"field_mappings,9,optional" frugal:"9,optional,list" form:"field_mappings" json:"field_mappings,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type ListAnnotationsRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + SpanID string `thrift:"span_id,2,required" frugal:"2,required,string" form:"span_id,required" json:"span_id,required"` + TraceID string `thrift:"trace_id,3,required" frugal:"3,required,string" form:"trace_id,required" json:"trace_id,required"` + StartTime int64 `thrift:"start_time,4,required" frugal:"4,required,i64" json:"start_time" form:"start_time,required" ` + PlatformType *common.PlatformType `thrift:"platform_type,5,optional" frugal:"5,optional,string" form:"platform_type" json:"platform_type,omitempty"` + DescByUpdatedAt *bool `thrift:"desc_by_updated_at,6,optional" frugal:"6,optional,bool" form:"desc_by_updated_at" json:"desc_by_updated_at,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewExportTracesToDatasetRequest() *ExportTracesToDatasetRequest { - return &ExportTracesToDatasetRequest{} +func NewListAnnotationsRequest() *ListAnnotationsRequest { + return &ListAnnotationsRequest{} } -func (p *ExportTracesToDatasetRequest) InitDefault() { +func (p *ListAnnotationsRequest) InitDefault() { } -func (p *ExportTracesToDatasetRequest) GetWorkspaceID() (v int64) { +func (p *ListAnnotationsRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *ExportTracesToDatasetRequest) GetSpanIds() (v []*SpanID) { +func (p *ListAnnotationsRequest) GetSpanID() (v string) { if p != nil { - return p.SpanIds + return p.SpanID } return } -func (p *ExportTracesToDatasetRequest) GetCategory() (v dataset.DatasetCategory) { +func (p *ListAnnotationsRequest) GetTraceID() (v string) { if p != nil { - return p.Category + return p.TraceID } return } -var ExportTracesToDatasetRequest_Config_DEFAULT *DatasetConfig - -func (p *ExportTracesToDatasetRequest) GetConfig() (v *DatasetConfig) { - if p == nil { - return - } - if !p.IsSetConfig() { - return ExportTracesToDatasetRequest_Config_DEFAULT - } - return p.Config -} - -func (p *ExportTracesToDatasetRequest) GetStartTime() (v int64) { +func (p *ListAnnotationsRequest) GetStartTime() (v int64) { if p != nil { return p.StartTime } return } -func (p *ExportTracesToDatasetRequest) GetEndTime() (v int64) { - if p != nil { - return p.EndTime - } - return -} - -var ExportTracesToDatasetRequest_PlatformType_DEFAULT common.PlatformType +var ListAnnotationsRequest_PlatformType_DEFAULT common.PlatformType -func (p *ExportTracesToDatasetRequest) GetPlatformType() (v common.PlatformType) { +func (p *ListAnnotationsRequest) GetPlatformType() (v common.PlatformType) { if p == nil { return } if !p.IsSetPlatformType() { - return ExportTracesToDatasetRequest_PlatformType_DEFAULT + return ListAnnotationsRequest_PlatformType_DEFAULT } return *p.PlatformType } -func (p *ExportTracesToDatasetRequest) GetExportType() (v dataset0.ExportType) { - if p != nil { - return p.ExportType - } - return -} - -var ExportTracesToDatasetRequest_FieldMappings_DEFAULT []*dataset0.FieldMapping +var ListAnnotationsRequest_DescByUpdatedAt_DEFAULT bool -func (p *ExportTracesToDatasetRequest) GetFieldMappings() (v []*dataset0.FieldMapping) { +func (p *ListAnnotationsRequest) GetDescByUpdatedAt() (v bool) { if p == nil { return } - if !p.IsSetFieldMappings() { - return ExportTracesToDatasetRequest_FieldMappings_DEFAULT + if !p.IsSetDescByUpdatedAt() { + return ListAnnotationsRequest_DescByUpdatedAt_DEFAULT } - return p.FieldMappings + return *p.DescByUpdatedAt } -var ExportTracesToDatasetRequest_Base_DEFAULT *base.Base +var ListAnnotationsRequest_Base_DEFAULT *base.Base -func (p *ExportTracesToDatasetRequest) GetBase() (v *base.Base) { +func (p *ListAnnotationsRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return ExportTracesToDatasetRequest_Base_DEFAULT + return ListAnnotationsRequest_Base_DEFAULT } return p.Base } -func (p *ExportTracesToDatasetRequest) SetWorkspaceID(val int64) { +func (p *ListAnnotationsRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *ExportTracesToDatasetRequest) SetSpanIds(val []*SpanID) { - p.SpanIds = val -} -func (p *ExportTracesToDatasetRequest) SetCategory(val dataset.DatasetCategory) { - p.Category = val +func (p *ListAnnotationsRequest) SetSpanID(val string) { + p.SpanID = val } -func (p *ExportTracesToDatasetRequest) SetConfig(val *DatasetConfig) { - p.Config = val +func (p *ListAnnotationsRequest) SetTraceID(val string) { + p.TraceID = val } -func (p *ExportTracesToDatasetRequest) SetStartTime(val int64) { +func (p *ListAnnotationsRequest) SetStartTime(val int64) { p.StartTime = val } -func (p *ExportTracesToDatasetRequest) SetEndTime(val int64) { - p.EndTime = val -} -func (p *ExportTracesToDatasetRequest) SetPlatformType(val *common.PlatformType) { +func (p *ListAnnotationsRequest) SetPlatformType(val *common.PlatformType) { p.PlatformType = val } -func (p *ExportTracesToDatasetRequest) SetExportType(val dataset0.ExportType) { - p.ExportType = val -} -func (p *ExportTracesToDatasetRequest) SetFieldMappings(val []*dataset0.FieldMapping) { - p.FieldMappings = val +func (p *ListAnnotationsRequest) SetDescByUpdatedAt(val *bool) { + p.DescByUpdatedAt = val } -func (p *ExportTracesToDatasetRequest) SetBase(val *base.Base) { +func (p *ListAnnotationsRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ExportTracesToDatasetRequest = map[int16]string{ +var fieldIDToName_ListAnnotationsRequest = map[int16]string{ 1: "workspace_id", - 2: "span_ids", - 3: "category", - 4: "config", - 5: "start_time", - 6: "end_time", - 7: "platform_type", - 8: "export_type", - 9: "field_mappings", + 2: "span_id", + 3: "trace_id", + 4: "start_time", + 5: "platform_type", + 6: "desc_by_updated_at", 255: "Base", } -func (p *ExportTracesToDatasetRequest) IsSetConfig() bool { - return p.Config != nil -} - -func (p *ExportTracesToDatasetRequest) IsSetPlatformType() bool { +func (p *ListAnnotationsRequest) IsSetPlatformType() bool { return p.PlatformType != nil } -func (p *ExportTracesToDatasetRequest) IsSetFieldMappings() bool { - return p.FieldMappings != nil +func (p *ListAnnotationsRequest) IsSetDescByUpdatedAt() bool { + return p.DescByUpdatedAt != nil } -func (p *ExportTracesToDatasetRequest) IsSetBase() bool { +func (p *ListAnnotationsRequest) IsSetBase() bool { return p.Base != nil } -func (p *ExportTracesToDatasetRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *ListAnnotationsRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetSpanIds bool = false - var issetCategory bool = false - var issetConfig bool = false + var issetSpanID bool = false + var issetTraceID bool = false var issetStartTime bool = false - var issetEndTime bool = false - var issetExportType bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -11223,72 +11335,45 @@ func (p *ExportTracesToDatasetRequest) Read(iprot thrift.TProtocol) (err error) goto SkipFieldError } case 2: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.STRING { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetSpanIds = true + issetSpanID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 3: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } - issetCategory = true + issetTraceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 4: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.I64 { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } - issetConfig = true + issetStartTime = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 5: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { if err = p.ReadField5(iprot); err != nil { goto ReadFieldError } - issetStartTime = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 6: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.BOOL { if err = p.ReadField6(iprot); err != nil { goto ReadFieldError } - issetEndTime = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.STRING { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 8: - if fieldTypeId == thrift.STRING { - if err = p.ReadField8(iprot); err != nil { - goto ReadFieldError - } - issetExportType = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 9: - if fieldTypeId == thrift.LIST { - if err = p.ReadField9(iprot); err != nil { - goto ReadFieldError - } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -11318,42 +11403,27 @@ func (p *ExportTracesToDatasetRequest) Read(iprot thrift.TProtocol) (err error) goto RequiredFieldNotSetError } - if !issetSpanIds { + if !issetSpanID { fieldId = 2 goto RequiredFieldNotSetError } - if !issetCategory { + if !issetTraceID { fieldId = 3 goto RequiredFieldNotSetError } - if !issetConfig { + if !issetStartTime { fieldId = 4 goto RequiredFieldNotSetError } - - if !issetStartTime { - fieldId = 5 - goto RequiredFieldNotSetError - } - - if !issetEndTime { - fieldId = 6 - goto RequiredFieldNotSetError - } - - if !issetExportType { - fieldId = 8 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExportTracesToDatasetRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListAnnotationsRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11362,10 +11432,10 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ExportTracesToDatasetRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListAnnotationsRequest[fieldId])) } -func (p *ExportTracesToDatasetRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *ListAnnotationsRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -11376,60 +11446,29 @@ func (p *ExportTracesToDatasetRequest) ReadField1(iprot thrift.TProtocol) error p.WorkspaceID = _field return nil } -func (p *ExportTracesToDatasetRequest) ReadField2(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*SpanID, 0, size) - values := make([]SpanID, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.SpanIds = _field - return nil -} -func (p *ExportTracesToDatasetRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *ListAnnotationsRequest) ReadField2(iprot thrift.TProtocol) error { - var _field dataset.DatasetCategory - if v, err := iprot.ReadI32(); err != nil { + var _field string + if v, err := iprot.ReadString(); err != nil { return err } else { - _field = dataset.DatasetCategory(v) - } - p.Category = _field - return nil -} -func (p *ExportTracesToDatasetRequest) ReadField4(iprot thrift.TProtocol) error { - _field := NewDatasetConfig() - if err := _field.Read(iprot); err != nil { - return err + _field = v } - p.Config = _field + p.SpanID = _field return nil } -func (p *ExportTracesToDatasetRequest) ReadField5(iprot thrift.TProtocol) error { +func (p *ListAnnotationsRequest) ReadField3(iprot thrift.TProtocol) error { - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + var _field string + if v, err := iprot.ReadString(); err != nil { return err } else { _field = v } - p.StartTime = _field + p.TraceID = _field return nil } -func (p *ExportTracesToDatasetRequest) ReadField6(iprot thrift.TProtocol) error { +func (p *ListAnnotationsRequest) ReadField4(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -11437,10 +11476,10 @@ func (p *ExportTracesToDatasetRequest) ReadField6(iprot thrift.TProtocol) error } else { _field = v } - p.EndTime = _field + p.StartTime = _field return nil } -func (p *ExportTracesToDatasetRequest) ReadField7(iprot thrift.TProtocol) error { +func (p *ListAnnotationsRequest) ReadField5(iprot thrift.TProtocol) error { var _field *common.PlatformType if v, err := iprot.ReadString(); err != nil { @@ -11451,41 +11490,18 @@ func (p *ExportTracesToDatasetRequest) ReadField7(iprot thrift.TProtocol) error p.PlatformType = _field return nil } -func (p *ExportTracesToDatasetRequest) ReadField8(iprot thrift.TProtocol) error { +func (p *ListAnnotationsRequest) ReadField6(iprot thrift.TProtocol) error { - var _field dataset0.ExportType - if v, err := iprot.ReadString(); err != nil { + var _field *bool + if v, err := iprot.ReadBool(); err != nil { return err } else { - _field = v - } - p.ExportType = _field - return nil -} -func (p *ExportTracesToDatasetRequest) ReadField9(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*dataset0.FieldMapping, 0, size) - values := make([]dataset0.FieldMapping, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err + _field = &v } - p.FieldMappings = _field + p.DescByUpdatedAt = _field return nil } -func (p *ExportTracesToDatasetRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *ListAnnotationsRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -11494,9 +11510,9 @@ func (p *ExportTracesToDatasetRequest) ReadField255(iprot thrift.TProtocol) erro return nil } -func (p *ExportTracesToDatasetRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *ListAnnotationsRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExportTracesToDatasetRequest"); err != nil { + if err = oprot.WriteStructBegin("ListAnnotationsRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -11524,18 +11540,6 @@ func (p *ExportTracesToDatasetRequest) Write(oprot thrift.TProtocol) (err error) fieldId = 6 goto WriteFieldError } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } - if err = p.writeField9(oprot); err != nil { - fieldId = 9 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -11558,7 +11562,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExportTracesToDatasetRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ListAnnotationsRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -11574,19 +11578,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExportTracesToDatasetRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("span_ids", thrift.LIST, 2); err != nil { +func (p *ListAnnotationsRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("span_id", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.SpanIds)); err != nil { - return err - } - for _, v := range p.SpanIds { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteString(p.SpanID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11598,11 +11594,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExportTracesToDatasetRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("category", thrift.I32, 3); err != nil { +func (p *ListAnnotationsRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(int32(p.Category)); err != nil { + if err := oprot.WriteString(p.TraceID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11614,11 +11610,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ExportTracesToDatasetRequest) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("config", thrift.STRUCT, 4); err != nil { +func (p *ListAnnotationsRequest) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("start_time", thrift.I64, 4); err != nil { goto WriteFieldBeginError } - if err := p.Config.Write(oprot); err != nil { + if err := oprot.WriteI64(p.StartTime); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11630,41 +11626,9 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *ExportTracesToDatasetRequest) writeField5(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("start_time", thrift.I64, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.StartTime); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *ExportTracesToDatasetRequest) writeField6(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("end_time", thrift.I64, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.EndTime); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *ExportTracesToDatasetRequest) writeField7(oprot thrift.TProtocol) (err error) { +func (p *ListAnnotationsRequest) writeField5(oprot thrift.TProtocol) (err error) { if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 7); err != nil { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 5); err != nil { goto WriteFieldBeginError } if err := oprot.WriteString(*p.PlatformType); err != nil { @@ -11676,40 +11640,16 @@ func (p *ExportTracesToDatasetRequest) writeField7(oprot thrift.TProtocol) (err } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} -func (p *ExportTracesToDatasetRequest) writeField8(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("export_type", thrift.STRING, 8); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.ExportType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) } -func (p *ExportTracesToDatasetRequest) writeField9(oprot thrift.TProtocol) (err error) { - if p.IsSetFieldMappings() { - if err = oprot.WriteFieldBegin("field_mappings", thrift.LIST, 9); err != nil { +func (p *ListAnnotationsRequest) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetDescByUpdatedAt() { + if err = oprot.WriteFieldBegin("desc_by_updated_at", thrift.BOOL, 6); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldMappings)); err != nil { - return err - } - for _, v := range p.FieldMappings { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteBool(*p.DescByUpdatedAt); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11718,11 +11658,11 @@ func (p *ExportTracesToDatasetRequest) writeField9(oprot thrift.TProtocol) (err } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } -func (p *ExportTracesToDatasetRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ListAnnotationsRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -11741,15 +11681,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ExportTracesToDatasetRequest) String() string { +func (p *ListAnnotationsRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ExportTracesToDatasetRequest(%+v)", *p) + return fmt.Sprintf("ListAnnotationsRequest(%+v)", *p) } -func (p *ExportTracesToDatasetRequest) DeepEqual(ano *ExportTracesToDatasetRequest) bool { +func (p *ListAnnotationsRequest) DeepEqual(ano *ListAnnotationsRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -11758,28 +11698,19 @@ func (p *ExportTracesToDatasetRequest) DeepEqual(ano *ExportTracesToDatasetReque if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.SpanIds) { - return false - } - if !p.Field3DeepEqual(ano.Category) { - return false - } - if !p.Field4DeepEqual(ano.Config) { - return false - } - if !p.Field5DeepEqual(ano.StartTime) { + if !p.Field2DeepEqual(ano.SpanID) { return false } - if !p.Field6DeepEqual(ano.EndTime) { + if !p.Field3DeepEqual(ano.TraceID) { return false } - if !p.Field7DeepEqual(ano.PlatformType) { + if !p.Field4DeepEqual(ano.StartTime) { return false } - if !p.Field8DeepEqual(ano.ExportType) { + if !p.Field5DeepEqual(ano.PlatformType) { return false } - if !p.Field9DeepEqual(ano.FieldMappings) { + if !p.Field6DeepEqual(ano.DescByUpdatedAt) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -11788,55 +11719,35 @@ func (p *ExportTracesToDatasetRequest) DeepEqual(ano *ExportTracesToDatasetReque return true } -func (p *ExportTracesToDatasetRequest) Field1DeepEqual(src int64) bool { +func (p *ListAnnotationsRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *ExportTracesToDatasetRequest) Field2DeepEqual(src []*SpanID) bool { - - if len(p.SpanIds) != len(src) { - return false - } - for i, v := range p.SpanIds { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *ExportTracesToDatasetRequest) Field3DeepEqual(src dataset.DatasetCategory) bool { +func (p *ListAnnotationsRequest) Field2DeepEqual(src string) bool { - if p.Category != src { + if strings.Compare(p.SpanID, src) != 0 { return false } return true } -func (p *ExportTracesToDatasetRequest) Field4DeepEqual(src *DatasetConfig) bool { +func (p *ListAnnotationsRequest) Field3DeepEqual(src string) bool { - if !p.Config.DeepEqual(src) { + if strings.Compare(p.TraceID, src) != 0 { return false } return true } -func (p *ExportTracesToDatasetRequest) Field5DeepEqual(src int64) bool { +func (p *ListAnnotationsRequest) Field4DeepEqual(src int64) bool { if p.StartTime != src { return false } return true } -func (p *ExportTracesToDatasetRequest) Field6DeepEqual(src int64) bool { - - if p.EndTime != src { - return false - } - return true -} -func (p *ExportTracesToDatasetRequest) Field7DeepEqual(src *common.PlatformType) bool { +func (p *ListAnnotationsRequest) Field5DeepEqual(src *common.PlatformType) bool { if p.PlatformType == src { return true @@ -11848,27 +11759,19 @@ func (p *ExportTracesToDatasetRequest) Field7DeepEqual(src *common.PlatformType) } return true } -func (p *ExportTracesToDatasetRequest) Field8DeepEqual(src dataset0.ExportType) bool { +func (p *ListAnnotationsRequest) Field6DeepEqual(src *bool) bool { - if strings.Compare(p.ExportType, src) != 0 { + if p.DescByUpdatedAt == src { + return true + } else if p.DescByUpdatedAt == nil || src == nil { return false } - return true -} -func (p *ExportTracesToDatasetRequest) Field9DeepEqual(src []*dataset0.FieldMapping) bool { - - if len(p.FieldMappings) != len(src) { + if *p.DescByUpdatedAt != *src { return false } - for i, v := range p.FieldMappings { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } return true } -func (p *ExportTracesToDatasetRequest) Field255DeepEqual(src *base.Base) bool { +func (p *ListAnnotationsRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -11876,48 +11779,56 @@ func (p *ExportTracesToDatasetRequest) Field255DeepEqual(src *base.Base) bool { return true } -type SpanID struct { - TraceID string `thrift:"trace_id,1,required" frugal:"1,required,string" form:"trace_id,required" json:"trace_id,required" query:"trace_id,required"` - SpanID string `thrift:"span_id,2,required" frugal:"2,required,string" form:"span_id,required" json:"span_id,required" query:"span_id,required"` +type ListAnnotationsResponse struct { + Annotations []*annotation.Annotation `thrift:"annotations,1,required" frugal:"1,required,list" form:"annotations,required" json:"annotations,required" query:"annotations,required"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewSpanID() *SpanID { - return &SpanID{} +func NewListAnnotationsResponse() *ListAnnotationsResponse { + return &ListAnnotationsResponse{} } -func (p *SpanID) InitDefault() { +func (p *ListAnnotationsResponse) InitDefault() { } -func (p *SpanID) GetTraceID() (v string) { +func (p *ListAnnotationsResponse) GetAnnotations() (v []*annotation.Annotation) { if p != nil { - return p.TraceID + return p.Annotations } return } -func (p *SpanID) GetSpanID() (v string) { - if p != nil { - return p.SpanID +var ListAnnotationsResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *ListAnnotationsResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return } - return + if !p.IsSetBaseResp() { + return ListAnnotationsResponse_BaseResp_DEFAULT + } + return p.BaseResp } -func (p *SpanID) SetTraceID(val string) { - p.TraceID = val +func (p *ListAnnotationsResponse) SetAnnotations(val []*annotation.Annotation) { + p.Annotations = val } -func (p *SpanID) SetSpanID(val string) { - p.SpanID = val +func (p *ListAnnotationsResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val } -var fieldIDToName_SpanID = map[int16]string{ - 1: "trace_id", - 2: "span_id", +var fieldIDToName_ListAnnotationsResponse = map[int16]string{ + 1: "annotations", + 255: "BaseResp", } -func (p *SpanID) Read(iprot thrift.TProtocol) (err error) { +func (p *ListAnnotationsResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *ListAnnotationsResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetTraceID bool = false - var issetSpanID bool = false + var issetAnnotations bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -11934,20 +11845,19 @@ func (p *SpanID) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.LIST { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetTraceID = true + issetAnnotations = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { goto ReadFieldError } - issetSpanID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -11964,22 +11874,17 @@ func (p *SpanID) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetTraceID { + if !issetAnnotations { fieldId = 1 goto RequiredFieldNotSetError } - - if !issetSpanID { - fieldId = 2 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SpanID[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListAnnotationsResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11988,35 +11893,44 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_SpanID[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListAnnotationsResponse[fieldId])) } -func (p *SpanID) ReadField1(iprot thrift.TProtocol) error { +func (p *ListAnnotationsResponse) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*annotation.Annotation, 0, size) + values := make([]annotation.Annotation, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field string - if v, err := iprot.ReadString(); err != nil { + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - _field = v } - p.TraceID = _field + p.Annotations = _field return nil } -func (p *SpanID) ReadField2(iprot thrift.TProtocol) error { - - var _field string - if v, err := iprot.ReadString(); err != nil { +func (p *ListAnnotationsResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = v } - p.SpanID = _field + p.BaseResp = _field return nil } -func (p *SpanID) Write(oprot thrift.TProtocol) (err error) { +func (p *ListAnnotationsResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("SpanID"); err != nil { + if err = oprot.WriteStructBegin("ListAnnotationsResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -12024,8 +11938,8 @@ func (p *SpanID) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 + if err = p.writeField255(oprot); err != nil { + fieldId = 255 goto WriteFieldError } } @@ -12046,11 +11960,19 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *SpanID) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 1); err != nil { +func (p *ListAnnotationsResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotations", thrift.LIST, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(p.TraceID); err != nil { + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Annotations)); err != nil { + return err + } + for _, v := range p.Annotations { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -12062,157 +11984,249 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *SpanID) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("span_id", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.SpanID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *ListAnnotationsResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *SpanID) String() string { +func (p *ListAnnotationsResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("SpanID(%+v)", *p) + return fmt.Sprintf("ListAnnotationsResponse(%+v)", *p) } -func (p *SpanID) DeepEqual(ano *SpanID) bool { +func (p *ListAnnotationsResponse) DeepEqual(ano *ListAnnotationsResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.TraceID) { + if !p.Field1DeepEqual(ano.Annotations) { return false } - if !p.Field2DeepEqual(ano.SpanID) { + if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *SpanID) Field1DeepEqual(src string) bool { +func (p *ListAnnotationsResponse) Field1DeepEqual(src []*annotation.Annotation) bool { - if strings.Compare(p.TraceID, src) != 0 { + if len(p.Annotations) != len(src) { return false } + for i, v := range p.Annotations { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } return true } -func (p *SpanID) Field2DeepEqual(src string) bool { +func (p *ListAnnotationsResponse) Field255DeepEqual(src *base.BaseResp) bool { - if strings.Compare(p.SpanID, src) != 0 { + if !p.BaseResp.DeepEqual(src) { return false } return true } -type DatasetConfig struct { - // 是否是新增数据集 - IsNewDataset bool `thrift:"is_new_dataset,1,required" frugal:"1,required,bool" form:"is_new_dataset,required" json:"is_new_dataset,required" query:"is_new_dataset,required"` - // 数据集id,新增数据集时可为空 - DatasetID *int64 `thrift:"dataset_id,2,optional" frugal:"2,optional,i64" json:"dataset_id" form:"dataset_id" query:"dataset_id"` - // 数据集名称,选择已有数据集时可为空 - DatasetName *string `thrift:"dataset_name,3,optional" frugal:"3,optional,string" form:"dataset_name" json:"dataset_name,omitempty" query:"dataset_name"` - // 数据集列数据schema - DatasetSchema *dataset0.DatasetSchema `thrift:"dataset_schema,4,optional" frugal:"4,optional,dataset.DatasetSchema" form:"dataset_schema" json:"dataset_schema,omitempty" query:"dataset_schema"` +type ExportTracesToDatasetRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + SpanIds []*SpanID `thrift:"span_ids,2,required" frugal:"2,required,list" form:"span_ids,required" json:"span_ids,required"` + Category dataset.DatasetCategory `thrift:"category,3,required" frugal:"3,required,DatasetCategory" form:"category,required" json:"category,required"` + Config *DatasetConfig `thrift:"config,4,required" frugal:"4,required,DatasetConfig" form:"config,required" json:"config,required"` + StartTime int64 `thrift:"start_time,5,required" frugal:"5,required,i64" json:"start_time" form:"start_time,required" ` + EndTime int64 `thrift:"end_time,6,required" frugal:"6,required,i64" json:"end_time" form:"end_time,required" ` + PlatformType *common.PlatformType `thrift:"platform_type,7,optional" frugal:"7,optional,string" form:"platform_type" json:"platform_type,omitempty"` + // 导入方式,不填默认为追加 + ExportType dataset0.ExportType `thrift:"export_type,8,required" frugal:"8,required,string" form:"export_type,required" json:"export_type,required"` + FieldMappings []*dataset0.FieldMapping `thrift:"field_mappings,9,optional" frugal:"9,optional,list" form:"field_mappings" json:"field_mappings,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewDatasetConfig() *DatasetConfig { - return &DatasetConfig{} +func NewExportTracesToDatasetRequest() *ExportTracesToDatasetRequest { + return &ExportTracesToDatasetRequest{} } -func (p *DatasetConfig) InitDefault() { +func (p *ExportTracesToDatasetRequest) InitDefault() { } -func (p *DatasetConfig) GetIsNewDataset() (v bool) { +func (p *ExportTracesToDatasetRequest) GetWorkspaceID() (v int64) { if p != nil { - return p.IsNewDataset + return p.WorkspaceID } return } -var DatasetConfig_DatasetID_DEFAULT int64 +func (p *ExportTracesToDatasetRequest) GetSpanIds() (v []*SpanID) { + if p != nil { + return p.SpanIds + } + return +} -func (p *DatasetConfig) GetDatasetID() (v int64) { +func (p *ExportTracesToDatasetRequest) GetCategory() (v dataset.DatasetCategory) { + if p != nil { + return p.Category + } + return +} + +var ExportTracesToDatasetRequest_Config_DEFAULT *DatasetConfig + +func (p *ExportTracesToDatasetRequest) GetConfig() (v *DatasetConfig) { if p == nil { return } - if !p.IsSetDatasetID() { - return DatasetConfig_DatasetID_DEFAULT + if !p.IsSetConfig() { + return ExportTracesToDatasetRequest_Config_DEFAULT } - return *p.DatasetID + return p.Config } -var DatasetConfig_DatasetName_DEFAULT string +func (p *ExportTracesToDatasetRequest) GetStartTime() (v int64) { + if p != nil { + return p.StartTime + } + return +} -func (p *DatasetConfig) GetDatasetName() (v string) { +func (p *ExportTracesToDatasetRequest) GetEndTime() (v int64) { + if p != nil { + return p.EndTime + } + return +} + +var ExportTracesToDatasetRequest_PlatformType_DEFAULT common.PlatformType + +func (p *ExportTracesToDatasetRequest) GetPlatformType() (v common.PlatformType) { if p == nil { return } - if !p.IsSetDatasetName() { - return DatasetConfig_DatasetName_DEFAULT + if !p.IsSetPlatformType() { + return ExportTracesToDatasetRequest_PlatformType_DEFAULT } - return *p.DatasetName + return *p.PlatformType } -var DatasetConfig_DatasetSchema_DEFAULT *dataset0.DatasetSchema +func (p *ExportTracesToDatasetRequest) GetExportType() (v dataset0.ExportType) { + if p != nil { + return p.ExportType + } + return +} -func (p *DatasetConfig) GetDatasetSchema() (v *dataset0.DatasetSchema) { +var ExportTracesToDatasetRequest_FieldMappings_DEFAULT []*dataset0.FieldMapping + +func (p *ExportTracesToDatasetRequest) GetFieldMappings() (v []*dataset0.FieldMapping) { if p == nil { return } - if !p.IsSetDatasetSchema() { - return DatasetConfig_DatasetSchema_DEFAULT + if !p.IsSetFieldMappings() { + return ExportTracesToDatasetRequest_FieldMappings_DEFAULT } - return p.DatasetSchema + return p.FieldMappings } -func (p *DatasetConfig) SetIsNewDataset(val bool) { - p.IsNewDataset = val + +var ExportTracesToDatasetRequest_Base_DEFAULT *base.Base + +func (p *ExportTracesToDatasetRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return ExportTracesToDatasetRequest_Base_DEFAULT + } + return p.Base } -func (p *DatasetConfig) SetDatasetID(val *int64) { - p.DatasetID = val +func (p *ExportTracesToDatasetRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val } -func (p *DatasetConfig) SetDatasetName(val *string) { - p.DatasetName = val +func (p *ExportTracesToDatasetRequest) SetSpanIds(val []*SpanID) { + p.SpanIds = val } -func (p *DatasetConfig) SetDatasetSchema(val *dataset0.DatasetSchema) { - p.DatasetSchema = val +func (p *ExportTracesToDatasetRequest) SetCategory(val dataset.DatasetCategory) { + p.Category = val +} +func (p *ExportTracesToDatasetRequest) SetConfig(val *DatasetConfig) { + p.Config = val +} +func (p *ExportTracesToDatasetRequest) SetStartTime(val int64) { + p.StartTime = val +} +func (p *ExportTracesToDatasetRequest) SetEndTime(val int64) { + p.EndTime = val +} +func (p *ExportTracesToDatasetRequest) SetPlatformType(val *common.PlatformType) { + p.PlatformType = val +} +func (p *ExportTracesToDatasetRequest) SetExportType(val dataset0.ExportType) { + p.ExportType = val +} +func (p *ExportTracesToDatasetRequest) SetFieldMappings(val []*dataset0.FieldMapping) { + p.FieldMappings = val +} +func (p *ExportTracesToDatasetRequest) SetBase(val *base.Base) { + p.Base = val } -var fieldIDToName_DatasetConfig = map[int16]string{ - 1: "is_new_dataset", - 2: "dataset_id", - 3: "dataset_name", - 4: "dataset_schema", +var fieldIDToName_ExportTracesToDatasetRequest = map[int16]string{ + 1: "workspace_id", + 2: "span_ids", + 3: "category", + 4: "config", + 5: "start_time", + 6: "end_time", + 7: "platform_type", + 8: "export_type", + 9: "field_mappings", + 255: "Base", } -func (p *DatasetConfig) IsSetDatasetID() bool { - return p.DatasetID != nil +func (p *ExportTracesToDatasetRequest) IsSetConfig() bool { + return p.Config != nil } -func (p *DatasetConfig) IsSetDatasetName() bool { - return p.DatasetName != nil +func (p *ExportTracesToDatasetRequest) IsSetPlatformType() bool { + return p.PlatformType != nil } -func (p *DatasetConfig) IsSetDatasetSchema() bool { - return p.DatasetSchema != nil +func (p *ExportTracesToDatasetRequest) IsSetFieldMappings() bool { + return p.FieldMappings != nil } -func (p *DatasetConfig) Read(iprot thrift.TProtocol) (err error) { +func (p *ExportTracesToDatasetRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *ExportTracesToDatasetRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetIsNewDataset bool = false + var issetWorkspaceID bool = false + var issetSpanIds bool = false + var issetCategory bool = false + var issetConfig bool = false + var issetStartTime bool = false + var issetEndTime bool = false + var issetExportType bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -12229,27 +12243,29 @@ func (p *DatasetConfig) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.BOOL { + if fieldTypeId == thrift.I64 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetIsNewDataset = true + issetWorkspaceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.LIST { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } + issetSpanIds = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 3: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I32 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } + issetCategory = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -12258,6 +12274,58 @@ func (p *DatasetConfig) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } + issetConfig = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.I64 { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + issetStartTime = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.I64 { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + issetEndTime = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.STRING { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.STRING { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + issetExportType = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.LIST { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -12274,17 +12342,47 @@ func (p *DatasetConfig) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetIsNewDataset { + if !issetWorkspaceID { fieldId = 1 goto RequiredFieldNotSetError } + + if !issetSpanIds { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetCategory { + fieldId = 3 + goto RequiredFieldNotSetError + } + + if !issetConfig { + fieldId = 4 + goto RequiredFieldNotSetError + } + + if !issetStartTime { + fieldId = 5 + goto RequiredFieldNotSetError + } + + if !issetEndTime { + fieldId = 6 + goto RequiredFieldNotSetError + } + + if !issetExportType { + fieldId = 8 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DatasetConfig[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExportTracesToDatasetRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -12293,54 +12391,141 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_DatasetConfig[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ExportTracesToDatasetRequest[fieldId])) } -func (p *DatasetConfig) ReadField1(iprot thrift.TProtocol) error { +func (p *ExportTracesToDatasetRequest) ReadField1(iprot thrift.TProtocol) error { - var _field bool - if v, err := iprot.ReadBool(); err != nil { + var _field int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { _field = v } - p.IsNewDataset = _field + p.WorkspaceID = _field return nil } -func (p *DatasetConfig) ReadField2(iprot thrift.TProtocol) error { +func (p *ExportTracesToDatasetRequest) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*SpanID, 0, size) + values := make([]SpanID, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field *int64 + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.SpanIds = _field + return nil +} +func (p *ExportTracesToDatasetRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field dataset.DatasetCategory + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = dataset.DatasetCategory(v) + } + p.Category = _field + return nil +} +func (p *ExportTracesToDatasetRequest) ReadField4(iprot thrift.TProtocol) error { + _field := NewDatasetConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.Config = _field + return nil +} +func (p *ExportTracesToDatasetRequest) ReadField5(iprot thrift.TProtocol) error { + + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = &v + _field = v } - p.DatasetID = _field + p.StartTime = _field return nil } -func (p *DatasetConfig) ReadField3(iprot thrift.TProtocol) error { +func (p *ExportTracesToDatasetRequest) ReadField6(iprot thrift.TProtocol) error { - var _field *string + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.EndTime = _field + return nil +} +func (p *ExportTracesToDatasetRequest) ReadField7(iprot thrift.TProtocol) error { + + var _field *common.PlatformType if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.DatasetName = _field + p.PlatformType = _field return nil } -func (p *DatasetConfig) ReadField4(iprot thrift.TProtocol) error { - _field := dataset0.NewDatasetSchema() +func (p *ExportTracesToDatasetRequest) ReadField8(iprot thrift.TProtocol) error { + + var _field dataset0.ExportType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.ExportType = _field + return nil +} +func (p *ExportTracesToDatasetRequest) ReadField9(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*dataset0.FieldMapping, 0, size) + values := make([]dataset0.FieldMapping, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.FieldMappings = _field + return nil +} +func (p *ExportTracesToDatasetRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err } - p.DatasetSchema = _field + p.Base = _field return nil } -func (p *DatasetConfig) Write(oprot thrift.TProtocol) (err error) { +func (p *ExportTracesToDatasetRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DatasetConfig"); err != nil { + if err = oprot.WriteStructBegin("ExportTracesToDatasetRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -12360,6 +12545,30 @@ func (p *DatasetConfig) Write(oprot thrift.TProtocol) (err error) { fieldId = 4 goto WriteFieldError } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -12378,11 +12587,11 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *DatasetConfig) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("is_new_dataset", thrift.BOOL, 1); err != nil { +func (p *ExportTracesToDatasetRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteBool(p.IsNewDataset); err != nil { + if err := oprot.WriteI64(p.WorkspaceID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -12394,17 +12603,23 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *DatasetConfig) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetDatasetID() { - if err = oprot.WriteFieldBegin("dataset_id", thrift.I64, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.DatasetID); err != nil { +func (p *ExportTracesToDatasetRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("span_ids", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.SpanIds)); err != nil { + return err + } + for _, v := range p.SpanIds { + if err := v.Write(oprot); err != nil { return err } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -12412,17 +12627,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *DatasetConfig) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetDatasetName() { - if err = oprot.WriteFieldBegin("dataset_name", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.DatasetName); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *ExportTracesToDatasetRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("category", thrift.I32, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(int32(p.Category)); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -12430,17 +12643,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *DatasetConfig) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetDatasetSchema() { - if err = oprot.WriteFieldBegin("dataset_schema", thrift.STRUCT, 4); err != nil { - goto WriteFieldBeginError - } - if err := p.DatasetSchema.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *ExportTracesToDatasetRequest) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("config", thrift.STRUCT, 4); err != nil { + goto WriteFieldBeginError + } + if err := p.Config.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -12448,244 +12659,294 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } - -func (p *DatasetConfig) String() string { - if p == nil { - return "" +func (p *ExportTracesToDatasetRequest) writeField5(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("start_time", thrift.I64, 5); err != nil { + goto WriteFieldBeginError } - return fmt.Sprintf("DatasetConfig(%+v)", *p) - -} - -func (p *DatasetConfig) DeepEqual(ano *DatasetConfig) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false + if err := oprot.WriteI64(p.StartTime); err != nil { + return err } - if !p.Field1DeepEqual(ano.IsNewDataset) { - return false + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } - if !p.Field2DeepEqual(ano.DatasetID) { - return false + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ExportTracesToDatasetRequest) writeField6(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("end_time", thrift.I64, 6); err != nil { + goto WriteFieldBeginError } - if !p.Field3DeepEqual(ano.DatasetName) { - return false + if err := oprot.WriteI64(p.EndTime); err != nil { + return err } - if !p.Field4DeepEqual(ano.DatasetSchema) { - return false + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } - return true + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *ExportTracesToDatasetRequest) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetPlatformType() { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PlatformType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *ExportTracesToDatasetRequest) writeField8(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("export_type", thrift.STRING, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.ExportType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *ExportTracesToDatasetRequest) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetFieldMappings() { + if err = oprot.WriteFieldBegin("field_mappings", thrift.LIST, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldMappings)); err != nil { + return err + } + for _, v := range p.FieldMappings { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} +func (p *ExportTracesToDatasetRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *DatasetConfig) Field1DeepEqual(src bool) bool { - - if p.IsNewDataset != src { - return false +func (p *ExportTracesToDatasetRequest) String() string { + if p == nil { + return "" } - return true + return fmt.Sprintf("ExportTracesToDatasetRequest(%+v)", *p) + } -func (p *DatasetConfig) Field2DeepEqual(src *int64) bool { - if p.DatasetID == src { +func (p *ExportTracesToDatasetRequest) DeepEqual(ano *ExportTracesToDatasetRequest) bool { + if p == ano { return true - } else if p.DatasetID == nil || src == nil { + } else if p == nil || ano == nil { return false } - if *p.DatasetID != *src { + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.SpanIds) { + return false + } + if !p.Field3DeepEqual(ano.Category) { + return false + } + if !p.Field4DeepEqual(ano.Config) { + return false + } + if !p.Field5DeepEqual(ano.StartTime) { + return false + } + if !p.Field6DeepEqual(ano.EndTime) { + return false + } + if !p.Field7DeepEqual(ano.PlatformType) { + return false + } + if !p.Field8DeepEqual(ano.ExportType) { + return false + } + if !p.Field9DeepEqual(ano.FieldMappings) { + return false + } + if !p.Field255DeepEqual(ano.Base) { return false } return true } -func (p *DatasetConfig) Field3DeepEqual(src *string) bool { - if p.DatasetName == src { - return true - } else if p.DatasetName == nil || src == nil { +func (p *ExportTracesToDatasetRequest) Field1DeepEqual(src int64) bool { + + if p.WorkspaceID != src { return false } - if strings.Compare(*p.DatasetName, *src) != 0 { + return true +} +func (p *ExportTracesToDatasetRequest) Field2DeepEqual(src []*SpanID) bool { + + if len(p.SpanIds) != len(src) { return false } + for i, v := range p.SpanIds { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } return true } -func (p *DatasetConfig) Field4DeepEqual(src *dataset0.DatasetSchema) bool { +func (p *ExportTracesToDatasetRequest) Field3DeepEqual(src dataset.DatasetCategory) bool { - if !p.DatasetSchema.DeepEqual(src) { + if p.Category != src { return false } return true } +func (p *ExportTracesToDatasetRequest) Field4DeepEqual(src *DatasetConfig) bool { -type ExportTracesToDatasetResponse struct { - // 成功导入的数量 - SuccessCount *int32 `thrift:"success_count,1,optional" frugal:"1,optional,i32" form:"success_count" json:"success_count,omitempty" query:"success_count"` - // 错误信息 - Errors []*dataset.ItemErrorGroup `thrift:"errors,2,optional" frugal:"2,optional,list" form:"errors" json:"errors,omitempty" query:"errors"` - // 数据集id - DatasetID *int64 `thrift:"dataset_id,3,optional" frugal:"3,optional,i64" json:"dataset_id" form:"dataset_id" query:"dataset_id"` - // 数据集名称 - DatasetName *string `thrift:"dataset_name,4,optional" frugal:"4,optional,string" form:"dataset_name" json:"dataset_name,omitempty" query:"dataset_name"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"-" json:"-" query:"-"` - // 仅供http请求使用; 内部RPC不予使用,统一通过BaseResp获取Code和Msg - Code *int32 `thrift:"Code,256,optional" frugal:"256,optional,i32" form:"Code" json:"Code,omitempty" query:"Code"` - // 仅供http请求使用; 内部RPC不予使用,统一通过BaseResp获取Code和Msg - Msg *string `thrift:"Msg,257,optional" frugal:"257,optional,string" form:"Msg" json:"Msg,omitempty" query:"Msg"` + if !p.Config.DeepEqual(src) { + return false + } + return true } +func (p *ExportTracesToDatasetRequest) Field5DeepEqual(src int64) bool { -func NewExportTracesToDatasetResponse() *ExportTracesToDatasetResponse { - return &ExportTracesToDatasetResponse{} + if p.StartTime != src { + return false + } + return true } +func (p *ExportTracesToDatasetRequest) Field6DeepEqual(src int64) bool { -func (p *ExportTracesToDatasetResponse) InitDefault() { + if p.EndTime != src { + return false + } + return true } +func (p *ExportTracesToDatasetRequest) Field7DeepEqual(src *common.PlatformType) bool { -var ExportTracesToDatasetResponse_SuccessCount_DEFAULT int32 - -func (p *ExportTracesToDatasetResponse) GetSuccessCount() (v int32) { - if p == nil { - return + if p.PlatformType == src { + return true + } else if p.PlatformType == nil || src == nil { + return false } - if !p.IsSetSuccessCount() { - return ExportTracesToDatasetResponse_SuccessCount_DEFAULT + if strings.Compare(*p.PlatformType, *src) != 0 { + return false } - return *p.SuccessCount + return true } +func (p *ExportTracesToDatasetRequest) Field8DeepEqual(src dataset0.ExportType) bool { -var ExportTracesToDatasetResponse_Errors_DEFAULT []*dataset.ItemErrorGroup - -func (p *ExportTracesToDatasetResponse) GetErrors() (v []*dataset.ItemErrorGroup) { - if p == nil { - return - } - if !p.IsSetErrors() { - return ExportTracesToDatasetResponse_Errors_DEFAULT + if strings.Compare(p.ExportType, src) != 0 { + return false } - return p.Errors + return true } +func (p *ExportTracesToDatasetRequest) Field9DeepEqual(src []*dataset0.FieldMapping) bool { -var ExportTracesToDatasetResponse_DatasetID_DEFAULT int64 - -func (p *ExportTracesToDatasetResponse) GetDatasetID() (v int64) { - if p == nil { - return + if len(p.FieldMappings) != len(src) { + return false } - if !p.IsSetDatasetID() { - return ExportTracesToDatasetResponse_DatasetID_DEFAULT + for i, v := range p.FieldMappings { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } } - return *p.DatasetID + return true } +func (p *ExportTracesToDatasetRequest) Field255DeepEqual(src *base.Base) bool { -var ExportTracesToDatasetResponse_DatasetName_DEFAULT string - -func (p *ExportTracesToDatasetResponse) GetDatasetName() (v string) { - if p == nil { - return - } - if !p.IsSetDatasetName() { - return ExportTracesToDatasetResponse_DatasetName_DEFAULT + if !p.Base.DeepEqual(src) { + return false } - return *p.DatasetName + return true } -var ExportTracesToDatasetResponse_BaseResp_DEFAULT *base.BaseResp - -func (p *ExportTracesToDatasetResponse) GetBaseResp() (v *base.BaseResp) { - if p == nil { - return - } - if !p.IsSetBaseResp() { - return ExportTracesToDatasetResponse_BaseResp_DEFAULT - } - return p.BaseResp +type SpanID struct { + TraceID string `thrift:"trace_id,1,required" frugal:"1,required,string" form:"trace_id,required" json:"trace_id,required" query:"trace_id,required"` + SpanID string `thrift:"span_id,2,required" frugal:"2,required,string" form:"span_id,required" json:"span_id,required" query:"span_id,required"` } -var ExportTracesToDatasetResponse_Code_DEFAULT int32 - -func (p *ExportTracesToDatasetResponse) GetCode() (v int32) { - if p == nil { - return - } - if !p.IsSetCode() { - return ExportTracesToDatasetResponse_Code_DEFAULT - } - return *p.Code -} - -var ExportTracesToDatasetResponse_Msg_DEFAULT string - -func (p *ExportTracesToDatasetResponse) GetMsg() (v string) { - if p == nil { - return - } - if !p.IsSetMsg() { - return ExportTracesToDatasetResponse_Msg_DEFAULT - } - return *p.Msg -} -func (p *ExportTracesToDatasetResponse) SetSuccessCount(val *int32) { - p.SuccessCount = val -} -func (p *ExportTracesToDatasetResponse) SetErrors(val []*dataset.ItemErrorGroup) { - p.Errors = val -} -func (p *ExportTracesToDatasetResponse) SetDatasetID(val *int64) { - p.DatasetID = val -} -func (p *ExportTracesToDatasetResponse) SetDatasetName(val *string) { - p.DatasetName = val -} -func (p *ExportTracesToDatasetResponse) SetBaseResp(val *base.BaseResp) { - p.BaseResp = val -} -func (p *ExportTracesToDatasetResponse) SetCode(val *int32) { - p.Code = val -} -func (p *ExportTracesToDatasetResponse) SetMsg(val *string) { - p.Msg = val -} - -var fieldIDToName_ExportTracesToDatasetResponse = map[int16]string{ - 1: "success_count", - 2: "errors", - 3: "dataset_id", - 4: "dataset_name", - 255: "BaseResp", - 256: "Code", - 257: "Msg", -} - -func (p *ExportTracesToDatasetResponse) IsSetSuccessCount() bool { - return p.SuccessCount != nil +func NewSpanID() *SpanID { + return &SpanID{} } -func (p *ExportTracesToDatasetResponse) IsSetErrors() bool { - return p.Errors != nil +func (p *SpanID) InitDefault() { } -func (p *ExportTracesToDatasetResponse) IsSetDatasetID() bool { - return p.DatasetID != nil +func (p *SpanID) GetTraceID() (v string) { + if p != nil { + return p.TraceID + } + return } -func (p *ExportTracesToDatasetResponse) IsSetDatasetName() bool { - return p.DatasetName != nil +func (p *SpanID) GetSpanID() (v string) { + if p != nil { + return p.SpanID + } + return } - -func (p *ExportTracesToDatasetResponse) IsSetBaseResp() bool { - return p.BaseResp != nil +func (p *SpanID) SetTraceID(val string) { + p.TraceID = val } - -func (p *ExportTracesToDatasetResponse) IsSetCode() bool { - return p.Code != nil +func (p *SpanID) SetSpanID(val string) { + p.SpanID = val } -func (p *ExportTracesToDatasetResponse) IsSetMsg() bool { - return p.Msg != nil +var fieldIDToName_SpanID = map[int16]string{ + 1: "trace_id", + 2: "span_id", } -func (p *ExportTracesToDatasetResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *SpanID) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetTraceID bool = false + var issetSpanID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -12702,58 +12963,20 @@ func (p *ExportTracesToDatasetResponse) Read(iprot thrift.TProtocol) (err error) switch fieldId { case 1: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } + issetTraceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.LIST { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.I64 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 255: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField255(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 256: - if fieldTypeId == thrift.I32 { - if err = p.ReadField256(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 257: if fieldTypeId == thrift.STRING { - if err = p.ReadField257(iprot); err != nil { + if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } + issetSpanID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -12770,13 +12993,22 @@ func (p *ExportTracesToDatasetResponse) Read(iprot thrift.TProtocol) (err error) goto ReadStructEndError } + if !issetTraceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetSpanID { + fieldId = 2 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExportTracesToDatasetResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SpanID[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -12784,98 +13016,36 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_SpanID[fieldId])) } -func (p *ExportTracesToDatasetResponse) ReadField1(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.SuccessCount = _field - return nil -} -func (p *ExportTracesToDatasetResponse) ReadField2(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*dataset.ItemErrorGroup, 0, size) - values := make([]dataset.ItemErrorGroup, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Errors = _field - return nil -} -func (p *ExportTracesToDatasetResponse) ReadField3(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.DatasetID = _field - return nil -} -func (p *ExportTracesToDatasetResponse) ReadField4(iprot thrift.TProtocol) error { +func (p *SpanID) ReadField1(iprot thrift.TProtocol) error { - var _field *string + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - _field = &v - } - p.DatasetName = _field - return nil -} -func (p *ExportTracesToDatasetResponse) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBaseResp() - if err := _field.Read(iprot); err != nil { - return err - } - p.BaseResp = _field - return nil -} -func (p *ExportTracesToDatasetResponse) ReadField256(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v + _field = v } - p.Code = _field + p.TraceID = _field return nil } -func (p *ExportTracesToDatasetResponse) ReadField257(iprot thrift.TProtocol) error { +func (p *SpanID) ReadField2(iprot thrift.TProtocol) error { - var _field *string + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - _field = &v + _field = v } - p.Msg = _field + p.SpanID = _field return nil } -func (p *ExportTracesToDatasetResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *SpanID) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExportTracesToDatasetResponse"); err != nil { + if err = oprot.WriteStructBegin("SpanID"); err != nil { goto WriteStructBeginError } if p != nil { @@ -12887,26 +13057,6 @@ func (p *ExportTracesToDatasetResponse) Write(oprot thrift.TProtocol) (err error fieldId = 2 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 - goto WriteFieldError - } - if err = p.writeField256(oprot); err != nil { - fieldId = 256 - goto WriteFieldError - } - if err = p.writeField257(oprot); err != nil { - fieldId = 257 - goto WriteFieldError - } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -12925,440 +13075,173 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExportTracesToDatasetResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetSuccessCount() { - if err = oprot.WriteFieldBegin("success_count", thrift.I32, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.SuccessCount); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ExportTracesToDatasetResponse) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetErrors() { - if err = oprot.WriteFieldBegin("errors", thrift.LIST, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Errors)); err != nil { - return err - } - for _, v := range p.Errors { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *SpanID) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ExportTracesToDatasetResponse) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetDatasetID() { - if err = oprot.WriteFieldBegin("dataset_id", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.DatasetID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } + if err := oprot.WriteString(p.TraceID); err != nil { + return err } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ExportTracesToDatasetResponse) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetDatasetName() { - if err = oprot.WriteFieldBegin("dataset_name", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.DatasetName); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExportTracesToDatasetResponse) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBaseResp() { - if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.BaseResp.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *SpanID) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("span_id", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) -} -func (p *ExportTracesToDatasetResponse) writeField256(oprot thrift.TProtocol) (err error) { - if p.IsSetCode() { - if err = oprot.WriteFieldBegin("Code", thrift.I32, 256); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.Code); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } + if err := oprot.WriteString(p.SpanID); err != nil { + return err } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 256 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 256 end error: ", p), err) -} -func (p *ExportTracesToDatasetResponse) writeField257(oprot thrift.TProtocol) (err error) { - if p.IsSetMsg() { - if err = oprot.WriteFieldBegin("Msg", thrift.STRING, 257); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Msg); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 257 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 257 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExportTracesToDatasetResponse) String() string { +func (p *SpanID) String() string { if p == nil { return "" } - return fmt.Sprintf("ExportTracesToDatasetResponse(%+v)", *p) + return fmt.Sprintf("SpanID(%+v)", *p) } -func (p *ExportTracesToDatasetResponse) DeepEqual(ano *ExportTracesToDatasetResponse) bool { +func (p *SpanID) DeepEqual(ano *SpanID) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.SuccessCount) { - return false - } - if !p.Field2DeepEqual(ano.Errors) { - return false - } - if !p.Field3DeepEqual(ano.DatasetID) { - return false - } - if !p.Field4DeepEqual(ano.DatasetName) { - return false - } - if !p.Field255DeepEqual(ano.BaseResp) { - return false - } - if !p.Field256DeepEqual(ano.Code) { + if !p.Field1DeepEqual(ano.TraceID) { return false } - if !p.Field257DeepEqual(ano.Msg) { + if !p.Field2DeepEqual(ano.SpanID) { return false } return true } -func (p *ExportTracesToDatasetResponse) Field1DeepEqual(src *int32) bool { +func (p *SpanID) Field1DeepEqual(src string) bool { - if p.SuccessCount == src { - return true - } else if p.SuccessCount == nil || src == nil { - return false - } - if *p.SuccessCount != *src { + if strings.Compare(p.TraceID, src) != 0 { return false } return true } -func (p *ExportTracesToDatasetResponse) Field2DeepEqual(src []*dataset.ItemErrorGroup) bool { +func (p *SpanID) Field2DeepEqual(src string) bool { - if len(p.Errors) != len(src) { + if strings.Compare(p.SpanID, src) != 0 { return false } - for i, v := range p.Errors { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } return true } -func (p *ExportTracesToDatasetResponse) Field3DeepEqual(src *int64) bool { - if p.DatasetID == src { - return true - } else if p.DatasetID == nil || src == nil { - return false - } - if *p.DatasetID != *src { - return false - } - return true +type DatasetConfig struct { + // 是否是新增数据集 + IsNewDataset bool `thrift:"is_new_dataset,1,required" frugal:"1,required,bool" form:"is_new_dataset,required" json:"is_new_dataset,required" query:"is_new_dataset,required"` + // 数据集id,新增数据集时可为空 + DatasetID *int64 `thrift:"dataset_id,2,optional" frugal:"2,optional,i64" json:"dataset_id" form:"dataset_id" query:"dataset_id"` + // 数据集名称,选择已有数据集时可为空 + DatasetName *string `thrift:"dataset_name,3,optional" frugal:"3,optional,string" form:"dataset_name" json:"dataset_name,omitempty" query:"dataset_name"` + // 数据集列数据schema + DatasetSchema *dataset0.DatasetSchema `thrift:"dataset_schema,4,optional" frugal:"4,optional,dataset.DatasetSchema" form:"dataset_schema" json:"dataset_schema,omitempty" query:"dataset_schema"` } -func (p *ExportTracesToDatasetResponse) Field4DeepEqual(src *string) bool { - if p.DatasetName == src { - return true - } else if p.DatasetName == nil || src == nil { - return false - } - if strings.Compare(*p.DatasetName, *src) != 0 { - return false - } - return true +func NewDatasetConfig() *DatasetConfig { + return &DatasetConfig{} } -func (p *ExportTracesToDatasetResponse) Field255DeepEqual(src *base.BaseResp) bool { - if !p.BaseResp.DeepEqual(src) { - return false - } - return true +func (p *DatasetConfig) InitDefault() { } -func (p *ExportTracesToDatasetResponse) Field256DeepEqual(src *int32) bool { - if p.Code == src { - return true - } else if p.Code == nil || src == nil { - return false - } - if *p.Code != *src { - return false +func (p *DatasetConfig) GetIsNewDataset() (v bool) { + if p != nil { + return p.IsNewDataset } - return true + return } -func (p *ExportTracesToDatasetResponse) Field257DeepEqual(src *string) bool { - if p.Msg == src { - return true - } else if p.Msg == nil || src == nil { - return false +var DatasetConfig_DatasetID_DEFAULT int64 + +func (p *DatasetConfig) GetDatasetID() (v int64) { + if p == nil { + return } - if strings.Compare(*p.Msg, *src) != 0 { - return false + if !p.IsSetDatasetID() { + return DatasetConfig_DatasetID_DEFAULT } - return true + return *p.DatasetID } -type PreviewExportTracesToDatasetRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - SpanIds []*SpanID `thrift:"span_ids,2,required" frugal:"2,required,list" form:"span_ids,required" json:"span_ids,required"` - Category dataset.DatasetCategory `thrift:"category,3,required" frugal:"3,required,DatasetCategory" form:"category,required" json:"category,required"` - Config *DatasetConfig `thrift:"config,4,required" frugal:"4,required,DatasetConfig" form:"config,required" json:"config,required"` - StartTime int64 `thrift:"start_time,5,required" frugal:"5,required,i64" json:"start_time" form:"start_time,required" ` - EndTime int64 `thrift:"end_time,6,required" frugal:"6,required,i64" json:"end_time" form:"end_time,required" ` - PlatformType *common.PlatformType `thrift:"platform_type,7,optional" frugal:"7,optional,string" form:"platform_type" json:"platform_type,omitempty"` - // 导入方式,不填默认为追加 - ExportType dataset0.ExportType `thrift:"export_type,8,required" frugal:"8,required,string" form:"export_type,required" json:"export_type,required"` - FieldMappings []*dataset0.FieldMapping `thrift:"field_mappings,9,optional" frugal:"9,optional,list" form:"field_mappings" json:"field_mappings,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"-" json:"-" query:"-"` -} - -func NewPreviewExportTracesToDatasetRequest() *PreviewExportTracesToDatasetRequest { - return &PreviewExportTracesToDatasetRequest{} -} - -func (p *PreviewExportTracesToDatasetRequest) InitDefault() { -} - -func (p *PreviewExportTracesToDatasetRequest) GetWorkspaceID() (v int64) { - if p != nil { - return p.WorkspaceID - } - return -} - -func (p *PreviewExportTracesToDatasetRequest) GetSpanIds() (v []*SpanID) { - if p != nil { - return p.SpanIds - } - return -} - -func (p *PreviewExportTracesToDatasetRequest) GetCategory() (v dataset.DatasetCategory) { - if p != nil { - return p.Category - } - return -} - -var PreviewExportTracesToDatasetRequest_Config_DEFAULT *DatasetConfig - -func (p *PreviewExportTracesToDatasetRequest) GetConfig() (v *DatasetConfig) { - if p == nil { - return - } - if !p.IsSetConfig() { - return PreviewExportTracesToDatasetRequest_Config_DEFAULT - } - return p.Config -} - -func (p *PreviewExportTracesToDatasetRequest) GetStartTime() (v int64) { - if p != nil { - return p.StartTime - } - return -} - -func (p *PreviewExportTracesToDatasetRequest) GetEndTime() (v int64) { - if p != nil { - return p.EndTime - } - return -} - -var PreviewExportTracesToDatasetRequest_PlatformType_DEFAULT common.PlatformType - -func (p *PreviewExportTracesToDatasetRequest) GetPlatformType() (v common.PlatformType) { - if p == nil { - return - } - if !p.IsSetPlatformType() { - return PreviewExportTracesToDatasetRequest_PlatformType_DEFAULT - } - return *p.PlatformType -} - -func (p *PreviewExportTracesToDatasetRequest) GetExportType() (v dataset0.ExportType) { - if p != nil { - return p.ExportType - } - return -} - -var PreviewExportTracesToDatasetRequest_FieldMappings_DEFAULT []*dataset0.FieldMapping +var DatasetConfig_DatasetName_DEFAULT string -func (p *PreviewExportTracesToDatasetRequest) GetFieldMappings() (v []*dataset0.FieldMapping) { +func (p *DatasetConfig) GetDatasetName() (v string) { if p == nil { return } - if !p.IsSetFieldMappings() { - return PreviewExportTracesToDatasetRequest_FieldMappings_DEFAULT + if !p.IsSetDatasetName() { + return DatasetConfig_DatasetName_DEFAULT } - return p.FieldMappings + return *p.DatasetName } -var PreviewExportTracesToDatasetRequest_Base_DEFAULT *base.Base +var DatasetConfig_DatasetSchema_DEFAULT *dataset0.DatasetSchema -func (p *PreviewExportTracesToDatasetRequest) GetBase() (v *base.Base) { +func (p *DatasetConfig) GetDatasetSchema() (v *dataset0.DatasetSchema) { if p == nil { return } - if !p.IsSetBase() { - return PreviewExportTracesToDatasetRequest_Base_DEFAULT + if !p.IsSetDatasetSchema() { + return DatasetConfig_DatasetSchema_DEFAULT } - return p.Base -} -func (p *PreviewExportTracesToDatasetRequest) SetWorkspaceID(val int64) { - p.WorkspaceID = val -} -func (p *PreviewExportTracesToDatasetRequest) SetSpanIds(val []*SpanID) { - p.SpanIds = val -} -func (p *PreviewExportTracesToDatasetRequest) SetCategory(val dataset.DatasetCategory) { - p.Category = val -} -func (p *PreviewExportTracesToDatasetRequest) SetConfig(val *DatasetConfig) { - p.Config = val -} -func (p *PreviewExportTracesToDatasetRequest) SetStartTime(val int64) { - p.StartTime = val -} -func (p *PreviewExportTracesToDatasetRequest) SetEndTime(val int64) { - p.EndTime = val -} -func (p *PreviewExportTracesToDatasetRequest) SetPlatformType(val *common.PlatformType) { - p.PlatformType = val + return p.DatasetSchema } -func (p *PreviewExportTracesToDatasetRequest) SetExportType(val dataset0.ExportType) { - p.ExportType = val +func (p *DatasetConfig) SetIsNewDataset(val bool) { + p.IsNewDataset = val } -func (p *PreviewExportTracesToDatasetRequest) SetFieldMappings(val []*dataset0.FieldMapping) { - p.FieldMappings = val +func (p *DatasetConfig) SetDatasetID(val *int64) { + p.DatasetID = val } -func (p *PreviewExportTracesToDatasetRequest) SetBase(val *base.Base) { - p.Base = val +func (p *DatasetConfig) SetDatasetName(val *string) { + p.DatasetName = val } - -var fieldIDToName_PreviewExportTracesToDatasetRequest = map[int16]string{ - 1: "workspace_id", - 2: "span_ids", - 3: "category", - 4: "config", - 5: "start_time", - 6: "end_time", - 7: "platform_type", - 8: "export_type", - 9: "field_mappings", - 255: "Base", +func (p *DatasetConfig) SetDatasetSchema(val *dataset0.DatasetSchema) { + p.DatasetSchema = val } -func (p *PreviewExportTracesToDatasetRequest) IsSetConfig() bool { - return p.Config != nil +var fieldIDToName_DatasetConfig = map[int16]string{ + 1: "is_new_dataset", + 2: "dataset_id", + 3: "dataset_name", + 4: "dataset_schema", } -func (p *PreviewExportTracesToDatasetRequest) IsSetPlatformType() bool { - return p.PlatformType != nil +func (p *DatasetConfig) IsSetDatasetID() bool { + return p.DatasetID != nil } -func (p *PreviewExportTracesToDatasetRequest) IsSetFieldMappings() bool { - return p.FieldMappings != nil +func (p *DatasetConfig) IsSetDatasetName() bool { + return p.DatasetName != nil } -func (p *PreviewExportTracesToDatasetRequest) IsSetBase() bool { - return p.Base != nil +func (p *DatasetConfig) IsSetDatasetSchema() bool { + return p.DatasetSchema != nil } -func (p *PreviewExportTracesToDatasetRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *DatasetConfig) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetWorkspaceID bool = false - var issetSpanIds bool = false - var issetCategory bool = false - var issetConfig bool = false - var issetStartTime bool = false - var issetEndTime bool = false - var issetExportType bool = false + var issetIsNewDataset bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -13375,29 +13258,27 @@ func (p *PreviewExportTracesToDatasetRequest) Read(iprot thrift.TProtocol) (err switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.BOOL { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetWorkspaceID = true + issetIsNewDataset = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.I64 { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetSpanIds = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 3: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } - issetCategory = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -13406,58 +13287,6 @@ func (p *PreviewExportTracesToDatasetRequest) Read(iprot thrift.TProtocol) (err if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } - issetConfig = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.I64 { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - issetStartTime = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.I64 { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - issetEndTime = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.STRING { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 8: - if fieldTypeId == thrift.STRING { - if err = p.ReadField8(iprot); err != nil { - goto ReadFieldError - } - issetExportType = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 9: - if fieldTypeId == thrift.LIST { - if err = p.ReadField9(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 255: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField255(iprot); err != nil { - goto ReadFieldError - } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -13474,190 +13303,73 @@ func (p *PreviewExportTracesToDatasetRequest) Read(iprot thrift.TProtocol) (err goto ReadStructEndError } - if !issetWorkspaceID { + if !issetIsNewDataset { fieldId = 1 goto RequiredFieldNotSetError } - - if !issetSpanIds { - fieldId = 2 - goto RequiredFieldNotSetError - } - - if !issetCategory { - fieldId = 3 - goto RequiredFieldNotSetError - } - - if !issetConfig { - fieldId = 4 - goto RequiredFieldNotSetError - } - - if !issetStartTime { - fieldId = 5 - goto RequiredFieldNotSetError - } - - if !issetEndTime { - fieldId = 6 - goto RequiredFieldNotSetError - } - - if !issetExportType { - fieldId = 8 - goto RequiredFieldNotSetError - } - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PreviewExportTracesToDatasetRequest[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DatasetConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_PreviewExportTracesToDatasetRequest[fieldId])) -} - -func (p *PreviewExportTracesToDatasetRequest) ReadField1(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.WorkspaceID = _field - return nil -} -func (p *PreviewExportTracesToDatasetRequest) ReadField2(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*SpanID, 0, size) - values := make([]SpanID, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.SpanIds = _field - return nil + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_DatasetConfig[fieldId])) } -func (p *PreviewExportTracesToDatasetRequest) ReadField3(iprot thrift.TProtocol) error { - var _field dataset.DatasetCategory - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = dataset.DatasetCategory(v) - } - p.Category = _field - return nil -} -func (p *PreviewExportTracesToDatasetRequest) ReadField4(iprot thrift.TProtocol) error { - _field := NewDatasetConfig() - if err := _field.Read(iprot); err != nil { - return err - } - p.Config = _field - return nil -} -func (p *PreviewExportTracesToDatasetRequest) ReadField5(iprot thrift.TProtocol) error { +func (p *DatasetConfig) ReadField1(iprot thrift.TProtocol) error { - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + var _field bool + if v, err := iprot.ReadBool(); err != nil { return err } else { _field = v } - p.StartTime = _field + p.IsNewDataset = _field return nil } -func (p *PreviewExportTracesToDatasetRequest) ReadField6(iprot thrift.TProtocol) error { +func (p *DatasetConfig) ReadField2(iprot thrift.TProtocol) error { - var _field int64 + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err - } else { - _field = v - } - p.EndTime = _field - return nil -} -func (p *PreviewExportTracesToDatasetRequest) ReadField7(iprot thrift.TProtocol) error { - - var _field *common.PlatformType - if v, err := iprot.ReadString(); err != nil { - return err } else { _field = &v } - p.PlatformType = _field + p.DatasetID = _field return nil } -func (p *PreviewExportTracesToDatasetRequest) ReadField8(iprot thrift.TProtocol) error { +func (p *DatasetConfig) ReadField3(iprot thrift.TProtocol) error { - var _field dataset0.ExportType + var _field *string if v, err := iprot.ReadString(); err != nil { return err } else { - _field = v - } - p.ExportType = _field - return nil -} -func (p *PreviewExportTracesToDatasetRequest) ReadField9(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*dataset0.FieldMapping, 0, size) - values := make([]dataset0.FieldMapping, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err + _field = &v } - p.FieldMappings = _field + p.DatasetName = _field return nil } -func (p *PreviewExportTracesToDatasetRequest) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBase() +func (p *DatasetConfig) ReadField4(iprot thrift.TProtocol) error { + _field := dataset0.NewDatasetSchema() if err := _field.Read(iprot); err != nil { return err } - p.Base = _field + p.DatasetSchema = _field return nil } -func (p *PreviewExportTracesToDatasetRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *DatasetConfig) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("PreviewExportTracesToDatasetRequest"); err != nil { + if err = oprot.WriteStructBegin("DatasetConfig"); err != nil { goto WriteStructBeginError } if p != nil { @@ -13677,30 +13389,6 @@ func (p *PreviewExportTracesToDatasetRequest) Write(oprot thrift.TProtocol) (err fieldId = 4 goto WriteFieldError } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } - if err = p.writeField9(oprot); err != nil { - fieldId = 9 - goto WriteFieldError - } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 - goto WriteFieldError - } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -13719,11 +13407,11 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PreviewExportTracesToDatasetRequest) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { +func (p *DatasetConfig) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("is_new_dataset", thrift.BOOL, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.WorkspaceID); err != nil { + if err := oprot.WriteBool(p.IsNewDataset); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -13735,23 +13423,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PreviewExportTracesToDatasetRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("span_ids", thrift.LIST, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.SpanIds)); err != nil { - return err - } - for _, v := range p.SpanIds { - if err := v.Write(oprot); err != nil { +func (p *DatasetConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetDatasetID() { + if err = oprot.WriteFieldBegin("dataset_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.DatasetID); err != nil { return err } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -13759,15 +13441,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *PreviewExportTracesToDatasetRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("category", thrift.I32, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(int32(p.Category)); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *DatasetConfig) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetDatasetName() { + if err = oprot.WriteFieldBegin("dataset_name", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.DatasetName); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -13775,15 +13459,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *PreviewExportTracesToDatasetRequest) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("config", thrift.STRUCT, 4); err != nil { - goto WriteFieldBeginError - } - if err := p.Config.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *DatasetConfig) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetDatasetSchema() { + if err = oprot.WriteFieldBegin("dataset_schema", thrift.STRUCT, 4); err != nil { + goto WriteFieldBeginError + } + if err := p.DatasetSchema.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -13791,375 +13477,242 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *PreviewExportTracesToDatasetRequest) writeField5(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("start_time", thrift.I64, 5); err != nil { - goto WriteFieldBeginError + +func (p *DatasetConfig) String() string { + if p == nil { + return "" } - if err := oprot.WriteI64(p.StartTime); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *PreviewExportTracesToDatasetRequest) writeField6(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("end_time", thrift.I64, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.EndTime); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *PreviewExportTracesToDatasetRequest) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 7); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PlatformType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} -func (p *PreviewExportTracesToDatasetRequest) writeField8(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("export_type", thrift.STRING, 8); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.ExportType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) -} -func (p *PreviewExportTracesToDatasetRequest) writeField9(oprot thrift.TProtocol) (err error) { - if p.IsSetFieldMappings() { - if err = oprot.WriteFieldBegin("field_mappings", thrift.LIST, 9); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldMappings)); err != nil { - return err - } - for _, v := range p.FieldMappings { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) -} -func (p *PreviewExportTracesToDatasetRequest) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBase() { - if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.Base.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) -} - -func (p *PreviewExportTracesToDatasetRequest) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("PreviewExportTracesToDatasetRequest(%+v)", *p) + return fmt.Sprintf("DatasetConfig(%+v)", *p) } -func (p *PreviewExportTracesToDatasetRequest) DeepEqual(ano *PreviewExportTracesToDatasetRequest) bool { +func (p *DatasetConfig) DeepEqual(ano *DatasetConfig) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field2DeepEqual(ano.SpanIds) { - return false - } - if !p.Field3DeepEqual(ano.Category) { - return false - } - if !p.Field4DeepEqual(ano.Config) { - return false - } - if !p.Field5DeepEqual(ano.StartTime) { - return false - } - if !p.Field6DeepEqual(ano.EndTime) { - return false - } - if !p.Field7DeepEqual(ano.PlatformType) { - return false - } - if !p.Field8DeepEqual(ano.ExportType) { - return false - } - if !p.Field9DeepEqual(ano.FieldMappings) { - return false - } - if !p.Field255DeepEqual(ano.Base) { - return false - } - return true -} - -func (p *PreviewExportTracesToDatasetRequest) Field1DeepEqual(src int64) bool { - - if p.WorkspaceID != src { + if !p.Field1DeepEqual(ano.IsNewDataset) { return false } - return true -} -func (p *PreviewExportTracesToDatasetRequest) Field2DeepEqual(src []*SpanID) bool { - - if len(p.SpanIds) != len(src) { + if !p.Field2DeepEqual(ano.DatasetID) { return false } - for i, v := range p.SpanIds { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *PreviewExportTracesToDatasetRequest) Field3DeepEqual(src dataset.DatasetCategory) bool { - - if p.Category != src { + if !p.Field3DeepEqual(ano.DatasetName) { return false } - return true -} -func (p *PreviewExportTracesToDatasetRequest) Field4DeepEqual(src *DatasetConfig) bool { - - if !p.Config.DeepEqual(src) { + if !p.Field4DeepEqual(ano.DatasetSchema) { return false } return true } -func (p *PreviewExportTracesToDatasetRequest) Field5DeepEqual(src int64) bool { - if p.StartTime != src { - return false - } - return true -} -func (p *PreviewExportTracesToDatasetRequest) Field6DeepEqual(src int64) bool { +func (p *DatasetConfig) Field1DeepEqual(src bool) bool { - if p.EndTime != src { + if p.IsNewDataset != src { return false } return true } -func (p *PreviewExportTracesToDatasetRequest) Field7DeepEqual(src *common.PlatformType) bool { +func (p *DatasetConfig) Field2DeepEqual(src *int64) bool { - if p.PlatformType == src { + if p.DatasetID == src { return true - } else if p.PlatformType == nil || src == nil { + } else if p.DatasetID == nil || src == nil { return false } - if strings.Compare(*p.PlatformType, *src) != 0 { + if *p.DatasetID != *src { return false } return true } -func (p *PreviewExportTracesToDatasetRequest) Field8DeepEqual(src dataset0.ExportType) bool { +func (p *DatasetConfig) Field3DeepEqual(src *string) bool { - if strings.Compare(p.ExportType, src) != 0 { + if p.DatasetName == src { + return true + } else if p.DatasetName == nil || src == nil { return false } - return true -} -func (p *PreviewExportTracesToDatasetRequest) Field9DeepEqual(src []*dataset0.FieldMapping) bool { - - if len(p.FieldMappings) != len(src) { + if strings.Compare(*p.DatasetName, *src) != 0 { return false } - for i, v := range p.FieldMappings { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } return true } -func (p *PreviewExportTracesToDatasetRequest) Field255DeepEqual(src *base.Base) bool { +func (p *DatasetConfig) Field4DeepEqual(src *dataset0.DatasetSchema) bool { - if !p.Base.DeepEqual(src) { + if !p.DatasetSchema.DeepEqual(src) { return false } return true } -type PreviewExportTracesToDatasetResponse struct { - // 预览数据 - Items []*dataset0.Item `thrift:"items,1,optional" frugal:"1,optional,list" form:"items" json:"items,omitempty" query:"items"` - // 概要错误信息 - Errors []*dataset.ItemErrorGroup `thrift:"errors,2,optional" frugal:"2,optional,list" form:"errors" json:"errors,omitempty" query:"errors"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"-" json:"-" query:"-"` +type ExportTracesToDatasetResponse struct { + // 成功导入的数量 + SuccessCount *int32 `thrift:"success_count,1,optional" frugal:"1,optional,i32" form:"success_count" json:"success_count,omitempty" query:"success_count"` + // 错误信息 + Errors []*dataset.ItemErrorGroup `thrift:"errors,2,optional" frugal:"2,optional,list" form:"errors" json:"errors,omitempty" query:"errors"` + // 数据集id + DatasetID *int64 `thrift:"dataset_id,3,optional" frugal:"3,optional,i64" json:"dataset_id" form:"dataset_id" query:"dataset_id"` + // 数据集名称 + DatasetName *string `thrift:"dataset_name,4,optional" frugal:"4,optional,string" form:"dataset_name" json:"dataset_name,omitempty" query:"dataset_name"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"-" json:"-" query:"-"` // 仅供http请求使用; 内部RPC不予使用,统一通过BaseResp获取Code和Msg Code *int32 `thrift:"Code,256,optional" frugal:"256,optional,i32" form:"Code" json:"Code,omitempty" query:"Code"` // 仅供http请求使用; 内部RPC不予使用,统一通过BaseResp获取Code和Msg Msg *string `thrift:"Msg,257,optional" frugal:"257,optional,string" form:"Msg" json:"Msg,omitempty" query:"Msg"` } -func NewPreviewExportTracesToDatasetResponse() *PreviewExportTracesToDatasetResponse { - return &PreviewExportTracesToDatasetResponse{} +func NewExportTracesToDatasetResponse() *ExportTracesToDatasetResponse { + return &ExportTracesToDatasetResponse{} } -func (p *PreviewExportTracesToDatasetResponse) InitDefault() { +func (p *ExportTracesToDatasetResponse) InitDefault() { } -var PreviewExportTracesToDatasetResponse_Items_DEFAULT []*dataset0.Item +var ExportTracesToDatasetResponse_SuccessCount_DEFAULT int32 -func (p *PreviewExportTracesToDatasetResponse) GetItems() (v []*dataset0.Item) { +func (p *ExportTracesToDatasetResponse) GetSuccessCount() (v int32) { if p == nil { return } - if !p.IsSetItems() { - return PreviewExportTracesToDatasetResponse_Items_DEFAULT + if !p.IsSetSuccessCount() { + return ExportTracesToDatasetResponse_SuccessCount_DEFAULT } - return p.Items + return *p.SuccessCount } -var PreviewExportTracesToDatasetResponse_Errors_DEFAULT []*dataset.ItemErrorGroup +var ExportTracesToDatasetResponse_Errors_DEFAULT []*dataset.ItemErrorGroup -func (p *PreviewExportTracesToDatasetResponse) GetErrors() (v []*dataset.ItemErrorGroup) { +func (p *ExportTracesToDatasetResponse) GetErrors() (v []*dataset.ItemErrorGroup) { if p == nil { return } if !p.IsSetErrors() { - return PreviewExportTracesToDatasetResponse_Errors_DEFAULT + return ExportTracesToDatasetResponse_Errors_DEFAULT } return p.Errors } -var PreviewExportTracesToDatasetResponse_BaseResp_DEFAULT *base.BaseResp +var ExportTracesToDatasetResponse_DatasetID_DEFAULT int64 -func (p *PreviewExportTracesToDatasetResponse) GetBaseResp() (v *base.BaseResp) { +func (p *ExportTracesToDatasetResponse) GetDatasetID() (v int64) { + if p == nil { + return + } + if !p.IsSetDatasetID() { + return ExportTracesToDatasetResponse_DatasetID_DEFAULT + } + return *p.DatasetID +} + +var ExportTracesToDatasetResponse_DatasetName_DEFAULT string + +func (p *ExportTracesToDatasetResponse) GetDatasetName() (v string) { + if p == nil { + return + } + if !p.IsSetDatasetName() { + return ExportTracesToDatasetResponse_DatasetName_DEFAULT + } + return *p.DatasetName +} + +var ExportTracesToDatasetResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *ExportTracesToDatasetResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return PreviewExportTracesToDatasetResponse_BaseResp_DEFAULT + return ExportTracesToDatasetResponse_BaseResp_DEFAULT } return p.BaseResp } -var PreviewExportTracesToDatasetResponse_Code_DEFAULT int32 +var ExportTracesToDatasetResponse_Code_DEFAULT int32 -func (p *PreviewExportTracesToDatasetResponse) GetCode() (v int32) { +func (p *ExportTracesToDatasetResponse) GetCode() (v int32) { if p == nil { return } if !p.IsSetCode() { - return PreviewExportTracesToDatasetResponse_Code_DEFAULT + return ExportTracesToDatasetResponse_Code_DEFAULT } return *p.Code } -var PreviewExportTracesToDatasetResponse_Msg_DEFAULT string +var ExportTracesToDatasetResponse_Msg_DEFAULT string -func (p *PreviewExportTracesToDatasetResponse) GetMsg() (v string) { +func (p *ExportTracesToDatasetResponse) GetMsg() (v string) { if p == nil { return } if !p.IsSetMsg() { - return PreviewExportTracesToDatasetResponse_Msg_DEFAULT + return ExportTracesToDatasetResponse_Msg_DEFAULT } return *p.Msg } -func (p *PreviewExportTracesToDatasetResponse) SetItems(val []*dataset0.Item) { - p.Items = val +func (p *ExportTracesToDatasetResponse) SetSuccessCount(val *int32) { + p.SuccessCount = val } -func (p *PreviewExportTracesToDatasetResponse) SetErrors(val []*dataset.ItemErrorGroup) { +func (p *ExportTracesToDatasetResponse) SetErrors(val []*dataset.ItemErrorGroup) { p.Errors = val } -func (p *PreviewExportTracesToDatasetResponse) SetBaseResp(val *base.BaseResp) { +func (p *ExportTracesToDatasetResponse) SetDatasetID(val *int64) { + p.DatasetID = val +} +func (p *ExportTracesToDatasetResponse) SetDatasetName(val *string) { + p.DatasetName = val +} +func (p *ExportTracesToDatasetResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -func (p *PreviewExportTracesToDatasetResponse) SetCode(val *int32) { +func (p *ExportTracesToDatasetResponse) SetCode(val *int32) { p.Code = val } -func (p *PreviewExportTracesToDatasetResponse) SetMsg(val *string) { +func (p *ExportTracesToDatasetResponse) SetMsg(val *string) { p.Msg = val } -var fieldIDToName_PreviewExportTracesToDatasetResponse = map[int16]string{ - 1: "items", +var fieldIDToName_ExportTracesToDatasetResponse = map[int16]string{ + 1: "success_count", 2: "errors", + 3: "dataset_id", + 4: "dataset_name", 255: "BaseResp", 256: "Code", 257: "Msg", } -func (p *PreviewExportTracesToDatasetResponse) IsSetItems() bool { - return p.Items != nil +func (p *ExportTracesToDatasetResponse) IsSetSuccessCount() bool { + return p.SuccessCount != nil } -func (p *PreviewExportTracesToDatasetResponse) IsSetErrors() bool { +func (p *ExportTracesToDatasetResponse) IsSetErrors() bool { return p.Errors != nil } -func (p *PreviewExportTracesToDatasetResponse) IsSetBaseResp() bool { +func (p *ExportTracesToDatasetResponse) IsSetDatasetID() bool { + return p.DatasetID != nil +} + +func (p *ExportTracesToDatasetResponse) IsSetDatasetName() bool { + return p.DatasetName != nil +} + +func (p *ExportTracesToDatasetResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *PreviewExportTracesToDatasetResponse) IsSetCode() bool { +func (p *ExportTracesToDatasetResponse) IsSetCode() bool { return p.Code != nil } -func (p *PreviewExportTracesToDatasetResponse) IsSetMsg() bool { +func (p *ExportTracesToDatasetResponse) IsSetMsg() bool { return p.Msg != nil } -func (p *PreviewExportTracesToDatasetResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *ExportTracesToDatasetResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -14178,7 +13731,7 @@ func (p *PreviewExportTracesToDatasetResponse) Read(iprot thrift.TProtocol) (err switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.I32 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -14193,6 +13746,22 @@ func (p *PreviewExportTracesToDatasetResponse) Read(iprot thrift.TProtocol) (err } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.STRING { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -14236,7 +13805,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PreviewExportTracesToDatasetResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExportTracesToDatasetResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -14246,30 +13815,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PreviewExportTracesToDatasetResponse) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*dataset0.Item, 0, size) - values := make([]dataset0.Item, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } +func (p *ExportTracesToDatasetResponse) ReadField1(iprot thrift.TProtocol) error { - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err + } else { + _field = &v } - p.Items = _field + p.SuccessCount = _field return nil } -func (p *PreviewExportTracesToDatasetResponse) ReadField2(iprot thrift.TProtocol) error { +func (p *ExportTracesToDatasetResponse) ReadField2(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { return err @@ -14292,7 +13849,29 @@ func (p *PreviewExportTracesToDatasetResponse) ReadField2(iprot thrift.TProtocol p.Errors = _field return nil } -func (p *PreviewExportTracesToDatasetResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *ExportTracesToDatasetResponse) ReadField3(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.DatasetID = _field + return nil +} +func (p *ExportTracesToDatasetResponse) ReadField4(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.DatasetName = _field + return nil +} +func (p *ExportTracesToDatasetResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -14300,7 +13879,7 @@ func (p *PreviewExportTracesToDatasetResponse) ReadField255(iprot thrift.TProtoc p.BaseResp = _field return nil } -func (p *PreviewExportTracesToDatasetResponse) ReadField256(iprot thrift.TProtocol) error { +func (p *ExportTracesToDatasetResponse) ReadField256(iprot thrift.TProtocol) error { var _field *int32 if v, err := iprot.ReadI32(); err != nil { @@ -14311,7 +13890,7 @@ func (p *PreviewExportTracesToDatasetResponse) ReadField256(iprot thrift.TProtoc p.Code = _field return nil } -func (p *PreviewExportTracesToDatasetResponse) ReadField257(iprot thrift.TProtocol) error { +func (p *ExportTracesToDatasetResponse) ReadField257(iprot thrift.TProtocol) error { var _field *string if v, err := iprot.ReadString(); err != nil { @@ -14323,9 +13902,9 @@ func (p *PreviewExportTracesToDatasetResponse) ReadField257(iprot thrift.TProtoc return nil } -func (p *PreviewExportTracesToDatasetResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *ExportTracesToDatasetResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("PreviewExportTracesToDatasetResponse"); err != nil { + if err = oprot.WriteStructBegin("ExportTracesToDatasetResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -14337,6 +13916,14 @@ func (p *PreviewExportTracesToDatasetResponse) Write(oprot thrift.TProtocol) (er fieldId = 2 goto WriteFieldError } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -14367,20 +13954,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PreviewExportTracesToDatasetResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetItems() { - if err = oprot.WriteFieldBegin("items", thrift.LIST, 1); err != nil { +func (p *ExportTracesToDatasetResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccessCount() { + if err = oprot.WriteFieldBegin("success_count", thrift.I32, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Items)); err != nil { - return err - } - for _, v := range p.Items { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteI32(*p.SuccessCount); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -14393,7 +13972,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PreviewExportTracesToDatasetResponse) writeField2(oprot thrift.TProtocol) (err error) { +func (p *ExportTracesToDatasetResponse) writeField2(oprot thrift.TProtocol) (err error) { if p.IsSetErrors() { if err = oprot.WriteFieldBegin("errors", thrift.LIST, 2); err != nil { goto WriteFieldBeginError @@ -14419,7 +13998,43 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *PreviewExportTracesToDatasetResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ExportTracesToDatasetResponse) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetDatasetID() { + if err = oprot.WriteFieldBegin("dataset_id", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.DatasetID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *ExportTracesToDatasetResponse) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetDatasetName() { + if err = oprot.WriteFieldBegin("dataset_name", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.DatasetName); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ExportTracesToDatasetResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -14437,7 +14052,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *PreviewExportTracesToDatasetResponse) writeField256(oprot thrift.TProtocol) (err error) { +func (p *ExportTracesToDatasetResponse) writeField256(oprot thrift.TProtocol) (err error) { if p.IsSetCode() { if err = oprot.WriteFieldBegin("Code", thrift.I32, 256); err != nil { goto WriteFieldBeginError @@ -14455,7 +14070,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 256 end error: ", p), err) } -func (p *PreviewExportTracesToDatasetResponse) writeField257(oprot thrift.TProtocol) (err error) { +func (p *ExportTracesToDatasetResponse) writeField257(oprot thrift.TProtocol) (err error) { if p.IsSetMsg() { if err = oprot.WriteFieldBegin("Msg", thrift.STRING, 257); err != nil { goto WriteFieldBeginError @@ -14474,26 +14089,32 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 257 end error: ", p), err) } -func (p *PreviewExportTracesToDatasetResponse) String() string { +func (p *ExportTracesToDatasetResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("PreviewExportTracesToDatasetResponse(%+v)", *p) + return fmt.Sprintf("ExportTracesToDatasetResponse(%+v)", *p) } -func (p *PreviewExportTracesToDatasetResponse) DeepEqual(ano *PreviewExportTracesToDatasetResponse) bool { +func (p *ExportTracesToDatasetResponse) DeepEqual(ano *ExportTracesToDatasetResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Items) { + if !p.Field1DeepEqual(ano.SuccessCount) { return false } if !p.Field2DeepEqual(ano.Errors) { return false } + if !p.Field3DeepEqual(ano.DatasetID) { + return false + } + if !p.Field4DeepEqual(ano.DatasetName) { + return false + } if !p.Field255DeepEqual(ano.BaseResp) { return false } @@ -14506,20 +14127,19 @@ func (p *PreviewExportTracesToDatasetResponse) DeepEqual(ano *PreviewExportTrace return true } -func (p *PreviewExportTracesToDatasetResponse) Field1DeepEqual(src []*dataset0.Item) bool { +func (p *ExportTracesToDatasetResponse) Field1DeepEqual(src *int32) bool { - if len(p.Items) != len(src) { + if p.SuccessCount == src { + return true + } else if p.SuccessCount == nil || src == nil { + return false + } + if *p.SuccessCount != *src { return false } - for i, v := range p.Items { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } return true } -func (p *PreviewExportTracesToDatasetResponse) Field2DeepEqual(src []*dataset.ItemErrorGroup) bool { +func (p *ExportTracesToDatasetResponse) Field2DeepEqual(src []*dataset.ItemErrorGroup) bool { if len(p.Errors) != len(src) { return false @@ -14532,14 +14152,38 @@ func (p *PreviewExportTracesToDatasetResponse) Field2DeepEqual(src []*dataset.It } return true } -func (p *PreviewExportTracesToDatasetResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *ExportTracesToDatasetResponse) Field3DeepEqual(src *int64) bool { + + if p.DatasetID == src { + return true + } else if p.DatasetID == nil || src == nil { + return false + } + if *p.DatasetID != *src { + return false + } + return true +} +func (p *ExportTracesToDatasetResponse) Field4DeepEqual(src *string) bool { + + if p.DatasetName == src { + return true + } else if p.DatasetName == nil || src == nil { + return false + } + if strings.Compare(*p.DatasetName, *src) != 0 { + return false + } + return true +} +func (p *ExportTracesToDatasetResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false } return true } -func (p *PreviewExportTracesToDatasetResponse) Field256DeepEqual(src *int32) bool { +func (p *ExportTracesToDatasetResponse) Field256DeepEqual(src *int32) bool { if p.Code == src { return true @@ -14551,7 +14195,7 @@ func (p *PreviewExportTracesToDatasetResponse) Field256DeepEqual(src *int32) boo } return true } -func (p *PreviewExportTracesToDatasetResponse) Field257DeepEqual(src *string) bool { +func (p *ExportTracesToDatasetResponse) Field257DeepEqual(src *string) bool { if p.Msg == src { return true @@ -14564,138 +14208,186 @@ func (p *PreviewExportTracesToDatasetResponse) Field257DeepEqual(src *string) bo return true } -type ChangeEvaluatorScoreRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - AnnotationID string `thrift:"annotation_id,2,required" frugal:"2,required,string" form:"annotation_id,required" json:"annotation_id,required"` - SpanID string `thrift:"span_id,3,required" frugal:"3,required,string" form:"span_id,required" json:"span_id,required"` - StartTime int64 `thrift:"start_time,4,required" frugal:"4,required,i64" json:"start_time" form:"start_time,required" ` - Correction *annotation.Correction `thrift:"correction,5,required" frugal:"5,required,annotation.Correction" form:"correction,required" json:"correction,required"` - PlatformType *common.PlatformType `thrift:"platform_type,6,optional" frugal:"6,optional,string" form:"platform_type" json:"platform_type,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type PreviewExportTracesToDatasetRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + SpanIds []*SpanID `thrift:"span_ids,2,required" frugal:"2,required,list" form:"span_ids,required" json:"span_ids,required"` + Category dataset.DatasetCategory `thrift:"category,3,required" frugal:"3,required,DatasetCategory" form:"category,required" json:"category,required"` + Config *DatasetConfig `thrift:"config,4,required" frugal:"4,required,DatasetConfig" form:"config,required" json:"config,required"` + StartTime int64 `thrift:"start_time,5,required" frugal:"5,required,i64" json:"start_time" form:"start_time,required" ` + EndTime int64 `thrift:"end_time,6,required" frugal:"6,required,i64" json:"end_time" form:"end_time,required" ` + PlatformType *common.PlatformType `thrift:"platform_type,7,optional" frugal:"7,optional,string" form:"platform_type" json:"platform_type,omitempty"` + // 导入方式,不填默认为追加 + ExportType dataset0.ExportType `thrift:"export_type,8,required" frugal:"8,required,string" form:"export_type,required" json:"export_type,required"` + FieldMappings []*dataset0.FieldMapping `thrift:"field_mappings,9,optional" frugal:"9,optional,list" form:"field_mappings" json:"field_mappings,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"-" json:"-" query:"-"` } -func NewChangeEvaluatorScoreRequest() *ChangeEvaluatorScoreRequest { - return &ChangeEvaluatorScoreRequest{} +func NewPreviewExportTracesToDatasetRequest() *PreviewExportTracesToDatasetRequest { + return &PreviewExportTracesToDatasetRequest{} } -func (p *ChangeEvaluatorScoreRequest) InitDefault() { +func (p *PreviewExportTracesToDatasetRequest) InitDefault() { } -func (p *ChangeEvaluatorScoreRequest) GetWorkspaceID() (v int64) { +func (p *PreviewExportTracesToDatasetRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *ChangeEvaluatorScoreRequest) GetAnnotationID() (v string) { +func (p *PreviewExportTracesToDatasetRequest) GetSpanIds() (v []*SpanID) { if p != nil { - return p.AnnotationID + return p.SpanIds } return } -func (p *ChangeEvaluatorScoreRequest) GetSpanID() (v string) { +func (p *PreviewExportTracesToDatasetRequest) GetCategory() (v dataset.DatasetCategory) { if p != nil { - return p.SpanID + return p.Category } return } -func (p *ChangeEvaluatorScoreRequest) GetStartTime() (v int64) { +var PreviewExportTracesToDatasetRequest_Config_DEFAULT *DatasetConfig + +func (p *PreviewExportTracesToDatasetRequest) GetConfig() (v *DatasetConfig) { + if p == nil { + return + } + if !p.IsSetConfig() { + return PreviewExportTracesToDatasetRequest_Config_DEFAULT + } + return p.Config +} + +func (p *PreviewExportTracesToDatasetRequest) GetStartTime() (v int64) { if p != nil { return p.StartTime } return } -var ChangeEvaluatorScoreRequest_Correction_DEFAULT *annotation.Correction +func (p *PreviewExportTracesToDatasetRequest) GetEndTime() (v int64) { + if p != nil { + return p.EndTime + } + return +} -func (p *ChangeEvaluatorScoreRequest) GetCorrection() (v *annotation.Correction) { +var PreviewExportTracesToDatasetRequest_PlatformType_DEFAULT common.PlatformType + +func (p *PreviewExportTracesToDatasetRequest) GetPlatformType() (v common.PlatformType) { if p == nil { return } - if !p.IsSetCorrection() { - return ChangeEvaluatorScoreRequest_Correction_DEFAULT + if !p.IsSetPlatformType() { + return PreviewExportTracesToDatasetRequest_PlatformType_DEFAULT } - return p.Correction + return *p.PlatformType } -var ChangeEvaluatorScoreRequest_PlatformType_DEFAULT common.PlatformType +func (p *PreviewExportTracesToDatasetRequest) GetExportType() (v dataset0.ExportType) { + if p != nil { + return p.ExportType + } + return +} -func (p *ChangeEvaluatorScoreRequest) GetPlatformType() (v common.PlatformType) { +var PreviewExportTracesToDatasetRequest_FieldMappings_DEFAULT []*dataset0.FieldMapping + +func (p *PreviewExportTracesToDatasetRequest) GetFieldMappings() (v []*dataset0.FieldMapping) { if p == nil { return } - if !p.IsSetPlatformType() { - return ChangeEvaluatorScoreRequest_PlatformType_DEFAULT + if !p.IsSetFieldMappings() { + return PreviewExportTracesToDatasetRequest_FieldMappings_DEFAULT } - return *p.PlatformType + return p.FieldMappings } -var ChangeEvaluatorScoreRequest_Base_DEFAULT *base.Base +var PreviewExportTracesToDatasetRequest_Base_DEFAULT *base.Base -func (p *ChangeEvaluatorScoreRequest) GetBase() (v *base.Base) { +func (p *PreviewExportTracesToDatasetRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return ChangeEvaluatorScoreRequest_Base_DEFAULT + return PreviewExportTracesToDatasetRequest_Base_DEFAULT } return p.Base } -func (p *ChangeEvaluatorScoreRequest) SetWorkspaceID(val int64) { +func (p *PreviewExportTracesToDatasetRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *ChangeEvaluatorScoreRequest) SetAnnotationID(val string) { - p.AnnotationID = val +func (p *PreviewExportTracesToDatasetRequest) SetSpanIds(val []*SpanID) { + p.SpanIds = val } -func (p *ChangeEvaluatorScoreRequest) SetSpanID(val string) { - p.SpanID = val +func (p *PreviewExportTracesToDatasetRequest) SetCategory(val dataset.DatasetCategory) { + p.Category = val } -func (p *ChangeEvaluatorScoreRequest) SetStartTime(val int64) { +func (p *PreviewExportTracesToDatasetRequest) SetConfig(val *DatasetConfig) { + p.Config = val +} +func (p *PreviewExportTracesToDatasetRequest) SetStartTime(val int64) { p.StartTime = val } -func (p *ChangeEvaluatorScoreRequest) SetCorrection(val *annotation.Correction) { - p.Correction = val +func (p *PreviewExportTracesToDatasetRequest) SetEndTime(val int64) { + p.EndTime = val } -func (p *ChangeEvaluatorScoreRequest) SetPlatformType(val *common.PlatformType) { +func (p *PreviewExportTracesToDatasetRequest) SetPlatformType(val *common.PlatformType) { p.PlatformType = val } -func (p *ChangeEvaluatorScoreRequest) SetBase(val *base.Base) { +func (p *PreviewExportTracesToDatasetRequest) SetExportType(val dataset0.ExportType) { + p.ExportType = val +} +func (p *PreviewExportTracesToDatasetRequest) SetFieldMappings(val []*dataset0.FieldMapping) { + p.FieldMappings = val +} +func (p *PreviewExportTracesToDatasetRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ChangeEvaluatorScoreRequest = map[int16]string{ +var fieldIDToName_PreviewExportTracesToDatasetRequest = map[int16]string{ 1: "workspace_id", - 2: "annotation_id", - 3: "span_id", - 4: "start_time", - 5: "correction", - 6: "platform_type", + 2: "span_ids", + 3: "category", + 4: "config", + 5: "start_time", + 6: "end_time", + 7: "platform_type", + 8: "export_type", + 9: "field_mappings", 255: "Base", } -func (p *ChangeEvaluatorScoreRequest) IsSetCorrection() bool { - return p.Correction != nil +func (p *PreviewExportTracesToDatasetRequest) IsSetConfig() bool { + return p.Config != nil } -func (p *ChangeEvaluatorScoreRequest) IsSetPlatformType() bool { +func (p *PreviewExportTracesToDatasetRequest) IsSetPlatformType() bool { return p.PlatformType != nil } -func (p *ChangeEvaluatorScoreRequest) IsSetBase() bool { +func (p *PreviewExportTracesToDatasetRequest) IsSetFieldMappings() bool { + return p.FieldMappings != nil +} + +func (p *PreviewExportTracesToDatasetRequest) IsSetBase() bool { return p.Base != nil } -func (p *ChangeEvaluatorScoreRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *PreviewExportTracesToDatasetRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetAnnotationID bool = false - var issetSpanID bool = false + var issetSpanIds bool = false + var issetCategory bool = false + var issetConfig bool = false var issetStartTime bool = false - var issetCorrection bool = false + var issetEndTime bool = false + var issetExportType bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -14721,46 +14413,72 @@ func (p *ChangeEvaluatorScoreRequest) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.LIST { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetAnnotationID = true + issetSpanIds = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 3: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I32 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } - issetSpanID = true + issetCategory = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 4: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } - issetStartTime = true + issetConfig = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 5: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.I64 { if err = p.ReadField5(iprot); err != nil { goto ReadFieldError } - issetCorrection = true + issetStartTime = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 6: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField6(iprot); err != nil { goto ReadFieldError } + issetEndTime = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.STRING { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.STRING { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + issetExportType = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.LIST { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -14790,32 +14508,42 @@ func (p *ChangeEvaluatorScoreRequest) Read(iprot thrift.TProtocol) (err error) { goto RequiredFieldNotSetError } - if !issetAnnotationID { + if !issetSpanIds { fieldId = 2 goto RequiredFieldNotSetError } - if !issetSpanID { + if !issetCategory { fieldId = 3 goto RequiredFieldNotSetError } - if !issetStartTime { + if !issetConfig { fieldId = 4 goto RequiredFieldNotSetError } - if !issetCorrection { + if !issetStartTime { fieldId = 5 goto RequiredFieldNotSetError } + + if !issetEndTime { + fieldId = 6 + goto RequiredFieldNotSetError + } + + if !issetExportType { + fieldId = 8 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ChangeEvaluatorScoreRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PreviewExportTracesToDatasetRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -14824,10 +14552,10 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ChangeEvaluatorScoreRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_PreviewExportTracesToDatasetRequest[fieldId])) } -func (p *ChangeEvaluatorScoreRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *PreviewExportTracesToDatasetRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -14838,29 +14566,49 @@ func (p *ChangeEvaluatorScoreRequest) ReadField1(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *ChangeEvaluatorScoreRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *PreviewExportTracesToDatasetRequest) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*SpanID, 0, size) + values := make([]SpanID, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field string - if v, err := iprot.ReadString(); err != nil { + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - _field = v } - p.AnnotationID = _field + p.SpanIds = _field return nil } -func (p *ChangeEvaluatorScoreRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *PreviewExportTracesToDatasetRequest) ReadField3(iprot thrift.TProtocol) error { - var _field string - if v, err := iprot.ReadString(); err != nil { + var _field dataset.DatasetCategory + if v, err := iprot.ReadI32(); err != nil { return err } else { - _field = v + _field = dataset.DatasetCategory(v) } - p.SpanID = _field + p.Category = _field return nil } -func (p *ChangeEvaluatorScoreRequest) ReadField4(iprot thrift.TProtocol) error { +func (p *PreviewExportTracesToDatasetRequest) ReadField4(iprot thrift.TProtocol) error { + _field := NewDatasetConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.Config = _field + return nil +} +func (p *PreviewExportTracesToDatasetRequest) ReadField5(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -14871,15 +14619,18 @@ func (p *ChangeEvaluatorScoreRequest) ReadField4(iprot thrift.TProtocol) error { p.StartTime = _field return nil } -func (p *ChangeEvaluatorScoreRequest) ReadField5(iprot thrift.TProtocol) error { - _field := annotation.NewCorrection() - if err := _field.Read(iprot); err != nil { +func (p *PreviewExportTracesToDatasetRequest) ReadField6(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { return err + } else { + _field = v } - p.Correction = _field + p.EndTime = _field return nil } -func (p *ChangeEvaluatorScoreRequest) ReadField6(iprot thrift.TProtocol) error { +func (p *PreviewExportTracesToDatasetRequest) ReadField7(iprot thrift.TProtocol) error { var _field *common.PlatformType if v, err := iprot.ReadString(); err != nil { @@ -14890,7 +14641,41 @@ func (p *ChangeEvaluatorScoreRequest) ReadField6(iprot thrift.TProtocol) error { p.PlatformType = _field return nil } -func (p *ChangeEvaluatorScoreRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *PreviewExportTracesToDatasetRequest) ReadField8(iprot thrift.TProtocol) error { + + var _field dataset0.ExportType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.ExportType = _field + return nil +} +func (p *PreviewExportTracesToDatasetRequest) ReadField9(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*dataset0.FieldMapping, 0, size) + values := make([]dataset0.FieldMapping, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.FieldMappings = _field + return nil +} +func (p *PreviewExportTracesToDatasetRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -14899,9 +14684,9 @@ func (p *ChangeEvaluatorScoreRequest) ReadField255(iprot thrift.TProtocol) error return nil } -func (p *ChangeEvaluatorScoreRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *PreviewExportTracesToDatasetRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ChangeEvaluatorScoreRequest"); err != nil { + if err = oprot.WriteStructBegin("PreviewExportTracesToDatasetRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -14929,6 +14714,18 @@ func (p *ChangeEvaluatorScoreRequest) Write(oprot thrift.TProtocol) (err error) fieldId = 6 goto WriteFieldError } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -14951,7 +14748,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ChangeEvaluatorScoreRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *PreviewExportTracesToDatasetRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -14967,11 +14764,19 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ChangeEvaluatorScoreRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotation_id", thrift.STRING, 2); err != nil { +func (p *PreviewExportTracesToDatasetRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("span_ids", thrift.LIST, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(p.AnnotationID); err != nil { + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.SpanIds)); err != nil { + return err + } + for _, v := range p.SpanIds { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -14983,11 +14788,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ChangeEvaluatorScoreRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("span_id", thrift.STRING, 3); err != nil { +func (p *PreviewExportTracesToDatasetRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("category", thrift.I32, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(p.SpanID); err != nil { + if err := oprot.WriteI32(int32(p.Category)); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -14999,11 +14804,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ChangeEvaluatorScoreRequest) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("start_time", thrift.I64, 4); err != nil { +func (p *PreviewExportTracesToDatasetRequest) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("config", thrift.STRUCT, 4); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.StartTime); err != nil { + if err := p.Config.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -15015,11 +14820,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *ChangeEvaluatorScoreRequest) writeField5(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("correction", thrift.STRUCT, 5); err != nil { +func (p *PreviewExportTracesToDatasetRequest) writeField5(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("start_time", thrift.I64, 5); err != nil { goto WriteFieldBeginError } - if err := p.Correction.Write(oprot); err != nil { + if err := oprot.WriteI64(p.StartTime); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -15031,9 +14836,25 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) } -func (p *ChangeEvaluatorScoreRequest) writeField6(oprot thrift.TProtocol) (err error) { +func (p *PreviewExportTracesToDatasetRequest) writeField6(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("end_time", thrift.I64, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.EndTime); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *PreviewExportTracesToDatasetRequest) writeField7(oprot thrift.TProtocol) (err error) { if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 6); err != nil { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 7); err != nil { goto WriteFieldBeginError } if err := oprot.WriteString(*p.PlatformType); err != nil { @@ -15045,11 +14866,53 @@ func (p *ChangeEvaluatorScoreRequest) writeField6(oprot thrift.TProtocol) (err e } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) } -func (p *ChangeEvaluatorScoreRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *PreviewExportTracesToDatasetRequest) writeField8(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("export_type", thrift.STRING, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.ExportType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *PreviewExportTracesToDatasetRequest) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetFieldMappings() { + if err = oprot.WriteFieldBegin("field_mappings", thrift.LIST, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldMappings)); err != nil { + return err + } + for _, v := range p.FieldMappings { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} +func (p *PreviewExportTracesToDatasetRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -15068,15 +14931,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ChangeEvaluatorScoreRequest) String() string { +func (p *PreviewExportTracesToDatasetRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ChangeEvaluatorScoreRequest(%+v)", *p) + return fmt.Sprintf("PreviewExportTracesToDatasetRequest(%+v)", *p) } -func (p *ChangeEvaluatorScoreRequest) DeepEqual(ano *ChangeEvaluatorScoreRequest) bool { +func (p *PreviewExportTracesToDatasetRequest) DeepEqual(ano *PreviewExportTracesToDatasetRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -15085,19 +14948,28 @@ func (p *ChangeEvaluatorScoreRequest) DeepEqual(ano *ChangeEvaluatorScoreRequest if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.AnnotationID) { + if !p.Field2DeepEqual(ano.SpanIds) { return false } - if !p.Field3DeepEqual(ano.SpanID) { + if !p.Field3DeepEqual(ano.Category) { return false } - if !p.Field4DeepEqual(ano.StartTime) { + if !p.Field4DeepEqual(ano.Config) { return false } - if !p.Field5DeepEqual(ano.Correction) { + if !p.Field5DeepEqual(ano.StartTime) { return false } - if !p.Field6DeepEqual(ano.PlatformType) { + if !p.Field6DeepEqual(ano.EndTime) { + return false + } + if !p.Field7DeepEqual(ano.PlatformType) { + return false + } + if !p.Field8DeepEqual(ano.ExportType) { + return false + } + if !p.Field9DeepEqual(ano.FieldMappings) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -15106,42 +14978,55 @@ func (p *ChangeEvaluatorScoreRequest) DeepEqual(ano *ChangeEvaluatorScoreRequest return true } -func (p *ChangeEvaluatorScoreRequest) Field1DeepEqual(src int64) bool { +func (p *PreviewExportTracesToDatasetRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *ChangeEvaluatorScoreRequest) Field2DeepEqual(src string) bool { +func (p *PreviewExportTracesToDatasetRequest) Field2DeepEqual(src []*SpanID) bool { - if strings.Compare(p.AnnotationID, src) != 0 { + if len(p.SpanIds) != len(src) { return false } + for i, v := range p.SpanIds { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } return true } -func (p *ChangeEvaluatorScoreRequest) Field3DeepEqual(src string) bool { +func (p *PreviewExportTracesToDatasetRequest) Field3DeepEqual(src dataset.DatasetCategory) bool { - if strings.Compare(p.SpanID, src) != 0 { + if p.Category != src { return false } return true } -func (p *ChangeEvaluatorScoreRequest) Field4DeepEqual(src int64) bool { +func (p *PreviewExportTracesToDatasetRequest) Field4DeepEqual(src *DatasetConfig) bool { + + if !p.Config.DeepEqual(src) { + return false + } + return true +} +func (p *PreviewExportTracesToDatasetRequest) Field5DeepEqual(src int64) bool { if p.StartTime != src { return false } return true } -func (p *ChangeEvaluatorScoreRequest) Field5DeepEqual(src *annotation.Correction) bool { +func (p *PreviewExportTracesToDatasetRequest) Field6DeepEqual(src int64) bool { - if !p.Correction.DeepEqual(src) { + if p.EndTime != src { return false } return true } -func (p *ChangeEvaluatorScoreRequest) Field6DeepEqual(src *common.PlatformType) bool { +func (p *PreviewExportTracesToDatasetRequest) Field7DeepEqual(src *common.PlatformType) bool { if p.PlatformType == src { return true @@ -15153,7 +15038,27 @@ func (p *ChangeEvaluatorScoreRequest) Field6DeepEqual(src *common.PlatformType) } return true } -func (p *ChangeEvaluatorScoreRequest) Field255DeepEqual(src *base.Base) bool { +func (p *PreviewExportTracesToDatasetRequest) Field8DeepEqual(src dataset0.ExportType) bool { + + if strings.Compare(p.ExportType, src) != 0 { + return false + } + return true +} +func (p *PreviewExportTracesToDatasetRequest) Field9DeepEqual(src []*dataset0.FieldMapping) bool { + + if len(p.FieldMappings) != len(src) { + return false + } + for i, v := range p.FieldMappings { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *PreviewExportTracesToDatasetRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -15161,65 +15066,131 @@ func (p *ChangeEvaluatorScoreRequest) Field255DeepEqual(src *base.Base) bool { return true } -type ChangeEvaluatorScoreResponse struct { - Annotation *annotation.Annotation `thrift:"annotation,1,required" frugal:"1,required,annotation.Annotation" form:"annotation,required" json:"annotation,required" query:"annotation,required"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +type PreviewExportTracesToDatasetResponse struct { + // 预览数据 + Items []*dataset0.Item `thrift:"items,1,optional" frugal:"1,optional,list" form:"items" json:"items,omitempty" query:"items"` + // 概要错误信息 + Errors []*dataset.ItemErrorGroup `thrift:"errors,2,optional" frugal:"2,optional,list" form:"errors" json:"errors,omitempty" query:"errors"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"-" json:"-" query:"-"` + // 仅供http请求使用; 内部RPC不予使用,统一通过BaseResp获取Code和Msg + Code *int32 `thrift:"Code,256,optional" frugal:"256,optional,i32" form:"Code" json:"Code,omitempty" query:"Code"` + // 仅供http请求使用; 内部RPC不予使用,统一通过BaseResp获取Code和Msg + Msg *string `thrift:"Msg,257,optional" frugal:"257,optional,string" form:"Msg" json:"Msg,omitempty" query:"Msg"` } -func NewChangeEvaluatorScoreResponse() *ChangeEvaluatorScoreResponse { - return &ChangeEvaluatorScoreResponse{} +func NewPreviewExportTracesToDatasetResponse() *PreviewExportTracesToDatasetResponse { + return &PreviewExportTracesToDatasetResponse{} } -func (p *ChangeEvaluatorScoreResponse) InitDefault() { +func (p *PreviewExportTracesToDatasetResponse) InitDefault() { } -var ChangeEvaluatorScoreResponse_Annotation_DEFAULT *annotation.Annotation +var PreviewExportTracesToDatasetResponse_Items_DEFAULT []*dataset0.Item -func (p *ChangeEvaluatorScoreResponse) GetAnnotation() (v *annotation.Annotation) { +func (p *PreviewExportTracesToDatasetResponse) GetItems() (v []*dataset0.Item) { if p == nil { return } - if !p.IsSetAnnotation() { - return ChangeEvaluatorScoreResponse_Annotation_DEFAULT + if !p.IsSetItems() { + return PreviewExportTracesToDatasetResponse_Items_DEFAULT } - return p.Annotation + return p.Items } -var ChangeEvaluatorScoreResponse_BaseResp_DEFAULT *base.BaseResp +var PreviewExportTracesToDatasetResponse_Errors_DEFAULT []*dataset.ItemErrorGroup -func (p *ChangeEvaluatorScoreResponse) GetBaseResp() (v *base.BaseResp) { +func (p *PreviewExportTracesToDatasetResponse) GetErrors() (v []*dataset.ItemErrorGroup) { + if p == nil { + return + } + if !p.IsSetErrors() { + return PreviewExportTracesToDatasetResponse_Errors_DEFAULT + } + return p.Errors +} + +var PreviewExportTracesToDatasetResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *PreviewExportTracesToDatasetResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return ChangeEvaluatorScoreResponse_BaseResp_DEFAULT + return PreviewExportTracesToDatasetResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *ChangeEvaluatorScoreResponse) SetAnnotation(val *annotation.Annotation) { - p.Annotation = val + +var PreviewExportTracesToDatasetResponse_Code_DEFAULT int32 + +func (p *PreviewExportTracesToDatasetResponse) GetCode() (v int32) { + if p == nil { + return + } + if !p.IsSetCode() { + return PreviewExportTracesToDatasetResponse_Code_DEFAULT + } + return *p.Code } -func (p *ChangeEvaluatorScoreResponse) SetBaseResp(val *base.BaseResp) { + +var PreviewExportTracesToDatasetResponse_Msg_DEFAULT string + +func (p *PreviewExportTracesToDatasetResponse) GetMsg() (v string) { + if p == nil { + return + } + if !p.IsSetMsg() { + return PreviewExportTracesToDatasetResponse_Msg_DEFAULT + } + return *p.Msg +} +func (p *PreviewExportTracesToDatasetResponse) SetItems(val []*dataset0.Item) { + p.Items = val +} +func (p *PreviewExportTracesToDatasetResponse) SetErrors(val []*dataset.ItemErrorGroup) { + p.Errors = val +} +func (p *PreviewExportTracesToDatasetResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } +func (p *PreviewExportTracesToDatasetResponse) SetCode(val *int32) { + p.Code = val +} +func (p *PreviewExportTracesToDatasetResponse) SetMsg(val *string) { + p.Msg = val +} -var fieldIDToName_ChangeEvaluatorScoreResponse = map[int16]string{ - 1: "annotation", +var fieldIDToName_PreviewExportTracesToDatasetResponse = map[int16]string{ + 1: "items", + 2: "errors", 255: "BaseResp", + 256: "Code", + 257: "Msg", } -func (p *ChangeEvaluatorScoreResponse) IsSetAnnotation() bool { - return p.Annotation != nil +func (p *PreviewExportTracesToDatasetResponse) IsSetItems() bool { + return p.Items != nil } -func (p *ChangeEvaluatorScoreResponse) IsSetBaseResp() bool { +func (p *PreviewExportTracesToDatasetResponse) IsSetErrors() bool { + return p.Errors != nil +} + +func (p *PreviewExportTracesToDatasetResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *ChangeEvaluatorScoreResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *PreviewExportTracesToDatasetResponse) IsSetCode() bool { + return p.Code != nil +} + +func (p *PreviewExportTracesToDatasetResponse) IsSetMsg() bool { + return p.Msg != nil +} + +func (p *PreviewExportTracesToDatasetResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetAnnotation bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -15236,11 +15207,18 @@ func (p *ChangeEvaluatorScoreResponse) Read(iprot thrift.TProtocol) (err error) switch fieldId { case 1: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.LIST { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetAnnotation = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -15252,6 +15230,22 @@ func (p *ChangeEvaluatorScoreResponse) Read(iprot thrift.TProtocol) (err error) } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 256: + if fieldTypeId == thrift.I32 { + if err = p.ReadField256(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 257: + if fieldTypeId == thrift.STRING { + if err = p.ReadField257(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -15265,17 +15259,13 @@ func (p *ChangeEvaluatorScoreResponse) Read(iprot thrift.TProtocol) (err error) goto ReadStructEndError } - if !issetAnnotation { - fieldId = 1 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ChangeEvaluatorScoreResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PreviewExportTracesToDatasetResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -15283,19 +15273,55 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ChangeEvaluatorScoreResponse[fieldId])) } -func (p *ChangeEvaluatorScoreResponse) ReadField1(iprot thrift.TProtocol) error { - _field := annotation.NewAnnotation() - if err := _field.Read(iprot); err != nil { +func (p *PreviewExportTracesToDatasetResponse) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { return err } - p.Annotation = _field + _field := make([]*dataset0.Item, 0, size) + values := make([]dataset0.Item, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Items = _field return nil } -func (p *ChangeEvaluatorScoreResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *PreviewExportTracesToDatasetResponse) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*dataset.ItemErrorGroup, 0, size) + values := make([]dataset.ItemErrorGroup, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Errors = _field + return nil +} +func (p *PreviewExportTracesToDatasetResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -15303,24 +15329,58 @@ func (p *ChangeEvaluatorScoreResponse) ReadField255(iprot thrift.TProtocol) erro p.BaseResp = _field return nil } +func (p *PreviewExportTracesToDatasetResponse) ReadField256(iprot thrift.TProtocol) error { -func (p *ChangeEvaluatorScoreResponse) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ChangeEvaluatorScoreResponse"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.Code = _field + return nil +} +func (p *PreviewExportTracesToDatasetResponse) ReadField257(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Msg = _field + return nil +} + +func (p *PreviewExportTracesToDatasetResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("PreviewExportTracesToDatasetResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } + if err = p.writeField256(oprot); err != nil { + fieldId = 256 + goto WriteFieldError + } + if err = p.writeField257(oprot); err != nil { + fieldId = 257 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } if err = oprot.WriteStructEnd(); err != nil { goto WriteStructEndError @@ -15336,15 +15396,25 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ChangeEvaluatorScoreResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotation", thrift.STRUCT, 1); err != nil { - goto WriteFieldBeginError - } - if err := p.Annotation.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *PreviewExportTracesToDatasetResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetItems() { + if err = oprot.WriteFieldBegin("items", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Items)); err != nil { + return err + } + for _, v := range p.Items { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -15352,7 +15422,33 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ChangeEvaluatorScoreResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *PreviewExportTracesToDatasetResponse) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetErrors() { + if err = oprot.WriteFieldBegin("errors", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Errors)); err != nil { + return err + } + for _, v := range p.Errors { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *PreviewExportTracesToDatasetResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -15370,116 +15466,265 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } +func (p *PreviewExportTracesToDatasetResponse) writeField256(oprot thrift.TProtocol) (err error) { + if p.IsSetCode() { + if err = oprot.WriteFieldBegin("Code", thrift.I32, 256); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.Code); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 256 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 256 end error: ", p), err) +} +func (p *PreviewExportTracesToDatasetResponse) writeField257(oprot thrift.TProtocol) (err error) { + if p.IsSetMsg() { + if err = oprot.WriteFieldBegin("Msg", thrift.STRING, 257); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Msg); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 257 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 257 end error: ", p), err) +} -func (p *ChangeEvaluatorScoreResponse) String() string { +func (p *PreviewExportTracesToDatasetResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ChangeEvaluatorScoreResponse(%+v)", *p) + return fmt.Sprintf("PreviewExportTracesToDatasetResponse(%+v)", *p) } -func (p *ChangeEvaluatorScoreResponse) DeepEqual(ano *ChangeEvaluatorScoreResponse) bool { +func (p *PreviewExportTracesToDatasetResponse) DeepEqual(ano *PreviewExportTracesToDatasetResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Annotation) { + if !p.Field1DeepEqual(ano.Items) { + return false + } + if !p.Field2DeepEqual(ano.Errors) { return false } if !p.Field255DeepEqual(ano.BaseResp) { return false } + if !p.Field256DeepEqual(ano.Code) { + return false + } + if !p.Field257DeepEqual(ano.Msg) { + return false + } return true } -func (p *ChangeEvaluatorScoreResponse) Field1DeepEqual(src *annotation.Annotation) bool { +func (p *PreviewExportTracesToDatasetResponse) Field1DeepEqual(src []*dataset0.Item) bool { - if !p.Annotation.DeepEqual(src) { + if len(p.Items) != len(src) { + return false + } + for i, v := range p.Items { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *PreviewExportTracesToDatasetResponse) Field2DeepEqual(src []*dataset.ItemErrorGroup) bool { + + if len(p.Errors) != len(src) { return false } + for i, v := range p.Errors { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } return true } -func (p *ChangeEvaluatorScoreResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *PreviewExportTracesToDatasetResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false } return true } +func (p *PreviewExportTracesToDatasetResponse) Field256DeepEqual(src *int32) bool { -type ListAnnotationEvaluatorsRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" query:"workspace_id,required" ` - Name *string `thrift:"name,2,optional" frugal:"2,optional,string" form:"name" json:"name,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"-" json:"-" query:"-"` + if p.Code == src { + return true + } else if p.Code == nil || src == nil { + return false + } + if *p.Code != *src { + return false + } + return true } +func (p *PreviewExportTracesToDatasetResponse) Field257DeepEqual(src *string) bool { -func NewListAnnotationEvaluatorsRequest() *ListAnnotationEvaluatorsRequest { - return &ListAnnotationEvaluatorsRequest{} + if p.Msg == src { + return true + } else if p.Msg == nil || src == nil { + return false + } + if strings.Compare(*p.Msg, *src) != 0 { + return false + } + return true } -func (p *ListAnnotationEvaluatorsRequest) InitDefault() { +type ChangeEvaluatorScoreRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + AnnotationID string `thrift:"annotation_id,2,required" frugal:"2,required,string" form:"annotation_id,required" json:"annotation_id,required"` + SpanID string `thrift:"span_id,3,required" frugal:"3,required,string" form:"span_id,required" json:"span_id,required"` + StartTime int64 `thrift:"start_time,4,required" frugal:"4,required,i64" json:"start_time" form:"start_time,required" ` + Correction *annotation.Correction `thrift:"correction,5,required" frugal:"5,required,annotation.Correction" form:"correction,required" json:"correction,required"` + PlatformType *common.PlatformType `thrift:"platform_type,6,optional" frugal:"6,optional,string" form:"platform_type" json:"platform_type,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func (p *ListAnnotationEvaluatorsRequest) GetWorkspaceID() (v int64) { +func NewChangeEvaluatorScoreRequest() *ChangeEvaluatorScoreRequest { + return &ChangeEvaluatorScoreRequest{} +} + +func (p *ChangeEvaluatorScoreRequest) InitDefault() { +} + +func (p *ChangeEvaluatorScoreRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -var ListAnnotationEvaluatorsRequest_Name_DEFAULT string +func (p *ChangeEvaluatorScoreRequest) GetAnnotationID() (v string) { + if p != nil { + return p.AnnotationID + } + return +} -func (p *ListAnnotationEvaluatorsRequest) GetName() (v string) { - if p == nil { - return +func (p *ChangeEvaluatorScoreRequest) GetSpanID() (v string) { + if p != nil { + return p.SpanID } - if !p.IsSetName() { - return ListAnnotationEvaluatorsRequest_Name_DEFAULT + return +} + +func (p *ChangeEvaluatorScoreRequest) GetStartTime() (v int64) { + if p != nil { + return p.StartTime } - return *p.Name + return } -var ListAnnotationEvaluatorsRequest_Base_DEFAULT *base.Base +var ChangeEvaluatorScoreRequest_Correction_DEFAULT *annotation.Correction -func (p *ListAnnotationEvaluatorsRequest) GetBase() (v *base.Base) { +func (p *ChangeEvaluatorScoreRequest) GetCorrection() (v *annotation.Correction) { if p == nil { return } - if !p.IsSetBase() { - return ListAnnotationEvaluatorsRequest_Base_DEFAULT + if !p.IsSetCorrection() { + return ChangeEvaluatorScoreRequest_Correction_DEFAULT } - return p.Base + return p.Correction } -func (p *ListAnnotationEvaluatorsRequest) SetWorkspaceID(val int64) { + +var ChangeEvaluatorScoreRequest_PlatformType_DEFAULT common.PlatformType + +func (p *ChangeEvaluatorScoreRequest) GetPlatformType() (v common.PlatformType) { + if p == nil { + return + } + if !p.IsSetPlatformType() { + return ChangeEvaluatorScoreRequest_PlatformType_DEFAULT + } + return *p.PlatformType +} + +var ChangeEvaluatorScoreRequest_Base_DEFAULT *base.Base + +func (p *ChangeEvaluatorScoreRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return ChangeEvaluatorScoreRequest_Base_DEFAULT + } + return p.Base +} +func (p *ChangeEvaluatorScoreRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *ListAnnotationEvaluatorsRequest) SetName(val *string) { - p.Name = val +func (p *ChangeEvaluatorScoreRequest) SetAnnotationID(val string) { + p.AnnotationID = val } -func (p *ListAnnotationEvaluatorsRequest) SetBase(val *base.Base) { +func (p *ChangeEvaluatorScoreRequest) SetSpanID(val string) { + p.SpanID = val +} +func (p *ChangeEvaluatorScoreRequest) SetStartTime(val int64) { + p.StartTime = val +} +func (p *ChangeEvaluatorScoreRequest) SetCorrection(val *annotation.Correction) { + p.Correction = val +} +func (p *ChangeEvaluatorScoreRequest) SetPlatformType(val *common.PlatformType) { + p.PlatformType = val +} +func (p *ChangeEvaluatorScoreRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ListAnnotationEvaluatorsRequest = map[int16]string{ +var fieldIDToName_ChangeEvaluatorScoreRequest = map[int16]string{ 1: "workspace_id", - 2: "name", + 2: "annotation_id", + 3: "span_id", + 4: "start_time", + 5: "correction", + 6: "platform_type", 255: "Base", } -func (p *ListAnnotationEvaluatorsRequest) IsSetName() bool { - return p.Name != nil +func (p *ChangeEvaluatorScoreRequest) IsSetCorrection() bool { + return p.Correction != nil } -func (p *ListAnnotationEvaluatorsRequest) IsSetBase() bool { +func (p *ChangeEvaluatorScoreRequest) IsSetPlatformType() bool { + return p.PlatformType != nil +} + +func (p *ChangeEvaluatorScoreRequest) IsSetBase() bool { return p.Base != nil } -func (p *ListAnnotationEvaluatorsRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *ChangeEvaluatorScoreRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false + var issetAnnotationID bool = false + var issetSpanID bool = false + var issetStartTime bool = false + var issetCorrection bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -15509,6 +15754,42 @@ func (p *ListAnnotationEvaluatorsRequest) Read(iprot thrift.TProtocol) (err erro if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } + issetAnnotationID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + issetSpanID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I64 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + issetStartTime = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + issetCorrection = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -15537,13 +15818,33 @@ func (p *ListAnnotationEvaluatorsRequest) Read(iprot thrift.TProtocol) (err erro fieldId = 1 goto RequiredFieldNotSetError } + + if !issetAnnotationID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetSpanID { + fieldId = 3 + goto RequiredFieldNotSetError + } + + if !issetStartTime { + fieldId = 4 + goto RequiredFieldNotSetError + } + + if !issetCorrection { + fieldId = 5 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListAnnotationEvaluatorsRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ChangeEvaluatorScoreRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -15552,10 +15853,10 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListAnnotationEvaluatorsRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ChangeEvaluatorScoreRequest[fieldId])) } -func (p *ListAnnotationEvaluatorsRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *ChangeEvaluatorScoreRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -15566,18 +15867,59 @@ func (p *ListAnnotationEvaluatorsRequest) ReadField1(iprot thrift.TProtocol) err p.WorkspaceID = _field return nil } -func (p *ListAnnotationEvaluatorsRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *ChangeEvaluatorScoreRequest) ReadField2(iprot thrift.TProtocol) error { - var _field *string + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.AnnotationID = _field + return nil +} +func (p *ChangeEvaluatorScoreRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.SpanID = _field + return nil +} +func (p *ChangeEvaluatorScoreRequest) ReadField4(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.StartTime = _field + return nil +} +func (p *ChangeEvaluatorScoreRequest) ReadField5(iprot thrift.TProtocol) error { + _field := annotation.NewCorrection() + if err := _field.Read(iprot); err != nil { + return err + } + p.Correction = _field + return nil +} +func (p *ChangeEvaluatorScoreRequest) ReadField6(iprot thrift.TProtocol) error { + + var _field *common.PlatformType if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.Name = _field + p.PlatformType = _field return nil } -func (p *ListAnnotationEvaluatorsRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *ChangeEvaluatorScoreRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -15586,9 +15928,9 @@ func (p *ListAnnotationEvaluatorsRequest) ReadField255(iprot thrift.TProtocol) e return nil } -func (p *ListAnnotationEvaluatorsRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *ChangeEvaluatorScoreRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListAnnotationEvaluatorsRequest"); err != nil { + if err = oprot.WriteStructBegin("ChangeEvaluatorScoreRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -15600,6 +15942,22 @@ func (p *ListAnnotationEvaluatorsRequest) Write(oprot thrift.TProtocol) (err err fieldId = 2 goto WriteFieldError } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -15622,7 +15980,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListAnnotationEvaluatorsRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ChangeEvaluatorScoreRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -15638,17 +15996,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListAnnotationEvaluatorsRequest) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetName() { - if err = oprot.WriteFieldBegin("name", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Name); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *ChangeEvaluatorScoreRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotation_id", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.AnnotationID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -15656,34 +16012,100 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListAnnotationEvaluatorsRequest) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBase() { - if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.Base.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *ChangeEvaluatorScoreRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("span_id", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.SpanID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } - -func (p *ListAnnotationEvaluatorsRequest) String() string { - if p == nil { - return "" +func (p *ChangeEvaluatorScoreRequest) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("start_time", thrift.I64, 4); err != nil { + goto WriteFieldBeginError } - return fmt.Sprintf("ListAnnotationEvaluatorsRequest(%+v)", *p) - -} - -func (p *ListAnnotationEvaluatorsRequest) DeepEqual(ano *ListAnnotationEvaluatorsRequest) bool { + if err := oprot.WriteI64(p.StartTime); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ChangeEvaluatorScoreRequest) writeField5(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("correction", thrift.STRUCT, 5); err != nil { + goto WriteFieldBeginError + } + if err := p.Correction.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ChangeEvaluatorScoreRequest) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetPlatformType() { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PlatformType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *ChangeEvaluatorScoreRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *ChangeEvaluatorScoreRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ChangeEvaluatorScoreRequest(%+v)", *p) + +} + +func (p *ChangeEvaluatorScoreRequest) DeepEqual(ano *ChangeEvaluatorScoreRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -15692,7 +16114,19 @@ func (p *ListAnnotationEvaluatorsRequest) DeepEqual(ano *ListAnnotationEvaluator if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.Name) { + if !p.Field2DeepEqual(ano.AnnotationID) { + return false + } + if !p.Field3DeepEqual(ano.SpanID) { + return false + } + if !p.Field4DeepEqual(ano.StartTime) { + return false + } + if !p.Field5DeepEqual(ano.Correction) { + return false + } + if !p.Field6DeepEqual(ano.PlatformType) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -15701,26 +16135,54 @@ func (p *ListAnnotationEvaluatorsRequest) DeepEqual(ano *ListAnnotationEvaluator return true } -func (p *ListAnnotationEvaluatorsRequest) Field1DeepEqual(src int64) bool { +func (p *ChangeEvaluatorScoreRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *ListAnnotationEvaluatorsRequest) Field2DeepEqual(src *string) bool { +func (p *ChangeEvaluatorScoreRequest) Field2DeepEqual(src string) bool { - if p.Name == src { + if strings.Compare(p.AnnotationID, src) != 0 { + return false + } + return true +} +func (p *ChangeEvaluatorScoreRequest) Field3DeepEqual(src string) bool { + + if strings.Compare(p.SpanID, src) != 0 { + return false + } + return true +} +func (p *ChangeEvaluatorScoreRequest) Field4DeepEqual(src int64) bool { + + if p.StartTime != src { + return false + } + return true +} +func (p *ChangeEvaluatorScoreRequest) Field5DeepEqual(src *annotation.Correction) bool { + + if !p.Correction.DeepEqual(src) { + return false + } + return true +} +func (p *ChangeEvaluatorScoreRequest) Field6DeepEqual(src *common.PlatformType) bool { + + if p.PlatformType == src { return true - } else if p.Name == nil || src == nil { + } else if p.PlatformType == nil || src == nil { return false } - if strings.Compare(*p.Name, *src) != 0 { + if strings.Compare(*p.PlatformType, *src) != 0 { return false } return true } -func (p *ListAnnotationEvaluatorsRequest) Field255DeepEqual(src *base.Base) bool { +func (p *ChangeEvaluatorScoreRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -15728,56 +16190,65 @@ func (p *ListAnnotationEvaluatorsRequest) Field255DeepEqual(src *base.Base) bool return true } -type ListAnnotationEvaluatorsResponse struct { - Evaluators []*annotation.AnnotationEvaluator `thrift:"evaluators,1,required" frugal:"1,required,list" form:"evaluators,required" json:"evaluators,required" query:"evaluators,required"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +type ChangeEvaluatorScoreResponse struct { + Annotation *annotation.Annotation `thrift:"annotation,1,required" frugal:"1,required,annotation.Annotation" form:"annotation,required" json:"annotation,required" query:"annotation,required"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewListAnnotationEvaluatorsResponse() *ListAnnotationEvaluatorsResponse { - return &ListAnnotationEvaluatorsResponse{} +func NewChangeEvaluatorScoreResponse() *ChangeEvaluatorScoreResponse { + return &ChangeEvaluatorScoreResponse{} } -func (p *ListAnnotationEvaluatorsResponse) InitDefault() { +func (p *ChangeEvaluatorScoreResponse) InitDefault() { } -func (p *ListAnnotationEvaluatorsResponse) GetEvaluators() (v []*annotation.AnnotationEvaluator) { - if p != nil { - return p.Evaluators +var ChangeEvaluatorScoreResponse_Annotation_DEFAULT *annotation.Annotation + +func (p *ChangeEvaluatorScoreResponse) GetAnnotation() (v *annotation.Annotation) { + if p == nil { + return } - return + if !p.IsSetAnnotation() { + return ChangeEvaluatorScoreResponse_Annotation_DEFAULT + } + return p.Annotation } -var ListAnnotationEvaluatorsResponse_BaseResp_DEFAULT *base.BaseResp +var ChangeEvaluatorScoreResponse_BaseResp_DEFAULT *base.BaseResp -func (p *ListAnnotationEvaluatorsResponse) GetBaseResp() (v *base.BaseResp) { +func (p *ChangeEvaluatorScoreResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return ListAnnotationEvaluatorsResponse_BaseResp_DEFAULT + return ChangeEvaluatorScoreResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *ListAnnotationEvaluatorsResponse) SetEvaluators(val []*annotation.AnnotationEvaluator) { - p.Evaluators = val +func (p *ChangeEvaluatorScoreResponse) SetAnnotation(val *annotation.Annotation) { + p.Annotation = val } -func (p *ListAnnotationEvaluatorsResponse) SetBaseResp(val *base.BaseResp) { +func (p *ChangeEvaluatorScoreResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_ListAnnotationEvaluatorsResponse = map[int16]string{ - 1: "evaluators", +var fieldIDToName_ChangeEvaluatorScoreResponse = map[int16]string{ + 1: "annotation", 255: "BaseResp", } -func (p *ListAnnotationEvaluatorsResponse) IsSetBaseResp() bool { +func (p *ChangeEvaluatorScoreResponse) IsSetAnnotation() bool { + return p.Annotation != nil +} + +func (p *ChangeEvaluatorScoreResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *ListAnnotationEvaluatorsResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *ChangeEvaluatorScoreResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetEvaluators bool = false + var issetAnnotation bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -15794,11 +16265,11 @@ func (p *ListAnnotationEvaluatorsResponse) Read(iprot thrift.TProtocol) (err err switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetEvaluators = true + issetAnnotation = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -15823,7 +16294,7 @@ func (p *ListAnnotationEvaluatorsResponse) Read(iprot thrift.TProtocol) (err err goto ReadStructEndError } - if !issetEvaluators { + if !issetAnnotation { fieldId = 1 goto RequiredFieldNotSetError } @@ -15833,7 +16304,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListAnnotationEvaluatorsResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ChangeEvaluatorScoreResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -15842,33 +16313,18 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListAnnotationEvaluatorsResponse[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ChangeEvaluatorScoreResponse[fieldId])) } -func (p *ListAnnotationEvaluatorsResponse) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*annotation.AnnotationEvaluator, 0, size) - values := make([]annotation.AnnotationEvaluator, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { +func (p *ChangeEvaluatorScoreResponse) ReadField1(iprot thrift.TProtocol) error { + _field := annotation.NewAnnotation() + if err := _field.Read(iprot); err != nil { return err } - p.Evaluators = _field + p.Annotation = _field return nil } -func (p *ListAnnotationEvaluatorsResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *ChangeEvaluatorScoreResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -15877,9 +16333,9 @@ func (p *ListAnnotationEvaluatorsResponse) ReadField255(iprot thrift.TProtocol) return nil } -func (p *ListAnnotationEvaluatorsResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *ChangeEvaluatorScoreResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListAnnotationEvaluatorsResponse"); err != nil { + if err = oprot.WriteStructBegin("ChangeEvaluatorScoreResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -15909,19 +16365,11 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListAnnotationEvaluatorsResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("evaluators", thrift.LIST, 1); err != nil { +func (p *ChangeEvaluatorScoreResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotation", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Evaluators)); err != nil { - return err - } - for _, v := range p.Evaluators { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := p.Annotation.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -15933,7 +16381,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListAnnotationEvaluatorsResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ChangeEvaluatorScoreResponse) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBaseResp() { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -15952,21 +16400,21 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListAnnotationEvaluatorsResponse) String() string { +func (p *ChangeEvaluatorScoreResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ListAnnotationEvaluatorsResponse(%+v)", *p) + return fmt.Sprintf("ChangeEvaluatorScoreResponse(%+v)", *p) } -func (p *ListAnnotationEvaluatorsResponse) DeepEqual(ano *ListAnnotationEvaluatorsResponse) bool { +func (p *ChangeEvaluatorScoreResponse) DeepEqual(ano *ChangeEvaluatorScoreResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Evaluators) { + if !p.Field1DeepEqual(ano.Annotation) { return false } if !p.Field255DeepEqual(ano.BaseResp) { @@ -15975,20 +16423,14 @@ func (p *ListAnnotationEvaluatorsResponse) DeepEqual(ano *ListAnnotationEvaluato return true } -func (p *ListAnnotationEvaluatorsResponse) Field1DeepEqual(src []*annotation.AnnotationEvaluator) bool { +func (p *ChangeEvaluatorScoreResponse) Field1DeepEqual(src *annotation.Annotation) bool { - if len(p.Evaluators) != len(src) { + if !p.Annotation.DeepEqual(src) { return false } - for i, v := range p.Evaluators { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } return true } -func (p *ListAnnotationEvaluatorsResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *ChangeEvaluatorScoreResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -15996,166 +16438,77 @@ func (p *ListAnnotationEvaluatorsResponse) Field255DeepEqual(src *base.BaseResp) return true } -type ExtractSpanInfoRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - TraceID string `thrift:"trace_id,2,required" frugal:"2,required,string" form:"trace_id,required" json:"trace_id,required"` - SpanIds []string `thrift:"span_ids,3,required" frugal:"3,required,list" form:"span_ids,required" json:"span_ids,required"` - StartTime *int64 `thrift:"start_time,4,optional" frugal:"4,optional,i64" json:"start_time" form:"start_time" ` - EndTime *int64 `thrift:"end_time,5,optional" frugal:"5,optional,i64" json:"end_time" form:"end_time" ` - PlatformType *common.PlatformType `thrift:"platform_type,6,optional" frugal:"6,optional,string" form:"platform_type" json:"platform_type,omitempty"` - FieldMappings []*dataset0.FieldMapping `thrift:"field_mappings,7,optional" frugal:"7,optional,list" form:"field_mappings" json:"field_mappings,omitempty" query:"field_mappings"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"-" json:"-" query:"-"` +type ListAnnotationEvaluatorsRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" query:"workspace_id,required" ` + Name *string `thrift:"name,2,optional" frugal:"2,optional,string" form:"name" json:"name,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"-" json:"-" query:"-"` } -func NewExtractSpanInfoRequest() *ExtractSpanInfoRequest { - return &ExtractSpanInfoRequest{} +func NewListAnnotationEvaluatorsRequest() *ListAnnotationEvaluatorsRequest { + return &ListAnnotationEvaluatorsRequest{} } -func (p *ExtractSpanInfoRequest) InitDefault() { +func (p *ListAnnotationEvaluatorsRequest) InitDefault() { } -func (p *ExtractSpanInfoRequest) GetWorkspaceID() (v int64) { +func (p *ListAnnotationEvaluatorsRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *ExtractSpanInfoRequest) GetTraceID() (v string) { - if p != nil { - return p.TraceID - } - return -} - -func (p *ExtractSpanInfoRequest) GetSpanIds() (v []string) { - if p != nil { - return p.SpanIds - } - return -} - -var ExtractSpanInfoRequest_StartTime_DEFAULT int64 - -func (p *ExtractSpanInfoRequest) GetStartTime() (v int64) { - if p == nil { - return - } - if !p.IsSetStartTime() { - return ExtractSpanInfoRequest_StartTime_DEFAULT - } - return *p.StartTime -} - -var ExtractSpanInfoRequest_EndTime_DEFAULT int64 - -func (p *ExtractSpanInfoRequest) GetEndTime() (v int64) { - if p == nil { - return - } - if !p.IsSetEndTime() { - return ExtractSpanInfoRequest_EndTime_DEFAULT - } - return *p.EndTime -} - -var ExtractSpanInfoRequest_PlatformType_DEFAULT common.PlatformType - -func (p *ExtractSpanInfoRequest) GetPlatformType() (v common.PlatformType) { - if p == nil { - return - } - if !p.IsSetPlatformType() { - return ExtractSpanInfoRequest_PlatformType_DEFAULT - } - return *p.PlatformType -} - -var ExtractSpanInfoRequest_FieldMappings_DEFAULT []*dataset0.FieldMapping +var ListAnnotationEvaluatorsRequest_Name_DEFAULT string -func (p *ExtractSpanInfoRequest) GetFieldMappings() (v []*dataset0.FieldMapping) { +func (p *ListAnnotationEvaluatorsRequest) GetName() (v string) { if p == nil { return } - if !p.IsSetFieldMappings() { - return ExtractSpanInfoRequest_FieldMappings_DEFAULT + if !p.IsSetName() { + return ListAnnotationEvaluatorsRequest_Name_DEFAULT } - return p.FieldMappings + return *p.Name } -var ExtractSpanInfoRequest_Base_DEFAULT *base.Base +var ListAnnotationEvaluatorsRequest_Base_DEFAULT *base.Base -func (p *ExtractSpanInfoRequest) GetBase() (v *base.Base) { +func (p *ListAnnotationEvaluatorsRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return ExtractSpanInfoRequest_Base_DEFAULT + return ListAnnotationEvaluatorsRequest_Base_DEFAULT } return p.Base } -func (p *ExtractSpanInfoRequest) SetWorkspaceID(val int64) { +func (p *ListAnnotationEvaluatorsRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *ExtractSpanInfoRequest) SetTraceID(val string) { - p.TraceID = val -} -func (p *ExtractSpanInfoRequest) SetSpanIds(val []string) { - p.SpanIds = val -} -func (p *ExtractSpanInfoRequest) SetStartTime(val *int64) { - p.StartTime = val -} -func (p *ExtractSpanInfoRequest) SetEndTime(val *int64) { - p.EndTime = val -} -func (p *ExtractSpanInfoRequest) SetPlatformType(val *common.PlatformType) { - p.PlatformType = val -} -func (p *ExtractSpanInfoRequest) SetFieldMappings(val []*dataset0.FieldMapping) { - p.FieldMappings = val +func (p *ListAnnotationEvaluatorsRequest) SetName(val *string) { + p.Name = val } -func (p *ExtractSpanInfoRequest) SetBase(val *base.Base) { +func (p *ListAnnotationEvaluatorsRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ExtractSpanInfoRequest = map[int16]string{ +var fieldIDToName_ListAnnotationEvaluatorsRequest = map[int16]string{ 1: "workspace_id", - 2: "trace_id", - 3: "span_ids", - 4: "start_time", - 5: "end_time", - 6: "platform_type", - 7: "field_mappings", + 2: "name", 255: "Base", } -func (p *ExtractSpanInfoRequest) IsSetStartTime() bool { - return p.StartTime != nil -} - -func (p *ExtractSpanInfoRequest) IsSetEndTime() bool { - return p.EndTime != nil -} - -func (p *ExtractSpanInfoRequest) IsSetPlatformType() bool { - return p.PlatformType != nil -} - -func (p *ExtractSpanInfoRequest) IsSetFieldMappings() bool { - return p.FieldMappings != nil +func (p *ListAnnotationEvaluatorsRequest) IsSetName() bool { + return p.Name != nil } -func (p *ExtractSpanInfoRequest) IsSetBase() bool { +func (p *ListAnnotationEvaluatorsRequest) IsSetBase() bool { return p.Base != nil } -func (p *ExtractSpanInfoRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *ListAnnotationEvaluatorsRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetTraceID bool = false - var issetSpanIds bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -16185,48 +16538,6 @@ func (p *ExtractSpanInfoRequest) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetTraceID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.LIST { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - issetSpanIds = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.I64 { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.I64 { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRING { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.LIST { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -16255,23 +16566,13 @@ func (p *ExtractSpanInfoRequest) Read(iprot thrift.TProtocol) (err error) { fieldId = 1 goto RequiredFieldNotSetError } - - if !issetTraceID { - fieldId = 2 - goto RequiredFieldNotSetError - } - - if !issetSpanIds { - fieldId = 3 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExtractSpanInfoRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListAnnotationEvaluatorsRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -16280,10 +16581,10 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ExtractSpanInfoRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListAnnotationEvaluatorsRequest[fieldId])) } -func (p *ExtractSpanInfoRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *ListAnnotationEvaluatorsRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -16294,149 +16595,50 @@ func (p *ExtractSpanInfoRequest) ReadField1(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *ExtractSpanInfoRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *ListAnnotationEvaluatorsRequest) ReadField2(iprot thrift.TProtocol) error { - var _field string + var _field *string if v, err := iprot.ReadString(); err != nil { return err } else { - _field = v + _field = &v } - p.TraceID = _field + p.Name = _field return nil } -func (p *ExtractSpanInfoRequest) ReadField3(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { +func (p *ListAnnotationEvaluatorsRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { return err } - _field := make([]string, 0, size) - for i := 0; i < size; i++ { + p.Base = _field + return nil +} - var _elem string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _elem = v +func (p *ListAnnotationEvaluatorsRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListAnnotationEvaluatorsRequest"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError } - - _field = append(_field, _elem) } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.SpanIds = _field - return nil -} -func (p *ExtractSpanInfoRequest) ReadField4(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.StartTime = _field - return nil -} -func (p *ExtractSpanInfoRequest) ReadField5(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.EndTime = _field - return nil -} -func (p *ExtractSpanInfoRequest) ReadField6(iprot thrift.TProtocol) error { - - var _field *common.PlatformType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.PlatformType = _field - return nil -} -func (p *ExtractSpanInfoRequest) ReadField7(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*dataset0.FieldMapping, 0, size) - values := make([]dataset0.FieldMapping, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.FieldMappings = _field - return nil -} -func (p *ExtractSpanInfoRequest) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBase() - if err := _field.Read(iprot); err != nil { - return err - } - p.Base = _field - return nil -} - -func (p *ExtractSpanInfoRequest) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ExtractSpanInfoRequest"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } return nil WriteStructBeginError: @@ -16449,7 +16651,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExtractSpanInfoRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ListAnnotationEvaluatorsRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -16465,114 +16667,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExtractSpanInfoRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.TraceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ExtractSpanInfoRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("span_ids", thrift.LIST, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRING, len(p.SpanIds)); err != nil { - return err - } - for _, v := range p.SpanIds { - if err := oprot.WriteString(v); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ExtractSpanInfoRequest) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetStartTime() { - if err = oprot.WriteFieldBegin("start_time", thrift.I64, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.StartTime); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *ExtractSpanInfoRequest) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetEndTime() { - if err = oprot.WriteFieldBegin("end_time", thrift.I64, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.EndTime); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *ExtractSpanInfoRequest) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetPlatformType() { - if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PlatformType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *ExtractSpanInfoRequest) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetFieldMappings() { - if err = oprot.WriteFieldBegin("field_mappings", thrift.LIST, 7); err != nil { +func (p *ListAnnotationEvaluatorsRequest) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetName() { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldMappings)); err != nil { - return err - } - for _, v := range p.FieldMappings { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteString(*p.Name); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -16581,11 +16681,11 @@ func (p *ExtractSpanInfoRequest) writeField7(oprot thrift.TProtocol) (err error) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExtractSpanInfoRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ListAnnotationEvaluatorsRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -16604,15 +16704,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ExtractSpanInfoRequest) String() string { +func (p *ListAnnotationEvaluatorsRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ExtractSpanInfoRequest(%+v)", *p) + return fmt.Sprintf("ListAnnotationEvaluatorsRequest(%+v)", *p) } -func (p *ExtractSpanInfoRequest) DeepEqual(ano *ExtractSpanInfoRequest) bool { +func (p *ListAnnotationEvaluatorsRequest) DeepEqual(ano *ListAnnotationEvaluatorsRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -16621,22 +16721,7 @@ func (p *ExtractSpanInfoRequest) DeepEqual(ano *ExtractSpanInfoRequest) bool { if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.TraceID) { - return false - } - if !p.Field3DeepEqual(ano.SpanIds) { - return false - } - if !p.Field4DeepEqual(ano.StartTime) { - return false - } - if !p.Field5DeepEqual(ano.EndTime) { - return false - } - if !p.Field6DeepEqual(ano.PlatformType) { - return false - } - if !p.Field7DeepEqual(ano.FieldMappings) { + if !p.Field2DeepEqual(ano.Name) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -16645,83 +16730,26 @@ func (p *ExtractSpanInfoRequest) DeepEqual(ano *ExtractSpanInfoRequest) bool { return true } -func (p *ExtractSpanInfoRequest) Field1DeepEqual(src int64) bool { +func (p *ListAnnotationEvaluatorsRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *ExtractSpanInfoRequest) Field2DeepEqual(src string) bool { +func (p *ListAnnotationEvaluatorsRequest) Field2DeepEqual(src *string) bool { - if strings.Compare(p.TraceID, src) != 0 { + if p.Name == src { + return true + } else if p.Name == nil || src == nil { return false } - return true -} -func (p *ExtractSpanInfoRequest) Field3DeepEqual(src []string) bool { - - if len(p.SpanIds) != len(src) { - return false - } - for i, v := range p.SpanIds { - _src := src[i] - if strings.Compare(v, _src) != 0 { - return false - } - } - return true -} -func (p *ExtractSpanInfoRequest) Field4DeepEqual(src *int64) bool { - - if p.StartTime == src { - return true - } else if p.StartTime == nil || src == nil { - return false - } - if *p.StartTime != *src { - return false - } - return true -} -func (p *ExtractSpanInfoRequest) Field5DeepEqual(src *int64) bool { - - if p.EndTime == src { - return true - } else if p.EndTime == nil || src == nil { - return false - } - if *p.EndTime != *src { - return false - } - return true -} -func (p *ExtractSpanInfoRequest) Field6DeepEqual(src *common.PlatformType) bool { - - if p.PlatformType == src { - return true - } else if p.PlatformType == nil || src == nil { - return false - } - if strings.Compare(*p.PlatformType, *src) != 0 { - return false - } - return true -} -func (p *ExtractSpanInfoRequest) Field7DeepEqual(src []*dataset0.FieldMapping) bool { - - if len(p.FieldMappings) != len(src) { + if strings.Compare(*p.Name, *src) != 0 { return false } - for i, v := range p.FieldMappings { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } return true } -func (p *ExtractSpanInfoRequest) Field255DeepEqual(src *base.Base) bool { +func (p *ListAnnotationEvaluatorsRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -16729,48 +16757,56 @@ func (p *ExtractSpanInfoRequest) Field255DeepEqual(src *base.Base) bool { return true } -type SpanInfo struct { - SpanID string `thrift:"span_id,1,required" frugal:"1,required,string" form:"span_id,required" json:"span_id,required" query:"span_id,required"` - FieldList []*dataset0.FieldData `thrift:"field_list,2,required" frugal:"2,required,list" form:"field_list,required" json:"field_list,required" query:"field_list,required"` +type ListAnnotationEvaluatorsResponse struct { + Evaluators []*annotation.AnnotationEvaluator `thrift:"evaluators,1,required" frugal:"1,required,list" form:"evaluators,required" json:"evaluators,required" query:"evaluators,required"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewSpanInfo() *SpanInfo { - return &SpanInfo{} +func NewListAnnotationEvaluatorsResponse() *ListAnnotationEvaluatorsResponse { + return &ListAnnotationEvaluatorsResponse{} } -func (p *SpanInfo) InitDefault() { +func (p *ListAnnotationEvaluatorsResponse) InitDefault() { } -func (p *SpanInfo) GetSpanID() (v string) { +func (p *ListAnnotationEvaluatorsResponse) GetEvaluators() (v []*annotation.AnnotationEvaluator) { if p != nil { - return p.SpanID + return p.Evaluators } return } -func (p *SpanInfo) GetFieldList() (v []*dataset0.FieldData) { - if p != nil { - return p.FieldList +var ListAnnotationEvaluatorsResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *ListAnnotationEvaluatorsResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return } - return + if !p.IsSetBaseResp() { + return ListAnnotationEvaluatorsResponse_BaseResp_DEFAULT + } + return p.BaseResp } -func (p *SpanInfo) SetSpanID(val string) { - p.SpanID = val +func (p *ListAnnotationEvaluatorsResponse) SetEvaluators(val []*annotation.AnnotationEvaluator) { + p.Evaluators = val } -func (p *SpanInfo) SetFieldList(val []*dataset0.FieldData) { - p.FieldList = val +func (p *ListAnnotationEvaluatorsResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val } -var fieldIDToName_SpanInfo = map[int16]string{ - 1: "span_id", - 2: "field_list", +var fieldIDToName_ListAnnotationEvaluatorsResponse = map[int16]string{ + 1: "evaluators", + 255: "BaseResp", } -func (p *SpanInfo) Read(iprot thrift.TProtocol) (err error) { +func (p *ListAnnotationEvaluatorsResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *ListAnnotationEvaluatorsResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetSpanID bool = false - var issetFieldList bool = false + var issetEvaluators bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -16787,20 +16823,19 @@ func (p *SpanInfo) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.LIST { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetSpanID = true + issetEvaluators = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 2: - if fieldTypeId == thrift.LIST { - if err = p.ReadField2(iprot); err != nil { + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { goto ReadFieldError } - issetFieldList = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -16817,22 +16852,17 @@ func (p *SpanInfo) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetSpanID { + if !issetEvaluators { fieldId = 1 goto RequiredFieldNotSetError } - - if !issetFieldList { - fieldId = 2 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SpanInfo[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListAnnotationEvaluatorsResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -16841,27 +16871,16 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_SpanInfo[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListAnnotationEvaluatorsResponse[fieldId])) } -func (p *SpanInfo) ReadField1(iprot thrift.TProtocol) error { - - var _field string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } - p.SpanID = _field - return nil -} -func (p *SpanInfo) ReadField2(iprot thrift.TProtocol) error { +func (p *ListAnnotationEvaluatorsResponse) ReadField1(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { return err } - _field := make([]*dataset0.FieldData, 0, size) - values := make([]dataset0.FieldData, size) + _field := make([]*annotation.AnnotationEvaluator, 0, size) + values := make([]annotation.AnnotationEvaluator, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -16875,13 +16894,21 @@ func (p *SpanInfo) ReadField2(iprot thrift.TProtocol) error { if err := iprot.ReadListEnd(); err != nil { return err } - p.FieldList = _field + p.Evaluators = _field + return nil +} +func (p *ListAnnotationEvaluatorsResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field return nil } -func (p *SpanInfo) Write(oprot thrift.TProtocol) (err error) { +func (p *ListAnnotationEvaluatorsResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("SpanInfo"); err != nil { + if err = oprot.WriteStructBegin("ListAnnotationEvaluatorsResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -16889,8 +16916,8 @@ func (p *SpanInfo) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 + if err = p.writeField255(oprot); err != nil { + fieldId = 255 goto WriteFieldError } } @@ -16911,11 +16938,19 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *SpanInfo) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("span_id", thrift.STRING, 1); err != nil { +func (p *ListAnnotationEvaluatorsResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("evaluators", thrift.LIST, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(p.SpanID); err != nil { + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Evaluators)); err != nil { + return err + } + for _, v := range p.Evaluators { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -16927,67 +16962,54 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *SpanInfo) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("field_list", thrift.LIST, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldList)); err != nil { - return err - } - for _, v := range p.FieldList { - if err := v.Write(oprot); err != nil { +func (p *ListAnnotationEvaluatorsResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.Write(oprot); err != nil { return err } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *SpanInfo) String() string { +func (p *ListAnnotationEvaluatorsResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("SpanInfo(%+v)", *p) + return fmt.Sprintf("ListAnnotationEvaluatorsResponse(%+v)", *p) } -func (p *SpanInfo) DeepEqual(ano *SpanInfo) bool { +func (p *ListAnnotationEvaluatorsResponse) DeepEqual(ano *ListAnnotationEvaluatorsResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.SpanID) { + if !p.Field1DeepEqual(ano.Evaluators) { return false } - if !p.Field2DeepEqual(ano.FieldList) { + if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *SpanInfo) Field1DeepEqual(src string) bool { - - if strings.Compare(p.SpanID, src) != 0 { - return false - } - return true -} -func (p *SpanInfo) Field2DeepEqual(src []*dataset0.FieldData) bool { +func (p *ListAnnotationEvaluatorsResponse) Field1DeepEqual(src []*annotation.AnnotationEvaluator) bool { - if len(p.FieldList) != len(src) { + if len(p.Evaluators) != len(src) { return false } - for i, v := range p.FieldList { + for i, v := range p.Evaluators { _src := src[i] if !v.DeepEqual(_src) { return false @@ -16995,57 +17017,174 @@ func (p *SpanInfo) Field2DeepEqual(src []*dataset0.FieldData) bool { } return true } +func (p *ListAnnotationEvaluatorsResponse) Field255DeepEqual(src *base.BaseResp) bool { -type ExtractSpanInfoResponse struct { - SpanInfos []*SpanInfo `thrift:"span_infos,1,required" frugal:"1,required,list" form:"span_infos,required" json:"span_infos,required" query:"span_infos,required"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` + if !p.BaseResp.DeepEqual(src) { + return false + } + return true } -func NewExtractSpanInfoResponse() *ExtractSpanInfoResponse { - return &ExtractSpanInfoResponse{} +type ExtractSpanInfoRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + TraceID string `thrift:"trace_id,2,required" frugal:"2,required,string" form:"trace_id,required" json:"trace_id,required"` + SpanIds []string `thrift:"span_ids,3,required" frugal:"3,required,list" form:"span_ids,required" json:"span_ids,required"` + StartTime *int64 `thrift:"start_time,4,optional" frugal:"4,optional,i64" json:"start_time" form:"start_time" ` + EndTime *int64 `thrift:"end_time,5,optional" frugal:"5,optional,i64" json:"end_time" form:"end_time" ` + PlatformType *common.PlatformType `thrift:"platform_type,6,optional" frugal:"6,optional,string" form:"platform_type" json:"platform_type,omitempty"` + FieldMappings []*dataset0.FieldMapping `thrift:"field_mappings,7,optional" frugal:"7,optional,list" form:"field_mappings" json:"field_mappings,omitempty" query:"field_mappings"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"-" json:"-" query:"-"` } -func (p *ExtractSpanInfoResponse) InitDefault() { -} +func NewExtractSpanInfoRequest() *ExtractSpanInfoRequest { + return &ExtractSpanInfoRequest{} +} -func (p *ExtractSpanInfoResponse) GetSpanInfos() (v []*SpanInfo) { +func (p *ExtractSpanInfoRequest) InitDefault() { +} + +func (p *ExtractSpanInfoRequest) GetWorkspaceID() (v int64) { if p != nil { - return p.SpanInfos + return p.WorkspaceID } return } -var ExtractSpanInfoResponse_BaseResp_DEFAULT *base.BaseResp +func (p *ExtractSpanInfoRequest) GetTraceID() (v string) { + if p != nil { + return p.TraceID + } + return +} -func (p *ExtractSpanInfoResponse) GetBaseResp() (v *base.BaseResp) { +func (p *ExtractSpanInfoRequest) GetSpanIds() (v []string) { + if p != nil { + return p.SpanIds + } + return +} + +var ExtractSpanInfoRequest_StartTime_DEFAULT int64 + +func (p *ExtractSpanInfoRequest) GetStartTime() (v int64) { if p == nil { return } - if !p.IsSetBaseResp() { - return ExtractSpanInfoResponse_BaseResp_DEFAULT + if !p.IsSetStartTime() { + return ExtractSpanInfoRequest_StartTime_DEFAULT } - return p.BaseResp + return *p.StartTime } -func (p *ExtractSpanInfoResponse) SetSpanInfos(val []*SpanInfo) { - p.SpanInfos = val + +var ExtractSpanInfoRequest_EndTime_DEFAULT int64 + +func (p *ExtractSpanInfoRequest) GetEndTime() (v int64) { + if p == nil { + return + } + if !p.IsSetEndTime() { + return ExtractSpanInfoRequest_EndTime_DEFAULT + } + return *p.EndTime } -func (p *ExtractSpanInfoResponse) SetBaseResp(val *base.BaseResp) { - p.BaseResp = val + +var ExtractSpanInfoRequest_PlatformType_DEFAULT common.PlatformType + +func (p *ExtractSpanInfoRequest) GetPlatformType() (v common.PlatformType) { + if p == nil { + return + } + if !p.IsSetPlatformType() { + return ExtractSpanInfoRequest_PlatformType_DEFAULT + } + return *p.PlatformType } -var fieldIDToName_ExtractSpanInfoResponse = map[int16]string{ - 1: "span_infos", - 255: "BaseResp", +var ExtractSpanInfoRequest_FieldMappings_DEFAULT []*dataset0.FieldMapping + +func (p *ExtractSpanInfoRequest) GetFieldMappings() (v []*dataset0.FieldMapping) { + if p == nil { + return + } + if !p.IsSetFieldMappings() { + return ExtractSpanInfoRequest_FieldMappings_DEFAULT + } + return p.FieldMappings } -func (p *ExtractSpanInfoResponse) IsSetBaseResp() bool { - return p.BaseResp != nil +var ExtractSpanInfoRequest_Base_DEFAULT *base.Base + +func (p *ExtractSpanInfoRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return ExtractSpanInfoRequest_Base_DEFAULT + } + return p.Base +} +func (p *ExtractSpanInfoRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val +} +func (p *ExtractSpanInfoRequest) SetTraceID(val string) { + p.TraceID = val +} +func (p *ExtractSpanInfoRequest) SetSpanIds(val []string) { + p.SpanIds = val +} +func (p *ExtractSpanInfoRequest) SetStartTime(val *int64) { + p.StartTime = val +} +func (p *ExtractSpanInfoRequest) SetEndTime(val *int64) { + p.EndTime = val +} +func (p *ExtractSpanInfoRequest) SetPlatformType(val *common.PlatformType) { + p.PlatformType = val +} +func (p *ExtractSpanInfoRequest) SetFieldMappings(val []*dataset0.FieldMapping) { + p.FieldMappings = val +} +func (p *ExtractSpanInfoRequest) SetBase(val *base.Base) { + p.Base = val } -func (p *ExtractSpanInfoResponse) Read(iprot thrift.TProtocol) (err error) { +var fieldIDToName_ExtractSpanInfoRequest = map[int16]string{ + 1: "workspace_id", + 2: "trace_id", + 3: "span_ids", + 4: "start_time", + 5: "end_time", + 6: "platform_type", + 7: "field_mappings", + 255: "Base", +} + +func (p *ExtractSpanInfoRequest) IsSetStartTime() bool { + return p.StartTime != nil +} + +func (p *ExtractSpanInfoRequest) IsSetEndTime() bool { + return p.EndTime != nil +} + +func (p *ExtractSpanInfoRequest) IsSetPlatformType() bool { + return p.PlatformType != nil +} + +func (p *ExtractSpanInfoRequest) IsSetFieldMappings() bool { + return p.FieldMappings != nil +} + +func (p *ExtractSpanInfoRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *ExtractSpanInfoRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetSpanInfos bool = false + var issetWorkspaceID bool = false + var issetTraceID bool = false + var issetSpanIds bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -17062,11 +17201,61 @@ func (p *ExtractSpanInfoResponse) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.I64 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetSpanInfos = true + issetWorkspaceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetTraceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.LIST { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + issetSpanIds = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I64 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.I64 { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.LIST { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -17091,17 +17280,27 @@ func (p *ExtractSpanInfoResponse) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetSpanInfos { + if !issetWorkspaceID { fieldId = 1 goto RequiredFieldNotSetError } + + if !issetTraceID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetSpanIds { + fieldId = 3 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExtractSpanInfoResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExtractSpanInfoRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -17110,22 +17309,44 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ExtractSpanInfoResponse[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ExtractSpanInfoRequest[fieldId])) } -func (p *ExtractSpanInfoResponse) ReadField1(iprot thrift.TProtocol) error { +func (p *ExtractSpanInfoRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *ExtractSpanInfoRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.TraceID = _field + return nil +} +func (p *ExtractSpanInfoRequest) ReadField3(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { return err } - _field := make([]*SpanInfo, 0, size) - values := make([]SpanInfo, size) + _field := make([]string, 0, size) for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if err := _elem.Read(iprot); err != nil { + var _elem string + if v, err := iprot.ReadString(); err != nil { return err + } else { + _elem = v } _field = append(_field, _elem) @@ -17133,21 +17354,77 @@ func (p *ExtractSpanInfoResponse) ReadField1(iprot thrift.TProtocol) error { if err := iprot.ReadListEnd(); err != nil { return err } - p.SpanInfos = _field + p.SpanIds = _field return nil } -func (p *ExtractSpanInfoResponse) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBaseResp() - if err := _field.Read(iprot); err != nil { - return err +func (p *ExtractSpanInfoRequest) ReadField4(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v } - p.BaseResp = _field + p.StartTime = _field return nil } +func (p *ExtractSpanInfoRequest) ReadField5(iprot thrift.TProtocol) error { -func (p *ExtractSpanInfoResponse) Write(oprot thrift.TProtocol) (err error) { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.EndTime = _field + return nil +} +func (p *ExtractSpanInfoRequest) ReadField6(iprot thrift.TProtocol) error { + + var _field *common.PlatformType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PlatformType = _field + return nil +} +func (p *ExtractSpanInfoRequest) ReadField7(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*dataset0.FieldMapping, 0, size) + values := make([]dataset0.FieldMapping, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.FieldMappings = _field + return nil +} +func (p *ExtractSpanInfoRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *ExtractSpanInfoRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExtractSpanInfoResponse"); err != nil { + if err = oprot.WriteStructBegin("ExtractSpanInfoRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -17155,6 +17432,30 @@ func (p *ExtractSpanInfoResponse) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -17177,15 +17478,47 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExtractSpanInfoResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("span_infos", thrift.LIST, 1); err != nil { +func (p *ExtractSpanInfoRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.SpanInfos)); err != nil { + if err := oprot.WriteI64(p.WorkspaceID); err != nil { return err } - for _, v := range p.SpanInfos { - if err := v.Write(oprot); err != nil { + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ExtractSpanInfoRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("trace_id", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.TraceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ExtractSpanInfoRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("span_ids", thrift.LIST, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.SpanIds)); err != nil { + return err + } + for _, v := range p.SpanIds { + if err := oprot.WriteString(v); err != nil { return err } } @@ -17197,16 +17530,96 @@ func (p *ExtractSpanInfoResponse) writeField1(oprot thrift.TProtocol) (err error } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ExtractSpanInfoResponse) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBaseResp() { - if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { +func (p *ExtractSpanInfoRequest) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetStartTime() { + if err = oprot.WriteFieldBegin("start_time", thrift.I64, 4); err != nil { goto WriteFieldBeginError } - if err := p.BaseResp.Write(oprot); err != nil { + if err := oprot.WriteI64(*p.StartTime); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ExtractSpanInfoRequest) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetEndTime() { + if err = oprot.WriteFieldBegin("end_time", thrift.I64, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.EndTime); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ExtractSpanInfoRequest) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetPlatformType() { + if err = oprot.WriteFieldBegin("platform_type", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PlatformType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *ExtractSpanInfoRequest) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetFieldMappings() { + if err = oprot.WriteFieldBegin("field_mappings", thrift.LIST, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldMappings)); err != nil { + return err + } + for _, v := range p.FieldMappings { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *ExtractSpanInfoRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -17220,299 +17633,927 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ExtractSpanInfoResponse) String() string { +func (p *ExtractSpanInfoRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ExtractSpanInfoResponse(%+v)", *p) + return fmt.Sprintf("ExtractSpanInfoRequest(%+v)", *p) } -func (p *ExtractSpanInfoResponse) DeepEqual(ano *ExtractSpanInfoResponse) bool { +func (p *ExtractSpanInfoRequest) DeepEqual(ano *ExtractSpanInfoRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.SpanInfos) { + if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field255DeepEqual(ano.BaseResp) { + if !p.Field2DeepEqual(ano.TraceID) { + return false + } + if !p.Field3DeepEqual(ano.SpanIds) { + return false + } + if !p.Field4DeepEqual(ano.StartTime) { + return false + } + if !p.Field5DeepEqual(ano.EndTime) { + return false + } + if !p.Field6DeepEqual(ano.PlatformType) { + return false + } + if !p.Field7DeepEqual(ano.FieldMappings) { + return false + } + if !p.Field255DeepEqual(ano.Base) { return false } return true } -func (p *ExtractSpanInfoResponse) Field1DeepEqual(src []*SpanInfo) bool { +func (p *ExtractSpanInfoRequest) Field1DeepEqual(src int64) bool { - if len(p.SpanInfos) != len(src) { + if p.WorkspaceID != src { return false } - for i, v := range p.SpanInfos { + return true +} +func (p *ExtractSpanInfoRequest) Field2DeepEqual(src string) bool { + + if strings.Compare(p.TraceID, src) != 0 { + return false + } + return true +} +func (p *ExtractSpanInfoRequest) Field3DeepEqual(src []string) bool { + + if len(p.SpanIds) != len(src) { + return false + } + for i, v := range p.SpanIds { _src := src[i] - if !v.DeepEqual(_src) { + if strings.Compare(v, _src) != 0 { return false } } return true } -func (p *ExtractSpanInfoResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *ExtractSpanInfoRequest) Field4DeepEqual(src *int64) bool { - if !p.BaseResp.DeepEqual(src) { + if p.StartTime == src { + return true + } else if p.StartTime == nil || src == nil { + return false + } + if *p.StartTime != *src { return false } return true } +func (p *ExtractSpanInfoRequest) Field5DeepEqual(src *int64) bool { -type TraceService interface { - ListSpans(ctx context.Context, req *ListSpansRequest) (r *ListSpansResponse, err error) - - GetTrace(ctx context.Context, req *GetTraceRequest) (r *GetTraceResponse, err error) - - BatchGetTracesAdvanceInfo(ctx context.Context, req *BatchGetTracesAdvanceInfoRequest) (r *BatchGetTracesAdvanceInfoResponse, err error) + if p.EndTime == src { + return true + } else if p.EndTime == nil || src == nil { + return false + } + if *p.EndTime != *src { + return false + } + return true +} +func (p *ExtractSpanInfoRequest) Field6DeepEqual(src *common.PlatformType) bool { - IngestTracesInner(ctx context.Context, req *IngestTracesRequest) (r *IngestTracesResponse, err error) + if p.PlatformType == src { + return true + } else if p.PlatformType == nil || src == nil { + return false + } + if strings.Compare(*p.PlatformType, *src) != 0 { + return false + } + return true +} +func (p *ExtractSpanInfoRequest) Field7DeepEqual(src []*dataset0.FieldMapping) bool { - GetTracesMetaInfo(ctx context.Context, req *GetTracesMetaInfoRequest) (r *GetTracesMetaInfoResponse, err error) + if len(p.FieldMappings) != len(src) { + return false + } + for i, v := range p.FieldMappings { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ExtractSpanInfoRequest) Field255DeepEqual(src *base.Base) bool { - CreateView(ctx context.Context, req *CreateViewRequest) (r *CreateViewResponse, err error) + if !p.Base.DeepEqual(src) { + return false + } + return true +} - UpdateView(ctx context.Context, req *UpdateViewRequest) (r *UpdateViewResponse, err error) +type SpanInfo struct { + SpanID string `thrift:"span_id,1,required" frugal:"1,required,string" form:"span_id,required" json:"span_id,required" query:"span_id,required"` + FieldList []*dataset0.FieldData `thrift:"field_list,2,required" frugal:"2,required,list" form:"field_list,required" json:"field_list,required" query:"field_list,required"` +} - DeleteView(ctx context.Context, req *DeleteViewRequest) (r *DeleteViewResponse, err error) +func NewSpanInfo() *SpanInfo { + return &SpanInfo{} +} - ListViews(ctx context.Context, req *ListViewsRequest) (r *ListViewsResponse, err error) +func (p *SpanInfo) InitDefault() { +} - CreateManualAnnotation(ctx context.Context, req *CreateManualAnnotationRequest) (r *CreateManualAnnotationResponse, err error) +func (p *SpanInfo) GetSpanID() (v string) { + if p != nil { + return p.SpanID + } + return +} - UpdateManualAnnotation(ctx context.Context, req *UpdateManualAnnotationRequest) (r *UpdateManualAnnotationResponse, err error) +func (p *SpanInfo) GetFieldList() (v []*dataset0.FieldData) { + if p != nil { + return p.FieldList + } + return +} +func (p *SpanInfo) SetSpanID(val string) { + p.SpanID = val +} +func (p *SpanInfo) SetFieldList(val []*dataset0.FieldData) { + p.FieldList = val +} - DeleteManualAnnotation(ctx context.Context, req *DeleteManualAnnotationRequest) (r *DeleteManualAnnotationResponse, err error) +var fieldIDToName_SpanInfo = map[int16]string{ + 1: "span_id", + 2: "field_list", +} - ListAnnotations(ctx context.Context, req *ListAnnotationsRequest) (r *ListAnnotationsResponse, err error) +func (p *SpanInfo) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetSpanID bool = false + var issetFieldList bool = false - ExportTracesToDataset(ctx context.Context, req *ExportTracesToDatasetRequest) (r *ExportTracesToDatasetResponse, err error) + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } - PreviewExportTracesToDataset(ctx context.Context, req *PreviewExportTracesToDatasetRequest) (r *PreviewExportTracesToDatasetResponse, err error) + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } - ChangeEvaluatorScore(ctx context.Context, req *ChangeEvaluatorScoreRequest) (r *ChangeEvaluatorScoreResponse, err error) + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetSpanID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetFieldList = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } - ListAnnotationEvaluators(ctx context.Context, req *ListAnnotationEvaluatorsRequest) (r *ListAnnotationEvaluatorsResponse, err error) + if !issetSpanID { + fieldId = 1 + goto RequiredFieldNotSetError + } - ExtractSpanInfo(ctx context.Context, req *ExtractSpanInfoRequest) (r *ExtractSpanInfoResponse, err error) -} + if !issetFieldList { + fieldId = 2 + goto RequiredFieldNotSetError + } + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SpanInfo[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -type TraceServiceClient struct { - c thrift.TClient +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_SpanInfo[fieldId])) } -func NewTraceServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *TraceServiceClient { - return &TraceServiceClient{ - c: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)), - } -} +func (p *SpanInfo) ReadField1(iprot thrift.TProtocol) error { -func NewTraceServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *TraceServiceClient { - return &TraceServiceClient{ - c: thrift.NewTStandardClient(iprot, oprot), + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v } + p.SpanID = _field + return nil } - -func NewTraceServiceClient(c thrift.TClient) *TraceServiceClient { - return &TraceServiceClient{ - c: c, +func (p *SpanInfo) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err } -} + _field := make([]*dataset0.FieldData, 0, size) + values := make([]dataset0.FieldData, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() -func (p *TraceServiceClient) Client_() thrift.TClient { - return p.c -} + if err := _elem.Read(iprot); err != nil { + return err + } -func (p *TraceServiceClient) ListSpans(ctx context.Context, req *ListSpansRequest) (r *ListSpansResponse, err error) { - var _args TraceServiceListSpansArgs - _args.Req = req - var _result TraceServiceListSpansResult - if err = p.Client_().Call(ctx, "ListSpans", &_args, &_result); err != nil { - return + _field = append(_field, _elem) } - return _result.GetSuccess(), nil -} -func (p *TraceServiceClient) GetTrace(ctx context.Context, req *GetTraceRequest) (r *GetTraceResponse, err error) { - var _args TraceServiceGetTraceArgs - _args.Req = req - var _result TraceServiceGetTraceResult - if err = p.Client_().Call(ctx, "GetTrace", &_args, &_result); err != nil { - return + if err := iprot.ReadListEnd(); err != nil { + return err } - return _result.GetSuccess(), nil + p.FieldList = _field + return nil } -func (p *TraceServiceClient) BatchGetTracesAdvanceInfo(ctx context.Context, req *BatchGetTracesAdvanceInfoRequest) (r *BatchGetTracesAdvanceInfoResponse, err error) { - var _args TraceServiceBatchGetTracesAdvanceInfoArgs - _args.Req = req - var _result TraceServiceBatchGetTracesAdvanceInfoResult - if err = p.Client_().Call(ctx, "BatchGetTracesAdvanceInfo", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil -} -func (p *TraceServiceClient) IngestTracesInner(ctx context.Context, req *IngestTracesRequest) (r *IngestTracesResponse, err error) { - var _args TraceServiceIngestTracesInnerArgs - _args.Req = req - var _result TraceServiceIngestTracesInnerResult - if err = p.Client_().Call(ctx, "IngestTracesInner", &_args, &_result); err != nil { - return + +func (p *SpanInfo) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("SpanInfo"); err != nil { + goto WriteStructBeginError } - return _result.GetSuccess(), nil -} -func (p *TraceServiceClient) GetTracesMetaInfo(ctx context.Context, req *GetTracesMetaInfoRequest) (r *GetTracesMetaInfoResponse, err error) { - var _args TraceServiceGetTracesMetaInfoArgs - _args.Req = req - var _result TraceServiceGetTracesMetaInfoResult - if err = p.Client_().Call(ctx, "GetTracesMetaInfo", &_args, &_result); err != nil { - return + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } } - return _result.GetSuccess(), nil -} -func (p *TraceServiceClient) CreateView(ctx context.Context, req *CreateViewRequest) (r *CreateViewResponse, err error) { - var _args TraceServiceCreateViewArgs - _args.Req = req - var _result TraceServiceCreateViewResult - if err = p.Client_().Call(ctx, "CreateView", &_args, &_result); err != nil { - return + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - return _result.GetSuccess(), nil -} -func (p *TraceServiceClient) UpdateView(ctx context.Context, req *UpdateViewRequest) (r *UpdateViewResponse, err error) { - var _args TraceServiceUpdateViewArgs - _args.Req = req - var _result TraceServiceUpdateViewResult - if err = p.Client_().Call(ctx, "UpdateView", &_args, &_result); err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return _result.GetSuccess(), nil + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TraceServiceClient) DeleteView(ctx context.Context, req *DeleteViewRequest) (r *DeleteViewResponse, err error) { - var _args TraceServiceDeleteViewArgs - _args.Req = req - var _result TraceServiceDeleteViewResult - if err = p.Client_().Call(ctx, "DeleteView", &_args, &_result); err != nil { - return + +func (p *SpanInfo) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("span_id", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError } - return _result.GetSuccess(), nil -} -func (p *TraceServiceClient) ListViews(ctx context.Context, req *ListViewsRequest) (r *ListViewsResponse, err error) { - var _args TraceServiceListViewsArgs - _args.Req = req - var _result TraceServiceListViewsResult - if err = p.Client_().Call(ctx, "ListViews", &_args, &_result); err != nil { - return + if err := oprot.WriteString(p.SpanID); err != nil { + return err } - return _result.GetSuccess(), nil -} -func (p *TraceServiceClient) CreateManualAnnotation(ctx context.Context, req *CreateManualAnnotationRequest) (r *CreateManualAnnotationResponse, err error) { - var _args TraceServiceCreateManualAnnotationArgs - _args.Req = req - var _result TraceServiceCreateManualAnnotationResult - if err = p.Client_().Call(ctx, "CreateManualAnnotation", &_args, &_result); err != nil { - return + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } - return _result.GetSuccess(), nil + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *TraceServiceClient) UpdateManualAnnotation(ctx context.Context, req *UpdateManualAnnotationRequest) (r *UpdateManualAnnotationResponse, err error) { - var _args TraceServiceUpdateManualAnnotationArgs - _args.Req = req - var _result TraceServiceUpdateManualAnnotationResult - if err = p.Client_().Call(ctx, "UpdateManualAnnotation", &_args, &_result); err != nil { - return +func (p *SpanInfo) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("field_list", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError } - return _result.GetSuccess(), nil -} -func (p *TraceServiceClient) DeleteManualAnnotation(ctx context.Context, req *DeleteManualAnnotationRequest) (r *DeleteManualAnnotationResponse, err error) { - var _args TraceServiceDeleteManualAnnotationArgs - _args.Req = req - var _result TraceServiceDeleteManualAnnotationResult - if err = p.Client_().Call(ctx, "DeleteManualAnnotation", &_args, &_result); err != nil { - return + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FieldList)); err != nil { + return err } - return _result.GetSuccess(), nil + for _, v := range p.FieldList { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *TraceServiceClient) ListAnnotations(ctx context.Context, req *ListAnnotationsRequest) (r *ListAnnotationsResponse, err error) { - var _args TraceServiceListAnnotationsArgs - _args.Req = req - var _result TraceServiceListAnnotationsResult - if err = p.Client_().Call(ctx, "ListAnnotations", &_args, &_result); err != nil { - return + +func (p *SpanInfo) String() string { + if p == nil { + return "" } - return _result.GetSuccess(), nil + return fmt.Sprintf("SpanInfo(%+v)", *p) + } -func (p *TraceServiceClient) ExportTracesToDataset(ctx context.Context, req *ExportTracesToDatasetRequest) (r *ExportTracesToDatasetResponse, err error) { - var _args TraceServiceExportTracesToDatasetArgs - _args.Req = req - var _result TraceServiceExportTracesToDatasetResult - if err = p.Client_().Call(ctx, "ExportTracesToDataset", &_args, &_result); err != nil { - return + +func (p *SpanInfo) DeepEqual(ano *SpanInfo) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - return _result.GetSuccess(), nil + if !p.Field1DeepEqual(ano.SpanID) { + return false + } + if !p.Field2DeepEqual(ano.FieldList) { + return false + } + return true } -func (p *TraceServiceClient) PreviewExportTracesToDataset(ctx context.Context, req *PreviewExportTracesToDatasetRequest) (r *PreviewExportTracesToDatasetResponse, err error) { - var _args TraceServicePreviewExportTracesToDatasetArgs - _args.Req = req - var _result TraceServicePreviewExportTracesToDatasetResult - if err = p.Client_().Call(ctx, "PreviewExportTracesToDataset", &_args, &_result); err != nil { - return + +func (p *SpanInfo) Field1DeepEqual(src string) bool { + + if strings.Compare(p.SpanID, src) != 0 { + return false } - return _result.GetSuccess(), nil + return true } -func (p *TraceServiceClient) ChangeEvaluatorScore(ctx context.Context, req *ChangeEvaluatorScoreRequest) (r *ChangeEvaluatorScoreResponse, err error) { - var _args TraceServiceChangeEvaluatorScoreArgs - _args.Req = req - var _result TraceServiceChangeEvaluatorScoreResult - if err = p.Client_().Call(ctx, "ChangeEvaluatorScore", &_args, &_result); err != nil { - return +func (p *SpanInfo) Field2DeepEqual(src []*dataset0.FieldData) bool { + + if len(p.FieldList) != len(src) { + return false } - return _result.GetSuccess(), nil + for i, v := range p.FieldList { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true } -func (p *TraceServiceClient) ListAnnotationEvaluators(ctx context.Context, req *ListAnnotationEvaluatorsRequest) (r *ListAnnotationEvaluatorsResponse, err error) { - var _args TraceServiceListAnnotationEvaluatorsArgs - _args.Req = req - var _result TraceServiceListAnnotationEvaluatorsResult - if err = p.Client_().Call(ctx, "ListAnnotationEvaluators", &_args, &_result); err != nil { - return + +type ExtractSpanInfoResponse struct { + SpanInfos []*SpanInfo `thrift:"span_infos,1,required" frugal:"1,required,list" form:"span_infos,required" json:"span_infos,required" query:"span_infos,required"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +} + +func NewExtractSpanInfoResponse() *ExtractSpanInfoResponse { + return &ExtractSpanInfoResponse{} +} + +func (p *ExtractSpanInfoResponse) InitDefault() { +} + +func (p *ExtractSpanInfoResponse) GetSpanInfos() (v []*SpanInfo) { + if p != nil { + return p.SpanInfos } - return _result.GetSuccess(), nil + return } -func (p *TraceServiceClient) ExtractSpanInfo(ctx context.Context, req *ExtractSpanInfoRequest) (r *ExtractSpanInfoResponse, err error) { - var _args TraceServiceExtractSpanInfoArgs - _args.Req = req - var _result TraceServiceExtractSpanInfoResult - if err = p.Client_().Call(ctx, "ExtractSpanInfo", &_args, &_result); err != nil { + +var ExtractSpanInfoResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *ExtractSpanInfoResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { return } - return _result.GetSuccess(), nil + if !p.IsSetBaseResp() { + return ExtractSpanInfoResponse_BaseResp_DEFAULT + } + return p.BaseResp } - -type TraceServiceProcessor struct { - processorMap map[string]thrift.TProcessorFunction - handler TraceService +func (p *ExtractSpanInfoResponse) SetSpanInfos(val []*SpanInfo) { + p.SpanInfos = val } - -func (p *TraceServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) { - p.processorMap[key] = processor +func (p *ExtractSpanInfoResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val } -func (p *TraceServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) { - processor, ok = p.processorMap[key] - return processor, ok +var fieldIDToName_ExtractSpanInfoResponse = map[int16]string{ + 1: "span_infos", + 255: "BaseResp", } -func (p *TraceServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction { - return p.processorMap +func (p *ExtractSpanInfoResponse) IsSetBaseResp() bool { + return p.BaseResp != nil } -func NewTraceServiceProcessor(handler TraceService) *TraceServiceProcessor { +func (p *ExtractSpanInfoResponse) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetSpanInfos bool = false + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetSpanInfos = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + if !issetSpanInfos { + fieldId = 1 + goto RequiredFieldNotSetError + } + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExtractSpanInfoResponse[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ExtractSpanInfoResponse[fieldId])) +} + +func (p *ExtractSpanInfoResponse) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*SpanInfo, 0, size) + values := make([]SpanInfo, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.SpanInfos = _field + return nil +} +func (p *ExtractSpanInfoResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field + return nil +} + +func (p *ExtractSpanInfoResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ExtractSpanInfoResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ExtractSpanInfoResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("span_infos", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.SpanInfos)); err != nil { + return err + } + for _, v := range p.SpanInfos { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ExtractSpanInfoResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *ExtractSpanInfoResponse) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ExtractSpanInfoResponse(%+v)", *p) + +} + +func (p *ExtractSpanInfoResponse) DeepEqual(ano *ExtractSpanInfoResponse) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.SpanInfos) { + return false + } + if !p.Field255DeepEqual(ano.BaseResp) { + return false + } + return true +} + +func (p *ExtractSpanInfoResponse) Field1DeepEqual(src []*SpanInfo) bool { + + if len(p.SpanInfos) != len(src) { + return false + } + for i, v := range p.SpanInfos { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ExtractSpanInfoResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { + return false + } + return true +} + +type TraceService interface { + ListSpans(ctx context.Context, req *ListSpansRequest) (r *ListSpansResponse, err error) + + GetTrace(ctx context.Context, req *GetTraceRequest) (r *GetTraceResponse, err error) + + SearchTraceTree(ctx context.Context, req *SearchTraceTreeRequest) (r *SearchTraceTreeResponse, err error) + + BatchGetTracesAdvanceInfo(ctx context.Context, req *BatchGetTracesAdvanceInfoRequest) (r *BatchGetTracesAdvanceInfoResponse, err error) + + IngestTracesInner(ctx context.Context, req *IngestTracesRequest) (r *IngestTracesResponse, err error) + + GetTracesMetaInfo(ctx context.Context, req *GetTracesMetaInfoRequest) (r *GetTracesMetaInfoResponse, err error) + + CreateView(ctx context.Context, req *CreateViewRequest) (r *CreateViewResponse, err error) + + UpdateView(ctx context.Context, req *UpdateViewRequest) (r *UpdateViewResponse, err error) + + DeleteView(ctx context.Context, req *DeleteViewRequest) (r *DeleteViewResponse, err error) + + ListViews(ctx context.Context, req *ListViewsRequest) (r *ListViewsResponse, err error) + + CreateManualAnnotation(ctx context.Context, req *CreateManualAnnotationRequest) (r *CreateManualAnnotationResponse, err error) + + UpdateManualAnnotation(ctx context.Context, req *UpdateManualAnnotationRequest) (r *UpdateManualAnnotationResponse, err error) + + DeleteManualAnnotation(ctx context.Context, req *DeleteManualAnnotationRequest) (r *DeleteManualAnnotationResponse, err error) + + ListAnnotations(ctx context.Context, req *ListAnnotationsRequest) (r *ListAnnotationsResponse, err error) + + ExportTracesToDataset(ctx context.Context, req *ExportTracesToDatasetRequest) (r *ExportTracesToDatasetResponse, err error) + + PreviewExportTracesToDataset(ctx context.Context, req *PreviewExportTracesToDatasetRequest) (r *PreviewExportTracesToDatasetResponse, err error) + + ChangeEvaluatorScore(ctx context.Context, req *ChangeEvaluatorScoreRequest) (r *ChangeEvaluatorScoreResponse, err error) + + ListAnnotationEvaluators(ctx context.Context, req *ListAnnotationEvaluatorsRequest) (r *ListAnnotationEvaluatorsResponse, err error) + + ExtractSpanInfo(ctx context.Context, req *ExtractSpanInfoRequest) (r *ExtractSpanInfoResponse, err error) +} + +type TraceServiceClient struct { + c thrift.TClient +} + +func NewTraceServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *TraceServiceClient { + return &TraceServiceClient{ + c: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)), + } +} + +func NewTraceServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *TraceServiceClient { + return &TraceServiceClient{ + c: thrift.NewTStandardClient(iprot, oprot), + } +} + +func NewTraceServiceClient(c thrift.TClient) *TraceServiceClient { + return &TraceServiceClient{ + c: c, + } +} + +func (p *TraceServiceClient) Client_() thrift.TClient { + return p.c +} + +func (p *TraceServiceClient) ListSpans(ctx context.Context, req *ListSpansRequest) (r *ListSpansResponse, err error) { + var _args TraceServiceListSpansArgs + _args.Req = req + var _result TraceServiceListSpansResult + if err = p.Client_().Call(ctx, "ListSpans", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) GetTrace(ctx context.Context, req *GetTraceRequest) (r *GetTraceResponse, err error) { + var _args TraceServiceGetTraceArgs + _args.Req = req + var _result TraceServiceGetTraceResult + if err = p.Client_().Call(ctx, "GetTrace", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) SearchTraceTree(ctx context.Context, req *SearchTraceTreeRequest) (r *SearchTraceTreeResponse, err error) { + var _args TraceServiceSearchTraceTreeArgs + _args.Req = req + var _result TraceServiceSearchTraceTreeResult + if err = p.Client_().Call(ctx, "SearchTraceTree", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) BatchGetTracesAdvanceInfo(ctx context.Context, req *BatchGetTracesAdvanceInfoRequest) (r *BatchGetTracesAdvanceInfoResponse, err error) { + var _args TraceServiceBatchGetTracesAdvanceInfoArgs + _args.Req = req + var _result TraceServiceBatchGetTracesAdvanceInfoResult + if err = p.Client_().Call(ctx, "BatchGetTracesAdvanceInfo", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) IngestTracesInner(ctx context.Context, req *IngestTracesRequest) (r *IngestTracesResponse, err error) { + var _args TraceServiceIngestTracesInnerArgs + _args.Req = req + var _result TraceServiceIngestTracesInnerResult + if err = p.Client_().Call(ctx, "IngestTracesInner", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) GetTracesMetaInfo(ctx context.Context, req *GetTracesMetaInfoRequest) (r *GetTracesMetaInfoResponse, err error) { + var _args TraceServiceGetTracesMetaInfoArgs + _args.Req = req + var _result TraceServiceGetTracesMetaInfoResult + if err = p.Client_().Call(ctx, "GetTracesMetaInfo", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) CreateView(ctx context.Context, req *CreateViewRequest) (r *CreateViewResponse, err error) { + var _args TraceServiceCreateViewArgs + _args.Req = req + var _result TraceServiceCreateViewResult + if err = p.Client_().Call(ctx, "CreateView", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) UpdateView(ctx context.Context, req *UpdateViewRequest) (r *UpdateViewResponse, err error) { + var _args TraceServiceUpdateViewArgs + _args.Req = req + var _result TraceServiceUpdateViewResult + if err = p.Client_().Call(ctx, "UpdateView", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) DeleteView(ctx context.Context, req *DeleteViewRequest) (r *DeleteViewResponse, err error) { + var _args TraceServiceDeleteViewArgs + _args.Req = req + var _result TraceServiceDeleteViewResult + if err = p.Client_().Call(ctx, "DeleteView", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) ListViews(ctx context.Context, req *ListViewsRequest) (r *ListViewsResponse, err error) { + var _args TraceServiceListViewsArgs + _args.Req = req + var _result TraceServiceListViewsResult + if err = p.Client_().Call(ctx, "ListViews", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) CreateManualAnnotation(ctx context.Context, req *CreateManualAnnotationRequest) (r *CreateManualAnnotationResponse, err error) { + var _args TraceServiceCreateManualAnnotationArgs + _args.Req = req + var _result TraceServiceCreateManualAnnotationResult + if err = p.Client_().Call(ctx, "CreateManualAnnotation", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) UpdateManualAnnotation(ctx context.Context, req *UpdateManualAnnotationRequest) (r *UpdateManualAnnotationResponse, err error) { + var _args TraceServiceUpdateManualAnnotationArgs + _args.Req = req + var _result TraceServiceUpdateManualAnnotationResult + if err = p.Client_().Call(ctx, "UpdateManualAnnotation", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) DeleteManualAnnotation(ctx context.Context, req *DeleteManualAnnotationRequest) (r *DeleteManualAnnotationResponse, err error) { + var _args TraceServiceDeleteManualAnnotationArgs + _args.Req = req + var _result TraceServiceDeleteManualAnnotationResult + if err = p.Client_().Call(ctx, "DeleteManualAnnotation", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) ListAnnotations(ctx context.Context, req *ListAnnotationsRequest) (r *ListAnnotationsResponse, err error) { + var _args TraceServiceListAnnotationsArgs + _args.Req = req + var _result TraceServiceListAnnotationsResult + if err = p.Client_().Call(ctx, "ListAnnotations", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) ExportTracesToDataset(ctx context.Context, req *ExportTracesToDatasetRequest) (r *ExportTracesToDatasetResponse, err error) { + var _args TraceServiceExportTracesToDatasetArgs + _args.Req = req + var _result TraceServiceExportTracesToDatasetResult + if err = p.Client_().Call(ctx, "ExportTracesToDataset", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) PreviewExportTracesToDataset(ctx context.Context, req *PreviewExportTracesToDatasetRequest) (r *PreviewExportTracesToDatasetResponse, err error) { + var _args TraceServicePreviewExportTracesToDatasetArgs + _args.Req = req + var _result TraceServicePreviewExportTracesToDatasetResult + if err = p.Client_().Call(ctx, "PreviewExportTracesToDataset", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) ChangeEvaluatorScore(ctx context.Context, req *ChangeEvaluatorScoreRequest) (r *ChangeEvaluatorScoreResponse, err error) { + var _args TraceServiceChangeEvaluatorScoreArgs + _args.Req = req + var _result TraceServiceChangeEvaluatorScoreResult + if err = p.Client_().Call(ctx, "ChangeEvaluatorScore", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) ListAnnotationEvaluators(ctx context.Context, req *ListAnnotationEvaluatorsRequest) (r *ListAnnotationEvaluatorsResponse, err error) { + var _args TraceServiceListAnnotationEvaluatorsArgs + _args.Req = req + var _result TraceServiceListAnnotationEvaluatorsResult + if err = p.Client_().Call(ctx, "ListAnnotationEvaluators", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *TraceServiceClient) ExtractSpanInfo(ctx context.Context, req *ExtractSpanInfoRequest) (r *ExtractSpanInfoResponse, err error) { + var _args TraceServiceExtractSpanInfoArgs + _args.Req = req + var _result TraceServiceExtractSpanInfoResult + if err = p.Client_().Call(ctx, "ExtractSpanInfo", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +type TraceServiceProcessor struct { + processorMap map[string]thrift.TProcessorFunction + handler TraceService +} + +func (p *TraceServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) { + p.processorMap[key] = processor +} + +func (p *TraceServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) { + processor, ok = p.processorMap[key] + return processor, ok +} + +func (p *TraceServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction { + return p.processorMap +} + +func NewTraceServiceProcessor(handler TraceService) *TraceServiceProcessor { self := &TraceServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)} self.AddToProcessorMap("ListSpans", &traceServiceProcessorListSpans{handler: handler}) self.AddToProcessorMap("GetTrace", &traceServiceProcessorGetTrace{handler: handler}) + self.AddToProcessorMap("SearchTraceTree", &traceServiceProcessorSearchTraceTree{handler: handler}) self.AddToProcessorMap("BatchGetTracesAdvanceInfo", &traceServiceProcessorBatchGetTracesAdvanceInfo{handler: handler}) self.AddToProcessorMap("IngestTracesInner", &traceServiceProcessorIngestTracesInner{handler: handler}) self.AddToProcessorMap("GetTracesMetaInfo", &traceServiceProcessorGetTracesMetaInfo{handler: handler}) @@ -17579,7 +18620,55 @@ func (p *traceServiceProcessorListSpans) Process(ctx context.Context, seqId int3 } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("ListSpans", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("ListSpans", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type traceServiceProcessorGetTrace struct { + handler TraceService +} + +func (p *traceServiceProcessorGetTrace) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceGetTraceArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("GetTrace", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := TraceServiceGetTraceResult{} + var retval *GetTraceResponse + if retval, err2 = p.handler.GetTrace(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing GetTrace: "+err2.Error()) + oprot.WriteMessageBegin("GetTrace", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("GetTrace", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -17597,16 +18686,16 @@ func (p *traceServiceProcessorListSpans) Process(ctx context.Context, seqId int3 return true, err } -type traceServiceProcessorGetTrace struct { +type traceServiceProcessorSearchTraceTree struct { handler TraceService } -func (p *traceServiceProcessorGetTrace) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceGetTraceArgs{} +func (p *traceServiceProcessorSearchTraceTree) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceSearchTraceTreeArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("GetTrace", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("SearchTraceTree", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -17615,11 +18704,11 @@ func (p *traceServiceProcessorGetTrace) Process(ctx context.Context, seqId int32 iprot.ReadMessageEnd() var err2 error - result := TraceServiceGetTraceResult{} - var retval *GetTraceResponse - if retval, err2 = p.handler.GetTrace(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing GetTrace: "+err2.Error()) - oprot.WriteMessageBegin("GetTrace", thrift.EXCEPTION, seqId) + result := TraceServiceSearchTraceTreeResult{} + var retval *SearchTraceTreeResponse + if retval, err2 = p.handler.SearchTraceTree(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing SearchTraceTree: "+err2.Error()) + oprot.WriteMessageBegin("SearchTraceTree", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -17627,7 +18716,7 @@ func (p *traceServiceProcessorGetTrace) Process(ctx context.Context, seqId int32 } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("GetTrace", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("SearchTraceTree", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -17819,7 +18908,247 @@ func (p *traceServiceProcessorCreateView) Process(ctx context.Context, seqId int } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("CreateView", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("CreateView", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type traceServiceProcessorUpdateView struct { + handler TraceService +} + +func (p *traceServiceProcessorUpdateView) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceUpdateViewArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("UpdateView", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := TraceServiceUpdateViewResult{} + var retval *UpdateViewResponse + if retval, err2 = p.handler.UpdateView(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateView: "+err2.Error()) + oprot.WriteMessageBegin("UpdateView", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("UpdateView", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type traceServiceProcessorDeleteView struct { + handler TraceService +} + +func (p *traceServiceProcessorDeleteView) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceDeleteViewArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("DeleteView", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := TraceServiceDeleteViewResult{} + var retval *DeleteViewResponse + if retval, err2 = p.handler.DeleteView(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteView: "+err2.Error()) + oprot.WriteMessageBegin("DeleteView", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("DeleteView", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type traceServiceProcessorListViews struct { + handler TraceService +} + +func (p *traceServiceProcessorListViews) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceListViewsArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("ListViews", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := TraceServiceListViewsResult{} + var retval *ListViewsResponse + if retval, err2 = p.handler.ListViews(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListViews: "+err2.Error()) + oprot.WriteMessageBegin("ListViews", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("ListViews", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type traceServiceProcessorCreateManualAnnotation struct { + handler TraceService +} + +func (p *traceServiceProcessorCreateManualAnnotation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceCreateManualAnnotationArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("CreateManualAnnotation", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := TraceServiceCreateManualAnnotationResult{} + var retval *CreateManualAnnotationResponse + if retval, err2 = p.handler.CreateManualAnnotation(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CreateManualAnnotation: "+err2.Error()) + oprot.WriteMessageBegin("CreateManualAnnotation", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("CreateManualAnnotation", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type traceServiceProcessorUpdateManualAnnotation struct { + handler TraceService +} + +func (p *traceServiceProcessorUpdateManualAnnotation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceUpdateManualAnnotationArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("UpdateManualAnnotation", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := TraceServiceUpdateManualAnnotationResult{} + var retval *UpdateManualAnnotationResponse + if retval, err2 = p.handler.UpdateManualAnnotation(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateManualAnnotation: "+err2.Error()) + oprot.WriteMessageBegin("UpdateManualAnnotation", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("UpdateManualAnnotation", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -17837,16 +19166,16 @@ func (p *traceServiceProcessorCreateView) Process(ctx context.Context, seqId int return true, err } -type traceServiceProcessorUpdateView struct { +type traceServiceProcessorDeleteManualAnnotation struct { handler TraceService } -func (p *traceServiceProcessorUpdateView) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceUpdateViewArgs{} +func (p *traceServiceProcessorDeleteManualAnnotation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceDeleteManualAnnotationArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("UpdateView", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("DeleteManualAnnotation", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -17855,11 +19184,11 @@ func (p *traceServiceProcessorUpdateView) Process(ctx context.Context, seqId int iprot.ReadMessageEnd() var err2 error - result := TraceServiceUpdateViewResult{} - var retval *UpdateViewResponse - if retval, err2 = p.handler.UpdateView(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateView: "+err2.Error()) - oprot.WriteMessageBegin("UpdateView", thrift.EXCEPTION, seqId) + result := TraceServiceDeleteManualAnnotationResult{} + var retval *DeleteManualAnnotationResponse + if retval, err2 = p.handler.DeleteManualAnnotation(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteManualAnnotation: "+err2.Error()) + oprot.WriteMessageBegin("DeleteManualAnnotation", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -17867,7 +19196,7 @@ func (p *traceServiceProcessorUpdateView) Process(ctx context.Context, seqId int } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("UpdateView", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("DeleteManualAnnotation", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -17885,16 +19214,16 @@ func (p *traceServiceProcessorUpdateView) Process(ctx context.Context, seqId int return true, err } -type traceServiceProcessorDeleteView struct { +type traceServiceProcessorListAnnotations struct { handler TraceService } -func (p *traceServiceProcessorDeleteView) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceDeleteViewArgs{} +func (p *traceServiceProcessorListAnnotations) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceListAnnotationsArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("DeleteView", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("ListAnnotations", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -17903,11 +19232,11 @@ func (p *traceServiceProcessorDeleteView) Process(ctx context.Context, seqId int iprot.ReadMessageEnd() var err2 error - result := TraceServiceDeleteViewResult{} - var retval *DeleteViewResponse - if retval, err2 = p.handler.DeleteView(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteView: "+err2.Error()) - oprot.WriteMessageBegin("DeleteView", thrift.EXCEPTION, seqId) + result := TraceServiceListAnnotationsResult{} + var retval *ListAnnotationsResponse + if retval, err2 = p.handler.ListAnnotations(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListAnnotations: "+err2.Error()) + oprot.WriteMessageBegin("ListAnnotations", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -17915,7 +19244,7 @@ func (p *traceServiceProcessorDeleteView) Process(ctx context.Context, seqId int } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("DeleteView", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("ListAnnotations", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -17933,16 +19262,16 @@ func (p *traceServiceProcessorDeleteView) Process(ctx context.Context, seqId int return true, err } -type traceServiceProcessorListViews struct { +type traceServiceProcessorExportTracesToDataset struct { handler TraceService } -func (p *traceServiceProcessorListViews) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceListViewsArgs{} +func (p *traceServiceProcessorExportTracesToDataset) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceExportTracesToDatasetArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ListViews", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("ExportTracesToDataset", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -17951,11 +19280,11 @@ func (p *traceServiceProcessorListViews) Process(ctx context.Context, seqId int3 iprot.ReadMessageEnd() var err2 error - result := TraceServiceListViewsResult{} - var retval *ListViewsResponse - if retval, err2 = p.handler.ListViews(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListViews: "+err2.Error()) - oprot.WriteMessageBegin("ListViews", thrift.EXCEPTION, seqId) + result := TraceServiceExportTracesToDatasetResult{} + var retval *ExportTracesToDatasetResponse + if retval, err2 = p.handler.ExportTracesToDataset(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ExportTracesToDataset: "+err2.Error()) + oprot.WriteMessageBegin("ExportTracesToDataset", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -17963,7 +19292,7 @@ func (p *traceServiceProcessorListViews) Process(ctx context.Context, seqId int3 } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("ListViews", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("ExportTracesToDataset", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -17981,16 +19310,16 @@ func (p *traceServiceProcessorListViews) Process(ctx context.Context, seqId int3 return true, err } -type traceServiceProcessorCreateManualAnnotation struct { +type traceServiceProcessorPreviewExportTracesToDataset struct { handler TraceService } -func (p *traceServiceProcessorCreateManualAnnotation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceCreateManualAnnotationArgs{} +func (p *traceServiceProcessorPreviewExportTracesToDataset) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServicePreviewExportTracesToDatasetArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("CreateManualAnnotation", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("PreviewExportTracesToDataset", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -17999,11 +19328,11 @@ func (p *traceServiceProcessorCreateManualAnnotation) Process(ctx context.Contex iprot.ReadMessageEnd() var err2 error - result := TraceServiceCreateManualAnnotationResult{} - var retval *CreateManualAnnotationResponse - if retval, err2 = p.handler.CreateManualAnnotation(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CreateManualAnnotation: "+err2.Error()) - oprot.WriteMessageBegin("CreateManualAnnotation", thrift.EXCEPTION, seqId) + result := TraceServicePreviewExportTracesToDatasetResult{} + var retval *PreviewExportTracesToDatasetResponse + if retval, err2 = p.handler.PreviewExportTracesToDataset(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing PreviewExportTracesToDataset: "+err2.Error()) + oprot.WriteMessageBegin("PreviewExportTracesToDataset", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -18011,7 +19340,7 @@ func (p *traceServiceProcessorCreateManualAnnotation) Process(ctx context.Contex } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("CreateManualAnnotation", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("PreviewExportTracesToDataset", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -18029,16 +19358,16 @@ func (p *traceServiceProcessorCreateManualAnnotation) Process(ctx context.Contex return true, err } -type traceServiceProcessorUpdateManualAnnotation struct { +type traceServiceProcessorChangeEvaluatorScore struct { handler TraceService } -func (p *traceServiceProcessorUpdateManualAnnotation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceUpdateManualAnnotationArgs{} +func (p *traceServiceProcessorChangeEvaluatorScore) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceChangeEvaluatorScoreArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("UpdateManualAnnotation", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("ChangeEvaluatorScore", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -18047,11 +19376,11 @@ func (p *traceServiceProcessorUpdateManualAnnotation) Process(ctx context.Contex iprot.ReadMessageEnd() var err2 error - result := TraceServiceUpdateManualAnnotationResult{} - var retval *UpdateManualAnnotationResponse - if retval, err2 = p.handler.UpdateManualAnnotation(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateManualAnnotation: "+err2.Error()) - oprot.WriteMessageBegin("UpdateManualAnnotation", thrift.EXCEPTION, seqId) + result := TraceServiceChangeEvaluatorScoreResult{} + var retval *ChangeEvaluatorScoreResponse + if retval, err2 = p.handler.ChangeEvaluatorScore(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ChangeEvaluatorScore: "+err2.Error()) + oprot.WriteMessageBegin("ChangeEvaluatorScore", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -18059,7 +19388,7 @@ func (p *traceServiceProcessorUpdateManualAnnotation) Process(ctx context.Contex } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("UpdateManualAnnotation", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("ChangeEvaluatorScore", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -18077,16 +19406,16 @@ func (p *traceServiceProcessorUpdateManualAnnotation) Process(ctx context.Contex return true, err } -type traceServiceProcessorDeleteManualAnnotation struct { +type traceServiceProcessorListAnnotationEvaluators struct { handler TraceService } -func (p *traceServiceProcessorDeleteManualAnnotation) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceDeleteManualAnnotationArgs{} +func (p *traceServiceProcessorListAnnotationEvaluators) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceListAnnotationEvaluatorsArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("DeleteManualAnnotation", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("ListAnnotationEvaluators", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -18095,11 +19424,11 @@ func (p *traceServiceProcessorDeleteManualAnnotation) Process(ctx context.Contex iprot.ReadMessageEnd() var err2 error - result := TraceServiceDeleteManualAnnotationResult{} - var retval *DeleteManualAnnotationResponse - if retval, err2 = p.handler.DeleteManualAnnotation(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteManualAnnotation: "+err2.Error()) - oprot.WriteMessageBegin("DeleteManualAnnotation", thrift.EXCEPTION, seqId) + result := TraceServiceListAnnotationEvaluatorsResult{} + var retval *ListAnnotationEvaluatorsResponse + if retval, err2 = p.handler.ListAnnotationEvaluators(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListAnnotationEvaluators: "+err2.Error()) + oprot.WriteMessageBegin("ListAnnotationEvaluators", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -18107,7 +19436,7 @@ func (p *traceServiceProcessorDeleteManualAnnotation) Process(ctx context.Contex } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("DeleteManualAnnotation", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("ListAnnotationEvaluators", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -18125,16 +19454,16 @@ func (p *traceServiceProcessorDeleteManualAnnotation) Process(ctx context.Contex return true, err } -type traceServiceProcessorListAnnotations struct { +type traceServiceProcessorExtractSpanInfo struct { handler TraceService } -func (p *traceServiceProcessorListAnnotations) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceListAnnotationsArgs{} +func (p *traceServiceProcessorExtractSpanInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := TraceServiceExtractSpanInfoArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ListAnnotations", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("ExtractSpanInfo", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -18143,11 +19472,11 @@ func (p *traceServiceProcessorListAnnotations) Process(ctx context.Context, seqI iprot.ReadMessageEnd() var err2 error - result := TraceServiceListAnnotationsResult{} - var retval *ListAnnotationsResponse - if retval, err2 = p.handler.ListAnnotations(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListAnnotations: "+err2.Error()) - oprot.WriteMessageBegin("ListAnnotations", thrift.EXCEPTION, seqId) + result := TraceServiceExtractSpanInfoResult{} + var retval *ExtractSpanInfoResponse + if retval, err2 = p.handler.ExtractSpanInfo(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ExtractSpanInfo: "+err2.Error()) + oprot.WriteMessageBegin("ExtractSpanInfo", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -18155,7 +19484,7 @@ func (p *traceServiceProcessorListAnnotations) Process(ctx context.Context, seqI } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("ListAnnotations", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("ExtractSpanInfo", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -18173,281 +19502,385 @@ func (p *traceServiceProcessorListAnnotations) Process(ctx context.Context, seqI return true, err } -type traceServiceProcessorExportTracesToDataset struct { - handler TraceService +type TraceServiceListSpansArgs struct { + Req *ListSpansRequest `thrift:"req,1" frugal:"1,default,ListSpansRequest"` } -func (p *traceServiceProcessorExportTracesToDataset) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceExportTracesToDatasetArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ExportTracesToDataset", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func NewTraceServiceListSpansArgs() *TraceServiceListSpansArgs { + return &TraceServiceListSpansArgs{} +} + +func (p *TraceServiceListSpansArgs) InitDefault() { +} + +var TraceServiceListSpansArgs_Req_DEFAULT *ListSpansRequest + +func (p *TraceServiceListSpansArgs) GetReq() (v *ListSpansRequest) { + if p == nil { + return + } + if !p.IsSetReq() { + return TraceServiceListSpansArgs_Req_DEFAULT } + return p.Req +} +func (p *TraceServiceListSpansArgs) SetReq(val *ListSpansRequest) { + p.Req = val +} - iprot.ReadMessageEnd() - var err2 error - result := TraceServiceExportTracesToDatasetResult{} - var retval *ExportTracesToDatasetResponse - if retval, err2 = p.handler.ExportTracesToDataset(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ExportTracesToDataset: "+err2.Error()) - oprot.WriteMessageBegin("ExportTracesToDataset", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval +var fieldIDToName_TraceServiceListSpansArgs = map[int16]string{ + 1: "req", +} + +func (p *TraceServiceListSpansArgs) IsSetReq() bool { + return p.Req != nil +} + +func (p *TraceServiceListSpansArgs) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.WriteMessageBegin("ExportTracesToDataset", thrift.REPLY, seqId); err2 != nil { - err = err2 + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceListSpansArgs[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *TraceServiceListSpansArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewListSpansRequest() + if err := _field.Read(iprot); err != nil { + return err } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + p.Req = _field + return nil +} + +func (p *TraceServiceListSpansArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListSpans_args"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err -} - -type traceServiceProcessorPreviewExportTracesToDataset struct { - handler TraceService + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *traceServiceProcessorPreviewExportTracesToDataset) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServicePreviewExportTracesToDatasetArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("PreviewExportTracesToDataset", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *TraceServiceListSpansArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError } - - iprot.ReadMessageEnd() - var err2 error - result := TraceServicePreviewExportTracesToDatasetResult{} - var retval *PreviewExportTracesToDatasetResponse - if retval, err2 = p.handler.PreviewExportTracesToDataset(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing PreviewExportTracesToDataset: "+err2.Error()) - oprot.WriteMessageBegin("PreviewExportTracesToDataset", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval + if err := p.Req.Write(oprot); err != nil { + return err } - if err2 = oprot.WriteMessageBegin("PreviewExportTracesToDataset", thrift.REPLY, seqId); err2 != nil { - err = err2 + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *TraceServiceListSpansArgs) String() string { + if p == nil { + return "" } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + return fmt.Sprintf("TraceServiceListSpansArgs(%+v)", *p) + +} + +func (p *TraceServiceListSpansArgs) DeepEqual(ano *TraceServiceListSpansArgs) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field1DeepEqual(ano.Req) { + return false } - if err != nil { - return + return true +} + +func (p *TraceServiceListSpansArgs) Field1DeepEqual(src *ListSpansRequest) bool { + + if !p.Req.DeepEqual(src) { + return false } - return true, err + return true } -type traceServiceProcessorChangeEvaluatorScore struct { - handler TraceService +type TraceServiceListSpansResult struct { + Success *ListSpansResponse `thrift:"success,0,optional" frugal:"0,optional,ListSpansResponse"` } -func (p *traceServiceProcessorChangeEvaluatorScore) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceChangeEvaluatorScoreArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ChangeEvaluatorScore", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func NewTraceServiceListSpansResult() *TraceServiceListSpansResult { + return &TraceServiceListSpansResult{} +} - iprot.ReadMessageEnd() - var err2 error - result := TraceServiceChangeEvaluatorScoreResult{} - var retval *ChangeEvaluatorScoreResponse - if retval, err2 = p.handler.ChangeEvaluatorScore(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ChangeEvaluatorScore: "+err2.Error()) - oprot.WriteMessageBegin("ChangeEvaluatorScore", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("ChangeEvaluatorScore", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 - } - if err != nil { +func (p *TraceServiceListSpansResult) InitDefault() { +} + +var TraceServiceListSpansResult_Success_DEFAULT *ListSpansResponse + +func (p *TraceServiceListSpansResult) GetSuccess() (v *ListSpansResponse) { + if p == nil { return } - return true, err + if !p.IsSetSuccess() { + return TraceServiceListSpansResult_Success_DEFAULT + } + return p.Success +} +func (p *TraceServiceListSpansResult) SetSuccess(x interface{}) { + p.Success = x.(*ListSpansResponse) } -type traceServiceProcessorListAnnotationEvaluators struct { - handler TraceService +var fieldIDToName_TraceServiceListSpansResult = map[int16]string{ + 0: "success", } -func (p *traceServiceProcessorListAnnotationEvaluators) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceListAnnotationEvaluatorsArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ListAnnotationEvaluators", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *TraceServiceListSpansResult) IsSetSuccess() bool { + return p.Success != nil +} + +func (p *TraceServiceListSpansResult) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - iprot.ReadMessageEnd() - var err2 error - result := TraceServiceListAnnotationEvaluatorsResult{} - var retval *ListAnnotationEvaluatorsResponse - if retval, err2 = p.handler.ListAnnotationEvaluators(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListAnnotationEvaluators: "+err2.Error()) - oprot.WriteMessageBegin("ListAnnotationEvaluators", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } } - if err2 = oprot.WriteMessageBegin("ListAnnotationEvaluators", thrift.REPLY, seqId); err2 != nil { - err = err2 + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceListSpansResult[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *TraceServiceListSpansResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewListSpansResponse() + if err := _field.Read(iprot); err != nil { + return err } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + p.Success = _field + return nil +} + +func (p *TraceServiceListSpansResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListSpans_result"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -type traceServiceProcessorExtractSpanInfo struct { - handler TraceService +func (p *TraceServiceListSpansResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *traceServiceProcessorExtractSpanInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := TraceServiceExtractSpanInfoArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ExtractSpanInfo", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *TraceServiceListSpansResult) String() string { + if p == nil { + return "" } + return fmt.Sprintf("TraceServiceListSpansResult(%+v)", *p) - iprot.ReadMessageEnd() - var err2 error - result := TraceServiceExtractSpanInfoResult{} - var retval *ExtractSpanInfoResponse - if retval, err2 = p.handler.ExtractSpanInfo(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ExtractSpanInfo: "+err2.Error()) - oprot.WriteMessageBegin("ExtractSpanInfo", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("ExtractSpanInfo", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +} + +func (p *TraceServiceListSpansResult) DeepEqual(ano *TraceServiceListSpansResult) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field0DeepEqual(ano.Success) { + return false } - if err != nil { - return + return true +} + +func (p *TraceServiceListSpansResult) Field0DeepEqual(src *ListSpansResponse) bool { + + if !p.Success.DeepEqual(src) { + return false } - return true, err + return true } -type TraceServiceListSpansArgs struct { - Req *ListSpansRequest `thrift:"req,1" frugal:"1,default,ListSpansRequest"` +type TraceServiceGetTraceArgs struct { + Req *GetTraceRequest `thrift:"req,1" frugal:"1,default,GetTraceRequest"` } -func NewTraceServiceListSpansArgs() *TraceServiceListSpansArgs { - return &TraceServiceListSpansArgs{} +func NewTraceServiceGetTraceArgs() *TraceServiceGetTraceArgs { + return &TraceServiceGetTraceArgs{} } -func (p *TraceServiceListSpansArgs) InitDefault() { +func (p *TraceServiceGetTraceArgs) InitDefault() { } -var TraceServiceListSpansArgs_Req_DEFAULT *ListSpansRequest +var TraceServiceGetTraceArgs_Req_DEFAULT *GetTraceRequest -func (p *TraceServiceListSpansArgs) GetReq() (v *ListSpansRequest) { +func (p *TraceServiceGetTraceArgs) GetReq() (v *GetTraceRequest) { if p == nil { return } if !p.IsSetReq() { - return TraceServiceListSpansArgs_Req_DEFAULT + return TraceServiceGetTraceArgs_Req_DEFAULT } return p.Req } -func (p *TraceServiceListSpansArgs) SetReq(val *ListSpansRequest) { +func (p *TraceServiceGetTraceArgs) SetReq(val *GetTraceRequest) { p.Req = val } -var fieldIDToName_TraceServiceListSpansArgs = map[int16]string{ +var fieldIDToName_TraceServiceGetTraceArgs = map[int16]string{ 1: "req", } -func (p *TraceServiceListSpansArgs) IsSetReq() bool { +func (p *TraceServiceGetTraceArgs) IsSetReq() bool { return p.Req != nil } -func (p *TraceServiceListSpansArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *TraceServiceGetTraceArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -18492,7 +19925,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceListSpansArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceGetTraceArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -18502,8 +19935,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *TraceServiceListSpansArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewListSpansRequest() +func (p *TraceServiceGetTraceArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewGetTraceRequest() if err := _field.Read(iprot); err != nil { return err } @@ -18511,9 +19944,9 @@ func (p *TraceServiceListSpansArgs) ReadField1(iprot thrift.TProtocol) error { return nil } -func (p *TraceServiceListSpansArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *TraceServiceGetTraceArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListSpans_args"); err != nil { + if err = oprot.WriteStructBegin("GetTrace_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -18539,7 +19972,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TraceServiceListSpansArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *TraceServiceGetTraceArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -18556,15 +19989,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *TraceServiceListSpansArgs) String() string { +func (p *TraceServiceGetTraceArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("TraceServiceListSpansArgs(%+v)", *p) + return fmt.Sprintf("TraceServiceGetTraceArgs(%+v)", *p) } -func (p *TraceServiceListSpansArgs) DeepEqual(ano *TraceServiceListSpansArgs) bool { +func (p *TraceServiceGetTraceArgs) DeepEqual(ano *TraceServiceGetTraceArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -18576,7 +20009,7 @@ func (p *TraceServiceListSpansArgs) DeepEqual(ano *TraceServiceListSpansArgs) bo return true } -func (p *TraceServiceListSpansArgs) Field1DeepEqual(src *ListSpansRequest) bool { +func (p *TraceServiceGetTraceArgs) Field1DeepEqual(src *GetTraceRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -18584,41 +20017,41 @@ func (p *TraceServiceListSpansArgs) Field1DeepEqual(src *ListSpansRequest) bool return true } -type TraceServiceListSpansResult struct { - Success *ListSpansResponse `thrift:"success,0,optional" frugal:"0,optional,ListSpansResponse"` +type TraceServiceGetTraceResult struct { + Success *GetTraceResponse `thrift:"success,0,optional" frugal:"0,optional,GetTraceResponse"` } -func NewTraceServiceListSpansResult() *TraceServiceListSpansResult { - return &TraceServiceListSpansResult{} +func NewTraceServiceGetTraceResult() *TraceServiceGetTraceResult { + return &TraceServiceGetTraceResult{} } -func (p *TraceServiceListSpansResult) InitDefault() { +func (p *TraceServiceGetTraceResult) InitDefault() { } -var TraceServiceListSpansResult_Success_DEFAULT *ListSpansResponse +var TraceServiceGetTraceResult_Success_DEFAULT *GetTraceResponse -func (p *TraceServiceListSpansResult) GetSuccess() (v *ListSpansResponse) { +func (p *TraceServiceGetTraceResult) GetSuccess() (v *GetTraceResponse) { if p == nil { return } if !p.IsSetSuccess() { - return TraceServiceListSpansResult_Success_DEFAULT + return TraceServiceGetTraceResult_Success_DEFAULT } return p.Success } -func (p *TraceServiceListSpansResult) SetSuccess(x interface{}) { - p.Success = x.(*ListSpansResponse) +func (p *TraceServiceGetTraceResult) SetSuccess(x interface{}) { + p.Success = x.(*GetTraceResponse) } -var fieldIDToName_TraceServiceListSpansResult = map[int16]string{ +var fieldIDToName_TraceServiceGetTraceResult = map[int16]string{ 0: "success", } -func (p *TraceServiceListSpansResult) IsSetSuccess() bool { +func (p *TraceServiceGetTraceResult) IsSetSuccess() bool { return p.Success != nil } -func (p *TraceServiceListSpansResult) Read(iprot thrift.TProtocol) (err error) { +func (p *TraceServiceGetTraceResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -18663,7 +20096,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceListSpansResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceGetTraceResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -18673,8 +20106,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *TraceServiceListSpansResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewListSpansResponse() +func (p *TraceServiceGetTraceResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewGetTraceResponse() if err := _field.Read(iprot); err != nil { return err } @@ -18682,9 +20115,9 @@ func (p *TraceServiceListSpansResult) ReadField0(iprot thrift.TProtocol) error { return nil } -func (p *TraceServiceListSpansResult) Write(oprot thrift.TProtocol) (err error) { +func (p *TraceServiceGetTraceResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListSpans_result"); err != nil { + if err = oprot.WriteStructBegin("GetTrace_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -18710,7 +20143,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TraceServiceListSpansResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *TraceServiceGetTraceResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -18729,15 +20162,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *TraceServiceListSpansResult) String() string { +func (p *TraceServiceGetTraceResult) String() string { if p == nil { return "" } - return fmt.Sprintf("TraceServiceListSpansResult(%+v)", *p) + return fmt.Sprintf("TraceServiceGetTraceResult(%+v)", *p) } -func (p *TraceServiceListSpansResult) DeepEqual(ano *TraceServiceListSpansResult) bool { +func (p *TraceServiceGetTraceResult) DeepEqual(ano *TraceServiceGetTraceResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -18749,7 +20182,7 @@ func (p *TraceServiceListSpansResult) DeepEqual(ano *TraceServiceListSpansResult return true } -func (p *TraceServiceListSpansResult) Field0DeepEqual(src *ListSpansResponse) bool { +func (p *TraceServiceGetTraceResult) Field0DeepEqual(src *GetTraceResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -18757,41 +20190,41 @@ func (p *TraceServiceListSpansResult) Field0DeepEqual(src *ListSpansResponse) bo return true } -type TraceServiceGetTraceArgs struct { - Req *GetTraceRequest `thrift:"req,1" frugal:"1,default,GetTraceRequest"` +type TraceServiceSearchTraceTreeArgs struct { + Req *SearchTraceTreeRequest `thrift:"req,1" frugal:"1,default,SearchTraceTreeRequest"` } -func NewTraceServiceGetTraceArgs() *TraceServiceGetTraceArgs { - return &TraceServiceGetTraceArgs{} +func NewTraceServiceSearchTraceTreeArgs() *TraceServiceSearchTraceTreeArgs { + return &TraceServiceSearchTraceTreeArgs{} } -func (p *TraceServiceGetTraceArgs) InitDefault() { +func (p *TraceServiceSearchTraceTreeArgs) InitDefault() { } -var TraceServiceGetTraceArgs_Req_DEFAULT *GetTraceRequest +var TraceServiceSearchTraceTreeArgs_Req_DEFAULT *SearchTraceTreeRequest -func (p *TraceServiceGetTraceArgs) GetReq() (v *GetTraceRequest) { +func (p *TraceServiceSearchTraceTreeArgs) GetReq() (v *SearchTraceTreeRequest) { if p == nil { return } if !p.IsSetReq() { - return TraceServiceGetTraceArgs_Req_DEFAULT + return TraceServiceSearchTraceTreeArgs_Req_DEFAULT } return p.Req } -func (p *TraceServiceGetTraceArgs) SetReq(val *GetTraceRequest) { +func (p *TraceServiceSearchTraceTreeArgs) SetReq(val *SearchTraceTreeRequest) { p.Req = val } -var fieldIDToName_TraceServiceGetTraceArgs = map[int16]string{ +var fieldIDToName_TraceServiceSearchTraceTreeArgs = map[int16]string{ 1: "req", } -func (p *TraceServiceGetTraceArgs) IsSetReq() bool { +func (p *TraceServiceSearchTraceTreeArgs) IsSetReq() bool { return p.Req != nil } -func (p *TraceServiceGetTraceArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *TraceServiceSearchTraceTreeArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -18836,7 +20269,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceGetTraceArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceSearchTraceTreeArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -18846,8 +20279,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *TraceServiceGetTraceArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewGetTraceRequest() +func (p *TraceServiceSearchTraceTreeArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewSearchTraceTreeRequest() if err := _field.Read(iprot); err != nil { return err } @@ -18855,9 +20288,9 @@ func (p *TraceServiceGetTraceArgs) ReadField1(iprot thrift.TProtocol) error { return nil } -func (p *TraceServiceGetTraceArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *TraceServiceSearchTraceTreeArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetTrace_args"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceTree_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -18883,7 +20316,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TraceServiceGetTraceArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *TraceServiceSearchTraceTreeArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -18900,15 +20333,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *TraceServiceGetTraceArgs) String() string { +func (p *TraceServiceSearchTraceTreeArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("TraceServiceGetTraceArgs(%+v)", *p) + return fmt.Sprintf("TraceServiceSearchTraceTreeArgs(%+v)", *p) } -func (p *TraceServiceGetTraceArgs) DeepEqual(ano *TraceServiceGetTraceArgs) bool { +func (p *TraceServiceSearchTraceTreeArgs) DeepEqual(ano *TraceServiceSearchTraceTreeArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -18920,7 +20353,7 @@ func (p *TraceServiceGetTraceArgs) DeepEqual(ano *TraceServiceGetTraceArgs) bool return true } -func (p *TraceServiceGetTraceArgs) Field1DeepEqual(src *GetTraceRequest) bool { +func (p *TraceServiceSearchTraceTreeArgs) Field1DeepEqual(src *SearchTraceTreeRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -18928,41 +20361,41 @@ func (p *TraceServiceGetTraceArgs) Field1DeepEqual(src *GetTraceRequest) bool { return true } -type TraceServiceGetTraceResult struct { - Success *GetTraceResponse `thrift:"success,0,optional" frugal:"0,optional,GetTraceResponse"` +type TraceServiceSearchTraceTreeResult struct { + Success *SearchTraceTreeResponse `thrift:"success,0,optional" frugal:"0,optional,SearchTraceTreeResponse"` } -func NewTraceServiceGetTraceResult() *TraceServiceGetTraceResult { - return &TraceServiceGetTraceResult{} +func NewTraceServiceSearchTraceTreeResult() *TraceServiceSearchTraceTreeResult { + return &TraceServiceSearchTraceTreeResult{} } -func (p *TraceServiceGetTraceResult) InitDefault() { +func (p *TraceServiceSearchTraceTreeResult) InitDefault() { } -var TraceServiceGetTraceResult_Success_DEFAULT *GetTraceResponse +var TraceServiceSearchTraceTreeResult_Success_DEFAULT *SearchTraceTreeResponse -func (p *TraceServiceGetTraceResult) GetSuccess() (v *GetTraceResponse) { +func (p *TraceServiceSearchTraceTreeResult) GetSuccess() (v *SearchTraceTreeResponse) { if p == nil { return } if !p.IsSetSuccess() { - return TraceServiceGetTraceResult_Success_DEFAULT + return TraceServiceSearchTraceTreeResult_Success_DEFAULT } return p.Success } -func (p *TraceServiceGetTraceResult) SetSuccess(x interface{}) { - p.Success = x.(*GetTraceResponse) +func (p *TraceServiceSearchTraceTreeResult) SetSuccess(x interface{}) { + p.Success = x.(*SearchTraceTreeResponse) } -var fieldIDToName_TraceServiceGetTraceResult = map[int16]string{ +var fieldIDToName_TraceServiceSearchTraceTreeResult = map[int16]string{ 0: "success", } -func (p *TraceServiceGetTraceResult) IsSetSuccess() bool { +func (p *TraceServiceSearchTraceTreeResult) IsSetSuccess() bool { return p.Success != nil } -func (p *TraceServiceGetTraceResult) Read(iprot thrift.TProtocol) (err error) { +func (p *TraceServiceSearchTraceTreeResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -19007,7 +20440,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceGetTraceResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceSearchTraceTreeResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -19017,8 +20450,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *TraceServiceGetTraceResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewGetTraceResponse() +func (p *TraceServiceSearchTraceTreeResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewSearchTraceTreeResponse() if err := _field.Read(iprot); err != nil { return err } @@ -19026,9 +20459,9 @@ func (p *TraceServiceGetTraceResult) ReadField0(iprot thrift.TProtocol) error { return nil } -func (p *TraceServiceGetTraceResult) Write(oprot thrift.TProtocol) (err error) { +func (p *TraceServiceSearchTraceTreeResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetTrace_result"); err != nil { + if err = oprot.WriteStructBegin("SearchTraceTree_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -19054,7 +20487,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TraceServiceGetTraceResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *TraceServiceSearchTraceTreeResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -19073,15 +20506,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *TraceServiceGetTraceResult) String() string { +func (p *TraceServiceSearchTraceTreeResult) String() string { if p == nil { return "" } - return fmt.Sprintf("TraceServiceGetTraceResult(%+v)", *p) + return fmt.Sprintf("TraceServiceSearchTraceTreeResult(%+v)", *p) } -func (p *TraceServiceGetTraceResult) DeepEqual(ano *TraceServiceGetTraceResult) bool { +func (p *TraceServiceSearchTraceTreeResult) DeepEqual(ano *TraceServiceSearchTraceTreeResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -19093,7 +20526,7 @@ func (p *TraceServiceGetTraceResult) DeepEqual(ano *TraceServiceGetTraceResult) return true } -func (p *TraceServiceGetTraceResult) Field0DeepEqual(src *GetTraceResponse) bool { +func (p *TraceServiceSearchTraceTreeResult) Field0DeepEqual(src *SearchTraceTreeResponse) bool { if !p.Success.DeepEqual(src) { return false diff --git a/backend/kitex_gen/coze/loop/observability/trace/coze.loop.observability.trace_validator.go b/backend/kitex_gen/coze/loop/observability/trace/coze.loop.observability.trace_validator.go index c8976cb21..68dfcd626 100644 --- a/backend/kitex_gen/coze/loop/observability/trace/coze.loop.observability.trace_validator.go +++ b/backend/kitex_gen/coze/loop/observability/trace/coze.loop.observability.trace_validator.go @@ -74,6 +74,32 @@ func (p *GetTraceResponse) IsValid() error { } return nil } +func (p *SearchTraceTreeRequest) IsValid() error { + if p.Filters != nil { + if err := p.Filters.IsValid(); err != nil { + return fmt.Errorf("field Filters not valid, %w", err) + } + } + if p.Base != nil { + if err := p.Base.IsValid(); err != nil { + return fmt.Errorf("field Base not valid, %w", err) + } + } + return nil +} +func (p *SearchTraceTreeResponse) IsValid() error { + if p.TracesAdvanceInfo != nil { + if err := p.TracesAdvanceInfo.IsValid(); err != nil { + return fmt.Errorf("field TracesAdvanceInfo not valid, %w", err) + } + } + if p.BaseResp != nil { + if err := p.BaseResp.IsValid(); err != nil { + return fmt.Errorf("field BaseResp not valid, %w", err) + } + } + return nil +} func (p *TraceQueryParams) IsValid() error { return nil } diff --git a/backend/kitex_gen/coze/loop/observability/trace/k-coze.loop.observability.trace.go b/backend/kitex_gen/coze/loop/observability/trace/k-coze.loop.observability.trace.go index bada89ab9..d33b54cd8 100644 --- a/backend/kitex_gen/coze/loop/observability/trace/k-coze.loop.observability.trace.go +++ b/backend/kitex_gen/coze/loop/observability/trace/k-coze.loop.observability.trace.go @@ -2072,6 +2072,711 @@ func (p *GetTraceResponse) DeepCopy(s interface{}) error { return nil } +func (p *SearchTraceTreeRequest) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetTraceID bool = false + var issetStartTime bool = false + var issetEndTime bool = false + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetWorkspaceID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetTraceID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetStartTime = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetEndTime = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 8: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 10: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + if !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetTraceID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetStartTime { + fieldId = 3 + goto RequiredFieldNotSetError + } + + if !issetEndTime { + fieldId = 4 + goto RequiredFieldNotSetError + } + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceTreeRequest[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +RequiredFieldNotSetError: + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_SearchTraceTreeRequest[fieldId])) +} + +func (p *SearchTraceTreeRequest) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.WorkspaceID = _field + return offset, nil +} + +func (p *SearchTraceTreeRequest) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.TraceID = _field + return offset, nil +} + +func (p *SearchTraceTreeRequest) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.StartTime = _field + return offset, nil +} + +func (p *SearchTraceTreeRequest) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.EndTime = _field + return offset, nil +} + +func (p *SearchTraceTreeRequest) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *common.PlatformType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PlatformType = _field + return offset, nil +} + +func (p *SearchTraceTreeRequest) FastReadField10(buf []byte) (int, error) { + offset := 0 + _field := filter.NewFilterFields() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Filters = _field + return offset, nil +} + +func (p *SearchTraceTreeRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *SearchTraceTreeRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *SearchTraceTreeRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *SearchTraceTreeRequest) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field8Length() + l += p.field10Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *SearchTraceTreeRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], p.WorkspaceID) + return offset +} + +func (p *SearchTraceTreeRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.TraceID) + return offset +} + +func (p *SearchTraceTreeRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], p.StartTime) + return offset +} + +func (p *SearchTraceTreeRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) + offset += thrift.Binary.WriteI64(buf[offset:], p.EndTime) + return offset +} + +func (p *SearchTraceTreeRequest) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPlatformType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PlatformType) + } + return offset +} + +func (p *SearchTraceTreeRequest) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFilters() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) + offset += p.Filters.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *SearchTraceTreeRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *SearchTraceTreeRequest) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *SearchTraceTreeRequest) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.TraceID) + return l +} + +func (p *SearchTraceTreeRequest) field3Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *SearchTraceTreeRequest) field4Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *SearchTraceTreeRequest) field8Length() int { + l := 0 + if p.IsSetPlatformType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.PlatformType) + } + return l +} + +func (p *SearchTraceTreeRequest) field10Length() int { + l := 0 + if p.IsSetFilters() { + l += thrift.Binary.FieldBeginLength() + l += p.Filters.BLength() + } + return l +} + +func (p *SearchTraceTreeRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *SearchTraceTreeRequest) DeepCopy(s interface{}) error { + src, ok := s.(*SearchTraceTreeRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.WorkspaceID = src.WorkspaceID + + if src.TraceID != "" { + p.TraceID = kutils.StringDeepCopy(src.TraceID) + } + + p.StartTime = src.StartTime + + p.EndTime = src.EndTime + + if src.PlatformType != nil { + tmp := *src.PlatformType + p.PlatformType = &tmp + } + + var _filters *filter.FilterFields + if src.Filters != nil { + _filters = &filter.FilterFields{} + if err := _filters.DeepCopy(src.Filters); err != nil { + return err + } + } + p.Filters = _filters + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *SearchTraceTreeResponse) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetSpans bool = false + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetSpans = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + if !issetSpans { + fieldId = 1 + goto RequiredFieldNotSetError + } + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchTraceTreeResponse[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +RequiredFieldNotSetError: + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_SearchTraceTreeResponse[fieldId])) +} + +func (p *SearchTraceTreeResponse) FastReadField1(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*span.OutputSpan, 0, size) + values := make([]span.OutputSpan, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.Spans = _field + return offset, nil +} + +func (p *SearchTraceTreeResponse) FastReadField2(buf []byte) (int, error) { + offset := 0 + _field := NewTraceAdvanceInfo() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.TracesAdvanceInfo = _field + return offset, nil +} + +func (p *SearchTraceTreeResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *SearchTraceTreeResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *SearchTraceTreeResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *SearchTraceTreeResponse) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *SearchTraceTreeResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.Spans { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + return offset +} + +func (p *SearchTraceTreeResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTracesAdvanceInfo() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) + offset += p.TracesAdvanceInfo.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *SearchTraceTreeResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBaseResp() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *SearchTraceTreeResponse) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.Spans { + _ = v + l += v.BLength() + } + return l +} + +func (p *SearchTraceTreeResponse) field2Length() int { + l := 0 + if p.IsSetTracesAdvanceInfo() { + l += thrift.Binary.FieldBeginLength() + l += p.TracesAdvanceInfo.BLength() + } + return l +} + +func (p *SearchTraceTreeResponse) field255Length() int { + l := 0 + if p.IsSetBaseResp() { + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + } + return l +} + +func (p *SearchTraceTreeResponse) DeepCopy(s interface{}) error { + src, ok := s.(*SearchTraceTreeResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Spans != nil { + p.Spans = make([]*span.OutputSpan, 0, len(src.Spans)) + for _, elem := range src.Spans { + var _elem *span.OutputSpan + if elem != nil { + _elem = &span.OutputSpan{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.Spans = append(p.Spans, _elem) + } + } + + var _tracesAdvanceInfo *TraceAdvanceInfo + if src.TracesAdvanceInfo != nil { + _tracesAdvanceInfo = &TraceAdvanceInfo{} + if err := _tracesAdvanceInfo.DeepCopy(src.TracesAdvanceInfo); err != nil { + return err + } + } + p.TracesAdvanceInfo = _tracesAdvanceInfo + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + func (p *TraceQueryParams) FastRead(buf []byte) (int, error) { var err error @@ -3866,6 +4571,20 @@ func (p *GetTracesMetaInfoResponse) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 2: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -3931,9 +4650,33 @@ func (p *GetTracesMetaInfoResponse) FastReadField1(buf []byte) (int, error) { offset += l } - _field[_key] = _val + _field[_key] = _val + } + p.FieldMetas = _field + return offset, nil +} + +func (p *GetTracesMetaInfoResponse) FastReadField2(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + var _elem string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) } - p.FieldMetas = _field + p.KeySpanType = _field return offset, nil } @@ -3957,6 +4700,7 @@ func (p *GetTracesMetaInfoResponse) FastWriteNocopy(buf []byte, w thrift.NocopyW offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -3967,6 +4711,7 @@ func (p *GetTracesMetaInfoResponse) BLength() int { l := 0 if p != nil { l += p.field1Length() + l += p.field2Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -3988,6 +4733,22 @@ func (p *GetTracesMetaInfoResponse) fastWriteField1(buf []byte, w thrift.NocopyW return offset } +func (p *GetTracesMetaInfoResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetKeySpanType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.KeySpanType { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRING, length) + } + return offset +} + func (p *GetTracesMetaInfoResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBaseResp() { @@ -4010,6 +4771,19 @@ func (p *GetTracesMetaInfoResponse) field1Length() int { return l } +func (p *GetTracesMetaInfoResponse) field2Length() int { + l := 0 + if p.IsSetKeySpanType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.KeySpanType { + _ = v + l += thrift.Binary.StringLengthNocopy(v) + } + } + return l +} + func (p *GetTracesMetaInfoResponse) field255Length() int { l := 0 if p.IsSetBaseResp() { @@ -4045,6 +4819,17 @@ func (p *GetTracesMetaInfoResponse) DeepCopy(s interface{}) error { } } + if src.KeySpanType != nil { + p.KeySpanType = make([]string, 0, len(src.KeySpanType)) + for _, elem := range src.KeySpanType { + var _elem string + if elem != "" { + _elem = kutils.StringDeepCopy(elem) + } + p.KeySpanType = append(p.KeySpanType, _elem) + } + } + var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} @@ -13326,6 +14111,240 @@ func (p *TraceServiceGetTraceResult) DeepCopy(s interface{}) error { return nil } +func (p *TraceServiceSearchTraceTreeArgs) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceSearchTraceTreeArgs[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *TraceServiceSearchTraceTreeArgs) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewSearchTraceTreeRequest() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Req = _field + return offset, nil +} + +func (p *TraceServiceSearchTraceTreeArgs) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *TraceServiceSearchTraceTreeArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *TraceServiceSearchTraceTreeArgs) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *TraceServiceSearchTraceTreeArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Req.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *TraceServiceSearchTraceTreeArgs) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.Req.BLength() + return l +} + +func (p *TraceServiceSearchTraceTreeArgs) DeepCopy(s interface{}) error { + src, ok := s.(*TraceServiceSearchTraceTreeArgs) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _req *SearchTraceTreeRequest + if src.Req != nil { + _req = &SearchTraceTreeRequest{} + if err := _req.DeepCopy(src.Req); err != nil { + return err + } + } + p.Req = _req + + return nil +} + +func (p *TraceServiceSearchTraceTreeResult) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField0(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TraceServiceSearchTraceTreeResult[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *TraceServiceSearchTraceTreeResult) FastReadField0(buf []byte) (int, error) { + offset := 0 + _field := NewSearchTraceTreeResponse() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Success = _field + return offset, nil +} + +func (p *TraceServiceSearchTraceTreeResult) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *TraceServiceSearchTraceTreeResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField0(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *TraceServiceSearchTraceTreeResult) BLength() int { + l := 0 + if p != nil { + l += p.field0Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *TraceServiceSearchTraceTreeResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSuccess() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) + offset += p.Success.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *TraceServiceSearchTraceTreeResult) field0Length() int { + l := 0 + if p.IsSetSuccess() { + l += thrift.Binary.FieldBeginLength() + l += p.Success.BLength() + } + return l +} + +func (p *TraceServiceSearchTraceTreeResult) DeepCopy(s interface{}) error { + src, ok := s.(*TraceServiceSearchTraceTreeResult) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _success *SearchTraceTreeResponse + if src.Success != nil { + _success = &SearchTraceTreeResponse{} + if err := _success.DeepCopy(src.Success); err != nil { + return err + } + } + p.Success = _success + + return nil +} + func (p *TraceServiceBatchGetTracesAdvanceInfoArgs) FastRead(buf []byte) (int, error) { var err error @@ -17086,6 +18105,14 @@ func (p *TraceServiceGetTraceResult) GetResult() interface{} { return p.Success } +func (p *TraceServiceSearchTraceTreeArgs) GetFirstArgument() interface{} { + return p.Req +} + +func (p *TraceServiceSearchTraceTreeResult) GetResult() interface{} { + return p.Success +} + func (p *TraceServiceBatchGetTracesAdvanceInfoArgs) GetFirstArgument() interface{} { return p.Req } diff --git a/backend/kitex_gen/coze/loop/observability/trace/traceservice/client.go b/backend/kitex_gen/coze/loop/observability/trace/traceservice/client.go index da26be9b5..6bd0efb39 100644 --- a/backend/kitex_gen/coze/loop/observability/trace/traceservice/client.go +++ b/backend/kitex_gen/coze/loop/observability/trace/traceservice/client.go @@ -13,6 +13,7 @@ import ( type Client interface { ListSpans(ctx context.Context, req *trace.ListSpansRequest, callOptions ...callopt.Option) (r *trace.ListSpansResponse, err error) GetTrace(ctx context.Context, req *trace.GetTraceRequest, callOptions ...callopt.Option) (r *trace.GetTraceResponse, err error) + SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest, callOptions ...callopt.Option) (r *trace.SearchTraceTreeResponse, err error) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest, callOptions ...callopt.Option) (r *trace.BatchGetTracesAdvanceInfoResponse, err error) IngestTracesInner(ctx context.Context, req *trace.IngestTracesRequest, callOptions ...callopt.Option) (r *trace.IngestTracesResponse, err error) GetTracesMetaInfo(ctx context.Context, req *trace.GetTracesMetaInfoRequest, callOptions ...callopt.Option) (r *trace.GetTracesMetaInfoResponse, err error) @@ -70,6 +71,11 @@ func (p *kTraceServiceClient) GetTrace(ctx context.Context, req *trace.GetTraceR return p.kClient.GetTrace(ctx, req) } +func (p *kTraceServiceClient) SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest, callOptions ...callopt.Option) (r *trace.SearchTraceTreeResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.SearchTraceTree(ctx, req) +} + func (p *kTraceServiceClient) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest, callOptions ...callopt.Option) (r *trace.BatchGetTracesAdvanceInfoResponse, err error) { ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.BatchGetTracesAdvanceInfo(ctx, req) diff --git a/backend/kitex_gen/coze/loop/observability/trace/traceservice/traceservice.go b/backend/kitex_gen/coze/loop/observability/trace/traceservice/traceservice.go index 0aeace78b..4e077e1f7 100644 --- a/backend/kitex_gen/coze/loop/observability/trace/traceservice/traceservice.go +++ b/backend/kitex_gen/coze/loop/observability/trace/traceservice/traceservice.go @@ -27,6 +27,13 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "SearchTraceTree": kitex.NewMethodInfo( + searchTraceTreeHandler, + newTraceServiceSearchTraceTreeArgs, + newTraceServiceSearchTraceTreeResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), "BatchGetTracesAdvanceInfo": kitex.NewMethodInfo( batchGetTracesAdvanceInfoHandler, newTraceServiceBatchGetTracesAdvanceInfoArgs, @@ -210,6 +217,25 @@ func newTraceServiceGetTraceResult() interface{} { return trace.NewTraceServiceGetTraceResult() } +func searchTraceTreeHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*trace.TraceServiceSearchTraceTreeArgs) + realResult := result.(*trace.TraceServiceSearchTraceTreeResult) + success, err := handler.(trace.TraceService).SearchTraceTree(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newTraceServiceSearchTraceTreeArgs() interface{} { + return trace.NewTraceServiceSearchTraceTreeArgs() +} + +func newTraceServiceSearchTraceTreeResult() interface{} { + return trace.NewTraceServiceSearchTraceTreeResult() +} + func batchGetTracesAdvanceInfoHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { realArg := arg.(*trace.TraceServiceBatchGetTracesAdvanceInfoArgs) realResult := result.(*trace.TraceServiceBatchGetTracesAdvanceInfoResult) @@ -546,6 +572,16 @@ func (p *kClient) GetTrace(ctx context.Context, req *trace.GetTraceRequest) (r * return _result.GetSuccess(), nil } +func (p *kClient) SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest) (r *trace.SearchTraceTreeResponse, err error) { + var _args trace.TraceServiceSearchTraceTreeArgs + _args.Req = req + var _result trace.TraceServiceSearchTraceTreeResult + if err = p.c.Call(ctx, "SearchTraceTree", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + func (p *kClient) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest) (r *trace.BatchGetTracesAdvanceInfoResponse, err error) { var _args trace.TraceServiceBatchGetTracesAdvanceInfoArgs _args.Req = req diff --git a/backend/loop_gen/coze/loop/observability/loopenapi/local_openapiservice.go b/backend/loop_gen/coze/loop/observability/loopenapi/local_openapiservice.go index e9b9eef54..2ccedaecd 100644 --- a/backend/loop_gen/coze/loop/observability/loopenapi/local_openapiservice.go +++ b/backend/loop_gen/coze/loop/observability/loopenapi/local_openapiservice.go @@ -85,6 +85,27 @@ func (l *LocalOpenAPIService) SearchTraceOApi(ctx context.Context, req *openapi. return result.GetSuccess(), nil } +func (l *LocalOpenAPIService) SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest, callOptions ...callopt.Option) (*openapi.SearchTraceTreeOApiResponse, error) { + chain := l.mds(func(ctx context.Context, in, out interface{}) error { + arg := in.(*openapi.OpenAPIServiceSearchTraceTreeOApiArgs) + result := out.(*openapi.OpenAPIServiceSearchTraceTreeOApiResult) + resp, err := l.impl.SearchTraceTreeOApi(ctx, arg.Req) + if err != nil { + return err + } + result.SetSuccess(resp) + return nil + }) + + arg := &openapi.OpenAPIServiceSearchTraceTreeOApiArgs{Req: req} + result := &openapi.OpenAPIServiceSearchTraceTreeOApiResult{} + ctx = l.injectRPCInfo(ctx, "SearchTraceTreeOApi") + if err := chain(ctx, arg, result); err != nil { + return nil, err + } + return result.GetSuccess(), nil +} + func (l *LocalOpenAPIService) ListSpansOApi(ctx context.Context, req *openapi.ListSpansOApiRequest, callOptions ...callopt.Option) (*openapi.ListSpansOApiResponse, error) { chain := l.mds(func(ctx context.Context, in, out interface{}) error { arg := in.(*openapi.OpenAPIServiceListSpansOApiArgs) diff --git a/backend/loop_gen/coze/loop/observability/lotrace/local_traceservice.go b/backend/loop_gen/coze/loop/observability/lotrace/local_traceservice.go index 4a8f153e4..dbaa11236 100644 --- a/backend/loop_gen/coze/loop/observability/lotrace/local_traceservice.go +++ b/backend/loop_gen/coze/loop/observability/lotrace/local_traceservice.go @@ -64,6 +64,27 @@ func (l *LocalTraceService) GetTrace(ctx context.Context, req *trace.GetTraceReq return result.GetSuccess(), nil } +func (l *LocalTraceService) SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest, callOptions ...callopt.Option) (*trace.SearchTraceTreeResponse, error) { + chain := l.mds(func(ctx context.Context, in, out interface{}) error { + arg := in.(*trace.TraceServiceSearchTraceTreeArgs) + result := out.(*trace.TraceServiceSearchTraceTreeResult) + resp, err := l.impl.SearchTraceTree(ctx, arg.Req) + if err != nil { + return err + } + result.SetSuccess(resp) + return nil + }) + + arg := &trace.TraceServiceSearchTraceTreeArgs{Req: req} + result := &trace.TraceServiceSearchTraceTreeResult{} + ctx = l.injectRPCInfo(ctx, "SearchTraceTree") + if err := chain(ctx, arg, result); err != nil { + return nil, err + } + return result.GetSuccess(), nil +} + func (l *LocalTraceService) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest, callOptions ...callopt.Option) (*trace.BatchGetTracesAdvanceInfoResponse, error) { chain := l.mds(func(ctx context.Context, in, out interface{}) error { arg := in.(*trace.TraceServiceBatchGetTracesAdvanceInfoArgs) diff --git a/backend/modules/observability/application/convertor/trace/span.go b/backend/modules/observability/application/convertor/trace/span.go index 9b1ac6a57..0f7e8a3e2 100644 --- a/backend/modules/observability/application/convertor/trace/span.go +++ b/backend/modules/observability/application/convertor/trace/span.go @@ -204,6 +204,9 @@ func FilterFieldsDTO2DO(f *filter.FilterFields) *loop_span.FilterFields { if field.SubFilter != nil { fField.SubFilter = FilterFieldsDTO2DO(field.SubFilter) } + if field.IsCustom != nil { + fField.IsCustom = *field.IsCustom + } ret.FilterFields = append(ret.FilterFields, fField) } return ret diff --git a/backend/modules/observability/application/openapi.go b/backend/modules/observability/application/openapi.go index 4f40b8252..f3fd6fe18 100644 --- a/backend/modules/observability/application/openapi.go +++ b/backend/modules/observability/application/openapi.go @@ -17,6 +17,7 @@ import ( "github.com/bytedance/gg/gptr" "github.com/bytedance/sonic" "github.com/coze-dev/coze-loop/backend/kitex_gen/base" + "github.com/coze-dev/coze-loop/backend/modules/observability/domain/component/collector" coltracepb "go.opentelemetry.io/proto/otlp/collector/trace/v1" "google.golang.org/protobuf/proto" @@ -64,6 +65,7 @@ func NewOpenAPIApplication( rateLimiter limiter.IRateLimiterFactory, traceConfig config.ITraceConfig, metrics metrics.ITraceMetrics, + collector collector.ICollectorProvider, ) (IObservabilityOpenAPIApplication, error) { return &OpenAPIApplication{ traceService: traceService, @@ -74,6 +76,7 @@ func NewOpenAPIApplication( rateLimiter: rateLimiter.NewRateLimiter(), traceConfig: traceConfig, metrics: metrics, + collector: collector, }, nil } @@ -86,6 +89,7 @@ type OpenAPIApplication struct { rateLimiter limiter.IRateLimiter traceConfig config.ITraceConfig metrics metrics.ITraceMetrics + collector collector.ICollectorProvider } func (o *OpenAPIApplication) IngestTraces(ctx context.Context, req *openapi.IngestTracesRequest) (*openapi.IngestTracesResponse, error) { @@ -475,10 +479,11 @@ func (o *OpenAPIApplication) SearchTraceOApi(ctx context.Context, req *openapi.S defer func() { if req != nil { o.metrics.EmitTraceOapi("SearchTraceOApi", req.WorkspaceID, req.GetPlatformType(), "", int64(spansSize), errCode, st, err != nil) + o.collector.CollectTraceOpenAPIEvent(ctx, "SearchTraceOApi", req.WorkspaceID, req.GetPlatformType(), "", int64(spansSize), errCode, st, err != nil) } }() - if err = o.validateSearchOApiTraceReq(ctx, req); err != nil { + if err = o.validateSearchTraceOApiReq(ctx, req); err != nil { errCode = obErrorx.CommercialCommonInvalidParamCodeCode return nil, err } @@ -492,7 +497,7 @@ func (o *OpenAPIApplication) SearchTraceOApi(ctx context.Context, req *openapi.S errCode = obErrorx.CommonRequestRateLimitCode return nil, err } - sReq, err := o.buildSearchTraceReq(ctx, req) + sReq, err := o.buildSearchTraceOApiReq(ctx, req) if err != nil { errCode = obErrorx.CommonInternalErrorCode return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("search trace req is invalid")) @@ -520,7 +525,7 @@ func (o *OpenAPIApplication) SearchTraceOApi(ctx context.Context, req *openapi.S }, nil } -func (o *OpenAPIApplication) validateSearchOApiTraceReq(ctx context.Context, req *openapi.SearchTraceOApiRequest) error { +func (o *OpenAPIApplication) validateSearchTraceOApiReq(ctx context.Context, req *openapi.SearchTraceOApiRequest) error { if req == nil { return errorx.NewByCode(obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("no request provided")) } else if req.GetTraceID() == "" && req.GetLogid() == "" { @@ -542,7 +547,7 @@ func (o *OpenAPIApplication) validateSearchOApiTraceReq(ctx context.Context, req return nil } -func (o *OpenAPIApplication) buildSearchTraceReq(ctx context.Context, req *openapi.SearchTraceOApiRequest) (*service.SearchTraceOApiReq, error) { +func (o *OpenAPIApplication) buildSearchTraceOApiReq(ctx context.Context, req *openapi.SearchTraceOApiRequest) (*service.SearchTraceOApiReq, error) { platformType := loop_span.PlatformType(req.GetPlatformType()) if req.PlatformType == nil { platformType = loop_span.PlatformCozeLoop @@ -558,11 +563,123 @@ func (o *OpenAPIApplication) buildSearchTraceReq(ctx context.Context, req *opena EndTime: req.GetEndTime(), Limit: req.GetLimit(), PlatformType: platformType, + WithDetail: true, + SpanIDs: req.SpanIds, } if len(ret.Tenants) == 0 { logs.CtxError(ctx, "fail to get platform tenants") return nil, errorx.WrapByCode(errors.New("fail to get platform tenants"), obErrorx.CommercialCommonInternalErrorCodeCode) } + + return ret, nil +} + +func (o *OpenAPIApplication) SearchTraceTreeOApi(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest) (*openapi.SearchTraceTreeOApiResponse, error) { + var err error + st := time.Now() + spansSize := 0 + errCode := 0 + defer func() { + if req != nil { + o.metrics.EmitTraceOapi("SearchTraceTreeOApi", req.GetWorkspaceID(), req.GetPlatformType(), "", int64(spansSize), errCode, st, err != nil) + o.collector.CollectTraceOpenAPIEvent(ctx, "SearchTraceTreeOApi", req.GetWorkspaceID(), req.GetPlatformType(), "", int64(spansSize), errCode, st, err != nil) + } + }() + + if err = o.validateSearchTraceTreeOApiReq(ctx, req); err != nil { + errCode = obErrorx.CommercialCommonInvalidParamCodeCode + return nil, err + } + if err = o.auth.CheckQueryPermission(ctx, strconv.FormatInt(req.GetWorkspaceID(), 10), req.GetPlatformType()); err != nil { + errCode = obErrorx.CommonNoPermissionCode + return nil, err + } + limitKey := strconv.FormatInt(req.GetWorkspaceID(), 10) + if !o.AllowByKey(ctx, limitKey) { + err = errorx.NewByCode(obErrorx.CommonRequestRateLimitCode, errorx.WithExtraMsg("qps limit exceeded")) + errCode = obErrorx.CommonRequestRateLimitCode + return nil, err + } + sReq, err := o.buildSearchTraceTreeOApiReq(ctx, req) + if err != nil { + errCode = obErrorx.CommonInternalErrorCode + return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("search trace req is invalid")) + } + sResp, err := o.traceService.SearchTraceOApi(ctx, sReq) + if err != nil { + return nil, err + } + inTokens, outTokens, err := sResp.Spans.Stat(ctx) + if err != nil { + return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInternalErrorCodeCode) + } + if sResp != nil { + spansSize = loop_span.SizeofSpans(sResp.Spans) + logs.CtxInfo(ctx, "SearchTrace successfully, spans count %d", len(sResp.Spans)) + } + return &openapi.SearchTraceTreeOApiResponse{ + Data: &openapi.SearchTraceOApiData{ + Spans: tconv.SpanListDO2DTO(sResp.Spans, nil, nil, nil), + TracesAdvanceInfo: &trace.TraceAdvanceInfo{ + Tokens: &trace.TokenCost{ + Input: inTokens, + Output: outTokens, + }, + }, + }, + }, nil +} + +func (o *OpenAPIApplication) validateSearchTraceTreeOApiReq(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest) error { + if req == nil { + return errorx.NewByCode(obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("no request provided")) + } else if req.GetTraceID() == "" { + return errorx.NewByCode(obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("at least need trace_id or log_id")) + } else if req.Limit > MaxTraceTreeLength || req.Limit < 0 { + return errorx.NewByCode(obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("invalid limit")) + } + v := utils.DateValidator{ + Start: req.GetStartTime(), + End: req.GetEndTime(), + EarliestDays: 365, + } + newStartTime, newEndTime, err := v.CorrectDate() + if err != nil { + return err + } + req.SetStartTime(&newStartTime) + req.SetEndTime(&newEndTime) + return nil +} + +func (o *OpenAPIApplication) buildSearchTraceTreeOApiReq(ctx context.Context, req *openapi.SearchTraceTreeOApiRequest) (*service.SearchTraceOApiReq, error) { + platformType := loop_span.PlatformType(req.GetPlatformType()) + if req.PlatformType == nil { + platformType = loop_span.PlatformCozeLoop + } + + ret := &service.SearchTraceOApiReq{ + WorkspaceID: req.GetWorkspaceID(), + ThirdPartyWorkspaceID: o.workspace.GetThirdPartyQueryWorkSpaceID(ctx, req.GetWorkspaceID()), + Tenants: o.tenant.GetOAPIQueryTenants(ctx, platformType), + TraceID: req.GetTraceID(), + StartTime: req.GetStartTime(), + EndTime: req.GetEndTime(), + Limit: req.GetLimit(), + PlatformType: platformType, + WithDetail: false, + } + + if len(ret.Tenants) == 0 { + logs.CtxError(ctx, "fail to get platform tenants") + return nil, errorx.WrapByCode(errors.New("fail to get platform tenants"), obErrorx.CommercialCommonInternalErrorCodeCode) + } + if req.Filters != nil { + ret.Filters = tconv.FilterFieldsDTO2DO(req.Filters) + if err := ret.Filters.Validate(); err != nil { + return nil, err + } + } return ret, nil } @@ -575,6 +692,7 @@ func (o *OpenAPIApplication) ListSpansOApi(ctx context.Context, req *openapi.Lis defer func() { if req != nil { o.metrics.EmitTraceOapi("ListSpansOApi", req.WorkspaceID, req.GetPlatformType(), req.GetSpanListType(), int64(spansSize), errCode, st, err != nil) + o.collector.CollectTraceOpenAPIEvent(ctx, "ListSpansOApi", req.WorkspaceID, req.GetPlatformType(), req.GetSpanListType(), int64(spansSize), errCode, st, err != nil) } }() if err = o.validateListSpansOApi(ctx, req); err != nil { @@ -685,6 +803,7 @@ func (o *OpenAPIApplication) ListTracesOApi(ctx context.Context, req *openapi.Li errCode := 0 defer func() { o.metrics.EmitTraceOapi("ListTracesOApi", req.WorkspaceID, "", "", 0, errCode, st, err != nil) + o.collector.CollectTraceOpenAPIEvent(ctx, "ListTracesOApi", req.WorkspaceID, "", "", 0, errCode, st, err != nil) }() if err = o.validateListTracesOApiReq(ctx, req); err != nil { diff --git a/backend/modules/observability/application/openapi_test.go b/backend/modules/observability/application/openapi_test.go old mode 100644 new mode 100755 index 2d71dc47d..bebec15e5 --- a/backend/modules/observability/application/openapi_test.go +++ b/backend/modules/observability/application/openapi_test.go @@ -10,24 +10,18 @@ import ( "testing" "time" - "github.com/bytedance/sonic" - "github.com/stretchr/testify/assert" - coltracepb "go.opentelemetry.io/proto/otlp/collector/trace/v1" - commonpb "go.opentelemetry.io/proto/otlp/common/v1" - resourcepb "go.opentelemetry.io/proto/otlp/resource/v1" - tracepb "go.opentelemetry.io/proto/otlp/trace/v1" - "go.uber.org/mock/gomock" - "google.golang.org/protobuf/proto" - "github.com/coze-dev/coze-loop/backend/infra/external/benefit" benefitmocks "github.com/coze-dev/coze-loop/backend/infra/external/benefit/mocks" "github.com/coze-dev/coze-loop/backend/infra/limiter" limitermocks "github.com/coze-dev/coze-loop/backend/infra/limiter/mocks" "github.com/coze-dev/coze-loop/backend/kitex_gen/base" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/annotation" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/common" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/filter" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/span" - traced "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/trace" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/openapi" + "github.com/coze-dev/coze-loop/backend/modules/observability/domain/component/collector" + collectormocks "github.com/coze-dev/coze-loop/backend/modules/observability/domain/component/collector/mocks" "github.com/coze-dev/coze-loop/backend/modules/observability/domain/component/config" configmocks "github.com/coze-dev/coze-loop/backend/modules/observability/domain/component/config/mocks" "github.com/coze-dev/coze-loop/backend/modules/observability/domain/component/metrics" @@ -40,10 +34,15 @@ import ( workspacemocks "github.com/coze-dev/coze-loop/backend/modules/observability/domain/component/workspace/mocks" "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/entity" "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/entity/loop_span" - "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/entity/otel" "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/service" servicemocks "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/service/mocks" "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" + "github.com/stretchr/testify/assert" + coltracepb "go.opentelemetry.io/proto/otlp/collector/trace/v1" + tracepb "go.opentelemetry.io/proto/otlp/trace/v1" + "google.golang.org/protobuf/proto" + + "go.uber.org/mock/gomock" ) func TestOpenAPIApplication_IngestTraces(t *testing.T) { @@ -56,6 +55,7 @@ func TestOpenAPIApplication_IngestTraces(t *testing.T) { rateLimiter limiter.IRateLimiterFactory traceConfig config.ITraceConfig metrics metrics.ITraceMetrics + collector collector.ICollectorProvider } type args struct { ctx context.Context @@ -89,6 +89,7 @@ func TestOpenAPIApplication_IngestTraces(t *testing.T) { rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), gomock.Any()).Return(100, nil).AnyTimes() traceConfigMock.EXPECT().GetTraceIngestTenantProducerCfg(gomock.Any()).Return(nil, nil).AnyTimes() return fields{ @@ -100,6 +101,7 @@ func TestOpenAPIApplication_IngestTraces(t *testing.T) { rateLimiter: rateLimiterMock, traceConfig: traceConfigMock, metrics: metricsMock, + collector: collectorMock, } }, args: args{ @@ -127,6 +129,7 @@ func TestOpenAPIApplication_IngestTraces(t *testing.T) { rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) return fields{ traceService: traceServiceMock, auth: authMock, @@ -136,6 +139,7 @@ func TestOpenAPIApplication_IngestTraces(t *testing.T) { rateLimiter: rateLimiterMock, traceConfig: traceConfigMock, metrics: metricsMock, + collector: collectorMock, } }, args: args{ @@ -150,6 +154,7 @@ func TestOpenAPIApplication_IngestTraces(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() ctrl := gomock.NewController(t) defer ctrl.Finish() fields := tt.fieldsGetter(ctrl) @@ -162,9 +167,8 @@ func TestOpenAPIApplication_IngestTraces(t *testing.T) { rateLimiter: fields.rateLimiter.NewRateLimiter(), traceConfig: fields.traceConfig, metrics: fields.metrics, + collector: fields.collector, } - err := error(nil) - assert.NoError(t, err) got, err := o.IngestTraces(tt.args.ctx, tt.args.req) assert.Equal(t, tt.wantErr, err != nil) assert.Equal(t, tt.want, got) @@ -182,6 +186,7 @@ func TestOpenAPIApplication_CreateAnnotation(t *testing.T) { rateLimiter limiter.IRateLimiterFactory traceConfig config.ITraceConfig metrics metrics.ITraceMetrics + collector collector.ICollectorProvider } type args struct { ctx context.Context @@ -223,6 +228,7 @@ func TestOpenAPIApplication_CreateAnnotation(t *testing.T) { rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) return fields{ traceService: traceServiceMock, auth: authMock, @@ -232,6 +238,7 @@ func TestOpenAPIApplication_CreateAnnotation(t *testing.T) { rateLimiter: rateLimiterMock, traceConfig: traceConfigMock, metrics: metricsMock, + collector: collectorMock, } }, args: args{ @@ -270,6 +277,7 @@ func TestOpenAPIApplication_CreateAnnotation(t *testing.T) { rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) return fields{ traceService: traceServiceMock, auth: authMock, @@ -279,6 +287,7 @@ func TestOpenAPIApplication_CreateAnnotation(t *testing.T) { rateLimiter: rateLimiterMock, traceConfig: traceConfigMock, metrics: metricsMock, + collector: collectorMock, } }, args: args{ @@ -601,6 +610,7 @@ func TestOpenAPIApplication_CreateAnnotation(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() ctrl := gomock.NewController(t) defer ctrl.Finish() fields := tt.fieldsGetter(ctrl) @@ -613,9 +623,8 @@ func TestOpenAPIApplication_CreateAnnotation(t *testing.T) { rateLimiter: fields.rateLimiter.NewRateLimiter(), traceConfig: fields.traceConfig, metrics: fields.metrics, + collector: fields.collector, } - err := error(nil) - assert.NoError(t, err) got, err := o.CreateAnnotation(tt.args.ctx, tt.args.req) assert.Equal(t, tt.wantErr, err != nil) assert.Equal(t, tt.want, got) @@ -633,6 +642,7 @@ func TestOpenAPIApplication_DeleteAnnotation(t *testing.T) { rateLimiter limiter.IRateLimiterFactory traceConfig config.ITraceConfig metrics metrics.ITraceMetrics + collector collector.ICollectorProvider } type args struct { ctx context.Context @@ -674,6 +684,7 @@ func TestOpenAPIApplication_DeleteAnnotation(t *testing.T) { rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) return fields{ traceService: traceServiceMock, auth: authMock, @@ -683,6 +694,7 @@ func TestOpenAPIApplication_DeleteAnnotation(t *testing.T) { rateLimiter: rateLimiterMock, traceConfig: traceConfigMock, metrics: metricsMock, + collector: collectorMock, } }, args: args{ @@ -807,6 +819,7 @@ func TestOpenAPIApplication_DeleteAnnotation(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() ctrl := gomock.NewController(t) defer ctrl.Finish() fields := tt.fieldsGetter(ctrl) @@ -819,9 +832,8 @@ func TestOpenAPIApplication_DeleteAnnotation(t *testing.T) { rateLimiter: fields.rateLimiter.NewRateLimiter(), traceConfig: fields.traceConfig, metrics: fields.metrics, + collector: fields.collector, } - err := error(nil) - assert.NoError(t, err) got, err := o.DeleteAnnotation(tt.args.ctx, tt.args.req) assert.Equal(t, tt.wantErr, err != nil) assert.Equal(t, tt.want, got) @@ -839,6 +851,7 @@ func TestOpenAPIApplication_Send(t *testing.T) { rateLimiter limiter.IRateLimiterFactory traceConfig config.ITraceConfig metrics metrics.ITraceMetrics + collector collector.ICollectorProvider } type args struct { ctx context.Context @@ -875,6 +888,7 @@ func TestOpenAPIApplication_Send(t *testing.T) { rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) return fields{ traceService: traceServiceMock, auth: authMock, @@ -884,6 +898,7 @@ func TestOpenAPIApplication_Send(t *testing.T) { rateLimiter: rateLimiterMock, traceConfig: traceConfigMock, metrics: metricsMock, + collector: collectorMock, } }, args: args{ @@ -895,6 +910,7 @@ func TestOpenAPIApplication_Send(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() ctrl := gomock.NewController(t) defer ctrl.Finish() fields := tt.fieldsGetter(ctrl) @@ -907,16 +923,63 @@ func TestOpenAPIApplication_Send(t *testing.T) { rateLimiter: fields.rateLimiter.NewRateLimiter(), traceConfig: fields.traceConfig, metrics: fields.metrics, + collector: fields.collector, } - err := error(nil) - assert.NoError(t, err) - err = o.Send(tt.args.ctx, tt.args.event) + err := o.Send(tt.args.ctx, tt.args.event) assert.Equal(t, tt.wantErr, err != nil) }) } } -func TestOpenAPIApplication_OtelIngestTraces(t *testing.T) { +func TestNewOpenAPIApplication(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + traceServiceMock := servicemocks.NewMockITraceService(ctrl) + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + benefitMock := benefitmocks.NewMockIBenefitService(ctrl) + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + rateLimiterFactoryMock := limitermocks.NewMockIRateLimiterFactory(ctrl) + rateLimiterMock := limitermocks.NewMockIRateLimiter(ctrl) + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + rateLimiterFactoryMock.EXPECT().NewRateLimiter().Return(rateLimiterMock) + + app, err := NewOpenAPIApplication( + traceServiceMock, + authMock, + benefitMock, + tenantMock, + workspaceMock, + rateLimiterFactoryMock, + traceConfigMock, + metricsMock, + collectorMock, + ) + + assert.NoError(t, err) + assert.NotNil(t, app) + + // 验证返回的实例类型 + openAPIApp, ok := app.(*OpenAPIApplication) + assert.True(t, ok) + assert.NotNil(t, openAPIApp.traceService) + assert.NotNil(t, openAPIApp.auth) + assert.NotNil(t, openAPIApp.benefit) + assert.NotNil(t, openAPIApp.tenant) + assert.NotNil(t, openAPIApp.workspace) + assert.NotNil(t, openAPIApp.rateLimiter) + assert.NotNil(t, openAPIApp.traceConfig) + assert.NotNil(t, openAPIApp.metrics) + assert.NotNil(t, openAPIApp.collector) +} + +// 补充IngestTraces的边界测试场景 +func TestOpenAPIApplication_IngestTraces_AdditionalScenarios(t *testing.T) { type fields struct { traceService service.ITraceService auth rpc.IAuthProvider @@ -929,44 +992,25 @@ func TestOpenAPIApplication_OtelIngestTraces(t *testing.T) { } type args struct { ctx context.Context - req *openapi.OtelIngestTracesRequest + req *openapi.IngestTracesRequest } tests := []struct { name string fieldsGetter func(ctrl *gomock.Controller) fields args args - want *openapi.OtelIngestTracesResponse + want *openapi.IngestTracesResponse wantErr bool }{ { - name: "success with JSON format data", + name: "permission check fails", fieldsGetter: func(ctrl *gomock.Controller) fields { traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().IngestTraces(gomock.Any(), gomock.Any()).Return(nil) authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), "123").Return(nil) + authMock.EXPECT().CheckIngestPermission(gomock.Any(), gomock.Any()).Return(assert.AnError) benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ - AccountAvailable: true, - IsEnough: true, - StorageDuration: 3, - WhichIsEnough: -1, - }, nil) tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - tenantMock.EXPECT().GetIngestTenant(gomock.Any(), gomock.Any()).Return("test-tenant") workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() + workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).Return("1").AnyTimes() rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) @@ -984,48 +1028,32 @@ func TestOpenAPIApplication_OtelIngestTraces(t *testing.T) { }, args: args{ ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: createValidJSONTraceData(), - ContentType: "application/json", - ContentEncoding: "", - WorkspaceID: "123", + req: &openapi.IngestTracesRequest{ + Spans: []*span.InputSpan{ + { + WorkspaceID: "1", + }, + }, }, }, - want: &openapi.OtelIngestTracesResponse{ - Body: createValidProtoBufResponse(), - ContentType: ptr.Of("application/x-protobuf"), - }, - wantErr: false, + want: nil, + wantErr: true, }, { - name: "success with ProtoBuf format data", + name: "benefit check fails - insufficient capacity", fieldsGetter: func(ctrl *gomock.Controller) fields { traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().IngestTraces(gomock.Any(), gomock.Any()).Return(nil) authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), "123").Return(nil) + authMock.EXPECT().CheckIngestPermission(gomock.Any(), gomock.Any()).Return(nil) benefitMock := benefitmocks.NewMockIBenefitService(ctrl) benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ AccountAvailable: true, - IsEnough: true, + IsEnough: false, StorageDuration: 3, - WhichIsEnough: -1, }, nil) tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - tenantMock.EXPECT().GetIngestTenant(gomock.Any(), gomock.Any()).Return("test-tenant") workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() + workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).Return("1").AnyTimes() rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) @@ -1043,48 +1071,32 @@ func TestOpenAPIApplication_OtelIngestTraces(t *testing.T) { }, args: args{ ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: createValidProtoBufTraceData(), - ContentType: "application/x-protobuf", - ContentEncoding: "", - WorkspaceID: "123", + req: &openapi.IngestTracesRequest{ + Spans: []*span.InputSpan{ + { + WorkspaceID: "1", + }, + }, }, }, - want: &openapi.OtelIngestTracesResponse{ - Body: createValidProtoBufResponse(), - ContentType: ptr.Of("application/x-protobuf"), - }, - wantErr: false, + want: nil, + wantErr: true, }, { - name: "success with gzip compressed data", + name: "benefit check fails - account not available", fieldsGetter: func(ctrl *gomock.Controller) fields { traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().IngestTraces(gomock.Any(), gomock.Any()).Return(nil) authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), "123").Return(nil) + authMock.EXPECT().CheckIngestPermission(gomock.Any(), gomock.Any()).Return(nil) benefitMock := benefitmocks.NewMockIBenefitService(ctrl) benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ - AccountAvailable: true, + AccountAvailable: false, IsEnough: true, StorageDuration: 3, - WhichIsEnough: -1, }, nil) tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - tenantMock.EXPECT().GetIngestTenant(gomock.Any(), gomock.Any()).Return("test-tenant") workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() + workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).Return("1").AnyTimes() rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) @@ -1102,44 +1114,27 @@ func TestOpenAPIApplication_OtelIngestTraces(t *testing.T) { }, args: args{ ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: createGzipData(createValidJSONTraceData()), - ContentType: "application/json", - ContentEncoding: "gzip", - WorkspaceID: "123", + req: &openapi.IngestTracesRequest{ + Spans: []*span.InputSpan{ + { + WorkspaceID: "1", + }, + }, }, }, - want: &openapi.OtelIngestTracesResponse{ - Body: createValidProtoBufResponse(), - ContentType: ptr.Of("application/x-protobuf"), - }, - wantErr: false, + want: nil, + wantErr: true, }, - { - name: "success with default benefit when benefit service returns nil", + name: "invalid workspace id format", fieldsGetter: func(ctrl *gomock.Controller) fields { traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().IngestTraces(gomock.Any(), gomock.Any()).Return(nil) authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), "123").Return(nil) + authMock.EXPECT().CheckIngestPermission(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(nil, nil) tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - tenantMock.EXPECT().GetIngestTenant(gomock.Any(), gomock.Any()).Return("test-tenant") workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() + workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).Return("invalid").AnyTimes() rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) @@ -1157,39 +1152,25 @@ func TestOpenAPIApplication_OtelIngestTraces(t *testing.T) { }, args: args{ ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: createValidJSONTraceData(), - ContentType: "application/json", - ContentEncoding: "", - WorkspaceID: "123", + req: &openapi.IngestTracesRequest{ + Spans: []*span.InputSpan{ + { + WorkspaceID: "1", + }, + }, }, }, - want: &openapi.OtelIngestTracesResponse{ - Body: createValidProtoBufResponse(), - ContentType: ptr.Of("application/x-protobuf"), - }, - wantErr: false, + want: nil, + wantErr: true, }, { - name: "fail with empty request", + name: "nil request", fieldsGetter: func(ctrl *gomock.Controller) fields { traceServiceMock := servicemocks.NewMockITraceService(ctrl) authMock := rpcmocks.NewMockIAuthProvider(ctrl) benefitMock := benefitmocks.NewMockIBenefitService(ctrl) tenantMock := tenantmocks.NewMockITenantProvider(ctrl) workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) @@ -1212,2301 +1193,67 @@ func TestOpenAPIApplication_OtelIngestTraces(t *testing.T) { want: nil, wantErr: true, }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + fields := tt.fieldsGetter(ctrl) + o := &OpenAPIApplication{ + traceService: fields.traceService, + auth: fields.auth, + benefit: fields.benefit, + tenant: fields.tenant, + workspace: fields.workspace, + rateLimiter: fields.rateLimiter.NewRateLimiter(), + traceConfig: fields.traceConfig, + metrics: fields.metrics, + } + got, err := o.IngestTraces(tt.args.ctx, tt.args.req) + assert.Equal(t, tt.wantErr, err != nil) + assert.Equal(t, tt.want, got) + }) + } +} + +// 补充CreateAnnotation的更多测试场景 +func TestOpenAPIApplication_CreateAnnotation_AdditionalScenarios(t *testing.T) { + type fields struct { + traceService service.ITraceService + auth rpc.IAuthProvider + benefit benefit.IBenefitService + tenant tenant.ITenantProvider + workspace workspace.IWorkSpaceProvider + rateLimiter limiter.IRateLimiterFactory + traceConfig config.ITraceConfig + metrics metrics.ITraceMetrics + } + type args struct { + ctx context.Context + req *openapi.CreateAnnotationRequest + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + want *openapi.CreateAnnotationResponse + wantErr bool + }{ { - name: "fail with empty body", + name: "create annotation with double value type", fieldsGetter: func(ctrl *gomock.Controller) fields { traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) + traceServiceMock.EXPECT().CreateAnnotation(gomock.Any(), gomock.Any()).Return(nil) benefitMock := benefitmocks.NewMockIBenefitService(ctrl) + benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ + StorageDuration: 3, + }, nil) + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + authMock.EXPECT().CheckWorkspacePermission(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) tenantMock := tenantmocks.NewMockITenantProvider(ctrl) workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: []byte{}, - ContentType: "application/json", - ContentEncoding: "", - WorkspaceID: "123", - }, - }, - want: nil, - wantErr: true, - }, - { - name: "fail with invalid content type", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: createValidJSONTraceData(), - ContentType: "application/xml", - ContentEncoding: "", - WorkspaceID: "123", - }, - }, - want: nil, - wantErr: true, - }, - { - name: "fail with corrupted gzip data", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: []byte("corrupted gzip data"), - ContentType: "application/json", - ContentEncoding: "gzip", - WorkspaceID: "123", - }, - }, - want: nil, - wantErr: true, - }, - { - name: "fail with invalid JSON data", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: []byte("invalid json"), - ContentType: "application/json", - ContentEncoding: "", - WorkspaceID: "123", - }, - }, - want: nil, - wantErr: true, - }, - { - name: "fail with invalid ProtoBuf data", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: []byte("invalid protobuf"), - ContentType: "application/x-protobuf", - ContentEncoding: "", - WorkspaceID: "123", - }, - }, - want: nil, - wantErr: true, - }, - { - name: "fail with invalid workspace ID", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), "invalid").Return(nil).AnyTimes() - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: createValidJSONTraceData(), - ContentType: "application/json", - ContentEncoding: "", - WorkspaceID: "invalid", - }, - }, - want: nil, - wantErr: true, - }, - { - name: "fail with permission check error", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), "123").Return(assert.AnError) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: createValidJSONTraceData(), - ContentType: "application/json", - ContentEncoding: "", - WorkspaceID: "123", - }, - }, - want: nil, - wantErr: true, - }, - { - name: "fail with insufficient capacity", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), "123").Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ - AccountAvailable: true, - IsEnough: false, - StorageDuration: 3, - WhichIsEnough: -1, - }, nil) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: createValidJSONTraceData(), - ContentType: "application/json", - ContentEncoding: "", - WorkspaceID: "123", - }, - }, - want: nil, - wantErr: true, - }, - { - name: "fail with account not available", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), "123").Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ - AccountAvailable: false, - IsEnough: true, - StorageDuration: 3, - WhichIsEnough: -1, - }, nil) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: createValidJSONTraceData(), - ContentType: "application/json", - ContentEncoding: "", - WorkspaceID: "123", - }, - }, - want: nil, - wantErr: true, - }, - { - name: "fail with trace service error", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().IngestTraces(gomock.Any(), gomock.Any()).Return(assert.AnError) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), "123").Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ - AccountAvailable: true, - IsEnough: true, - StorageDuration: 3, - WhichIsEnough: -1, - }, nil) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - tenantMock.EXPECT().GetIngestTenant(gomock.Any(), gomock.Any()).Return("test-tenant") - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.OtelIngestTracesRequest{ - Body: createValidJSONTraceData(), - ContentType: "application/json", - ContentEncoding: "", - WorkspaceID: "123", - }, - }, - want: nil, - wantErr: false, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - ctrl := gomock.NewController(t) - defer ctrl.Finish() - fields := tt.fieldsGetter(ctrl) - o := &OpenAPIApplication{ - traceService: fields.traceService, - auth: fields.auth, - benefit: fields.benefit, - tenant: fields.tenant, - workspace: fields.workspace, - rateLimiter: fields.rateLimiter.NewRateLimiter(), - traceConfig: fields.traceConfig, - metrics: fields.metrics, - } - err := error(nil) - assert.NoError(t, err) - got, err := o.OtelIngestTraces(tt.args.ctx, tt.args.req) - assert.Equal(t, tt.wantErr, err != nil) - if !tt.wantErr { - assert.NotNil(t, got) - assert.NotNil(t, got.Body) - assert.NotNil(t, got.ContentType) - assert.Equal(t, "application/x-protobuf", *got.ContentType) - } else { - assert.Nil(t, got) - } - }) - } -} - -// createValidJSONTraceData creates valid JSON format trace data for testing -func createValidJSONTraceData() []byte { - req := &otel.ExportTraceServiceRequest{ - ResourceSpans: []*otel.ResourceSpans{ - { - Resource: &otel.Resource{ - Attributes: []*otel.KeyValue{ - { - Key: "service.name", - Value: &otel.AnyValue{ - Value: &otel.AnyValue_StringValue{StringValue: "test-service"}, - }, - }, - }, - }, - ScopeSpans: []*otel.ScopeSpans{ - { - Scope: &otel.InstrumentationScope{ - Name: "test-scope", - Version: "1.0.0", - }, - Spans: []*otel.Span{ - { - TraceId: "1234567890abcdef1234567890abcdef", - SpanId: "1234567890abcdef", - Name: "test-span", - StartTimeUnixNano: "1755076800000000000", - EndTimeUnixNano: "1640995201000000000", - Attributes: []*otel.KeyValue{ - { - Key: otel.OtelAttributeWorkSpaceID, - Value: &otel.AnyValue{ - Value: &otel.AnyValue_StringValue{StringValue: "123"}, - }, - }, - }, - }, - }, - }, - }, - }, - }, - } - - data, _ := sonic.Marshal(req) - return data -} - -// createValidProtoBufTraceData creates valid ProtoBuf format trace data for testing -func createValidProtoBufTraceData() []byte { - req := &coltracepb.ExportTraceServiceRequest{ - ResourceSpans: []*tracepb.ResourceSpans{ - { - Resource: &resourcepb.Resource{ - Attributes: []*commonpb.KeyValue{ - { - Key: "service.name", - Value: &commonpb.AnyValue{ - Value: &commonpb.AnyValue_StringValue{StringValue: "test-service"}, - }, - }, - }, - }, - ScopeSpans: []*tracepb.ScopeSpans{ - { - Scope: &commonpb.InstrumentationScope{ - Name: "test-scope", - Version: "1.0.0", - }, - Spans: []*tracepb.Span{ - { - TraceId: []byte("1234567890abcdef"), - SpanId: []byte("12345678"), - Name: "test-span", - StartTimeUnixNano: 1755076800000000000, - EndTimeUnixNano: 1640995201000000000, - Attributes: []*commonpb.KeyValue{ - { - Key: otel.OtelAttributeWorkSpaceID, - Value: &commonpb.AnyValue{ - Value: &commonpb.AnyValue_StringValue{StringValue: "123"}, - }, - }, - }, - }, - }, - }, - }, - }, - }, - } - - data, _ := proto.Marshal(req) - return data -} - -// createGzipData compresses data using gzip for testing -func createGzipData(data []byte) []byte { - var buf bytes.Buffer - writer := gzip.NewWriter(&buf) - _, _ = writer.Write(data) - _ = writer.Close() - return buf.Bytes() -} - -// createValidProtoBufResponse creates a valid protobuf response for testing -func createValidProtoBufResponse() []byte { - resp := &coltracepb.ExportTraceServiceResponse{ - PartialSuccess: &coltracepb.ExportTracePartialSuccess{ - RejectedSpans: 0, - ErrorMessage: "", - }, - } - data, _ := proto.Marshal(resp) - return data -} - -func TestOpenAPIApplication_ListSpansOApi(t *testing.T) { - type fields struct { - traceService service.ITraceService - auth rpc.IAuthProvider - benefit benefit.IBenefitService - tenant tenant.ITenantProvider - workspace workspace.IWorkSpaceProvider - rateLimiter limiter.IRateLimiterFactory - traceConfig config.ITraceConfig - metrics metrics.ITraceMetrics - } - type args struct { - ctx context.Context - req *openapi.ListSpansOApiRequest - } - tests := []struct { - name string - fieldsGetter func(ctrl *gomock.Controller) fields - args args - want *openapi.ListSpansOApiResponse - wantErr bool - }{ - { - name: "list spans successfully", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().ListSpansOApi(gomock.Any(), gomock.Any()).Return(&service.ListSpansOApiResp{ - Spans: []*loop_span.Span{}, - NextPageToken: "next-token", - HasMore: true, - }, nil) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1"}) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterFactoryMock := limitermocks.NewMockIRateLimiter(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiterFactoryMock).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "ListSpansOApi", - int64(123), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "123").Return(100, nil) - rateLimiterFactoryMock.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListSpansOApiRequest{ - WorkspaceID: 123, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - PageSize: ptr.Of(int32(10)), - }, - }, - want: &openapi.ListSpansOApiResponse{ - Data: &openapi.ListSpansOApiData{ - Spans: []*span.OutputSpan{}, - NextPageToken: "next-token", - HasMore: true, - }, - }, - wantErr: false, - }, - { - name: "page size exceeds limit", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "ListSpansOApi", - int64(123), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListSpansOApiRequest{ - WorkspaceID: 123, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - PageSize: ptr.Of(int32(1001)), // exceeds MaxListSpansLimit (1000) - }, - }, - want: nil, - wantErr: true, - }, - { - name: "permission check failure", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(assert.AnError) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "ListSpansOApi", - int64(123), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListSpansOApiRequest{ - WorkspaceID: 123, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - }, - }, - want: nil, - wantErr: true, - }, - { - name: "rate limit exceeded", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterFactoryMock := limitermocks.NewMockIRateLimiter(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiterFactoryMock).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "123").Return(100, nil) - rateLimiterFactoryMock.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: false}, nil) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - metricsMock.EXPECT().EmitTraceOapi( - "ListSpansOApi", - int64(123), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListSpansOApiRequest{ - WorkspaceID: 123, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - }, - }, - want: nil, - wantErr: true, - }, - { - name: "service layer error", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().ListSpansOApi(gomock.Any(), gomock.Any()).Return(nil, assert.AnError) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1"}) - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterFactoryMock := limitermocks.NewMockIRateLimiter(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiterFactoryMock).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "123").Return(100, nil) - rateLimiterFactoryMock.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - metricsMock.EXPECT().EmitTraceOapi( - "ListSpansOApi", - int64(123), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListSpansOApiRequest{ - WorkspaceID: 123, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - }, - }, - want: nil, - wantErr: true, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - ctrl := gomock.NewController(t) - defer ctrl.Finish() - fields := tt.fieldsGetter(ctrl) - o := &OpenAPIApplication{ - traceService: fields.traceService, - auth: fields.auth, - benefit: fields.benefit, - tenant: fields.tenant, - workspace: fields.workspace, - rateLimiter: fields.rateLimiter.NewRateLimiter(), - traceConfig: fields.traceConfig, - metrics: fields.metrics, - } - err := error(nil) - assert.NoError(t, err) - got, err := o.ListSpansOApi(tt.args.ctx, tt.args.req) - assert.Equal(t, tt.wantErr, err != nil) - if !tt.wantErr { - assert.NotNil(t, got) - assert.Equal(t, tt.want.Data.NextPageToken, got.Data.NextPageToken) - assert.Equal(t, tt.want.Data.HasMore, got.Data.HasMore) - } else { - assert.Nil(t, got) - } - }) - } -} - -func TestOpenAPIApplication_SearchTraceOApi(t *testing.T) { - type fields struct { - traceService service.ITraceService - auth rpc.IAuthProvider - benefit benefit.IBenefitService - tenant tenant.ITenantProvider - workspace workspace.IWorkSpaceProvider - rateLimiter limiter.IRateLimiterFactory - traceConfig config.ITraceConfig - metrics metrics.ITraceMetrics - } - type args struct { - ctx context.Context - req *openapi.SearchTraceOApiRequest - } - tests := []struct { - name string - fieldsGetter func(ctrl *gomock.Controller) fields - args args - want *openapi.SearchTraceOApiResponse - wantErr bool - }{ - { - name: "search trace by trace id successfully", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().SearchTraceOApi(gomock.Any(), gomock.Any()).Return(&service.SearchTraceOApiResp{ - Spans: []*loop_span.Span{}, - }, nil) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1"}).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterFactoryMock := limitermocks.NewMockIRateLimiter(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiterFactoryMock).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "123").Return(100, nil) - rateLimiterFactoryMock.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - metricsMock.EXPECT().EmitTraceOapi( - "SearchTraceOApi", - int64(123), - gomock.Any(), - "", - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.SearchTraceOApiRequest{ - WorkspaceID: 123, - TraceID: ptr.Of("test-trace-id"), - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - Limit: 100, - }, - }, - want: &openapi.SearchTraceOApiResponse{ - Data: &openapi.SearchTraceOApiData{ - Spans: []*span.OutputSpan{}, - }, - }, - wantErr: false, - }, - { - name: "search trace by log id successfully", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().SearchTraceOApi(gomock.Any(), gomock.Any()).Return(&service.SearchTraceOApiResp{ - Spans: []*loop_span.Span{}, - }, nil) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1"}).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterFactoryMock := limitermocks.NewMockIRateLimiter(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiterFactoryMock).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "123").Return(100, nil) - rateLimiterFactoryMock.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - metricsMock.EXPECT().EmitTraceOapi( - "SearchTraceOApi", - int64(123), - gomock.Any(), - "", - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.SearchTraceOApiRequest{ - WorkspaceID: 123, - Logid: ptr.Of("test-log-id"), - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - Limit: 100, - }, - }, - want: &openapi.SearchTraceOApiResponse{ - Data: &openapi.SearchTraceOApiData{ - Spans: []*span.OutputSpan{}, - }, - }, - wantErr: false, - }, - { - name: "request is nil", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: nil, - }, - want: nil, - wantErr: true, - }, - { - name: "missing trace id and log id", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "SearchTraceOApi", - int64(123), - gomock.Any(), - "", - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.SearchTraceOApiRequest{ - WorkspaceID: 123, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - Limit: 100, - }, - }, - want: nil, - wantErr: true, - }, - { - name: "limit exceeds maximum", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "SearchTraceOApi", - int64(123), - gomock.Any(), - "", - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.SearchTraceOApiRequest{ - WorkspaceID: 123, - TraceID: ptr.Of("test-trace-id"), - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - Limit: 1001, // exceeds MaxListSpansLimit (1000) - }, - }, - want: nil, - wantErr: true, - }, - { - name: "permission check failure", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(assert.AnError) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "SearchTraceOApi", - int64(123), - gomock.Any(), - "", - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.SearchTraceOApiRequest{ - WorkspaceID: 123, - TraceID: ptr.Of("test-trace-id"), - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - Limit: 100, - }, - }, - want: nil, - wantErr: true, - }, - { - name: "service layer error", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().SearchTraceOApi(gomock.Any(), gomock.Any()).Return(nil, assert.AnError) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1"}).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterFactoryMock := limitermocks.NewMockIRateLimiter(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiterFactoryMock).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "123").Return(100, nil) - rateLimiterFactoryMock.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - metricsMock.EXPECT().EmitTraceOapi( - "SearchTraceOApi", - int64(123), - gomock.Any(), - "", - gomock.Any(), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.SearchTraceOApiRequest{ - WorkspaceID: 123, - TraceID: ptr.Of("test-trace-id"), - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - Limit: 100, - }, - }, - want: nil, - wantErr: true, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - ctrl := gomock.NewController(t) - defer ctrl.Finish() - fields := tt.fieldsGetter(ctrl) - o := &OpenAPIApplication{ - traceService: fields.traceService, - auth: fields.auth, - benefit: fields.benefit, - tenant: fields.tenant, - workspace: fields.workspace, - rateLimiter: fields.rateLimiter.NewRateLimiter(), - traceConfig: fields.traceConfig, - metrics: fields.metrics, - } - err := error(nil) - assert.NoError(t, err) - got, err := o.SearchTraceOApi(tt.args.ctx, tt.args.req) - assert.Equal(t, tt.wantErr, err != nil) - if !tt.wantErr { - assert.NotNil(t, got) - assert.NotNil(t, got.Data.Spans) - } else { - assert.Nil(t, got) - } - }) - } -} - -// TestOpenAPIApplication_ListTracesOApi tests the ListTracesOApi method -func TestOpenAPIApplication_ListTracesOApi(t *testing.T) { - type fields struct { - traceService service.ITraceService - auth rpc.IAuthProvider - benefit benefit.IBenefitService - tenant tenant.ITenantProvider - workspace workspace.IWorkSpaceProvider - rateLimiter limiter.IRateLimiterFactory - traceConfig config.ITraceConfig - metrics metrics.ITraceMetrics - } - type args struct { - ctx context.Context - req *openapi.ListTracesOApiRequest - } - tests := []struct { - name string - fieldsGetter func(ctrl *gomock.Controller) fields - args args - want *openapi.ListTracesOApiResponse - wantErr bool - }{ - { - name: "list traces successfully", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().GetTracesAdvanceInfo(gomock.Any(), gomock.Any()).Return(&service.GetTracesAdvanceInfoResp{ - Infos: []*loop_span.TraceAdvanceInfo{ - { - TraceId: "trace-1", - InputCost: 100, - OutputCost: 200, - }, - { - TraceId: "trace-2", - InputCost: 150, - OutputCost: 250, - }, - }, - }, nil) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterFactoryMock := limitermocks.NewMockIRateLimiter(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiterFactoryMock).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "ListTracesOApi", - int64(123), - "", - "", - int64(0), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "123").Return(100, nil) - rateLimiterFactoryMock.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListTracesOApiRequest{ - WorkspaceID: 123, - TraceIds: []string{"trace-1", "trace-2"}, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - }, - }, - want: &openapi.ListTracesOApiResponse{ - Data: &openapi.ListTracesData{ - Traces: []*traced.Trace{ - { - TraceID: ptr.Of("trace-1"), - }, - { - TraceID: ptr.Of("trace-2"), - }, - }, - }, - }, - wantErr: false, - }, - { - name: "invalid workspace ID", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "ListTracesOApi", - int64(0), - "", - "", - int64(0), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListTracesOApiRequest{ - WorkspaceID: 0, // invalid workspace ID - TraceIds: []string{"trace-1"}, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - }, - }, - want: nil, - wantErr: true, - }, - { - name: "empty trace IDs", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "ListTracesOApi", - int64(123), - "", - "", - int64(0), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListTracesOApiRequest{ - WorkspaceID: 123, - TraceIds: []string{}, // empty trace IDs - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - }, - }, - want: nil, - wantErr: true, - }, - { - name: "empty trace ID in list", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "ListTracesOApi", - int64(123), - "", - "", - int64(0), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListTracesOApiRequest{ - WorkspaceID: 123, - TraceIds: []string{"trace-1", ""}, // empty trace ID in list - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - }, - }, - want: nil, - wantErr: true, - }, - { - name: "permission check failure", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(assert.AnError) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "ListTracesOApi", - int64(123), - "", - "", - int64(0), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListTracesOApiRequest{ - WorkspaceID: 123, - TraceIds: []string{"trace-1"}, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - }, - }, - want: nil, - wantErr: true, - }, - { - name: "rate limit exceeded", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterFactoryMock := limitermocks.NewMockIRateLimiter(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiterFactoryMock).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "ListTracesOApi", - int64(123), - "", - "", - int64(0), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "123").Return(100, nil) - rateLimiterFactoryMock.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: false}, nil) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListTracesOApiRequest{ - WorkspaceID: 123, - TraceIds: []string{"trace-1"}, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - }, - }, - want: nil, - wantErr: true, - }, - { - name: "service layer error", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().GetTracesAdvanceInfo(gomock.Any(), gomock.Any()).Return(nil, assert.AnError) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, spans []*span.InputSpan) string { - if len(spans) > 0 { - switch spans[0].SpanID { - case "span1": - case "span2": - case "span3": - return "workspace2" - } - } - return "" - }).AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterFactoryMock := limitermocks.NewMockIRateLimiter(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiterFactoryMock).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - metricsMock.EXPECT().EmitTraceOapi( - "ListTracesOApi", - int64(123), - "", - "", - int64(0), - gomock.Any(), - gomock.Any(), - gomock.Any(), - ).AnyTimes() - traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "123").Return(100, nil) - rateLimiterFactoryMock.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.ListTracesOApiRequest{ - WorkspaceID: 123, - TraceIds: []string{"trace-1"}, - StartTime: time.Now().Add(-1 * time.Hour).UnixMilli(), - EndTime: time.Now().UnixMilli(), - }, - }, - want: nil, - wantErr: true, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - ctrl := gomock.NewController(t) - defer ctrl.Finish() - fields := tt.fieldsGetter(ctrl) - o := &OpenAPIApplication{ - traceService: fields.traceService, - auth: fields.auth, - benefit: fields.benefit, - tenant: fields.tenant, - workspace: fields.workspace, - rateLimiter: fields.rateLimiter.NewRateLimiter(), - traceConfig: fields.traceConfig, - metrics: fields.metrics, - } - err := error(nil) - assert.NoError(t, err) - got, err := o.ListTracesOApi(tt.args.ctx, tt.args.req) - assert.Equal(t, tt.wantErr, err != nil) - if !tt.wantErr { - assert.NotNil(t, got) - assert.NotNil(t, got.Data) - assert.Equal(t, len(tt.want.Data.Traces), len(got.Data.Traces)) - } else { - assert.Nil(t, got) - } - }) - } -} - -// TestOpenAPIApplication_unpackSpace tests the unpackSpace method - -// TestOpenAPIApplication_AllowByKey tests the AllowByKey method - -// TestNewOpenAPIApplication 测试构造函数 -func TestNewOpenAPIApplication(t *testing.T) { - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - rateLimiterFactoryMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock := limitermocks.NewMockIRateLimiter(ctrl) - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - - rateLimiterFactoryMock.EXPECT().NewRateLimiter().Return(rateLimiterMock) - - app, err := NewOpenAPIApplication( - traceServiceMock, - authMock, - benefitMock, - tenantMock, - workspaceMock, - rateLimiterFactoryMock, - traceConfigMock, - metricsMock, - ) - - assert.NoError(t, err) - assert.NotNil(t, app) - - // 验证返回的实例类型 - openAPIApp, ok := app.(*OpenAPIApplication) - assert.True(t, ok) - assert.NotNil(t, openAPIApp.traceService) - assert.NotNil(t, openAPIApp.auth) - assert.NotNil(t, openAPIApp.benefit) - assert.NotNil(t, openAPIApp.tenant) - assert.NotNil(t, openAPIApp.workspace) - assert.NotNil(t, openAPIApp.rateLimiter) - assert.NotNil(t, openAPIApp.traceConfig) - assert.NotNil(t, openAPIApp.metrics) -} - -// 补充IngestTraces的边界测试场景 -func TestOpenAPIApplication_IngestTraces_AdditionalScenarios(t *testing.T) { - type fields struct { - traceService service.ITraceService - auth rpc.IAuthProvider - benefit benefit.IBenefitService - tenant tenant.ITenantProvider - workspace workspace.IWorkSpaceProvider - rateLimiter limiter.IRateLimiterFactory - traceConfig config.ITraceConfig - metrics metrics.ITraceMetrics - } - type args struct { - ctx context.Context - req *openapi.IngestTracesRequest - } - tests := []struct { - name string - fieldsGetter func(ctrl *gomock.Controller) fields - args args - want *openapi.IngestTracesResponse - wantErr bool - }{ - { - name: "permission check fails", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), gomock.Any()).Return(assert.AnError) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).Return("1").AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.IngestTracesRequest{ - Spans: []*span.InputSpan{ - { - WorkspaceID: "1", - }, - }, - }, - }, - want: nil, - wantErr: true, - }, - { - name: "benefit check fails - insufficient capacity", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ - AccountAvailable: true, - IsEnough: false, - StorageDuration: 3, - }, nil) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).Return("1").AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.IngestTracesRequest{ - Spans: []*span.InputSpan{ - { - WorkspaceID: "1", - }, - }, - }, - }, - want: nil, - wantErr: true, - }, - { - name: "benefit check fails - account not available", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ - AccountAvailable: false, - IsEnough: true, - StorageDuration: 3, - }, nil) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).Return("1").AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.IngestTracesRequest{ - Spans: []*span.InputSpan{ - { - WorkspaceID: "1", - }, - }, - }, - }, - want: nil, - wantErr: true, - }, - { - name: "invalid workspace id format", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckIngestPermission(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).Return("invalid").AnyTimes() - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: &openapi.IngestTracesRequest{ - Spans: []*span.InputSpan{ - { - WorkspaceID: "1", - }, - }, - }, - }, - want: nil, - wantErr: true, - }, - { - name: "nil request", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) - rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() - traceConfigMock := configmocks.NewMockITraceConfig(ctrl) - metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) - return fields{ - traceService: traceServiceMock, - auth: authMock, - benefit: benefitMock, - tenant: tenantMock, - workspace: workspaceMock, - rateLimiter: rateLimiterMock, - traceConfig: traceConfigMock, - metrics: metricsMock, - } - }, - args: args{ - ctx: context.Background(), - req: nil, - }, - want: nil, - wantErr: true, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - ctrl := gomock.NewController(t) - defer ctrl.Finish() - fields := tt.fieldsGetter(ctrl) - o := &OpenAPIApplication{ - traceService: fields.traceService, - auth: fields.auth, - benefit: fields.benefit, - tenant: fields.tenant, - workspace: fields.workspace, - rateLimiter: fields.rateLimiter.NewRateLimiter(), - traceConfig: fields.traceConfig, - metrics: fields.metrics, - } - got, err := o.IngestTraces(tt.args.ctx, tt.args.req) - assert.Equal(t, tt.wantErr, err != nil) - assert.Equal(t, tt.want, got) - }) - } -} - -// 补充CreateAnnotation的更多测试场景 -func TestOpenAPIApplication_CreateAnnotation_AdditionalScenarios(t *testing.T) { - type fields struct { - traceService service.ITraceService - auth rpc.IAuthProvider - benefit benefit.IBenefitService - tenant tenant.ITenantProvider - workspace workspace.IWorkSpaceProvider - rateLimiter limiter.IRateLimiterFactory - traceConfig config.ITraceConfig - metrics metrics.ITraceMetrics - } - type args struct { - ctx context.Context - req *openapi.CreateAnnotationRequest - } - tests := []struct { - name string - fieldsGetter func(ctrl *gomock.Controller) fields - args args - want *openapi.CreateAnnotationResponse - wantErr bool - }{ - { - name: "create annotation with double value type", - fieldsGetter: func(ctrl *gomock.Controller) fields { - traceServiceMock := servicemocks.NewMockITraceService(ctrl) - traceServiceMock.EXPECT().CreateAnnotation(gomock.Any(), gomock.Any()).Return(nil) - benefitMock := benefitmocks.NewMockIBenefitService(ctrl) - benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ - StorageDuration: 3, - }, nil) - authMock := rpcmocks.NewMockIAuthProvider(ctrl) - authMock.EXPECT().CheckWorkspacePermission(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) - tenantMock := tenantmocks.NewMockITenantProvider(ctrl) - workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) - workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123").AnyTimes() - workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).Return("").AnyTimes() + workspaceMock.EXPECT().GetIngestWorkSpaceID(gomock.Any(), gomock.Any()).Return("").AnyTimes() rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) rateLimiterMock.EXPECT().NewRateLimiter().Return(limitermocks.NewMockIRateLimiter(ctrl)).AnyTimes() traceConfigMock := configmocks.NewMockITraceConfig(ctrl) @@ -3950,13 +1697,1062 @@ func TestOpenAPIApplication_unpackTenant(t *testing.T) { tenant: tenantMock, } - // 测试nil spans + // Test nil spans. result := app.unpackTenant(context.Background(), nil) assert.Nil(t, result) - // 测试正常情况 + // Test normal scenario. tenantMock.EXPECT().GetIngestTenant(gomock.Any(), gomock.Any()).Return("tenant1") result = app.unpackTenant(context.Background(), []*loop_span.Span{{SpanID: "test"}}) assert.Len(t, result, 1) assert.Len(t, result["tenant1"], 1) } + +func TestOpenAPIApplication_OtelIngestTraces(t *testing.T) { + t.Run("successful otel ingest", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + traceServiceMock := servicemocks.NewMockITraceService(ctrl) + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + benefitMock := benefitmocks.NewMockIBenefitService(ctrl) + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + rateLimiterMock := limitermocks.NewMockIRateLimiter(ctrl) + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + // Set expectations. + authMock.EXPECT().CheckIngestPermission(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() + benefitMock.EXPECT().CheckTraceBenefit(gomock.Any(), gomock.Any()).Return(&benefit.CheckTraceBenefitResult{ + AccountAvailable: true, + IsEnough: true, + StorageDuration: 3, + }, nil).AnyTimes() + tenantMock.EXPECT().GetIngestTenant(gomock.Any(), gomock.Any()).Return("tenant1").AnyTimes() + traceServiceMock.EXPECT().IngestTraces(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() + + app := &OpenAPIApplication{ + traceService: traceServiceMock, + auth: authMock, + benefit: benefitMock, + tenant: tenantMock, + workspace: workspaceMock, + rateLimiter: rateLimiterMock, + traceConfig: traceConfigMock, + metrics: metricsMock, + collector: collectorMock, + } + + // Create test request. + req := &openapi.OtelIngestTracesRequest{ + WorkspaceID: "123", + ContentType: "application/json", + ContentEncoding: "", + Body: []byte(`{"resourceSpans":[]}`), + } + + resp, err := app.OtelIngestTraces(context.Background(), req) + assert.NoError(t, err) + assert.NotNil(t, resp) + }) + + t.Run("invalid request", func(t *testing.T) { + app := &OpenAPIApplication{} + + // Nil request should return an error. + resp, err := app.OtelIngestTraces(context.Background(), nil) + assert.Error(t, err) + assert.Nil(t, resp) + + // Empty body should trigger validation error. + resp, err = app.OtelIngestTraces(context.Background(), &openapi.OtelIngestTracesRequest{ + Body: []byte{}, + }) + assert.Error(t, err) + assert.Nil(t, resp) + }) + + t.Run("invalid content type", func(t *testing.T) { + app := &OpenAPIApplication{} + + resp, err := app.OtelIngestTraces(context.Background(), &openapi.OtelIngestTracesRequest{ + ContentType: "invalid/type", + Body: []byte("test"), + }) + assert.Error(t, err) + assert.Nil(t, resp) + }) +} + +func TestOpenAPIApplication_OtelIngestTraces_InvalidCases(t *testing.T) { + t.Run("invalid request", func(t *testing.T) { + app := &OpenAPIApplication{} + + // Nil request should return an error. + resp, err := app.OtelIngestTraces(context.Background(), nil) + assert.Error(t, err) + assert.Nil(t, resp) + + // Empty body should trigger validation error. + resp, err = app.OtelIngestTraces(context.Background(), &openapi.OtelIngestTracesRequest{ + Body: []byte{}, + }) + assert.Error(t, err) + assert.Nil(t, resp) + }) + + t.Run("invalid content type", func(t *testing.T) { + app := &OpenAPIApplication{} + + resp, err := app.OtelIngestTraces(context.Background(), &openapi.OtelIngestTracesRequest{ + ContentType: "invalid/type", + Body: []byte("test"), + }) + assert.Error(t, err) + assert.Nil(t, resp) + }) +} + +// 补充SearchTraceOApi测试 +func TestOpenAPIApplication_SearchTraceOApi(t *testing.T) { + t.Run("invalid request validation", func(t *testing.T) { + app := &OpenAPIApplication{} + + // nil请求 + resp, err := app.SearchTraceOApi(context.Background(), nil) + assert.Error(t, err) + assert.Nil(t, resp) + }) +} + +func TestOpenAPIApplication_SearchTraceOApi_InvalidCases(t *testing.T) { + t.Run("invalid request validation", func(t *testing.T) { + app := &OpenAPIApplication{} + + // nil请求 + resp, err := app.SearchTraceOApi(context.Background(), nil) + assert.Error(t, err) + assert.Nil(t, resp) + }) +} + +func TestOpenAPIApplication_SearchTraceOApi_Success(t *testing.T) { + t.Run("successful search", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + traceServiceMock := servicemocks.NewMockITraceService(ctrl) + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + benefitMock := benefitmocks.NewMockIBenefitService(ctrl) + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + rateLimiter := limitermocks.NewMockIRateLimiter(ctrl) + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + // Set expectations. + authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", "platform").Return(nil) + rateLimiter.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), gomock.Any()).Return(10, nil) + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("third-party-123") + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1", "tenant2"}) + traceServiceMock.EXPECT().SearchTraceOApi(gomock.Any(), gomock.Any()).Return(&service.SearchTraceOApiResp{ + Spans: []*loop_span.Span{{SpanID: "test"}}, + }, nil) + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + traceService: traceServiceMock, + auth: authMock, + benefit: benefitMock, + tenant: tenantMock, + workspace: workspaceMock, + rateLimiter: rateLimiter, + traceConfig: traceConfigMock, + metrics: metricsMock, + collector: collectorMock, + } + + now := time.Now().UnixMilli() + startTime := now - 3600000 // 1 hour ago + endTime := now // current time + req := &openapi.SearchTraceOApiRequest{ + WorkspaceID: 123, + TraceID: ptr.Of("trace123"), + StartTime: startTime, + EndTime: endTime, + Limit: 10, + PlatformType: ptr.Of("platform"), + } + + resp, err := app.SearchTraceOApi(context.Background(), req) + assert.NoError(t, err) + assert.NotNil(t, resp) + }) + + t.Run("rate limit exceeded", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + traceServiceMock := servicemocks.NewMockITraceService(ctrl) + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + benefitMock := benefitmocks.NewMockIBenefitService(ctrl) + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + rateLimiter := limitermocks.NewMockIRateLimiter(ctrl) + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + // 设置期望 + authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", "platform").Return(nil) + rateLimiter.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: false}, nil) + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), gomock.Any()).Return(10, nil) + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + traceService: traceServiceMock, + auth: authMock, + benefit: benefitMock, + tenant: tenantMock, + workspace: workspaceMock, + rateLimiter: rateLimiter, + traceConfig: traceConfigMock, + metrics: metricsMock, + collector: collectorMock, + } + + now := time.Now().UnixMilli() + startTime := now - 3600000 // 1 hour ago + endTime := now // current time + req := &openapi.SearchTraceOApiRequest{ + WorkspaceID: 123, + TraceID: ptr.Of("trace123"), + StartTime: startTime, + EndTime: endTime, + Limit: 10, + PlatformType: ptr.Of("platform"), + } + + resp, err := app.SearchTraceOApi(context.Background(), req) + assert.Error(t, err) + assert.Nil(t, resp) + }) +} + +func TestOpenAPIApplication_validateSearchTraceOApiReq(t *testing.T) { + t.Parallel() + app := &OpenAPIApplication{} + ctx := context.Background() + + // nil request + assert.Error(t, app.validateSearchTraceOApiReq(ctx, nil)) + + now := time.Now().UnixMilli() + validStart := now - int64(time.Hour/time.Millisecond) + validReq := &openapi.SearchTraceOApiRequest{ + WorkspaceID: 1, + TraceID: ptr.Of("trace-id"), + StartTime: validStart, + EndTime: now, + Limit: 10, + PlatformType: ptr.Of("platform"), + } + + // missing trace and log id + missingIDs := *validReq + missingIDs.TraceID = nil + assert.Error(t, app.validateSearchTraceOApiReq(ctx, &missingIDs)) + + // limit out of range (positive overflow) + tooLargeLimit := *validReq + tooLargeLimit.Limit = MaxListSpansLimit + 1 + assert.Error(t, app.validateSearchTraceOApiReq(ctx, &tooLargeLimit)) + + // negative limit + negativeLimit := *validReq + negativeLimit.Limit = -1 + assert.Error(t, app.validateSearchTraceOApiReq(ctx, &negativeLimit)) + + // invalid time range (zero values) + invalidTime := *validReq + invalidTime.StartTime = 0 + invalidTime.EndTime = 0 + assert.Error(t, app.validateSearchTraceOApiReq(ctx, &invalidTime)) + + // valid request should pass + assert.NoError(t, app.validateSearchTraceOApiReq(ctx, validReq)) + + // start time later than end time + invalidRange := *validReq + invalidRange.StartTime = now + 1000 + assert.Error(t, app.validateSearchTraceOApiReq(ctx, &invalidRange)) +} + +func TestOpenAPIApplication_buildSearchTraceOApiReq(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + app := &OpenAPIApplication{ + tenant: tenantMock, + workspace: workspaceMock, + } + + ctx := context.Background() + now := time.Now().UnixMilli() + start := now - int64(time.Hour/time.Millisecond) + + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(1)).Return("third-1") + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), loop_span.PlatformType("platform")).Return([]string{"tenant-a"}) + + withPlatformReq := &openapi.SearchTraceOApiRequest{ + WorkspaceID: 1, + TraceID: ptr.Of("trace-id"), + Logid: ptr.Of("log-id"), + StartTime: start, + EndTime: now, + Limit: 50, + PlatformType: ptr.Of("platform"), + SpanIds: []string{"span-1", "span-2"}, + } + + res, err := app.buildSearchTraceOApiReq(ctx, withPlatformReq) + assert.NoError(t, err) + assert.Equal(t, int64(1), res.WorkspaceID) + assert.Equal(t, "third-1", res.ThirdPartyWorkspaceID) + assert.Equal(t, loop_span.PlatformType("platform"), res.PlatformType) + assert.True(t, res.WithDetail) + assert.Equal(t, withPlatformReq.SpanIds, res.SpanIDs) + assert.Equal(t, withPlatformReq.GetTraceID(), res.TraceID) + assert.Equal(t, withPlatformReq.GetLogid(), res.LogID) + assert.Equal(t, withPlatformReq.GetLimit(), res.Limit) + + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(2)).Return("third-2") + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), loop_span.PlatformCozeLoop).Return([]string{"tenant-b"}) + + defaultPlatformReq := &openapi.SearchTraceOApiRequest{ + WorkspaceID: 2, + TraceID: ptr.Of("trace-id-2"), + StartTime: start, + EndTime: now, + Limit: 5, + } + + res2, err := app.buildSearchTraceOApiReq(ctx, defaultPlatformReq) + assert.NoError(t, err) + assert.Equal(t, loop_span.PlatformCozeLoop, res2.PlatformType) + assert.Empty(t, res2.SpanIDs) + + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(3)).Return("third-3") + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), loop_span.PlatformCozeLoop).Return([]string{}) + + _, err = app.buildSearchTraceOApiReq(ctx, &openapi.SearchTraceOApiRequest{ + WorkspaceID: 3, + TraceID: ptr.Of("trace-id-3"), + StartTime: start, + EndTime: now, + Limit: 1, + }) + assert.Error(t, err) +} + +// 补充validateSearchTraceTreeOApiReq的单元测试 +func TestOpenAPIApplication_validateSearchTraceTreeOApiReq(t *testing.T) { + app := &OpenAPIApplication{} + + // 测试nil请求 + err := app.validateSearchTraceTreeOApiReq(context.Background(), nil) + assert.Error(t, err) + + // 测试空trace_id + err = app.validateSearchTraceTreeOApiReq(context.Background(), &openapi.SearchTraceTreeOApiRequest{ + TraceID: ptr.Of(""), + }) + assert.Error(t, err) + + // 测试超过最大限制 + err = app.validateSearchTraceTreeOApiReq(context.Background(), &openapi.SearchTraceTreeOApiRequest{ + TraceID: ptr.Of("test-trace-id"), + Limit: MaxTraceTreeLength + 1, + }) + assert.Error(t, err) + + // 测试负限制 + err = app.validateSearchTraceTreeOApiReq(context.Background(), &openapi.SearchTraceTreeOApiRequest{ + TraceID: ptr.Of("test-trace-id"), + Limit: -1, + }) + assert.Error(t, err) + + // 测试正常情况 + startTime := time.Now().UnixMilli() + endTime := time.Now().Add(1 * time.Hour).UnixMilli() // 结束时间晚于开始时间 + err = app.validateSearchTraceTreeOApiReq(context.Background(), &openapi.SearchTraceTreeOApiRequest{ + TraceID: ptr.Of("test-trace-id"), + Limit: 10, + StartTime: &startTime, + EndTime: &endTime, + }) + assert.NoError(t, err) + + // 测试日期验证错误 - 开始时间大于结束时间 + startTime = time.Now().UnixMilli() + endTime = time.Now().Add(-1 * time.Hour).UnixMilli() // 结束时间早于开始时间 + err = app.validateSearchTraceTreeOApiReq(context.Background(), &openapi.SearchTraceTreeOApiRequest{ + TraceID: ptr.Of("test-trace-id"), + Limit: 10, + StartTime: &startTime, + EndTime: &endTime, + }) + assert.Error(t, err) // 开始时间大于结束时间会返回错误 +} + +// 补充buildSearchTraceTreeOApiReq的单元测试 +func TestOpenAPIApplication_buildSearchTraceTreeOApiReq(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + app := &OpenAPIApplication{ + tenant: tenantMock, + workspace: workspaceMock, + } + + // 测试正常情况 + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1", "tenant2"}) + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("third-party-123") + + req := &openapi.SearchTraceTreeOApiRequest{ + WorkspaceID: ptr.Of(int64(123)), + TraceID: ptr.Of("test-trace-id"), + StartTime: ptr.Of(time.Now().Add(-1 * time.Hour).UnixMilli()), + EndTime: ptr.Of(time.Now().UnixMilli()), + Limit: 10, + PlatformType: ptr.Of(common.PlatformType("platform")), + Filters: &filter.FilterFields{ + FilterFields: []*filter.FilterField{ + { + FieldName: ptr.Of("key1"), + QueryType: ptr.Of(filter.QueryTypeEq), + Values: []string{"value1"}, + }, + }, + }, + } + + result, err := app.buildSearchTraceTreeOApiReq(context.Background(), req) + assert.NoError(t, err) + assert.NotNil(t, result) + assert.Equal(t, int64(123), result.WorkspaceID) + assert.Equal(t, "third-party-123", result.ThirdPartyWorkspaceID) + assert.Equal(t, "test-trace-id", result.TraceID) + assert.Equal(t, int32(10), result.Limit) + assert.False(t, result.WithDetail) + assert.Len(t, result.Tenants, 2) + + // Test case without providing a platform type. + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1"}) + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("third-party-123") + + req2 := &openapi.SearchTraceTreeOApiRequest{ + WorkspaceID: ptr.Of(int64(123)), + TraceID: ptr.Of("test-trace-id"), + Limit: 10, + } + + result2, err := app.buildSearchTraceTreeOApiReq(context.Background(), req2) + assert.NoError(t, err) + assert.NotNil(t, result2) + assert.Equal(t, loop_span.PlatformCozeLoop, result2.PlatformType) + + // Test case when no tenants are returned. + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{}) + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("third-party-123") + + result3, err := app.buildSearchTraceTreeOApiReq(context.Background(), req) + assert.Error(t, err) + assert.Nil(t, result3) +} + +// Add comprehensive unit tests for SearchTraceTreeOApi. +func TestOpenAPIApplication_SearchTraceTreeOApi(t *testing.T) { + t.Run("successful search trace tree", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + traceServiceMock := servicemocks.NewMockITraceService(ctrl) + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + benefitMock := benefitmocks.NewMockIBenefitService(ctrl) + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + rateLimiter := limitermocks.NewMockIRateLimiter(ctrl) + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + // Set expectations. + authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", "platform").Return(nil) + rateLimiter.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), gomock.Any()).Return(10, nil) + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("third-party-123") + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1", "tenant2"}) + traceServiceMock.EXPECT().SearchTraceOApi(gomock.Any(), gomock.Any()).Return(&service.SearchTraceOApiResp{ + Spans: []*loop_span.Span{{SpanID: "test"}}, + }, nil) + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + traceService: traceServiceMock, + auth: authMock, + benefit: benefitMock, + tenant: tenantMock, + workspace: workspaceMock, + rateLimiter: rateLimiter, + traceConfig: traceConfigMock, + metrics: metricsMock, + collector: collectorMock, + } + + now := time.Now().UnixMilli() + startTime := now - 3600000 // 1 hour ago + endTime := now // current time + req := &openapi.SearchTraceTreeOApiRequest{ + WorkspaceID: ptr.Of(int64(123)), + TraceID: ptr.Of("trace123"), + StartTime: &startTime, + EndTime: &endTime, + Limit: 10, + PlatformType: ptr.Of(common.PlatformType("platform")), + } + + resp, err := app.SearchTraceTreeOApi(context.Background(), req) + assert.NoError(t, err) + assert.NotNil(t, resp) + assert.NotNil(t, resp.Data) + assert.NotNil(t, resp.Data.TracesAdvanceInfo) + assert.NotNil(t, resp.Data.TracesAdvanceInfo.Tokens) + }) + + t.Run("invalid request", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + // Set metrics and collector mocks to avoid panics when testing a nil request. + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + // Set expectations for the calls triggered inside the deferred function. + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + metrics: metricsMock, + collector: collectorMock, + } + + // A nil request should return before the deferred function executes to prevent panics. + resp, err := app.SearchTraceTreeOApi(context.Background(), nil) + assert.Error(t, err) + assert.Nil(t, resp) + + // An empty trace_id should trigger validation while still executing the deferred function. + resp, err = app.SearchTraceTreeOApi(context.Background(), &openapi.SearchTraceTreeOApiRequest{ + TraceID: ptr.Of(""), + Limit: 10, // Limit is a required field. + }) + assert.Error(t, err) + assert.Nil(t, resp) + }) + + t.Run("permission denied", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", "platform").Return(assert.AnError) + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + auth: authMock, + metrics: metricsMock, + collector: collectorMock, + } + + now := time.Now().UnixMilli() + start := now - 3600000 + end := now + req := &openapi.SearchTraceTreeOApiRequest{ + WorkspaceID: ptr.Of(int64(123)), + TraceID: ptr.Of("trace123"), + StartTime: &start, + EndTime: &end, + PlatformType: ptr.Of(common.PlatformType("platform")), + } + + resp, err := app.SearchTraceTreeOApi(context.Background(), req) + assert.Error(t, err) + assert.Nil(t, resp) + }) + + t.Run("rate limit exceeded", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + rateLimiter := limitermocks.NewMockIRateLimiter(ctrl) + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", "platform").Return(nil) + rateLimiter.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: false}, nil) + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), gomock.Any()).Return(10, nil) + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + auth: authMock, + rateLimiter: rateLimiter, + traceConfig: traceConfigMock, + metrics: metricsMock, + collector: collectorMock, + } + + now := time.Now().UnixMilli() + start := now - 3600000 + end := now + req := &openapi.SearchTraceTreeOApiRequest{ + WorkspaceID: ptr.Of(int64(123)), + TraceID: ptr.Of("trace123"), + StartTime: &start, + EndTime: &end, + PlatformType: ptr.Of(common.PlatformType("platform")), + } + + resp, err := app.SearchTraceTreeOApi(context.Background(), req) + assert.Error(t, err) + assert.Nil(t, resp) + }) + + t.Run("build request failed", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + rateLimiter := limitermocks.NewMockIRateLimiter(ctrl) + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", "platform").Return(nil) + rateLimiter.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), gomock.Any()).Return(10, nil) + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{}) // Empty tenants should trigger an error. + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("third-party-123") + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + auth: authMock, + tenant: tenantMock, + workspace: workspaceMock, + rateLimiter: rateLimiter, + traceConfig: traceConfigMock, + metrics: metricsMock, + collector: collectorMock, + } + + now := time.Now().UnixMilli() + start := now - 3600000 + end := now + req := &openapi.SearchTraceTreeOApiRequest{ + WorkspaceID: ptr.Of(int64(123)), + TraceID: ptr.Of("trace123"), + StartTime: &start, + EndTime: &end, + PlatformType: ptr.Of(common.PlatformType("platform")), + } + + resp, err := app.SearchTraceTreeOApi(context.Background(), req) + assert.Error(t, err) + assert.Nil(t, resp) + }) + + t.Run("trace service failed", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + traceServiceMock := servicemocks.NewMockITraceService(ctrl) + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + benefitMock := benefitmocks.NewMockIBenefitService(ctrl) + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + rateLimiter := limitermocks.NewMockIRateLimiter(ctrl) + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + // Set expectations. + authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", "platform").Return(nil) + rateLimiter.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), gomock.Any()).Return(10, nil) + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("third-party-123") + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1", "tenant2"}) + traceServiceMock.EXPECT().SearchTraceOApi(gomock.Any(), gomock.Any()).Return(nil, assert.AnError) + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + traceService: traceServiceMock, + auth: authMock, + benefit: benefitMock, + tenant: tenantMock, + workspace: workspaceMock, + rateLimiter: rateLimiter, + traceConfig: traceConfigMock, + metrics: metricsMock, + collector: collectorMock, + } + + now := time.Now().UnixMilli() + start := now - 3600000 + end := now + req := &openapi.SearchTraceTreeOApiRequest{ + WorkspaceID: ptr.Of(int64(123)), + TraceID: ptr.Of("trace123"), + StartTime: &start, + EndTime: &end, + PlatformType: ptr.Of(common.PlatformType("platform")), + } + + resp, err := app.SearchTraceTreeOApi(context.Background(), req) + assert.Error(t, err) + assert.Nil(t, resp) + }) +} + +// Add unit tests for ListSpansOApi. +func TestOpenAPIApplication_ListSpansOApi(t *testing.T) { + t.Run("successful list spans", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + traceServiceMock := servicemocks.NewMockITraceService(ctrl) + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + benefitMock := benefitmocks.NewMockIBenefitService(ctrl) + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) + rateLimiter := limitermocks.NewMockIRateLimiter(ctrl) + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + // 设置期望 + authMock.EXPECT().CheckQueryPermission(gomock.Any(), "123", "platform").Return(nil) + rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiter).AnyTimes() + rateLimiter.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), gomock.Any()).Return(10, nil) + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1"}) + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), int64(123)).Return("123") + traceServiceMock.EXPECT().ListSpansOApi(gomock.Any(), gomock.Any()).Return(&service.ListSpansOApiResp{ + Spans: []*loop_span.Span{{SpanID: "test"}}, + NextPageToken: "next_token", + HasMore: true, + }, nil) + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + traceService: traceServiceMock, + auth: authMock, + benefit: benefitMock, + tenant: tenantMock, + workspace: workspaceMock, + rateLimiter: rateLimiter, + traceConfig: traceConfigMock, + metrics: metricsMock, + collector: collectorMock, + } + + now := time.Now().UnixMilli() + startTime := now - 3600000 // 1 hour ago + endTime := now // current time + pageSize := int32(20) + req := &openapi.ListSpansOApiRequest{ + WorkspaceID: 123, + StartTime: startTime, + EndTime: endTime, + PageSize: &pageSize, + PageToken: ptr.Of("token"), + PlatformType: ptr.Of("platform"), + SpanListType: ptr.Of(common.SpanListTypeRootSpan), + OrderBys: []*common.OrderBy{{Field: ptr.Of("start_time")}}, + } + + resp, err := app.ListSpansOApi(context.Background(), req) + assert.NoError(t, err) + assert.NotNil(t, resp) + assert.True(t, resp.Data.HasMore) + assert.Equal(t, "next_token", resp.Data.NextPageToken) + }) +} + +// 补充ListTracesOApi测试 +func TestOpenAPIApplication_ListTracesOApi(t *testing.T) { + t.Run("successful list traces", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + traceServiceMock := servicemocks.NewMockITraceService(ctrl) + authMock := rpcmocks.NewMockIAuthProvider(ctrl) + benefitMock := benefitmocks.NewMockIBenefitService(ctrl) + tenantMock := tenantmocks.NewMockITenantProvider(ctrl) + workspaceMock := workspacemocks.NewMockIWorkSpaceProvider(ctrl) + rateLimiterMock := limitermocks.NewMockIRateLimiterFactory(ctrl) + rateLimiter := limitermocks.NewMockIRateLimiter(ctrl) + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + // 设置期望 + authMock.EXPECT().CheckQueryPermission(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes() + rateLimiterMock.EXPECT().NewRateLimiter().Return(rateLimiter).AnyTimes() + rateLimiter.EXPECT().AllowN(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&limiter.Result{Allowed: true}, nil).AnyTimes() + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), gomock.Any()).Return(10, nil).AnyTimes() + tenantMock.EXPECT().GetOAPIQueryTenants(gomock.Any(), gomock.Any()).Return([]string{"tenant1"}).AnyTimes() + workspaceMock.EXPECT().GetThirdPartyQueryWorkSpaceID(gomock.Any(), gomock.Any()).Return("123").AnyTimes() + traceServiceMock.EXPECT().GetTracesAdvanceInfo(gomock.Any(), gomock.Any()).Return(&service.GetTracesAdvanceInfoResp{ + Infos: []*loop_span.TraceAdvanceInfo{{TraceId: "trace123"}}, + }, nil).AnyTimes() + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + traceService: traceServiceMock, + auth: authMock, + benefit: benefitMock, + tenant: tenantMock, + workspace: workspaceMock, + rateLimiter: rateLimiter, + traceConfig: traceConfigMock, + metrics: metricsMock, + collector: collectorMock, + } + + // 使用当前时间,避免日期验证错误 + now := time.Now().UnixMilli() + startTime := now - 3600000 // 1 hour ago + endTime := now // current time + _ = startTime + _ = endTime + _ = now + + req := &openapi.ListTracesOApiRequest{ + WorkspaceID: 123, + TraceIds: []string{"trace123", "trace456"}, + StartTime: startTime, + EndTime: endTime, + PlatformType: ptr.Of("platform"), + } + + resp, err := app.ListTracesOApi(context.Background(), req) + assert.NoError(t, err) + assert.NotNil(t, resp) + assert.Len(t, resp.Data.Traces, 1) + }) + + t.Run("invalid request", func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + // 创建最小化的app,避免nil指针 + metricsMock := metricsmocks.NewMockITraceMetrics(ctrl) + collectorMock := collectormocks.NewMockICollectorProvider(ctrl) + + // 设置期望 - 这些会在defer函数中被调用 + metricsMock.EXPECT().EmitTraceOapi(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + collectorMock.EXPECT().CollectTraceOpenAPIEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes() + + app := &OpenAPIApplication{ + metrics: metricsMock, + collector: collectorMock, + } + + // nil请求 - 避免nil指针,提供一个空请求 + resp, err := app.ListTracesOApi(context.Background(), &openapi.ListTracesOApiRequest{}) + assert.Error(t, err) + assert.Nil(t, resp) + + // 无效workspace id + resp, err = app.ListTracesOApi(context.Background(), &openapi.ListTracesOApiRequest{ + WorkspaceID: 0, + TraceIds: []string{"trace123"}, + }) + assert.Error(t, err) + assert.Nil(t, resp) + + // 空trace ids + resp, err = app.ListTracesOApi(context.Background(), &openapi.ListTracesOApiRequest{ + WorkspaceID: 123, + TraceIds: []string{}, + }) + assert.Error(t, err) + assert.Nil(t, resp) + + // 空trace id + resp, err = app.ListTracesOApi(context.Background(), &openapi.ListTracesOApiRequest{ + WorkspaceID: 123, + TraceIds: []string{""}, + }) + assert.Error(t, err) + assert.Nil(t, resp) + }) +} + +// Add unit tests for AllowByKey. +func TestOpenAPIApplication_AllowByKey(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + t.Run("allow by key - success", func(t *testing.T) { + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + rateLimiterMock := limitermocks.NewMockIRateLimiter(ctrl) + + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "test_key").Return(10, nil) + rateLimiterMock.EXPECT().AllowN(gomock.Any(), "test_key", 1, gomock.Any()).Return(&limiter.Result{Allowed: true}, nil) + + app := &OpenAPIApplication{ + traceConfig: traceConfigMock, + rateLimiter: rateLimiterMock, + } + + result := app.AllowByKey(context.Background(), "test_key") + assert.True(t, result) + }) + + t.Run("allow by key - rate limited", func(t *testing.T) { + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + rateLimiterMock := limitermocks.NewMockIRateLimiter(ctrl) + + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "test_key").Return(10, nil) + rateLimiterMock.EXPECT().AllowN(gomock.Any(), "test_key", 1, gomock.Any()).Return(&limiter.Result{Allowed: false}, nil) + + app := &OpenAPIApplication{ + traceConfig: traceConfigMock, + rateLimiter: rateLimiterMock, + } + + result := app.AllowByKey(context.Background(), "test_key") + assert.False(t, result) + }) + + t.Run("allow by key - config error", func(t *testing.T) { + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + rateLimiterMock := limitermocks.NewMockIRateLimiter(ctrl) + + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "test_key").Return(0, assert.AnError) + + app := &OpenAPIApplication{ + traceConfig: traceConfigMock, + rateLimiter: rateLimiterMock, + } + + result := app.AllowByKey(context.Background(), "test_key") + assert.True(t, result) // Defaults to allowing requests when an error occurs. + }) + + t.Run("allow by key - rate limiter error", func(t *testing.T) { + traceConfigMock := configmocks.NewMockITraceConfig(ctrl) + rateLimiterMock := limitermocks.NewMockIRateLimiter(ctrl) + + traceConfigMock.EXPECT().GetQueryMaxQPS(gomock.Any(), "test_key").Return(10, nil) + rateLimiterMock.EXPECT().AllowN(gomock.Any(), "test_key", 1, gomock.Any()).Return(nil, assert.AnError) + + app := &OpenAPIApplication{ + traceConfig: traceConfigMock, + rateLimiter: rateLimiterMock, + } + + result := app.AllowByKey(context.Background(), "test_key") + assert.True(t, result) // Defaults to allowing requests when an error occurs. + }) +} + +// 补充辅助函数测试 +func TestUnmarshalOtelSpan(t *testing.T) { + t.Run("protobuf content type", func(t *testing.T) { + // 创建protobuf数据 + req := &coltracepb.ExportTraceServiceRequest{ + ResourceSpans: []*tracepb.ResourceSpans{{}}, + } + data, err := proto.Marshal(req) + assert.NoError(t, err) + + result, err := unmarshalOtelSpan(data, "application/x-protobuf") + assert.NoError(t, err) + assert.NotNil(t, result) + }) + + t.Run("json content type", func(t *testing.T) { + jsonData := []byte(`{"resourceSpans":[]}`) + result, err := unmarshalOtelSpan(jsonData, "application/json") + assert.NoError(t, err) + assert.NotNil(t, result) + }) + + t.Run("unsupported content type", func(t *testing.T) { + result, err := unmarshalOtelSpan([]byte("test"), "text/plain") + assert.Error(t, err) + assert.Nil(t, result) + }) + + t.Run("invalid json", func(t *testing.T) { + result, err := unmarshalOtelSpan([]byte("invalid json"), "application/json") + assert.Error(t, err) + assert.Nil(t, result) + }) +} + +func TestUngzip(t *testing.T) { + t.Run("no gzip encoding", func(t *testing.T) { + data := []byte("test data") + result, err := ungzip("", data) + assert.NoError(t, err) + assert.Equal(t, data, result) + }) + + t.Run("gzip encoding", func(t *testing.T) { + original := []byte("test data to compress") + var compressed bytes.Buffer + gzipWriter := gzip.NewWriter(&compressed) + _, err := gzipWriter.Write(original) + assert.NoError(t, err) + err = gzipWriter.Close() + assert.NoError(t, err) + result, err := ungzip("gzip", compressed.Bytes()) + assert.NoError(t, err) + assert.Equal(t, original, result) + }) + + t.Run("invalid gzip data", func(t *testing.T) { + result, err := ungzip("gzip", []byte("invalid gzip data")) + assert.Error(t, err) + assert.Nil(t, result) + }) +} diff --git a/backend/modules/observability/application/trace.go b/backend/modules/observability/application/trace.go index b9163e1ff..ec88002c1 100644 --- a/backend/modules/observability/application/trace.go +++ b/backend/modules/observability/application/trace.go @@ -40,6 +40,7 @@ import ( const ( MaxSpanLength = 500 MaxListSpansLimit = 1000 + MaxTraceTreeLength = 10000 MaxOApiListSpansLimit = 200 QueryLimitDefault = 100 ) @@ -189,7 +190,10 @@ func (t *TraceApplication) GetTrace(ctx context.Context, req *trace.GetTraceRequ strconv.FormatInt(req.GetWorkspaceID(), 10), false); err != nil { return nil, err } - sReq := t.buildGetTraceSvcReq(req) + sReq, err := t.buildGetTraceSvcReq(req) + if err != nil { + return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("Get trace req is invalid")) + } sResp, err := t.traceService.GetTrace(ctx, sReq) if err != nil { return nil, err @@ -238,20 +242,104 @@ func (t *TraceApplication) validateGetTraceReq(ctx context.Context, req *trace.G return nil } -func (t *TraceApplication) buildGetTraceSvcReq(req *trace.GetTraceRequest) *service.GetTraceReq { +func (t *TraceApplication) buildGetTraceSvcReq(req *trace.GetTraceRequest) (*service.GetTraceReq, error) { ret := &service.GetTraceReq{ WorkspaceID: req.GetWorkspaceID(), TraceID: req.GetTraceID(), StartTime: req.GetStartTime(), EndTime: req.GetEndTime(), SpanIDs: req.GetSpanIds(), + WithDetail: true, } platformType := loop_span.PlatformType(req.GetPlatformType()) if req.PlatformType == nil { platformType = loop_span.PlatformCozeLoop } ret.PlatformType = platformType - return ret + return ret, nil +} + +func (t *TraceApplication) SearchTraceTree(ctx context.Context, req *trace.SearchTraceTreeRequest) (*trace.SearchTraceTreeResponse, error) { + if err := t.validateSearchTraceTreeReq(ctx, req); err != nil { + return nil, err + } + if err := t.authSvc.CheckWorkspacePermission(ctx, + rpc.AuthActionTraceRead, + strconv.FormatInt(req.GetWorkspaceID(), 10), false); err != nil { + return nil, err + } + sReq, err := t.buildSearchTraceTreeSvcReq(req) + if err != nil { + return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("Get trace req is invalid")) + } + sResp, err := t.traceService.GetTrace(ctx, sReq) + if err != nil { + return nil, err + } + inTokens, outTokens, err := sResp.Spans.Stat(ctx) + if err != nil { + return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInternalErrorCodeCode) + } + logs.CtxInfo(ctx, "SearchTraceTree successfully, spans count %d", len(sResp.Spans)) + userMap, evalMap, tagMap := t.getAnnoDisplayInfo(ctx, + req.GetWorkspaceID(), + sResp.Spans.GetUserIDs(), + sResp.Spans.GetEvaluatorVersionIDs(), + sResp.Spans.GetAnnotationTagIDs()) + return &trace.SearchTraceTreeResponse{ + Spans: tconv.SpanListDO2DTO(sResp.Spans, userMap, evalMap, tagMap), + TracesAdvanceInfo: &trace.TraceAdvanceInfo{ + TraceID: sResp.TraceId, + Tokens: &trace.TokenCost{ + Input: inTokens, + Output: outTokens, + }, + }, + }, nil +} + +func (t *TraceApplication) validateSearchTraceTreeReq(ctx context.Context, req *trace.SearchTraceTreeRequest) error { + if req == nil { + return errorx.NewByCode(obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("no request provided")) + } else if req.GetWorkspaceID() <= 0 { + return errorx.NewByCode(obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("invalid workspace_id")) + } else if req.GetTraceID() == "" { + return errorx.NewByCode(obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("invalid trace_id")) + } + v := utils.DateValidator{ + Start: req.GetStartTime(), + End: req.GetEndTime(), + EarliestDays: t.traceConfig.GetTraceDataMaxDurationDay(ctx, req.PlatformType), + } + newStartTime, newEndTime, err := v.CorrectDate() + if err != nil { + return err + } + req.SetStartTime(newStartTime) + req.SetEndTime(newEndTime) + return nil +} + +func (t *TraceApplication) buildSearchTraceTreeSvcReq(req *trace.SearchTraceTreeRequest) (*service.GetTraceReq, error) { + ret := &service.GetTraceReq{ + WorkspaceID: req.GetWorkspaceID(), + TraceID: req.GetTraceID(), + StartTime: req.GetStartTime(), + EndTime: req.GetEndTime(), + WithDetail: false, + } + platformType := loop_span.PlatformType(req.GetPlatformType()) + if req.PlatformType == nil { + platformType = loop_span.PlatformCozeLoop + } + ret.PlatformType = platformType + if req.Filters != nil { + ret.Filters = tconv.FilterFieldsDTO2DO(req.Filters) + if err := ret.Filters.Validate(); err != nil { + return nil, err + } + } + return ret, nil } func (t *TraceApplication) BatchGetTracesAdvanceInfo(ctx context.Context, req *trace.BatchGetTracesAdvanceInfoRequest) (*trace.BatchGetTracesAdvanceInfoResponse, error) { @@ -433,7 +521,8 @@ func (t *TraceApplication) GetTracesMetaInfo(ctx context.Context, req *trace.Get fMeta[k].FilterTypes = fTypes } return &trace.GetTracesMetaInfoResponse{ - FieldMetas: fMeta, + FieldMetas: fMeta, + KeySpanType: sResp.KeySpanTypeList, }, nil } @@ -443,7 +532,7 @@ func (t *TraceApplication) buildGetTracesMetaInfoReq(req *trace.GetTracesMetaInf } platformType := loop_span.PlatformType(req.GetPlatformType()) if req.PlatformType == nil { - platformType = loop_span.PlatformCozeLoop + platformType = loop_span.PlatformDefault } ret.PlatformType = platformType switch req.GetSpanListType() { diff --git a/backend/modules/observability/application/trace_test.go b/backend/modules/observability/application/trace_test.go index 0c79011b8..1883035ee 100644 --- a/backend/modules/observability/application/trace_test.go +++ b/backend/modules/observability/application/trace_test.go @@ -15,6 +15,7 @@ import ( annodto "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/annotation" commondto "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/common" dataset0 "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/dataset" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/filter" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/span" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/view" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/trace" @@ -833,6 +834,360 @@ func TestTraceApplication_GetTrace(t *testing.T) { } } +func TestTraceApplication_SearchTraceTree(t *testing.T) { + start := time.Now().Add(-time.Hour).UnixMilli() + end := time.Now().UnixMilli() + type fields struct { + traceSvc service.ITraceService + auth rpc.IAuthProvider + traceCfg config.ITraceConfig + } + type args struct { + ctx context.Context + req *trace.SearchTraceTreeRequest + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + want *trace.SearchTraceTreeResponse + wantErr bool + }{ + { + name: "success case", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockSvc := svcmock.NewMockITraceService(ctrl) + mockAuth := rpcmock.NewMockIAuthProvider(ctrl) + mockCfg := confmock.NewMockITraceConfig(ctrl) + mockCfg.EXPECT().GetTraceDataMaxDurationDay(gomock.Any(), gomock.Any()).Return(int64(30)) + mockAuth.EXPECT().CheckWorkspacePermission(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) + mockSvc.EXPECT().GetTrace(gomock.Any(), gomock.Any()).Return(&service.GetTraceResp{ + TraceId: "trace-1", + Spans: loop_span.SpanList{}, + }, nil) + return fields{ + traceSvc: mockSvc, + auth: mockAuth, + traceCfg: mockCfg, + } + }, + args: args{ + ctx: context.Background(), + req: &trace.SearchTraceTreeRequest{ + WorkspaceID: 12, + TraceID: "trace-1", + StartTime: start, + EndTime: end, + }, + }, + want: &trace.SearchTraceTreeResponse{ + Spans: []*span.OutputSpan{}, + TracesAdvanceInfo: &trace.TraceAdvanceInfo{ + TraceID: "trace-1", + Tokens: &trace.TokenCost{}, + }, + }, + wantErr: false, + }, + { + name: "trace service error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockSvc := svcmock.NewMockITraceService(ctrl) + mockAuth := rpcmock.NewMockIAuthProvider(ctrl) + mockCfg := confmock.NewMockITraceConfig(ctrl) + mockCfg.EXPECT().GetTraceDataMaxDurationDay(gomock.Any(), gomock.Any()).Return(int64(30)) + mockAuth.EXPECT().CheckWorkspacePermission(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) + mockSvc.EXPECT().GetTrace(gomock.Any(), gomock.Any()).Return(nil, assert.AnError) + return fields{ + traceSvc: mockSvc, + auth: mockAuth, + traceCfg: mockCfg, + } + }, + args: args{ + ctx: context.Background(), + req: &trace.SearchTraceTreeRequest{ + WorkspaceID: 12, + TraceID: "trace-1", + StartTime: start, + EndTime: end, + }, + }, + want: nil, + wantErr: true, + }, + { + name: "permission error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockAuth := rpcmock.NewMockIAuthProvider(ctrl) + mockCfg := confmock.NewMockITraceConfig(ctrl) + mockCfg.EXPECT().GetTraceDataMaxDurationDay(gomock.Any(), gomock.Any()).Return(int64(30)) + mockAuth.EXPECT().CheckWorkspacePermission(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(fmt.Errorf("permission denied")) + return fields{ + auth: mockAuth, + traceCfg: mockCfg, + } + }, + args: args{ + ctx: context.Background(), + req: &trace.SearchTraceTreeRequest{ + WorkspaceID: 12, + TraceID: "trace-1", + StartTime: start, + EndTime: end, + }, + }, + want: nil, + wantErr: true, + }, + { + name: "invalid request", + fieldsGetter: func(ctrl *gomock.Controller) fields { + return fields{} + }, + args: args{ + ctx: context.Background(), + req: &trace.SearchTraceTreeRequest{ + WorkspaceID: 0, + TraceID: "trace-1", + StartTime: start, + EndTime: end, + }, + }, + want: nil, + wantErr: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + fields := tt.fieldsGetter(ctrl) + app := &TraceApplication{ + traceService: fields.traceSvc, + authSvc: fields.auth, + traceConfig: fields.traceCfg, + } + got, err := app.SearchTraceTree(tt.args.ctx, tt.args.req) + assert.Equal(t, tt.wantErr, err != nil) + assert.Equal(t, tt.want, got) + }) + } +} + +func TestTraceApplication_validateSearchTraceTreeReq(t *testing.T) { + validStart := time.Now().Add(-time.Hour).UnixMilli() + validEnd := time.Now().UnixMilli() + type fields struct { + traceCfg config.ITraceConfig + } + type args struct { + ctx context.Context + req *trace.SearchTraceTreeRequest + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + wantErr bool + wantStart *int64 + wantEnd *int64 + }{ + { + name: "nil request", + fieldsGetter: func(ctrl *gomock.Controller) fields { + return fields{} + }, + args: args{ + ctx: context.Background(), + req: nil, + }, + wantErr: true, + }, + { + name: "invalid workspace", + fieldsGetter: func(ctrl *gomock.Controller) fields { + return fields{} + }, + args: args{ + ctx: context.Background(), + req: &trace.SearchTraceTreeRequest{ + WorkspaceID: 0, + TraceID: "trace-1", + StartTime: validStart, + EndTime: validEnd, + }, + }, + wantErr: true, + }, + { + name: "invalid trace id", + fieldsGetter: func(ctrl *gomock.Controller) fields { + return fields{} + }, + args: args{ + ctx: context.Background(), + req: &trace.SearchTraceTreeRequest{ + WorkspaceID: 1, + TraceID: "", + StartTime: validStart, + EndTime: validEnd, + }, + }, + wantErr: true, + }, + { + name: "invalid time range", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockCfg := confmock.NewMockITraceConfig(ctrl) + mockCfg.EXPECT().GetTraceDataMaxDurationDay(gomock.Any(), gomock.Any()).Return(int64(30)) + return fields{ + traceCfg: mockCfg, + } + }, + args: args{ + ctx: context.Background(), + req: &trace.SearchTraceTreeRequest{ + WorkspaceID: 1, + TraceID: "trace-1", + StartTime: int64(0), + EndTime: int64(0), + }, + }, + wantErr: true, + }, + { + name: "success", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockCfg := confmock.NewMockITraceConfig(ctrl) + mockCfg.EXPECT().GetTraceDataMaxDurationDay(gomock.Any(), gomock.Any()).Return(int64(30)) + return fields{ + traceCfg: mockCfg, + } + }, + args: args{ + ctx: context.Background(), + req: &trace.SearchTraceTreeRequest{ + WorkspaceID: 1, + TraceID: "trace-1", + StartTime: validStart, + EndTime: validEnd, + }, + }, + wantErr: false, + wantStart: ptr.Of(validStart), + wantEnd: ptr.Of(validEnd), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + fields := tt.fieldsGetter(ctrl) + app := &TraceApplication{ + traceConfig: fields.traceCfg, + } + err := app.validateSearchTraceTreeReq(tt.args.ctx, tt.args.req) + assert.Equal(t, tt.wantErr, err != nil) + if !tt.wantErr && tt.args.req != nil { + if tt.wantStart != nil { + assert.Equal(t, *tt.wantStart, tt.args.req.GetStartTime()) + } + if tt.wantEnd != nil { + assert.Equal(t, *tt.wantEnd, tt.args.req.GetEndTime()) + } + } + }) + } +} + +func TestTraceApplication_buildSearchTraceTreeSvcReq(t *testing.T) { + start := time.Now().Add(-time.Hour).UnixMilli() + end := time.Now().UnixMilli() + app := &TraceApplication{} + tests := []struct { + name string + req *trace.SearchTraceTreeRequest + wantErr bool + check func(t *testing.T, got *service.GetTraceReq) + }{ + { + name: "default platform", + req: &trace.SearchTraceTreeRequest{ + WorkspaceID: 1, + TraceID: "trace-1", + StartTime: start, + EndTime: end, + }, + check: func(t *testing.T, got *service.GetTraceReq) { + assert.Equal(t, int64(1), got.WorkspaceID) + assert.Equal(t, "trace-1", got.TraceID) + assert.Equal(t, start, got.StartTime) + assert.Equal(t, end, got.EndTime) + assert.False(t, got.WithDetail) + assert.Equal(t, loop_span.PlatformCozeLoop, got.PlatformType) + assert.Nil(t, got.Filters) + }, + }, + { + name: "custom platform with filters", + req: func() *trace.SearchTraceTreeRequest { + platformType := commondto.PlatformTypePrompt + return &trace.SearchTraceTreeRequest{ + WorkspaceID: 2, + TraceID: "trace-2", + StartTime: start, + EndTime: end, + PlatformType: &platformType, + Filters: &filter.FilterFields{ + FilterFields: []*filter.FilterField{{}}, + }, + } + }(), + check: func(t *testing.T, got *service.GetTraceReq) { + assert.Equal(t, int64(2), got.WorkspaceID) + assert.Equal(t, "trace-2", got.TraceID) + assert.Equal(t, start, got.StartTime) + assert.Equal(t, end, got.EndTime) + assert.Equal(t, loop_span.PlatformType(commondto.PlatformTypePrompt), got.PlatformType) + if assert.NotNil(t, got.Filters) { + assert.Len(t, got.Filters.FilterFields, 1) + } + }, + }, + { + name: "invalid filters", + req: func() *trace.SearchTraceTreeRequest { + invalid := filter.QueryRelation("invalid") + return &trace.SearchTraceTreeRequest{ + WorkspaceID: 3, + TraceID: "trace-3", + StartTime: start, + EndTime: end, + Filters: &filter.FilterFields{ + QueryAndOr: &invalid, + }, + } + }(), + wantErr: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := app.buildSearchTraceTreeSvcReq(tt.req) + assert.Equal(t, tt.wantErr, err != nil) + if tt.wantErr { + assert.Nil(t, got) + return + } + if tt.check != nil { + checkFn := tt.check + checkFn(t, got) + } + }) + } +} + func TestTraceApplication_BatchGetTracesAdvanceInfo(t *testing.T) { type fields struct { traceSvc service.ITraceService diff --git a/backend/modules/observability/application/wire.go b/backend/modules/observability/application/wire.go index adc2b19c5..a4d0518fd 100644 --- a/backend/modules/observability/application/wire.go +++ b/backend/modules/observability/application/wire.go @@ -42,6 +42,7 @@ import ( "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/service/collector/receiver/rmqreceiver" "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/service/trace/span_filter" "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/service/trace/span_processor" + obcollector "github.com/coze-dev/coze-loop/backend/modules/observability/infra/collector" obconfig "github.com/coze-dev/coze-loop/backend/modules/observability/infra/config" obmetrics "github.com/coze-dev/coze-loop/backend/modules/observability/infra/metrics" mq2 "github.com/coze-dev/coze-loop/backend/modules/observability/infra/mq/producer" @@ -82,6 +83,7 @@ var ( ckdao.NewSpansCkDaoImpl, ckdao.NewAnnotationCkDaoImpl, obmetrics.NewTraceMetricsImpl, + obcollector.NewEventCollectorProvider, mq2.NewTraceProducerImpl, mq2.NewAnnotationProducerImpl, file.NewFileRPCProvider, diff --git a/backend/modules/observability/application/wire_gen.go b/backend/modules/observability/application/wire_gen.go index c15ba3da7..69fd555ed 100644 --- a/backend/modules/observability/application/wire_gen.go +++ b/backend/modules/observability/application/wire_gen.go @@ -42,6 +42,7 @@ import ( "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/service/collector/receiver/rmqreceiver" "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/service/trace/span_filter" "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/service/trace/span_processor" + "github.com/coze-dev/coze-loop/backend/modules/observability/infra/collector" "github.com/coze-dev/coze-loop/backend/modules/observability/infra/config" metrics2 "github.com/coze-dev/coze-loop/backend/modules/observability/infra/metrics" "github.com/coze-dev/coze-loop/backend/modules/observability/infra/mq/producer" @@ -164,7 +165,8 @@ func InitOpenAPIApplication(mqFactory mq.IFactory, configFactory conf.IConfigLoa } iAuthProvider := auth.NewAuthProvider(authClient) iWorkSpaceProvider := workspace.NewWorkspaceProvider() - iObservabilityOpenAPIApplication, err := NewOpenAPIApplication(iTraceService, iAuthProvider, benefit2, iTenantProvider, iWorkSpaceProvider, limiterFactory, iTraceConfig, iTraceMetrics) + iCollectorProvider := collector.NewEventCollectorProvider() + iObservabilityOpenAPIApplication, err := NewOpenAPIApplication(iTraceService, iAuthProvider, benefit2, iTenantProvider, iWorkSpaceProvider, limiterFactory, iTraceConfig, iTraceMetrics, iCollectorProvider) if err != nil { return nil, err } @@ -256,7 +258,7 @@ var ( taskDomainSet = wire.NewSet( NewInitTaskProcessor, service2.NewTaskServiceImpl, repo.NewTaskRepoImpl, mysql.NewTaskDaoImpl, dao.NewTaskDAO, dao.NewTaskRunDAO, mysql.NewTaskRunDaoImpl, producer.NewBackfillProducerImpl, ) - traceDomainSet = wire.NewSet(service.NewTraceServiceImpl, service.NewTraceExportServiceImpl, repo.NewTraceCKRepoImpl, ck2.NewSpansCkDaoImpl, ck2.NewAnnotationCkDaoImpl, metrics2.NewTraceMetricsImpl, producer.NewTraceProducerImpl, producer.NewAnnotationProducerImpl, file.NewFileRPCProvider, NewTraceConfigLoader, + traceDomainSet = wire.NewSet(service.NewTraceServiceImpl, service.NewTraceExportServiceImpl, repo.NewTraceCKRepoImpl, ck2.NewSpansCkDaoImpl, ck2.NewAnnotationCkDaoImpl, metrics2.NewTraceMetricsImpl, collector.NewEventCollectorProvider, producer.NewTraceProducerImpl, producer.NewAnnotationProducerImpl, file.NewFileRPCProvider, NewTraceConfigLoader, NewTraceProcessorBuilder, config.NewTraceConfigCenter, tenant.NewTenantProvider, workspace.NewWorkspaceProvider, evaluator.NewEvaluatorRPCProvider, NewDatasetServiceAdapter, taskDomainSet, ) diff --git a/backend/modules/observability/domain/component/collector/event_collector.go b/backend/modules/observability/domain/component/collector/event_collector.go new file mode 100644 index 000000000..4a1bd7a50 --- /dev/null +++ b/backend/modules/observability/domain/component/collector/event_collector.go @@ -0,0 +1,13 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 +package collector + +import ( + "context" + "time" +) + +//go:generate mockgen -destination=mocks/event_collector.go -package=mocks . ICollectorProvider +type ICollectorProvider interface { + CollectTraceOpenAPIEvent(ctx context.Context, method string, workspaceId int64, platformType, spanListType string, spanSize int64, errorCode int, start time.Time, isError bool) +} diff --git a/backend/modules/observability/domain/component/collector/mocks/event_collector.go b/backend/modules/observability/domain/component/collector/mocks/event_collector.go new file mode 100644 index 000000000..32863623a --- /dev/null +++ b/backend/modules/observability/domain/component/collector/mocks/event_collector.go @@ -0,0 +1,54 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: github.com/coze-dev/coze-loop/backend/modules/observability/domain/component/collector (interfaces: ICollectorProvider) +// +// Generated by this command: +// +// mockgen -destination=mocks/event_collector.go -package=mocks . ICollectorProvider +// + +// Package mocks is a generated GoMock package. +package mocks + +import ( + context "context" + reflect "reflect" + time "time" + + gomock "go.uber.org/mock/gomock" +) + +// MockICollectorProvider is a mock of ICollectorProvider interface. +type MockICollectorProvider struct { + ctrl *gomock.Controller + recorder *MockICollectorProviderMockRecorder + isgomock struct{} +} + +// MockICollectorProviderMockRecorder is the mock recorder for MockICollectorProvider. +type MockICollectorProviderMockRecorder struct { + mock *MockICollectorProvider +} + +// NewMockICollectorProvider creates a new mock instance. +func NewMockICollectorProvider(ctrl *gomock.Controller) *MockICollectorProvider { + mock := &MockICollectorProvider{ctrl: ctrl} + mock.recorder = &MockICollectorProviderMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockICollectorProvider) EXPECT() *MockICollectorProviderMockRecorder { + return m.recorder +} + +// CollectTraceOpenAPIEvent mocks base method. +func (m *MockICollectorProvider) CollectTraceOpenAPIEvent(ctx context.Context, method string, workspaceId int64, platformType, spanListType string, spanSize int64, errorCode int, start time.Time, isError bool) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "CollectTraceOpenAPIEvent", ctx, method, workspaceId, platformType, spanListType, spanSize, errorCode, start, isError) +} + +// CollectTraceOpenAPIEvent indicates an expected call of CollectTraceOpenAPIEvent. +func (mr *MockICollectorProviderMockRecorder) CollectTraceOpenAPIEvent(ctx, method, workspaceId, platformType, spanListType, spanSize, errorCode, start, isError any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CollectTraceOpenAPIEvent", reflect.TypeOf((*MockICollectorProvider)(nil).CollectTraceOpenAPIEvent), ctx, method, workspaceId, platformType, spanListType, spanSize, errorCode, start, isError) +} diff --git a/backend/modules/observability/domain/component/config/config.go b/backend/modules/observability/domain/component/config/config.go index 338143e32..f587b3188 100644 --- a/backend/modules/observability/domain/component/config/config.go +++ b/backend/modules/observability/domain/component/config/config.go @@ -126,6 +126,7 @@ type ITraceConfig interface { GetDefaultTraceTenant(ctx context.Context) string GetAnnotationSourceCfg(ctx context.Context) (*AnnotationSourceConfig, error) GetQueryMaxQPS(ctx context.Context, key string) (int, error) + GetKeySpanTypes(ctx context.Context) map[string][]string GetBackfillMqProducerCfg(ctx context.Context) (*MqProducerCfg, error) conf.IConfigLoader diff --git a/backend/modules/observability/domain/component/config/mocks/config.go b/backend/modules/observability/domain/component/config/mocks/config.go index 1aea3c576..e53f087e3 100644 --- a/backend/modules/observability/domain/component/config/mocks/config.go +++ b/backend/modules/observability/domain/component/config/mocks/config.go @@ -22,6 +22,7 @@ import ( type MockITraceConfig struct { ctrl *gomock.Controller recorder *MockITraceConfigMockRecorder + isgomock struct{} } // MockITraceConfigMockRecorder is the mock recorder for MockITraceConfig. @@ -42,217 +43,231 @@ func (m *MockITraceConfig) EXPECT() *MockITraceConfigMockRecorder { } // Get mocks base method. -func (m *MockITraceConfig) Get(arg0 context.Context, arg1 string) any { +func (m *MockITraceConfig) Get(ctx context.Context, key string) any { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Get", arg0, arg1) + ret := m.ctrl.Call(m, "Get", ctx, key) ret0, _ := ret[0].(any) return ret0 } // Get indicates an expected call of Get. -func (mr *MockITraceConfigMockRecorder) Get(arg0, arg1 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) Get(ctx, key any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockITraceConfig)(nil).Get), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockITraceConfig)(nil).Get), ctx, key) } // GetAnnotationMqProducerCfg mocks base method. -func (m *MockITraceConfig) GetAnnotationMqProducerCfg(arg0 context.Context) (*config.MqProducerCfg, error) { +func (m *MockITraceConfig) GetAnnotationMqProducerCfg(ctx context.Context) (*config.MqProducerCfg, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAnnotationMqProducerCfg", arg0) + ret := m.ctrl.Call(m, "GetAnnotationMqProducerCfg", ctx) ret0, _ := ret[0].(*config.MqProducerCfg) ret1, _ := ret[1].(error) return ret0, ret1 } // GetAnnotationMqProducerCfg indicates an expected call of GetAnnotationMqProducerCfg. -func (mr *MockITraceConfigMockRecorder) GetAnnotationMqProducerCfg(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetAnnotationMqProducerCfg(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAnnotationMqProducerCfg", reflect.TypeOf((*MockITraceConfig)(nil).GetAnnotationMqProducerCfg), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAnnotationMqProducerCfg", reflect.TypeOf((*MockITraceConfig)(nil).GetAnnotationMqProducerCfg), ctx) } // GetAnnotationSourceCfg mocks base method. -func (m *MockITraceConfig) GetAnnotationSourceCfg(arg0 context.Context) (*config.AnnotationSourceConfig, error) { +func (m *MockITraceConfig) GetAnnotationSourceCfg(ctx context.Context) (*config.AnnotationSourceConfig, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAnnotationSourceCfg", arg0) + ret := m.ctrl.Call(m, "GetAnnotationSourceCfg", ctx) ret0, _ := ret[0].(*config.AnnotationSourceConfig) ret1, _ := ret[1].(error) return ret0, ret1 } // GetAnnotationSourceCfg indicates an expected call of GetAnnotationSourceCfg. -func (mr *MockITraceConfigMockRecorder) GetAnnotationSourceCfg(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetAnnotationSourceCfg(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAnnotationSourceCfg", reflect.TypeOf((*MockITraceConfig)(nil).GetAnnotationSourceCfg), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAnnotationSourceCfg", reflect.TypeOf((*MockITraceConfig)(nil).GetAnnotationSourceCfg), ctx) } // GetBackfillMqProducerCfg mocks base method. -func (m *MockITraceConfig) GetBackfillMqProducerCfg(arg0 context.Context) (*config.MqProducerCfg, error) { +func (m *MockITraceConfig) GetBackfillMqProducerCfg(ctx context.Context) (*config.MqProducerCfg, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBackfillMqProducerCfg", arg0) + ret := m.ctrl.Call(m, "GetBackfillMqProducerCfg", ctx) ret0, _ := ret[0].(*config.MqProducerCfg) ret1, _ := ret[1].(error) return ret0, ret1 } // GetBackfillMqProducerCfg indicates an expected call of GetBackfillMqProducerCfg. -func (mr *MockITraceConfigMockRecorder) GetBackfillMqProducerCfg(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetBackfillMqProducerCfg(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBackfillMqProducerCfg", reflect.TypeOf((*MockITraceConfig)(nil).GetBackfillMqProducerCfg), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBackfillMqProducerCfg", reflect.TypeOf((*MockITraceConfig)(nil).GetBackfillMqProducerCfg), ctx) } // GetDefaultTraceTenant mocks base method. -func (m *MockITraceConfig) GetDefaultTraceTenant(arg0 context.Context) string { +func (m *MockITraceConfig) GetDefaultTraceTenant(ctx context.Context) string { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDefaultTraceTenant", arg0) + ret := m.ctrl.Call(m, "GetDefaultTraceTenant", ctx) ret0, _ := ret[0].(string) return ret0 } // GetDefaultTraceTenant indicates an expected call of GetDefaultTraceTenant. -func (mr *MockITraceConfigMockRecorder) GetDefaultTraceTenant(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetDefaultTraceTenant(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDefaultTraceTenant", reflect.TypeOf((*MockITraceConfig)(nil).GetDefaultTraceTenant), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDefaultTraceTenant", reflect.TypeOf((*MockITraceConfig)(nil).GetDefaultTraceTenant), ctx) +} + +// GetKeySpanTypes mocks base method. +func (m *MockITraceConfig) GetKeySpanTypes(ctx context.Context) map[string][]string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetKeySpanTypes", ctx) + ret0, _ := ret[0].(map[string][]string) + return ret0 +} + +// GetKeySpanTypes indicates an expected call of GetKeySpanTypes. +func (mr *MockITraceConfigMockRecorder) GetKeySpanTypes(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKeySpanTypes", reflect.TypeOf((*MockITraceConfig)(nil).GetKeySpanTypes), ctx) } // GetPlatformSpansTrans mocks base method. -func (m *MockITraceConfig) GetPlatformSpansTrans(arg0 context.Context) (*config.SpanTransHandlerConfig, error) { +func (m *MockITraceConfig) GetPlatformSpansTrans(ctx context.Context) (*config.SpanTransHandlerConfig, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPlatformSpansTrans", arg0) + ret := m.ctrl.Call(m, "GetPlatformSpansTrans", ctx) ret0, _ := ret[0].(*config.SpanTransHandlerConfig) ret1, _ := ret[1].(error) return ret0, ret1 } // GetPlatformSpansTrans indicates an expected call of GetPlatformSpansTrans. -func (mr *MockITraceConfigMockRecorder) GetPlatformSpansTrans(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetPlatformSpansTrans(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPlatformSpansTrans", reflect.TypeOf((*MockITraceConfig)(nil).GetPlatformSpansTrans), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPlatformSpansTrans", reflect.TypeOf((*MockITraceConfig)(nil).GetPlatformSpansTrans), ctx) } // GetPlatformTenants mocks base method. -func (m *MockITraceConfig) GetPlatformTenants(arg0 context.Context) (*config.PlatformTenantsCfg, error) { +func (m *MockITraceConfig) GetPlatformTenants(ctx context.Context) (*config.PlatformTenantsCfg, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPlatformTenants", arg0) + ret := m.ctrl.Call(m, "GetPlatformTenants", ctx) ret0, _ := ret[0].(*config.PlatformTenantsCfg) ret1, _ := ret[1].(error) return ret0, ret1 } // GetPlatformTenants indicates an expected call of GetPlatformTenants. -func (mr *MockITraceConfigMockRecorder) GetPlatformTenants(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetPlatformTenants(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPlatformTenants", reflect.TypeOf((*MockITraceConfig)(nil).GetPlatformTenants), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPlatformTenants", reflect.TypeOf((*MockITraceConfig)(nil).GetPlatformTenants), ctx) } // GetQueryMaxQPS mocks base method. -func (m *MockITraceConfig) GetQueryMaxQPS(arg0 context.Context, arg1 string) (int, error) { +func (m *MockITraceConfig) GetQueryMaxQPS(ctx context.Context, key string) (int, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetQueryMaxQPS", arg0, arg1) + ret := m.ctrl.Call(m, "GetQueryMaxQPS", ctx, key) ret0, _ := ret[0].(int) ret1, _ := ret[1].(error) return ret0, ret1 } // GetQueryMaxQPS indicates an expected call of GetQueryMaxQPS. -func (mr *MockITraceConfigMockRecorder) GetQueryMaxQPS(arg0, arg1 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetQueryMaxQPS(ctx, key any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQueryMaxQPS", reflect.TypeOf((*MockITraceConfig)(nil).GetQueryMaxQPS), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQueryMaxQPS", reflect.TypeOf((*MockITraceConfig)(nil).GetQueryMaxQPS), ctx, key) } // GetSystemViews mocks base method. -func (m *MockITraceConfig) GetSystemViews(arg0 context.Context) ([]*config.SystemView, error) { +func (m *MockITraceConfig) GetSystemViews(ctx context.Context) ([]*config.SystemView, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSystemViews", arg0) + ret := m.ctrl.Call(m, "GetSystemViews", ctx) ret0, _ := ret[0].([]*config.SystemView) ret1, _ := ret[1].(error) return ret0, ret1 } // GetSystemViews indicates an expected call of GetSystemViews. -func (mr *MockITraceConfigMockRecorder) GetSystemViews(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetSystemViews(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSystemViews", reflect.TypeOf((*MockITraceConfig)(nil).GetSystemViews), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSystemViews", reflect.TypeOf((*MockITraceConfig)(nil).GetSystemViews), ctx) } // GetTenantConfig mocks base method. -func (m *MockITraceConfig) GetTenantConfig(arg0 context.Context) (*config.TenantCfg, error) { +func (m *MockITraceConfig) GetTenantConfig(ctx context.Context) (*config.TenantCfg, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTenantConfig", arg0) + ret := m.ctrl.Call(m, "GetTenantConfig", ctx) ret0, _ := ret[0].(*config.TenantCfg) ret1, _ := ret[1].(error) return ret0, ret1 } // GetTenantConfig indicates an expected call of GetTenantConfig. -func (mr *MockITraceConfigMockRecorder) GetTenantConfig(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetTenantConfig(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTenantConfig", reflect.TypeOf((*MockITraceConfig)(nil).GetTenantConfig), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTenantConfig", reflect.TypeOf((*MockITraceConfig)(nil).GetTenantConfig), ctx) } // GetTraceCkCfg mocks base method. -func (m *MockITraceConfig) GetTraceCkCfg(arg0 context.Context) (*config.TraceCKCfg, error) { +func (m *MockITraceConfig) GetTraceCkCfg(ctx context.Context) (*config.TraceCKCfg, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTraceCkCfg", arg0) + ret := m.ctrl.Call(m, "GetTraceCkCfg", ctx) ret0, _ := ret[0].(*config.TraceCKCfg) ret1, _ := ret[1].(error) return ret0, ret1 } // GetTraceCkCfg indicates an expected call of GetTraceCkCfg. -func (mr *MockITraceConfigMockRecorder) GetTraceCkCfg(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetTraceCkCfg(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTraceCkCfg", reflect.TypeOf((*MockITraceConfig)(nil).GetTraceCkCfg), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTraceCkCfg", reflect.TypeOf((*MockITraceConfig)(nil).GetTraceCkCfg), ctx) } // GetTraceDataMaxDurationDay mocks base method. -func (m *MockITraceConfig) GetTraceDataMaxDurationDay(arg0 context.Context, arg1 *string) int64 { +func (m *MockITraceConfig) GetTraceDataMaxDurationDay(ctx context.Context, platformType *string) int64 { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTraceDataMaxDurationDay", arg0, arg1) + ret := m.ctrl.Call(m, "GetTraceDataMaxDurationDay", ctx, platformType) ret0, _ := ret[0].(int64) return ret0 } // GetTraceDataMaxDurationDay indicates an expected call of GetTraceDataMaxDurationDay. -func (mr *MockITraceConfigMockRecorder) GetTraceDataMaxDurationDay(arg0, arg1 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetTraceDataMaxDurationDay(ctx, platformType any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTraceDataMaxDurationDay", reflect.TypeOf((*MockITraceConfig)(nil).GetTraceDataMaxDurationDay), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTraceDataMaxDurationDay", reflect.TypeOf((*MockITraceConfig)(nil).GetTraceDataMaxDurationDay), ctx, platformType) } // GetTraceFieldMetaInfo mocks base method. -func (m *MockITraceConfig) GetTraceFieldMetaInfo(arg0 context.Context) (*config.TraceFieldMetaInfoCfg, error) { +func (m *MockITraceConfig) GetTraceFieldMetaInfo(ctx context.Context) (*config.TraceFieldMetaInfoCfg, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTraceFieldMetaInfo", arg0) + ret := m.ctrl.Call(m, "GetTraceFieldMetaInfo", ctx) ret0, _ := ret[0].(*config.TraceFieldMetaInfoCfg) ret1, _ := ret[1].(error) return ret0, ret1 } // GetTraceFieldMetaInfo indicates an expected call of GetTraceFieldMetaInfo. -func (mr *MockITraceConfigMockRecorder) GetTraceFieldMetaInfo(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetTraceFieldMetaInfo(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTraceFieldMetaInfo", reflect.TypeOf((*MockITraceConfig)(nil).GetTraceFieldMetaInfo), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTraceFieldMetaInfo", reflect.TypeOf((*MockITraceConfig)(nil).GetTraceFieldMetaInfo), ctx) } // GetTraceIngestTenantProducerCfg mocks base method. -func (m *MockITraceConfig) GetTraceIngestTenantProducerCfg(arg0 context.Context) (map[string]*config.IngestConfig, error) { +func (m *MockITraceConfig) GetTraceIngestTenantProducerCfg(ctx context.Context) (map[string]*config.IngestConfig, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTraceIngestTenantProducerCfg", arg0) + ret := m.ctrl.Call(m, "GetTraceIngestTenantProducerCfg", ctx) ret0, _ := ret[0].(map[string]*config.IngestConfig) ret1, _ := ret[1].(error) return ret0, ret1 } // GetTraceIngestTenantProducerCfg indicates an expected call of GetTraceIngestTenantProducerCfg. -func (mr *MockITraceConfigMockRecorder) GetTraceIngestTenantProducerCfg(arg0 any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) GetTraceIngestTenantProducerCfg(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTraceIngestTenantProducerCfg", reflect.TypeOf((*MockITraceConfig)(nil).GetTraceIngestTenantProducerCfg), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTraceIngestTenantProducerCfg", reflect.TypeOf((*MockITraceConfig)(nil).GetTraceIngestTenantProducerCfg), ctx) } // Unmarshal mocks base method. -func (m *MockITraceConfig) Unmarshal(arg0 context.Context, arg1 any, arg2 ...conf.DecodeOptionFn) error { +func (m *MockITraceConfig) Unmarshal(ctx context.Context, value any, opts ...conf.DecodeOptionFn) error { m.ctrl.T.Helper() - varargs := []any{arg0, arg1} - for _, a := range arg2 { + varargs := []any{ctx, value} + for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "Unmarshal", varargs...) @@ -261,17 +276,17 @@ func (m *MockITraceConfig) Unmarshal(arg0 context.Context, arg1 any, arg2 ...con } // Unmarshal indicates an expected call of Unmarshal. -func (mr *MockITraceConfigMockRecorder) Unmarshal(arg0, arg1 any, arg2 ...any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) Unmarshal(ctx, value any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{arg0, arg1}, arg2...) + varargs := append([]any{ctx, value}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unmarshal", reflect.TypeOf((*MockITraceConfig)(nil).Unmarshal), varargs...) } // UnmarshalKey mocks base method. -func (m *MockITraceConfig) UnmarshalKey(arg0 context.Context, arg1 string, arg2 any, arg3 ...conf.DecodeOptionFn) error { +func (m *MockITraceConfig) UnmarshalKey(ctx context.Context, key string, value any, opts ...conf.DecodeOptionFn) error { m.ctrl.T.Helper() - varargs := []any{arg0, arg1, arg2} - for _, a := range arg3 { + varargs := []any{ctx, key, value} + for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "UnmarshalKey", varargs...) @@ -280,8 +295,8 @@ func (m *MockITraceConfig) UnmarshalKey(arg0 context.Context, arg1 string, arg2 } // UnmarshalKey indicates an expected call of UnmarshalKey. -func (mr *MockITraceConfigMockRecorder) UnmarshalKey(arg0, arg1, arg2 any, arg3 ...any) *gomock.Call { +func (mr *MockITraceConfigMockRecorder) UnmarshalKey(ctx, key, value any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{arg0, arg1, arg2}, arg3...) + varargs := append([]any{ctx, key, value}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnmarshalKey", reflect.TypeOf((*MockITraceConfig)(nil).UnmarshalKey), varargs...) } diff --git a/backend/modules/observability/domain/trace/entity/loop_span/filter.go b/backend/modules/observability/domain/trace/entity/loop_span/filter.go index 8978fe8d6..bef15eb80 100644 --- a/backend/modules/observability/domain/trace/entity/loop_span/filter.go +++ b/backend/modules/observability/domain/trace/entity/loop_span/filter.go @@ -47,6 +47,7 @@ const ( FieldTypeDouble FieldType = "double" FieldTypeBool FieldType = "bool" + PlatformDefault PlatformType = "default" PlatformCozeLoop PlatformType = "cozeloop" PlatformPrompt PlatformType = "prompt" PlatformEvaluator PlatformType = "evaluator" @@ -109,7 +110,7 @@ type FieldOptions struct { } type FilterObject interface { - GetFieldValue(fieldName string, isSystem bool) any + GetFieldValue(fieldName string, isSystem, isCustom bool) any } type FilterFields struct { @@ -193,6 +194,7 @@ type FilterField struct { QueryAndOr *QueryAndOrEnum `mapstructure:"query_and_or" json:"query_and_or"` SubFilter *FilterFields `mapstructure:"sub_filter" json:"sub_filter"` IsSystem bool `mapstructure:"is_system" json:"is_system"` + IsCustom bool `mapstructure:"is_custom" json:"is_custom"` Hidden bool `mapstructure:"hidden" json:"hidden"` } @@ -259,7 +261,7 @@ func (f *FilterField) Satisfied(obj FilterObject) bool { // 检测是否满足筛选条件 if f.FieldName != "" { // 不满足field过滤条件 - if !f.CheckValue(obj.GetFieldValue(f.FieldName, f.IsSystem)) { + if !f.CheckValue(obj.GetFieldValue(f.FieldName, f.IsSystem, f.IsCustom)) { if op == QueryAndOrEnumAnd { return false } diff --git a/backend/modules/observability/domain/trace/entity/loop_span/span.go b/backend/modules/observability/domain/trace/entity/loop_span/span.go index 4b7fbc865..a00f69d0e 100644 --- a/backend/modules/observability/domain/trace/entity/loop_span/span.go +++ b/backend/modules/observability/domain/trace/entity/loop_span/span.go @@ -225,7 +225,7 @@ func (s *Span) getStatus() string { } // filter使用, 当前只支持特定参数,后续有需要可拓展到其他参数 -func (s *Span) GetFieldValue(fieldName string, isSystem bool) any { +func (s *Span) GetFieldValue(fieldName string, isSystem, isCustom bool) any { switch fieldName { case SpanFieldStartTime: return s.StartTime @@ -262,6 +262,20 @@ func (s *Span) GetFieldValue(fieldName string, isSystem bool) any { case SpanFieldStatus: return s.getStatus() } + if isCustom { + if val, ok := s.TagsString[fieldName]; ok { + return val + } else if val, ok := s.TagsLong[fieldName]; ok { + return val + } else if val, ok := s.TagsDouble[fieldName]; ok { + return val + } else if val, ok := s.TagsBool[fieldName]; ok { + return val + } else if val, ok := s.TagsByte[fieldName]; ok { + return val + } + return nil + } if isSystem { if val, ok := s.SystemTagsString[fieldName]; ok { return val @@ -421,7 +435,7 @@ func (s *Span) ExtractByJsonpath(ctx context.Context, key string, jsonpath strin data = s.Output } else if strings.HasPrefix(key, "Tags.") { key = strings.TrimPrefix(key, "Tags.") - tag := s.GetFieldValue(key, false) + tag := s.GetFieldValue(key, false, false) data = conv.ToString(tag) } else { return "", errors.Errorf("unsupported mapping key: %s", key) diff --git a/backend/modules/observability/domain/trace/entity/loop_span/span_test.go b/backend/modules/observability/domain/trace/entity/loop_span/span_test.go index dc69365e9..3658eb082 100644 --- a/backend/modules/observability/domain/trace/entity/loop_span/span_test.go +++ b/backend/modules/observability/domain/trace/entity/loop_span/span_test.go @@ -13,6 +13,7 @@ import ( ) func TestSpan(t *testing.T) { + t.Parallel() span := &Span{ StartTime: 1234, TraceID: "123", @@ -71,30 +72,31 @@ func TestSpan(t *testing.T) { "x": "11", }, } - assert.Equal(t, span.GetFieldValue(SpanFieldTraceId, false), "123") - assert.Equal(t, span.GetFieldValue(SpanFieldSpanId, false), "456") - assert.Equal(t, span.GetFieldValue(SpanFieldPSM, false), "1") - assert.Equal(t, span.GetFieldValue(SpanFieldLogID, false), "2") - assert.Equal(t, span.GetFieldValue(SpanFieldCallType, false), "custom") - assert.Equal(t, span.GetFieldValue(SpanFieldDuration, false), int64(123)) - assert.Equal(t, span.GetFieldValue(SpanFieldStartTime, false), int64(1234)) - assert.Equal(t, span.GetFieldValue(SpanFieldParentID, false), "123456") - assert.Equal(t, span.GetFieldValue(SpanFieldSpaceId, false), "987") - assert.Equal(t, span.GetFieldValue(SpanFieldSpanType, false), "span_type") - assert.Equal(t, span.GetFieldValue(SpanFieldSpanName, false), "span_name") - assert.Equal(t, span.GetFieldValue(SpanFieldInput, false), "input") - assert.Equal(t, span.GetFieldValue(SpanFieldOutput, false), "output") - assert.Equal(t, span.GetFieldValue(SpanFieldMethod, false), "method") - assert.Equal(t, span.GetFieldValue(SpanFieldObjectStorage, false), "os") - assert.Equal(t, span.GetFieldValue("tag1", false), "1") - assert.Equal(t, span.GetFieldValue("tag2", false), int64(2)) - assert.Equal(t, span.GetFieldValue("tag3", false), 3.0) - assert.Equal(t, span.GetFieldValue("tag4", false), true) - assert.Equal(t, span.GetFieldValue("tag5", false), "12") - assert.Equal(t, span.GetFieldValue("tag6", true), nil) - assert.Equal(t, span.GetFieldValue("stag1", true), 0.0) - assert.Equal(t, span.GetFieldValue("stag2", true), "1") - assert.Equal(t, span.GetFieldValue("stag3", true), int64(2)) + assert.Equal(t, span.GetFieldValue(SpanFieldTraceId, false, false), "123") + assert.Equal(t, span.GetFieldValue(SpanFieldSpanId, false, false), "456") + assert.Equal(t, span.GetFieldValue(SpanFieldPSM, false, false), "1") + assert.Equal(t, span.GetFieldValue(SpanFieldLogID, false, false), "2") + assert.Equal(t, span.GetFieldValue(SpanFieldCallType, false, false), "custom") + assert.Equal(t, span.GetFieldValue(SpanFieldDuration, false, false), int64(123)) + assert.Equal(t, span.GetFieldValue(SpanFieldStartTime, false, false), int64(1234)) + assert.Equal(t, span.GetFieldValue(SpanFieldParentID, false, false), "123456") + assert.Equal(t, span.GetFieldValue(SpanFieldSpaceId, false, false), "987") + assert.Equal(t, span.GetFieldValue(SpanFieldSpanType, false, false), "span_type") + assert.Equal(t, span.GetFieldValue(SpanFieldSpanName, false, false), "span_name") + assert.Equal(t, span.GetFieldValue(SpanFieldInput, false, false), "input") + assert.Equal(t, span.GetFieldValue(SpanFieldOutput, false, false), "output") + assert.Equal(t, span.GetFieldValue(SpanFieldMethod, false, false), "method") + assert.Equal(t, span.GetFieldValue(SpanFieldObjectStorage, false, false), "os") + assert.Equal(t, span.GetFieldValue("tag1", false, false), "1") + assert.Equal(t, span.GetFieldValue("tag2", false, false), int64(2)) + assert.Equal(t, span.GetFieldValue("tag3", false, false), 3.0) + assert.Equal(t, span.GetFieldValue("tag4", false, false), true) + assert.Equal(t, span.GetFieldValue("tag5", false, false), "12") + assert.Equal(t, span.GetFieldValue("tag6", true, false), nil) + assert.Equal(t, span.GetFieldValue("stag1", true, false), 0.0) + assert.Equal(t, span.GetFieldValue("stag2", true, false), "1") + assert.Equal(t, span.GetFieldValue("stag3", true, false), int64(2)) + assert.Equal(t, span.GetFieldValue("tag1", false, true), "1") assert.Equal(t, span.IsValidSpan() != nil, true) assert.Equal(t, validSpan.IsValidSpan() == nil, true) assert.Equal(t, span.GetSystemTags(), map[string]string{"stag1": "0", "stag2": "1", "stag3": "2"}) @@ -127,6 +129,7 @@ func TestSpan(t *testing.T) { } func TestSpan_AddAnnotation(t *testing.T) { + t.Parallel() // 测试向空列表添加注解 span := &Span{ SpanID: "test-span-id", @@ -167,6 +170,7 @@ func TestSpan_AddAnnotation(t *testing.T) { } func TestSpan_AddManualDatasetAnnotation(t *testing.T) { + t.Parallel() span := &Span{ SpanID: "test-span-id", TraceID: "test-trace-id", @@ -210,6 +214,7 @@ func TestSpan_AddManualDatasetAnnotation(t *testing.T) { } func TestSpan_ExtractByJsonpath(t *testing.T) { + t.Parallel() ctx := context.Background() span := &Span{ @@ -308,6 +313,7 @@ func TestSpan_ExtractByJsonpath(t *testing.T) { // TestGetFieldValue_SystemTags tests the GetFieldValue method with system tags func TestGetFieldValue_SystemTags(t *testing.T) { + t.Parallel() span := &Span{ SystemTagsString: map[string]string{ "system_tag1": "system_value1", @@ -339,6 +345,7 @@ func TestGetFieldValue_SystemTags(t *testing.T) { name string fieldName string isSystem bool + isCustom bool want interface{} }{ // System tags tests @@ -371,36 +378,42 @@ func TestGetFieldValue_SystemTags(t *testing.T) { name: "get user string tag", fieldName: "user_tag1", isSystem: false, + isCustom: true, want: "user_value1", }, { name: "get user long tag", fieldName: "user_tag2", isSystem: false, + isCustom: true, want: int64(456), }, { name: "get user double tag", fieldName: "user_tag3", isSystem: false, + isCustom: true, want: 2.71, }, { name: "get user bool tag", fieldName: "user_tag4", isSystem: false, + isCustom: true, want: true, }, { name: "get user byte tag", fieldName: "user_tag5", isSystem: false, + isCustom: true, want: "byte_value", }, { name: "get non-existent user tag", fieldName: "non_existent", isSystem: false, + isCustom: true, want: nil, }, // System field should not return user tags @@ -408,6 +421,7 @@ func TestGetFieldValue_SystemTags(t *testing.T) { name: "system field should not return user tag", fieldName: "user_tag1", isSystem: true, + isCustom: false, want: nil, }, // User field should not return system tags @@ -415,13 +429,14 @@ func TestGetFieldValue_SystemTags(t *testing.T) { name: "user field should not return system tag", fieldName: "system_tag1", isSystem: false, + isCustom: false, want: nil, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got := span.GetFieldValue(tt.fieldName, tt.isSystem) + got := span.GetFieldValue(tt.fieldName, tt.isSystem, tt.isCustom) assert.Equal(t, tt.want, got) }) } @@ -429,6 +444,7 @@ func TestGetFieldValue_SystemTags(t *testing.T) { // TestSizeofSpans tests the SizeofSpans function func TestSizeofSpans(t *testing.T) { + t.Parallel() tests := []struct { name string spans SpanList @@ -570,6 +586,7 @@ func TestSizeofSpans(t *testing.T) { // TestSizeOfString tests the SizeOfString function func TestSizeOfString(t *testing.T) { + t.Parallel() tests := []struct { name string s string @@ -617,6 +634,7 @@ func TestSizeOfString(t *testing.T) { // TestSpan_GetFieldValue_AllFields tests GetFieldValue for all supported fields func TestSpan_GetFieldValue_AllFields(t *testing.T) { + t.Parallel() span := &Span{ StartTime: 1234567890, SpanID: "test-span-id", @@ -634,12 +652,16 @@ func TestSpan_GetFieldValue_AllFields(t *testing.T) { Input: "test-input", Output: "test-output", ObjectStorage: "test-object-storage", + TagsString: map[string]string{ + "custom_tag": "custom-value", + }, } tests := []struct { name string fieldName string isSystem bool + isCustom bool want interface{} }{ {name: "StartTime", fieldName: SpanFieldStartTime, isSystem: false, want: int64(1234567890)}, @@ -655,15 +677,17 @@ func TestSpan_GetFieldValue_AllFields(t *testing.T) { {name: "SpanType", fieldName: SpanFieldSpanType, isSystem: false, want: "test-span-type"}, {name: "Method", fieldName: SpanFieldMethod, isSystem: false, want: "test-method"}, {name: "StatusCode", fieldName: SpanFieldStatusCode, isSystem: false, want: int32(200)}, + {name: "Status", fieldName: SpanFieldStatus, isSystem: false, want: SpanStatusError}, {name: "Input", fieldName: SpanFieldInput, isSystem: false, want: "test-input"}, {name: "Output", fieldName: SpanFieldOutput, isSystem: false, want: "test-output"}, {name: "ObjectStorage", fieldName: SpanFieldObjectStorage, isSystem: false, want: "test-object-storage"}, + {name: "Custom tag with isCustom", fieldName: "custom_tag", isSystem: false, isCustom: true, want: "custom-value"}, {name: "Unknown field", fieldName: "unknown_field", isSystem: false, want: nil}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got := span.GetFieldValue(tt.fieldName, tt.isSystem) + got := span.GetFieldValue(tt.fieldName, tt.isSystem, tt.isCustom) assert.Equal(t, tt.want, got) }) } @@ -671,6 +695,7 @@ func TestSpan_GetFieldValue_AllFields(t *testing.T) { // TestSpanList_FilterModelSpans tests the FilterModelSpans method func TestSpanList_FilterModelSpans(t *testing.T) { + t.Parallel() tests := []struct { name string spans SpanList diff --git a/backend/modules/observability/domain/trace/entity/otel/otel_pb2json.go b/backend/modules/observability/domain/trace/entity/otel/otel_pb2json.go index 9182461d9..94827cc23 100644 --- a/backend/modules/observability/domain/trace/entity/otel/otel_pb2json.go +++ b/backend/modules/observability/domain/trace/entity/otel/otel_pb2json.go @@ -151,7 +151,7 @@ func OtelTraceRequestPbToJson(src *v3.ExportTraceServiceRequest) *ExportTraceSer ResourceSpans: make([]*ResourceSpans, 0, len(src.ResourceSpans)), } for _, rs := range src.ResourceSpans { - if rs == nil { + if rs == nil || rs.Resource == nil { continue } diff --git a/backend/modules/observability/domain/trace/repo/trace.go b/backend/modules/observability/domain/trace/repo/trace.go index c879d17fd..0e4c8a980 100644 --- a/backend/modules/observability/domain/trace/repo/trace.go +++ b/backend/modules/observability/domain/trace/repo/trace.go @@ -19,6 +19,8 @@ type GetTraceParam struct { NotQueryAnnotation bool SpanIDs []string OmitColumns []string // omit specific columns + SelectColumns []string // select specific columns, default select all columns + Filters *loop_span.FilterFields } type ListSpansParam struct { diff --git a/backend/modules/observability/domain/trace/service/trace/span_processor/clip_processor.go b/backend/modules/observability/domain/trace/service/trace/span_processor/clip_processor.go new file mode 100644 index 000000000..07b476b63 --- /dev/null +++ b/backend/modules/observability/domain/trace/service/trace/span_processor/clip_processor.go @@ -0,0 +1,134 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package span_processor + +import ( + "context" + "unicode/utf8" + + "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/entity/loop_span" + "github.com/coze-dev/coze-loop/backend/pkg/json" +) + +type ClipProcessor struct{} + +const ( + clipProcessorPlainTextMaxLength = 10 * 1024 + clipProcessorJSONValueMaxLength = 1 * 1024 + clipProcessorSuffix = "..." +) + +func (c *ClipProcessor) Transform(ctx context.Context, spans loop_span.SpanList) (loop_span.SpanList, error) { + for _, span := range spans { + if span == nil { + continue + } + span.Input = clipSpanField(span.Input) + span.Output = clipSpanField(span.Output) + } + return spans, nil +} + +type ClipProcessorFactory struct{} + +func (c *ClipProcessorFactory) CreateProcessor(ctx context.Context, set Settings) (Processor, error) { + return &ClipProcessor{}, nil +} + +func NewClipProcessorFactory() Factory { + return new(ClipProcessorFactory) +} + +func clipSpanField(content string) string { + if content == "" || len(content) <= clipProcessorPlainTextMaxLength { + return content + } + if clipped, ok := clipJSONContent(content); ok { + return clipped + } + return clipPlainText(content) +} + +func clipPlainText(content string) string { + if len(content) <= clipProcessorPlainTextMaxLength { + return content + } + return clipByByteLimit(content, clipProcessorPlainTextMaxLength) + clipProcessorSuffix +} + +func clipJSONValueString(content string) string { + if len(content) <= clipProcessorJSONValueMaxLength { + return content + } + return clipByByteLimit(content, clipProcessorJSONValueMaxLength) + clipProcessorSuffix +} + +func clipByByteLimit(content string, limit int) string { + if limit <= 0 { + return "" + } + if limit >= len(content) { + return content + } + cutoff := limit + for shift := 0; cutoff > 0 && shift < utf8.UTFMax && !utf8.RuneStart(content[cutoff]); shift++ { + cutoff-- + } + if cutoff == 0 { + return "" + } + return content[:cutoff] +} + +func clipJSONContent(content string) (string, bool) { + if !json.Valid([]byte(content)) { + return "", false + } + var data interface{} + if err := json.Unmarshal([]byte(content), &data); err != nil { + return "", false + } + clippedData, changed := clipJSONValue(data) + if !changed { + return "", false + } + clippedStr, err := json.MarshalString(clippedData) + if err != nil { + return "", false + } + return clippedStr, true +} + +func clipJSONValue(value interface{}) (interface{}, bool) { + switch val := value.(type) { + case map[string]interface{}: + changed := false + for key, v := range val { + newVal, subChanged := clipJSONValue(v) + if subChanged { + val[key] = newVal + changed = true + } + } + return val, changed + case []interface{}: + changed := false + for idx, v := range val { + newVal, subChanged := clipJSONValue(v) + if subChanged { + val[idx] = newVal + changed = true + } + } + return val, changed + case string: + clipped := clipJSONValueString(val) + if clipped != val { + return clipped, true + } + return val, false + default: + return val, false + } +} diff --git a/backend/modules/observability/domain/trace/service/trace/span_processor/clip_processor_test.go b/backend/modules/observability/domain/trace/service/trace/span_processor/clip_processor_test.go new file mode 100755 index 000000000..6b18a96f7 --- /dev/null +++ b/backend/modules/observability/domain/trace/service/trace/span_processor/clip_processor_test.go @@ -0,0 +1,255 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package span_processor + +import ( + "context" + "strings" + "testing" + "unicode/utf8" + + "github.com/stretchr/testify/require" + + "github.com/coze-dev/coze-loop/backend/modules/observability/domain/trace/entity/loop_span" + "github.com/coze-dev/coze-loop/backend/pkg/json" +) + +func TestClipProcessor_TransformPlainText(t *testing.T) { + processor := &ClipProcessor{} + content := strings.Repeat("a", clipProcessorPlainTextMaxLength+5) + spans := loop_span.SpanList{{Input: content}} + + res, err := processor.Transform(context.Background(), spans) + require.NoError(t, err) + require.Len(t, res, 1) + require.Equal(t, clipProcessorPlainTextMaxLength+len(clipProcessorSuffix), len(res[0].Input)) + require.True(t, strings.HasSuffix(res[0].Input, clipProcessorSuffix)) +} + +func TestClipProcessor_TransformJSONObject(t *testing.T) { + processor := &ClipProcessor{} + largeValue := strings.Repeat("b", clipProcessorPlainTextMaxLength+clipProcessorJSONValueMaxLength+10) + data := map[string]interface{}{ + "large": largeValue, + "normal": "ok", + } + content, err := json.MarshalString(data) + require.NoError(t, err) + spans := loop_span.SpanList{{Input: content}} + + res, err := processor.Transform(context.Background(), spans) + require.NoError(t, err) + require.Len(t, res, 1) + + var result map[string]interface{} + require.NoError(t, json.Unmarshal([]byte(res[0].Input), &result)) + clippedLarge, ok := result["large"].(string) + require.True(t, ok) + require.Equal(t, clipProcessorJSONValueMaxLength+len(clipProcessorSuffix), len(clippedLarge)) + require.True(t, strings.HasSuffix(clippedLarge, clipProcessorSuffix)) + require.True(t, strings.HasPrefix(clippedLarge, "b")) + require.Equal(t, "ok", result["normal"]) +} + +func TestClipProcessor_TransformJSONNestedObject(t *testing.T) { + processor := &ClipProcessor{} + largeValue := strings.Repeat("c", clipProcessorPlainTextMaxLength+clipProcessorJSONValueMaxLength+20) + data := map[string]interface{}{ + "nested": map[string]interface{}{ + "inner": largeValue, + }, + } + content, err := json.MarshalString(data) + require.NoError(t, err) + spans := loop_span.SpanList{{Input: content}} + + res, err := processor.Transform(context.Background(), spans) + require.NoError(t, err) + require.Len(t, res, 1) + + var result map[string]interface{} + require.NoError(t, json.Unmarshal([]byte(res[0].Input), &result)) + nested, ok := result["nested"].(map[string]interface{}) + require.True(t, ok) + inner, ok := nested["inner"].(string) + require.True(t, ok) + require.Equal(t, clipProcessorJSONValueMaxLength+len(clipProcessorSuffix), len(inner)) + require.True(t, strings.HasSuffix(inner, clipProcessorSuffix)) + require.True(t, strings.HasPrefix(inner, "c")) +} + +func TestClipProcessor_TransformJSONArray(t *testing.T) { + processor := &ClipProcessor{} + largeValue := strings.Repeat("d", clipProcessorPlainTextMaxLength+clipProcessorJSONValueMaxLength+30) + data := []interface{}{largeValue, "ok"} + content, err := json.MarshalString(data) + require.NoError(t, err) + spans := loop_span.SpanList{{Input: content}} + + res, err := processor.Transform(context.Background(), spans) + require.NoError(t, err) + require.Len(t, res, 1) + + var result []interface{} + require.NoError(t, json.Unmarshal([]byte(res[0].Input), &result)) + first, ok := result[0].(string) + require.True(t, ok) + require.Equal(t, clipProcessorJSONValueMaxLength+len(clipProcessorSuffix), len(first)) + require.True(t, strings.HasSuffix(first, clipProcessorSuffix)) + require.True(t, strings.HasPrefix(first, "d")) + require.Equal(t, "ok", result[1]) +} + +func TestClipProcessor_TransformJSONString(t *testing.T) { + processor := &ClipProcessor{} + largeValue := strings.Repeat("e", clipProcessorPlainTextMaxLength+clipProcessorJSONValueMaxLength+40) + content, err := json.MarshalString(largeValue) + require.NoError(t, err) + spans := loop_span.SpanList{{Input: content}} + + res, err := processor.Transform(context.Background(), spans) + require.NoError(t, err) + require.Len(t, res, 1) + + var result string + require.NoError(t, json.Unmarshal([]byte(res[0].Input), &result)) + require.Equal(t, clipProcessorJSONValueMaxLength+len(clipProcessorSuffix), len(result)) + require.True(t, strings.HasSuffix(result, clipProcessorSuffix)) + require.True(t, strings.HasPrefix(result, "e")) +} + +func TestClipProcessor_TransformJSONDeepNested(t *testing.T) { + processor := &ClipProcessor{} + largeValue := strings.Repeat("g", clipProcessorPlainTextMaxLength+clipProcessorJSONValueMaxLength+60) + data := map[string]interface{}{ + "levels": []interface{}{ + map[string]interface{}{ + "inner": []interface{}{largeValue, "ok"}, + }, + }, + } + content, err := json.MarshalString(data) + require.NoError(t, err) + spans := loop_span.SpanList{{Input: content}} + + res, err := processor.Transform(context.Background(), spans) + require.NoError(t, err) + require.Len(t, res, 1) + + var result map[string]interface{} + require.NoError(t, json.Unmarshal([]byte(res[0].Input), &result)) + levels, ok := result["levels"].([]interface{}) + require.True(t, ok) + require.Len(t, levels, 1) + innerMap, ok := levels[0].(map[string]interface{}) + require.True(t, ok) + innerArr, ok := innerMap["inner"].([]interface{}) + require.True(t, ok) + require.Len(t, innerArr, 2) + clippedInner, ok := innerArr[0].(string) + require.True(t, ok) + require.Equal(t, clipProcessorJSONValueMaxLength+len(clipProcessorSuffix), len(clippedInner)) + require.True(t, strings.HasSuffix(clippedInner, clipProcessorSuffix)) + require.Equal(t, "ok", innerArr[1]) +} + +func TestClipProcessor_TransformOutputPlainText(t *testing.T) { + processor := &ClipProcessor{} + content := strings.Repeat("f", clipProcessorPlainTextMaxLength+50) + spans := loop_span.SpanList{{Output: content}} + + res, err := processor.Transform(context.Background(), spans) + require.NoError(t, err) + require.Len(t, res, 1) + require.Equal(t, clipProcessorPlainTextMaxLength+len(clipProcessorSuffix), len(res[0].Output)) + require.True(t, strings.HasSuffix(res[0].Output, clipProcessorSuffix)) +} + +func TestClipByByteLimit_EdgeCases(t *testing.T) { + content := "abc你好" + require.Equal(t, "", clipByByteLimit(content, 0)) + require.Equal(t, "", clipByByteLimit(content, -1)) + require.Equal(t, content, clipByByteLimit(content, len(content))) + require.Equal(t, "abc你", clipByByteLimit(content, len("abc你"))) + require.Equal(t, "abc你", clipByByteLimit(content, len("abc你")+1)) + require.Equal(t, "", clipByByteLimit("你好", 1)) +} + +func TestClipPlainText_UTF8Validity(t *testing.T) { + content := strings.Repeat("只能制定计划让执行代理分析代码仓库结构并根据实际情况进行分析。", 400) + clipped := clipPlainText(content) + require.True(t, strings.HasSuffix(clipped, clipProcessorSuffix)) + require.False(t, strings.Contains(clipped, "\ufffd")) + require.True(t, strings.HasPrefix(clipped, "只能制定计划")) + require.True(t, utf8.ValidString(clipped)) +} + +func TestClipSpanField_JSONFallback(t *testing.T) { + data := map[string]interface{}{ + "message": strings.Repeat("好", clipProcessorPlainTextMaxLength+clipProcessorJSONValueMaxLength+20), + } + raw, err := json.MarshalString(data) + require.NoError(t, err) + result := clipSpanField(raw) + require.True(t, json.Valid([]byte(result))) + require.NotContains(t, result, "\ufffd") + + var parsed map[string]string + require.NoError(t, json.Unmarshal([]byte(result), &parsed)) + require.True(t, strings.HasSuffix(parsed["message"], clipProcessorSuffix)) + require.True(t, strings.HasPrefix(parsed["message"], "好")) +} + +func TestClipSpanField_NonJSON(t *testing.T) { + content := strings.Repeat("目标风", 4000) + result := clipSpanField(content) + require.True(t, strings.HasSuffix(result, clipProcessorSuffix)) + require.NotContains(t, result, "\ufffd") +} + +func TestClipSpanField_ShortContent(t *testing.T) { + content := "short" + require.Equal(t, content, clipSpanField(content)) +} + +func TestClipJSONContent_Invalid(t *testing.T) { + clipped, ok := clipJSONContent("not-json") + require.False(t, ok) + require.Equal(t, "", clipped) +} + +func TestClipJSONContent_NoChange(t *testing.T) { + data := []string{"foo", "bar"} + raw, err := json.MarshalString(data) + require.NoError(t, err) + clipped, ok := clipJSONContent(raw) + require.False(t, ok) + require.Equal(t, "", clipped) +} + +func TestClipProcessor_TransformSkipNil(t *testing.T) { + processor := &ClipProcessor{} + spans := loop_span.SpanList{ + nil, + {Input: "short"}, + } + res, err := processor.Transform(context.Background(), spans) + require.NoError(t, err) + require.Len(t, res, 2) + require.Nil(t, res[0]) + require.Equal(t, "short", res[1].Input) +} + +func TestClipProcessorFactory(t *testing.T) { + factory := NewClipProcessorFactory() + processor, err := factory.CreateProcessor(context.Background(), Settings{}) + require.NoError(t, err) + require.IsType(t, &ClipProcessor{}, processor) +} + +func TestClipJSONValue_DefaultBranch(t *testing.T) { + res, changed := clipJSONValue(float64(123.456)) + require.Equal(t, float64(123.456), res) + require.False(t, changed) +} diff --git a/backend/modules/observability/domain/trace/service/trace/span_processor/processor.go b/backend/modules/observability/domain/trace/service/trace/span_processor/processor.go index 465542a9c..f7f2bb5cd 100644 --- a/backend/modules/observability/domain/trace/service/trace/span_processor/processor.go +++ b/backend/modules/observability/domain/trace/service/trace/span_processor/processor.go @@ -16,7 +16,10 @@ type Settings struct { PlatformType loop_span.PlatformType QueryStartTime int64 // ms QueryEndTime int64 // ms - Tenant string + QueryTenants []string + SpanDoubleCheck bool + QueryTraceID string + QueryLogID string } type Factory interface { diff --git a/backend/modules/observability/domain/trace/service/trace_service.go b/backend/modules/observability/domain/trace/service/trace_service.go index f2667906c..7f2bfb137 100644 --- a/backend/modules/observability/domain/trace/service/trace_service.go +++ b/backend/modules/observability/domain/trace/service/trace_service.go @@ -68,6 +68,8 @@ type GetTraceReq struct { EndTime int64 // ms PlatformType loop_span.PlatformType SpanIDs []string + WithDetail bool + Filters *loop_span.FilterFields } type GetTraceResp struct { @@ -84,7 +86,10 @@ type SearchTraceOApiReq struct { StartTime int64 // ms EndTime int64 // ms Limit int32 + SpanIDs []string PlatformType loop_span.PlatformType + WithDetail bool + Filters *loop_span.FilterFields } type SearchTraceOApiResp struct { @@ -146,7 +151,8 @@ type GetTracesMetaInfoReq struct { } type GetTracesMetaInfoResp struct { - FilesMetas map[string]*config.FieldMeta + FilesMetas map[string]*config.FieldMeta + KeySpanTypeList []string } type CreateAnnotationReq struct { @@ -299,29 +305,49 @@ type TraceServiceImpl struct { } func (r *TraceServiceImpl) GetTrace(ctx context.Context, req *GetTraceReq) (*GetTraceResp, error) { + if req != nil && req.Filters != nil { + if err := req.Filters.Traverse(processSpecificFilter); err != nil { + return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("invalid filter")) + } + } + tenants, err := r.getTenants(ctx, req.PlatformType) if err != nil { return nil, err } + omitColumns := make([]string, 0) + if !req.WithDetail { + omitColumns = []string{"input", "output"} + } st := time.Now() + limit := int32(1000) + if !req.WithDetail { + limit = 10000 + } spans, err := r.traceRepo.GetTrace(ctx, &repo.GetTraceParam{ - Tenants: tenants, - LogID: req.LogID, - TraceID: req.TraceID, - StartAt: req.StartTime, - EndAt: req.EndTime, - Limit: 1000, - SpanIDs: req.SpanIDs, + Tenants: tenants, + LogID: req.LogID, + TraceID: req.TraceID, + StartAt: req.StartTime, + EndAt: req.EndTime, + Limit: limit, + SpanIDs: req.SpanIDs, + Filters: req.Filters, + OmitColumns: omitColumns, }) r.metrics.EmitGetTrace(req.WorkspaceID, st, err != nil) if err != nil { return nil, err } processors, err := r.buildHelper.BuildGetTraceProcessors(ctx, span_processor.Settings{ - WorkspaceId: req.WorkspaceID, - PlatformType: req.PlatformType, - QueryStartTime: req.StartTime, - QueryEndTime: req.EndTime, + WorkspaceId: req.WorkspaceID, + PlatformType: req.PlatformType, + QueryStartTime: req.StartTime, + QueryEndTime: req.EndTime, + SpanDoubleCheck: len(req.SpanIDs) > 0 || (req.Filters != nil && len(req.Filters.FilterFields) > 0), + QueryTenants: tenants, + QueryLogID: req.LogID, + QueryTraceID: req.TraceID, }) if err != nil { return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInternalErrorCodeCode) @@ -378,6 +404,7 @@ func (r *TraceServiceImpl) ListSpans(ctx context.Context, req *ListSpansReq) (*L PlatformType: req.PlatformType, QueryStartTime: req.StartTime, QueryEndTime: req.EndTime, + QueryTenants: tenants, }) if err != nil { return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInternalErrorCodeCode) @@ -396,14 +423,28 @@ func (r *TraceServiceImpl) ListSpans(ctx context.Context, req *ListSpansReq) (*L } func (r *TraceServiceImpl) SearchTraceOApi(ctx context.Context, req *SearchTraceOApiReq) (*SearchTraceOApiResp, error) { + if req != nil && req.Filters != nil { + if err := req.Filters.Traverse(processSpecificFilter); err != nil { + return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("invalid filter")) + } + } + + omitColumns := make([]string, 0) + if !req.WithDetail { + omitColumns = []string{"input", "output"} + } + spans, err := r.traceRepo.GetTrace(ctx, &repo.GetTraceParam{ Tenants: req.Tenants, TraceID: req.TraceID, LogID: req.LogID, + SpanIDs: req.SpanIDs, StartAt: req.StartTime, EndAt: req.EndTime, Limit: req.Limit, NotQueryAnnotation: false, + Filters: req.Filters, + OmitColumns: omitColumns, }) if err != nil { return nil, err @@ -414,6 +455,10 @@ func (r *TraceServiceImpl) SearchTraceOApi(ctx context.Context, req *SearchTrace QueryStartTime: req.StartTime, QueryEndTime: req.EndTime, PlatformType: req.PlatformType, + SpanDoubleCheck: req.Filters != nil && len(req.Filters.FilterFields) > 0, + QueryTenants: req.Tenants, + QueryTraceID: req.TraceID, + QueryLogID: req.LogID, }) if err != nil { return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInternalErrorCodeCode) @@ -467,6 +512,7 @@ func (r *TraceServiceImpl) ListSpansOApi(ctx context.Context, req *ListSpansOApi WorkspaceId: req.WorkspaceID, QueryStartTime: req.StartTime, QueryEndTime: req.EndTime, + QueryTenants: req.Tenants, }) if err != nil { return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInternalErrorCodeCode) @@ -485,9 +531,7 @@ func (r *TraceServiceImpl) ListSpansOApi(ctx context.Context, req *ListSpansOApi } func (r *TraceServiceImpl) IngestTraces(ctx context.Context, req *IngestTracesReq) error { - processors, err := r.buildHelper.BuildIngestTraceProcessors(ctx, span_processor.Settings{ - Tenant: req.Tenant, - }) + processors, err := r.buildHelper.BuildIngestTraceProcessors(ctx, span_processor.Settings{}) if err != nil { return errorx.WrapByCode(err, obErrorx.CommercialCommonInternalErrorCodeCode) } @@ -594,20 +638,41 @@ func (r *TraceServiceImpl) GetTracesMetaInfo(ctx context.Context, req *GetTraces if err != nil { return nil, errorx.WrapByCode(err, obErrorx.CommercialCommonInternalErrorCodeCode) } + baseFields, ok := cfg.FieldMetas[loop_span.PlatformDefault][req.SpanListType] + if !ok { + return nil, errorx.NewByCode(obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("base meta info not found")) + } + fields, ok := cfg.FieldMetas[req.PlatformType][req.SpanListType] if !ok { - return nil, errorx.NewByCode(obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("meta info not found")) + logs.CtxWarn(ctx, "FieldMetas not found: %v-%v", req.PlatformType, req.SpanListType) } fieldMetas := make(map[string]*config.FieldMeta) + for _, field := range baseFields { + fieldMta, ok := cfg.AvailableFields[field] + if !ok || fieldMta == nil { + logs.CtxError(ctx, "GetTracesMetaInfo invalid field: %v", field) + return nil, errorx.NewByCode(obErrorx.CommercialCommonInternalErrorCodeCode) + } + fieldMetas[field] = fieldMta + } for _, field := range fields { fieldMta, ok := cfg.AvailableFields[field] if !ok || fieldMta == nil { + logs.CtxError(ctx, "GetTracesMetaInfo invalid field: %v", field) return nil, errorx.NewByCode(obErrorx.CommercialCommonInternalErrorCodeCode) } fieldMetas[field] = fieldMta } + + spanTypeCfg := r.traceConfig.GetKeySpanTypes(ctx) + keySpanTypes, ok := spanTypeCfg[string(req.PlatformType)] + if !ok { + keySpanTypes = spanTypeCfg[string(loop_span.PlatformDefault)] + } return &GetTracesMetaInfoResp{ - FilesMetas: fieldMetas, + FilesMetas: fieldMetas, + KeySpanTypeList: keySpanTypes, }, nil } diff --git a/backend/modules/observability/domain/trace/service/trace_service_test.go b/backend/modules/observability/domain/trace/service/trace_service_test.go index 3ce391511..e66bca359 100644 --- a/backend/modules/observability/domain/trace/service/trace_service_test.go +++ b/backend/modules/observability/domain/trace/service/trace_service_test.go @@ -381,15 +381,22 @@ func TestTraceServiceImpl_GetTracesMetaInfo(t *testing.T) { confMock := confmocks.NewMockITraceConfig(ctrl) confMock.EXPECT().GetTraceFieldMetaInfo(gomock.Any()).Return(&config.TraceFieldMetaInfoCfg{ FieldMetas: map[loop_span.PlatformType]map[loop_span.SpanListType][]string{ - loop_span.PlatformCozeLoop: { + loop_span.PlatformDefault: { loop_span.SpanListTypeAllSpan: {"field1", "field2"}, }, + loop_span.PlatformCozeLoop: { + loop_span.SpanListTypeAllSpan: {}, + }, }, AvailableFields: map[string]*config.FieldMeta{ "field1": {FieldType: "string"}, "field2": {FieldType: "int"}, }, }, nil) + confMock.EXPECT().GetKeySpanTypes(gomock.Any()).Return(map[string][]string{ + string(loop_span.PlatformDefault): {}, + string(loop_span.PlatformCozeLoop): {}, + }) tenantProviderMock := tenantmocks.NewMockITenantProvider(ctrl) tenantProviderMock.EXPECT().GetTenantsByPlatformType(gomock.Any(), gomock.Any()).Return([]string{"spans"}, nil).AnyTimes() filterFactoryMock := filtermocks.NewMockPlatformFilterFactory(ctrl) @@ -413,6 +420,7 @@ func TestTraceServiceImpl_GetTracesMetaInfo(t *testing.T) { "field1": {FieldType: "string"}, "field2": {FieldType: "int"}, }, + KeySpanTypeList: []string{}, }, }, { @@ -458,8 +466,12 @@ func TestTraceServiceImpl_GetTracesMetaInfo(t *testing.T) { fields.taskRepo, ) got, err := r.GetTracesMetaInfo(tt.args.ctx, tt.args.req) - assert.Equal(t, tt.wantErr, err != nil) - assert.Equal(t, got, tt.want) + if tt.wantErr { + assert.Error(t, err) + } else { + assert.NoError(t, err) + assert.Equal(t, tt.want, got) + } }) } } @@ -2725,10 +2737,13 @@ func TestTraceServiceImpl_SearchTraceOApi(t *testing.T) { Tenants: []string{"tenant1"}, TraceID: "trace-123", LogID: "", + SpanIDs: nil, StartAt: 1640995200000, EndAt: 1640995800000, Limit: 100, NotQueryAnnotation: false, + Filters: nil, + OmitColumns: []string{"input", "output"}, }).Return(loop_span.SpanList{ { TraceID: "trace-123", @@ -2884,6 +2899,59 @@ func TestTraceServiceImpl_ListSpansOApi(t *testing.T) { } } +func TestTraceFilterProcessorBuilderImpl_BuildListSpansOApiProcessors(t *testing.T) { + tests := []struct { + name string + listSpansOApiProcessorFactories []span_processor.Factory + want int + wantErr bool + }{ + { + name: "build processors successfully with empty factories", + listSpansOApiProcessorFactories: []span_processor.Factory{}, + want: 0, + wantErr: false, + }, + { + name: "build processors successfully with multiple factories", + listSpansOApiProcessorFactories: []span_processor.Factory{ + span_processor.NewCheckProcessorFactory(), + span_processor.NewCheckProcessorFactory(), + }, + want: 2, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + filterFactoryMock := filtermocks.NewMockPlatformFilterFactory(ctrl) + builder := NewTraceFilterProcessorBuilder( + filterFactoryMock, + nil, + nil, + nil, + nil, + nil, + tt.listSpansOApiProcessorFactories, + ) + + got, err := builder.BuildListSpansOApiProcessors(context.Background(), span_processor.Settings{ + WorkspaceId: 123, + QueryStartTime: 1640995200000, + QueryEndTime: 1640995800000, + }) + + assert.Equal(t, tt.wantErr, err != nil) + if !tt.wantErr { + assert.Equal(t, tt.want, len(got)) + } + }) + } +} + func TestTraceServiceImpl_ChangeEvaluatorScore(t *testing.T) { type fields struct { traceRepo repo.ITraceRepo @@ -3323,6 +3391,55 @@ func TestTraceServiceImpl_ChangeEvaluatorScore(t *testing.T) { } } +func TestTraceFilterProcessorBuilderImpl_BuildIngestTraceProcessors_ErrorHandling(t *testing.T) { + tests := []struct { + name string + ingestTraceProcessorFactories []span_processor.Factory + want int + wantErr bool + }{ + { + name: "build ingest processors successfully with empty factories", + ingestTraceProcessorFactories: []span_processor.Factory{}, + want: 0, + wantErr: false, + }, + { + name: "build ingest processors successfully with multiple factories", + ingestTraceProcessorFactories: []span_processor.Factory{ + span_processor.NewCheckProcessorFactory(), + }, + want: 1, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + filterFactoryMock := filtermocks.NewMockPlatformFilterFactory(ctrl) + + builder := NewTraceFilterProcessorBuilder( + filterFactoryMock, + nil, + nil, + nil, + tt.ingestTraceProcessorFactories, + nil, + nil, + ) + + got, err := builder.BuildIngestTraceProcessors(context.Background(), span_processor.Settings{}) + + assert.Equal(t, tt.wantErr, err != nil) + if !tt.wantErr { + assert.Equal(t, tt.want, len(got)) + } + }) + } +} + func TestTraceServiceImpl_correctEvaluatorRecords(t *testing.T) { type testCase struct { name string @@ -3422,6 +3539,58 @@ func TestTraceServiceImpl_correctEvaluatorRecords(t *testing.T) { } } +func TestTraceFilterProcessorBuilderImpl_BuildSearchTraceOApiProcessors_ErrorHandling(t *testing.T) { + tests := []struct { + name string + searchTraceOApiProcessorFactories []span_processor.Factory + want int + wantErr bool + }{ + { + name: "build search trace oapi processors successfully with empty factories", + searchTraceOApiProcessorFactories: []span_processor.Factory{}, + want: 0, + wantErr: false, + }, + { + name: "build search trace oapi processors successfully with multiple factories", + searchTraceOApiProcessorFactories: []span_processor.Factory{ + span_processor.NewCheckProcessorFactory(), + }, + want: 1, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + filterFactoryMock := filtermocks.NewMockPlatformFilterFactory(ctrl) + builder := NewTraceFilterProcessorBuilder( + filterFactoryMock, + nil, + nil, + nil, + nil, + tt.searchTraceOApiProcessorFactories, + nil, + ) + + got, err := builder.BuildSearchTraceOApiProcessors(context.Background(), span_processor.Settings{ + WorkspaceId: 123, + QueryStartTime: 1640995200000, + QueryEndTime: 1640995800000, + }) + + assert.Equal(t, tt.wantErr, err != nil) + if !tt.wantErr { + assert.Equal(t, tt.want, len(got)) + } + }) + } +} + func TestTraceServiceImpl_ListAnnotationEvaluators(t *testing.T) { type fields struct { taskRepo taskRepo.ITaskRepo diff --git a/backend/modules/observability/infra/collector/event_collector.go b/backend/modules/observability/infra/collector/event_collector.go new file mode 100644 index 000000000..a6e925e9e --- /dev/null +++ b/backend/modules/observability/infra/collector/event_collector.go @@ -0,0 +1,19 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 +package collector + +import ( + "context" + "time" + + "github.com/coze-dev/coze-loop/backend/modules/observability/domain/component/collector" +) + +type EventCollectorProviderImpl struct{} + +func NewEventCollectorProvider() collector.ICollectorProvider { + return &EventCollectorProviderImpl{} +} + +func (p *EventCollectorProviderImpl) CollectTraceOpenAPIEvent(ctx context.Context, method string, workspaceId int64, platformType, spanListType string, spanSize int64, errorCode int, start time.Time, isError bool) { +} diff --git a/backend/modules/observability/infra/config/trace.go b/backend/modules/observability/infra/config/trace.go index cb2b0b509..d5f3923e3 100644 --- a/backend/modules/observability/infra/config/trace.go +++ b/backend/modules/observability/infra/config/trace.go @@ -24,6 +24,7 @@ const ( traceMaxDurationDay = "trace_max_duration_day" annotationSourceCfgKey = "annotation_source_cfg" queryTraceRateLimitCfgKey = "query_trace_rate_limit_config" + keySpanTypeCfgKey = "key_span_type" backfillMqProducerCfgKey = "backfill_mq_producer_config" ) @@ -160,6 +161,14 @@ func (t *TraceConfigCenter) GetQueryMaxQPS(ctx context.Context, key string) (int return qpsConfig.DefaultMaxQPS, nil } +func (t *TraceConfigCenter) GetKeySpanTypes(ctx context.Context) map[string][]string { + keyColumns := make(map[string][]string) + if err := t.UnmarshalKey(ctx, keySpanTypeCfgKey, &keyColumns); err != nil { + return keyColumns + } + return keyColumns +} + func NewTraceConfigCenter(confP conf.IConfigLoader) config.ITraceConfig { ret := &TraceConfigCenter{ IConfigLoader: confP, diff --git a/backend/modules/observability/infra/config/trace_test.go b/backend/modules/observability/infra/config/trace_test.go index 999e53ba6..86628368c 100755 --- a/backend/modules/observability/infra/config/trace_test.go +++ b/backend/modules/observability/infra/config/trace_test.go @@ -903,6 +903,64 @@ func TestTraceConfigCenter_GetQueryMaxQPS(t *testing.T) { } } +func TestTraceConfigCenter_GetKeySpanTypes(t *testing.T) { + type fields struct { + configLoader *confmocks.MockIConfigLoader + } + type args struct { + ctx context.Context + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + want map[string][]string + }{ + { + name: "get key span types successfully", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockLoader := confmocks.NewMockIConfigLoader(ctrl) + mockLoader.EXPECT().UnmarshalKey(gomock.Any(), keySpanTypeCfgKey, gomock.Any()). + DoAndReturn(func(ctx context.Context, key string, v interface{}, opts ...interface{}) error { + cfg := v.(*map[string][]string) + (*cfg)["coze"] = []string{ + "select", "insert", + } + return nil + }) + return fields{configLoader: mockLoader} + }, + args: args{ctx: context.Background()}, + want: map[string][]string{ + "coze": {"select", "insert"}, + }, + }, + { + name: "unmarshal key failed, return empty map", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockLoader := confmocks.NewMockIConfigLoader(ctrl) + mockLoader.EXPECT().UnmarshalKey(gomock.Any(), keySpanTypeCfgKey, gomock.Any()). + Return(fmt.Errorf("unmarshal error")) + return fields{configLoader: mockLoader} + }, + args: args{ctx: context.Background()}, + want: map[string][]string{}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + f := tt.fieldsGetter(ctrl) + tr := &TraceConfigCenter{ + IConfigLoader: f.configLoader, + } + got := tr.GetKeySpanTypes(tt.args.ctx) + assert.Equal(t, tt.want, got) + }) + } +} + func TestNewTraceConfigCenter(t *testing.T) { type args struct { confP *confmocks.MockIConfigLoader diff --git a/backend/modules/observability/infra/repo/ck/common.go b/backend/modules/observability/infra/repo/ck/common.go new file mode 100644 index 000000000..1f5969601 --- /dev/null +++ b/backend/modules/observability/infra/repo/ck/common.go @@ -0,0 +1,22 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 +package ck + +import "github.com/samber/lo" + +func getColumnStr(columns []string, omits []string) string { + omitMap := lo.Associate(omits, func(omit string) (string, bool) { + return omit, true + }) + result := "" + for _, c := range columns { + if omitMap[c] { + continue + } + if result != "" { + result += ", " + } + result += c + } + return result +} diff --git a/backend/modules/observability/infra/repo/ck/spans.go b/backend/modules/observability/infra/repo/ck/spans.go index 7385bb872..d5c906c2a 100644 --- a/backend/modules/observability/infra/repo/ck/spans.go +++ b/backend/modules/observability/infra/repo/ck/spans.go @@ -20,6 +20,7 @@ import ( obErrorx "github.com/coze-dev/coze-loop/backend/modules/observability/pkg/errno" "github.com/coze-dev/coze-loop/backend/pkg/errorx" "github.com/coze-dev/coze-loop/backend/pkg/logs" + "github.com/samber/lo" ) const ( @@ -36,6 +37,7 @@ type QueryParam struct { Filters *loop_span.FilterFields Limit int32 OrderByStartTime bool + SelectColumns []string OmitColumns []string // omit specific columns } @@ -133,8 +135,13 @@ func (s *SpansCkDaoImpl) buildSingleSql(ctx context.Context, db *gorm.DB, tableN if err != nil { return nil, err } + queryColumns := lo.Ternary( + len(param.SelectColumns) == 0, + getColumnStr(spanColumns, param.OmitColumns), + getColumnStr(param.SelectColumns, param.OmitColumns), + ) sqlQuery = db. - Table(tableName). + Table(tableName).Select(queryColumns). Where(sqlQuery). Where("start_time >= ?", param.StartTime). Where("start_time <= ?", param.EndTime) @@ -279,10 +286,37 @@ func (s *SpansCkDaoImpl) getSuperFieldsMap(ctx context.Context) map[string]bool return defSuperFieldsMap } +// convertFieldName IsCustom > IsSystem > superField, default custom func (s *SpansCkDaoImpl) convertFieldName(ctx context.Context, filter *loop_span.FilterField) (string, error) { if !isSafeColumnName(filter.FieldName) { return "", fmt.Errorf("filter field name %s is not safe", filter.FieldName) } + if filter.IsCustom { + switch filter.FieldType { + case loop_span.FieldTypeString: + return fmt.Sprintf("tags_string['%s']", filter.FieldName), nil + case loop_span.FieldTypeLong: + return fmt.Sprintf("tags_long['%s']", filter.FieldName), nil + case loop_span.FieldTypeDouble: + return fmt.Sprintf("tags_float['%s']", filter.FieldName), nil + case loop_span.FieldTypeBool: + return fmt.Sprintf("tags_bool['%s']", filter.FieldName), nil + default: // not expected to be here + return fmt.Sprintf("tags_string['%s']", filter.FieldName), nil + } + } + if filter.IsSystem { + switch filter.FieldType { + case loop_span.FieldTypeString: + return fmt.Sprintf("system_tags_string['%s']", filter.FieldName), nil + case loop_span.FieldTypeLong: + return fmt.Sprintf("system_tags_long['%s']", filter.FieldName), nil + case loop_span.FieldTypeDouble: + return fmt.Sprintf("system_tags_float['%s']", filter.FieldName), nil + default: // not expected to be here + return fmt.Sprintf("system_tags_string['%s']", filter.FieldName), nil + } + } superFieldsMap := s.getSuperFieldsMap(ctx) if superFieldsMap[filter.FieldName] { return quoteSQLName(filter.FieldName), nil @@ -380,6 +414,35 @@ func quoteSQLName(data string) string { return buf.String() } +var spanColumns = []string{ + "start_time", + "logid", + "span_id", + "trace_id", + "parent_id", + "duration", + "psm", + "call_type", + "space_id", + "span_type", + "span_name", + "method", + "status_code", + "input", + "output", + "object_storage", + "system_tags_string", + "system_tags_long", + "system_tags_float", + "tags_string", + "tags_long", + "tags_bool", + "tags_float", + "tags_byte", + "reserve_create_time", + "logic_delete_date", +} + var defSuperFieldsMap = map[string]bool{ loop_span.SpanFieldStartTime: true, loop_span.SpanFieldSpanId: true, @@ -399,6 +462,7 @@ var defSuperFieldsMap = map[string]bool{ loop_span.SpanFieldObjectStorage: true, loop_span.SpanFieldLogicDeleteDate: true, } + var validColumnRegex = regexp.MustCompile(`^[a-zA-Z_][a-zA-Z0-9_]*$`) func isSafeColumnName(name string) bool { diff --git a/backend/modules/observability/infra/repo/ck/spans_test.go b/backend/modules/observability/infra/repo/ck/spans_test.go index efa17e7fe..bc2a4dc72 100644 --- a/backend/modules/observability/infra/repo/ck/spans_test.go +++ b/backend/modules/observability/infra/repo/ck/spans_test.go @@ -17,6 +17,177 @@ import ( "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" ) +func TestSpansCkDaoImpl_convertFieldName(t *testing.T) { + t.Parallel() + + dao := &SpansCkDaoImpl{} + ctx := context.Background() + + type testCase struct { + name string + filter *loop_span.FilterField + want string + wantErr bool + } + + testCases := []testCase{ + { + name: "invalid field name", + filter: &loop_span.FilterField{ + FieldName: "invalid-name", + FieldType: loop_span.FieldTypeString, + IsCustom: true, + }, + wantErr: true, + }, + { + name: "custom string field", + filter: &loop_span.FilterField{ + FieldName: "custom_str", + FieldType: loop_span.FieldTypeString, + IsCustom: true, + }, + want: "tags_string['custom_str']", + }, + { + name: "custom long field", + filter: &loop_span.FilterField{ + FieldName: "custom_long", + FieldType: loop_span.FieldTypeLong, + IsCustom: true, + }, + want: "tags_long['custom_long']", + }, + { + name: "custom double field", + filter: &loop_span.FilterField{ + FieldName: "custom_double", + FieldType: loop_span.FieldTypeDouble, + IsCustom: true, + }, + want: "tags_float['custom_double']", + }, + { + name: "custom bool field", + filter: &loop_span.FilterField{ + FieldName: "custom_bool", + FieldType: loop_span.FieldTypeBool, + IsCustom: true, + }, + want: "tags_bool['custom_bool']", + }, + { + name: "custom fallback field type", + filter: &loop_span.FilterField{ + FieldName: "custom_unknown", + FieldType: loop_span.FieldType("unknown"), + IsCustom: true, + }, + want: "tags_string['custom_unknown']", + }, + { + name: "system string field", + filter: &loop_span.FilterField{ + FieldName: "system_str", + FieldType: loop_span.FieldTypeString, + IsSystem: true, + }, + want: "system_tags_string['system_str']", + }, + { + name: "system long field", + filter: &loop_span.FilterField{ + FieldName: "system_long", + FieldType: loop_span.FieldTypeLong, + IsSystem: true, + }, + want: "system_tags_long['system_long']", + }, + { + name: "system double field", + filter: &loop_span.FilterField{ + FieldName: "system_double", + FieldType: loop_span.FieldTypeDouble, + IsSystem: true, + }, + want: "system_tags_float['system_double']", + }, + { + name: "system fallback field type", + filter: &loop_span.FilterField{ + FieldName: "system_unknown", + FieldType: loop_span.FieldTypeBool, + IsSystem: true, + }, + want: "system_tags_string['system_unknown']", + }, + { + name: "super field", + filter: &loop_span.FilterField{ + FieldName: loop_span.SpanFieldDuration, + FieldType: loop_span.FieldTypeLong, + }, + want: "`duration`", + }, + { + name: "default string field", + filter: &loop_span.FilterField{ + FieldName: "default_str", + FieldType: loop_span.FieldTypeString, + }, + want: "tags_string['default_str']", + }, + { + name: "default long field", + filter: &loop_span.FilterField{ + FieldName: "default_long", + FieldType: loop_span.FieldTypeLong, + }, + want: "tags_long['default_long']", + }, + { + name: "default double field", + filter: &loop_span.FilterField{ + FieldName: "default_double", + FieldType: loop_span.FieldTypeDouble, + }, + want: "tags_float['default_double']", + }, + { + name: "default bool field", + filter: &loop_span.FilterField{ + FieldName: "default_bool", + FieldType: loop_span.FieldTypeBool, + }, + want: "tags_bool['default_bool']", + }, + { + name: "default fallback field type", + filter: &loop_span.FilterField{ + FieldName: "default_unknown", + FieldType: loop_span.FieldType("unknown"), + }, + want: "tags_string['default_unknown']", + }, + } + + for _, tc := range testCases { + tc := tc + t.Run(tc.name, func(t *testing.T) { + t.Parallel() + + got, err := dao.convertFieldName(ctx, tc.filter) + if tc.wantErr { + assert.Error(t, err) + return + } + + assert.NoError(t, err) + assert.Equal(t, tc.want, got) + }) + } +} + func TestBuildSql(t *testing.T) { sqlDB, _, err := sqlmock.New() if err != nil { @@ -99,7 +270,7 @@ func TestBuildSql(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE ((tags_string['a'] IN ('1') AND (tags_string['aa'] IN ('aaa') OR tags_string['a'] = 'b')) AND (tags_string['b'] NOT IN ('b') OR (tags_string['c'] NOT IN ('c') AND tags_string['c'] NOT IN ('d') AND tags_string['c'] NOT IN ('e')))) AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE ((tags_string['a'] IN ('1') AND (tags_string['aa'] IN ('aaa') OR tags_string['a'] = 'b')) AND (tags_string['b'] NOT IN ('b') OR (tags_string['c'] NOT IN ('c') AND tags_string['c'] NOT IN ('d') AND tags_string['c'] NOT IN ('e')))) AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, { filter: &loop_span.FilterFields{ @@ -130,7 +301,7 @@ func TestBuildSql(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE ((tags_string['custom_tag_string'] IS NULL OR tags_string['custom_tag_string'] = '') AND (tags_bool['custom_tag_bool'] IS NULL OR tags_bool['custom_tag_bool'] = 0) AND (tags_float['custom_tag_double'] IS NULL OR tags_float['custom_tag_double'] = 0) AND (tags_long['custom_tag_long'] IS NULL OR tags_long['custom_tag_long'] = 0)) AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE ((tags_string['custom_tag_string'] IS NULL OR tags_string['custom_tag_string'] = '') AND (tags_bool['custom_tag_bool'] IS NULL OR tags_bool['custom_tag_bool'] = 0) AND (tags_float['custom_tag_double'] IS NULL OR tags_float['custom_tag_double'] = 0) AND (tags_long['custom_tag_long'] IS NULL OR tags_long['custom_tag_long'] = 0)) AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, { filter: &loop_span.FilterFields{ @@ -143,7 +314,7 @@ func TestBuildSql(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE tags_long['custom_tag_long'] IN (123,-123) AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE tags_long['custom_tag_long'] IN (123,-123) AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, { filter: &loop_span.FilterFields{ @@ -156,7 +327,7 @@ func TestBuildSql(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE tags_float['custom_tag_float64'] = 123.999 AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE tags_float['custom_tag_float64'] = 123.999 AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, { filter: &loop_span.FilterFields{ @@ -169,7 +340,7 @@ func TestBuildSql(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE `duration` >= 121 AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE `duration` >= 121 AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, { filter: &loop_span.FilterFields{ @@ -182,7 +353,7 @@ func TestBuildSql(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE tags_bool['custom_tag_bool'] = 1 AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE tags_bool['custom_tag_bool'] = 1 AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, { filter: &loop_span.FilterFields{ @@ -195,7 +366,7 @@ func TestBuildSql(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE `input` like '%123%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE `input` like '%123%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, { filter: &loop_span.FilterFields{ @@ -208,7 +379,7 @@ func TestBuildSql(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE `input` NOT like '%123%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE `input` NOT like '%123%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, } for _, tc := range testCases { @@ -296,7 +467,7 @@ func TestQueryTypeEnumNotMatchSqlExceptionCases(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE `input` NOT like '%test_value%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE `input` NOT like '%test_value%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", shouldError: false, }, { @@ -311,7 +482,7 @@ func TestQueryTypeEnumNotMatchSqlExceptionCases(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE `input` NOT like '%%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE `input` NOT like '%%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", shouldError: false, }, // 特殊字符处理测试 @@ -327,7 +498,7 @@ func TestQueryTypeEnumNotMatchSqlExceptionCases(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE `input` NOT like '%test''value%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE `input` NOT like '%test''value%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", shouldError: false, }, { @@ -342,7 +513,7 @@ func TestQueryTypeEnumNotMatchSqlExceptionCases(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE `input` NOT like '%''; DROP TABLE spans; --%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE `input` NOT like '%''; DROP TABLE spans; --%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", shouldError: false, }, // 不同字段类型测试 @@ -358,7 +529,7 @@ func TestQueryTypeEnumNotMatchSqlExceptionCases(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE tags_string['custom_tag'] NOT like '%tag_value%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE tags_string['custom_tag'] NOT like '%tag_value%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", shouldError: false, }, { @@ -373,7 +544,7 @@ func TestQueryTypeEnumNotMatchSqlExceptionCases(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE `span_type` NOT like '%test_type%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE `span_type` NOT like '%test_type%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", shouldError: false, }, // Unicode字符测试 @@ -389,7 +560,7 @@ func TestQueryTypeEnumNotMatchSqlExceptionCases(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE `input` NOT like '%测试数据%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE `input` NOT like '%测试数据%' AND start_time >= 1 AND start_time <= 2 LIMIT 100", shouldError: false, }, } @@ -462,7 +633,7 @@ func TestQueryTypeEnumNotMatchComplexScenarios(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE (`input` NOT like '%error%' AND `span_type` = 'http_request') AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE (`input` NOT like '%error%' AND `span_type` = 'http_request') AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, { name: "NotMatch combined with other query types using OR", @@ -483,7 +654,7 @@ func TestQueryTypeEnumNotMatchComplexScenarios(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE (`input` NOT like '%success%' OR `status_code` = 200) AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE (`input` NOT like '%success%' OR `status_code` = 200) AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, { name: "Multiple NotMatch conditions with AND", @@ -504,7 +675,7 @@ func TestQueryTypeEnumNotMatchComplexScenarios(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE (`input` NOT like '%error%' AND `output` NOT like '%failed%') AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE (`input` NOT like '%error%' AND `output` NOT like '%failed%') AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, { name: "NotMatch with nested SubFilter", @@ -537,7 +708,7 @@ func TestQueryTypeEnumNotMatchComplexScenarios(t *testing.T) { }, }, }, - expectedSql: "SELECT * FROM `observability_spans` WHERE (`input` NOT like '%test%' AND (tags_string['custom_tag'] NOT like '%debug%' OR `status_code` = 500)) AND start_time >= 1 AND start_time <= 2 LIMIT 100", + expectedSql: "SELECT start_time, logid, span_id, trace_id, parent_id, duration, psm, call_type, space_id, span_type, span_name, method, status_code, input, output, object_storage, system_tags_string, system_tags_long, system_tags_float, tags_string, tags_long, tags_bool, tags_float, tags_byte, reserve_create_time, logic_delete_date FROM `observability_spans` WHERE (`input` NOT like '%test%' AND (tags_string['custom_tag'] NOT like '%debug%' OR `status_code` = 500)) AND start_time >= 1 AND start_time <= 2 LIMIT 100", }, } diff --git a/backend/modules/observability/infra/repo/trace.go b/backend/modules/observability/infra/repo/trace.go index c1a58b981..eaa9d7f4d 100644 --- a/backend/modules/observability/infra/repo/trace.go +++ b/backend/modules/observability/infra/repo/trace.go @@ -163,16 +163,20 @@ func (t *TraceCkRepoImpl) GetTrace(ctx context.Context, req *repo.GetTraceParam) QueryType: ptr.Of(loop_span.QueryTypeEnumIn), }) } + filter.FilterFields = append(filter.FilterFields, &loop_span.FilterField{ + SubFilter: req.Filters, + }) st := time.Now() spans, err := t.spansDao.Get(ctx, &ck.QueryParam{ - QueryType: ck.QueryTypeGetTrace, - Tables: tableCfg.SpanTables, - AnnoTableMap: tableCfg.AnnoTableMap, - StartTime: time_util.MillSec2MicroSec(req.StartAt), - EndTime: time_util.MillSec2MicroSec(req.EndAt), - Filters: filter, - Limit: req.Limit, - OmitColumns: req.OmitColumns, + QueryType: ck.QueryTypeGetTrace, + Tables: tableCfg.SpanTables, + AnnoTableMap: tableCfg.AnnoTableMap, + StartTime: time_util.MillSec2MicroSec(req.StartAt), + EndTime: time_util.MillSec2MicroSec(req.EndAt), + Filters: filter, + Limit: req.Limit, + OmitColumns: req.OmitColumns, + SelectColumns: req.SelectColumns, }) if err != nil { return nil, err diff --git a/backend/modules/observability/infra/tenant/tenant.go b/backend/modules/observability/infra/tenant/tenant.go index e306e09ec..bf939f499 100644 --- a/backend/modules/observability/infra/tenant/tenant.go +++ b/backend/modules/observability/infra/tenant/tenant.go @@ -42,7 +42,11 @@ func (t *TenantProviderImpl) GetTenantsByPlatformType(ctx context.Context, platf if tenants, ok := cfg.Config[string(platform)]; ok { return tenants, nil } else { - logs.CtxError(ctx, "tenant not found for platform %s", platform) - return nil, errorx.NewByCode(obErrorx.CommercialCommonInvalidParamCodeCode, errorx.WithExtraMsg("tenant not found for the platform")) + if tenants, ok = cfg.Config[string(loop_span.PlatformDefault)]; ok { + return tenants, nil + } + defaultTenant := t.traceConfig.GetDefaultTraceTenant(ctx) + logs.CtxInfo(ctx, "tenant not found for platform [%s], use default tenant [%s]", platform, defaultTenant) + return []string{defaultTenant}, nil } } diff --git a/idl/thrift/coze/loop/observability/coze.loop.observability.openapi.thrift b/idl/thrift/coze/loop/observability/coze.loop.observability.openapi.thrift index abdf4bda4..a76263889 100644 --- a/idl/thrift/coze/loop/observability/coze.loop.observability.openapi.thrift +++ b/idl/thrift/coze/loop/observability/coze.loop.observability.openapi.thrift @@ -74,6 +74,7 @@ struct SearchTraceOApiRequest { 5: required i64 end_time (api.js_conv='true', go.tag='json:"end_time"', api.body="end_time") // ms 6: required i32 limit (api.body="limit") 8: optional common.PlatformType platform_type (api.body="platform_type") + 9: optional list span_ids (api.query="span_ids") 255: optional base.Base Base } @@ -91,6 +92,31 @@ struct SearchTraceOApiData { 2: optional coze.loop.observability.trace.TraceAdvanceInfo traces_advance_info } +struct SearchTraceTreeOApiRequest { + 1: optional i64 workspace_id (api.js_conv='true', go.tag='json:"workspace_id"', api.body="workspace_id") + 3: optional string trace_id (go.tag='json:"trace_id"', api.body="trace_id") + 4: optional i64 start_time (api.js_conv='true', go.tag='json:"start_time"', api.body="start_time") // ms + 5: optional i64 end_time (api.js_conv='true', go.tag='json:"end_time"', api.body="end_time") // ms + 6: required i32 limit (api.body="limit") + 8: optional common.PlatformType platform_type (api.body="platform_type") + 10: optional filter.FilterFields filters (api.body="filters") + + 255: optional base.Base Base +} + +struct SearchTraceTreeOApiResponse { + 1: optional i32 code (api.body = "code") + 2: optional string msg (api.body = "msg") + 3: optional SearchTraceOApiData data (api.body = "data") + + 255: optional base.BaseResp BaseResp +} + +struct SearchTraceTreeOApiData { + 1: required list spans + 2: optional coze.loop.observability.trace.TraceAdvanceInfo traces_advance_info +} + struct ListSpansOApiRequest { 1: required i64 workspace_id (api.js_conv='true', go.tag='json:"workspace_id"', api.body="workspace_id" vt.gt="0") 2: required i64 start_time (api.js_conv='true', go.tag='json:"start_time"', api.body="start_time") // ms @@ -145,6 +171,7 @@ service OpenAPIService { IngestTracesResponse IngestTraces(1: IngestTracesRequest req) (api.post = '/v1/loop/traces/ingest') OtelIngestTracesResponse OtelIngestTraces(1: OtelIngestTracesRequest req) (api.post = '/v1/loop/opentelemetry/v1/traces') SearchTraceOApiResponse SearchTraceOApi(1: SearchTraceOApiRequest req) (api.post = '/v1/loop/traces/search') + SearchTraceTreeOApiResponse SearchTraceTreeOApi(1: SearchTraceTreeOApiRequest req) (api.post = '/v1/loop/traces/search_tree') ListSpansOApiResponse ListSpansOApi(1: ListSpansOApiRequest req) (api.post = '/v1/loop/spans/search', api.tag="openapi") ListTracesOApiResponse ListTracesOApi(1: ListTracesOApiRequest req) (api.post = '/v1/loop/traces/list') CreateAnnotationResponse CreateAnnotation(1: CreateAnnotationRequest req) (api.post = '/v1/loop/annotations') diff --git a/idl/thrift/coze/loop/observability/coze.loop.observability.trace.thrift b/idl/thrift/coze/loop/observability/coze.loop.observability.trace.thrift index 39eb51161..b40895d94 100644 --- a/idl/thrift/coze/loop/observability/coze.loop.observability.trace.thrift +++ b/idl/thrift/coze/loop/observability/coze.loop.observability.trace.thrift @@ -60,6 +60,25 @@ struct GetTraceResponse { 255: optional base.BaseResp BaseResp } +struct SearchTraceTreeRequest { + 1: required i64 workspace_id (api.js_conv='true', go.tag='json:"workspace_id"', api.body="workspace_id") + 2: required string trace_id (go.tag='json:"trace_id"', api.body="trace_id") + 3: required i64 start_time (api.js_conv='true', go.tag='json:"start_time"', api.body="start_time") // ms + 4: required i64 end_time (api.js_conv='true', go.tag='json:"end_time"', api.body="end_time") // ms + 8: optional common.PlatformType platform_type (api.body="platform_type") + + 10: optional filter.FilterFields filters (api.body="filters") + + 255: optional base.Base Base +} + +struct SearchTraceTreeResponse { + 1: required list spans + 2: optional TraceAdvanceInfo traces_advance_info + + 255: optional base.BaseResp BaseResp +} + struct TraceQueryParams { 1: required string trace_id 2: required i64 start_time (api.js_conv='true', go.tag='json:"start_time"') @@ -110,6 +129,7 @@ struct GetTracesMetaInfoRequest { struct GetTracesMetaInfoResponse { 1: required map field_metas + 2: optional list key_span_type 255: optional base.BaseResp BaseResp } @@ -348,6 +368,7 @@ struct ExtractSpanInfoResponse { service TraceService { ListSpansResponse ListSpans(1: ListSpansRequest req) (api.post = '/api/observability/v1/spans/list') GetTraceResponse GetTrace(1: GetTraceRequest req) (api.get = '/api/observability/v1/traces/:trace_id') + SearchTraceTreeResponse SearchTraceTree(1: SearchTraceTreeRequest req) (api.post = '/api/observability/v1/traces/search_tree') BatchGetTracesAdvanceInfoResponse BatchGetTracesAdvanceInfo(1: BatchGetTracesAdvanceInfoRequest req) (api.post = '/api/observability/v1/traces/batch_get_advance_info') IngestTracesResponse IngestTracesInner(1: IngestTracesRequest req) GetTracesMetaInfoResponse GetTracesMetaInfo(1: GetTracesMetaInfoRequest req) (api.get = '/api/observability/v1/traces/meta_info') diff --git a/idl/thrift/coze/loop/observability/domain/filter.thrift b/idl/thrift/coze/loop/observability/domain/filter.thrift index f3794ae1a..30a9b2f0d 100644 --- a/idl/thrift/coze/loop/observability/domain/filter.thrift +++ b/idl/thrift/coze/loop/observability/domain/filter.thrift @@ -46,6 +46,7 @@ struct FilterField { 4: optional QueryType query_type 5: optional QueryRelation query_and_or 6: optional FilterFields sub_filter + 7: optional bool is_custom } struct FieldOptions { diff --git a/release/deployment/docker-compose/conf/observability.yaml b/release/deployment/docker-compose/conf/observability.yaml index 85e68736d..9bbdf1487 100644 --- a/release/deployment/docker-compose/conf/observability.yaml +++ b/release/deployment/docker-compose/conf/observability.yaml @@ -177,6 +177,46 @@ trace_field_meta_info: - "not_exist" support_custom: true field_metas: + default: + root_span: + - "input" + - "output" + - "status" + - "duration" + - "latency_first_resp" + - "span_name" + - "trace_id" + - "span_type" + - "message_id" + - "user_id" + all_span: + - "input" + - "output" + - "status" + - "duration" + - "latency_first_resp" + - "span_name" + - "trace_id" + - "span_type" + - "message_id" + - "user_id" + - "input_tokens" + - "output_tokens" + - "prompt_key" + - "tokens" + llm_span: + - "input" + - "output" + - "status" + - "duration" + - "latency_first_resp" + - "span_name" + - "trace_id" + - "message_id" + - "user_id" + - "input_tokens" + - "output_tokens" + - "tokens" cozeloop: root_span: - "input" @@ -289,6 +329,26 @@ query_trace_rate_limit_config: space_max_qps: 123456: 100 +key_columns: + - "start_time" + - "span_id" + - "parent_id" + - "duration" + - "span_type" + - "span_name" + - "status_code" + - "tags_long" + - "logic_delete_date" + +key_span_type: + default: + - "model", + - "tool", + - "root" + - "UserInput" + - "UserInputV2" + - "LLMCall" + correction_mq_consumer_config: addr: - "cozeloop-namesrv:9876" diff --git a/release/deployment/helm-chart/umbrella/conf/observability.yaml b/release/deployment/helm-chart/umbrella/conf/observability.yaml index d47dfa336..9bbdf1487 100644 --- a/release/deployment/helm-chart/umbrella/conf/observability.yaml +++ b/release/deployment/helm-chart/umbrella/conf/observability.yaml @@ -177,6 +177,46 @@ trace_field_meta_info: - "not_exist" support_custom: true field_metas: + default: + root_span: + - "input" + - "output" + - "status" + - "duration" + - "latency_first_resp" + - "span_name" + - "trace_id" + - "span_type" + - "message_id" + - "user_id" + all_span: + - "input" + - "output" + - "status" + - "duration" + - "latency_first_resp" + - "span_name" + - "trace_id" + - "span_type" + - "message_id" + - "user_id" + - "input_tokens" + - "output_tokens" + - "prompt_key" + - "tokens" + llm_span: + - "input" + - "output" + - "status" + - "duration" + - "latency_first_resp" + - "span_name" + - "trace_id" + - "message_id" + - "user_id" + - "input_tokens" + - "output_tokens" + - "tokens" cozeloop: root_span: - "input" @@ -289,6 +329,26 @@ query_trace_rate_limit_config: space_max_qps: 123456: 100 +key_columns: + - "start_time" + - "span_id" + - "parent_id" + - "duration" + - "span_type" + - "span_name" + - "status_code" + - "tags_long" + - "logic_delete_date" + +key_span_type: + default: + - "model", + - "tool", + - "root" + - "UserInput" + - "UserInputV2" + - "LLMCall" + correction_mq_consumer_config: addr: - "cozeloop-namesrv:9876" @@ -327,4 +387,4 @@ task_mq_consumer_config: timeout: 180000 topic: "trace_to_task" consumer_group: "trace_to_task_cg" - worker_num: 4 \ No newline at end of file + worker_num: 4