google-cloud-trace 0.39.0 → 0.41.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +3 -2
- data/CHANGELOG.md +49 -0
- data/CONTRIBUTING.md +4 -5
- data/LOGGING.md +1 -1
- data/OVERVIEW.md +1 -2
- data/lib/google-cloud-trace.rb +20 -12
- data/lib/google/cloud/trace.rb +18 -14
- data/lib/google/cloud/trace/async_reporter.rb +7 -6
- data/lib/google/cloud/trace/credentials.rb +2 -2
- data/lib/google/cloud/trace/errors.rb +2 -2
- data/lib/google/cloud/trace/faraday_middleware.rb +5 -7
- data/lib/google/cloud/trace/label_key.rb +1 -1
- data/lib/google/cloud/trace/middleware.rb +7 -8
- data/lib/google/cloud/trace/notifications.rb +13 -14
- data/lib/google/cloud/trace/patches/active_call_with_trace.rb +2 -2
- data/lib/google/cloud/trace/patches/call_with_trace.rb +2 -2
- data/lib/google/cloud/trace/rails.rb +2 -2
- data/lib/google/cloud/trace/result_set.rb +20 -12
- data/lib/google/cloud/trace/service.rb +37 -60
- data/lib/google/cloud/trace/span.rb +7 -7
- data/lib/google/cloud/trace/trace_record.rb +4 -5
- data/lib/google/cloud/trace/utils.rb +1 -1
- data/lib/google/cloud/trace/version.rb +1 -1
- metadata +23 -72
- data/lib/google/cloud/trace/v1.rb +0 -16
- data/lib/google/cloud/trace/v1/credentials.rb +0 -39
- data/lib/google/cloud/trace/v1/doc/google/devtools/cloudtrace/v1/trace.rb +0 -253
- data/lib/google/cloud/trace/v1/doc/google/protobuf/empty.rb +0 -29
- data/lib/google/cloud/trace/v1/doc/google/protobuf/timestamp.rb +0 -113
- data/lib/google/cloud/trace/v1/trace_service_client.rb +0 -425
- data/lib/google/cloud/trace/v1/trace_service_client_config.json +0 -41
- data/lib/google/cloud/trace/v2.rb +0 -123
- data/lib/google/cloud/trace/v2/credentials.rb +0 -39
- data/lib/google/cloud/trace/v2/doc/google/devtools/cloudtrace/v2/trace.rb +0 -356
- data/lib/google/cloud/trace/v2/doc/google/devtools/cloudtrace/v2/tracing.rb +0 -33
- data/lib/google/cloud/trace/v2/doc/google/protobuf/any.rb +0 -131
- data/lib/google/cloud/trace/v2/doc/google/protobuf/empty.rb +0 -29
- data/lib/google/cloud/trace/v2/doc/google/protobuf/timestamp.rb +0 -113
- data/lib/google/cloud/trace/v2/doc/google/protobuf/wrappers.rb +0 -34
- data/lib/google/cloud/trace/v2/doc/google/rpc/status.rb +0 -39
- data/lib/google/cloud/trace/v2/trace_service_client.rb +0 -418
- data/lib/google/cloud/trace/v2/trace_service_client_config.json +0 -36
- data/lib/google/devtools/cloudtrace/v1/trace_pb.rb +0 -82
- data/lib/google/devtools/cloudtrace/v1/trace_services_pb.rb +0 -58
- data/lib/google/devtools/cloudtrace/v2/trace_pb.rb +0 -142
- data/lib/google/devtools/cloudtrace/v2/tracing_pb.rb +0 -29
- data/lib/google/devtools/cloudtrace/v2/tracing_services_pb.rb +0 -53
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1bf4b8064f4be89ea155e7b9cdd564e5084fef1dd5abd41e4c01e70ab8194854
         | 
| 4 | 
            +
              data.tar.gz: ea29cb8fd87df1b282e69ace53dd7bc8571de85a56507a3508ffc30ad9d7c813
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 407239b9dc8b6ea0ead1910f1d09cd78c0c32d3300cd0389329d3c48a7c47921baf1c636515c1ed975248e58c1cbe6d683608b95be4999693475398b696e4380
         | 
| 7 | 
            +
              data.tar.gz: d95c4415b120ce14b91b0c8019049d4b2db6c7a3473d3e3feeeb8cc512941dd5396b14103bdb44c54b243dc889c751b78f2ab7ebba21293f6dc833fbf1421b76
         | 
    
        data/AUTHENTICATION.md
    CHANGED
    
    | @@ -76,7 +76,7 @@ The environment variables that google-cloud-trace checks for project ID are: | |
| 76 76 | 
             
            1. `TRACE_PROJECT`
         | 
| 77 77 | 
             
            2. `GOOGLE_CLOUD_PROJECT`
         | 
| 78 78 |  | 
| 79 | 
            -
            The environment variables that google-cloud-trace checks for credentials are configured on {Google::Cloud::Trace:: | 
| 79 | 
            +
            The environment variables that google-cloud-trace checks for credentials are configured on {Google::Cloud::Trace::Credentials}:
         | 
| 80 80 |  | 
| 81 81 | 
             
            1. `TRACE_CREDENTIALS` - Path to JSON file, or JSON contents
         | 
| 82 82 | 
             
            2. `TRACE_KEYFILE` - Path to JSON file, or JSON contents
         | 
| @@ -95,7 +95,8 @@ client = Google::Cloud::Trace.new | |
| 95 95 |  | 
| 96 96 | 
             
            ### Configuration
         | 
| 97 97 |  | 
| 98 | 
            -
            The **Project ID** and **Credentials JSON** can be configured | 
| 98 | 
            +
            The **Project ID** and the path to the **Credentials JSON** file can be configured
         | 
| 99 | 
            +
            instead of placing them in environment variables or providing them as arguments.
         | 
| 99 100 |  | 
| 100 101 | 
             
            ```ruby
         | 
| 101 102 | 
             
            require "google/cloud/trace"
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,54 @@ | |
| 1 1 | 
             
            # Release History
         | 
| 2 2 |  | 
| 3 | 
            +
            ### 0.41.3 / 2021-07-08
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            #### Documentation
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            * Update AUTHENTICATION.md in handwritten packages
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ### 0.41.2 / 2021-06-22
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            #### Bug Fixes
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            * Error reporting no longer fails due to loading the wrong constant
         | 
| 14 | 
            +
            * Fixed a crash in the gRPC patch when no span is present in the current trace
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            ### 0.41.1 / 2021-06-17
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            #### Bug Fixes
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            * Fixed Ruby 3 keyword argument error in GRPC::ActiveCallWithTrace patch
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            ### 0.41.0 / 2021-03-11
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            #### Features
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            * Drop support for Ruby 2.4 and add support for Ruby 3.0
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            ### 0.40.0 / 2020-07-23
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            This is a major update that removes the "low-level" client interface code, and
         | 
| 31 | 
            +
            instead adds the new gems `google-cloud-trace-v1` and `google-cloud-trace-v2`,
         | 
| 32 | 
            +
            as dependencies.
         | 
| 33 | 
            +
            The new dependencies are rewritten low-level clients, produced by a next-
         | 
| 34 | 
            +
            generation client code generator, with improved performance and stability.
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            This change should have no effect on the high-level interface that most users
         | 
| 37 | 
            +
            will use. The one exception is that the (mostly undocumented) `client_config`
         | 
| 38 | 
            +
            argument, for adjusting low-level parameters such as RPC retry settings on
         | 
| 39 | 
            +
            client objects, has been removed. If you need to adjust these parameters, use
         | 
| 40 | 
            +
            the configuration interface in low-level clients.
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            Substantial changes have been made in the low-level interfaces, however. If you
         | 
| 43 | 
            +
            are using the low-level classes under the old `Google::Devtools::Cloudtrace`,
         | 
| 44 | 
            +
            `Google::Cloud::Trace::V1`, or `Google::Cloud::Trace::V2` modules, please
         | 
| 45 | 
            +
            review the docs for the new low-level gems to see usage changes. In particular:
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            * Some classes have been renamed, notably the client class itself.
         | 
| 48 | 
            +
            * The client constructor takes a configuration block instead of configuration
         | 
| 49 | 
            +
              keyword arguments.
         | 
| 50 | 
            +
            * All RPC method arguments are now keyword arguments.
         | 
| 51 | 
            +
             | 
| 3 52 | 
             
            ### 0.39.0 / 2020-07-07
         | 
| 4 53 |  | 
| 5 54 | 
             
            #### Features
         | 
    
        data/CONTRIBUTING.md
    CHANGED
    
    | @@ -24,7 +24,7 @@ be able to accept your pull requests. | |
| 24 24 | 
             
            In order to use the google-cloud-trace console and run the project's tests,
         | 
| 25 25 | 
             
            there is a small amount of setup:
         | 
| 26 26 |  | 
| 27 | 
            -
            1. Install Ruby. google-cloud-trace requires Ruby 2. | 
| 27 | 
            +
            1. Install Ruby. google-cloud-trace requires Ruby 2.5+. You may choose to
         | 
| 28 28 | 
             
               manage your Ruby and gem installations with [RVM](https://rvm.io/),
         | 
| 29 29 | 
             
               [rbenv](https://github.com/rbenv/rbenv), or
         | 
| 30 30 | 
             
               [chruby](https://github.com/postmodern/chruby).
         | 
| @@ -45,7 +45,7 @@ there is a small amount of setup: | |
| 45 45 |  | 
| 46 46 | 
             
               ```sh
         | 
| 47 47 | 
             
               $ cd google-cloud-trace/
         | 
| 48 | 
            -
               $ bundle  | 
| 48 | 
            +
               $ bundle install
         | 
| 49 49 | 
             
               ```
         | 
| 50 50 |  | 
| 51 51 | 
             
            ## Console
         | 
| @@ -119,15 +119,14 @@ If you alter an example's title, you may encounter breaking tests. | |
| 119 119 | 
             
            ### Trace Acceptance Tests
         | 
| 120 120 |  | 
| 121 121 | 
             
            The Trace acceptance tests interact with the live service API. Follow the
         | 
| 122 | 
            -
            instructions in the {file:AUTHENTICATION.md Authentication  | 
| 122 | 
            +
            instructions in the {file:AUTHENTICATION.md Authentication Guide} for enabling
         | 
| 123 123 | 
             
            the Trace API. Occasionally, some API features may not yet be generally
         | 
| 124 124 | 
             
            available, making it difficult for some contributors to successfully run the
         | 
| 125 125 | 
             
            entire acceptance test suite. However, please ensure that you do successfully
         | 
| 126 126 | 
             
            run acceptance tests for any code areas covered by your pull request.
         | 
| 127 127 |  | 
| 128 128 | 
             
            To run the acceptance tests, first create and configure a project in the Google
         | 
| 129 | 
            -
            Developers Console, as described in the {file:AUTHENTICATION.md Authentication
         | 
| 130 | 
            -
            guide}. Be sure to download the JSON KEY file. Make note of the PROJECT_ID and
         | 
| 129 | 
            +
            Developers Console, as described in the {file:AUTHENTICATION.md Authentication Guide}. Be sure to download the JSON KEY file. Make note of the PROJECT_ID and
         | 
| 131 130 | 
             
            the KEYFILE location on your system.
         | 
| 132 131 |  | 
| 133 132 | 
             
            Before you can run the Trace acceptance tests, you must first create indexes
         | 
    
        data/LOGGING.md
    CHANGED
    
    | @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            To enable logging for this library, set the logger for the underlying
         | 
| 4 4 | 
             
            [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library. The logger
         | 
| 5 5 | 
             
            that you set may be a Ruby stdlib
         | 
| 6 | 
            -
            [`Logger`](https://ruby-doc.org/stdlib | 
| 6 | 
            +
            [`Logger`](https://ruby-doc.org/stdlib/libdoc/logger/rdoc/Logger.html) as
         | 
| 7 7 | 
             
            shown below, or a
         | 
| 8 8 | 
             
            [`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
         | 
| 9 9 | 
             
            that will write logs to [Stackdriver
         | 
    
        data/OVERVIEW.md
    CHANGED
    
    | @@ -157,5 +157,4 @@ trace_client.patch_traces trace | |
| 157 157 | 
             
            ## Additional information
         | 
| 158 158 |  | 
| 159 159 | 
             
            Stackdriver Trace can be configured to be used in Rack applications or to use
         | 
| 160 | 
            -
            gRPC's logging. To learn more, see the {file:INSTRUMENTATION.md Instrumentation
         | 
| 161 | 
            -
            Guide} and {file:LOGGING.md Logging guide}.
         | 
| 160 | 
            +
            gRPC's logging. To learn more, see the {file:INSTRUMENTATION.md Instrumentation Guide} and {file:LOGGING.md Logging guide}.
         | 
    
        data/lib/google-cloud-trace.rb
    CHANGED
    
    | @@ -57,10 +57,9 @@ module Google | |
| 57 57 | 
             
                #     puts "Retrieved trace ID: #{trace.trace_id}"
         | 
| 58 58 | 
             
                #   end
         | 
| 59 59 | 
             
                #
         | 
| 60 | 
            -
                def trace scope: nil, timeout: nil | 
| 60 | 
            +
                def trace scope: nil, timeout: nil
         | 
| 61 61 | 
             
                  Google::Cloud.trace @project, @keyfile, scope: scope,
         | 
| 62 | 
            -
                                                          timeout: (timeout || @timeout) | 
| 63 | 
            -
                                                          client_config: client_config
         | 
| 62 | 
            +
                                                          timeout: (timeout || @timeout)
         | 
| 64 63 | 
             
                end
         | 
| 65 64 |  | 
| 66 65 | 
             
                ##
         | 
| @@ -99,12 +98,15 @@ module Google | |
| 99 98 | 
             
                #     puts "Retrieved trace ID: #{trace.trace_id}"
         | 
| 100 99 | 
             
                #   end
         | 
| 101 100 | 
             
                #
         | 
| 102 | 
            -
                def self.trace project_id = nil, | 
| 103 | 
            -
                                | 
| 101 | 
            +
                def self.trace project_id = nil,
         | 
| 102 | 
            +
                               credentials = nil,
         | 
| 103 | 
            +
                               scope: nil,
         | 
| 104 | 
            +
                               timeout: nil
         | 
| 104 105 | 
             
                  require "google/cloud/trace"
         | 
| 105 | 
            -
                  Google::Cloud::Trace.new project_id: project_id, | 
| 106 | 
            -
                                            | 
| 107 | 
            -
                                            | 
| 106 | 
            +
                  Google::Cloud::Trace.new project_id: project_id,
         | 
| 107 | 
            +
                                           credentials: credentials,
         | 
| 108 | 
            +
                                           scope: scope,
         | 
| 109 | 
            +
                                           timeout: timeout
         | 
| 108 110 | 
             
                end
         | 
| 109 111 | 
             
              end
         | 
| 110 112 | 
             
            end
         | 
| @@ -127,17 +129,23 @@ Google::Cloud.configure.add_config! :trace do |config| | |
| 127 129 | 
             
                  "TRACE_KEYFILE", "TRACE_KEYFILE_JSON"
         | 
| 128 130 | 
             
                )
         | 
| 129 131 | 
             
              end
         | 
| 132 | 
            +
              endpoint = "cloudtrace.googleapis.com".freeze
         | 
| 133 | 
            +
              scopes = [
         | 
| 134 | 
            +
                "https://www.googleapis.com/auth/cloud-platform",
         | 
| 135 | 
            +
                "https://www.googleapis.com/auth/trace.append",
         | 
| 136 | 
            +
                "https://www.googleapis.com/auth/trace.readonly"
         | 
| 137 | 
            +
              ].freeze
         | 
| 130 138 |  | 
| 131 139 | 
             
              config.add_field! :project_id, default_project, match: String, allow_nil: true
         | 
| 132 140 | 
             
              config.add_alias! :project, :project_id
         | 
| 133 | 
            -
              config.add_field! :credentials, | 
| 141 | 
            +
              config.add_field! :credentials,
         | 
| 142 | 
            +
                                default_creds,
         | 
| 134 143 | 
             
                                match: [String, Hash, Google::Auth::Credentials],
         | 
| 135 144 | 
             
                                allow_nil: true
         | 
| 136 145 | 
             
              config.add_alias! :keyfile, :credentials
         | 
| 137 | 
            -
              config.add_field! :scope,  | 
| 146 | 
            +
              config.add_field! :scope, scopes, match: [String, Array]
         | 
| 138 147 | 
             
              config.add_field! :timeout, nil, match: Integer
         | 
| 139 | 
            -
              config.add_field! : | 
| 140 | 
            -
              config.add_field! :endpoint, nil, match: String
         | 
| 148 | 
            +
              config.add_field! :endpoint, endpoint, match: String
         | 
| 141 149 | 
             
              config.add_field! :capture_stack, nil, enum: [true, false]
         | 
| 142 150 | 
             
              config.add_field! :sampler, nil
         | 
| 143 151 | 
             
              config.add_field! :span_id_generator, nil, match: Proc
         | 
    
        data/lib/google/cloud/trace.rb
    CHANGED
    
    | @@ -68,8 +68,6 @@ module Google | |
| 68 68 | 
             
                  #   * `https://www.googleapis.com/auth/cloud-platform`
         | 
| 69 69 | 
             
                  #
         | 
| 70 70 | 
             
                  # @param [Integer] timeout Default timeout to use in requests. Optional.
         | 
| 71 | 
            -
                  # @param [Hash] client_config A hash of values to override the default
         | 
| 72 | 
            -
                  #   behavior of the API client. Optional.
         | 
| 73 71 | 
             
                  # @param [String] endpoint Override of the endpoint host name. Optional.
         | 
| 74 72 | 
             
                  #   If the param is nil, uses the default endpoint.
         | 
| 75 73 | 
             
                  # @param [String] project Alias for the `project_id` argument. Deprecated.
         | 
| @@ -88,12 +86,16 @@ module Google | |
| 88 86 | 
             
                  #     puts "Retrieved trace ID: #{trace.trace_id}"
         | 
| 89 87 | 
             
                  #   end
         | 
| 90 88 | 
             
                  #
         | 
| 91 | 
            -
                  def self.new project_id: nil, | 
| 92 | 
            -
                                | 
| 89 | 
            +
                  def self.new project_id: nil,
         | 
| 90 | 
            +
                               credentials: nil,
         | 
| 91 | 
            +
                               scope: nil,
         | 
| 92 | 
            +
                               timeout: nil,
         | 
| 93 | 
            +
                               endpoint: nil,
         | 
| 94 | 
            +
                               project: nil,
         | 
| 95 | 
            +
                               keyfile: nil
         | 
| 93 96 | 
             
                    project_id    ||= (project || default_project_id)
         | 
| 94 97 | 
             
                    scope         ||= configure.scope
         | 
| 95 98 | 
             
                    timeout       ||= configure.timeout
         | 
| 96 | 
            -
                    client_config ||= configure.client_config
         | 
| 97 99 | 
             
                    endpoint      ||= configure.endpoint
         | 
| 98 100 | 
             
                    credentials   ||= (keyfile || default_credentials(scope: scope))
         | 
| 99 101 |  | 
| @@ -104,12 +106,8 @@ module Google | |
| 104 106 | 
             
                    project_id = project_id.to_s # Always cast to a string
         | 
| 105 107 | 
             
                    raise ArgumentError, "project_id is missing" if project_id.empty?
         | 
| 106 108 |  | 
| 107 | 
            -
                    Trace:: | 
| 108 | 
            -
             | 
| 109 | 
            -
                        project_id, credentials,
         | 
| 110 | 
            -
                        host: endpoint, timeout: timeout, client_config: client_config
         | 
| 111 | 
            -
                      )
         | 
| 112 | 
            -
                    )
         | 
| 109 | 
            +
                    service = Trace::Service.new project_id, credentials, host: endpoint, timeout: timeout
         | 
| 110 | 
            +
                    Trace::Project.new service
         | 
| 113 111 | 
             
                  end
         | 
| 114 112 |  | 
| 115 113 | 
             
                  ##
         | 
| @@ -128,8 +126,6 @@ module Google | |
| 128 126 | 
             
                  # * `scope` - (String, Array<String>) The OAuth 2.0 scopes controlling
         | 
| 129 127 | 
             
                  #   the set of resources and operations that the connection can access.
         | 
| 130 128 | 
             
                  # * `timeout` - (Integer) Default timeout to use in requests.
         | 
| 131 | 
            -
                  # * `client_config` - (Hash) A hash of values to override the default
         | 
| 132 | 
            -
                  #   behavior of the API client.
         | 
| 133 129 | 
             
                  # * `endpoint` - (String) Override of the endpoint host name, or `nil`
         | 
| 134 130 | 
             
                  #   to use the default endpoint.
         | 
| 135 131 | 
             
                  # * `capture_stack` - (Boolean) Whether to capture stack traces for each
         | 
| @@ -267,7 +263,8 @@ module Google | |
| 267 263 | 
             
                  #     end
         | 
| 268 264 | 
             
                  #   end
         | 
| 269 265 | 
             
                  #
         | 
| 270 | 
            -
                  def self.in_span name, | 
| 266 | 
            +
                  def self.in_span name,
         | 
| 267 | 
            +
                                   kind: Google::Cloud::Trace::SpanKind::UNSPECIFIED,
         | 
| 271 268 | 
             
                                   labels: {}
         | 
| 272 269 | 
             
                    parent = get
         | 
| 273 270 | 
             
                    if parent
         | 
| @@ -285,4 +282,11 @@ module Google | |
| 285 282 | 
             
                  end
         | 
| 286 283 | 
             
                end
         | 
| 287 284 | 
             
              end
         | 
| 285 | 
            +
             | 
| 286 | 
            +
              # Aliases for compatibility with older spellings.
         | 
| 287 | 
            +
              # @private
         | 
| 288 | 
            +
              module Devtools
         | 
| 289 | 
            +
                # @private
         | 
| 290 | 
            +
                Cloudtrace = ::Google::Cloud::Trace unless const_defined? :Cloudtrace
         | 
| 291 | 
            +
              end
         | 
| 288 292 | 
             
            end
         | 
| @@ -36,7 +36,7 @@ module Google | |
| 36 36 |  | 
| 37 37 | 
             
                    ##
         | 
| 38 38 | 
             
                    # @private Creates a new AsyncReporter instance.
         | 
| 39 | 
            -
                    def initialize service, max_count: 1000, max_bytes:  | 
| 39 | 
            +
                    def initialize service, max_count: 1000, max_bytes: 4_000_000,
         | 
| 40 40 | 
             
                                   max_queue: 100, interval: 5, threads: 10
         | 
| 41 41 | 
             
                      # init MonitorMixin
         | 
| 42 42 | 
             
                      super()
         | 
| @@ -111,7 +111,7 @@ module Google | |
| 111 111 | 
             
                        @stopped = true
         | 
| 112 112 | 
             
                        patch_batch!
         | 
| 113 113 | 
             
                        @cond.broadcast
         | 
| 114 | 
            -
                        @thread_pool | 
| 114 | 
            +
                        @thread_pool&.shutdown
         | 
| 115 115 | 
             
                      end
         | 
| 116 116 |  | 
| 117 117 | 
             
                      self
         | 
| @@ -219,7 +219,7 @@ module Google | |
| 219 219 | 
             
                            @cond.wait
         | 
| 220 220 | 
             
                          else
         | 
| 221 221 | 
             
                            # still waiting for the interval to publish the batch...
         | 
| 222 | 
            -
                            @cond.wait | 
| 222 | 
            +
                            @cond.wait @batch.publish_wait
         | 
| 223 223 | 
             
                          end
         | 
| 224 224 | 
             
                        end
         | 
| 225 225 | 
             
                      end
         | 
| @@ -282,7 +282,7 @@ module Google | |
| 282 282 | 
             
                    def default_error_callbacks
         | 
| 283 283 | 
             
                      # This is memoized to reduce calls to the configuration.
         | 
| 284 284 | 
             
                      @default_error_callbacks ||= begin
         | 
| 285 | 
            -
                        error_callback = Google::Cloud:: | 
| 285 | 
            +
                        error_callback = Google::Cloud::Trace.configure.on_error
         | 
| 286 286 | 
             
                        error_callback ||= Google::Cloud.configure.on_error
         | 
| 287 287 | 
             
                        if error_callback
         | 
| 288 288 | 
             
                          [error_callback]
         | 
| @@ -295,7 +295,8 @@ module Google | |
| 295 295 | 
             
                    ##
         | 
| 296 296 | 
             
                    # @private
         | 
| 297 297 | 
             
                    class Batch
         | 
| 298 | 
            -
                      attr_reader :created_at | 
| 298 | 
            +
                      attr_reader :created_at
         | 
| 299 | 
            +
                      attr_reader :traces
         | 
| 299 300 |  | 
| 300 301 | 
             
                      def initialize reporter
         | 
| 301 302 | 
             
                        @reporter = reporter
         | 
| @@ -337,7 +338,7 @@ module Google | |
| 337 338 |  | 
| 338 339 | 
             
                      def publish_wait
         | 
| 339 340 | 
             
                        publish_wait = publish_at - Time.now
         | 
| 340 | 
            -
                        return 0 if publish_wait | 
| 341 | 
            +
                        return 0 if publish_wait.negative?
         | 
| 341 342 | 
             
                        publish_wait
         | 
| 342 343 | 
             
                      end
         | 
| 343 344 |  | 
| @@ -13,7 +13,7 @@ | |
| 13 13 | 
             
            # limitations under the License.
         | 
| 14 14 |  | 
| 15 15 |  | 
| 16 | 
            -
            require "google/cloud/trace/v1/credentials"
         | 
| 16 | 
            +
            require "google/cloud/trace/v1/trace_service/credentials"
         | 
| 17 17 |  | 
| 18 18 | 
             
            module Google
         | 
| 19 19 | 
             
              module Cloud
         | 
| @@ -37,7 +37,7 @@ module Google | |
| 37 37 | 
             
                  #
         | 
| 38 38 | 
             
                  #   trace.project_id #=> "my-project"
         | 
| 39 39 | 
             
                  #
         | 
| 40 | 
            -
                  class Credentials < Google::Cloud::Trace::V1::Credentials
         | 
| 40 | 
            +
                  class Credentials < Google::Cloud::Trace::V1::TraceService::Credentials
         | 
| 41 41 | 
             
                  end
         | 
| 42 42 | 
             
                end
         | 
| 43 43 | 
             
              end
         | 
| @@ -32,7 +32,7 @@ module Google | |
| 32 32 | 
             
                    attr_reader :traces
         | 
| 33 33 |  | 
| 34 34 | 
             
                    def initialize message, traces = nil
         | 
| 35 | 
            -
                      super | 
| 35 | 
            +
                      super message
         | 
| 36 36 | 
             
                      @traces = traces if traces
         | 
| 37 37 | 
             
                    end
         | 
| 38 38 | 
             
                  end
         | 
| @@ -50,7 +50,7 @@ module Google | |
| 50 50 | 
             
                    attr_reader :traces
         | 
| 51 51 |  | 
| 52 52 | 
             
                    def initialize message, traces = nil
         | 
| 53 | 
            -
                      super | 
| 53 | 
            +
                      super message
         | 
| 54 54 | 
             
                      @traces = traces if traces
         | 
| 55 55 | 
             
                    end
         | 
| 56 56 | 
             
                  end
         | 
| @@ -39,10 +39,9 @@ module Google | |
| 39 39 | 
             
                    #   faraday.adapter  Faraday.default_adapter  # use Net::HTTP adapter
         | 
| 40 40 | 
             
                    # end
         | 
| 41 41 | 
             
                    # ```
         | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
                      super | 
| 45 | 
            -
                      @enable_cross_project_tracing = enable_cross_project_tracing || false
         | 
| 42 | 
            +
                    def initialize app, opts = {}
         | 
| 43 | 
            +
                      @enable_cross_project_tracing = opts[:enable_cross_project_tracing] || false
         | 
| 44 | 
            +
                      super app
         | 
| 46 45 | 
             
                    end
         | 
| 47 46 |  | 
| 48 47 | 
             
                    ##
         | 
| @@ -114,9 +113,8 @@ module Google | |
| 114 113 | 
             
                    ##
         | 
| 115 114 | 
             
                    # @private Add X-Cloud-Trace-Context for request header
         | 
| 116 115 | 
             
                    def add_trace_context_header env
         | 
| 117 | 
            -
                       | 
| 118 | 
            -
             | 
| 119 | 
            -
                      end
         | 
| 116 | 
            +
                      trace_ctx = Stackdriver::Core::TraceContext.get
         | 
| 117 | 
            +
                      env[:request_headers]["X-Cloud-Trace-Context"] = trace_ctx.to_string if trace_ctx
         | 
| 120 118 | 
             
                    end
         | 
| 121 119 | 
             
                  end
         | 
| 122 120 | 
             
                end
         | 
| @@ -118,7 +118,7 @@ module Google | |
| 118 118 | 
             
                      json_frames = []
         | 
| 119 119 | 
             
                      collecting_frames = !truncate_stack
         | 
| 120 120 | 
             
                      stack_frames.each do |frame|
         | 
| 121 | 
            -
                        collecting_frames ||= truncate_stack.call | 
| 121 | 
            +
                        collecting_frames ||= truncate_stack.call frame
         | 
| 122 122 | 
             
                        next unless collecting_frames
         | 
| 123 123 | 
             
                        next unless !filter_stack || filter_stack.call(frame)
         | 
| 124 124 | 
             
                        json_frames <<
         | 
| @@ -154,7 +154,7 @@ module Google | |
| 154 154 | 
             
                    def initialize app, service: nil, **kwargs
         | 
| 155 155 | 
             
                      @app = app
         | 
| 156 156 |  | 
| 157 | 
            -
                      load_config | 
| 157 | 
            +
                      load_config(**kwargs)
         | 
| 158 158 |  | 
| 159 159 | 
             
                      if service
         | 
| 160 160 | 
             
                        @service = service
         | 
| @@ -203,7 +203,7 @@ module Google | |
| 203 203 | 
             
                    # @return [Stackdriver::Core::TraceContext] The trace context.
         | 
| 204 204 | 
             
                    #
         | 
| 205 205 | 
             
                    def get_trace_context env
         | 
| 206 | 
            -
                      Stackdriver::Core::TraceContext.parse_rack_env | 
| 206 | 
            +
                      Stackdriver::Core::TraceContext.parse_rack_env env do |tc|
         | 
| 207 207 | 
             
                        if tc.sampled?.nil?
         | 
| 208 208 | 
             
                          sampler = configuration.sampler ||
         | 
| 209 209 | 
             
                                    Google::Cloud::Trace::TimeSampler.default
         | 
| @@ -240,12 +240,11 @@ module Google | |
| 240 240 | 
             
                    # @param [Hash] env The Rack environment.
         | 
| 241 241 | 
             
                    #
         | 
| 242 242 | 
             
                    def send_trace trace, env
         | 
| 243 | 
            -
                       | 
| 244 | 
            -
             | 
| 245 | 
            -
             | 
| 246 | 
            -
             | 
| 247 | 
            -
             | 
| 248 | 
            -
                        end
         | 
| 243 | 
            +
                      return unless @service && trace.trace_context.sampled?
         | 
| 244 | 
            +
                      begin
         | 
| 245 | 
            +
                        @service.patch_traces trace
         | 
| 246 | 
            +
                      rescue StandardError => e
         | 
| 247 | 
            +
                        handle_error e, logger: env["rack.logger"]
         | 
| 249 248 | 
             
                      end
         | 
| 250 249 | 
             
                    end
         | 
| 251 250 |  | 
| @@ -71,7 +71,7 @@ module Google | |
| 71 71 | 
             
                                        label_namespace: DEFAULT_LABEL_NAMESPACE,
         | 
| 72 72 | 
             
                                        capture_stack: false
         | 
| 73 73 | 
             
                      require "active_support/notifications"
         | 
| 74 | 
            -
                      ActiveSupport::Notifications.subscribe | 
| 74 | 
            +
                      ActiveSupport::Notifications.subscribe type do |*args|
         | 
| 75 75 | 
             
                        event = ActiveSupport::Notifications::Event.new(*args)
         | 
| 76 76 | 
             
                        handle_notification_event event, max_length, label_namespace,
         | 
| 77 77 | 
             
                                                  capture_stack
         | 
| @@ -83,19 +83,18 @@ module Google | |
| 83 83 | 
             
                    def self.handle_notification_event event, maxlen, label_namespace,
         | 
| 84 84 | 
             
                                                       capture_stack
         | 
| 85 85 | 
             
                      cur_span = Google::Cloud::Trace.get
         | 
| 86 | 
            -
                       | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 90 | 
            -
             | 
| 91 | 
            -
             | 
| 92 | 
            -
             | 
| 93 | 
            -
                        end
         | 
| 94 | 
            -
                        cur_span.create_span event.name,
         | 
| 95 | 
            -
                                             start_time: event.time,
         | 
| 96 | 
            -
                                             end_time: event.end,
         | 
| 97 | 
            -
                                             labels: labels
         | 
| 86 | 
            +
                      return unless cur_span && event.time && event.end
         | 
| 87 | 
            +
                      labels = payload_to_labels event, maxlen, label_namespace
         | 
| 88 | 
            +
                      if capture_stack
         | 
| 89 | 
            +
                        Google::Cloud::Trace::LabelKey.set_stack_trace \
         | 
| 90 | 
            +
                          labels,
         | 
| 91 | 
            +
                          skip_frames: 2,
         | 
| 92 | 
            +
                          truncate_stack: REMOVE_NOTIFICATION_FRAMEWORK
         | 
| 98 93 | 
             
                      end
         | 
| 94 | 
            +
                      cur_span.create_span event.name,
         | 
| 95 | 
            +
                                           start_time: event.time,
         | 
| 96 | 
            +
                                           end_time: event.end,
         | 
| 97 | 
            +
                                           labels: labels
         | 
| 99 98 | 
             
                    end
         | 
| 100 99 |  | 
| 101 100 | 
             
                    ##
         | 
| @@ -104,7 +103,7 @@ module Google | |
| 104 103 | 
             
                      labels = {}
         | 
| 105 104 | 
             
                      event.payload.each do |k, v|
         | 
| 106 105 | 
             
                        if v.is_a? ::String
         | 
| 107 | 
            -
                          v = v[0, maxlen - 3] | 
| 106 | 
            +
                          v = "#{v[0, maxlen - 3]}..." if maxlen && v.size > maxlen
         | 
| 108 107 | 
             
                          labels["#{label_namespace}#{k}"] = v.to_s
         | 
| 109 108 | 
             
                        end
         | 
| 110 109 | 
             
                      end
         |