ddtrace 0.25.0 → 0.25.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc7abea1fd11b0e43875d0b3e657110d9784e735
4
- data.tar.gz: dcfbeb9c0ad9d4a1d32e8bca7ab24290e65a40aa
3
+ metadata.gz: 355cf6450731c598911ebe51c98e5212e1041dfd
4
+ data.tar.gz: 6fc731d38849f3be7c243ca10aca66c3e90fb6ce
5
5
  SHA512:
6
- metadata.gz: a3d4c48ba5015646eecc48254b76a71dad02713c4ceaf01a5b97dc2538784df65ee55b10e5794ed9987390145e83a00a8cb8214b9e445cfd80dbc750c3fad83d
7
- data.tar.gz: e22ee413bba3877f5296ffcaa6ca62684c65c907dbe03e1f62d63c6c98cb187ae19ec9217d5e9b1c6a35dcd9f5a03e37c6964728d9489e8ec6ed860330572b33
6
+ metadata.gz: cd5a4b10976db57363e83ee8876dbcea361fa845f992eb4d92e280c42d6601423601e08abeab6e8ad49557ed3a5c2578d93f864538a63a12d946463e41b13bc5
7
+ data.tar.gz: c53f09353336e3c3b5a6588542db0f2b92979c745ccf1cd3354d471ff168abc4946b130663e87c13ef957221defa299f23da5e5ff2e86b080e07f1a280d8e380
@@ -4,6 +4,16 @@
4
4
 
5
5
  ## [Unreleased (beta)]
6
6
 
7
+ ## [0.25.1] - 2019-07-16
8
+
9
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.25.1
10
+
11
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.25.0...v0.25.1
12
+
13
+ ### Fixed
14
+
15
+ - Redis integration not quantizing AUTH command (#776)
16
+
7
17
  ## [0.25.0] - 2019-06-27
8
18
 
9
19
  Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.25.0
@@ -866,8 +876,11 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
866
876
 
867
877
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
868
878
 
869
- [Unreleased (stable)]: https://github.com/DataDog/dd-trace-rb/compare/v0.23.3...master
870
- [Unreleased (beta)]: https://github.com/DataDog/dd-trace-rb/compare/v0.23.3...0.24-dev
879
+ [Unreleased (stable)]: https://github.com/DataDog/dd-trace-rb/compare/v0.25.1...master
880
+ [Unreleased (beta)]: https://github.com/DataDog/dd-trace-rb/compare/v0.25.1...0.26-dev
881
+ [0.25.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.25.0...v0.25.1
882
+ [0.25.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.24.0...v0.25.0
883
+ [0.24.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.23.3...v0.24.0
871
884
  [0.23.3]: https://github.com/DataDog/dd-trace-rb/compare/v0.23.2...v0.23.3
872
885
  [0.23.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.23.1...v0.23.2
873
886
  [0.23.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.23.0...v0.23.1
@@ -1,19 +1,17 @@
1
- # Datadog Trace Client
1
+ # Datadog Ruby Trace Client
2
2
 
3
3
  `ddtrace` is Datadog’s tracing client for Ruby. It is used to trace requests as they flow across web servers,
4
- databases and microservices so that developers have great visiblity into bottlenecks and troublesome requests.
4
+ databases and microservices so that developers have high visibility into bottlenecks and troublesome requests.
5
5
 
6
6
  ## Getting started
7
7
 
8
- For a basic product overview, check out our [setup documentation][setup docs].
8
+ For the general APM documentation, see our [setup documentation][setup docs].
9
9
 
10
- For details about contributing, check out the [development guide][development docs].
10
+ For more information about what APM looks like once your application is sending information to Datadog, take a look at [Visualizing your APM data][visualization docs].
11
11
 
12
- For descriptions of terminology used in APM, take a look at the [official documentation][visualization docs].
12
+ To contribute, check out the [contribution guidelines][contribution docs] and [development guide][development docs].
13
13
 
14
- For contributing, checkout the [contribution guidelines][contribution docs] and [development guide][development docs].
15
-
16
- [setup docs]: https://docs.datadoghq.com/tracing/setup/ruby/
14
+ [setup docs]: https://docs.datadoghq.com/tracing/
17
15
  [development docs]: https://github.com/DataDog/dd-trace-rb/blob/master/README.md#development
18
16
  [visualization docs]: https://docs.datadoghq.com/tracing/visualization/
19
17
  [contribution docs]: https://github.com/DataDog/dd-trace-rb/blob/master/CONTRIBUTING.md
@@ -113,7 +111,7 @@ The following steps will help you quickly start tracing your Ruby application.
113
111
 
114
112
  ### Setup the Datadog Agent
115
113
 
116
- The Ruby APM tracer sends trace data through the Datadog Agent.
114
+ Before downloading tracing on your application, install the Datadog Agent. The Ruby APM tracer sends trace data through the Datadog Agent.
117
115
 
118
116
  [Install and configure the Datadog Agent](https://docs.datadoghq.com/tracing/setup), see additional documentation for [tracing Docker applications](https://docs.datadoghq.com/tracing/setup/docker/).
119
117
 
@@ -153,8 +151,8 @@ The Ruby APM tracer sends trace data through the Datadog Agent.
153
151
  ```
154
152
 
155
153
  3. Add or activate instrumentation by doing either of the following:
156
- 1. Activate integration instrumentation (see [Integration instrumentation](#integration-instrumentation))
157
- 2. Add manual instrumentation around your code (see [Manual instrumentation](#manual-instrumentation))
154
+ - Activate integration instrumentation (see [Integration instrumentation](#integration-instrumentation))
155
+ - Add manual instrumentation around your code (see [Manual instrumentation](#manual-instrumentation))
158
156
 
159
157
  ### Quickstart for OpenTracing
160
158
 
@@ -183,8 +181,8 @@ The Ruby APM tracer sends trace data through the Datadog Agent.
183
181
  ```
184
182
 
185
183
  4. (Optional) Add or activate additional instrumentation by doing either of the following:
186
- 1. Activate Datadog integration instrumentation (see [Integration instrumentation](#integration-instrumentation))
187
- 2. Add Datadog manual instrumentation around your code (see [Manual instrumentation](#manual-instrumentation))
184
+ - Activate Datadog integration instrumentation (see [Integration instrumentation](#integration-instrumentation))
185
+ - Add Datadog manual instrumentation around your code (see [Manual instrumentation](#manual-instrumentation))
188
186
 
189
187
  ### Final steps for installation
190
188
 
@@ -192,7 +190,7 @@ After setting up, your services will appear on the [APM services page](https://a
192
190
 
193
191
  ## Manual Instrumentation
194
192
 
195
- If you aren't using a supported framework instrumentation, you may want to to manually instrument your code.
193
+ If you aren't using a supported framework instrumentation, you may want to manually instrument your code.
196
194
 
197
195
  To trace any Ruby code, you can use the `Datadog.tracer.trace` method:
198
196
 
@@ -249,7 +247,7 @@ It might not always be possible to wrap `Datadog.tracer.trace` around a block of
249
247
  To trace these operations, you can trace code asynchronously by calling `Datadog.tracer.trace` without a block:
250
248
 
251
249
  ```ruby
252
- # Some instrumentation framework calls this after an event began and finished...
250
+ # Some instrumentation framework calls this after an event finishes...
253
251
  def db_query(start, finish, query)
254
252
  span = Datadog.tracer.trace('database.query')
255
253
  span.resource = query
@@ -283,7 +281,7 @@ end
283
281
  ```
284
282
  ##### Enriching traces from nested methods
285
283
 
286
- You can tag additional information to current active span from any method. Note however that if the method is called and there is no span currently active `active_span` will be nil.
284
+ You can tag additional information to the current active span from any method. Note however that if the method is called and there is no span currently active `active_span` will be nil.
287
285
 
288
286
  ```ruby
289
287
  # e.g. adding tag to active span
@@ -346,7 +344,7 @@ For a list of available integrations, and their configuration options, please re
346
344
  | Sinatra | `sinatra` | `>= 1.4.5` | *[Link](#sinatra)* | *[Link](https://github.com/sinatra/sinatra)* |
347
345
  | Sucker Punch | `sucker_punch` | `>= 2.0` | *[Link](#sucker-punch)* | *[Link](https://github.com/brandonhilkert/sucker_punch)* |
348
346
 
349
- ### Active Model Serializers
347
+ #### Active Model Serializers
350
348
 
351
349
  The Active Model Serializers integration traces the `serialize` event for version 0.9+ and the `render` event for version 0.10+.
352
350
 
@@ -368,9 +366,9 @@ ActiveModelSerializers::SerializableResource.new(test_obj).serializable_hash
368
366
  | `service_name` | Service name used for `active_model_serializers` instrumentation. | `'active_model_serializers'` |
369
367
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
370
368
 
371
- ### Active Record
369
+ #### Active Record
372
370
 
373
- Most of the time, Active Record is set up as part of a web framework (Rails, Sinatra...) however it can be set up alone:
371
+ Most of the time, Active Record is set up as part of a web framework (Rails, Sinatra...) however, it can be set up alone:
374
372
 
375
373
  ```ruby
376
374
  require 'tmpdir'
@@ -393,10 +391,10 @@ Where `options` is an optional `Hash` that accepts the following parameters:
393
391
 
394
392
  | Key | Description | Default |
395
393
  | ---| --- | --- |
396
- | `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to global setting, `false` for off. | `false` |
394
+ | `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to the global setting, `false` for off. | `false` |
397
395
  | `orm_service_name` | Service name used for the Ruby ORM portion of `active_record` instrumentation. Overrides service name for ORM spans if explicitly set, which otherwise inherit their service from their parent. | `'active_record'` |
398
396
  | `service_name` | Service name used for database portion of `active_record` instrumentation. | Name of database adapter (e.g. `'mysql2'`) |
399
- | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
397
+ | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually, you don't need to set this. | `Datadog.tracer` |
400
398
 
401
399
  **Configuring trace settings per database**
402
400
 
@@ -404,7 +402,7 @@ You can configure trace settings per database connection by using the `describes
404
402
 
405
403
  ```ruby
406
404
  # Provide a `:describes` option with a connection key.
407
- # Any of the following keys are acceptable, and equivalent to one another.
405
+ # Any of the following keys are acceptable and equivalent to one another.
408
406
  # If a block is provided, it yields a Settings object that
409
407
  # accepts any of the configuration options listed above.
410
408
 
@@ -436,7 +434,7 @@ end
436
434
 
437
435
  If ActiveRecord traces an event that uses a connection that matches a key defined by `describes`, it will use the trace settings assigned to that connection. If the connection does not match any of the described connections, it will use default settings defined by `c.use :active_record` instead.
438
436
 
439
- ### AWS
437
+ #### AWS
440
438
 
441
439
  The AWS integration will trace every interaction (e.g. API calls) with AWS services (S3, ElastiCache etc.).
442
440
 
@@ -460,7 +458,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
460
458
  | `service_name` | Service name used for `aws` instrumentation | `'aws'` |
461
459
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
462
460
 
463
- ### Concurrent Ruby
461
+ #### Concurrent Ruby
464
462
 
465
463
  The Concurrent Ruby integration adds support for context propagation when using `::Concurrent::Future`.
466
464
  Making sure that code traced within the `Future#execute` will have correct parent set.
@@ -487,7 +485,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
487
485
  | `service_name` | Service name used for `concurrent-ruby` instrumentation | `'concurrent-ruby'` |
488
486
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
489
487
 
490
- ### Dalli
488
+ #### Dalli
491
489
 
492
490
  Dalli integration will trace all calls to your `memcached` server:
493
491
 
@@ -513,7 +511,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
513
511
  | `service_name` | Service name used for `dalli` instrumentation | `'memcached'` |
514
512
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
515
513
 
516
- ### DelayedJob
514
+ #### DelayedJob
517
515
 
518
516
  The DelayedJob integration uses lifecycle hooks to trace the job executions.
519
517
 
@@ -535,7 +533,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
535
533
  | `service_name` | Service name used for `DelayedJob` instrumentation | `'delayed_job'` |
536
534
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
537
535
 
538
- ### Elastic Search
536
+ #### Elastic Search
539
537
 
540
538
  The Elasticsearch integration will trace any call to `perform_request` in the `Client` object:
541
539
 
@@ -561,7 +559,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
561
559
  | `service_name` | Service name used for `elasticsearch` instrumentation | `'elasticsearch'` |
562
560
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
563
561
 
564
- ### Excon
562
+ #### Excon
565
563
 
566
564
  The `excon` integration is available through the `ddtrace` middleware:
567
565
 
@@ -614,7 +612,7 @@ Excon.new(
614
612
 
615
613
  Where `options` is a Hash that contains any of the parameters listed in the table above.
616
614
 
617
- ### Faraday
615
+ #### Faraday
618
616
 
619
617
  The `faraday` integration is available through the `ddtrace` middleware:
620
618
 
@@ -645,9 +643,9 @@ Where `options` is an optional `Hash` that accepts the following parameters:
645
643
  | `error_handler` | A `Proc` that accepts a `response` parameter. If it evaluates to a *truthy* value, the trace span is marked as an error. By default only sets 5XX responses as errors. | `nil` |
646
644
  | `service_name` | Service name for Faraday instrumentation. When provided to middleware for a specific connection, it applies only to that connection object. | `'faraday'` |
647
645
  | `split_by_domain` | Uses the request domain as the service name when set to `true`. | `false` |
648
- | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
646
+ | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually, you don't need to set this. | `Datadog.tracer` |
649
647
 
650
- ### Grape
648
+ #### Grape
651
649
 
652
650
  The Grape integration adds the instrumentation to Grape endpoints and filters. This integration can work side by side with other integrations like Rack and Rails.
653
651
 
@@ -680,7 +678,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
680
678
  | `service_name` | Service name used for `grape` instrumentation | `'grape'` |
681
679
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
682
680
 
683
- ### GraphQL
681
+ #### GraphQL
684
682
 
685
683
  The GraphQL integration activates instrumentation for GraphQL queries.
686
684
 
@@ -731,9 +729,9 @@ end
731
729
 
732
730
  Do *NOT* `use :graphql` in `Datadog.configure` if you choose to configure manually, as to avoid double tracing. These two means of configuring GraphQL tracing are considered mutually exclusive.
733
731
 
734
- ### gRPC
732
+ #### gRPC
735
733
 
736
- The `grpc` integration adds both client and server interceptors, which run as middleware prior to executing the service's remote procedure call. As gRPC applications are often distributed, the integration shares trace information between client and server.
734
+ The `grpc` integration adds both client and server interceptors, which run as middleware before executing the service's remote procedure call. As gRPC applications are often distributed, the integration shares trace information between client and server.
737
735
 
738
736
  To setup your integration, use the `Datadog.configure` method like so:
739
737
 
@@ -782,7 +780,7 @@ alternate_client = Demo::Echo::Service.rpc_stub_class.new(
782
780
 
783
781
  The integration will ensure that the `configured_interceptor` establishes a unique tracing setup for that client instance.
784
782
 
785
- ### MongoDB
783
+ #### MongoDB
786
784
 
787
785
  The integration traces any `Command` that is sent from the [MongoDB Ruby Driver](https://github.com/mongodb/mongo-ruby-driver) to a MongoDB cluster. By extension, Object Document Mappers (ODM) such as Mongoid are automatically instrumented if they use the official Ruby driver. To activate the integration, simply:
788
786
 
@@ -812,7 +810,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
812
810
  | `service_name` | Service name used for `mongo` instrumentation | `'mongodb'` |
813
811
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
814
812
 
815
- ### MySQL2
813
+ #### MySQL2
816
814
 
817
815
  The MySQL2 integration traces any SQL command sent through `mysql2` gem.
818
816
 
@@ -836,7 +834,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
836
834
  | `service_name` | Service name used for `mysql2` instrumentation | `'mysql2'` |
837
835
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
838
836
 
839
- ### Net/HTTP
837
+ #### Net/HTTP
840
838
 
841
839
  The Net/HTTP integration will trace any HTTP call using the standard lib Net::HTTP module.
842
840
 
@@ -872,7 +870,7 @@ client = Net::HTTP.new(host, port)
872
870
  Datadog.configure(client, options)
873
871
  ```
874
872
 
875
- ### Racecar
873
+ #### Racecar
876
874
 
877
875
  The Racecar integration provides tracing for Racecar jobs.
878
876
 
@@ -894,11 +892,11 @@ Where `options` is an optional `Hash` that accepts the following parameters:
894
892
  | `service_name` | Service name used for `racecar` instrumentation | `'racecar'` |
895
893
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
896
894
 
897
- ### Rack
895
+ #### Rack
898
896
 
899
897
  The Rack integration provides a middleware that traces all requests before they reach the underlying framework or application. It responds to the Rack minimal interface, providing reasonable values that can be retrieved at the Rack level.
900
898
 
901
- This integration is automatically activated with web frameworks like Rails. If you're using a plain Rack application, just enable the integration it to your `config.ru`:
899
+ This integration is automatically activated with web frameworks like Rails. If you're using a plain Rack application, enable the integration it to your `config.ru`:
902
900
 
903
901
  ```ruby
904
902
  # config.ru example
@@ -967,9 +965,9 @@ Datadog.configure do |c|
967
965
  end
968
966
  ```
969
967
 
970
- ### Rails
968
+ #### Rails
971
969
 
972
- The Rails integration will trace requests, database calls, templates rendering and cache read/write/delete operations. The integration makes use of the Active Support Instrumentation, listening to the Notification API so that any operation instrumented by the API is traced.
970
+ The Rails integration will trace requests, database calls, templates rendering, and cache read/write/delete operations. The integration makes use of the Active Support Instrumentation, listening to the Notification API so that any operation instrumented by the API is traced.
973
971
 
974
972
  To enable the Rails instrumentation, create an initializer file in your `config/initializers` folder:
975
973
 
@@ -986,17 +984,17 @@ Where `options` is an optional `Hash` that accepts the following parameters:
986
984
 
987
985
  | Key | Description | Default |
988
986
  | --- | ----------- | ------- |
989
- | `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to global setting, `false` for off. | `nil` |
987
+ | `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to the global setting, `false` for off. | `nil` |
990
988
  | `cache_service` | Cache service name used when tracing cache activity | `'<app_name>-cache'` |
991
989
  | `controller_service` | Service name used when tracing a Rails action controller | `'<app_name>'` |
992
990
  | `database_service` | Database service name used when tracing database activity | `'<app_name>-<adapter_name>'` |
993
991
  | `distributed_tracing` | Enables [distributed tracing](#distributed-tracing) so that this service trace is connected with a trace of another service if tracing headers are received | `true` |
994
992
  | `exception_controller` | Class or Module which identifies a custom exception controller class. Tracer provides improved error behavior when it can identify custom exception controllers. By default, without this option, it 'guesses' what a custom exception controller looks like. Providing this option aids this identification. | `nil` |
995
993
  | `middleware` | Add the trace middleware to the Rails application. Set to `false` if you don't want the middleware to load. | `true` |
996
- | `middleware_names` | Enables any short-circuited middleware requests to display the middleware name as resource for the trace. | `false` |
994
+ | `middleware_names` | Enables any short-circuited middleware requests to display the middleware name as a resource for the trace. | `false` |
997
995
  | `service_name` | Service name used when tracing application requests (on the `rack` level) | `'<app_name>'` (inferred from your Rails application namespace) |
998
996
  | `template_base_path` | Used when the template name is parsed. If you don't store your templates in the `views/` folder, you may need to change this value | `'views/'` |
999
- | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
997
+ | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually, you don't need to set this. | `Datadog.tracer` |
1000
998
 
1001
999
  **Supported versions**
1002
1000
 
@@ -1007,7 +1005,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
1007
1005
  | 2.2 - 2.3 | 3.0 - 5.2 |
1008
1006
  | 2.4 - 2.5 | 4.2.8 - 5.2 |
1009
1007
 
1010
- ### Rake
1008
+ #### Rake
1011
1009
 
1012
1010
  You can add instrumentation around your Rake tasks by activating the `rake` integration. Each task and its subsequent subtasks will be traced.
1013
1011
 
@@ -1033,11 +1031,11 @@ Where `options` is an optional `Hash` that accepts the following parameters:
1033
1031
 
1034
1032
  | Key | Description | Default |
1035
1033
  | --- | ----------- | ------- |
1036
- | `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to global setting, `false` for off. | `false` |
1034
+ | `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to the global setting, `false` for off. | `false` |
1037
1035
  | `enabled` | Defines whether Rake tasks should be traced. Useful for temporarily disabling tracing. `true` or `false` | `true` |
1038
1036
  | `quantize` | Hash containing options for quantization of task arguments. See below for more details and examples. | `{}` |
1039
1037
  | `service_name` | Service name used for `rake` instrumentation | `'rake'` |
1040
- | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
1038
+ | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually, you don't need to set this. | `Datadog.tracer` |
1041
1039
 
1042
1040
  **Configuring task quantization behavior**
1043
1041
 
@@ -1073,7 +1071,7 @@ Datadog.configure do |c|
1073
1071
  end
1074
1072
  ```
1075
1073
 
1076
- ### Redis
1074
+ #### Redis
1077
1075
 
1078
1076
  The Redis integration will trace simple calls as well as pipelines.
1079
1077
 
@@ -1113,11 +1111,11 @@ customer_cache.get(...)
1113
1111
  invoice_cache.get(...)
1114
1112
  ```
1115
1113
 
1116
- ### Resque
1114
+ #### Resque
1117
1115
 
1118
1116
  The Resque integration uses Resque hooks that wraps the `perform` method.
1119
1117
 
1120
- To add tracing to a Resque job, simply do as follows:
1118
+ To add tracing to a Resque job:
1121
1119
 
1122
1120
  ```ruby
1123
1121
  require 'ddtrace'
@@ -1137,12 +1135,12 @@ Where `options` is an optional `Hash` that accepts the following parameters:
1137
1135
 
1138
1136
  | Key | Description | Default |
1139
1137
  | --- | ----------- | ------- |
1140
- | `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to global setting, `false` for off. | `false` |
1138
+ | `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to the global setting, `false` for off. | `false` |
1141
1139
  | `service_name` | Service name used for `resque` instrumentation | `'resque'` |
1142
- | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
1143
- | `workers` | An array including all worker classes you want to trace (eg `[MyJob]`) | `[]` |
1140
+ | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually, you don't need to set this. | `Datadog.tracer` |
1141
+ | `workers` | An array including all worker classes you want to trace (e.g. `[MyJob]`) | `[]` |
1144
1142
 
1145
- ### Rest Client
1143
+ #### Rest Client
1146
1144
 
1147
1145
  The `rest-client` integration is available through the `ddtrace` middleware:
1148
1146
 
@@ -1164,7 +1162,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
1164
1162
  | `service_name` | Service name for `rest_client` instrumentation. | `'rest_client'` |
1165
1163
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
1166
1164
 
1167
- ### Sequel
1165
+ #### Sequel
1168
1166
 
1169
1167
  The Sequel integration traces queries made to your database.
1170
1168
 
@@ -1213,7 +1211,7 @@ Datadog.configure(sqlite_database, service_name: 'my-sqlite-db')
1213
1211
  Datadog.configure(postgres_database, service_name: 'my-postgres-db')
1214
1212
  ```
1215
1213
 
1216
- ### Shoryuken
1214
+ #### Shoryuken
1217
1215
 
1218
1216
  The Shoryuken integration is a server-side middleware which will trace job executions.
1219
1217
 
@@ -1235,7 +1233,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
1235
1233
  | `service_name` | Service name used for `shoryuken` instrumentation | `'shoryuken'` |
1236
1234
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
1237
1235
 
1238
- ### Sidekiq
1236
+ #### Sidekiq
1239
1237
 
1240
1238
  The Sidekiq integration is a client-side & server-side middleware which will trace job queuing and executions respectively.
1241
1239
 
@@ -1258,7 +1256,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
1258
1256
  | `service_name` | Service name used for server-side `sidekiq` instrumentation | `'sidekiq'` |
1259
1257
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
1260
1258
 
1261
- ### Sinatra
1259
+ #### Sinatra
1262
1260
 
1263
1261
  The Sinatra integration traces requests and template rendering.
1264
1262
 
@@ -1288,7 +1286,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
1288
1286
  | `service_name` | Service name used for `sinatra` instrumentation | `'sinatra'` |
1289
1287
  | `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
1290
1288
 
1291
- ### Sucker Punch
1289
+ #### Sucker Punch
1292
1290
 
1293
1291
  The `sucker_punch` integration traces all scheduled jobs:
1294
1292
 
@@ -1327,8 +1325,7 @@ end
1327
1325
 
1328
1326
  Available options are:
1329
1327
 
1330
- - `enabled`: defines if the `tracer` is enabled or not. If set to `false` the code could be still instrumented
1331
- because of other settings, but no spans are sent to the local trace agent.
1328
+ - `enabled`: defines if the `tracer` is enabled or not. If set to `false` the code could be still instrumented because of other settings, but no spans are sent to the local trace agent.
1332
1329
  - `debug`: set to true to enable debug logging.
1333
1330
  - `hostname`: set the hostname of the trace agent.
1334
1331
  - `port`: set the port the trace agent is listening on.
@@ -1372,7 +1369,7 @@ Ultimately, tags can be set per span, but `env` should typically be the same for
1372
1369
 
1373
1370
  ### Sampling
1374
1371
 
1375
- `ddtrace` can perform trace sampling. While the trace agent already samples traces to reduce bandwidth usage, client sampling reduces performance overhead.
1372
+ `ddtrace` can perform trace sampling. While the trace agent already samples traces to reduce bandwidth usage, client sampling reduces the performance overhead.
1376
1373
 
1377
1374
  `Datadog::RateSampler` samples a ratio of the traces. For example:
1378
1375
 
@@ -1386,7 +1383,7 @@ end
1386
1383
 
1387
1384
  #### Priority sampling
1388
1385
 
1389
- Priority sampling consists in deciding if a trace will be kept by using a priority attribute that will be propagated for distributed traces. Its value gives indication to the Agent and to the backend on how important the trace is.
1386
+ Priority sampling decides whether to keep a trace by using a priority attribute propagated for distributed traces. Its value indicates to the Agent and the backend about how important the trace is.
1390
1387
 
1391
1388
  The sampler can set the priority to the following values:
1392
1389
 
@@ -1400,9 +1397,9 @@ You can also set this priority manually to either drop a non-interesting trace o
1400
1397
  - `Datadog::Ext::Priority::USER_REJECT`: the user asked to reject the trace.
1401
1398
  - `Datadog::Ext::Priority::USER_KEEP`: the user asked to keep the trace.
1402
1399
 
1403
- When not using [distributed tracing](#distributed-tracing), you may change the priority at any time, as long as the trace is not finished yet. But it has to be done before any context propagation (fork, RPC calls) to be effective in a distributed context. Changing the priority after context has been propagated causes different parts of a distributed trace to use different priorities. Some parts might be kept, some parts might be rejected, and this can cause the trace to be partially stored and remain incomplete.
1400
+ When not using [distributed tracing](#distributed-tracing), you may change the priority at any time, as long as the trace incomplete. But it has to be done before any context propagation (fork, RPC calls) to be useful in a distributed context. Changing the priority after the context has been propagated causes different parts of a distributed trace to use different priorities. Some parts might be kept, some parts might be rejected, and this can cause the trace to be partially stored and remain incomplete.
1404
1401
 
1405
- If you change the priority, we recommend you do it as soon as possible, when the root span has just been created.
1402
+ If you change the priority, we recommend you do it as soon as possible - when the root span has just been created.
1406
1403
 
1407
1404
  ```ruby
1408
1405
  # First, grab the active span
@@ -1417,7 +1414,7 @@ span.context.sampling_priority = Datadog::Ext::Priority::USER_KEEP
1417
1414
 
1418
1415
  ### Distributed Tracing
1419
1416
 
1420
- Distributed tracing allows traces to be propagated across multiple instrumented applications, so that a request can be presented as a single trace, rather than a separate trace per service.
1417
+ Distributed tracing allows traces to be propagated across multiple instrumented applications so that a request can be presented as a single trace, rather than a separate trace per service.
1421
1418
 
1422
1419
  To trace requests across application boundaries, the following must be propagated between each application:
1423
1420
 
@@ -1523,7 +1520,7 @@ Many integrations included in `ddtrace` support distributed tracing. Distributed
1523
1520
 
1524
1521
  - If your application receives requests from services with distributed tracing activated, you must activate distributed tracing on the integrations that handle these requests (e.g. Rails)
1525
1522
  - If your application send requests to services with distributed tracing activated, you must activate distributed tracing on the integrations that send these requests (e.g. Faraday)
1526
- - If your application both sends and receives requests implementing distributed tracing, it must activate all integrations which handle these requests.
1523
+ - If your application both sends and receives requests implementing distributed tracing, it must activate all integrations that handle these requests.
1527
1524
 
1528
1525
  For more details on how to activate distributed tracing for integrations, see their documentation:
1529
1526
 
@@ -1560,11 +1557,11 @@ end
1560
1557
 
1561
1558
  ### HTTP request queuing
1562
1559
 
1563
- Traces that originate from HTTP requests can be configured to include the time spent in a frontend web server or load balancer queue, before the request reaches the Ruby application.
1560
+ Traces that originate from HTTP requests can be configured to include the time spent in a frontend web server or load balancer queue before the request reaches the Ruby application.
1564
1561
 
1565
1562
  This functionality is **experimental** and deactivated by default.
1566
1563
 
1567
- To activate this feature, you must add a `X-Request-Start` or `X-Queue-Start` header from your web server (i.e. Nginx). The following is an Nginx configuration example:
1564
+ To activate this feature, you must add an `X-Request-Start` or `X-Queue-Start` header from your web server (i.e., Nginx). The following is an Nginx configuration example:
1568
1565
 
1569
1566
  ```
1570
1567
  # /etc/nginx/conf.d/ruby_service.conf
@@ -1580,7 +1577,7 @@ server {
1580
1577
 
1581
1578
  Then you must enable the request queuing feature in the integration handling the request.
1582
1579
 
1583
- For Rack based applications, see the [documentation](#rack) for details for enabling this feature.
1580
+ For Rack-based applications, see the [documentation](#rack) for details for enabling this feature.
1584
1581
 
1585
1582
  ### Processing Pipeline
1586
1583
 
@@ -1647,7 +1644,7 @@ Datadog::Pipeline.before_flush(
1647
1644
 
1648
1645
  ### Trace correlation
1649
1646
 
1650
- In many cases, such as logging, it may be useful to correlate trace IDs to other events or data streams, for easier cross referencing. The tracer can produce a correlation identifier for the currently active trace via `active_correlation`, which can be used to decorate these other data sources.
1647
+ In many cases, such as logging, it may be useful to correlate trace IDs to other events or data streams, for easier cross-referencing. The tracer can produce a correlation identifier for the currently active trace via `active_correlation`, which can be used to decorate these other data sources.
1651
1648
 
1652
1649
  ```ruby
1653
1650
  # When a trace is active...
@@ -1689,7 +1686,7 @@ end
1689
1686
 
1690
1687
  #### For logging in Rails applications
1691
1688
 
1692
- Rails applications which are configured with a `ActiveSupport::TaggedLogging` logger can append correlation IDs as tags to log output. The default Rails logger implements this tagged logging, making it easier to add correlation tags.
1689
+ Rails applications which are configured with an `ActiveSupport::TaggedLogging` logger can append correlation IDs as tags to log output. The default Rails logger implements this tagged logging, making it easier to add correlation tags.
1693
1690
 
1694
1691
  In your Rails environment configuration file, add the following:
1695
1692
 
@@ -1844,12 +1841,12 @@ The stats sent will include:
1844
1841
  | `runtime.ruby.thread_count` | `gauge` | Number of threads. |
1845
1842
  | `runtime.ruby.gc.*`. | `gauge` | Garbage collection statistics (one per value in GC.stat) |
1846
1843
 
1847
- In addition, all metrics will include the following tags:
1844
+ In addition, all metrics include the following tags:
1848
1845
 
1849
1846
  | Name | Description |
1850
1847
  | ------------ | ------------------------------------------------------- |
1851
1848
  | `language` | Programming language traced. (e.g. `ruby`) |
1852
- | `service` | List of services this metric is associated with. |
1849
+ | `service` | List of services this associated with this metric. |
1853
1850
 
1854
1851
  ### OpenTracing
1855
1852
 
@@ -1870,12 +1867,12 @@ It can also be configured by using `Datadog.configure` described in the [Tracer
1870
1867
 
1871
1868
  By default, configuring OpenTracing with Datadog will not automatically activate any additional instrumentation provided by Datadog. You will only receive spans and traces from OpenTracing instrumentation you have in your application.
1872
1869
 
1873
- However, additional instrumentation provided by Datadog can be activated alongside OpenTracing using `Datadog.configure`, which can be used to further enhance your tracing. To activate this, see [Integration instrumentation](#integration-instrumentation) for more details.
1870
+ However, additional instrumentation provided by Datadog can be activated alongside OpenTracing using `Datadog.configure`, which can be used to enhance your tracing further. To activate this, see [Integration instrumentation](#integration-instrumentation) for more details.
1874
1871
 
1875
1872
  **Supported serialization formats**
1876
1873
 
1877
1874
  | Type | Supported? | Additional information |
1878
1875
  | ------------------------------ | ---------- | ---------------------- |
1879
1876
  | `OpenTracing::FORMAT_TEXT_MAP` | Yes | |
1880
- | `OpenTracing::FORMAT_RACK` | Yes | Because of the loss of resolution in the Rack format, please note that baggage items with names containing either upper case characters or `-` will be converted to lower case and `_` in a round-trip respectively. We recommend avoiding these characters, or accommodating accordingly on the receiving end. |
1877
+ | `OpenTracing::FORMAT_RACK` | Yes | Because of the loss of resolution in the Rack format, please note that baggage items with names containing either upper case characters or `-` will be converted to lower case and `_` in a round-trip respectively. We recommend avoiding these characters or accommodating accordingly on the receiving end. |
1881
1878
  | `OpenTracing::FORMAT_BINARY` | No | |
@@ -20,9 +20,15 @@ module Datadog
20
20
  end
21
21
 
22
22
  def format_command_args(command_args)
23
+ return 'AUTH ?' if auth_command?(command_args)
23
24
  cmd = command_args.map { |x| format_arg(x) }.join(' ')
24
25
  Utils.truncate(cmd, CMD_MAX_LEN, TOO_LONG_MARK)
25
26
  end
27
+
28
+ def auth_command?(command_args)
29
+ return false unless command_args.is_a?(Array) && !command_args.empty?
30
+ command_args.first.to_sym == :auth
31
+ end
26
32
  end
27
33
  end
28
34
  end
@@ -2,7 +2,7 @@ module Datadog
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 25
5
- PATCH = 0
5
+ PATCH = 1
6
6
  PRE = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.0
4
+ version: 0.25.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-27 00:00:00.000000000 Z
11
+ date: 2019-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack