You've already forked opentelemetry-go
mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-09-16 09:26:25 +02:00
add more test cases to jaeger exporter and fix comments (#242)
* fix comments and add jaeger tests * add more jaeger tests * remove TODOs and add more jaeger tests * remove TODOs and add more jaeger tests * fix jaeger tests * add jaeger agent tests * fix merge conflicts and fix test * fix test name
This commit is contained in:
@@ -25,6 +25,7 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc
|
||||
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
|
||||
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
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/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||
@@ -119,9 +120,11 @@ github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgo
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
|
||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||
github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
|
||||
@@ -148,6 +151,7 @@ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9
|
||||
github.com/pelletier/go-toml v1.5.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
||||
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
|
||||
@@ -189,6 +193,7 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||
@@ -306,6 +311,7 @@ google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRn
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
@@ -314,6 +320,7 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD
|
||||
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
|
||||
gopkg.in/yaml.v2 v2.2.4/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-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
|
@@ -77,7 +77,7 @@ func (a *agentClientUDP) EmitBatch(batch *gen.Batch) error {
|
||||
return err
|
||||
}
|
||||
if a.thriftBuffer.Len() > a.maxPacketSize {
|
||||
return fmt.Errorf("Data does not fit within one UDP packet; size %d, max %d, spans %d",
|
||||
return fmt.Errorf("data does not fit within one UDP packet; size %d, max %d, spans %d",
|
||||
a.thriftBuffer.Len(), a.maxPacketSize, len(batch.Spans))
|
||||
}
|
||||
_, err := a.connUDP.Write(a.thriftBuffer.Bytes())
|
||||
|
@@ -7,7 +7,8 @@ replace go.opentelemetry.io => ../../..
|
||||
require (
|
||||
github.com/apache/thrift v0.13.0
|
||||
github.com/google/go-cmp v0.3.1
|
||||
go.opentelemetry.io v0.0.0-20191025183852-68310ab97435
|
||||
github.com/stretchr/testify v1.4.0
|
||||
go.opentelemetry.io v0.0.0-00010101000000-000000000000
|
||||
google.golang.org/api v0.11.0
|
||||
google.golang.org/grpc v1.24.0
|
||||
)
|
||||
|
@@ -25,6 +25,7 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc
|
||||
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
|
||||
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
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/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||
@@ -59,6 +60,7 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/mock v1.2.0 h1:28o5sBqPkBsMGnC6b4MvE2TzSr5/AT4c/1fLqVGIwlk=
|
||||
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
@@ -120,9 +122,11 @@ github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgo
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
|
||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||
github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
|
||||
@@ -149,6 +153,7 @@ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9
|
||||
github.com/pelletier/go-toml v1.5.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
||||
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
|
||||
@@ -187,9 +192,11 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM
|
||||
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
|
||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||
@@ -307,6 +314,7 @@ google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRn
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
@@ -315,6 +323,7 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD
|
||||
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
|
||||
gopkg.in/yaml.v2 v2.2.4/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-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
|
@@ -144,6 +144,7 @@ type Exporter struct {
|
||||
}
|
||||
|
||||
// RegisterSimpleSpanProcessor registers e as SimpleSpanProcessor.
|
||||
//TODO(eran-levy): deprecate - already registered in NewProvider
|
||||
func (e *Exporter) RegisterSimpleSpanProcessor() {
|
||||
e.once.Do(func() {
|
||||
ssp := trace.NewSimpleSpanProcessor(e)
|
||||
|
@@ -15,6 +15,7 @@
|
||||
package jaeger
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/binary"
|
||||
"sort"
|
||||
"testing"
|
||||
@@ -22,17 +23,125 @@ import (
|
||||
|
||||
"go.opentelemetry.io/api/key"
|
||||
|
||||
apitrace "go.opentelemetry.io/api/trace"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"google.golang.org/grpc/codes"
|
||||
|
||||
apitrace "go.opentelemetry.io/api/trace"
|
||||
"go.opentelemetry.io/global"
|
||||
sdktrace "go.opentelemetry.io/sdk/trace"
|
||||
|
||||
"go.opentelemetry.io/api/core"
|
||||
gen "go.opentelemetry.io/exporter/trace/jaeger/internal/gen-go/jaeger"
|
||||
"go.opentelemetry.io/sdk/export"
|
||||
)
|
||||
|
||||
// TODO(rghetia): Test export.
|
||||
func TestNewExporter(t *testing.T) {
|
||||
const (
|
||||
collectorEndpoint = "http://localhost"
|
||||
serviceName = "test-service"
|
||||
tagKey = "key"
|
||||
tagVal = "val"
|
||||
)
|
||||
// Create Jaeger Exporter
|
||||
exp, err := NewExporter(
|
||||
WithCollectorEndpoint(collectorEndpoint),
|
||||
WithProcess(Process{
|
||||
ServiceName: serviceName,
|
||||
Tags: []core.KeyValue{
|
||||
key.String(tagKey, tagVal),
|
||||
},
|
||||
}),
|
||||
)
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, serviceName, exp.process.ServiceName)
|
||||
assert.Len(t, exp.process.Tags, 1)
|
||||
}
|
||||
|
||||
func TestNewExporterShouldFailIfCollectorEndpointEmpty(t *testing.T) {
|
||||
_, err := NewExporter(
|
||||
WithCollectorEndpoint(""),
|
||||
)
|
||||
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
type testCollectorEnpoint struct {
|
||||
spansUploaded []*gen.Span
|
||||
}
|
||||
|
||||
func (c *testCollectorEnpoint) upload(batch *gen.Batch) error {
|
||||
c.spansUploaded = append(c.spansUploaded, batch.Spans...)
|
||||
return nil
|
||||
}
|
||||
|
||||
var _ batchUploader = (*testCollectorEnpoint)(nil)
|
||||
|
||||
func withTestCollectorEndpoint() func() (batchUploader, error) {
|
||||
return func() (batchUploader, error) {
|
||||
return &testCollectorEnpoint{}, nil
|
||||
}
|
||||
}
|
||||
|
||||
func TestExporter_ExportSpan(t *testing.T) {
|
||||
const (
|
||||
serviceName = "test-service"
|
||||
tagKey = "key"
|
||||
tagVal = "val"
|
||||
)
|
||||
// Create Jaeger Exporter
|
||||
exp, err := NewExporter(
|
||||
withTestCollectorEndpoint(),
|
||||
WithProcess(Process{
|
||||
ServiceName: serviceName,
|
||||
Tags: []core.KeyValue{
|
||||
key.String(tagKey, tagVal),
|
||||
},
|
||||
}),
|
||||
)
|
||||
|
||||
assert.NoError(t, err)
|
||||
|
||||
tp, err := sdktrace.NewProvider(
|
||||
sdktrace.WithConfig(sdktrace.Config{DefaultSampler: sdktrace.AlwaysSample()}),
|
||||
sdktrace.WithSyncer(exp))
|
||||
|
||||
assert.NoError(t, err)
|
||||
|
||||
global.SetTraceProvider(tp)
|
||||
_, span := global.TraceProvider().GetTracer("test-tracer").Start(context.Background(), "test-span")
|
||||
span.End()
|
||||
|
||||
assert.True(t, span.SpanContext().IsValid())
|
||||
|
||||
exp.Flush()
|
||||
tc := exp.uploader.(*testCollectorEnpoint)
|
||||
assert.True(t, len(tc.spansUploaded) == 1)
|
||||
}
|
||||
|
||||
func TestNewExporterWithAgentEndpoint(t *testing.T) {
|
||||
const agentEndpoint = "localhost:6831"
|
||||
// Create Jaeger Exporter
|
||||
_, err := NewExporter(
|
||||
WithAgentEndpoint(agentEndpoint),
|
||||
)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestNewExporterWithAgentShouldFailIfEndpointInvalid(t *testing.T) {
|
||||
//empty
|
||||
_, err := NewExporter(
|
||||
WithAgentEndpoint(""),
|
||||
)
|
||||
assert.Error(t, err)
|
||||
|
||||
//invalid endpoint addr
|
||||
_, err = NewExporter(
|
||||
WithAgentEndpoint("http://localhost"),
|
||||
)
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
func Test_spanDataToThrift(t *testing.T) {
|
||||
now := time.Now()
|
||||
@@ -42,6 +151,7 @@ func Test_spanDataToThrift(t *testing.T) {
|
||||
linkTraceID, _ := core.TraceIDFromHex("0102030405060709090a0b0c0d0e0f11")
|
||||
linkSpanID, _ := core.SpanIDFromHex("0102030405060709")
|
||||
|
||||
messageEventValue := "event-test"
|
||||
keyValue := "value"
|
||||
statusCodeValue := int64(2)
|
||||
doubleValue := float64(123.456)
|
||||
@@ -77,7 +187,9 @@ func Test_spanDataToThrift(t *testing.T) {
|
||||
// Jaeger doesn't handle Uint tags, this should be ignored.
|
||||
key.Uint64("ignored", 123),
|
||||
},
|
||||
// TODO: [rghetia] add events test after event is concrete type.
|
||||
MessageEvents: []export.Event{
|
||||
{Message: messageEventValue, Attributes: []core.KeyValue{key.String("k1", keyValue)}, Time: now},
|
||||
},
|
||||
Status: codes.Unknown,
|
||||
},
|
||||
want: &gen.Span{
|
||||
@@ -102,7 +214,23 @@ func Test_spanDataToThrift(t *testing.T) {
|
||||
SpanId: int64(binary.BigEndian.Uint64(linkSpanID[:])),
|
||||
},
|
||||
},
|
||||
// TODO [rghetia]: check Logs when event is added.
|
||||
Logs: []*gen.Log{
|
||||
{
|
||||
Timestamp: now.UnixNano() / 1000,
|
||||
Fields: []*gen.Tag{
|
||||
{
|
||||
Key: "k1",
|
||||
VStr: &keyValue,
|
||||
VType: gen.TagType_STRING,
|
||||
},
|
||||
{
|
||||
Key: "message",
|
||||
VStr: &messageEventValue,
|
||||
VType: gen.TagType_STRING,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@@ -32,8 +32,7 @@ type SpanData struct {
|
||||
StartTime time.Time
|
||||
// The wall clock time of EndTime will be adjusted to always be offset
|
||||
// from StartTime by the duration of the span.
|
||||
EndTime time.Time
|
||||
// The values of Attributes each have type string, bool, or int64.
|
||||
EndTime time.Time
|
||||
Attributes []core.KeyValue
|
||||
MessageEvents []Event
|
||||
Links []apitrace.Link
|
||||
|
@@ -321,10 +321,10 @@ func TestSetSpanAttributesOverLimit(t *testing.T) {
|
||||
tp, _ := NewProvider(WithConfig(cfg), WithSyncer(te))
|
||||
|
||||
span := startSpan(tp, "SpanAttributesOverLimit")
|
||||
span.SetAttribute(key.New("key1").String("value1"))
|
||||
span.SetAttribute(key.New("key2").String("value2"))
|
||||
span.SetAttribute(key.New("key1").String("value3")) // Replace key1.
|
||||
span.SetAttribute(key.New("key4").String("value4")) // Remove key2 and add key4
|
||||
span.SetAttribute(key.Bool("key1", true))
|
||||
span.SetAttribute(key.String("key2", "value2"))
|
||||
span.SetAttribute(key.Bool("key1", false)) // Replace key1.
|
||||
span.SetAttribute(key.Int64("key4", 4)) // Remove key2 and add key4
|
||||
got, err := endSpan(te, span)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -338,8 +338,8 @@ func TestSetSpanAttributesOverLimit(t *testing.T) {
|
||||
ParentSpanID: sid,
|
||||
Name: "SpanAttributesOverLimit/span0",
|
||||
Attributes: []core.KeyValue{
|
||||
key.String("key1", "value3"),
|
||||
key.String("key4", "value4"),
|
||||
key.Bool("key1", false),
|
||||
key.Int64("key4", 4),
|
||||
},
|
||||
SpanKind: "internal",
|
||||
HasRemoteParent: true,
|
||||
@@ -356,13 +356,13 @@ func TestEvents(t *testing.T) {
|
||||
|
||||
span := startSpan(tp, "Events")
|
||||
k1v1 := key.New("key1").String("value1")
|
||||
k2v2 := key.New("key2").String("value2")
|
||||
k3v3 := key.New("key3").String("value3")
|
||||
k2v2 := key.Bool("key2", true)
|
||||
k3v3 := key.Int64("key3", 3)
|
||||
|
||||
span.AddEvent(context.Background(), "foo", key.New("key1").String("value1"))
|
||||
span.AddEvent(context.Background(), "bar",
|
||||
key.New("key2").String("value2"),
|
||||
key.New("key3").String("value3"),
|
||||
key.Bool("key2", true),
|
||||
key.Int64("key3", 3),
|
||||
)
|
||||
got, err := endSpan(te, span)
|
||||
if err != nil {
|
||||
@@ -401,17 +401,17 @@ func TestEventsOverLimit(t *testing.T) {
|
||||
|
||||
span := startSpan(tp, "EventsOverLimit")
|
||||
k1v1 := key.New("key1").String("value1")
|
||||
k2v2 := key.New("key2").String("value2")
|
||||
k2v2 := key.Bool("key2", false)
|
||||
k3v3 := key.New("key3").String("value3")
|
||||
|
||||
span.AddEvent(context.Background(), "fooDrop", key.New("key1").String("value1"))
|
||||
span.AddEvent(context.Background(), "barDrop",
|
||||
key.New("key2").String("value2"),
|
||||
key.Bool("key2", true),
|
||||
key.New("key3").String("value3"),
|
||||
)
|
||||
span.AddEvent(context.Background(), "foo", key.New("key1").String("value1"))
|
||||
span.AddEvent(context.Background(), "bar",
|
||||
key.New("key2").String("value2"),
|
||||
key.Bool("key2", false),
|
||||
key.New("key3").String("value3"),
|
||||
)
|
||||
got, err := endSpan(te, span)
|
||||
|
Reference in New Issue
Block a user