ls-trace 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +419 -544
- data/.circleci/images/primary/Dockerfile-2.7.0 +73 -0
- data/.circleci/images/primary/Dockerfile-jruby-9.2 +77 -0
- data/.env +2 -0
- data/.gitignore +2 -0
- data/.gitlab-ci.yml +27 -0
- data/.rubocop.yml +8 -0
- data/.simplecov +38 -0
- data/Appraisals +299 -48
- data/CHANGELOG.md +3 -4
- data/LICENSE +4 -22
- data/LICENSE.Apache +200 -0
- data/LICENSE.BSD3 +24 -0
- data/NOTICE +4 -0
- data/README.md +4 -3
- data/Rakefile +561 -405
- data/ddtrace.gemspec +13 -4
- data/docker-compose.yml +96 -2
- data/docs/DevelopmentGuide.md +17 -1
- data/docs/GettingStarted.md +433 -138
- data/lib/ddtrace.rb +15 -0
- data/lib/ddtrace/analytics.rb +7 -0
- data/lib/ddtrace/buffer.rb +9 -9
- data/lib/ddtrace/chunker.rb +34 -0
- data/lib/ddtrace/configuration.rb +59 -5
- data/lib/ddtrace/configuration/base.rb +4 -2
- data/lib/ddtrace/configuration/components.rb +151 -0
- data/lib/ddtrace/configuration/option.rb +12 -3
- data/lib/ddtrace/configuration/option_definition.rb +1 -5
- data/lib/ddtrace/configuration/options.rb +6 -1
- data/lib/ddtrace/configuration/pin_setup.rb +3 -2
- data/lib/ddtrace/configuration/settings.rb +214 -40
- data/lib/ddtrace/context.rb +84 -63
- data/lib/ddtrace/context_flush.rb +51 -114
- data/lib/ddtrace/context_provider.rb +50 -0
- data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +30 -0
- data/lib/ddtrace/contrib/action_cable/event.rb +65 -0
- data/lib/ddtrace/contrib/action_cable/events.rb +33 -0
- data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +49 -0
- data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +55 -0
- data/lib/ddtrace/contrib/action_cable/events/transmit.rb +50 -0
- data/lib/ddtrace/contrib/action_cable/ext.rb +26 -0
- data/lib/ddtrace/contrib/action_cable/instrumentation.rb +31 -0
- data/lib/ddtrace/contrib/action_cable/integration.rb +38 -0
- data/lib/ddtrace/contrib/action_cable/patcher.rb +27 -0
- data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +6 -2
- data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +3 -15
- data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/action_pack/ext.rb +5 -2
- data/lib/ddtrace/contrib/action_pack/integration.rb +5 -3
- data/lib/ddtrace/contrib/action_pack/patcher.rb +3 -9
- data/lib/ddtrace/contrib/action_view/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/action_view/event.rb +39 -0
- data/lib/ddtrace/contrib/action_view/events.rb +30 -0
- data/lib/ddtrace/contrib/action_view/events/render_partial.rb +45 -0
- data/lib/ddtrace/contrib/action_view/events/render_template.rb +48 -0
- data/lib/ddtrace/contrib/action_view/ext.rb +5 -2
- data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +9 -13
- data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +16 -16
- data/lib/ddtrace/contrib/action_view/integration.rb +5 -3
- data/lib/ddtrace/contrib/action_view/patcher.rb +19 -25
- data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/active_model_serializers/event.rb +3 -0
- data/lib/ddtrace/contrib/active_model_serializers/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_model_serializers/integration.rb +6 -5
- data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +3 -10
- data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +4 -5
- data/lib/ddtrace/contrib/active_record/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/active_record/events/instantiation.rb +4 -1
- data/lib/ddtrace/contrib/active_record/events/sql.rb +1 -1
- data/lib/ddtrace/contrib/active_record/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_record/integration.rb +5 -3
- data/lib/ddtrace/contrib/active_record/patcher.rb +3 -9
- data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +2 -2
- data/lib/ddtrace/contrib/active_support/cache/patcher.rb +10 -24
- data/lib/ddtrace/contrib/active_support/cache/redis.rb +1 -1
- data/lib/ddtrace/contrib/active_support/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/active_support/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_support/integration.rb +5 -3
- data/lib/ddtrace/contrib/active_support/notifications/event.rb +3 -1
- data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +3 -3
- data/lib/ddtrace/contrib/active_support/patcher.rb +3 -9
- data/lib/ddtrace/contrib/analytics.rb +5 -1
- data/lib/ddtrace/contrib/aws/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/aws/ext.rb +5 -2
- data/lib/ddtrace/contrib/aws/integration.rb +8 -2
- data/lib/ddtrace/contrib/aws/patcher.rb +15 -15
- data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +5 -0
- data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +9 -3
- data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
- data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +8 -2
- data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +4 -11
- data/lib/ddtrace/contrib/configurable.rb +30 -13
- data/lib/ddtrace/contrib/configuration/resolver.rb +7 -3
- data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +39 -0
- data/lib/ddtrace/contrib/configuration/settings.rb +20 -1
- data/lib/ddtrace/contrib/dalli/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/dalli/ext.rb +5 -2
- data/lib/ddtrace/contrib/dalli/integration.rb +5 -3
- data/lib/ddtrace/contrib/dalli/patcher.rb +6 -16
- data/lib/ddtrace/contrib/dalli/quantize.rb +1 -1
- data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/delayed_job/ext.rb +5 -2
- data/lib/ddtrace/contrib/delayed_job/integration.rb +8 -2
- data/lib/ddtrace/contrib/delayed_job/patcher.rb +4 -10
- data/lib/ddtrace/contrib/delayed_job/plugin.rb +4 -0
- data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/elasticsearch/ext.rb +5 -2
- data/lib/ddtrace/contrib/elasticsearch/integration.rb +5 -3
- data/lib/ddtrace/contrib/elasticsearch/patcher.rb +10 -17
- data/lib/ddtrace/contrib/ethon/configuration/settings.rb +8 -2
- data/lib/ddtrace/contrib/ethon/easy_patch.rb +22 -13
- data/lib/ddtrace/contrib/ethon/ext.rb +5 -2
- data/lib/ddtrace/contrib/ethon/integration.rb +14 -2
- data/lib/ddtrace/contrib/ethon/patcher.rb +7 -9
- data/lib/ddtrace/contrib/excon/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/excon/ext.rb +5 -2
- data/lib/ddtrace/contrib/excon/integration.rb +13 -2
- data/lib/ddtrace/contrib/excon/middleware.rb +15 -12
- data/lib/ddtrace/contrib/excon/patcher.rb +4 -11
- data/lib/ddtrace/contrib/extensions.rb +39 -5
- data/lib/ddtrace/contrib/faraday/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/faraday/connection.rb +18 -0
- data/lib/ddtrace/contrib/faraday/ext.rb +5 -2
- data/lib/ddtrace/contrib/faraday/integration.rb +10 -3
- data/lib/ddtrace/contrib/faraday/middleware.rb +24 -34
- data/lib/ddtrace/contrib/faraday/patcher.rb +26 -19
- data/lib/ddtrace/contrib/grape/configuration/settings.rb +7 -3
- data/lib/ddtrace/contrib/grape/endpoint.rb +14 -5
- data/lib/ddtrace/contrib/grape/ext.rb +5 -2
- data/lib/ddtrace/contrib/grape/integration.rb +6 -3
- data/lib/ddtrace/contrib/grape/patcher.rb +9 -15
- data/lib/ddtrace/contrib/graphql/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/graphql/ext.rb +5 -2
- data/lib/ddtrace/contrib/graphql/integration.rb +6 -5
- data/lib/ddtrace/contrib/graphql/patcher.rb +11 -14
- data/lib/ddtrace/contrib/grpc/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +1 -1
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +2 -4
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +5 -2
- data/lib/ddtrace/contrib/grpc/ext.rb +5 -2
- data/lib/ddtrace/contrib/grpc/integration.rb +5 -3
- data/lib/ddtrace/contrib/grpc/patcher.rb +9 -19
- data/lib/ddtrace/contrib/http/circuit_breaker.rb +8 -32
- data/lib/ddtrace/contrib/http/configuration/settings.rb +8 -2
- data/lib/ddtrace/contrib/http/ext.rb +5 -2
- data/lib/ddtrace/contrib/http/instrumentation.rb +89 -28
- data/lib/ddtrace/contrib/http/integration.rb +13 -0
- data/lib/ddtrace/contrib/http/patcher.rb +3 -9
- data/lib/ddtrace/contrib/http_annotation_helper.rb +10 -0
- data/lib/ddtrace/contrib/httprb/configuration/settings.rb +32 -0
- data/lib/ddtrace/contrib/httprb/ext.rb +17 -0
- data/lib/ddtrace/contrib/httprb/instrumentation.rb +160 -0
- data/lib/ddtrace/contrib/httprb/integration.rb +43 -0
- data/lib/ddtrace/contrib/httprb/patcher.rb +35 -0
- data/lib/ddtrace/contrib/kafka/configuration/settings.rb +30 -0
- data/lib/ddtrace/contrib/kafka/consumer_event.rb +14 -0
- data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +14 -0
- data/lib/ddtrace/contrib/kafka/event.rb +51 -0
- data/lib/ddtrace/contrib/kafka/events.rb +44 -0
- data/lib/ddtrace/contrib/kafka/events/connection/request.rb +34 -0
- data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +41 -0
- data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +39 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +39 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +32 -0
- data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +35 -0
- data/lib/ddtrace/contrib/kafka/ext.rb +41 -0
- data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
- data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
- data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/mongodb/ext.rb +5 -2
- data/lib/ddtrace/contrib/mongodb/instrumentation.rb +1 -2
- data/lib/ddtrace/contrib/mongodb/integration.rb +5 -3
- data/lib/ddtrace/contrib/mongodb/patcher.rb +5 -11
- data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -2
- data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/mysql2/ext.rb +5 -2
- data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -1
- data/lib/ddtrace/contrib/mysql2/integration.rb +8 -2
- data/lib/ddtrace/contrib/mysql2/patcher.rb +3 -9
- data/lib/ddtrace/contrib/patchable.rb +21 -4
- data/lib/ddtrace/contrib/patcher.rb +44 -10
- data/lib/ddtrace/contrib/presto/configuration/settings.rb +30 -0
- data/lib/ddtrace/contrib/presto/ext.rb +28 -0
- data/lib/ddtrace/contrib/presto/instrumentation.rb +107 -0
- data/lib/ddtrace/contrib/presto/integration.rb +38 -0
- data/lib/ddtrace/contrib/presto/patcher.rb +30 -0
- data/lib/ddtrace/contrib/que/configuration/settings.rb +42 -0
- data/lib/ddtrace/contrib/que/ext.rb +30 -0
- data/lib/ddtrace/contrib/que/integration.rb +42 -0
- data/lib/ddtrace/contrib/que/patcher.rb +24 -0
- data/lib/ddtrace/contrib/que/tracer.rb +56 -0
- data/lib/ddtrace/contrib/racecar/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/racecar/event.rb +4 -0
- data/lib/ddtrace/contrib/racecar/events.rb +2 -0
- data/lib/ddtrace/contrib/racecar/events/consume.rb +27 -0
- data/lib/ddtrace/contrib/racecar/ext.rb +6 -2
- data/lib/ddtrace/contrib/racecar/integration.rb +6 -3
- data/lib/ddtrace/contrib/racecar/patcher.rb +4 -10
- data/lib/ddtrace/contrib/rack/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/rack/ext.rb +5 -2
- data/lib/ddtrace/contrib/rack/integration.rb +8 -2
- data/lib/ddtrace/contrib/rack/middlewares.rb +23 -14
- data/lib/ddtrace/contrib/rack/patcher.rb +57 -22
- data/lib/ddtrace/contrib/rack/request_queue.rb +1 -1
- data/lib/ddtrace/contrib/rails/configuration/settings.rb +23 -10
- data/lib/ddtrace/contrib/rails/ext.rb +7 -2
- data/lib/ddtrace/contrib/rails/framework.rb +59 -35
- data/lib/ddtrace/contrib/rails/integration.rb +12 -5
- data/lib/ddtrace/contrib/rails/log_injection.rb +81 -0
- data/lib/ddtrace/contrib/rails/middlewares.rb +7 -2
- data/lib/ddtrace/contrib/rails/patcher.rb +19 -8
- data/lib/ddtrace/contrib/rake/configuration/settings.rb +7 -3
- data/lib/ddtrace/contrib/rake/ext.rb +5 -2
- data/lib/ddtrace/contrib/rake/instrumentation.rb +6 -2
- data/lib/ddtrace/contrib/rake/integration.rb +8 -2
- data/lib/ddtrace/contrib/rake/patcher.rb +4 -10
- data/lib/ddtrace/contrib/redis/configuration/resolver.rb +36 -0
- data/lib/ddtrace/contrib/redis/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/redis/ext.rb +5 -2
- data/lib/ddtrace/contrib/redis/integration.rb +9 -3
- data/lib/ddtrace/contrib/redis/patcher.rb +20 -17
- data/lib/ddtrace/contrib/redis/quantize.rb +1 -1
- data/lib/ddtrace/contrib/redis/vendor/resolver.rb +159 -0
- data/lib/ddtrace/contrib/resque/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/resque/ext.rb +5 -2
- data/lib/ddtrace/contrib/resque/integration.rb +12 -2
- data/lib/ddtrace/contrib/resque/patcher.rb +4 -10
- data/lib/ddtrace/contrib/resque/resque_job.rb +6 -2
- data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/rest_client/ext.rb +5 -2
- data/lib/ddtrace/contrib/rest_client/integration.rb +9 -2
- data/lib/ddtrace/contrib/rest_client/patcher.rb +5 -7
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +2 -2
- data/lib/ddtrace/contrib/sequel/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sequel/database.rb +1 -1
- data/lib/ddtrace/contrib/sequel/ext.rb +5 -2
- data/lib/ddtrace/contrib/sequel/integration.rb +8 -2
- data/lib/ddtrace/contrib/sequel/patcher.rb +4 -10
- data/lib/ddtrace/contrib/sequel/utils.rb +19 -1
- data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/shoryuken/ext.rb +5 -2
- data/lib/ddtrace/contrib/shoryuken/integration.rb +11 -7
- data/lib/ddtrace/contrib/shoryuken/patcher.rb +4 -10
- data/lib/ddtrace/contrib/shoryuken/tracer.rb +4 -0
- data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +12 -2
- data/lib/ddtrace/contrib/sidekiq/ext.rb +8 -2
- data/lib/ddtrace/contrib/sidekiq/integration.rb +5 -3
- data/lib/ddtrace/contrib/sidekiq/patcher.rb +19 -18
- data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +12 -3
- data/lib/ddtrace/contrib/sidekiq/tracing.rb +19 -2
- data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sinatra/env.rb +25 -4
- data/lib/ddtrace/contrib/sinatra/ext.rb +11 -2
- data/lib/ddtrace/contrib/sinatra/integration.rb +5 -3
- data/lib/ddtrace/contrib/sinatra/patcher.rb +5 -10
- data/lib/ddtrace/contrib/sinatra/tracer.rb +79 -34
- data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +48 -15
- data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +32 -0
- data/lib/ddtrace/contrib/sneakers/ext.rb +22 -0
- data/lib/ddtrace/contrib/sneakers/integration.rb +41 -0
- data/lib/ddtrace/contrib/sneakers/patcher.rb +24 -0
- data/lib/ddtrace/contrib/sneakers/tracer.rb +58 -0
- data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sucker_punch/ext.rb +5 -2
- data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +14 -0
- data/lib/ddtrace/contrib/sucker_punch/integration.rb +5 -3
- data/lib/ddtrace/contrib/sucker_punch/patcher.rb +8 -14
- data/lib/ddtrace/correlation.rb +15 -5
- data/lib/ddtrace/diagnostics/environment_logger.rb +278 -0
- data/lib/ddtrace/diagnostics/health.rb +11 -8
- data/lib/ddtrace/encoding.rb +15 -11
- data/lib/ddtrace/environment.rb +21 -3
- data/lib/ddtrace/event.rb +52 -0
- data/lib/ddtrace/ext/analytics.rb +1 -0
- data/lib/ddtrace/ext/correlation.rb +11 -0
- data/lib/ddtrace/ext/diagnostics.rb +11 -0
- data/lib/ddtrace/ext/environment.rb +16 -0
- data/lib/ddtrace/ext/forced_tracing.rb +1 -1
- data/lib/ddtrace/ext/sampling.rb +16 -0
- data/lib/ddtrace/ext/transport.rb +1 -0
- data/lib/ddtrace/logger.rb +4 -3
- data/lib/ddtrace/metrics.rb +12 -5
- data/lib/ddtrace/monkey.rb +1 -1
- data/lib/ddtrace/opentelemetry/extensions.rb +13 -0
- data/lib/ddtrace/opentelemetry/span.rb +33 -0
- data/lib/ddtrace/opentracer/global_tracer.rb +1 -1
- data/lib/ddtrace/pin.rb +40 -16
- data/lib/ddtrace/pipeline.rb +1 -1
- data/lib/ddtrace/pipeline/span_filter.rb +15 -15
- data/lib/ddtrace/propagation/http_propagator.rb +2 -2
- data/lib/ddtrace/runtime/cgroup.rb +1 -1
- data/lib/ddtrace/runtime/container.rb +1 -1
- data/lib/ddtrace/runtime/metrics.rb +23 -6
- data/lib/ddtrace/sampler.rb +126 -29
- data/lib/ddtrace/sampling.rb +2 -0
- data/lib/ddtrace/sampling/matcher.rb +57 -0
- data/lib/ddtrace/sampling/rate_limiter.rb +127 -0
- data/lib/ddtrace/sampling/rule.rb +61 -0
- data/lib/ddtrace/sampling/rule_sampler.rb +125 -0
- data/lib/ddtrace/span.rb +54 -7
- data/lib/ddtrace/sync_writer.rb +13 -8
- data/lib/ddtrace/tracer.rb +72 -92
- data/lib/ddtrace/transport/http.rb +16 -1
- data/lib/ddtrace/transport/http/adapters/net.rb +8 -0
- data/lib/ddtrace/transport/http/adapters/test.rb +6 -0
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +4 -0
- data/lib/ddtrace/transport/http/api/instance.rb +4 -0
- data/lib/ddtrace/transport/http/builder.rb +3 -5
- data/lib/ddtrace/transport/http/client.rb +7 -64
- data/lib/ddtrace/transport/http/response.rb +1 -1
- data/lib/ddtrace/transport/http/statistics.rb +1 -1
- data/lib/ddtrace/transport/http/traces.rb +10 -7
- data/lib/ddtrace/transport/io.rb +26 -0
- data/lib/ddtrace/transport/io/client.rb +76 -0
- data/lib/ddtrace/transport/io/response.rb +25 -0
- data/lib/ddtrace/transport/io/traces.rb +91 -0
- data/lib/ddtrace/transport/response.rb +11 -0
- data/lib/ddtrace/transport/statistics.rb +2 -2
- data/lib/ddtrace/transport/traces.rb +160 -10
- data/lib/ddtrace/utils.rb +1 -1
- data/lib/ddtrace/version.rb +2 -2
- data/lib/ddtrace/worker.rb +20 -0
- data/lib/ddtrace/workers.rb +5 -13
- data/lib/ddtrace/workers/async.rb +165 -0
- data/lib/ddtrace/workers/loop.rb +105 -0
- data/lib/ddtrace/workers/polling.rb +48 -0
- data/lib/ddtrace/workers/queue.rb +39 -0
- data/lib/ddtrace/workers/runtime_metrics.rb +47 -0
- data/lib/ddtrace/workers/trace_writer.rb +202 -0
- data/lib/ddtrace/writer.rb +56 -38
- metadata +185 -25
- data/lib/ddtrace/provider.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69e1169797953f3fda0637271a3cb3e99c4f389ce9577e4e36d7183cf23ee3a0
|
4
|
+
data.tar.gz: aa9122a012f5db464ed4443fac17bd9c8fbf1248c69d8e314f4b4863a4554d96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ce41180b43c231d32e2ee513824fba6dfaa93dfcd5d2c918ebdcd33770e19dcc0d724e05a7cea34ed09085e932474d4e0e6436606c87e4dd97757738820879c
|
7
|
+
data.tar.gz: 5eb7cedb0a5dd135a33d4fd9899a5ed3bb3c479dea82a3966ffb08a5108df8f3e3233369318075398968df65fa6e7244bfbfda2529d3e9e6282a754122627d5c
|
data/.circleci/config.yml
CHANGED
@@ -1,45 +1,22 @@
|
|
1
|
+
version: 2.1
|
2
|
+
|
1
3
|
# Common variables, containers, jobs and steps.
|
2
4
|
job_defaults: &job_defaults
|
3
5
|
working_directory: /app
|
4
6
|
shell: /bin/bash --login
|
5
7
|
|
6
|
-
|
7
|
-
- &
|
8
|
-
image: palazzem/docker-library:ddtrace_rb_2_0_0
|
9
|
-
environment:
|
10
|
-
- BUNDLE_GEMFILE=/app/Gemfile
|
11
|
-
- &container-2_1
|
12
|
-
image: palazzem/docker-library:ddtrace_rb_2_1_10
|
13
|
-
environment:
|
14
|
-
- BUNDLE_GEMFILE=/app/Gemfile
|
15
|
-
- &container-2_2
|
16
|
-
image: palazzem/docker-library:ddtrace_rb_2_2_10
|
17
|
-
environment:
|
18
|
-
- BUNDLE_GEMFILE=/app/Gemfile
|
19
|
-
- &container-2_3
|
20
|
-
image: palazzem/docker-library:ddtrace_rb_2_3_8
|
21
|
-
environment:
|
22
|
-
- BUNDLE_GEMFILE=/app/Gemfile
|
23
|
-
- &container-2_4
|
24
|
-
image: palazzem/docker-library:ddtrace_rb_2_4_6
|
25
|
-
environment:
|
26
|
-
- BUNDLE_GEMFILE=/app/Gemfile
|
27
|
-
- &container-2_5
|
28
|
-
image: marcotc/docker-library:ddtrace_rb_2_5_6
|
29
|
-
environment:
|
30
|
-
- BUNDLE_GEMFILE=/app/Gemfile
|
31
|
-
- &container-2_6
|
32
|
-
image: marcotc/docker-library:ddtrace_rb_2_6_4
|
8
|
+
test_containers:
|
9
|
+
- &container_base
|
33
10
|
environment:
|
34
11
|
- BUNDLE_GEMFILE=/app/Gemfile
|
35
|
-
|
36
|
-
test_containers: &test_containers
|
37
12
|
- &container_postgres
|
38
13
|
image: postgres:9.6
|
39
14
|
environment:
|
40
15
|
- POSTGRES_PASSWORD=postgres
|
41
16
|
- POSTGRES_USER=postgres
|
42
17
|
- POSTGRES_DB=postgres
|
18
|
+
- &container_presto
|
19
|
+
image: prestosql/presto
|
43
20
|
- &container_mysql
|
44
21
|
image: mysql:5.6
|
45
22
|
environment:
|
@@ -77,11 +54,16 @@ step_rubocop: &step_rubocop
|
|
77
54
|
step_appraisal_install: &step_appraisal_install
|
78
55
|
run:
|
79
56
|
name: Install Appraisal gems
|
80
|
-
command:
|
57
|
+
command: |
|
58
|
+
bundle exec appraisal clean # Ensure we fetch the latest version of dependencies
|
59
|
+
bundle exec appraisal install
|
81
60
|
step_compute_bundle_checksum: &step_compute_bundle_checksum
|
82
61
|
run:
|
83
62
|
name: Compute bundle checksum
|
84
63
|
command: |
|
64
|
+
# JRuby: Ensure files exist when Appraisal generates no output
|
65
|
+
mkdir gemfiles
|
66
|
+
touch gemfiles/_.gemfile.lock
|
85
67
|
cat Gemfile.lock gemfiles/*.gemfile.lock > .circleci/bundle_checksum
|
86
68
|
step_run_all_tests: &step_run_all_tests
|
87
69
|
run:
|
@@ -103,432 +85,208 @@ filters_only_release_tags: &filters_only_release_tags
|
|
103
85
|
tags:
|
104
86
|
only: /^v\d+(\.\d+){0,3}(\.(alpha|beta|rc)\d+)?$/
|
105
87
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.3-{{ checksum ".circleci/bundle_checksum" }}'
|
298
|
-
- *step_bundle_install
|
299
|
-
- *step_rubocop
|
300
|
-
- *step_appraisal_install
|
301
|
-
- *step_compute_bundle_checksum
|
302
|
-
- save_cache:
|
303
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.3-{{ .Environment.CIRCLE_SHA1 }}'
|
304
|
-
paths:
|
305
|
-
- /app
|
306
|
-
- save_cache:
|
307
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.3-{{ checksum ".circleci/bundle_checksum" }}'
|
308
|
-
paths:
|
309
|
-
- /usr/local/bundle
|
310
|
-
test-2.3:
|
311
|
-
<<: *job_defaults
|
312
|
-
docker:
|
313
|
-
- <<: *container-2_3
|
314
|
-
environment:
|
315
|
-
- TEST_DATADOG_INTEGRATION: 1
|
316
|
-
- *container_postgres
|
317
|
-
- *container_mysql
|
318
|
-
- *container_elasticsearch
|
319
|
-
- *container_redis
|
320
|
-
- *container_mongo
|
321
|
-
- *container_memcached
|
322
|
-
- *container_agent
|
323
|
-
steps:
|
324
|
-
- restore_cache:
|
325
|
-
keys:
|
326
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.3-{{ .Environment.CIRCLE_SHA1 }}'
|
327
|
-
- restore_cache:
|
328
|
-
keys:
|
329
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.3-{{ checksum ".circleci/bundle_checksum" }}'
|
330
|
-
- *step_run_all_tests
|
331
|
-
benchmark-2.3:
|
332
|
-
<<: *job_defaults
|
333
|
-
docker:
|
334
|
-
- <<: *container-2_3
|
335
|
-
environment:
|
336
|
-
- TEST_DATADOG_INTEGRATION: 1
|
337
|
-
- *container_postgres
|
338
|
-
- *container_redis
|
339
|
-
- *container_agent
|
340
|
-
steps:
|
341
|
-
- restore_cache:
|
342
|
-
keys:
|
343
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.3-{{ .Environment.CIRCLE_SHA1 }}'
|
344
|
-
- restore_cache:
|
345
|
-
keys:
|
346
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.3-{{ checksum ".circleci/bundle_checksum" }}'
|
347
|
-
- run:
|
348
|
-
name: Run Benchmark
|
349
|
-
command: bundle exec appraisal rails5-postgres-sidekiq ruby benchmarks/sidekiq_test.rb 2>&1 1> /dev/null | tee benchmark_results.csv
|
350
|
-
- run:
|
351
|
-
name: Run Benchmark without ddtracer
|
352
|
-
command: rm -f lib/ddtrace.rb && bundle exec appraisal rails5-postgres-sidekiq ruby benchmarks/sidekiq_test.rb 2>&1 1> /dev/null | tee benchmark_results.csv
|
353
|
-
|
354
|
-
checkout-2.4:
|
355
|
-
<<: *job_defaults
|
356
|
-
docker:
|
357
|
-
- *container-2_4
|
358
|
-
steps:
|
359
|
-
- checkout
|
360
|
-
- save_cache:
|
361
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.4-{{ .Environment.CIRCLE_SHA1 }}'
|
362
|
-
paths:
|
363
|
-
- /app
|
364
|
-
build-2.4:
|
365
|
-
<<: *job_defaults
|
366
|
-
docker:
|
367
|
-
- *container-2_4
|
368
|
-
steps:
|
369
|
-
- restore_cache:
|
370
|
-
keys:
|
371
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.4-{{ .Environment.CIRCLE_SHA1 }}'
|
372
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.4-{{ .Environment.CIRCLE_SHA1 }}'
|
373
|
-
- *step_init_bundle_checksum
|
374
|
-
- restore_cache:
|
375
|
-
keys:
|
376
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.4-{{ checksum ".circleci/bundle_checksum" }}'
|
377
|
-
- *step_bundle_install
|
378
|
-
- *step_rubocop
|
379
|
-
- *step_appraisal_install
|
380
|
-
- *step_compute_bundle_checksum
|
381
|
-
- save_cache:
|
382
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.4-{{ .Environment.CIRCLE_SHA1 }}'
|
383
|
-
paths:
|
384
|
-
- /app
|
385
|
-
- save_cache:
|
386
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.4-{{ checksum ".circleci/bundle_checksum" }}'
|
387
|
-
paths:
|
388
|
-
- /usr/local/bundle
|
389
|
-
test-2.4:
|
390
|
-
<<: *job_defaults
|
391
|
-
docker:
|
392
|
-
- <<: *container-2_4
|
393
|
-
environment:
|
394
|
-
- TEST_DATADOG_INTEGRATION: 1
|
395
|
-
- *container_postgres
|
396
|
-
- *container_mysql
|
397
|
-
- *container_elasticsearch
|
398
|
-
- *container_redis
|
399
|
-
- *container_mongo
|
400
|
-
- *container_memcached
|
401
|
-
- *container_agent
|
402
|
-
steps:
|
403
|
-
- restore_cache:
|
404
|
-
keys:
|
405
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.4-{{ .Environment.CIRCLE_SHA1 }}'
|
406
|
-
- restore_cache:
|
407
|
-
keys:
|
408
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.4-{{ checksum ".circleci/bundle_checksum" }}'
|
409
|
-
- *step_run_all_tests
|
410
|
-
|
411
|
-
checkout-2.5:
|
412
|
-
<<: *job_defaults
|
413
|
-
docker:
|
414
|
-
- *container-2_5
|
415
|
-
steps:
|
416
|
-
- checkout
|
417
|
-
- save_cache:
|
418
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.5-{{ .Environment.CIRCLE_SHA1 }}'
|
419
|
-
paths:
|
420
|
-
- /app
|
421
|
-
build-2.5:
|
422
|
-
<<: *job_defaults
|
423
|
-
docker:
|
424
|
-
- *container-2_5
|
425
|
-
steps:
|
426
|
-
- restore_cache:
|
427
|
-
keys:
|
428
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.5-{{ .Environment.CIRCLE_SHA1 }}'
|
429
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.5-{{ .Environment.CIRCLE_SHA1 }}'
|
430
|
-
- *step_init_bundle_checksum
|
431
|
-
- restore_cache:
|
432
|
-
keys:
|
433
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.5-{{ checksum ".circleci/bundle_checksum" }}'
|
434
|
-
- *step_bundle_install
|
435
|
-
- *step_rubocop
|
436
|
-
- *step_appraisal_install
|
437
|
-
- *step_compute_bundle_checksum
|
438
|
-
- save_cache:
|
439
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.5-{{ .Environment.CIRCLE_SHA1 }}'
|
440
|
-
paths:
|
441
|
-
- /app
|
442
|
-
- save_cache:
|
443
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.5-{{ checksum ".circleci/bundle_checksum" }}'
|
444
|
-
paths:
|
445
|
-
- /usr/local/bundle
|
446
|
-
test-2.5:
|
447
|
-
<<: *job_defaults
|
448
|
-
docker:
|
449
|
-
- <<: *container-2_5
|
450
|
-
environment:
|
451
|
-
- TEST_DATADOG_INTEGRATION: 1
|
452
|
-
- *container_postgres
|
453
|
-
- *container_mysql
|
454
|
-
- *container_elasticsearch
|
455
|
-
- *container_redis
|
456
|
-
- *container_mongo
|
457
|
-
- *container_memcached
|
458
|
-
- *container_agent
|
459
|
-
steps:
|
460
|
-
- restore_cache:
|
461
|
-
keys:
|
462
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.5-{{ .Environment.CIRCLE_SHA1 }}'
|
463
|
-
- restore_cache:
|
464
|
-
keys:
|
465
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.5-{{ checksum ".circleci/bundle_checksum" }}'
|
466
|
-
- *step_run_all_tests
|
467
|
-
|
468
|
-
checkout-2.6:
|
469
|
-
<<: *job_defaults
|
470
|
-
docker:
|
471
|
-
- *container-2_6
|
472
|
-
steps:
|
473
|
-
- checkout
|
474
|
-
- save_cache:
|
475
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.6-{{ .Environment.CIRCLE_SHA1 }}'
|
476
|
-
paths:
|
477
|
-
- /app
|
478
|
-
build-2.6:
|
479
|
-
<<: *job_defaults
|
480
|
-
docker:
|
481
|
-
- *container-2_6
|
482
|
-
steps:
|
483
|
-
- restore_cache:
|
484
|
-
keys:
|
485
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.6-{{ .Environment.CIRCLE_SHA1 }}'
|
486
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.6-{{ .Environment.CIRCLE_SHA1 }}'
|
487
|
-
- *step_init_bundle_checksum
|
488
|
-
- restore_cache:
|
489
|
-
keys:
|
490
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.6-{{ checksum ".circleci/bundle_checksum" }}'
|
491
|
-
- *step_bundle_install
|
492
|
-
- *step_rubocop
|
493
|
-
- *step_appraisal_install
|
494
|
-
- *step_compute_bundle_checksum
|
495
|
-
- save_cache:
|
496
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.6-{{ .Environment.CIRCLE_SHA1 }}'
|
497
|
-
paths:
|
498
|
-
- /app
|
499
|
-
- save_cache:
|
500
|
-
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.6-{{ checksum ".circleci/bundle_checksum" }}'
|
501
|
-
paths:
|
502
|
-
- /usr/local/bundle
|
503
|
-
test-2.6:
|
504
|
-
<<: *job_defaults
|
505
|
-
docker:
|
506
|
-
- <<: *container-2_6
|
507
|
-
environment:
|
508
|
-
- TEST_DATADOG_INTEGRATION: 1
|
509
|
-
- *container_postgres
|
510
|
-
- *container_mysql
|
511
|
-
- *container_elasticsearch
|
512
|
-
- *container_redis
|
513
|
-
- *container_mongo
|
514
|
-
- *container_memcached
|
515
|
-
- *container_agent
|
516
|
-
steps:
|
517
|
-
- restore_cache:
|
518
|
-
keys:
|
519
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.6-{{ .Environment.CIRCLE_SHA1 }}'
|
520
|
-
- restore_cache:
|
521
|
-
keys:
|
522
|
-
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.6-{{ checksum ".circleci/bundle_checksum" }}'
|
523
|
-
- *step_run_all_tests
|
88
|
+
orbs:
|
89
|
+
orb:
|
90
|
+
jobs:
|
91
|
+
checkout:
|
92
|
+
<<: *job_defaults
|
93
|
+
parameters:
|
94
|
+
ruby_version:
|
95
|
+
description: Ruby version
|
96
|
+
type: string
|
97
|
+
image:
|
98
|
+
description: Docker image location
|
99
|
+
type: string
|
100
|
+
docker:
|
101
|
+
- <<: *container_base
|
102
|
+
image: <<parameters.image>>
|
103
|
+
steps:
|
104
|
+
- checkout
|
105
|
+
- save_cache:
|
106
|
+
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
|
107
|
+
paths:
|
108
|
+
- /app
|
109
|
+
build:
|
110
|
+
<<: *job_defaults
|
111
|
+
parameters:
|
112
|
+
ruby_version:
|
113
|
+
description: Ruby version
|
114
|
+
type: string
|
115
|
+
image:
|
116
|
+
description: Docker image location
|
117
|
+
type: string
|
118
|
+
docker:
|
119
|
+
- <<: *container_base
|
120
|
+
image: <<parameters.image>>
|
121
|
+
steps:
|
122
|
+
- restore_cache:
|
123
|
+
keys:
|
124
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
|
125
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
|
126
|
+
- restore_cache:
|
127
|
+
keys:
|
128
|
+
- bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum "Gemfile" }}-{{ checksum "Appraisals" }}-{{ checksum "ddtrace.gemspec" }}
|
129
|
+
- bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-
|
130
|
+
- bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}
|
131
|
+
- *step_init_bundle_checksum
|
132
|
+
- restore_cache:
|
133
|
+
keys:
|
134
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
|
135
|
+
- *step_bundle_install
|
136
|
+
- *step_appraisal_install
|
137
|
+
- *step_compute_bundle_checksum
|
138
|
+
- save_cache:
|
139
|
+
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
|
140
|
+
paths:
|
141
|
+
- /app
|
142
|
+
- save_cache:
|
143
|
+
key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
|
144
|
+
paths:
|
145
|
+
- /usr/local/bundle
|
146
|
+
- save_cache:
|
147
|
+
key: bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum "Gemfile" }}-{{ checksum "Appraisals" }}-{{ checksum "ddtrace.gemspec" }}-{{ checksum ".circleci/bundle_checksum" }}'
|
148
|
+
paths:
|
149
|
+
- /usr/local/bundle
|
150
|
+
test:
|
151
|
+
<<: *job_defaults
|
152
|
+
parameters:
|
153
|
+
ruby_version:
|
154
|
+
description: Ruby version
|
155
|
+
type: string
|
156
|
+
image:
|
157
|
+
description: Docker image location
|
158
|
+
type: string
|
159
|
+
docker:
|
160
|
+
- <<: *container_base
|
161
|
+
image: <<parameters.image>>
|
162
|
+
environment:
|
163
|
+
- BUNDLE_GEMFILE: /app/Gemfile
|
164
|
+
- TEST_DATADOG_INTEGRATION: 1
|
165
|
+
- COVERAGE_BASE_DIR: coverage
|
166
|
+
- *container_postgres
|
167
|
+
- *container_presto
|
168
|
+
- *container_mysql
|
169
|
+
- *container_elasticsearch
|
170
|
+
- *container_redis
|
171
|
+
- *container_mongo
|
172
|
+
- *container_memcached
|
173
|
+
- *container_agent
|
174
|
+
parallelism: 22
|
175
|
+
steps:
|
176
|
+
- restore_cache:
|
177
|
+
keys:
|
178
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
|
179
|
+
- restore_cache:
|
180
|
+
keys:
|
181
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
|
182
|
+
- run:
|
183
|
+
name: Set coverage report directory
|
184
|
+
command: |
|
185
|
+
# Create a unique coverage directory for this job, to avoid conflicts when merging all results
|
186
|
+
echo 'export COVERAGE_DIR="$COVERAGE_BASE_DIR/versions/$CIRCLE_JOB/$CIRCLE_NODE_INDEX"' >> $BASH_ENV
|
187
|
+
- *step_run_all_tests
|
188
|
+
- persist_to_workspace:
|
189
|
+
root: .
|
190
|
+
paths:
|
191
|
+
- coverage
|
192
|
+
benchmark:
|
193
|
+
<<: *job_defaults
|
194
|
+
parameters:
|
195
|
+
ruby_version:
|
196
|
+
description: Ruby version
|
197
|
+
type: string
|
198
|
+
image:
|
199
|
+
description: Docker image location
|
200
|
+
type: string
|
201
|
+
docker:
|
202
|
+
- <<: *container_base
|
203
|
+
image: <<parameters.image>>
|
204
|
+
environment:
|
205
|
+
- BUNDLE_GEMFILE: /app/Gemfile
|
206
|
+
- TEST_DATADOG_INTEGRATION: 1
|
207
|
+
- *container_postgres
|
208
|
+
- *container_redis
|
209
|
+
- *container_agent
|
210
|
+
steps:
|
211
|
+
- restore_cache:
|
212
|
+
keys:
|
213
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
|
214
|
+
- restore_cache:
|
215
|
+
keys:
|
216
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
|
217
|
+
- run:
|
218
|
+
name: Run Benchmark
|
219
|
+
command: bundle exec appraisal rails5-postgres-sidekiq ruby benchmarks/sidekiq_test.rb 2>&1 1> /dev/null | tee benchmark_results.csv
|
220
|
+
- run:
|
221
|
+
name: Run Benchmark without ddtracer
|
222
|
+
command: rm -f lib/ddtrace.rb && bundle exec appraisal rails5-postgres-sidekiq ruby benchmarks/sidekiq_test.rb 2>&1 1> /dev/null | tee benchmark_results.csv
|
223
|
+
lint:
|
224
|
+
<<: *job_defaults
|
225
|
+
parameters:
|
226
|
+
ruby_version:
|
227
|
+
description: Ruby version
|
228
|
+
type: string
|
229
|
+
image:
|
230
|
+
description: Docker image location
|
231
|
+
type: string
|
232
|
+
docker:
|
233
|
+
- <<: *container_base
|
234
|
+
image: <<parameters.image>>
|
235
|
+
environment:
|
236
|
+
- BUNDLE_GEMFILE: /app/Gemfile
|
237
|
+
steps:
|
238
|
+
- restore_cache:
|
239
|
+
keys:
|
240
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
|
241
|
+
- restore_cache:
|
242
|
+
keys:
|
243
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
|
244
|
+
- *step_rubocop
|
245
|
+
coverage:
|
246
|
+
<<: *job_defaults
|
247
|
+
parameters:
|
248
|
+
ruby_version:
|
249
|
+
description: Ruby version
|
250
|
+
type: string
|
251
|
+
image:
|
252
|
+
description: Docker image location
|
253
|
+
type: string
|
254
|
+
docker:
|
255
|
+
- <<: *container_base
|
256
|
+
image: <<parameters.image>>
|
257
|
+
environment:
|
258
|
+
- BUNDLE_GEMFILE: /app/Gemfile
|
259
|
+
steps:
|
260
|
+
- restore_cache:
|
261
|
+
keys:
|
262
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
|
263
|
+
- restore_cache:
|
264
|
+
keys:
|
265
|
+
- '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
|
266
|
+
- attach_workspace:
|
267
|
+
at: /tmp/workspace
|
268
|
+
- run:
|
269
|
+
name: Generate coverage report artifact "coverage/index.html"
|
270
|
+
command: COVERAGE_DIR=/tmp/workspace/coverage bundle exec rake coverage:report
|
271
|
+
- run:
|
272
|
+
name: Generate coverage report artifact "coverage/versions/*/index.html"
|
273
|
+
command: COVERAGE_DIR=/tmp/workspace/coverage bundle exec rake coverage:report_per_ruby_version
|
274
|
+
- store_artifacts:
|
275
|
+
path: /tmp/workspace/coverage/report/
|
276
|
+
destination: coverage
|
277
|
+
commands:
|
278
|
+
executors:
|
524
279
|
|
280
|
+
jobs:
|
525
281
|
"deploy release":
|
526
282
|
<<: *job_defaults
|
527
283
|
docker:
|
528
|
-
- *
|
284
|
+
- <<: *container_base
|
285
|
+
image: marcotc/docker-library:ddtrace_rb_2_5_6
|
529
286
|
steps:
|
530
287
|
- checkout
|
531
288
|
- run:
|
289
|
+
name: Install AWS CLI
|
532
290
|
command: |
|
533
291
|
apt-get -y -qq update
|
534
292
|
apt-get -y -qq install awscli
|
@@ -543,7 +301,8 @@ jobs:
|
|
543
301
|
"deploy prerelease Gem":
|
544
302
|
<<: *job_defaults
|
545
303
|
docker:
|
546
|
-
- *
|
304
|
+
- <<: *container_base
|
305
|
+
image: marcotc/docker-library:ddtrace_rb_2_5_6
|
547
306
|
steps:
|
548
307
|
- run:
|
549
308
|
name: Check if this commit author has publishing credentials
|
@@ -555,6 +314,7 @@ jobs:
|
|
555
314
|
fi
|
556
315
|
- checkout
|
557
316
|
- run:
|
317
|
+
name: Install AWS CLI
|
558
318
|
command: |
|
559
319
|
apt-get -y -qq update
|
560
320
|
apt-get -y -qq install awscli
|
@@ -573,101 +333,216 @@ jobs:
|
|
573
333
|
path: pkg/
|
574
334
|
destination: gem
|
575
335
|
|
336
|
+
job_configuration:
|
337
|
+
# MRI
|
338
|
+
- &config-2_0
|
339
|
+
<<: *filters_all_branches_and_tags
|
340
|
+
ruby_version: '2.0'
|
341
|
+
image: palazzem/docker-library:ddtrace_rb_2_0_0
|
342
|
+
- &config-2_1
|
343
|
+
<<: *filters_all_branches_and_tags
|
344
|
+
ruby_version: '2.1'
|
345
|
+
image: palazzem/docker-library:ddtrace_rb_2_1_10
|
346
|
+
- &config-2_2
|
347
|
+
<<: *filters_all_branches_and_tags
|
348
|
+
ruby_version: '2.2'
|
349
|
+
image: palazzem/docker-library:ddtrace_rb_2_2_10
|
350
|
+
- &config-2_3
|
351
|
+
<<: *filters_all_branches_and_tags
|
352
|
+
ruby_version: '2.3'
|
353
|
+
image: palazzem/docker-library:ddtrace_rb_2_3_8
|
354
|
+
- &config-2_4
|
355
|
+
<<: *filters_all_branches_and_tags
|
356
|
+
ruby_version: '2.4'
|
357
|
+
image: palazzem/docker-library:ddtrace_rb_2_4_6
|
358
|
+
- &config-2_5
|
359
|
+
<<: *filters_all_branches_and_tags
|
360
|
+
ruby_version: '2.5'
|
361
|
+
image: marcotc/docker-library:ddtrace_rb_2_5_6
|
362
|
+
- &config-2_6
|
363
|
+
<<: *filters_all_branches_and_tags
|
364
|
+
ruby_version: '2.6'
|
365
|
+
image: marcotc/docker-library:ddtrace_rb_2_6_4
|
366
|
+
- &config-2_7
|
367
|
+
<<: *filters_all_branches_and_tags
|
368
|
+
ruby_version: '2.7'
|
369
|
+
image: marcotc/docker-library:ddtrace_rb_2_7_0
|
370
|
+
# JRuby
|
371
|
+
- &config-jruby-9_2
|
372
|
+
<<: *filters_all_branches_and_tags
|
373
|
+
ruby_version: 'jruby-9.2'
|
374
|
+
image: marcotc/docker-library:ddtrace_rb_jruby_9_2
|
375
|
+
|
576
376
|
workflows:
|
577
377
|
version: 2
|
578
378
|
build-and-test:
|
579
379
|
jobs:
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
380
|
+
- orb/lint:
|
381
|
+
<<: *config-2_6
|
382
|
+
name: lint
|
383
|
+
requires:
|
384
|
+
- build-2.6
|
385
|
+
- orb/coverage:
|
386
|
+
<<: *config-2_7
|
387
|
+
name: coverage
|
388
|
+
requires:
|
389
|
+
- test-2.0
|
390
|
+
- test-2.1
|
391
|
+
- test-2.2
|
392
|
+
- test-2.3
|
393
|
+
- test-2.4
|
394
|
+
- test-2.5
|
395
|
+
- test-2.6
|
396
|
+
- test-2.7
|
397
|
+
- test-jruby-9.2
|
398
|
+
# MRI
|
399
|
+
- orb/checkout:
|
400
|
+
<<: *config-2_0
|
401
|
+
name: checkout-2.0
|
402
|
+
- orb/build:
|
403
|
+
<<: *config-2_0
|
404
|
+
name: build-2.0
|
405
|
+
requires:
|
406
|
+
- checkout-2.0
|
407
|
+
- orb/test:
|
408
|
+
<<: *config-2_0
|
409
|
+
name: test-2.0
|
410
|
+
requires:
|
411
|
+
- build-2.0
|
412
|
+
- orb/checkout:
|
413
|
+
<<: *config-2_1
|
414
|
+
name: checkout-2.1
|
415
|
+
- orb/build:
|
416
|
+
<<: *config-2_1
|
417
|
+
name: build-2.1
|
418
|
+
requires:
|
419
|
+
- checkout-2.1
|
420
|
+
- orb/test:
|
421
|
+
<<: *config-2_1
|
422
|
+
name: test-2.1
|
423
|
+
requires:
|
424
|
+
- build-2.1
|
425
|
+
- orb/checkout:
|
426
|
+
<<: *config-2_2
|
427
|
+
name: checkout-2.2
|
428
|
+
- orb/build:
|
429
|
+
<<: *config-2_2
|
430
|
+
name: build-2.2
|
431
|
+
requires:
|
432
|
+
- checkout-2.2
|
433
|
+
- orb/test:
|
434
|
+
<<: *config-2_2
|
435
|
+
name: test-2.2
|
436
|
+
requires:
|
437
|
+
- build-2.2
|
438
|
+
- orb/checkout:
|
439
|
+
<<: *config-2_3
|
440
|
+
name: checkout-2.3
|
441
|
+
- orb/build:
|
442
|
+
<<: *config-2_3
|
443
|
+
name: build-2.3
|
444
|
+
requires:
|
445
|
+
- checkout-2.3
|
446
|
+
- orb/test:
|
447
|
+
<<: *config-2_3
|
448
|
+
name: test-2.3
|
449
|
+
requires:
|
450
|
+
- build-2.3
|
451
|
+
- orb/benchmark:
|
452
|
+
<<: *config-2_3
|
453
|
+
name: benchmark-2.3
|
454
|
+
requires:
|
455
|
+
- build-2.3
|
456
|
+
- orb/checkout:
|
457
|
+
<<: *config-2_4
|
458
|
+
name: checkout-2.4
|
459
|
+
- orb/build:
|
460
|
+
<<: *config-2_4
|
461
|
+
name: build-2.4
|
462
|
+
requires:
|
463
|
+
- checkout-2.4
|
464
|
+
- orb/test:
|
465
|
+
<<: *config-2_4
|
466
|
+
name: test-2.4
|
467
|
+
requires:
|
468
|
+
- build-2.4
|
469
|
+
- orb/checkout:
|
470
|
+
<<: *config-2_5
|
471
|
+
name: checkout-2.5
|
472
|
+
- orb/build:
|
473
|
+
<<: *config-2_5
|
474
|
+
name: build-2.5
|
475
|
+
requires:
|
476
|
+
- checkout-2.5
|
477
|
+
- orb/test:
|
478
|
+
<<: *config-2_5
|
479
|
+
name: test-2.5
|
480
|
+
requires:
|
481
|
+
- build-2.5
|
482
|
+
- orb/checkout:
|
483
|
+
<<: *config-2_6
|
484
|
+
name: checkout-2.6
|
485
|
+
- orb/build:
|
486
|
+
<<: *config-2_6
|
487
|
+
name: build-2.6
|
488
|
+
requires:
|
489
|
+
- checkout-2.6
|
490
|
+
- orb/test:
|
491
|
+
<<: *config-2_6
|
492
|
+
name: test-2.6
|
493
|
+
requires:
|
494
|
+
- build-2.6
|
495
|
+
- orb/checkout:
|
496
|
+
<<: *config-2_7
|
497
|
+
name: checkout-2.7
|
498
|
+
- orb/build:
|
499
|
+
<<: *config-2_7
|
500
|
+
name: build-2.7
|
501
|
+
requires:
|
502
|
+
- checkout-2.7
|
503
|
+
- orb/test:
|
504
|
+
<<: *config-2_7
|
505
|
+
name: test-2.7
|
506
|
+
requires:
|
507
|
+
- build-2.7
|
508
|
+
# JRuby
|
509
|
+
- orb/checkout:
|
510
|
+
<<: *config-jruby-9_2
|
511
|
+
name: checkout-jruby-9.2
|
512
|
+
- orb/build:
|
513
|
+
<<: *config-jruby-9_2
|
514
|
+
name: build-jruby-9.2
|
515
|
+
requires:
|
516
|
+
- checkout-jruby-9.2
|
517
|
+
- orb/test:
|
518
|
+
<<: *config-jruby-9_2
|
519
|
+
name: test-jruby-9.2
|
520
|
+
requires:
|
521
|
+
- build-jruby-9.2
|
522
|
+
# Release jobs
|
523
|
+
- "deploy prerelease Gem":
|
524
|
+
<<: *filters_all_branches_and_tags
|
525
|
+
requires:
|
526
|
+
- lint
|
527
|
+
- test-2.0
|
528
|
+
- test-2.1
|
529
|
+
- test-2.2
|
530
|
+
- test-2.3
|
531
|
+
- test-2.4
|
532
|
+
- test-2.5
|
533
|
+
- test-2.6
|
534
|
+
- test-2.7
|
535
|
+
- test-jruby-9.2
|
536
|
+
- "deploy release":
|
537
|
+
<<: *filters_only_release_tags
|
538
|
+
requires:
|
539
|
+
- lint
|
540
|
+
- test-2.0
|
541
|
+
- test-2.1
|
542
|
+
- test-2.2
|
543
|
+
- test-2.3
|
544
|
+
- test-2.4
|
545
|
+
- test-2.5
|
546
|
+
- test-2.6
|
547
|
+
- test-2.7
|
548
|
+
- test-jruby-9.2
|