diff --git a/e2e-test-server/go.mod b/e2e-test-server/go.mod index e37bc1d46..90b2a2f63 100644 --- a/e2e-test-server/go.mod +++ b/e2e-test-server/go.mod @@ -9,7 +9,7 @@ require ( go.opentelemetry.io/otel v1.9.0 go.opentelemetry.io/otel/sdk v1.9.0 go.opentelemetry.io/otel/trace v1.9.0 - google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90 + google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf ) require go.opentelemetry.io/contrib/detectors/gcp v1.9.0 @@ -37,8 +37,8 @@ require ( golang.org/x/text v0.3.7 // indirect google.golang.org/api v0.84.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/grpc v1.47.0 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/grpc v1.49.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect ) replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace => ../exporter/trace @@ -47,4 +47,6 @@ replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/reso replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp => ../detectors/gcp +replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock => ../internal/cloudmock + retract v1.0.0-RC1 diff --git a/e2e-test-server/go.sum b/e2e-test-server/go.sum index d16f62c1b..7cc952665 100644 --- a/e2e-test-server/go.sum +++ b/e2e-test-server/go.sum @@ -190,7 +190,6 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0 h1:dS9eYAjhrE2RjmzYw2XAPvcXfmcQLtFEQWn0CR82awk= github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= -github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 h1:eHv/jVY/JNop1xg2J9cBb4EzyMpWZoNCP1BslSAIkOI= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -621,8 +620,9 @@ google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90 h1:4SPz2GL2CXJt28MTF8V6Ap/9ZiVbQlJeGSd9qtA7DLs= google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf h1:Q5xNKbTSFwkuaaGaR7CMcXEM5sy19KYdUU8iF8/iRC0= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -653,8 +653,9 @@ google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ5 google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.47.0 h1:9n77onPX5F3qfFCqjy9dhn8PbNQsIKeVU04J9G7umt8= google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/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= @@ -669,8 +670,9 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= 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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= diff --git a/example/metric/go.mod b/example/metric/go.mod index 9c6793e32..a73e9c215 100644 --- a/example/metric/go.mod +++ b/example/metric/go.mod @@ -4,6 +4,8 @@ go 1.17 replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric => ../../exporter/metric +replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock => ../../internal/cloudmock + require ( github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.32.6 go.opentelemetry.io/otel v1.9.0 @@ -29,7 +31,7 @@ require ( golang.org/x/text v0.3.7 // indirect google.golang.org/api v0.74.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf // indirect - google.golang.org/grpc v1.45.0 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf // indirect + google.golang.org/grpc v1.49.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect ) diff --git a/example/metric/go.sum b/example/metric/go.sum index 2af41e326..382b43dae 100644 --- a/example/metric/go.sum +++ b/example/metric/go.sum @@ -168,7 +168,6 @@ github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pf github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= github.com/googleapis/gax-go/v2 v2.2.0 h1:s7jOdKSaksJVOxE0Y/S32otcfiP+UQ0cL8/GTKaONwE= github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 h1:eHv/jVY/JNop1xg2J9cBb4EzyMpWZoNCP1BslSAIkOI= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -560,8 +559,8 @@ google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf h1:JTjwKJX9erVpsw17w+OIPP7iAgEkN/r8urhWSunEDTs= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf h1:Q5xNKbTSFwkuaaGaR7CMcXEM5sy19KYdUU8iF8/iRC0= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -589,8 +588,9 @@ google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/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= @@ -605,8 +605,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= 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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= diff --git a/example/trace/http/go.mod b/example/trace/http/go.mod index be045a742..304313fb2 100644 --- a/example/trace/http/go.mod +++ b/example/trace/http/go.mod @@ -8,6 +8,8 @@ replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/reso replace github.com/GoogleCloudPlatform/opentelemetry-operations-go => ../../.. +replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock => ../../../internal/cloudmock + require ( github.com/GoogleCloudPlatform/opentelemetry-operations-go v0.32.6 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.8.6 @@ -38,9 +40,9 @@ require ( golang.org/x/text v0.3.7 // indirect google.golang.org/api v0.74.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf // indirect - google.golang.org/grpc v1.45.0 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf // indirect + google.golang.org/grpc v1.49.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect ) retract ( diff --git a/example/trace/http/go.sum b/example/trace/http/go.sum index 9624240b2..338eb3ea3 100644 --- a/example/trace/http/go.sum +++ b/example/trace/http/go.sum @@ -171,7 +171,6 @@ github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pf github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= github.com/googleapis/gax-go/v2 v2.2.0 h1:s7jOdKSaksJVOxE0Y/S32otcfiP+UQ0cL8/GTKaONwE= github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 h1:eHv/jVY/JNop1xg2J9cBb4EzyMpWZoNCP1BslSAIkOI= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -568,8 +567,8 @@ google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf h1:JTjwKJX9erVpsw17w+OIPP7iAgEkN/r8urhWSunEDTs= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf h1:Q5xNKbTSFwkuaaGaR7CMcXEM5sy19KYdUU8iF8/iRC0= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -597,8 +596,9 @@ google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/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= @@ -613,8 +613,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= 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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= diff --git a/exporter/collector/go.mod b/exporter/collector/go.mod index 185443772..19f669469 100644 --- a/exporter/collector/go.mod +++ b/exporter/collector/go.mod @@ -22,7 +22,7 @@ require ( go.uber.org/zap v1.21.0 golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a google.golang.org/api v0.74.0 - google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf + google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf google.golang.org/grpc v1.49.0 google.golang.org/protobuf v1.28.1 ) @@ -57,3 +57,5 @@ require ( replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace => ../trace replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping => ../../internal/resourcemapping + +replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock => ../../internal/cloudmock diff --git a/exporter/collector/go.sum b/exporter/collector/go.sum index aff808c73..df94973cf 100644 --- a/exporter/collector/go.sum +++ b/exporter/collector/go.sum @@ -183,7 +183,6 @@ github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pf github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= github.com/googleapis/gax-go/v2 v2.2.0 h1:s7jOdKSaksJVOxE0Y/S32otcfiP+UQ0cL8/GTKaONwE= github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 h1:eHv/jVY/JNop1xg2J9cBb4EzyMpWZoNCP1BslSAIkOI= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -616,8 +615,8 @@ google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf h1:JTjwKJX9erVpsw17w+OIPP7iAgEkN/r8urhWSunEDTs= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf h1:Q5xNKbTSFwkuaaGaR7CMcXEM5sy19KYdUU8iF8/iRC0= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -662,7 +661,6 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/exporter/collector/integrationtest/cmd/recordfixtures/main.go b/exporter/collector/integrationtest/cmd/recordfixtures/main.go index 4646f65a4..5e04b737c 100644 --- a/exporter/collector/integrationtest/cmd/recordfixtures/main.go +++ b/exporter/collector/integrationtest/cmd/recordfixtures/main.go @@ -27,6 +27,7 @@ import ( "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest/protos" "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest/testcases" + "github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock" "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest" ) @@ -59,7 +60,7 @@ func main() { } func recordTraces(ctx context.Context, t *FakeTesting, startTime, endTime time.Time) { - testServer, err := integrationtest.NewTracesTestServer() + testServer, err := cloudmock.NewTracesTestServer() if err != nil { panic(err) } @@ -73,7 +74,7 @@ func recordTraces(ctx context.Context, t *FakeTesting, startTime, endTime time.T func() { traces := test.LoadOTLPTracesInput(t, startTime, endTime) - testServerExporter := testServer.NewExporter(ctx, t, test.CreateTraceConfig()) + testServerExporter := integrationtest.NewTraceTestExporter(ctx, t, testServer, test.CreateTraceConfig()) require.NoError(t, testServerExporter.PushTraces(ctx, traces), "failed to export logs to local test server") require.NoError(t, testServerExporter.Shutdown(ctx)) @@ -88,7 +89,7 @@ func recordTraces(ctx context.Context, t *FakeTesting, startTime, endTime time.T } func recordLogs(ctx context.Context, t *FakeTesting, timestamp time.Time) { - testServer, err := integrationtest.NewLoggingTestServer() + testServer, err := cloudmock.NewLoggingTestServer() if err != nil { panic(err) } @@ -101,7 +102,7 @@ func recordLogs(ctx context.Context, t *FakeTesting, timestamp time.Time) { } func() { logs := test.LoadOTLPLogsInput(t, timestamp) - testServerExporter := testServer.NewExporter(ctx, t, test.CreateLogConfig()) + testServerExporter := integrationtest.NewLogTestExporter(ctx, t, testServer, test.CreateLogConfig()) require.NoError(t, testServerExporter.PushLogs(ctx, logs), "failed to export logs to local test server") require.NoError(t, testServerExporter.Shutdown(ctx)) @@ -116,7 +117,7 @@ func recordLogs(ctx context.Context, t *FakeTesting, timestamp time.Time) { } func recordMetrics(ctx context.Context, t *FakeTesting, startTime, endTime time.Time) { - testServer, err := integrationtest.NewMetricTestServer() + testServer, err := cloudmock.NewMetricTestServer() if err != nil { panic(err) } @@ -129,7 +130,7 @@ func recordMetrics(ctx context.Context, t *FakeTesting, startTime, endTime time. } func() { metrics := test.LoadOTLPMetricsInput(t, startTime, endTime) - testServerExporter := testServer.NewExporter(ctx, t, test.CreateMetricConfig()) + testServerExporter := integrationtest.NewMetricTestExporter(ctx, t, testServer, test.CreateMetricConfig()) inMemoryOCExporter, err := integrationtest.NewInMemoryOCViewExporter() require.NoError(t, err) defer inMemoryOCExporter.Shutdown(ctx) diff --git a/exporter/collector/integrationtest/go.mod b/exporter/collector/integrationtest/go.mod index 749d3b4a9..4c059d38b 100644 --- a/exporter/collector/integrationtest/go.mod +++ b/exporter/collector/integrationtest/go.mod @@ -6,6 +6,7 @@ require ( contrib.go.opencensus.io/exporter/stackdriver v0.13.11 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector v0.32.6 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/googlemanagedprometheus v0.32.6 + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.0.0-00010101000000-000000000000 github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.32.6 github.com/google/go-cmp v0.5.8 github.com/stretchr/testify v1.8.0 @@ -14,7 +15,7 @@ require ( go.opentelemetry.io/collector/pdata v0.59.0 go.uber.org/zap v1.23.0 google.golang.org/api v0.74.0 - google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf + google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf google.golang.org/grpc v1.49.0 google.golang.org/protobuf v1.28.1 ) @@ -64,5 +65,6 @@ replace ( github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector => ../../collector github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/googlemanagedprometheus => ../../collector/googlemanagedprometheus github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace => ../../trace + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock => ../../../internal/cloudmock github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping => ../../../internal/resourcemapping ) diff --git a/exporter/collector/integrationtest/go.sum b/exporter/collector/integrationtest/go.sum index d975919c9..dc7ee0f64 100644 --- a/exporter/collector/integrationtest/go.sum +++ b/exporter/collector/integrationtest/go.sum @@ -230,7 +230,6 @@ github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pf github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= github.com/googleapis/gax-go/v2 v2.2.0 h1:s7jOdKSaksJVOxE0Y/S32otcfiP+UQ0cL8/GTKaONwE= github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 h1:eHv/jVY/JNop1xg2J9cBb4EzyMpWZoNCP1BslSAIkOI= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.13.0/go.mod h1:ZlVrynguJKcYr54zGaDbaL3fOvKC9m72FhPvA8T35KQ= @@ -827,8 +826,8 @@ google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf h1:JTjwKJX9erVpsw17w+OIPP7iAgEkN/r8urhWSunEDTs= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf h1:Q5xNKbTSFwkuaaGaR7CMcXEM5sy19KYdUU8iF8/iRC0= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -875,7 +874,6 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= diff --git a/exporter/collector/integrationtest/inmemoryocexporter.go b/exporter/collector/integrationtest/inmemoryocexporter.go index 0dfd0c727..1f3fe699f 100644 --- a/exporter/collector/integrationtest/inmemoryocexporter.go +++ b/exporter/collector/integrationtest/inmemoryocexporter.go @@ -16,24 +16,27 @@ package integrationtest import ( "context" + "testing" "time" "contrib.go.opencensus.io/exporter/stackdriver" + "github.com/stretchr/testify/require" "go.opencensus.io/metric/metricexport" "go.opencensus.io/plugin/ocgrpc" "go.opencensus.io/stats/view" + "go.uber.org/zap" "google.golang.org/api/option" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" - "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest/protos" - "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector" + "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest/protos" + "github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock" ) // OC stats/metrics exporter used to capture self observability metrics type InMemoryOCExporter struct { - testServer *MetricsTestServer + testServer *cloudmock.MetricsTestServer reader *metricexport.Reader stackdriverExporter *stackdriver.Exporter } @@ -89,7 +92,7 @@ func NewInMemoryOCViewExporter() (*InMemoryOCExporter, error) { view.Unregister(views...) view.Register(views...) - testServer, err := NewMetricTestServer() + testServer, err := cloudmock.NewMetricTestServer() if err != nil { return nil, err } @@ -117,3 +120,72 @@ func NewInMemoryOCViewExporter() (*InMemoryOCExporter, error) { }, nil } + +func NewTraceTestExporter( + ctx context.Context, + t testing.TB, + s *cloudmock.TracesTestServer, + cfg collector.Config, +) *collector.TraceExporter { + + cfg.TraceConfig.ClientConfig.Endpoint = s.Endpoint + cfg.TraceConfig.ClientConfig.UseInsecure = true + cfg.ProjectID = "fakeprojectid" + + exporter, err := collector.NewGoogleCloudTracesExporter( + ctx, + cfg, + "latest", + collector.DefaultTimeout, + ) + require.NoError(t, err) + t.Logf("Collector TracesTestServer exporter started, pointing at %v", cfg.TraceConfig.ClientConfig.Endpoint) + return exporter +} + +// NewMetricsTestExporter creates and starts a googlecloud exporter by updating the +// given cfg copy to point to the test server. +func NewMetricTestExporter( + ctx context.Context, + t testing.TB, + m *cloudmock.MetricsTestServer, + cfg collector.Config, +) *collector.MetricsExporter { + cfg.MetricConfig.ClientConfig.Endpoint = m.Endpoint + cfg.MetricConfig.ClientConfig.UseInsecure = true + + exporter, err := collector.NewGoogleCloudMetricsExporter( + ctx, + cfg, + zap.NewNop(), + "latest", + collector.DefaultTimeout, + ) + require.NoError(t, err) + t.Logf("Collector MetricsTestServer exporter started, pointing at %v", cfg.MetricConfig.ClientConfig.Endpoint) + return exporter +} + +func NewLogTestExporter( + ctx context.Context, + t testing.TB, + l *cloudmock.LogsTestServer, + cfg collector.Config, +) *collector.LogsExporter { + + cfg.LogConfig.ClientConfig.Endpoint = l.Endpoint + cfg.LogConfig.ClientConfig.UseInsecure = true + cfg.ProjectID = "fakeprojectid" + + logger, err := zap.NewDevelopment() + require.NoError(t, err) + + exporter, err := collector.NewGoogleCloudLogsExporter( + ctx, + cfg, + logger, + ) + require.NoError(t, err) + t.Logf("Collector LogsTestServer exporter started, pointing at %v", cfg.LogConfig.ClientConfig.Endpoint) + return exporter +} diff --git a/exporter/collector/integrationtest/logs_test.go b/exporter/collector/integrationtest/logs_test.go index 61d5e0af1..72c7271c3 100644 --- a/exporter/collector/integrationtest/logs_test.go +++ b/exporter/collector/integrationtest/logs_test.go @@ -23,6 +23,7 @@ import ( "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest/protos" "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest/testcases" + "github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock" ) func TestLogs(t *testing.T) { @@ -36,12 +37,12 @@ func TestLogs(t *testing.T) { t.Run(test.Name, func(t *testing.T) { logs := test.LoadOTLPLogsInput(t, timestamp) - testServer, err := NewLoggingTestServer() + testServer, err := cloudmock.NewLoggingTestServer() require.NoError(t, err) go testServer.Serve() defer testServer.Shutdown() - testServerExporter := testServer.NewExporter(ctx, t, test.CreateLogConfig()) + testServerExporter := NewLogTestExporter(ctx, t, testServer, test.CreateLogConfig()) require.NoError( t, diff --git a/exporter/collector/integrationtest/metrics_test.go b/exporter/collector/integrationtest/metrics_test.go index e4d7905b6..3d0e8fc92 100644 --- a/exporter/collector/integrationtest/metrics_test.go +++ b/exporter/collector/integrationtest/metrics_test.go @@ -24,6 +24,7 @@ import ( "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest/protos" "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest/testcases" + "github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock" ) func TestMetrics(t *testing.T) { @@ -39,11 +40,11 @@ func TestMetrics(t *testing.T) { metrics := test.LoadOTLPMetricsInput(t, startTime, endTime) - testServer, err := NewMetricTestServer() + testServer, err := cloudmock.NewMetricTestServer() require.NoError(t, err) go testServer.Serve() defer testServer.Shutdown() - testServerExporter := testServer.NewExporter(ctx, t, test.CreateMetricConfig()) + testServerExporter := NewMetricTestExporter(ctx, t, testServer, test.CreateMetricConfig()) // For collecting self observability metrics inMemoryOCExporter, err := NewInMemoryOCViewExporter() require.NoError(t, err) diff --git a/exporter/collector/integrationtest/traces_test.go b/exporter/collector/integrationtest/traces_test.go index 4234f7b28..b68e1c9d5 100644 --- a/exporter/collector/integrationtest/traces_test.go +++ b/exporter/collector/integrationtest/traces_test.go @@ -23,6 +23,7 @@ import ( "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest/protos" "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector/internal/integrationtest/testcases" + "github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock" ) func TestTraces(t *testing.T) { @@ -37,11 +38,11 @@ func TestTraces(t *testing.T) { test.SkipIfNeeded(t) traces := test.LoadOTLPTracesInput(t, startTime, endTime) - testServer, err := NewTracesTestServer() + testServer, err := cloudmock.NewTracesTestServer() require.NoError(t, err) go testServer.Serve() defer testServer.Shutdown() - testServerExporter := testServer.NewExporter(ctx, t, test.CreateTraceConfig()) + testServerExporter := NewTraceTestExporter(ctx, t, testServer, test.CreateTraceConfig()) err = testServerExporter.PushTraces(ctx, traces) if !test.ExpectErr { diff --git a/exporter/metric/go.mod b/exporter/metric/go.mod index dfb41868c..75daac821 100644 --- a/exporter/metric/go.mod +++ b/exporter/metric/go.mod @@ -6,7 +6,6 @@ require ( cloud.google.com/go/monitoring v1.4.0 github.com/davecgh/go-spew v1.1.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 github.com/stretchr/testify v1.7.1 go.opentelemetry.io/otel v1.9.0 go.opentelemetry.io/otel/metric v0.31.0 @@ -16,12 +15,14 @@ require ( golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886 // indirect google.golang.org/api v0.74.0 - google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf - google.golang.org/grpc v1.45.0 - google.golang.org/protobuf v1.28.0 + google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf + google.golang.org/grpc v1.49.0 + google.golang.org/protobuf v1.28.1 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect ) +require github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.0.0-00010101000000-000000000000 + require ( cloud.google.com/go/compute v1.5.0 // indirect github.com/go-logr/logr v1.2.3 // indirect @@ -37,4 +38,6 @@ require ( gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect ) +replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock => ../../internal/cloudmock + retract v1.0.0-RC1 diff --git a/exporter/metric/go.sum b/exporter/metric/go.sum index c6d3514ec..8992cd87f 100644 --- a/exporter/metric/go.sum +++ b/exporter/metric/go.sum @@ -169,8 +169,6 @@ github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pf github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= github.com/googleapis/gax-go/v2 v2.2.0 h1:s7jOdKSaksJVOxE0Y/S32otcfiP+UQ0cL8/GTKaONwE= github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 h1:eHv/jVY/JNop1xg2J9cBb4EzyMpWZoNCP1BslSAIkOI= -github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3/go.mod h1:h/KNeRx7oYU4SpA4SoY7W2/NxDKEEVuwA6j9A27L4OI= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -284,7 +282,6 @@ golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= @@ -437,7 +434,6 @@ golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200701151220-7cb253f4c4f8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= @@ -526,7 +522,6 @@ google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200605102947-12044bf5ea91/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -568,8 +563,8 @@ google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf h1:JTjwKJX9erVpsw17w+OIPP7iAgEkN/r8urhWSunEDTs= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf h1:Q5xNKbTSFwkuaaGaR7CMcXEM5sy19KYdUU8iF8/iRC0= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -597,8 +592,9 @@ google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/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= @@ -613,8 +609,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= 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= diff --git a/exporter/metric/metric_test.go b/exporter/metric/metric_test.go index 416274ba1..a71063844 100644 --- a/exporter/metric/metric_test.go +++ b/exporter/metric/metric_test.go @@ -35,7 +35,6 @@ import ( "go.opentelemetry.io/otel/sdk/resource" semconv "go.opentelemetry.io/otel/semconv/v1.4.0" - "github.com/googleinterns/cloud-operations-api-mock/cloudmock" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "google.golang.org/api/option" @@ -45,6 +44,8 @@ import ( "google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/metadata" "google.golang.org/protobuf/types/known/emptypb" + + "github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock" ) var ( @@ -55,17 +56,23 @@ var ( func TestExportMetrics(t *testing.T) { ctx := context.Background() - cloudMock := cloudmock.NewCloudMock() - defer cloudMock.Shutdown() + testServer, err := cloudmock.NewMetricTestServer() + go testServer.Serve() + defer testServer.Shutdown() + assert.NoError(t, err) - clientOpt := option.WithGRPCConn(cloudMock.ClientConn()) + clientOpts := []option.ClientOption{ + option.WithEndpoint(testServer.Endpoint), + option.WithoutAuthentication(), + option.WithGRPCDialOption(grpc.WithTransportCredentials(insecure.NewCredentials())), + } res := &resource.Resource{} aggSel := processortest.AggregatorSelector() proc := processor.NewFactory(aggSel, aggregation.CumulativeTemporalitySelector()) opts := []Option{ WithProjectID("PROJECT_ID_NOT_REAL"), - WithMonitoringClientOptions(clientOpt), + WithMonitoringClientOptions(clientOpts...), WithMetricDescriptorTypeFormatter(formatter), } @@ -88,10 +95,16 @@ func TestExportMetrics(t *testing.T) { } func TestExportCounter(t *testing.T) { - cloudMock := cloudmock.NewCloudMock() - defer cloudMock.Shutdown() + testServer, err := cloudmock.NewMetricTestServer() + go testServer.Serve() + defer testServer.Shutdown() + assert.NoError(t, err) - clientOpt := option.WithGRPCConn(cloudMock.ClientConn()) + clientOpts := []option.ClientOption{ + option.WithEndpoint(testServer.Endpoint), + option.WithoutAuthentication(), + option.WithGRPCDialOption(grpc.WithTransportCredentials(insecure.NewCredentials())), + } resOpt := controller.WithResource( resource.NewWithAttributes( @@ -103,7 +116,7 @@ func TestExportCounter(t *testing.T) { pusher, err := InstallNewPipeline( []Option{ WithProjectID("PROJECT_ID_NOT_REAL"), - WithMonitoringClientOptions(clientOpt), + WithMonitoringClientOptions(clientOpts...), WithMetricDescriptorTypeFormatter(formatter), }, resOpt, @@ -124,10 +137,16 @@ func TestExportCounter(t *testing.T) { } func TestExportHistogram(t *testing.T) { - cloudMock := cloudmock.NewCloudMock() - defer cloudMock.Shutdown() + testServer, err := cloudmock.NewMetricTestServer() + go testServer.Serve() + defer testServer.Shutdown() + assert.NoError(t, err) - clientOpt := option.WithGRPCConn(cloudMock.ClientConn()) + clientOpts := []option.ClientOption{ + option.WithEndpoint(testServer.Endpoint), + option.WithoutAuthentication(), + option.WithGRPCDialOption(grpc.WithTransportCredentials(insecure.NewCredentials())), + } resOpt := controller.WithResource( resource.NewWithAttributes( @@ -139,7 +158,7 @@ func TestExportHistogram(t *testing.T) { pusher, err := InstallNewPipeline( []Option{ WithProjectID("PROJECT_ID_NOT_REAL"), - WithMonitoringClientOptions(clientOpt), + WithMonitoringClientOptions(clientOpts...), WithMetricDescriptorTypeFormatter(formatter), }, resOpt, @@ -193,10 +212,16 @@ func TestDescToMetricType(t *testing.T) { func TestRecordToMpb(t *testing.T) { ctx := context.Background() - cloudMock := cloudmock.NewCloudMock() - defer cloudMock.Shutdown() + testServer, err := cloudmock.NewMetricTestServer() + go testServer.Serve() + defer testServer.Shutdown() + assert.NoError(t, err) - clientOpt := option.WithGRPCConn(cloudMock.ClientConn()) + clientOpts := []option.ClientOption{ + option.WithEndpoint(testServer.Endpoint), + option.WithoutAuthentication(), + option.WithGRPCDialOption(grpc.WithTransportCredentials(insecure.NewCredentials())), + } resOpt := controller.WithResource( resource.NewWithAttributes( @@ -208,7 +233,7 @@ func TestRecordToMpb(t *testing.T) { pusher, err := InstallNewPipeline( []Option{ WithProjectID("PROJECT_ID_NOT_REAL"), - WithMonitoringClientOptions(clientOpt), + WithMonitoringClientOptions(clientOpts...), WithMetricDescriptorTypeFormatter(formatter), }, resOpt, @@ -603,15 +628,21 @@ func TestRecordToMpbUTF8(t *testing.T) { } ctx := context.Background() - cloudMock := cloudmock.NewCloudMock() - defer cloudMock.Shutdown() + testServer, err := cloudmock.NewMetricTestServer() + go testServer.Serve() + defer testServer.Shutdown() + assert.NoError(t, err) - clientOpt := option.WithGRPCConn(cloudMock.ClientConn()) + clientOpts := []option.ClientOption{ + option.WithEndpoint(testServer.Endpoint), + option.WithoutAuthentication(), + option.WithGRPCDialOption(grpc.WithTransportCredentials(insecure.NewCredentials())), + } pusher, err := InstallNewPipeline( []Option{ WithProjectID("PROJECT_ID_NOT_REAL"), - WithMonitoringClientOptions(clientOpt), + WithMonitoringClientOptions(clientOpts...), WithMetricDescriptorTypeFormatter(formatter), }, ) diff --git a/exporter/trace/cloudtrace_test.go b/exporter/trace/cloudtrace_test.go index 94d4cb128..5ba176d18 100644 --- a/exporter/trace/cloudtrace_test.go +++ b/exporter/trace/cloudtrace_test.go @@ -27,7 +27,6 @@ import ( sdktrace "go.opentelemetry.io/otel/sdk/trace" "go.opentelemetry.io/otel/trace" - "github.com/googleinterns/cloud-operations-api-mock/cloudmock" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "google.golang.org/api/option" @@ -37,12 +36,21 @@ import ( "google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/metadata" "google.golang.org/protobuf/types/known/emptypb" + + "github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock" ) func TestExporter_ExportSpan(t *testing.T) { // Initial test precondition - mock := cloudmock.NewCloudMock() - clientOpt := []option.ClientOption{option.WithGRPCConn(mock.ClientConn())} + testServer, err := cloudmock.NewTracesTestServer() + go testServer.Serve() + defer testServer.Shutdown() + assert.NoError(t, err) + clientOpt := []option.ClientOption{ + option.WithEndpoint(testServer.Endpoint), + option.WithoutAuthentication(), + option.WithGRPCDialOption(grpc.WithTransportCredentials(insecure.NewCredentials())), + } // Create Google Cloud Trace Exporter exporter, err := New( @@ -51,10 +59,9 @@ func TestExporter_ExportSpan(t *testing.T) { assert.NoError(t, err) tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithBatcher(exporter)) - + sdktrace.WithSyncer(exporter)) + defer tp.Shutdown(context.Background()) otel.SetTracerProvider(tp) - shutdown := func() { tp.Shutdown(context.Background()) } _, span := otel.Tracer("test-tracer").Start(context.Background(), "test-span") // NOTE: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/api.md#set-status @@ -71,16 +78,19 @@ func TestExporter_ExportSpan(t *testing.T) { span.SetStatus(codes.Error, "Error Message") span.End() - // wait exporter to shutdown (closes grpc connection) - shutdown() - assert.EqualValues(t, 2, mock.GetNumSpans()) + batch := testServer.CreateBatchWriteSpansRequests() + assert.Equal(t, 2, len(batch)) + assert.Equal(t, batch[0].GetName(), "projects/PROJECT_ID_NOT_REAL") + assert.Equal(t, batch[1].GetName(), "projects/PROJECT_ID_NOT_REAL") + assert.Equal(t, 1, len(batch[0].GetSpans())) + assert.Equal(t, 1, len(batch[1].GetSpans())) // Note: Go returns empty string for an unset member. - assert.EqualValues(t, codepb.Code_OK, mock.GetSpan(0).GetStatus().Code) - assert.EqualValues(t, "", mock.GetSpan(0).GetStatus().Message) - assert.EqualValues(t, codepb.Code_UNKNOWN, mock.GetSpan(1).GetStatus().Code) - assert.EqualValues(t, "Error Message", mock.GetSpan(1).GetStatus().Message) - assert.Nil(t, mock.GetSpan(0).Links) - assert.Len(t, mock.GetSpan(1).Links.Link, 1) + assert.EqualValues(t, codepb.Code_OK, batch[0].GetSpans()[0].GetStatus().Code) + assert.EqualValues(t, "", batch[0].GetSpans()[0].GetStatus().Message) + assert.EqualValues(t, codepb.Code_UNKNOWN, batch[1].GetSpans()[0].GetStatus().Code) + assert.EqualValues(t, "Error Message", batch[1].GetSpans()[0].GetStatus().Message) + assert.Nil(t, batch[0].GetSpans()[0].Links) + assert.Len(t, batch[1].GetSpans()[0].Links.Link, 1) } type errorHandler struct { @@ -93,34 +103,39 @@ func (e *errorHandler) Handle(err error) { func TestExporter_Timeout(t *testing.T) { // Initial test precondition - mock := cloudmock.NewCloudMock() - mock.SetDelay(20 * time.Millisecond) - clientOpt := []option.ClientOption{option.WithGRPCConn(mock.ClientConn())} + testServer, err := cloudmock.NewTracesTestServer(cloudmock.WithDelay(20 * time.Millisecond)) + go testServer.Serve() + defer testServer.Shutdown() + assert.NoError(t, err) + clientOpt := []option.ClientOption{ + option.WithEndpoint(testServer.Endpoint), + option.WithoutAuthentication(), + option.WithGRPCDialOption(grpc.WithTransportCredentials(insecure.NewCredentials())), + } handler := &errorHandler{} // Create Google Cloud Trace Exporter exporter, err := New( WithProjectID("PROJECT_ID_NOT_REAL"), WithTraceClientOptions(clientOpt), - WithTimeout(1*time.Millisecond), + WithTimeout(time.Millisecond), // handle bundle as soon as span is received WithErrorHandler(handler), ) assert.NoError(t, err) tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithBatcher(exporter)) - + sdktrace.WithSyncer(exporter)) + defer tp.Shutdown(context.Background()) otel.SetTracerProvider(tp) - shutdown := func() { tp.Shutdown(context.Background()) } _, span := otel.Tracer("test-tracer").Start(context.Background(), "test-span") span.End() assert.True(t, span.SpanContext().IsValid()) // wait for error to be handled - shutdown() // closed grpc connection - assert.EqualValues(t, 0, mock.GetNumSpans()) + batch := testServer.CreateBatchWriteSpansRequests() + assert.Equal(t, 0, len(batch)) if got, want := len(handler.errs), 1; got != want { t.Fatalf("len(exportErrors) = %q; want %q", got, want) } diff --git a/exporter/trace/go.mod b/exporter/trace/go.mod index fe1bb971e..48be1d71e 100644 --- a/exporter/trace/go.mod +++ b/exporter/trace/go.mod @@ -6,7 +6,6 @@ require ( cloud.google.com/go/trace v1.2.0 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 - github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 github.com/stretchr/testify v1.8.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.34.0 go.opentelemetry.io/otel v1.9.0 @@ -16,12 +15,13 @@ require ( golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886 // indirect google.golang.org/api v0.74.0 - google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf - google.golang.org/grpc v1.45.0 - google.golang.org/protobuf v1.28.0 + google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf + google.golang.org/grpc v1.49.0 + google.golang.org/protobuf v1.28.1 ) require ( + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.0.0-00010101000000-000000000000 github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.32.6 go.uber.org/multierr v1.8.0 ) @@ -44,3 +44,5 @@ require ( ) replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping => ../../internal/resourcemapping + +replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock => ../../internal/cloudmock diff --git a/exporter/trace/go.sum b/exporter/trace/go.sum index c50e28ed7..d5207fda5 100644 --- a/exporter/trace/go.sum +++ b/exporter/trace/go.sum @@ -171,8 +171,6 @@ github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pf github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= github.com/googleapis/gax-go/v2 v2.2.0 h1:s7jOdKSaksJVOxE0Y/S32otcfiP+UQ0cL8/GTKaONwE= github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 h1:eHv/jVY/JNop1xg2J9cBb4EzyMpWZoNCP1BslSAIkOI= -github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3/go.mod h1:h/KNeRx7oYU4SpA4SoY7W2/NxDKEEVuwA6j9A27L4OI= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -293,7 +291,6 @@ golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= @@ -446,7 +443,6 @@ golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200701151220-7cb253f4c4f8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= @@ -535,7 +531,6 @@ google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200605102947-12044bf5ea91/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -577,8 +572,8 @@ google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf h1:JTjwKJX9erVpsw17w+OIPP7iAgEkN/r8urhWSunEDTs= -google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf h1:Q5xNKbTSFwkuaaGaR7CMcXEM5sy19KYdUU8iF8/iRC0= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -606,8 +601,9 @@ google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/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= @@ -622,8 +618,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/cloudmock/go.mod b/internal/cloudmock/go.mod new file mode 100644 index 000000000..708a90523 --- /dev/null +++ b/internal/cloudmock/go.mod @@ -0,0 +1,16 @@ +module github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock + +go 1.17 + +require ( + google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf + google.golang.org/grpc v1.49.0 + google.golang.org/protobuf v1.28.1 +) + +require ( + github.com/golang/protobuf v1.5.2 // indirect + golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 // indirect + golang.org/x/sys v0.0.0-20210510120138-977fb7262007 // indirect + golang.org/x/text v0.3.5 // indirect +) diff --git a/internal/cloudmock/go.sum b/internal/cloudmock/go.sum new file mode 100644 index 000000000..1f5523d4a --- /dev/null +++ b/internal/cloudmock/go.sum @@ -0,0 +1,26 @@ +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf h1:Q5xNKbTSFwkuaaGaR7CMcXEM5sy19KYdUU8iF8/iRC0= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= diff --git a/exporter/collector/integrationtest/logging_test_server.go b/internal/cloudmock/logs.go similarity index 75% rename from exporter/collector/integrationtest/logging_test_server.go rename to internal/cloudmock/logs.go index ac19c4dad..10861d26e 100644 --- a/exporter/collector/integrationtest/logging_test_server.go +++ b/internal/cloudmock/logs.go @@ -12,20 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -package integrationtest +package cloudmock import ( "context" "net" "sync" - "testing" - "github.com/stretchr/testify/require" - "go.uber.org/zap" logpb "google.golang.org/genproto/googleapis/logging/v2" "google.golang.org/grpc" - - "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector" ) type LogsTestServer struct { @@ -90,26 +85,3 @@ func NewLoggingTestServer() (*LogsTestServer, error) { return testServer, nil } - -func (l *LogsTestServer) NewExporter( - ctx context.Context, - t testing.TB, - cfg collector.Config, -) *collector.LogsExporter { - - cfg.LogConfig.ClientConfig.Endpoint = l.Endpoint - cfg.LogConfig.ClientConfig.UseInsecure = true - cfg.ProjectID = "fakeprojectid" - - logger, err := zap.NewDevelopment() - require.NoError(t, err) - - exporter, err := collector.NewGoogleCloudLogsExporter( - ctx, - cfg, - logger, - ) - require.NoError(t, err) - t.Logf("Collector LogsTestServer exporter started, pointing at %v", cfg.LogConfig.ClientConfig.Endpoint) - return exporter -} diff --git a/exporter/collector/integrationtest/metric_test_server.go b/internal/cloudmock/metrics.go similarity index 84% rename from exporter/collector/integrationtest/metric_test_server.go rename to internal/cloudmock/metrics.go index 9823dcba8..3a45010c1 100644 --- a/exporter/collector/integrationtest/metric_test_server.go +++ b/internal/cloudmock/metrics.go @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,25 +12,20 @@ // See the License for the specific language governing permissions and // limitations under the License. -package integrationtest +package cloudmock import ( "context" "net" "strings" "sync" - "testing" - "github.com/stretchr/testify/require" - "go.uber.org/zap" "google.golang.org/genproto/googleapis/api/metric" monitoringpb "google.golang.org/genproto/googleapis/monitoring/v3" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/emptypb" - - "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector" ) type MetricsTestServer struct { @@ -157,25 +152,3 @@ func NewMetricTestServer() (*MetricsTestServer, error) { return testServer, nil } - -// NewExporter creates and starts a googlecloud exporter by updating the -// given cfg copy to point to the test server. -func (m *MetricsTestServer) NewExporter( - ctx context.Context, - t testing.TB, - cfg collector.Config, -) *collector.MetricsExporter { - cfg.MetricConfig.ClientConfig.Endpoint = m.Endpoint - cfg.MetricConfig.ClientConfig.UseInsecure = true - - exporter, err := collector.NewGoogleCloudMetricsExporter( - ctx, - cfg, - zap.NewNop(), - "latest", - collector.DefaultTimeout, - ) - require.NoError(t, err) - t.Logf("Collector MetricsTestServer exporter started, pointing at %v", cfg.MetricConfig.ClientConfig.Endpoint) - return exporter -} diff --git a/exporter/collector/integrationtest/trace_test_server.go b/internal/cloudmock/traces.go similarity index 73% rename from exporter/collector/integrationtest/trace_test_server.go rename to internal/cloudmock/traces.go index 15afa698f..66ba8d9de 100644 --- a/exporter/collector/integrationtest/trace_test_server.go +++ b/internal/cloudmock/traces.go @@ -12,20 +12,17 @@ // See the License for the specific language governing permissions and // limitations under the License. -package integrationtest +package cloudmock import ( "context" "net" "sync" - "testing" + "time" - "github.com/stretchr/testify/require" tracepb "google.golang.org/genproto/googleapis/devtools/cloudtrace/v2" "google.golang.org/grpc" "google.golang.org/protobuf/types/known/emptypb" - - "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector" ) type TracesTestServer struct { @@ -48,12 +45,14 @@ func (t *TracesTestServer) Serve() { type fakeTraceServiceServer struct { tracepb.UnimplementedTraceServiceServer tracesTestServer *TracesTestServer + cfg config } func (f *fakeTraceServiceServer) BatchWriteSpans( ctx context.Context, request *tracepb.BatchWriteSpansRequest, ) (*emptypb.Empty, error) { + time.Sleep(f.cfg.delay) f.tracesTestServer.appendBatchWriteSpansRequest(request) return &emptypb.Empty{}, nil } @@ -72,7 +71,7 @@ func (t *TracesTestServer) CreateBatchWriteSpansRequests() []*tracepb.BatchWrite return reqs } -func NewTracesTestServer() (*TracesTestServer, error) { +func NewTracesTestServer(opts ...TraceServerOption) (*TracesTestServer, error) { srv := grpc.NewServer() lis, err := net.Listen("tcp", "localhost:0") if err != nil { @@ -83,31 +82,36 @@ func NewTracesTestServer() (*TracesTestServer, error) { lis: lis, srv: srv, } + var c config + for _, option := range opts { + c = option.apply(c) + } tracepb.RegisterTraceServiceServer( srv, - &fakeTraceServiceServer{tracesTestServer: testServer}, + &fakeTraceServiceServer{tracesTestServer: testServer, cfg: c}, ) return testServer, nil } -func (s *TracesTestServer) NewExporter( - ctx context.Context, - t testing.TB, - cfg collector.Config, -) *collector.TraceExporter { - - cfg.TraceConfig.ClientConfig.Endpoint = s.Endpoint - cfg.TraceConfig.ClientConfig.UseInsecure = true - cfg.ProjectID = "fakeprojectid" - - exporter, err := collector.NewGoogleCloudTracesExporter( - ctx, - cfg, - "latest", - collector.DefaultTimeout, - ) - require.NoError(t, err) - t.Logf("Collector TracesTestServer exporter started, pointing at %v", cfg.TraceConfig.ClientConfig.Endpoint) - return exporter +type TraceServerOption interface { + apply(config) config +} + +type config struct { + delay time.Duration +} + +type optionFunc func(config) config + +func (fn optionFunc) apply(cfg config) config { + return fn(cfg) +} + +// WithDelay sets a delay on the test server before it responds +func WithDelay(t time.Duration) TraceServerOption { + return optionFunc(func(cfg config) config { + cfg.delay = t + return cfg + }) }