Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 

58 Zeilen
1.5 KiB

  1. // Copyright 2017 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // +build go1.7
  15. package trace_test
  16. import (
  17. "log"
  18. "net/http"
  19. "cloud.google.com/go/trace"
  20. )
  21. var traceClient *trace.Client
  22. func ExampleHTTPClient_Do() {
  23. client := http.Client{
  24. Transport: &trace.Transport{},
  25. }
  26. span := traceClient.NewSpan("/foo") // traceClient is a *trace.Client
  27. req, _ := http.NewRequest("GET", "https://metadata/users", nil)
  28. req = req.WithContext(trace.NewContext(req.Context(), span))
  29. if _, err := client.Do(req); err != nil {
  30. log.Fatal(err)
  31. }
  32. }
  33. func ExampleClient_HTTPHandler() {
  34. handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  35. client := http.Client{
  36. Transport: &trace.Transport{},
  37. }
  38. req, _ := http.NewRequest("GET", "https://metadata/users", nil)
  39. req = req.WithContext(r.Context())
  40. // The outgoing request will be traced with r's trace ID.
  41. if _, err := client.Do(req); err != nil {
  42. log.Fatal(err)
  43. }
  44. })
  45. http.Handle("/foo", traceClient.HTTPHandler(handler)) // traceClient is a *trace.Client
  46. }