diff --git a/example/otel-collector/go.sum b/example/otel-collector/go.sum index 1bb84efa688..2d47da32844 100644 --- a/example/otel-collector/go.sum +++ b/example/otel-collector/go.sum @@ -414,7 +414,6 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/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.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= 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= @@ -447,7 +446,6 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ 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 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -598,7 +596,6 @@ github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f26 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/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -714,8 +711,9 @@ github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoT github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/open-telemetry/opentelemetry-collector v0.3.0 h1:/i106g9t6xNQ4hOAuczEwW10UX+S8ZnkdWDGawo9fyg= github.com/open-telemetry/opentelemetry-collector v0.3.0/go.mod h1:c5EgyLBK6FoGCaJpOEQ0j+sHqmfuoRzOm29tdVA/wDg= -github.com/open-telemetry/opentelemetry-proto v0.3.0 h1:+ASAtcayvoELyCF40+rdCMlBOhZIn5TPDez85zSYc30= github.com/open-telemetry/opentelemetry-proto v0.3.0/go.mod h1:PMR5GI0F7BSpio+rBGFxNm6SLzg3FypDTcFuQZnO+F8= +github.com/open-telemetry/opentelemetry-proto v0.4.0 h1:7EGs7QkdnR039zcQv71/wPLeeUUzqpH855VEWN4IHTE= +github.com/open-telemetry/opentelemetry-proto v0.4.0/go.mod h1:PMR5GI0F7BSpio+rBGFxNm6SLzg3FypDTcFuQZnO+F8= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= @@ -888,7 +886,6 @@ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoH github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 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/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -1028,7 +1025,6 @@ golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191002035440-2ec189313ef0 h1:2mqDk8w/o6UmeUCu5Qiq2y7iMf6anbx+YA8d1JFoFrs= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191003171128-d98b1b443823/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa h1:F+8P+gmewFQYRk6JoLQLwjBCTu3mcIURZfNkVweuRKA= @@ -1069,7 +1065,6 @@ golang.org/x/sys v0.0.0-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190116161447-11f53e031339/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/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/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1202,7 +1197,6 @@ google.golang.org/genproto v0.0.0-20190626174449-989357319d63/go.mod h1:z3L6/3dT google.golang.org/genproto v0.0.0-20190708153700-3bdd9d9f5532/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191009194640-548a555dbc03 h1:4HYDjxeNXAOTv3o1N2tjo8UUSlhQgAD52FVkwxnWgM8= @@ -1256,9 +1250,7 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/exporters/otlp/go.mod b/exporters/otlp/go.mod index d5299e0cdb5..08ae4641cb2 100644 --- a/exporters/otlp/go.mod +++ b/exporters/otlp/go.mod @@ -7,7 +7,7 @@ require ( github.com/google/go-cmp v0.5.0 github.com/grpc-ecosystem/grpc-gateway v1.14.3 // indirect github.com/kr/pretty v0.2.0 // indirect - github.com/open-telemetry/opentelemetry-proto v0.3.0 + github.com/open-telemetry/opentelemetry-proto v0.4.0 github.com/stretchr/testify v1.6.1 go.opentelemetry.io/otel v0.6.0 golang.org/x/text v0.3.2 // indirect diff --git a/exporters/otlp/go.sum b/exporters/otlp/go.sum index 5c30cac5b59..f807950fffe 100644 --- a/exporters/otlp/go.sum +++ b/exporters/otlp/go.sum @@ -5,11 +5,9 @@ github.com/DataDog/sketches-go v0.0.0-20190923095040-43f19ad77ff7/go.mod h1:Q5Db github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/benbjohnson/clock v1.0.3 h1:vkLuvpK4fmtSCuo60+yC63p7y0BmQ8gm5ZXGuBCJyXg= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= -github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= 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.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= 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= @@ -20,12 +18,9 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= 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 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= 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= @@ -35,7 +30,6 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= 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= @@ -48,21 +42,19 @@ github.com/grpc-ecosystem/grpc-gateway v1.14.3 h1:OCJlWkOUoTnl0neNGlf4fUm3TmbEtg github.com/grpc-ecosystem/grpc-gateway v1.14.3/go.mod h1:6CwZWGDSPRJidgKAtJVvND6soZe6fT7iteq8wDPdhb0= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -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/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 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/open-telemetry/opentelemetry-proto v0.3.0 h1:+ASAtcayvoELyCF40+rdCMlBOhZIn5TPDez85zSYc30= -github.com/open-telemetry/opentelemetry-proto v0.3.0/go.mod h1:PMR5GI0F7BSpio+rBGFxNm6SLzg3FypDTcFuQZnO+F8= +github.com/open-telemetry/opentelemetry-proto v0.4.0 h1:7EGs7QkdnR039zcQv71/wPLeeUUzqpH855VEWN4IHTE= +github.com/open-telemetry/opentelemetry-proto v0.4.0/go.mod h1:PMR5GI0F7BSpio+rBGFxNm6SLzg3FypDTcFuQZnO+F8= github.com/opentracing/opentracing-go v1.1.1-0.20190913142402-a7454ce5950e/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= 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_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -74,20 +66,16 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl 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-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/net v0.0.0-20191002035440-2ec189313ef0 h1:2mqDk8w/o6UmeUCu5Qiq2y7iMf6anbx+YA8d1JFoFrs= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= 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-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/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -102,7 +90,6 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T 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/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191009194640-548a555dbc03 h1:4HYDjxeNXAOTv3o1N2tjo8UUSlhQgAD52FVkwxnWgM8= @@ -111,7 +98,6 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= diff --git a/exporters/otlp/internal/transform/attribute.go b/exporters/otlp/internal/transform/attribute.go index b3ca6087ab3..9d32ba494bf 100644 --- a/exporters/otlp/internal/transform/attribute.go +++ b/exporters/otlp/internal/transform/attribute.go @@ -24,12 +24,12 @@ import ( ) // Attributes transforms a slice of KeyValues into a slice of OTLP attribute key-values. -func Attributes(attrs []kv.KeyValue) []*commonpb.AttributeKeyValue { +func Attributes(attrs []kv.KeyValue) []*commonpb.KeyValue { if len(attrs) == 0 { return nil } - out := make([]*commonpb.AttributeKeyValue, 0, len(attrs)) + out := make([]*commonpb.KeyValue, 0, len(attrs)) for _, kv := range attrs { out = append(out, toAttribute(kv)) } @@ -37,12 +37,12 @@ func Attributes(attrs []kv.KeyValue) []*commonpb.AttributeKeyValue { } // ResourceAttributes transforms a Resource into a slice of OTLP attribute key-values. -func ResourceAttributes(resource *resource.Resource) []*commonpb.AttributeKeyValue { +func ResourceAttributes(resource *resource.Resource) []*commonpb.KeyValue { if resource.Len() == 0 { return nil } - out := make([]*commonpb.AttributeKeyValue, 0, resource.Len()) + out := make([]*commonpb.KeyValue, 0, resource.Len()) for iter := resource.Iter(); iter.Next(); { out = append(out, toAttribute(iter.Attribute())) } @@ -50,43 +50,36 @@ func ResourceAttributes(resource *resource.Resource) []*commonpb.AttributeKeyVal return out } -func toAttribute(v kv.KeyValue) *commonpb.AttributeKeyValue { +func toAttribute(v kv.KeyValue) *commonpb.KeyValue { + result := &commonpb.KeyValue{ + Key: string(v.Key), + Value: new(commonpb.AnyValue), + } switch v.Value.Type() { case value.BOOL: - return &commonpb.AttributeKeyValue{ - Key: string(v.Key), - Type: commonpb.AttributeKeyValue_BOOL, + result.Value.Value = &commonpb.AnyValue_BoolValue{ BoolValue: v.Value.AsBool(), } case value.INT64, value.INT32, value.UINT32, value.UINT64: - return &commonpb.AttributeKeyValue{ - Key: string(v.Key), - Type: commonpb.AttributeKeyValue_INT, + result.Value.Value = &commonpb.AnyValue_IntValue{ IntValue: v.Value.AsInt64(), } case value.FLOAT32: - return &commonpb.AttributeKeyValue{ - Key: string(v.Key), - Type: commonpb.AttributeKeyValue_DOUBLE, + result.Value.Value = &commonpb.AnyValue_DoubleValue{ DoubleValue: float64(v.Value.AsFloat32()), } case value.FLOAT64: - return &commonpb.AttributeKeyValue{ - Key: string(v.Key), - Type: commonpb.AttributeKeyValue_DOUBLE, + result.Value.Value = &commonpb.AnyValue_DoubleValue{ DoubleValue: v.Value.AsFloat64(), } case value.STRING: - return &commonpb.AttributeKeyValue{ - Key: string(v.Key), - Type: commonpb.AttributeKeyValue_STRING, + result.Value.Value = &commonpb.AnyValue_StringValue{ StringValue: v.Value.AsString(), } default: - return &commonpb.AttributeKeyValue{ - Key: string(v.Key), - Type: commonpb.AttributeKeyValue_STRING, + result.Value.Value = &commonpb.AnyValue_StringValue{ StringValue: "INVALID", } } + return result } diff --git a/exporters/otlp/internal/transform/attribute_test.go b/exporters/otlp/internal/transform/attribute_test.go index e6dea24d58d..463a58b34d7 100644 --- a/exporters/otlp/internal/transform/attribute_test.go +++ b/exporters/otlp/internal/transform/attribute_test.go @@ -26,7 +26,7 @@ import ( func TestAttributes(t *testing.T) { for _, test := range []struct { attrs []kv.KeyValue - expected []*commonpb.AttributeKeyValue + expected []*commonpb.KeyValue }{ {nil, nil}, { @@ -42,56 +42,86 @@ func TestAttributes(t *testing.T) { kv.String("string to string", "string"), kv.Bool("bool to bool", true), }, - []*commonpb.AttributeKeyValue{ + []*commonpb.KeyValue{ { - Key: "int to int", - Type: commonpb.AttributeKeyValue_INT, - IntValue: 123, + Key: "int to int", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_IntValue{ + IntValue: 123, + }, + }, }, { - Key: "uint to int", - Type: commonpb.AttributeKeyValue_INT, - IntValue: 1234, + Key: "uint to int", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_IntValue{ + IntValue: 1234, + }, + }, }, { - Key: "int32 to int", - Type: commonpb.AttributeKeyValue_INT, - IntValue: 12345, + Key: "int32 to int", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_IntValue{ + IntValue: 12345, + }, + }, }, { - Key: "uint32 to int", - Type: commonpb.AttributeKeyValue_INT, - IntValue: 123456, + Key: "uint32 to int", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_IntValue{ + IntValue: 123456, + }, + }, }, { - Key: "int64 to int64", - Type: commonpb.AttributeKeyValue_INT, - IntValue: 1234567, + Key: "int64 to int64", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_IntValue{ + IntValue: 1234567, + }, + }, }, { - Key: "uint64 to int64", - Type: commonpb.AttributeKeyValue_INT, - IntValue: 12345678, + Key: "uint64 to int64", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_IntValue{ + IntValue: 12345678, + }, + }, }, { - Key: "float32 to double", - Type: commonpb.AttributeKeyValue_DOUBLE, - DoubleValue: 3.14, + Key: "float32 to double", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_DoubleValue{ + DoubleValue: 3.14, + }, + }, }, { - Key: "float64 to double", - Type: commonpb.AttributeKeyValue_DOUBLE, - DoubleValue: 1.61, + Key: "float64 to double", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_DoubleValue{ + DoubleValue: 1.61, + }, + }, }, { - Key: "string to string", - Type: commonpb.AttributeKeyValue_STRING, - StringValue: "string", + Key: "string to string", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_StringValue{ + StringValue: "string", + }, + }, }, { - Key: "bool to bool", - Type: commonpb.AttributeKeyValue_BOOL, - BoolValue: true, + Key: "bool to bool", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_BoolValue{ + BoolValue: true, + }, + }, }, }, }, @@ -101,11 +131,16 @@ func TestAttributes(t *testing.T) { continue } for i, actual := range got { - if actual.Type == commonpb.AttributeKeyValue_DOUBLE { - if !assert.InDelta(t, test.expected[i].DoubleValue, actual.DoubleValue, 0.01) { + if a, ok := actual.Value.Value.(*commonpb.AnyValue_DoubleValue); ok { + e, ok := test.expected[i].Value.Value.(*commonpb.AnyValue_DoubleValue) + if !ok { + t.Errorf("expected AnyValue_DoubleValue, got %T", test.expected[i].Value.Value) continue } - test.expected[i].DoubleValue = actual.DoubleValue + if !assert.InDelta(t, e.DoubleValue, a.DoubleValue, 0.01) { + continue + } + e.DoubleValue = a.DoubleValue } assert.Equal(t, test.expected[i], actual) } diff --git a/exporters/otlp/internal/transform/metric.go b/exporters/otlp/internal/transform/metric.go index 04f14654101..5f1e6009606 100644 --- a/exporters/otlp/internal/transform/metric.go +++ b/exporters/otlp/internal/transform/metric.go @@ -258,25 +258,26 @@ func sum(record export.Record, a aggregation.Sum) (*metricpb.Metric, error) { Name: desc.Name(), Description: desc.Description(), Unit: string(desc.Unit()), - Labels: stringKeyValues(labels.Iter()), }, } switch n := desc.NumberKind(); n { case metric.Int64NumberKind: - m.MetricDescriptor.Type = metricpb.MetricDescriptor_COUNTER_INT64 + m.MetricDescriptor.Type = metricpb.MetricDescriptor_INT64 m.Int64DataPoints = []*metricpb.Int64DataPoint{ { Value: sum.CoerceToInt64(n), + Labels: stringKeyValues(labels.Iter()), StartTimeUnixNano: uint64(record.StartTime().UnixNano()), TimeUnixNano: uint64(record.EndTime().UnixNano()), }, } case metric.Float64NumberKind: - m.MetricDescriptor.Type = metricpb.MetricDescriptor_COUNTER_DOUBLE + m.MetricDescriptor.Type = metricpb.MetricDescriptor_DOUBLE m.DoubleDataPoints = []*metricpb.DoubleDataPoint{ { Value: sum.CoerceToFloat64(n), + Labels: stringKeyValues(labels.Iter()), StartTimeUnixNano: uint64(record.StartTime().UnixNano()), TimeUnixNano: uint64(record.EndTime().UnixNano()), }, @@ -322,12 +323,12 @@ func minMaxSumCount(record export.Record, a aggregation.MinMaxSumCount) (*metric Description: desc.Description(), Unit: string(desc.Unit()), Type: metricpb.MetricDescriptor_SUMMARY, - Labels: stringKeyValues(labels.Iter()), }, SummaryDataPoints: []*metricpb.SummaryDataPoint{ { - Count: uint64(count), - Sum: sum.CoerceToFloat64(numKind), + Labels: stringKeyValues(labels.Iter()), + Count: uint64(count), + Sum: sum.CoerceToFloat64(numKind), PercentileValues: []*metricpb.SummaryDataPoint_ValueAtPercentile{ { Percentile: 0.0, diff --git a/exporters/otlp/internal/transform/metric_test.go b/exporters/otlp/internal/transform/metric_test.go index 53912690c68..e63d7a4914c 100644 --- a/exporters/otlp/internal/transform/metric_test.go +++ b/exporters/otlp/internal/transform/metric_test.go @@ -133,7 +133,6 @@ func TestMinMaxSumCountMetricDescriptor(t *testing.T) { Description: "test-a-description", Unit: "1", Type: metricpb.MetricDescriptor_SUMMARY, - Labels: nil, }, }, { @@ -148,7 +147,6 @@ func TestMinMaxSumCountMetricDescriptor(t *testing.T) { Description: "test-b-description", Unit: "By", Type: metricpb.MetricDescriptor_SUMMARY, - Labels: []*commonpb.StringKeyValue{{Key: "A", Value: "1"}}, }, }, } @@ -239,8 +237,7 @@ func TestSumMetricDescriptor(t *testing.T) { Name: "sum-test-a", Description: "test-a-description", Unit: "1", - Type: metricpb.MetricDescriptor_COUNTER_INT64, - Labels: nil, + Type: metricpb.MetricDescriptor_INT64, }, }, { @@ -254,8 +251,7 @@ func TestSumMetricDescriptor(t *testing.T) { Name: "sum-test-b", Description: "test-b-description", Unit: "ms", - Type: metricpb.MetricDescriptor_COUNTER_DOUBLE, - Labels: []*commonpb.StringKeyValue{{Key: "A", Value: "1"}}, + Type: metricpb.MetricDescriptor_DOUBLE, }, }, } diff --git a/exporters/otlp/mock_collector_test.go b/exporters/otlp/mock_collector_test.go index b391014d33c..78cb33e7650 100644 --- a/exporters/otlp/mock_collector_test.go +++ b/exporters/otlp/mock_collector_test.go @@ -113,7 +113,7 @@ func resourceString(res *resourcepb.Resource) string { return rstr } -func sortedAttributes(attrs []*commonpb.AttributeKeyValue) []*commonpb.AttributeKeyValue { +func sortedAttributes(attrs []*commonpb.KeyValue) []*commonpb.KeyValue { sort.Slice(attrs[:], func(i, j int) bool { return attrs[i].Key < attrs[j].Key }) diff --git a/exporters/otlp/otlp_integration_test.go b/exporters/otlp/otlp_integration_test.go index 84edf1b56a0..a5185656aa0 100644 --- a/exporters/otlp/otlp_integration_test.go +++ b/exporters/otlp/otlp_integration_test.go @@ -25,6 +25,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + commonpb "github.com/open-telemetry/opentelemetry-proto/gen/go/common/v1" metricpb "github.com/open-telemetry/opentelemetry-proto/gen/go/metrics/v1" "go.opentelemetry.io/otel/api/kv" @@ -212,7 +213,7 @@ func newExporterEndToEndTest(t *testing.T, additionalOpts []otlp.ExporterOption) if gotName, want := s.Name, "AlwaysSample"; gotName != want { t.Fatalf("span name: got %s, want %s", gotName, want) } - attrMap[s.Attributes[0].IntValue] = true + attrMap[s.Attributes[0].Value.Value.(*commonpb.AnyValue_IntValue).IntValue] = true } if got, want := len(attrMap), m; got != want { t.Fatalf("span attribute unique values: got %d want %d", got, want) @@ -241,12 +242,12 @@ func newExporterEndToEndTest(t *testing.T, additionalOpts []otlp.ExporterOption) case metric.CounterKind: switch data.nKind { case metricapi.Int64NumberKind: - assert.Equal(t, metricpb.MetricDescriptor_COUNTER_INT64.String(), desc.GetType().String()) + assert.Equal(t, metricpb.MetricDescriptor_INT64.String(), desc.GetType().String()) if dp := m.GetInt64DataPoints(); assert.Len(t, dp, 1) { assert.Equal(t, data.val, dp[0].Value, "invalid value for %q", desc.Name) } case metricapi.Float64NumberKind: - assert.Equal(t, metricpb.MetricDescriptor_COUNTER_DOUBLE.String(), desc.GetType().String()) + assert.Equal(t, metricpb.MetricDescriptor_DOUBLE.String(), desc.GetType().String()) if dp := m.GetDoubleDataPoints(); assert.Len(t, dp, 1) { assert.Equal(t, float64(data.val), dp[0].Value, "invalid value for %q", desc.Name) } diff --git a/exporters/otlp/otlp_metric_test.go b/exporters/otlp/otlp_metric_test.go index 280e7ae2028..417259cb836 100644 --- a/exporters/otlp/otlp_metric_test.go +++ b/exporters/otlp/otlp_metric_test.go @@ -107,50 +107,53 @@ var ( testInstA = resource.New(kv.String("instance", "tester-a")) testInstB = resource.New(kv.String("instance", "tester-b")) - cpu1MD = &metricpb.MetricDescriptor{ + md = &metricpb.MetricDescriptor{ Name: "int64-count", - Type: metricpb.MetricDescriptor_COUNTER_INT64, - Labels: []*commonpb.StringKeyValue{ - { - Key: "CPU", - Value: "1", - }, - { - Key: "host", - Value: "test.com", - }, + Type: metricpb.MetricDescriptor_INT64, + } + + cpu1Labels = []*commonpb.StringKeyValue{ + { + Key: "CPU", + Value: "1", + }, + { + Key: "host", + Value: "test.com", }, } - cpu2MD = &metricpb.MetricDescriptor{ - Name: "int64-count", - Type: metricpb.MetricDescriptor_COUNTER_INT64, - Labels: []*commonpb.StringKeyValue{ - { - Key: "CPU", - Value: "2", - }, - { - Key: "host", - Value: "test.com", - }, + cpu2Labels = []*commonpb.StringKeyValue{ + { + Key: "CPU", + Value: "2", + }, + { + Key: "host", + Value: "test.com", }, } testerAResource = &resourcepb.Resource{ - Attributes: []*commonpb.AttributeKeyValue{ + Attributes: []*commonpb.KeyValue{ { - Key: "instance", - Type: commonpb.AttributeKeyValue_STRING, - StringValue: "tester-a", + Key: "instance", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_StringValue{ + StringValue: "tester-a", + }, + }, }, }, } testerBResource = &resourcepb.Resource{ - Attributes: []*commonpb.AttributeKeyValue{ + Attributes: []*commonpb.KeyValue{ { - Key: "instance", - Type: commonpb.AttributeKeyValue_STRING, - StringValue: "tester-b", + Key: "instance", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_StringValue{ + StringValue: "tester-b", + }, + }, }, }, } @@ -184,20 +187,17 @@ func TestNoGroupingExport(t *testing.T) { { Metrics: []*metricpb.Metric{ { - MetricDescriptor: cpu1MD, + MetricDescriptor: md, Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, - }, - }, - { - MetricDescriptor: cpu2MD, - Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu2Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, @@ -230,19 +230,19 @@ func TestValuerecorderMetricGroupingExport(t *testing.T) { MetricDescriptor: &metricpb.MetricDescriptor{ Name: "valuerecorder", Type: metricpb.MetricDescriptor_SUMMARY, - Labels: []*commonpb.StringKeyValue{ - { - Key: "CPU", - Value: "1", - }, - { - Key: "host", - Value: "test.com", - }, - }, }, SummaryDataPoints: []*metricpb.SummaryDataPoint{ { + Labels: []*commonpb.StringKeyValue{ + { + Key: "CPU", + Value: "1", + }, + { + Key: "host", + Value: "test.com", + }, + }, Count: 2, Sum: 11, PercentileValues: []*metricpb.SummaryDataPoint_ValueAtPercentile{ @@ -259,6 +259,16 @@ func TestValuerecorderMetricGroupingExport(t *testing.T) { TimeUnixNano: pointTime(), }, { + Labels: []*commonpb.StringKeyValue{ + { + Key: "CPU", + Value: "1", + }, + { + Key: "host", + Value: "test.com", + }, + }, Count: 2, Sum: 11, PercentileValues: []*metricpb.SummaryDataPoint_ValueAtPercentile{ @@ -306,15 +316,17 @@ func TestCountInt64MetricGroupingExport(t *testing.T) { { Metrics: []*metricpb.Metric{ { - MetricDescriptor: cpu1MD, + MetricDescriptor: md, Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, @@ -349,26 +361,36 @@ func TestCountFloat64MetricGroupingExport(t *testing.T) { { MetricDescriptor: &metricpb.MetricDescriptor{ Name: "float64-count", - Type: metricpb.MetricDescriptor_COUNTER_DOUBLE, - Labels: []*commonpb.StringKeyValue{ - { - Key: "CPU", - Value: "1", - }, - { - Key: "host", - Value: "test.com", - }, - }, + Type: metricpb.MetricDescriptor_DOUBLE, }, DoubleDataPoints: []*metricpb.DoubleDataPoint{ { - Value: 11, + Value: 11, + Labels: []*commonpb.StringKeyValue{ + { + Key: "CPU", + Value: "1", + }, + { + Key: "host", + Value: "test.com", + }, + }, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, { - Value: 11, + Value: 11, + Labels: []*commonpb.StringKeyValue{ + { + Key: "CPU", + Value: "1", + }, + { + Key: "host", + Value: "test.com", + }, + }, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, @@ -426,25 +448,23 @@ func TestResourceMetricGroupingExport(t *testing.T) { { Metrics: []*metricpb.Metric{ { - MetricDescriptor: cpu1MD, + MetricDescriptor: md, Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, - }, - }, - { - MetricDescriptor: cpu2MD, - Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu2Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, @@ -460,10 +480,11 @@ func TestResourceMetricGroupingExport(t *testing.T) { { Metrics: []*metricpb.Metric{ { - MetricDescriptor: cpu1MD, + MetricDescriptor: md, Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, @@ -552,25 +573,23 @@ func TestResourceInstLibMetricGroupingExport(t *testing.T) { }, Metrics: []*metricpb.Metric{ { - MetricDescriptor: cpu1MD, + MetricDescriptor: md, Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, - }, - }, - { - MetricDescriptor: cpu2MD, - Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu2Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, @@ -585,10 +604,11 @@ func TestResourceInstLibMetricGroupingExport(t *testing.T) { }, Metrics: []*metricpb.Metric{ { - MetricDescriptor: cpu1MD, + MetricDescriptor: md, Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, @@ -602,10 +622,11 @@ func TestResourceInstLibMetricGroupingExport(t *testing.T) { }, Metrics: []*metricpb.Metric{ { - MetricDescriptor: cpu1MD, + MetricDescriptor: md, Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, @@ -625,10 +646,11 @@ func TestResourceInstLibMetricGroupingExport(t *testing.T) { }, Metrics: []*metricpb.Metric{ { - MetricDescriptor: cpu1MD, + MetricDescriptor: md, Int64DataPoints: []*metricpb.Int64DataPoint{ { Value: 11, + Labels: cpu1Labels, StartTimeUnixNano: startTime(), TimeUnixNano: pointTime(), }, @@ -723,7 +745,19 @@ func runMetricExportTest(t *testing.T, exp *Exporter, rs []record, expected []me t.Errorf("missing metrics for:\n\tResource: %s\n\tInstrumentationLibrary: %s\n", k.resource, k.instrumentationLibrary) continue } - assert.ElementsMatch(t, ilm.GetMetrics(), g, "metrics did not match for:\n\tResource: %s\n\tInstrumentationLibrary: %s\n", k.resource, k.instrumentationLibrary) + if !assert.Len(t, g, len(ilm.GetMetrics())) { + continue + } + for i, expected := range ilm.GetMetrics() { + assert.Equal(t, expected.GetMetricDescriptor(), g[i].GetMetricDescriptor()) + // Compare each list directly because there is no order + // guarantee with the concurrent processing design of the exporter + // and ElementsMatch does not apply to contained slices. + assert.ElementsMatch(t, expected.GetInt64DataPoints(), g[i].GetInt64DataPoints()) + assert.ElementsMatch(t, expected.GetDoubleDataPoints(), g[i].GetDoubleDataPoints()) + assert.ElementsMatch(t, expected.GetHistogramDataPoints(), g[i].GetHistogramDataPoints()) + assert.ElementsMatch(t, expected.GetSummaryDataPoints(), g[i].GetSummaryDataPoints()) + } } } for k := range got { diff --git a/exporters/otlp/otlp_span_test.go b/exporters/otlp/otlp_span_test.go index f27156418df..1c49ae94e98 100644 --- a/exporters/otlp/otlp_span_test.go +++ b/exporters/otlp/otlp_span_test.go @@ -173,11 +173,14 @@ func TestExportSpans(t *testing.T) { []tracepb.ResourceSpans{ { Resource: &resourcepb.Resource{ - Attributes: []*commonpb.AttributeKeyValue{ + Attributes: []*commonpb.KeyValue{ { - Key: "instance", - Type: commonpb.AttributeKeyValue_STRING, - StringValue: "tester-a", + Key: "instance", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_StringValue{ + StringValue: "tester-a", + }, + }, }, }, }, @@ -195,16 +198,22 @@ func TestExportSpans(t *testing.T) { Kind: tracepb.Span_SERVER, StartTimeUnixNano: uint64(startTime.UnixNano()), EndTimeUnixNano: uint64(endTime.UnixNano()), - Attributes: []*commonpb.AttributeKeyValue{ + Attributes: []*commonpb.KeyValue{ { - Key: "user", - Type: commonpb.AttributeKeyValue_STRING, - StringValue: "alice", + Key: "user", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_StringValue{ + StringValue: "alice", + }, + }, }, { - Key: "authenticated", - Type: commonpb.AttributeKeyValue_BOOL, - BoolValue: true, + Key: "authenticated", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_BoolValue{ + BoolValue: true, + }, + }, }, }, Status: &tracepb.Status{ @@ -220,16 +229,22 @@ func TestExportSpans(t *testing.T) { Kind: tracepb.Span_INTERNAL, StartTimeUnixNano: uint64(startTime.UnixNano()), EndTimeUnixNano: uint64(endTime.UnixNano()), - Attributes: []*commonpb.AttributeKeyValue{ + Attributes: []*commonpb.KeyValue{ { - Key: "user", - Type: commonpb.AttributeKeyValue_STRING, - StringValue: "alice", + Key: "user", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_StringValue{ + StringValue: "alice", + }, + }, }, { - Key: "authenticated", - Type: commonpb.AttributeKeyValue_BOOL, - BoolValue: true, + Key: "authenticated", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_BoolValue{ + BoolValue: true, + }, + }, }, }, Status: &tracepb.Status{ @@ -252,16 +267,22 @@ func TestExportSpans(t *testing.T) { Kind: tracepb.Span_SERVER, StartTimeUnixNano: uint64(startTime.UnixNano()), EndTimeUnixNano: uint64(endTime.UnixNano()), - Attributes: []*commonpb.AttributeKeyValue{ + Attributes: []*commonpb.KeyValue{ { - Key: "user", - Type: commonpb.AttributeKeyValue_STRING, - StringValue: "alice", + Key: "user", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_StringValue{ + StringValue: "alice", + }, + }, }, { - Key: "authenticated", - Type: commonpb.AttributeKeyValue_BOOL, - BoolValue: true, + Key: "authenticated", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_BoolValue{ + BoolValue: true, + }, + }, }, }, Status: &tracepb.Status{ @@ -275,11 +296,14 @@ func TestExportSpans(t *testing.T) { }, { Resource: &resourcepb.Resource{ - Attributes: []*commonpb.AttributeKeyValue{ + Attributes: []*commonpb.KeyValue{ { - Key: "instance", - Type: commonpb.AttributeKeyValue_STRING, - StringValue: "tester-b", + Key: "instance", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_StringValue{ + StringValue: "tester-b", + }, + }, }, }, }, @@ -297,16 +321,22 @@ func TestExportSpans(t *testing.T) { Kind: tracepb.Span_SERVER, StartTimeUnixNano: uint64(startTime.UnixNano()), EndTimeUnixNano: uint64(endTime.UnixNano()), - Attributes: []*commonpb.AttributeKeyValue{ + Attributes: []*commonpb.KeyValue{ { - Key: "user", - Type: commonpb.AttributeKeyValue_STRING, - StringValue: "bob", + Key: "user", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_StringValue{ + StringValue: "bob", + }, + }, }, { - Key: "authenticated", - Type: commonpb.AttributeKeyValue_BOOL, - BoolValue: false, + Key: "authenticated", + Value: &commonpb.AnyValue{ + Value: &commonpb.AnyValue_BoolValue{ + BoolValue: false, + }, + }, }, }, Status: &tracepb.Status{