diff --git a/Makefile b/Makefile index b4271c6..9363171 100644 --- a/Makefile +++ b/Makefile @@ -11,8 +11,9 @@ bench: .PHONY: protoc protoc: - protoc --go_out=. proto/v2/zipkin.proto - protoc --go_out=plugins=grpc:. proto/testing/service.proto + protoc --go_out=module=github.com/openzipkin/zipkin-go:. proto/zipkin_proto3/zipkin.proto + protoc --go_out=module=github.com/openzipkin/zipkin-go:. proto/testing/service.proto + protoc --go-grpc_out=module=github.com/openzipkin/zipkin-go:. proto/testing/service.proto .PHONY: lint lint: diff --git a/go.mod b/go.mod index ed37c1c..6acbe3d 100644 --- a/go.mod +++ b/go.mod @@ -7,19 +7,21 @@ require ( github.com/eapache/go-resiliency v1.1.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect github.com/eapache/queue v1.1.0 // indirect + github.com/gogo/googleapis v1.1.0 // indirect github.com/gogo/protobuf v1.2.0 - github.com/golang/protobuf v1.2.0 + github.com/golang/protobuf v1.4.2 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db // indirect github.com/gorilla/context v1.1.1 // indirect github.com/gorilla/mux v1.6.2 + github.com/lyft/protoc-gen-validate v0.0.13 // indirect github.com/onsi/ginkgo v1.7.0 github.com/onsi/gomega v1.4.3 github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1 // indirect github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a // indirect github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94 golang.org/x/net v0.0.0-20190311183353-d8887717615a - golang.org/x/sync v0.0.0-20181108010431-42b317875d0f // indirect - google.golang.org/grpc v1.20.0 + google.golang.org/grpc v1.30.0 + google.golang.org/protobuf v1.25.0 ) go 1.12 diff --git a/go.sum b/go.sum index 5274bc9..1b4030e 100644 --- a/go.sum +++ b/go.sum @@ -4,7 +4,9 @@ github.com/Shopify/sarama v1.19.0 h1:9oksLxC6uxVPHPVYUmq6xhr1BOF/hHobWH2UzO67z1s github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU= @@ -14,6 +16,10 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= @@ -24,8 +30,23 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/mux v1.6.2 h1:Pgr17XVTNXAk3q/r4CpKzC5xBM/qW1uVLV+IhRZpIIk= @@ -41,30 +62,66 @@ github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1 h1:VGcrWe3yk6o+t7BdVNy5UDPWa4OZuDWtE1W1ZbS7Kyw= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a h1:9ZKAASQSHhDYGoxY8uLVpewe1GDZ2vu2Tr/vTdVAkFQ= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94 h1:0ngsPmuP6XIjiFRNFYlvKwSr5zff2v+uPHaffZ6/M4k= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0 h1:DlsSIrgEBuZAUFJcta2B5i/lzeHHbnfkNFAfFXLVFYQ= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v0.0.0-20200728012721-8b7764bddbca h1:5sEGdC+FhvT/NORrmnMIGyEB7NcWkbMplI2bxi9IG4c= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v0.0.0-20200728012721-8b7764bddbca/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= @@ -74,3 +131,4 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/middleware/grpc/grpc_suite_test.go b/middleware/grpc/grpc_suite_test.go index 7895f32..bc233b6 100644 --- a/middleware/grpc/grpc_suite_test.go +++ b/middleware/grpc/grpc_suite_test.go @@ -121,7 +121,9 @@ func (g *sequentialIdGenerator) reset() { g.nextSpanId = g.start } -type TestHelloService struct{} +type TestHelloService struct{ + service.UnimplementedHelloServiceServer +} func (s *TestHelloService) Hello(ctx context.Context, req *service.HelloRequest) (*service.HelloResponse, error) { if req.Payload == "fail" { diff --git a/proto/testing/service.pb.go b/proto/testing/service.pb.go index 18dbbbe..59eb0d9 100644 --- a/proto/testing/service.pb.go +++ b/proto/testing/service.pb.go @@ -1,220 +1,272 @@ +// Copyright 2019 The OpenZipkin Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 // source: proto/testing/service.proto -package zipkin_testing - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +package testing import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 type HelloRequest struct { - Payload string `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *HelloRequest) Reset() { *m = HelloRequest{} } -func (m *HelloRequest) String() string { return proto.CompactTextString(m) } -func (*HelloRequest) ProtoMessage() {} -func (*HelloRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_eae06f0e4375fa1a, []int{0} -} -func (m *HelloRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HelloRequest.Unmarshal(m, b) + Payload string `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` } -func (m *HelloRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HelloRequest.Marshal(b, m, deterministic) -} -func (dst *HelloRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_HelloRequest.Merge(dst, src) + +func (x *HelloRequest) Reset() { + *x = HelloRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_testing_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *HelloRequest) XXX_Size() int { - return xxx_messageInfo_HelloRequest.Size(m) + +func (x *HelloRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *HelloRequest) XXX_DiscardUnknown() { - xxx_messageInfo_HelloRequest.DiscardUnknown(m) + +func (*HelloRequest) ProtoMessage() {} + +func (x *HelloRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_testing_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_HelloRequest proto.InternalMessageInfo +// Deprecated: Use HelloRequest.ProtoReflect.Descriptor instead. +func (*HelloRequest) Descriptor() ([]byte, []int) { + return file_proto_testing_service_proto_rawDescGZIP(), []int{0} +} -func (m *HelloRequest) GetPayload() string { - if m != nil { - return m.Payload +func (x *HelloRequest) GetPayload() string { + if x != nil { + return x.Payload } return "" } type HelloResponse struct { - Payload string `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` - Metadata map[string]string `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - SpanContext map[string]string `protobuf:"bytes,3,rep,name=span_context,json=spanContext,proto3" json:"span_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *HelloResponse) Reset() { *m = HelloResponse{} } -func (m *HelloResponse) String() string { return proto.CompactTextString(m) } -func (*HelloResponse) ProtoMessage() {} -func (*HelloResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_service_eae06f0e4375fa1a, []int{1} -} -func (m *HelloResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HelloResponse.Unmarshal(m, b) -} -func (m *HelloResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HelloResponse.Marshal(b, m, deterministic) + Payload string `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` + Metadata map[string]string `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + SpanContext map[string]string `protobuf:"bytes,3,rep,name=span_context,json=spanContext,proto3" json:"span_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (dst *HelloResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_HelloResponse.Merge(dst, src) + +func (x *HelloResponse) Reset() { + *x = HelloResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_testing_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *HelloResponse) XXX_Size() int { - return xxx_messageInfo_HelloResponse.Size(m) + +func (x *HelloResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *HelloResponse) XXX_DiscardUnknown() { - xxx_messageInfo_HelloResponse.DiscardUnknown(m) + +func (*HelloResponse) ProtoMessage() {} + +func (x *HelloResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_testing_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_HelloResponse proto.InternalMessageInfo +// Deprecated: Use HelloResponse.ProtoReflect.Descriptor instead. +func (*HelloResponse) Descriptor() ([]byte, []int) { + return file_proto_testing_service_proto_rawDescGZIP(), []int{1} +} -func (m *HelloResponse) GetPayload() string { - if m != nil { - return m.Payload +func (x *HelloResponse) GetPayload() string { + if x != nil { + return x.Payload } return "" } -func (m *HelloResponse) GetMetadata() map[string]string { - if m != nil { - return m.Metadata +func (x *HelloResponse) GetMetadata() map[string]string { + if x != nil { + return x.Metadata } return nil } -func (m *HelloResponse) GetSpanContext() map[string]string { - if m != nil { - return m.SpanContext +func (x *HelloResponse) GetSpanContext() map[string]string { + if x != nil { + return x.SpanContext } return nil } -func init() { - proto.RegisterType((*HelloRequest)(nil), "zipkin.testing.HelloRequest") - proto.RegisterType((*HelloResponse)(nil), "zipkin.testing.HelloResponse") - proto.RegisterMapType((map[string]string)(nil), "zipkin.testing.HelloResponse.MetadataEntry") - proto.RegisterMapType((map[string]string)(nil), "zipkin.testing.HelloResponse.SpanContextEntry") -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +var File_proto_testing_service_proto protoreflect.FileDescriptor -// HelloServiceClient is the client API for HelloService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type HelloServiceClient interface { - Hello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) +var file_proto_testing_service_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x7a, + 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x28, 0x0a, + 0x0c, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xc2, 0x02, 0x0a, 0x0d, 0x48, 0x65, 0x6c, 0x6c, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x51, 0x0a, 0x0c, + 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2e, 0x74, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0b, 0x73, 0x70, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x1a, + 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, + 0x53, 0x70, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0x54, 0x0a, 0x0c, + 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x05, + 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x1c, 0x2e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2e, 0x74, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2f, 0x7a, 0x69, 0x70, 0x6b, + 0x69, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -type helloServiceClient struct { - cc *grpc.ClientConn -} +var ( + file_proto_testing_service_proto_rawDescOnce sync.Once + file_proto_testing_service_proto_rawDescData = file_proto_testing_service_proto_rawDesc +) -func NewHelloServiceClient(cc *grpc.ClientConn) HelloServiceClient { - return &helloServiceClient{cc} +func file_proto_testing_service_proto_rawDescGZIP() []byte { + file_proto_testing_service_proto_rawDescOnce.Do(func() { + file_proto_testing_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_testing_service_proto_rawDescData) + }) + return file_proto_testing_service_proto_rawDescData } -func (c *helloServiceClient) Hello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) { - out := new(HelloResponse) - err := c.cc.Invoke(ctx, "/zipkin.testing.HelloService/Hello", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil +var file_proto_testing_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_proto_testing_service_proto_goTypes = []interface{}{ + (*HelloRequest)(nil), // 0: zipkin.testing.HelloRequest + (*HelloResponse)(nil), // 1: zipkin.testing.HelloResponse + nil, // 2: zipkin.testing.HelloResponse.MetadataEntry + nil, // 3: zipkin.testing.HelloResponse.SpanContextEntry } - -// HelloServiceServer is the server API for HelloService service. -type HelloServiceServer interface { - Hello(context.Context, *HelloRequest) (*HelloResponse, error) +var file_proto_testing_service_proto_depIdxs = []int32{ + 2, // 0: zipkin.testing.HelloResponse.metadata:type_name -> zipkin.testing.HelloResponse.MetadataEntry + 3, // 1: zipkin.testing.HelloResponse.span_context:type_name -> zipkin.testing.HelloResponse.SpanContextEntry + 0, // 2: zipkin.testing.HelloService.Hello:input_type -> zipkin.testing.HelloRequest + 1, // 3: zipkin.testing.HelloService.Hello:output_type -> zipkin.testing.HelloResponse + 3, // [3:4] is the sub-list for method output_type + 2, // [2:3] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name } -func RegisterHelloServiceServer(s *grpc.Server, srv HelloServiceServer) { - s.RegisterService(&_HelloService_serviceDesc, srv) -} - -func _HelloService_Hello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(HelloRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HelloServiceServer).Hello(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/zipkin.testing.HelloService/Hello", +func init() { file_proto_testing_service_proto_init() } +func file_proto_testing_service_proto_init() { + if File_proto_testing_service_proto != nil { + return } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HelloServiceServer).Hello(ctx, req.(*HelloRequest)) + if !protoimpl.UnsafeEnabled { + file_proto_testing_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HelloRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_testing_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HelloResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - return interceptor(ctx, in, info, handler) -} - -var _HelloService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "zipkin.testing.HelloService", - HandlerType: (*HelloServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Hello", - Handler: _HelloService_Hello_Handler, + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_testing_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 1, }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "proto/testing/service.proto", -} - -func init() { - proto.RegisterFile("proto/testing/service.proto", fileDescriptor_service_eae06f0e4375fa1a) -} - -var fileDescriptor_service_eae06f0e4375fa1a = []byte{ - // 262 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2e, 0x28, 0xca, 0x2f, - 0xc9, 0xd7, 0x2f, 0x49, 0x2d, 0x2e, 0xc9, 0xcc, 0x4b, 0xd7, 0x2f, 0x4e, 0x2d, 0x2a, 0xcb, 0x4c, - 0x4e, 0xd5, 0x03, 0x8b, 0x0a, 0xf1, 0x55, 0x65, 0x16, 0x64, 0x67, 0xe6, 0xe9, 0x41, 0x65, 0x95, - 0x34, 0xb8, 0x78, 0x3c, 0x52, 0x73, 0x72, 0xf2, 0x83, 0x52, 0x0b, 0x4b, 0x53, 0x8b, 0x4b, 0x84, - 0x24, 0xb8, 0xd8, 0x0b, 0x12, 0x2b, 0x73, 0xf2, 0x13, 0x53, 0x24, 0x18, 0x15, 0x18, 0x35, 0x38, - 0x83, 0x60, 0x5c, 0xa5, 0x43, 0x4c, 0x5c, 0xbc, 0x50, 0xa5, 0xc5, 0x05, 0xf9, 0x79, 0xc5, 0xa9, - 0xb8, 0xd5, 0x0a, 0xb9, 0x73, 0x71, 0xe4, 0xa6, 0x96, 0x24, 0xa6, 0x24, 0x96, 0x24, 0x4a, 0x30, - 0x29, 0x30, 0x6b, 0x70, 0x1b, 0x69, 0xeb, 0xa1, 0x5a, 0xac, 0x87, 0x62, 0x94, 0x9e, 0x2f, 0x54, - 0xb5, 0x6b, 0x5e, 0x49, 0x51, 0x65, 0x10, 0x5c, 0xb3, 0x50, 0x20, 0x17, 0x4f, 0x71, 0x41, 0x62, - 0x5e, 0x7c, 0x72, 0x7e, 0x5e, 0x49, 0x6a, 0x45, 0x89, 0x04, 0x33, 0xd8, 0x30, 0x3d, 0xfc, 0x86, - 0x05, 0x17, 0x24, 0xe6, 0x39, 0x43, 0x34, 0x40, 0xcc, 0xe3, 0x2e, 0x46, 0x88, 0x48, 0x59, 0x73, - 0xf1, 0xa2, 0xd8, 0x26, 0x24, 0xc0, 0xc5, 0x9c, 0x9d, 0x5a, 0x09, 0xf5, 0x02, 0x88, 0x29, 0x24, - 0xc2, 0xc5, 0x5a, 0x96, 0x98, 0x53, 0x9a, 0x2a, 0xc1, 0x04, 0x16, 0x83, 0x70, 0xac, 0x98, 0x2c, - 0x18, 0xa5, 0xec, 0xb8, 0x04, 0xd0, 0x4d, 0x27, 0x45, 0xbf, 0x51, 0x08, 0x34, 0xb8, 0x83, 0x21, - 0x91, 0x22, 0xe4, 0xc2, 0xc5, 0x0a, 0xe6, 0x0b, 0xc9, 0xe0, 0xf0, 0x12, 0x38, 0x56, 0xa4, 0x64, - 0xf1, 0x7a, 0x38, 0x89, 0x0d, 0x1c, 0xb7, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9f, 0x24, - 0x1b, 0x5e, 0xfa, 0x01, 0x00, 0x00, + GoTypes: file_proto_testing_service_proto_goTypes, + DependencyIndexes: file_proto_testing_service_proto_depIdxs, + MessageInfos: file_proto_testing_service_proto_msgTypes, + }.Build() + File_proto_testing_service_proto = out.File + file_proto_testing_service_proto_rawDesc = nil + file_proto_testing_service_proto_goTypes = nil + file_proto_testing_service_proto_depIdxs = nil } diff --git a/proto/testing/service.proto b/proto/testing/service.proto index 93cc502..a204527 100644 --- a/proto/testing/service.proto +++ b/proto/testing/service.proto @@ -16,6 +16,8 @@ syntax = "proto3"; package zipkin.testing; +option go_package = "github.com/openzipkin/zipkin-go/proto/testing"; + message HelloRequest { string payload = 1; } diff --git a/proto/testing/service_grpc.pb.go b/proto/testing/service_grpc.pb.go new file mode 100644 index 0000000..2318ec0 --- /dev/null +++ b/proto/testing/service_grpc.pb.go @@ -0,0 +1,90 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package testing + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// HelloServiceClient is the client API for HelloService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type HelloServiceClient interface { + Hello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) +} + +type helloServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewHelloServiceClient(cc grpc.ClientConnInterface) HelloServiceClient { + return &helloServiceClient{cc} +} + +func (c *helloServiceClient) Hello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) { + out := new(HelloResponse) + err := c.cc.Invoke(ctx, "/zipkin.testing.HelloService/Hello", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// HelloServiceServer is the server API for HelloService service. +// All implementations must embed UnimplementedHelloServiceServer +// for forward compatibility +type HelloServiceServer interface { + Hello(context.Context, *HelloRequest) (*HelloResponse, error) + mustEmbedUnimplementedHelloServiceServer() +} + +// UnimplementedHelloServiceServer must be embedded to have forward compatible implementations. +type UnimplementedHelloServiceServer struct { +} + +func (*UnimplementedHelloServiceServer) Hello(context.Context, *HelloRequest) (*HelloResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Hello not implemented") +} +func (*UnimplementedHelloServiceServer) mustEmbedUnimplementedHelloServiceServer() {} + +func RegisterHelloServiceServer(s *grpc.Server, srv HelloServiceServer) { + s.RegisterService(&_HelloService_serviceDesc, srv) +} + +func _HelloService_Hello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HelloRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HelloServiceServer).Hello(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/zipkin.testing.HelloService/Hello", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HelloServiceServer).Hello(ctx, req.(*HelloRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _HelloService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "zipkin.testing.HelloService", + HandlerType: (*HelloServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Hello", + Handler: _HelloService_Hello_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "proto/testing/service.proto", +} diff --git a/proto/v2/zipkin.pb.go b/proto/v2/zipkin.pb.go deleted file mode 100644 index 9ccb668..0000000 --- a/proto/v2/zipkin.pb.go +++ /dev/null @@ -1,533 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: proto/v2/zipkin.proto - -package zipkin_proto3 - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package - -// When present, kind clarifies timestamp, duration and remote_endpoint. When -// absent, the span is local or incomplete. Unlike client and server, there -// is no direct critical path latency relationship between producer and -// consumer spans. -type Span_Kind int32 - -const ( - // Default value interpreted as absent. - Span_SPAN_KIND_UNSPECIFIED Span_Kind = 0 - // The span represents the client side of an RPC operation, implying the - // following: - // - // timestamp is the moment a request was sent to the server. - // duration is the delay until a response or an error was received. - // remote_endpoint is the server. - Span_CLIENT Span_Kind = 1 - // The span represents the server side of an RPC operation, implying the - // following: - // - // timestamp is the moment a client request was received. - // duration is the delay until a response was sent or an error. - // remote_endpoint is the client. - Span_SERVER Span_Kind = 2 - // The span represents production of a message to a remote broker, implying - // the following: - // - // timestamp is the moment a message was sent to a destination. - // duration is the delay sending the message, such as batching. - // remote_endpoint is the broker. - Span_PRODUCER Span_Kind = 3 - // The span represents consumption of a message from a remote broker, not - // time spent servicing it. For example, a message processor would be an - // in-process child span of a consumer. Consumer spans imply the following: - // - // timestamp is the moment a message was received from an origin. - // duration is the delay consuming the message, such as from backlog. - // remote_endpoint is the broker. - Span_CONSUMER Span_Kind = 4 -) - -var Span_Kind_name = map[int32]string{ - 0: "SPAN_KIND_UNSPECIFIED", - 1: "CLIENT", - 2: "SERVER", - 3: "PRODUCER", - 4: "CONSUMER", -} -var Span_Kind_value = map[string]int32{ - "SPAN_KIND_UNSPECIFIED": 0, - "CLIENT": 1, - "SERVER": 2, - "PRODUCER": 3, - "CONSUMER": 4, -} - -func (x Span_Kind) String() string { - return proto.EnumName(Span_Kind_name, int32(x)) -} -func (Span_Kind) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_zipkin_92f7b52feff0f8d2, []int{0, 0} -} - -// A span is a single-host view of an operation. A trace is a series of spans -// (often RPC calls) which nest to form a latency tree. Spans are in the same -// trace when they share the same trace ID. The parent_id field establishes the -// position of one span in the tree. -// -// The root span is where parent_id is Absent and usually has the longest -// duration in the trace. However, nested asynchronous work can materialize as -// child spans whose duration exceed the root span. -// -// Spans usually represent remote activity such as RPC calls, or messaging -// producers and consumers. However, they can also represent in-process -// activity in any position of the trace. For example, a root span could -// represent a server receiving an initial client request. A root span could -// also represent a scheduled job that has no remote context. -// -// Encoding notes: -// -// Epoch timestamp are encoded fixed64 as varint would also be 8 bytes, and more -// expensive to encode and size. Duration is stored uint64, as often the numbers -// are quite small. -// -// Default values are ok, as only natural numbers are used. For example, zero is -// an invalid timestamp and an invalid duration, false values for debug or shared -// are ignorable, and zero-length strings also coerce to null. -// -// The next id is 14. -// -// Note fields up to 15 take 1 byte to encode. Take care when adding new fields -// https://developers.google.com/protocol-buffers/docs/proto3#assigning-tags -type Span struct { - // Randomly generated, unique identifier for a trace, set on all spans within - // it. - // - // This field is required and encoded as 8 or 16 opaque bytes. - TraceId []byte `protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` - // The parent span ID or absent if this the root span in a trace. - ParentId []byte `protobuf:"bytes,2,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` - // Unique identifier for this operation within the trace. - // - // This field is required and encoded as 8 opaque bytes. - Id []byte `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` - // When present, used to interpret remote_endpoint - Kind Span_Kind `protobuf:"varint,4,opt,name=kind,proto3,enum=zipkin.proto3.Span_Kind" json:"kind,omitempty"` - // The logical operation this span represents in lowercase (e.g. rpc method). - // Leave absent if unknown. - // - // As these are lookup labels, take care to ensure names are low cardinality. - // For example, do not embed variables into the name. - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - // Epoch microseconds of the start of this span, possibly absent if - // incomplete. - // - // For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC - // - // This value should be set directly by instrumentation, using the most - // precise value possible. For example, gettimeofday or multiplying epoch - // millis by 1000. - // - // There are three known edge-cases where this could be reported absent. - // - A span was allocated but never started (ex not yet received a timestamp) - // - The span's start event was lost - // - Data about a completed span (ex tags) were sent after the fact - Timestamp uint64 `protobuf:"fixed64,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - // Duration in microseconds of the critical path, if known. Durations of less - // than one are rounded up. Duration of children can be longer than their - // parents due to asynchronous operations. - // - // For example 150 milliseconds is 150000 microseconds. - Duration uint64 `protobuf:"varint,7,opt,name=duration,proto3" json:"duration,omitempty"` - // The host that recorded this span, primarily for query by service name. - // - // Instrumentation should always record this. Usually, absent implies late - // data. The IP address corresponding to this is usually the site local or - // advertised service address. When present, the port indicates the listen - // port. - LocalEndpoint *Endpoint `protobuf:"bytes,8,opt,name=local_endpoint,json=localEndpoint,proto3" json:"local_endpoint,omitempty"` - // When an RPC (or messaging) span, indicates the other side of the - // connection. - // - // By recording the remote endpoint, your trace will contain network context - // even if the peer is not tracing. For example, you can record the IP from - // the "X-Forwarded-For" header or the service name and socket of a remote - // peer. - RemoteEndpoint *Endpoint `protobuf:"bytes,9,opt,name=remote_endpoint,json=remoteEndpoint,proto3" json:"remote_endpoint,omitempty"` - // Associates events that explain latency with the time they happened. - Annotations []*Annotation `protobuf:"bytes,10,rep,name=annotations,proto3" json:"annotations,omitempty"` - // Tags give your span context for search, viewing and analysis. - // - // For example, a key "your_app.version" would let you lookup traces by - // version. A tag "sql.query" isn't searchable, but it can help in debugging - // when viewing a trace. - Tags map[string]string `protobuf:"bytes,11,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // True is a request to store this span even if it overrides sampling policy. - // - // This is true when the "X-B3-Flags" header has a value of 1. - Debug bool `protobuf:"varint,12,opt,name=debug,proto3" json:"debug,omitempty"` - // True if we are contributing to a span started by another tracer (ex on a - // different host). - Shared bool `protobuf:"varint,13,opt,name=shared,proto3" json:"shared,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Span) Reset() { *m = Span{} } -func (m *Span) String() string { return proto.CompactTextString(m) } -func (*Span) ProtoMessage() {} -func (*Span) Descriptor() ([]byte, []int) { - return fileDescriptor_zipkin_92f7b52feff0f8d2, []int{0} -} -func (m *Span) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Span.Unmarshal(m, b) -} -func (m *Span) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Span.Marshal(b, m, deterministic) -} -func (dst *Span) XXX_Merge(src proto.Message) { - xxx_messageInfo_Span.Merge(dst, src) -} -func (m *Span) XXX_Size() int { - return xxx_messageInfo_Span.Size(m) -} -func (m *Span) XXX_DiscardUnknown() { - xxx_messageInfo_Span.DiscardUnknown(m) -} - -var xxx_messageInfo_Span proto.InternalMessageInfo - -func (m *Span) GetTraceId() []byte { - if m != nil { - return m.TraceId - } - return nil -} - -func (m *Span) GetParentId() []byte { - if m != nil { - return m.ParentId - } - return nil -} - -func (m *Span) GetId() []byte { - if m != nil { - return m.Id - } - return nil -} - -func (m *Span) GetKind() Span_Kind { - if m != nil { - return m.Kind - } - return Span_SPAN_KIND_UNSPECIFIED -} - -func (m *Span) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *Span) GetTimestamp() uint64 { - if m != nil { - return m.Timestamp - } - return 0 -} - -func (m *Span) GetDuration() uint64 { - if m != nil { - return m.Duration - } - return 0 -} - -func (m *Span) GetLocalEndpoint() *Endpoint { - if m != nil { - return m.LocalEndpoint - } - return nil -} - -func (m *Span) GetRemoteEndpoint() *Endpoint { - if m != nil { - return m.RemoteEndpoint - } - return nil -} - -func (m *Span) GetAnnotations() []*Annotation { - if m != nil { - return m.Annotations - } - return nil -} - -func (m *Span) GetTags() map[string]string { - if m != nil { - return m.Tags - } - return nil -} - -func (m *Span) GetDebug() bool { - if m != nil { - return m.Debug - } - return false -} - -func (m *Span) GetShared() bool { - if m != nil { - return m.Shared - } - return false -} - -// The network context of a node in the service graph. -// -// The next id is 5. -type Endpoint struct { - // Lower-case label of this node in the service graph, such as "favstar". - // Leave absent if unknown. - // - // This is a primary label for trace lookup and aggregation, so it should be - // intuitive and consistent. Many use a name from service discovery. - ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` - // 4 byte representation of the primary IPv4 address associated with this - // connection. Absent if unknown. - Ipv4 []byte `protobuf:"bytes,2,opt,name=ipv4,proto3" json:"ipv4,omitempty"` - // 16 byte representation of the primary IPv6 address associated with this - // connection. Absent if unknown. - // - // Prefer using the ipv4 field for mapped addresses. - Ipv6 []byte `protobuf:"bytes,3,opt,name=ipv6,proto3" json:"ipv6,omitempty"` - // Depending on context, this could be a listen port or the client-side of a - // socket. Absent if unknown. - Port int32 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Endpoint) Reset() { *m = Endpoint{} } -func (m *Endpoint) String() string { return proto.CompactTextString(m) } -func (*Endpoint) ProtoMessage() {} -func (*Endpoint) Descriptor() ([]byte, []int) { - return fileDescriptor_zipkin_92f7b52feff0f8d2, []int{1} -} -func (m *Endpoint) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Endpoint.Unmarshal(m, b) -} -func (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Endpoint.Marshal(b, m, deterministic) -} -func (dst *Endpoint) XXX_Merge(src proto.Message) { - xxx_messageInfo_Endpoint.Merge(dst, src) -} -func (m *Endpoint) XXX_Size() int { - return xxx_messageInfo_Endpoint.Size(m) -} -func (m *Endpoint) XXX_DiscardUnknown() { - xxx_messageInfo_Endpoint.DiscardUnknown(m) -} - -var xxx_messageInfo_Endpoint proto.InternalMessageInfo - -func (m *Endpoint) GetServiceName() string { - if m != nil { - return m.ServiceName - } - return "" -} - -func (m *Endpoint) GetIpv4() []byte { - if m != nil { - return m.Ipv4 - } - return nil -} - -func (m *Endpoint) GetIpv6() []byte { - if m != nil { - return m.Ipv6 - } - return nil -} - -func (m *Endpoint) GetPort() int32 { - if m != nil { - return m.Port - } - return 0 -} - -// Associates an event that explains latency with a timestamp. -// Unlike log statements, annotations are often codes. Ex. "ws" for WireSend -// -// The next id is 3. -type Annotation struct { - // Epoch microseconds of this event. - // - // For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC - // - // This value should be set directly by instrumentation, using the most - // precise value possible. For example, gettimeofday or multiplying epoch - // millis by 1000. - Timestamp uint64 `protobuf:"fixed64,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - // Usually a short tag indicating an event, like "error" - // - // While possible to add larger data, such as garbage collection details, low - // cardinality event names both keep the size of spans down and also are easy - // to search against. - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Annotation) Reset() { *m = Annotation{} } -func (m *Annotation) String() string { return proto.CompactTextString(m) } -func (*Annotation) ProtoMessage() {} -func (*Annotation) Descriptor() ([]byte, []int) { - return fileDescriptor_zipkin_92f7b52feff0f8d2, []int{2} -} -func (m *Annotation) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Annotation.Unmarshal(m, b) -} -func (m *Annotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Annotation.Marshal(b, m, deterministic) -} -func (dst *Annotation) XXX_Merge(src proto.Message) { - xxx_messageInfo_Annotation.Merge(dst, src) -} -func (m *Annotation) XXX_Size() int { - return xxx_messageInfo_Annotation.Size(m) -} -func (m *Annotation) XXX_DiscardUnknown() { - xxx_messageInfo_Annotation.DiscardUnknown(m) -} - -var xxx_messageInfo_Annotation proto.InternalMessageInfo - -func (m *Annotation) GetTimestamp() uint64 { - if m != nil { - return m.Timestamp - } - return 0 -} - -func (m *Annotation) GetValue() string { - if m != nil { - return m.Value - } - return "" -} - -// A list of spans with possibly different trace ids, in no particular order. -// -// This is used for all transports: POST, Kafka messages etc. No other fields -// are expected, This message facilitates the mechanics of encoding a list, as -// a field number is required. The name of this type is the same in the OpenApi -// aka Swagger specification. https://zipkin.io/zipkin-api/#/default/post_spans -type ListOfSpans struct { - Spans []*Span `protobuf:"bytes,1,rep,name=spans,proto3" json:"spans,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ListOfSpans) Reset() { *m = ListOfSpans{} } -func (m *ListOfSpans) String() string { return proto.CompactTextString(m) } -func (*ListOfSpans) ProtoMessage() {} -func (*ListOfSpans) Descriptor() ([]byte, []int) { - return fileDescriptor_zipkin_92f7b52feff0f8d2, []int{3} -} -func (m *ListOfSpans) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListOfSpans.Unmarshal(m, b) -} -func (m *ListOfSpans) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListOfSpans.Marshal(b, m, deterministic) -} -func (dst *ListOfSpans) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListOfSpans.Merge(dst, src) -} -func (m *ListOfSpans) XXX_Size() int { - return xxx_messageInfo_ListOfSpans.Size(m) -} -func (m *ListOfSpans) XXX_DiscardUnknown() { - xxx_messageInfo_ListOfSpans.DiscardUnknown(m) -} - -var xxx_messageInfo_ListOfSpans proto.InternalMessageInfo - -func (m *ListOfSpans) GetSpans() []*Span { - if m != nil { - return m.Spans - } - return nil -} - -func init() { - proto.RegisterType((*Span)(nil), "zipkin.proto3.Span") - proto.RegisterMapType((map[string]string)(nil), "zipkin.proto3.Span.TagsEntry") - proto.RegisterType((*Endpoint)(nil), "zipkin.proto3.Endpoint") - proto.RegisterType((*Annotation)(nil), "zipkin.proto3.Annotation") - proto.RegisterType((*ListOfSpans)(nil), "zipkin.proto3.ListOfSpans") - proto.RegisterEnum("zipkin.proto3.Span_Kind", Span_Kind_name, Span_Kind_value) -} - -func init() { proto.RegisterFile("proto/v2/zipkin.proto", fileDescriptor_zipkin_92f7b52feff0f8d2) } - -var fileDescriptor_zipkin_92f7b52feff0f8d2 = []byte{ - // 529 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0x61, 0x8f, 0xd2, 0x40, - 0x10, 0x75, 0xa1, 0x70, 0xed, 0x14, 0xb0, 0x59, 0x3d, 0x5d, 0x4e, 0x4d, 0x2a, 0x9f, 0x6a, 0x62, - 0xb8, 0x88, 0x46, 0x2f, 0x9a, 0x98, 0x3b, 0xa1, 0x26, 0xcd, 0x9d, 0x85, 0x2c, 0x87, 0x5f, 0xc9, - 0x1e, 0x5d, 0x71, 0x03, 0x6c, 0x9b, 0x76, 0x21, 0x39, 0x7f, 0xba, 0x9f, 0x4c, 0xb7, 0x15, 0xee, - 0x08, 0xb9, 0x6f, 0xef, 0xbd, 0x79, 0x3b, 0x3b, 0x99, 0x79, 0x70, 0x9c, 0xa4, 0xb1, 0x8a, 0x4f, - 0x37, 0xbd, 0xd3, 0x3f, 0x22, 0x59, 0x08, 0xd9, 0xd5, 0x1c, 0x37, 0xef, 0xb2, 0xf7, 0x9d, 0xbf, - 0x06, 0x18, 0xe3, 0x84, 0x49, 0xdc, 0x06, 0x53, 0xa5, 0x6c, 0xc6, 0xa7, 0x22, 0x22, 0xc8, 0x45, - 0x5e, 0x83, 0x1e, 0x69, 0x1e, 0x44, 0xf8, 0x05, 0x58, 0x09, 0x4b, 0xb9, 0x54, 0x79, 0xad, 0xa2, - 0x6b, 0x66, 0x21, 0x04, 0x11, 0x6e, 0x41, 0x45, 0x44, 0xa4, 0xaa, 0xd5, 0x8a, 0x88, 0xf0, 0x5b, - 0x30, 0x16, 0x42, 0x46, 0xc4, 0x70, 0x91, 0xd7, 0xea, 0x91, 0xee, 0xbd, 0xef, 0xba, 0xf9, 0x57, - 0xdd, 0x4b, 0x21, 0x23, 0xaa, 0x5d, 0x18, 0x83, 0x21, 0xd9, 0x8a, 0x93, 0x9a, 0x8b, 0x3c, 0x8b, - 0x6a, 0x8c, 0x5f, 0x82, 0xa5, 0xc4, 0x8a, 0x67, 0x8a, 0xad, 0x12, 0x52, 0x77, 0x91, 0x57, 0xa7, - 0x3b, 0x01, 0x9f, 0x80, 0x19, 0xad, 0x53, 0xa6, 0x44, 0x2c, 0xc9, 0x91, 0x8b, 0x3c, 0x83, 0x6e, - 0x39, 0xfe, 0x0a, 0xad, 0x65, 0x3c, 0x63, 0xcb, 0x29, 0x97, 0x51, 0x12, 0x0b, 0xa9, 0x88, 0xe9, - 0x22, 0xcf, 0xee, 0x3d, 0xdf, 0x9b, 0xc2, 0x2f, 0xcb, 0xb4, 0xa9, 0xed, 0xff, 0x29, 0x3e, 0x87, - 0xc7, 0x29, 0x5f, 0xc5, 0x8a, 0xef, 0x1a, 0x58, 0x0f, 0x37, 0x68, 0x15, 0xfe, 0x6d, 0x87, 0x2f, - 0x60, 0x33, 0x29, 0x63, 0xa5, 0xe7, 0xc9, 0x08, 0xb8, 0x55, 0xcf, 0xee, 0xb5, 0xf7, 0x5e, 0x5f, - 0x6c, 0x1d, 0xf4, 0xae, 0x1b, 0xbf, 0x03, 0x43, 0xb1, 0x79, 0x46, 0x6c, 0xfd, 0xea, 0xd5, 0xa1, - 0xd5, 0x5d, 0xb3, 0x79, 0xe6, 0x4b, 0x95, 0xde, 0x52, 0x6d, 0xc5, 0x4f, 0xa1, 0x16, 0xf1, 0x9b, - 0xf5, 0x9c, 0x34, 0x5c, 0xe4, 0x99, 0xb4, 0x20, 0xf8, 0x19, 0xd4, 0xb3, 0xdf, 0x2c, 0xe5, 0x11, - 0x69, 0x6a, 0xb9, 0x64, 0x27, 0x9f, 0xc0, 0xda, 0x36, 0xc0, 0x0e, 0x54, 0x17, 0xfc, 0x56, 0xdf, - 0xda, 0xa2, 0x39, 0xcc, 0x9b, 0x6d, 0xd8, 0x72, 0xcd, 0xf5, 0x8d, 0x2d, 0x5a, 0x90, 0xcf, 0x95, - 0x33, 0xd4, 0x99, 0x80, 0x91, 0x1f, 0x0d, 0xb7, 0xe1, 0x78, 0x3c, 0xba, 0x08, 0xa7, 0x97, 0x41, - 0x38, 0x98, 0x4e, 0xc2, 0xf1, 0xc8, 0xef, 0x07, 0xdf, 0x03, 0x7f, 0xe0, 0x3c, 0xc2, 0x00, 0xf5, - 0xfe, 0x55, 0xe0, 0x87, 0xd7, 0x0e, 0xca, 0xf1, 0xd8, 0xa7, 0x3f, 0x7d, 0xea, 0x54, 0x70, 0x03, - 0xcc, 0x11, 0x1d, 0x0e, 0x26, 0x7d, 0x9f, 0x3a, 0xd5, 0x9c, 0xf5, 0x87, 0xe1, 0x78, 0xf2, 0xc3, - 0xa7, 0x8e, 0xd1, 0x11, 0x60, 0x6e, 0x37, 0xf7, 0x1a, 0x1a, 0x19, 0x4f, 0x37, 0x62, 0xc6, 0xa7, - 0x3a, 0x11, 0xc5, 0x5c, 0x76, 0xa9, 0x85, 0x79, 0x30, 0x30, 0x18, 0x22, 0xd9, 0x7c, 0x28, 0x23, - 0xa8, 0x71, 0xa9, 0x7d, 0x2c, 0x03, 0xa8, 0x71, 0xae, 0x25, 0x71, 0xaa, 0x74, 0x04, 0x6b, 0x54, - 0xe3, 0xce, 0x39, 0xc0, 0x6e, 0xed, 0xf7, 0x23, 0x86, 0xf6, 0x23, 0x76, 0x70, 0x0f, 0x9d, 0x33, - 0xb0, 0xaf, 0x44, 0xa6, 0x86, 0xbf, 0xf2, 0x43, 0x64, 0xf8, 0x0d, 0xd4, 0xb2, 0x1c, 0x10, 0xa4, - 0xaf, 0xf5, 0xe4, 0xc0, 0xb5, 0x68, 0xe1, 0xf8, 0x86, 0xa1, 0x55, 0x14, 0x7b, 0x65, 0x75, 0x84, - 0x6e, 0xea, 0x05, 0xfa, 0x17, 0x00, 0x00, 0xff, 0xff, 0x9f, 0x6d, 0xae, 0x22, 0xa6, 0x03, 0x00, - 0x00, -} diff --git a/proto/v2/decode_proto.go b/proto/zipkin_proto3/decode_proto.go similarity index 100% rename from proto/v2/decode_proto.go rename to proto/zipkin_proto3/decode_proto.go diff --git a/proto/v2/decode_proto_test.go b/proto/zipkin_proto3/decode_proto_test.go similarity index 99% rename from proto/v2/decode_proto_test.go rename to proto/zipkin_proto3/decode_proto_test.go index 73d416e..6901403 100644 --- a/proto/v2/decode_proto_test.go +++ b/proto/zipkin_proto3/decode_proto_test.go @@ -26,7 +26,7 @@ import ( "github.com/golang/protobuf/proto" zipkinmodel "github.com/openzipkin/zipkin-go/model" - zipkin_proto3 "github.com/openzipkin/zipkin-go/proto/v2" + zipkin_proto3 "github.com/openzipkin/zipkin-go/proto/zipkin_proto3" ) func TestParseSpans(t *testing.T) { diff --git a/proto/v2/encode_proto.go b/proto/zipkin_proto3/encode_proto.go similarity index 100% rename from proto/v2/encode_proto.go rename to proto/zipkin_proto3/encode_proto.go diff --git a/proto/v2/encode_proto_test.go b/proto/zipkin_proto3/encode_proto_test.go similarity index 97% rename from proto/v2/encode_proto_test.go rename to proto/zipkin_proto3/encode_proto_test.go index 33ec74b..427d6ce 100644 --- a/proto/v2/encode_proto_test.go +++ b/proto/zipkin_proto3/encode_proto_test.go @@ -22,7 +22,7 @@ import ( "time" zipkinmodel "github.com/openzipkin/zipkin-go/model" - zipkin_proto3 "github.com/openzipkin/zipkin-go/proto/v2" + zipkin_proto3 "github.com/openzipkin/zipkin-go/proto/zipkin_proto3" ) func TestExportSpans(t *testing.T) { diff --git a/proto/zipkin_proto3/zipkin.pb.go b/proto/zipkin_proto3/zipkin.pb.go new file mode 100644 index 0000000..e135c0d --- /dev/null +++ b/proto/zipkin_proto3/zipkin.pb.go @@ -0,0 +1,744 @@ +// Copyright 2019 The OpenZipkin Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: proto/zipkin_proto3/zipkin.proto + +package zipkin_proto3 + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// When present, kind clarifies timestamp, duration and remote_endpoint. When +// absent, the span is local or incomplete. Unlike client and server, there +// is no direct critical path latency relationship between producer and +// consumer spans. +type Span_Kind int32 + +const ( + // Default value interpreted as absent. + Span_SPAN_KIND_UNSPECIFIED Span_Kind = 0 + // The span represents the client side of an RPC operation, implying the + // following: + // + // timestamp is the moment a request was sent to the server. + // duration is the delay until a response or an error was received. + // remote_endpoint is the server. + Span_CLIENT Span_Kind = 1 + // The span represents the server side of an RPC operation, implying the + // following: + // + // timestamp is the moment a client request was received. + // duration is the delay until a response was sent or an error. + // remote_endpoint is the client. + Span_SERVER Span_Kind = 2 + // The span represents production of a message to a remote broker, implying + // the following: + // + // timestamp is the moment a message was sent to a destination. + // duration is the delay sending the message, such as batching. + // remote_endpoint is the broker. + Span_PRODUCER Span_Kind = 3 + // The span represents consumption of a message from a remote broker, not + // time spent servicing it. For example, a message processor would be an + // in-process child span of a consumer. Consumer spans imply the following: + // + // timestamp is the moment a message was received from an origin. + // duration is the delay consuming the message, such as from backlog. + // remote_endpoint is the broker. + Span_CONSUMER Span_Kind = 4 +) + +// Enum value maps for Span_Kind. +var ( + Span_Kind_name = map[int32]string{ + 0: "SPAN_KIND_UNSPECIFIED", + 1: "CLIENT", + 2: "SERVER", + 3: "PRODUCER", + 4: "CONSUMER", + } + Span_Kind_value = map[string]int32{ + "SPAN_KIND_UNSPECIFIED": 0, + "CLIENT": 1, + "SERVER": 2, + "PRODUCER": 3, + "CONSUMER": 4, + } +) + +func (x Span_Kind) Enum() *Span_Kind { + p := new(Span_Kind) + *p = x + return p +} + +func (x Span_Kind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Span_Kind) Descriptor() protoreflect.EnumDescriptor { + return file_proto_zipkin_proto3_zipkin_proto_enumTypes[0].Descriptor() +} + +func (Span_Kind) Type() protoreflect.EnumType { + return &file_proto_zipkin_proto3_zipkin_proto_enumTypes[0] +} + +func (x Span_Kind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Span_Kind.Descriptor instead. +func (Span_Kind) EnumDescriptor() ([]byte, []int) { + return file_proto_zipkin_proto3_zipkin_proto_rawDescGZIP(), []int{0, 0} +} + +// A span is a single-host view of an operation. A trace is a series of spans +// (often RPC calls) which nest to form a latency tree. Spans are in the same +// trace when they share the same trace ID. The parent_id field establishes the +// position of one span in the tree. +// +// The root span is where parent_id is Absent and usually has the longest +// duration in the trace. However, nested asynchronous work can materialize as +// child spans whose duration exceed the root span. +// +// Spans usually represent remote activity such as RPC calls, or messaging +// producers and consumers. However, they can also represent in-process +// activity in any position of the trace. For example, a root span could +// represent a server receiving an initial client request. A root span could +// also represent a scheduled job that has no remote context. +// +// Encoding notes: +// +// Epoch timestamp are encoded fixed64 as varint would also be 8 bytes, and more +// expensive to encode and size. Duration is stored uint64, as often the numbers +// are quite small. +// +// Default values are ok, as only natural numbers are used. For example, zero is +// an invalid timestamp and an invalid duration, false values for debug or shared +// are ignorable, and zero-length strings also coerce to null. +// +// The next id is 14. +// +// Note fields up to 15 take 1 byte to encode. Take care when adding new fields +// https://developers.google.com/protocol-buffers/docs/proto3#assigning-tags +type Span struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Randomly generated, unique identifier for a trace, set on all spans within + // it. + // + // This field is required and encoded as 8 or 16 opaque bytes. + TraceId []byte `protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` + // The parent span ID or absent if this the root span in a trace. + ParentId []byte `protobuf:"bytes,2,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` + // Unique identifier for this operation within the trace. + // + // This field is required and encoded as 8 opaque bytes. + Id []byte `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // When present, used to interpret remote_endpoint + Kind Span_Kind `protobuf:"varint,4,opt,name=kind,proto3,enum=zipkin.proto3.Span_Kind" json:"kind,omitempty"` + // The logical operation this span represents in lowercase (e.g. rpc method). + // Leave absent if unknown. + // + // As these are lookup labels, take care to ensure names are low cardinality. + // For example, do not embed variables into the name. + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + // Epoch microseconds of the start of this span, possibly absent if + // incomplete. + // + // For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC + // + // This value should be set directly by instrumentation, using the most + // precise value possible. For example, gettimeofday or multiplying epoch + // millis by 1000. + // + // There are three known edge-cases where this could be reported absent. + // - A span was allocated but never started (ex not yet received a timestamp) + // - The span's start event was lost + // - Data about a completed span (ex tags) were sent after the fact + Timestamp uint64 `protobuf:"fixed64,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // Duration in microseconds of the critical path, if known. Durations of less + // than one are rounded up. Duration of children can be longer than their + // parents due to asynchronous operations. + // + // For example 150 milliseconds is 150000 microseconds. + Duration uint64 `protobuf:"varint,7,opt,name=duration,proto3" json:"duration,omitempty"` + // The host that recorded this span, primarily for query by service name. + // + // Instrumentation should always record this. Usually, absent implies late + // data. The IP address corresponding to this is usually the site local or + // advertised service address. When present, the port indicates the listen + // port. + LocalEndpoint *Endpoint `protobuf:"bytes,8,opt,name=local_endpoint,json=localEndpoint,proto3" json:"local_endpoint,omitempty"` + // When an RPC (or messaging) span, indicates the other side of the + // connection. + // + // By recording the remote endpoint, your trace will contain network context + // even if the peer is not tracing. For example, you can record the IP from + // the "X-Forwarded-For" header or the service name and socket of a remote + // peer. + RemoteEndpoint *Endpoint `protobuf:"bytes,9,opt,name=remote_endpoint,json=remoteEndpoint,proto3" json:"remote_endpoint,omitempty"` + // Associates events that explain latency with the time they happened. + Annotations []*Annotation `protobuf:"bytes,10,rep,name=annotations,proto3" json:"annotations,omitempty"` + // Tags give your span context for search, viewing and analysis. + // + // For example, a key "your_app.version" would let you lookup traces by + // version. A tag "sql.query" isn't searchable, but it can help in debugging + // when viewing a trace. + Tags map[string]string `protobuf:"bytes,11,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // True is a request to store this span even if it overrides sampling policy. + // + // This is true when the "X-B3-Flags" header has a value of 1. + Debug bool `protobuf:"varint,12,opt,name=debug,proto3" json:"debug,omitempty"` + // True if we are contributing to a span started by another tracer (ex on a + // different host). + Shared bool `protobuf:"varint,13,opt,name=shared,proto3" json:"shared,omitempty"` +} + +func (x *Span) Reset() { + *x = Span{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_zipkin_proto3_zipkin_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Span) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Span) ProtoMessage() {} + +func (x *Span) ProtoReflect() protoreflect.Message { + mi := &file_proto_zipkin_proto3_zipkin_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Span.ProtoReflect.Descriptor instead. +func (*Span) Descriptor() ([]byte, []int) { + return file_proto_zipkin_proto3_zipkin_proto_rawDescGZIP(), []int{0} +} + +func (x *Span) GetTraceId() []byte { + if x != nil { + return x.TraceId + } + return nil +} + +func (x *Span) GetParentId() []byte { + if x != nil { + return x.ParentId + } + return nil +} + +func (x *Span) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *Span) GetKind() Span_Kind { + if x != nil { + return x.Kind + } + return Span_SPAN_KIND_UNSPECIFIED +} + +func (x *Span) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Span) GetTimestamp() uint64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *Span) GetDuration() uint64 { + if x != nil { + return x.Duration + } + return 0 +} + +func (x *Span) GetLocalEndpoint() *Endpoint { + if x != nil { + return x.LocalEndpoint + } + return nil +} + +func (x *Span) GetRemoteEndpoint() *Endpoint { + if x != nil { + return x.RemoteEndpoint + } + return nil +} + +func (x *Span) GetAnnotations() []*Annotation { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Span) GetTags() map[string]string { + if x != nil { + return x.Tags + } + return nil +} + +func (x *Span) GetDebug() bool { + if x != nil { + return x.Debug + } + return false +} + +func (x *Span) GetShared() bool { + if x != nil { + return x.Shared + } + return false +} + +// The network context of a node in the service graph. +// +// The next id is 5. +type Endpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Lower-case label of this node in the service graph, such as "favstar". + // Leave absent if unknown. + // + // This is a primary label for trace lookup and aggregation, so it should be + // intuitive and consistent. Many use a name from service discovery. + ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + // 4 byte representation of the primary IPv4 address associated with this + // connection. Absent if unknown. + Ipv4 []byte `protobuf:"bytes,2,opt,name=ipv4,proto3" json:"ipv4,omitempty"` + // 16 byte representation of the primary IPv6 address associated with this + // connection. Absent if unknown. + // + // Prefer using the ipv4 field for mapped addresses. + Ipv6 []byte `protobuf:"bytes,3,opt,name=ipv6,proto3" json:"ipv6,omitempty"` + // Depending on context, this could be a listen port or the client-side of a + // socket. Absent if unknown. + Port int32 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"` +} + +func (x *Endpoint) Reset() { + *x = Endpoint{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_zipkin_proto3_zipkin_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Endpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Endpoint) ProtoMessage() {} + +func (x *Endpoint) ProtoReflect() protoreflect.Message { + mi := &file_proto_zipkin_proto3_zipkin_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Endpoint.ProtoReflect.Descriptor instead. +func (*Endpoint) Descriptor() ([]byte, []int) { + return file_proto_zipkin_proto3_zipkin_proto_rawDescGZIP(), []int{1} +} + +func (x *Endpoint) GetServiceName() string { + if x != nil { + return x.ServiceName + } + return "" +} + +func (x *Endpoint) GetIpv4() []byte { + if x != nil { + return x.Ipv4 + } + return nil +} + +func (x *Endpoint) GetIpv6() []byte { + if x != nil { + return x.Ipv6 + } + return nil +} + +func (x *Endpoint) GetPort() int32 { + if x != nil { + return x.Port + } + return 0 +} + +// Associates an event that explains latency with a timestamp. +// Unlike log statements, annotations are often codes. Ex. "ws" for WireSend +// +// The next id is 3. +type Annotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Epoch microseconds of this event. + // + // For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC + // + // This value should be set directly by instrumentation, using the most + // precise value possible. For example, gettimeofday or multiplying epoch + // millis by 1000. + Timestamp uint64 `protobuf:"fixed64,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // Usually a short tag indicating an event, like "error" + // + // While possible to add larger data, such as garbage collection details, low + // cardinality event names both keep the size of spans down and also are easy + // to search against. + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *Annotation) Reset() { + *x = Annotation{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_zipkin_proto3_zipkin_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Annotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Annotation) ProtoMessage() {} + +func (x *Annotation) ProtoReflect() protoreflect.Message { + mi := &file_proto_zipkin_proto3_zipkin_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Annotation.ProtoReflect.Descriptor instead. +func (*Annotation) Descriptor() ([]byte, []int) { + return file_proto_zipkin_proto3_zipkin_proto_rawDescGZIP(), []int{2} +} + +func (x *Annotation) GetTimestamp() uint64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *Annotation) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +// A list of spans with possibly different trace ids, in no particular order. +// +// This is used for all transports: POST, Kafka messages etc. No other fields +// are expected, This message facilitates the mechanics of encoding a list, as +// a field number is required. The name of this type is the same in the OpenApi +// aka Swagger specification. https://zipkin.io/zipkin-api/#/default/post_spans +type ListOfSpans struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Spans []*Span `protobuf:"bytes,1,rep,name=spans,proto3" json:"spans,omitempty"` +} + +func (x *ListOfSpans) Reset() { + *x = ListOfSpans{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_zipkin_proto3_zipkin_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListOfSpans) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListOfSpans) ProtoMessage() {} + +func (x *ListOfSpans) ProtoReflect() protoreflect.Message { + mi := &file_proto_zipkin_proto3_zipkin_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListOfSpans.ProtoReflect.Descriptor instead. +func (*ListOfSpans) Descriptor() ([]byte, []int) { + return file_proto_zipkin_proto3_zipkin_proto_rawDescGZIP(), []int{3} +} + +func (x *ListOfSpans) GetSpans() []*Span { + if x != nil { + return x.Spans + } + return nil +} + +var File_proto_zipkin_proto3_zipkin_proto protoreflect.FileDescriptor + +var file_proto_zipkin_proto3_zipkin_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2f, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x0d, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x22, 0xfa, 0x04, 0x0a, 0x04, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x18, 0x2e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, + 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, + 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x40, + 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x12, 0x3b, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x7a, 0x69, + 0x70, 0x6b, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x6e, + 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x1a, 0x37, + 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x55, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, + 0x19, 0x0a, 0x15, 0x53, 0x50, 0x41, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x45, 0x52, 0x10, 0x03, + 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x10, 0x04, 0x22, 0x69, + 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x69, 0x70, 0x76, + 0x34, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x40, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x38, 0x0a, 0x0b, 0x4c, + 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x61, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x70, + 0x61, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x7a, 0x69, 0x70, 0x6b, + 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x05, + 0x73, 0x70, 0x61, 0x6e, 0x73, 0x42, 0x47, 0x0a, 0x0e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x32, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, + 0x2f, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2f, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_zipkin_proto3_zipkin_proto_rawDescOnce sync.Once + file_proto_zipkin_proto3_zipkin_proto_rawDescData = file_proto_zipkin_proto3_zipkin_proto_rawDesc +) + +func file_proto_zipkin_proto3_zipkin_proto_rawDescGZIP() []byte { + file_proto_zipkin_proto3_zipkin_proto_rawDescOnce.Do(func() { + file_proto_zipkin_proto3_zipkin_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_zipkin_proto3_zipkin_proto_rawDescData) + }) + return file_proto_zipkin_proto3_zipkin_proto_rawDescData +} + +var file_proto_zipkin_proto3_zipkin_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_proto_zipkin_proto3_zipkin_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_proto_zipkin_proto3_zipkin_proto_goTypes = []interface{}{ + (Span_Kind)(0), // 0: zipkin.proto3.Span.Kind + (*Span)(nil), // 1: zipkin.proto3.Span + (*Endpoint)(nil), // 2: zipkin.proto3.Endpoint + (*Annotation)(nil), // 3: zipkin.proto3.Annotation + (*ListOfSpans)(nil), // 4: zipkin.proto3.ListOfSpans + nil, // 5: zipkin.proto3.Span.TagsEntry +} +var file_proto_zipkin_proto3_zipkin_proto_depIdxs = []int32{ + 0, // 0: zipkin.proto3.Span.kind:type_name -> zipkin.proto3.Span.Kind + 2, // 1: zipkin.proto3.Span.local_endpoint:type_name -> zipkin.proto3.Endpoint + 2, // 2: zipkin.proto3.Span.remote_endpoint:type_name -> zipkin.proto3.Endpoint + 3, // 3: zipkin.proto3.Span.annotations:type_name -> zipkin.proto3.Annotation + 5, // 4: zipkin.proto3.Span.tags:type_name -> zipkin.proto3.Span.TagsEntry + 1, // 5: zipkin.proto3.ListOfSpans.spans:type_name -> zipkin.proto3.Span + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_proto_zipkin_proto3_zipkin_proto_init() } +func file_proto_zipkin_proto3_zipkin_proto_init() { + if File_proto_zipkin_proto3_zipkin_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_zipkin_proto3_zipkin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Span); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_zipkin_proto3_zipkin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Endpoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_zipkin_proto3_zipkin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Annotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_zipkin_proto3_zipkin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListOfSpans); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_zipkin_proto3_zipkin_proto_rawDesc, + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_zipkin_proto3_zipkin_proto_goTypes, + DependencyIndexes: file_proto_zipkin_proto3_zipkin_proto_depIdxs, + EnumInfos: file_proto_zipkin_proto3_zipkin_proto_enumTypes, + MessageInfos: file_proto_zipkin_proto3_zipkin_proto_msgTypes, + }.Build() + File_proto_zipkin_proto3_zipkin_proto = out.File + file_proto_zipkin_proto3_zipkin_proto_rawDesc = nil + file_proto_zipkin_proto3_zipkin_proto_goTypes = nil + file_proto_zipkin_proto3_zipkin_proto_depIdxs = nil +} diff --git a/proto/v2/zipkin.proto b/proto/zipkin_proto3/zipkin.proto similarity index 97% rename from proto/v2/zipkin.proto rename to proto/zipkin_proto3/zipkin.proto index 14cdb35..93da8f3 100644 --- a/proto/v2/zipkin.proto +++ b/proto/zipkin_proto3/zipkin.proto @@ -14,12 +14,16 @@ syntax = "proto3"; +// This is the package for using protobuf with Zipkin API V2, but for historical +// reasons uses the protoc syntax version instead. package zipkin.proto3; // In Java, the closest model type to this proto is in the "zipkin2" package option java_package = "zipkin2.proto3"; option java_multiple_files = true; +option go_package = "github.com/openzipkin/zipkin-go/proto/zipkin_proto3"; + // A span is a single-host view of an operation. A trace is a series of spans // (often RPC calls) which nest to form a latency tree. Spans are in the same // trace when they share the same trace ID. The parent_id field establishes the diff --git a/reporter/kafka/kafka_test.go b/reporter/kafka/kafka_test.go index 78234b8..86aff31 100644 --- a/reporter/kafka/kafka_test.go +++ b/reporter/kafka/kafka_test.go @@ -24,7 +24,7 @@ import ( "github.com/Shopify/sarama" "github.com/openzipkin/zipkin-go/model" - zipkin_proto3 "github.com/openzipkin/zipkin-go/proto/v2" + zipkin_proto3 "github.com/openzipkin/zipkin-go/proto/zipkin_proto3" "github.com/openzipkin/zipkin-go/reporter" "github.com/openzipkin/zipkin-go/reporter/kafka" )