1// Autogenerated by Thrift Compiler (0.11.0) 2// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING 3 4package main 5 6import ( 7 "context" 8 "flag" 9 "fmt" 10 "math" 11 "net" 12 "net/url" 13 "os" 14 "strconv" 15 "strings" 16 17 "go.opentelemetry.io/otel/exporters/trace/jaeger/internal/third_party/thrift/lib/go/thrift" 18 19 "go.opentelemetry.io/otel/exporters/trace/jaeger/internal/gen-go/jaeger" 20) 21 22func Usage() { 23 fmt.Fprintln(os.Stderr, "Usage of ", os.Args[0], " [-h host:port] [-u url] [-f[ramed]] function [arg1 [arg2...]]:") 24 flag.PrintDefaults() 25 fmt.Fprintln(os.Stderr, "\nFunctions:") 26 fmt.Fprintln(os.Stderr, " submitBatches( batches)") 27 fmt.Fprintln(os.Stderr) 28 os.Exit(0) 29} 30 31func main() { 32 flag.Usage = Usage 33 var host string 34 var port int 35 var protocol string 36 var urlString string 37 var framed bool 38 var useHTTP bool 39 var parsedURL *url.URL 40 var trans thrift.TTransport 41 _ = strconv.Atoi 42 _ = math.Abs 43 flag.Usage = Usage 44 flag.StringVar(&host, "h", "localhost", "Specify host and port") 45 flag.IntVar(&port, "p", 9090, "Specify port") 46 flag.StringVar(&protocol, "P", "binary", "Specify the protocol (binary, compact, simplejson, json)") 47 flag.StringVar(&urlString, "u", "", "Specify the url") 48 flag.BoolVar(&framed, "framed", false, "Use framed transport") 49 flag.BoolVar(&useHTTP, "http", false, "Use http") 50 flag.Parse() 51 52 if len(urlString) > 0 { 53 var err error 54 parsedURL, err = url.Parse(urlString) 55 if err != nil { 56 fmt.Fprintln(os.Stderr, "Error parsing URL: ", err) 57 flag.Usage() 58 } 59 host = parsedURL.Host 60 useHTTP = len(parsedURL.Scheme) <= 0 || parsedURL.Scheme == "http" 61 } else if useHTTP { 62 _, err := url.Parse(fmt.Sprint("http://", host, ":", port)) 63 if err != nil { 64 fmt.Fprintln(os.Stderr, "Error parsing URL: ", err) 65 flag.Usage() 66 } 67 } 68 69 cmd := flag.Arg(0) 70 var err error 71 if useHTTP { 72 trans, err = thrift.NewTHttpClient(parsedURL.String()) 73 } else { 74 portStr := fmt.Sprint(port) 75 if strings.Contains(host, ":") { 76 host, portStr, err = net.SplitHostPort(host) 77 if err != nil { 78 fmt.Fprintln(os.Stderr, "error with host:", err) 79 os.Exit(1) 80 } 81 } 82 trans, err = thrift.NewTSocket(net.JoinHostPort(host, portStr)) 83 if err != nil { 84 fmt.Fprintln(os.Stderr, "error resolving address:", err) 85 os.Exit(1) 86 } 87 if framed { 88 trans = thrift.NewTFramedTransport(trans) 89 } 90 } 91 if err != nil { 92 fmt.Fprintln(os.Stderr, "Error creating transport", err) 93 os.Exit(1) 94 } 95 defer trans.Close() 96 var protocolFactory thrift.TProtocolFactory 97 switch protocol { 98 case "compact": 99 protocolFactory = thrift.NewTCompactProtocolFactory() 100 break 101 case "simplejson": 102 protocolFactory = thrift.NewTSimpleJSONProtocolFactory() 103 break 104 case "json": 105 protocolFactory = thrift.NewTJSONProtocolFactory() 106 break 107 case "binary", "": 108 protocolFactory = thrift.NewTBinaryProtocolFactoryDefault() 109 break 110 default: 111 fmt.Fprintln(os.Stderr, "Invalid protocol specified: ", protocol) 112 Usage() 113 os.Exit(1) 114 } 115 iprot := protocolFactory.GetProtocol(trans) 116 oprot := protocolFactory.GetProtocol(trans) 117 client := jaeger.NewCollectorClient(thrift.NewTStandardClient(iprot, oprot)) 118 if err := trans.Open(); err != nil { 119 fmt.Fprintln(os.Stderr, "Error opening socket to ", host, ":", port, " ", err) 120 os.Exit(1) 121 } 122 123 switch cmd { 124 case "submitBatches": 125 if flag.NArg()-1 != 1 { 126 fmt.Fprintln(os.Stderr, "SubmitBatches requires 1 args") 127 flag.Usage() 128 } 129 arg12 := flag.Arg(1) 130 mbTrans13 := thrift.NewTMemoryBufferLen(len(arg12)) 131 defer mbTrans13.Close() 132 _, err14 := mbTrans13.WriteString(arg12) 133 if err14 != nil { 134 Usage() 135 return 136 } 137 factory15 := thrift.NewTSimpleJSONProtocolFactory() 138 jsProt16 := factory15.GetProtocol(mbTrans13) 139 containerStruct0 := jaeger.NewCollectorSubmitBatchesArgs() 140 err17 := containerStruct0.ReadField1(jsProt16) 141 if err17 != nil { 142 Usage() 143 return 144 } 145 argvalue0 := containerStruct0.Batches 146 value0 := argvalue0 147 fmt.Print(client.SubmitBatches(context.Background(), value0)) 148 fmt.Print("\n") 149 break 150 case "": 151 Usage() 152 break 153 default: 154 fmt.Fprintln(os.Stderr, "Invalid function ", cmd) 155 } 156} 157