ddtrace 0.44.0 → 0.48.0
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/.circleci/config.yml +183 -15
- data/.circleci/images/primary/Dockerfile-2.0.0 +11 -1
- data/.circleci/images/primary/Dockerfile-2.1.10 +11 -1
- data/.circleci/images/primary/Dockerfile-2.2.10 +11 -1
- data/.circleci/images/primary/Dockerfile-2.3.8 +10 -0
- data/.circleci/images/primary/Dockerfile-2.4.6 +10 -0
- data/.circleci/images/primary/Dockerfile-2.5.6 +10 -0
- data/.circleci/images/primary/Dockerfile-2.6.4 +10 -0
- data/.circleci/images/primary/Dockerfile-2.7.0 +10 -0
- data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +88 -0
- data/.circleci/images/primary/{Dockerfile-jruby-9.2 → Dockerfile-jruby-9.2.0.0} +1 -5
- data/.circleci/images/primary/Dockerfile-truffleruby-21.0.0 +73 -0
- data/.github/workflows/create-next-milestone.yml +2 -2
- data/.gitlab-ci.yml +18 -18
- data/.rubocop.yml +269 -7
- data/.rubocop_todo.yml +438 -0
- data/.simplecov +6 -0
- data/Appraisals +87 -9
- data/CHANGELOG.md +238 -1
- data/Gemfile +63 -3
- data/LICENSE-3rdparty.csv +2 -0
- data/README.md +1 -0
- data/Rakefile +65 -25
- data/bin/ddtracerb +15 -0
- data/ddtrace.gemspec +9 -36
- data/docker-compose.yml +75 -7
- data/docs/DevelopmentGuide.md +28 -0
- data/docs/GettingStarted.md +162 -68
- data/docs/ProfilingDevelopment.md +88 -0
- data/integration/README.md +67 -0
- data/integration/apps/rack/.dockerignore +1 -0
- data/integration/apps/rack/.envrc.sample +1 -0
- data/integration/apps/rack/.gitignore +4 -0
- data/integration/apps/rack/.rspec +1 -0
- data/integration/apps/rack/Dockerfile +28 -0
- data/integration/apps/rack/Dockerfile-ci +11 -0
- data/integration/apps/rack/Gemfile +24 -0
- data/integration/apps/rack/README.md +93 -0
- data/integration/apps/rack/app/acme.rb +80 -0
- data/integration/apps/rack/app/datadog.rb +17 -0
- data/integration/apps/rack/bin/run +22 -0
- data/integration/apps/rack/bin/setup +17 -0
- data/integration/apps/rack/bin/test +24 -0
- data/integration/apps/rack/config.ru +6 -0
- data/integration/apps/rack/config/puma.rb +14 -0
- data/integration/apps/rack/config/unicorn.rb +23 -0
- data/integration/apps/rack/docker-compose.ci.yml +62 -0
- data/integration/apps/rack/docker-compose.yml +78 -0
- data/integration/apps/rack/script/build-images +38 -0
- data/integration/apps/rack/script/ci +50 -0
- data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
- data/integration/apps/rack/spec/spec_helper.rb +16 -0
- data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
- data/integration/apps/rails-five/.dockerignore +1 -0
- data/integration/apps/rails-five/.env +3 -0
- data/integration/apps/rails-five/.envrc.sample +1 -0
- data/integration/apps/rails-five/.gitignore +30 -0
- data/integration/apps/rails-five/Dockerfile +25 -0
- data/integration/apps/rails-five/Dockerfile-ci +11 -0
- data/integration/apps/rails-five/Gemfile +104 -0
- data/integration/apps/rails-five/README.md +94 -0
- data/integration/apps/rails-five/Rakefile +6 -0
- data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
- data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
- data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
- data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
- data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
- data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
- data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
- data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
- data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
- data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
- data/integration/apps/rails-five/app/models/application_record.rb +3 -0
- data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
- data/integration/apps/rails-five/app/models/test.rb +2 -0
- data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
- data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
- data/integration/apps/rails-five/bin/bundle +3 -0
- data/integration/apps/rails-five/bin/rails +9 -0
- data/integration/apps/rails-five/bin/rake +9 -0
- data/integration/apps/rails-five/bin/run +24 -0
- data/integration/apps/rails-five/bin/setup +27 -0
- data/integration/apps/rails-five/bin/spring +17 -0
- data/integration/apps/rails-five/bin/test +21 -0
- data/integration/apps/rails-five/bin/update +28 -0
- data/integration/apps/rails-five/config.ru +5 -0
- data/integration/apps/rails-five/config/application.rb +97 -0
- data/integration/apps/rails-five/config/boot.rb +4 -0
- data/integration/apps/rails-five/config/cable.yml +10 -0
- data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
- data/integration/apps/rails-five/config/database.yml +28 -0
- data/integration/apps/rails-five/config/environment.rb +5 -0
- data/integration/apps/rails-five/config/environments/development.rb +51 -0
- data/integration/apps/rails-five/config/environments/production.rb +82 -0
- data/integration/apps/rails-five/config/environments/test.rb +43 -0
- data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
- data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
- data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
- data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
- data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
- data/integration/apps/rails-five/config/locales/en.yml +33 -0
- data/integration/apps/rails-five/config/puma.rb +24 -0
- data/integration/apps/rails-five/config/routes.rb +11 -0
- data/integration/apps/rails-five/config/spring.rb +6 -0
- data/integration/apps/rails-five/config/unicorn.rb +29 -0
- data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
- data/integration/apps/rails-five/db/schema.rb +23 -0
- data/integration/apps/rails-five/db/seeds.rb +7 -0
- data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
- data/integration/apps/rails-five/docker-compose.yml +100 -0
- data/integration/apps/rails-five/lib/tasks/.keep +0 -0
- data/integration/apps/rails-five/log/.keep +0 -0
- data/integration/apps/rails-five/public/robots.txt +1 -0
- data/integration/apps/rails-five/script/build-images +35 -0
- data/integration/apps/rails-five/script/ci +50 -0
- data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
- data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
- data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
- data/integration/apps/rails-five/storage/.keep +0 -0
- data/integration/apps/rails-five/tmp/.keep +0 -0
- data/integration/apps/rails-five/vendor/.keep +0 -0
- data/integration/apps/ruby/.dockerignore +1 -0
- data/integration/apps/ruby/.envrc.sample +1 -0
- data/integration/apps/ruby/.gitignore +2 -0
- data/integration/apps/ruby/Dockerfile +25 -0
- data/integration/apps/ruby/Dockerfile-ci +11 -0
- data/integration/apps/ruby/Gemfile +11 -0
- data/integration/apps/ruby/README.md +70 -0
- data/integration/apps/ruby/agent.yaml +3 -0
- data/integration/apps/ruby/app/datadog.rb +13 -0
- data/integration/apps/ruby/app/fibonacci.rb +58 -0
- data/integration/apps/ruby/bin/run +20 -0
- data/integration/apps/ruby/bin/setup +17 -0
- data/integration/apps/ruby/bin/test +21 -0
- data/integration/apps/ruby/docker-compose.ci.yml +51 -0
- data/integration/apps/ruby/docker-compose.yml +63 -0
- data/integration/apps/ruby/script/build-images +38 -0
- data/integration/apps/ruby/script/ci +50 -0
- data/integration/images/agent/Dockerfile +2 -0
- data/integration/images/agent/agent.yaml +3 -0
- data/integration/images/include/datadog/analyzer.rb +71 -0
- data/integration/images/include/datadog/demo_env.rb +101 -0
- data/integration/images/include/http-health-check +33 -0
- data/integration/images/ruby/2.0/Dockerfile +54 -0
- data/integration/images/ruby/2.1/Dockerfile +54 -0
- data/integration/images/ruby/2.2/Dockerfile +54 -0
- data/integration/images/ruby/2.3/Dockerfile +70 -0
- data/integration/images/ruby/2.4/Dockerfile +54 -0
- data/integration/images/ruby/2.5/Dockerfile +54 -0
- data/integration/images/ruby/2.6/Dockerfile +54 -0
- data/integration/images/ruby/2.7/Dockerfile +54 -0
- data/integration/images/ruby/3.0/Dockerfile +54 -0
- data/integration/images/wrk/Dockerfile +33 -0
- data/integration/images/wrk/scripts/entrypoint.sh +17 -0
- data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
- data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
- data/integration/script/build-images +43 -0
- data/lib/ddtrace.rb +8 -5
- data/lib/ddtrace/analytics.rb +2 -0
- data/lib/ddtrace/auto_instrument.rb +3 -0
- data/lib/ddtrace/auto_instrument_base.rb +6 -0
- data/lib/ddtrace/buffer.rb +4 -4
- data/lib/ddtrace/configuration.rb +121 -26
- data/lib/ddtrace/configuration/base.rb +1 -1
- data/lib/ddtrace/configuration/components.rb +87 -5
- data/lib/ddtrace/configuration/option_definition.rb +1 -3
- data/lib/ddtrace/configuration/options.rb +4 -7
- data/lib/ddtrace/configuration/settings.rb +48 -3
- data/lib/ddtrace/context.rb +5 -6
- data/lib/ddtrace/context_provider.rb +0 -1
- data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
- data/lib/ddtrace/contrib/action_cable/integration.rb +7 -0
- data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -3
- data/lib/ddtrace/contrib/action_pack/integration.rb +7 -0
- data/lib/ddtrace/contrib/action_view/event.rb +1 -1
- data/lib/ddtrace/contrib/action_view/integration.rb +7 -0
- data/lib/ddtrace/contrib/action_view/utils.rb +1 -1
- data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +30 -0
- data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +107 -18
- data/lib/ddtrace/contrib/active_record/integration.rb +7 -0
- data/lib/ddtrace/contrib/active_record/utils.rb +57 -20
- data/lib/ddtrace/contrib/active_support/integration.rb +7 -1
- data/lib/ddtrace/contrib/active_support/notifications/event.rb +2 -1
- data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
- data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +9 -5
- data/lib/ddtrace/contrib/auto_instrument.rb +49 -0
- data/lib/ddtrace/contrib/aws/patcher.rb +1 -0
- data/lib/ddtrace/contrib/aws/services.rb +2 -0
- data/lib/ddtrace/contrib/configurable.rb +63 -39
- data/lib/ddtrace/contrib/configuration/resolver.rb +70 -5
- data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +19 -20
- data/lib/ddtrace/contrib/configuration/settings.rb +7 -6
- data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +0 -10
- data/lib/ddtrace/contrib/cucumber/ext.rb +0 -2
- data/lib/ddtrace/contrib/cucumber/formatter.rb +5 -11
- data/lib/ddtrace/contrib/cucumber/integration.rb +5 -0
- data/lib/ddtrace/contrib/dalli/patcher.rb +0 -38
- data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -1
- data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
- data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -2
- data/lib/ddtrace/contrib/ethon/easy_patch.rb +10 -9
- data/lib/ddtrace/contrib/excon/middleware.rb +2 -6
- data/lib/ddtrace/contrib/extensions.rb +53 -3
- data/lib/ddtrace/contrib/faraday/middleware.rb +1 -3
- data/lib/ddtrace/contrib/faraday/patcher.rb +0 -36
- data/lib/ddtrace/contrib/grape/endpoint.rb +8 -15
- data/lib/ddtrace/contrib/grape/patcher.rb +0 -42
- data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +8 -8
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +1 -0
- data/lib/ddtrace/contrib/grpc/patcher.rb +0 -36
- data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -3
- data/lib/ddtrace/contrib/http/instrumentation.rb +5 -5
- data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +32 -0
- data/lib/ddtrace/contrib/httpclient/ext.rb +17 -0
- data/lib/ddtrace/contrib/httpclient/instrumentation.rb +147 -0
- data/lib/ddtrace/contrib/httpclient/integration.rb +43 -0
- data/lib/ddtrace/contrib/httpclient/patcher.rb +38 -0
- data/lib/ddtrace/contrib/httprb/instrumentation.rb +14 -20
- data/lib/ddtrace/contrib/httprb/patcher.rb +5 -2
- data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -0
- data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -3
- data/lib/ddtrace/contrib/patchable.rb +18 -7
- data/lib/ddtrace/contrib/patcher.rb +9 -6
- data/lib/ddtrace/contrib/presto/patcher.rb +5 -2
- data/lib/ddtrace/contrib/qless/qless_job.rb +1 -0
- data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +1 -0
- data/lib/ddtrace/contrib/que/ext.rb +19 -19
- data/lib/ddtrace/contrib/que/tracer.rb +1 -1
- data/lib/ddtrace/contrib/racecar/event.rb +1 -0
- data/lib/ddtrace/contrib/rack/configuration/settings.rb +3 -3
- data/lib/ddtrace/contrib/rack/integration.rb +7 -0
- data/lib/ddtrace/contrib/rack/middlewares.rb +6 -11
- data/lib/ddtrace/contrib/rack/patcher.rb +1 -3
- data/lib/ddtrace/contrib/rack/request_queue.rb +6 -1
- data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
- data/lib/ddtrace/contrib/rails/patcher.rb +6 -2
- data/lib/ddtrace/contrib/rails/utils.rb +4 -0
- data/lib/ddtrace/contrib/rake/instrumentation.rb +4 -2
- data/lib/ddtrace/contrib/rake/integration.rb +1 -1
- data/lib/ddtrace/contrib/redis/configuration/resolver.rb +11 -4
- data/lib/ddtrace/contrib/redis/quantize.rb +1 -0
- data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
- data/lib/ddtrace/contrib/redis/vendor/resolver.rb +6 -7
- data/lib/ddtrace/contrib/registry.rb +2 -2
- data/lib/ddtrace/contrib/resque/configuration/settings.rb +17 -1
- data/lib/ddtrace/contrib/resque/integration.rb +1 -1
- data/lib/ddtrace/contrib/resque/patcher.rb +4 -4
- data/lib/ddtrace/contrib/resque/resque_job.rb +24 -1
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -3
- data/lib/ddtrace/contrib/rspec/configuration/settings.rb +0 -10
- data/lib/ddtrace/contrib/rspec/example.rb +24 -10
- data/lib/ddtrace/contrib/rspec/ext.rb +0 -3
- data/lib/ddtrace/contrib/rspec/integration.rb +6 -1
- data/lib/ddtrace/contrib/rspec/patcher.rb +0 -2
- data/lib/ddtrace/contrib/sequel/utils.rb +5 -6
- data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/shoryuken/tracer.rb +7 -4
- data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +2 -7
- data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -1
- data/lib/ddtrace/contrib/sinatra/env.rb +1 -3
- data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
- data/lib/ddtrace/contrib/sinatra/tracer.rb +1 -3
- data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +3 -3
- data/lib/ddtrace/contrib/sneakers/ext.rb +11 -11
- data/lib/ddtrace/contrib/sneakers/tracer.rb +2 -4
- data/lib/ddtrace/contrib/status_code_matcher.rb +5 -3
- data/lib/ddtrace/correlation.rb +1 -0
- data/lib/ddtrace/diagnostics/environment_logger.rb +3 -2
- data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
- data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -3
- data/lib/ddtrace/error.rb +2 -0
- data/lib/ddtrace/ext/ci.rb +43 -10
- data/lib/ddtrace/ext/distributed.rb +1 -1
- data/lib/ddtrace/ext/git.rb +0 -1
- data/lib/ddtrace/ext/http.rb +1 -1
- data/lib/ddtrace/ext/profiling.rb +52 -0
- data/lib/ddtrace/ext/runtime.rb +3 -1
- data/lib/ddtrace/ext/transport.rb +1 -0
- data/lib/ddtrace/forced_tracing.rb +2 -0
- data/lib/ddtrace/logger.rb +1 -1
- data/lib/ddtrace/metrics.rb +14 -6
- data/lib/ddtrace/opentracer/distributed_headers.rb +3 -0
- data/lib/ddtrace/opentracer/span.rb +2 -6
- data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
- data/lib/ddtrace/patcher.rb +25 -4
- data/lib/ddtrace/pin.rb +8 -61
- data/lib/ddtrace/pipeline/span_filter.rb +1 -1
- data/lib/ddtrace/profiling.rb +54 -0
- data/lib/ddtrace/profiling/backtrace_location.rb +32 -0
- data/lib/ddtrace/profiling/buffer.rb +41 -0
- data/lib/ddtrace/profiling/collectors/stack.rb +253 -0
- data/lib/ddtrace/profiling/encoding/profile.rb +31 -0
- data/lib/ddtrace/profiling/event.rb +13 -0
- data/lib/ddtrace/profiling/events/stack.rb +102 -0
- data/lib/ddtrace/profiling/exporter.rb +23 -0
- data/lib/ddtrace/profiling/ext/cpu.rb +54 -0
- data/lib/ddtrace/profiling/ext/cthread.rb +134 -0
- data/lib/ddtrace/profiling/ext/forking.rb +97 -0
- data/lib/ddtrace/profiling/flush.rb +41 -0
- data/lib/ddtrace/profiling/pprof/builder.rb +121 -0
- data/lib/ddtrace/profiling/pprof/converter.rb +85 -0
- data/lib/ddtrace/profiling/pprof/message_set.rb +12 -0
- data/lib/ddtrace/profiling/pprof/payload.rb +18 -0
- data/lib/ddtrace/profiling/pprof/pprof.proto +212 -0
- data/lib/ddtrace/profiling/pprof/pprof_pb.rb +81 -0
- data/lib/ddtrace/profiling/pprof/stack_sample.rb +90 -0
- data/lib/ddtrace/profiling/pprof/string_table.rb +10 -0
- data/lib/ddtrace/profiling/pprof/template.rb +114 -0
- data/lib/ddtrace/profiling/preload.rb +3 -0
- data/lib/ddtrace/profiling/profiler.rb +28 -0
- data/lib/ddtrace/profiling/recorder.rb +87 -0
- data/lib/ddtrace/profiling/scheduler.rb +84 -0
- data/lib/ddtrace/profiling/tasks/setup.rb +77 -0
- data/lib/ddtrace/profiling/transport/client.rb +12 -0
- data/lib/ddtrace/profiling/transport/http.rb +122 -0
- data/lib/ddtrace/profiling/transport/http/api.rb +43 -0
- data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +90 -0
- data/lib/ddtrace/profiling/transport/http/api/instance.rb +36 -0
- data/lib/ddtrace/profiling/transport/http/api/spec.rb +40 -0
- data/lib/ddtrace/profiling/transport/http/builder.rb +28 -0
- data/lib/ddtrace/profiling/transport/http/client.rb +33 -0
- data/lib/ddtrace/profiling/transport/http/response.rb +21 -0
- data/lib/ddtrace/profiling/transport/io.rb +30 -0
- data/lib/ddtrace/profiling/transport/io/client.rb +27 -0
- data/lib/ddtrace/profiling/transport/io/response.rb +16 -0
- data/lib/ddtrace/profiling/transport/parcel.rb +17 -0
- data/lib/ddtrace/profiling/transport/request.rb +15 -0
- data/lib/ddtrace/profiling/transport/response.rb +8 -0
- data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
- data/lib/ddtrace/propagation/http_propagator.rb +17 -2
- data/lib/ddtrace/quantization/http.rb +1 -0
- data/lib/ddtrace/runtime/cgroup.rb +2 -2
- data/lib/ddtrace/runtime/container.rb +32 -26
- data/lib/ddtrace/runtime/identity.rb +8 -0
- data/lib/ddtrace/sampler.rb +1 -1
- data/lib/ddtrace/sampling/rule_sampler.rb +4 -9
- data/lib/ddtrace/span.rb +7 -7
- data/lib/ddtrace/sync_writer.rb +12 -12
- data/lib/ddtrace/tasks/exec.rb +48 -0
- data/lib/ddtrace/tasks/help.rb +14 -0
- data/lib/ddtrace/tracer.rb +28 -5
- data/lib/ddtrace/transport/http.rb +15 -8
- data/lib/ddtrace/transport/http/adapters/net.rb +27 -8
- data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
- data/lib/ddtrace/transport/http/builder.rb +7 -1
- data/lib/ddtrace/transport/http/env.rb +8 -0
- data/lib/ddtrace/transport/http/traces.rb +2 -3
- data/lib/ddtrace/transport/io.rb +1 -1
- data/lib/ddtrace/transport/io/client.rb +15 -8
- data/lib/ddtrace/transport/io/response.rb +1 -3
- data/lib/ddtrace/transport/io/traces.rb +6 -0
- data/lib/ddtrace/transport/parcel.rb +4 -0
- data/lib/ddtrace/transport/traces.rb +18 -1
- data/lib/ddtrace/utils/compression.rb +27 -0
- data/lib/ddtrace/utils/object_set.rb +41 -0
- data/lib/ddtrace/utils/only_once.rb +40 -0
- data/lib/ddtrace/utils/sequence.rb +17 -0
- data/lib/ddtrace/utils/string_table.rb +45 -0
- data/lib/ddtrace/utils/time.rb +32 -1
- data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
- data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
- data/lib/ddtrace/vendor/multipart-post/multipart.rb +12 -0
- data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +8 -0
- data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +116 -0
- data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +57 -0
- data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +135 -0
- data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +9 -0
- data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +32 -0
- data/lib/ddtrace/version.rb +3 -1
- data/lib/ddtrace/workers.rb +5 -0
- data/lib/ddtrace/workers/async.rb +11 -3
- data/lib/ddtrace/workers/loop.rb +17 -3
- data/lib/ddtrace/workers/polling.rb +1 -0
- data/lib/ddtrace/workers/queue.rb +1 -0
- data/lib/ddtrace/workers/runtime_metrics.rb +14 -1
- data/lib/ddtrace/workers/trace_writer.rb +10 -10
- data/lib/ddtrace/writer.rb +7 -4
- metadata +213 -379
- data/lib/ddtrace/augmentation.rb +0 -13
- data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
- data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
- data/lib/ddtrace/augmentation/shim.rb +0 -102
- data/lib/ddtrace/contrib/rspec/example_group.rb +0 -61
- data/lib/ddtrace/monkey.rb +0 -58
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
FROM ruby:2.3
|
|
2
|
+
|
|
3
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
4
|
+
|
|
5
|
+
# Install prerequisites
|
|
6
|
+
RUN set -ex && \
|
|
7
|
+
echo "===> Installing dependencies" && \
|
|
8
|
+
apt-get -y update && \
|
|
9
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
10
|
+
curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
|
|
11
|
+
\
|
|
12
|
+
echo "===> Installing NodeJS" && \
|
|
13
|
+
apt-get install -y --force-yes --no-install-recommends nodejs && \
|
|
14
|
+
\
|
|
15
|
+
echo "===> Installing Yarn" && \
|
|
16
|
+
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
|
17
|
+
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
|
|
18
|
+
apt-get update && \
|
|
19
|
+
apt-get install -y --force-yes --no-install-recommends yarn && \
|
|
20
|
+
\
|
|
21
|
+
echo "===> Installing database libraries" && \
|
|
22
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
23
|
+
postgresql-client sqlite3 && \
|
|
24
|
+
\
|
|
25
|
+
echo "===> Installing dev tools" && \
|
|
26
|
+
mkdir -p /usr/share/man/man1 && \
|
|
27
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
28
|
+
sudo git openssh-client rsync vim \
|
|
29
|
+
net-tools netcat parallel unzip zip bzip2 && \
|
|
30
|
+
\
|
|
31
|
+
echo "===> Cleaning up" && \
|
|
32
|
+
rm -rf /var/lib/apt/lists/*;
|
|
33
|
+
|
|
34
|
+
# Set timezone to UTC by default
|
|
35
|
+
RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
|
36
|
+
|
|
37
|
+
# Set language
|
|
38
|
+
RUN locale-gen en_US.UTF-8
|
|
39
|
+
ENV LANG en_US.UTF-8
|
|
40
|
+
ENV LANGUAGE en_US:en
|
|
41
|
+
|
|
42
|
+
# Install RubyGems
|
|
43
|
+
RUN gem update --system
|
|
44
|
+
RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
|
|
45
|
+
|
|
46
|
+
# Install RubyGems
|
|
47
|
+
RUN gem update --system
|
|
48
|
+
RUN gem install bundler
|
|
49
|
+
ENV BUNDLE_SILENCE_ROOT_WARNING 1
|
|
50
|
+
|
|
51
|
+
# NOTE:
|
|
52
|
+
# Ruby 2.3 base image sets BUNDLE_PATH which causes Bundler (>= 2.0) to install to:
|
|
53
|
+
# /usr/local/bundle/ruby/2.3.0/bin
|
|
54
|
+
# Instead of the desired:
|
|
55
|
+
# /usr/local/bundle/bin
|
|
56
|
+
#
|
|
57
|
+
# Because BUNDLE_PATH cannot be removed from ENV (Docker does not permit this),
|
|
58
|
+
# we must work around this by adding the bin directory to the PATH.
|
|
59
|
+
#
|
|
60
|
+
# See:
|
|
61
|
+
# https://github.com/docker-library/ruby/issues/297
|
|
62
|
+
# https://github.com/docker-library/ruby/pull/306
|
|
63
|
+
# https://github.com/rubygems/bundler/issues/7494
|
|
64
|
+
ENV GEM_PATH=$GEM_HOME:$GEM_HOME/ruby/$RUBY_MAJOR.0
|
|
65
|
+
ENV PATH=$GEM_HOME/bin:$GEM_HOME/ruby/$RUBY_MAJOR.0/bin:$PATH
|
|
66
|
+
|
|
67
|
+
# Setup demo environment includes
|
|
68
|
+
COPY ./include /vendor/dd-demo
|
|
69
|
+
ENV RUBYLIB /vendor/dd-demo
|
|
70
|
+
ENV RUBYOPT -rdatadog/demo_env
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
FROM ruby:2.4
|
|
2
|
+
|
|
3
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
4
|
+
|
|
5
|
+
# Install prerequisites
|
|
6
|
+
RUN set -ex && \
|
|
7
|
+
echo "===> Installing dependencies" && \
|
|
8
|
+
apt-get -y update && \
|
|
9
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
10
|
+
curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
|
|
11
|
+
\
|
|
12
|
+
echo "===> Installing NodeJS" && \
|
|
13
|
+
apt-get install -y --force-yes --no-install-recommends nodejs && \
|
|
14
|
+
\
|
|
15
|
+
echo "===> Installing Yarn" && \
|
|
16
|
+
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
|
17
|
+
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
|
|
18
|
+
apt-get update && \
|
|
19
|
+
apt-get install -y --force-yes --no-install-recommends yarn && \
|
|
20
|
+
\
|
|
21
|
+
echo "===> Installing database libraries" && \
|
|
22
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
23
|
+
postgresql-client sqlite3 && \
|
|
24
|
+
\
|
|
25
|
+
echo "===> Installing dev tools" && \
|
|
26
|
+
mkdir -p /usr/share/man/man1 && \
|
|
27
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
28
|
+
sudo git openssh-client rsync vim \
|
|
29
|
+
net-tools netcat parallel unzip zip bzip2 && \
|
|
30
|
+
\
|
|
31
|
+
echo "===> Cleaning up" && \
|
|
32
|
+
rm -rf /var/lib/apt/lists/*;
|
|
33
|
+
|
|
34
|
+
# Set timezone to UTC by default
|
|
35
|
+
RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
|
36
|
+
|
|
37
|
+
# Set language
|
|
38
|
+
RUN locale-gen en_US.UTF-8
|
|
39
|
+
ENV LANG en_US.UTF-8
|
|
40
|
+
ENV LANGUAGE en_US:en
|
|
41
|
+
|
|
42
|
+
# Install RubyGems
|
|
43
|
+
RUN gem update --system
|
|
44
|
+
RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
|
|
45
|
+
|
|
46
|
+
# Install RubyGems
|
|
47
|
+
RUN gem update --system
|
|
48
|
+
RUN gem install bundler
|
|
49
|
+
ENV BUNDLE_SILENCE_ROOT_WARNING 1
|
|
50
|
+
|
|
51
|
+
# Setup demo environment includes
|
|
52
|
+
COPY ./include /vendor/dd-demo
|
|
53
|
+
ENV RUBYLIB /vendor/dd-demo
|
|
54
|
+
ENV RUBYOPT -rdatadog/demo_env
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
FROM ruby:2.5
|
|
2
|
+
|
|
3
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
4
|
+
|
|
5
|
+
# Install prerequisites
|
|
6
|
+
RUN set -ex && \
|
|
7
|
+
echo "===> Installing dependencies" && \
|
|
8
|
+
apt-get -y update && \
|
|
9
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
10
|
+
curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
|
|
11
|
+
\
|
|
12
|
+
echo "===> Installing NodeJS" && \
|
|
13
|
+
apt-get install -y --force-yes --no-install-recommends nodejs && \
|
|
14
|
+
\
|
|
15
|
+
echo "===> Installing Yarn" && \
|
|
16
|
+
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
|
17
|
+
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
|
|
18
|
+
apt-get update && \
|
|
19
|
+
apt-get install -y --force-yes --no-install-recommends yarn && \
|
|
20
|
+
\
|
|
21
|
+
echo "===> Installing database libraries" && \
|
|
22
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
23
|
+
postgresql-client sqlite3 && \
|
|
24
|
+
\
|
|
25
|
+
echo "===> Installing dev tools" && \
|
|
26
|
+
mkdir -p /usr/share/man/man1 && \
|
|
27
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
28
|
+
sudo git openssh-client rsync vim \
|
|
29
|
+
net-tools netcat parallel unzip zip bzip2 && \
|
|
30
|
+
\
|
|
31
|
+
echo "===> Cleaning up" && \
|
|
32
|
+
rm -rf /var/lib/apt/lists/*;
|
|
33
|
+
|
|
34
|
+
# Set timezone to UTC by default
|
|
35
|
+
RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
|
36
|
+
|
|
37
|
+
# Set language
|
|
38
|
+
RUN locale-gen en_US.UTF-8
|
|
39
|
+
ENV LANG en_US.UTF-8
|
|
40
|
+
ENV LANGUAGE en_US:en
|
|
41
|
+
|
|
42
|
+
# Install RubyGems
|
|
43
|
+
RUN gem update --system
|
|
44
|
+
RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
|
|
45
|
+
|
|
46
|
+
# Install RubyGems
|
|
47
|
+
RUN gem update --system
|
|
48
|
+
RUN gem install bundler
|
|
49
|
+
ENV BUNDLE_SILENCE_ROOT_WARNING 1
|
|
50
|
+
|
|
51
|
+
# Setup demo environment includes
|
|
52
|
+
COPY ./include /vendor/dd-demo
|
|
53
|
+
ENV RUBYLIB /vendor/dd-demo
|
|
54
|
+
ENV RUBYOPT -rdatadog/demo_env
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
FROM ruby:2.6
|
|
2
|
+
|
|
3
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
4
|
+
|
|
5
|
+
# Install prerequisites
|
|
6
|
+
RUN set -ex && \
|
|
7
|
+
echo "===> Installing dependencies" && \
|
|
8
|
+
apt-get -y update && \
|
|
9
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
10
|
+
curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
|
|
11
|
+
\
|
|
12
|
+
echo "===> Installing NodeJS" && \
|
|
13
|
+
apt-get install -y --force-yes --no-install-recommends nodejs && \
|
|
14
|
+
\
|
|
15
|
+
echo "===> Installing Yarn" && \
|
|
16
|
+
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
|
17
|
+
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
|
|
18
|
+
apt-get update && \
|
|
19
|
+
apt-get install -y --force-yes --no-install-recommends yarn && \
|
|
20
|
+
\
|
|
21
|
+
echo "===> Installing database libraries" && \
|
|
22
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
23
|
+
postgresql-client sqlite3 && \
|
|
24
|
+
\
|
|
25
|
+
echo "===> Installing dev tools" && \
|
|
26
|
+
mkdir -p /usr/share/man/man1 && \
|
|
27
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
28
|
+
sudo git openssh-client rsync vim \
|
|
29
|
+
net-tools netcat parallel unzip zip bzip2 && \
|
|
30
|
+
\
|
|
31
|
+
echo "===> Cleaning up" && \
|
|
32
|
+
rm -rf /var/lib/apt/lists/*;
|
|
33
|
+
|
|
34
|
+
# Set timezone to UTC by default
|
|
35
|
+
RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
|
36
|
+
|
|
37
|
+
# Set language
|
|
38
|
+
RUN locale-gen en_US.UTF-8
|
|
39
|
+
ENV LANG en_US.UTF-8
|
|
40
|
+
ENV LANGUAGE en_US:en
|
|
41
|
+
|
|
42
|
+
# Install RubyGems
|
|
43
|
+
RUN gem update --system
|
|
44
|
+
RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
|
|
45
|
+
|
|
46
|
+
# Install RubyGems
|
|
47
|
+
RUN gem update --system
|
|
48
|
+
RUN gem install bundler
|
|
49
|
+
ENV BUNDLE_SILENCE_ROOT_WARNING 1
|
|
50
|
+
|
|
51
|
+
# Setup demo environment includes
|
|
52
|
+
COPY ./include /vendor/dd-demo
|
|
53
|
+
ENV RUBYLIB /vendor/dd-demo
|
|
54
|
+
ENV RUBYOPT -rdatadog/demo_env
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
FROM ruby:2.7
|
|
2
|
+
|
|
3
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
4
|
+
|
|
5
|
+
# Install prerequisites
|
|
6
|
+
RUN set -ex && \
|
|
7
|
+
echo "===> Installing dependencies" && \
|
|
8
|
+
apt-get -y update && \
|
|
9
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
10
|
+
curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
|
|
11
|
+
\
|
|
12
|
+
echo "===> Installing NodeJS" && \
|
|
13
|
+
apt-get install -y --force-yes --no-install-recommends nodejs && \
|
|
14
|
+
\
|
|
15
|
+
echo "===> Installing Yarn" && \
|
|
16
|
+
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
|
17
|
+
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
|
|
18
|
+
apt-get update && \
|
|
19
|
+
apt-get install -y --force-yes --no-install-recommends yarn && \
|
|
20
|
+
\
|
|
21
|
+
echo "===> Installing database libraries" && \
|
|
22
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
23
|
+
postgresql-client sqlite3 && \
|
|
24
|
+
\
|
|
25
|
+
echo "===> Installing dev tools" && \
|
|
26
|
+
mkdir -p /usr/share/man/man1 && \
|
|
27
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
28
|
+
sudo git openssh-client rsync vim \
|
|
29
|
+
net-tools netcat parallel unzip zip bzip2 && \
|
|
30
|
+
\
|
|
31
|
+
echo "===> Cleaning up" && \
|
|
32
|
+
rm -rf /var/lib/apt/lists/*;
|
|
33
|
+
|
|
34
|
+
# Set timezone to UTC by default
|
|
35
|
+
RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
|
36
|
+
|
|
37
|
+
# Set language
|
|
38
|
+
RUN locale-gen en_US.UTF-8
|
|
39
|
+
ENV LANG en_US.UTF-8
|
|
40
|
+
ENV LANGUAGE en_US:en
|
|
41
|
+
|
|
42
|
+
# Install RubyGems
|
|
43
|
+
RUN gem update --system
|
|
44
|
+
RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
|
|
45
|
+
|
|
46
|
+
# Install RubyGems
|
|
47
|
+
RUN gem update --system
|
|
48
|
+
RUN gem install bundler
|
|
49
|
+
ENV BUNDLE_SILENCE_ROOT_WARNING 1
|
|
50
|
+
|
|
51
|
+
# Setup demo environment includes
|
|
52
|
+
COPY ./include /vendor/dd-demo
|
|
53
|
+
ENV RUBYLIB /vendor/dd-demo
|
|
54
|
+
ENV RUBYOPT -rdatadog/demo_env
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
FROM ruby:3.0
|
|
2
|
+
|
|
3
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
4
|
+
|
|
5
|
+
# Install prerequisites
|
|
6
|
+
RUN set -ex && \
|
|
7
|
+
echo "===> Installing dependencies" && \
|
|
8
|
+
apt-get -y update && \
|
|
9
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
10
|
+
curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
|
|
11
|
+
\
|
|
12
|
+
echo "===> Installing NodeJS" && \
|
|
13
|
+
apt-get install -y --force-yes --no-install-recommends nodejs && \
|
|
14
|
+
\
|
|
15
|
+
echo "===> Installing Yarn" && \
|
|
16
|
+
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
|
17
|
+
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
|
|
18
|
+
apt-get update && \
|
|
19
|
+
apt-get install -y --force-yes --no-install-recommends yarn && \
|
|
20
|
+
\
|
|
21
|
+
echo "===> Installing database libraries" && \
|
|
22
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
23
|
+
postgresql-client sqlite3 && \
|
|
24
|
+
\
|
|
25
|
+
echo "===> Installing dev tools" && \
|
|
26
|
+
mkdir -p /usr/share/man/man1 && \
|
|
27
|
+
apt-get install -y --force-yes --no-install-recommends \
|
|
28
|
+
sudo git openssh-client rsync vim \
|
|
29
|
+
net-tools netcat parallel unzip zip bzip2 && \
|
|
30
|
+
\
|
|
31
|
+
echo "===> Cleaning up" && \
|
|
32
|
+
rm -rf /var/lib/apt/lists/*;
|
|
33
|
+
|
|
34
|
+
# Set timezone to UTC by default
|
|
35
|
+
RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
|
36
|
+
|
|
37
|
+
# Set language
|
|
38
|
+
RUN locale-gen en_US.UTF-8
|
|
39
|
+
ENV LANG en_US.UTF-8
|
|
40
|
+
ENV LANGUAGE en_US:en
|
|
41
|
+
|
|
42
|
+
# Install RubyGems
|
|
43
|
+
RUN gem update --system
|
|
44
|
+
RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
|
|
45
|
+
|
|
46
|
+
# Upgrade RubyGems and Bundler
|
|
47
|
+
RUN gem update --system
|
|
48
|
+
RUN gem install bundler
|
|
49
|
+
ENV BUNDLE_SILENCE_ROOT_WARNING 1
|
|
50
|
+
|
|
51
|
+
# Setup demo environment includes
|
|
52
|
+
COPY ./include /vendor/dd-demo
|
|
53
|
+
ENV RUBYLIB /vendor/dd-demo
|
|
54
|
+
ENV RUBYOPT -rdatadog/demo_env
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
FROM debian:jessie
|
|
2
|
+
|
|
3
|
+
RUN echo "===> Installing tools..." && \
|
|
4
|
+
apt-get -y update && \
|
|
5
|
+
apt-get -y install build-essential curl && \
|
|
6
|
+
\
|
|
7
|
+
echo "===> Installing wrk" && \
|
|
8
|
+
WRK_VERSION=$(curl -L https://github.com/wg/wrk/raw/master/CHANGES 2>/dev/null | \
|
|
9
|
+
egrep '^wrk' | head -n 1 | awk '{print $2}') && \
|
|
10
|
+
echo $WRK_VERSION && \
|
|
11
|
+
mkdir /opt/wrk && \
|
|
12
|
+
cd /opt/wrk && \
|
|
13
|
+
curl -L https://github.com/wg/wrk/archive/$WRK_VERSION.tar.gz | \
|
|
14
|
+
tar zx --strip 1 && \
|
|
15
|
+
make && \
|
|
16
|
+
cp wrk /usr/local/bin/ && \
|
|
17
|
+
\
|
|
18
|
+
echo "===> Cleaning the system" && \
|
|
19
|
+
apt-get -f -y --auto-remove remove build-essential && \
|
|
20
|
+
apt-get clean && \
|
|
21
|
+
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /opt/wrk/
|
|
22
|
+
|
|
23
|
+
# Setup directory
|
|
24
|
+
RUN mkdir /scripts
|
|
25
|
+
RUN mkdir /data
|
|
26
|
+
WORKDIR /scripts
|
|
27
|
+
|
|
28
|
+
# Add scripts
|
|
29
|
+
COPY ./include /vendor/dd-demo
|
|
30
|
+
COPY ./wrk/scripts /scripts
|
|
31
|
+
|
|
32
|
+
# Set entrypoint
|
|
33
|
+
ENTRYPOINT ["./entrypoint.sh"]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
bash /vendor/dd-demo/http-health-check
|
|
3
|
+
|
|
4
|
+
# Start the load test
|
|
5
|
+
echo "== Starting load test... =="
|
|
6
|
+
|
|
7
|
+
if [[ $# -eq 0 ]] ; then
|
|
8
|
+
echo "** No load test specified: pass wrk args as a command. **"
|
|
9
|
+
echo "== Load test aborted. =="
|
|
10
|
+
exit 1
|
|
11
|
+
else
|
|
12
|
+
COMMAND="wrk $@"
|
|
13
|
+
echo "Command: $COMMAND"
|
|
14
|
+
/bin/bash -c "$COMMAND"
|
|
15
|
+
echo "== Load test done. =="
|
|
16
|
+
exit 0
|
|
17
|
+
fi
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
wrk.method = "GET"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
wrk.method = "GET"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
INTEGRATION_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
5
|
+
INTEGRATION_DIR=${INTEGRATION_SCRIPT_DIR%/script}
|
|
6
|
+
cd $INTEGRATION_DIR
|
|
7
|
+
|
|
8
|
+
# Parse options
|
|
9
|
+
while getopts ":v:" opt; do
|
|
10
|
+
case $opt in
|
|
11
|
+
v)
|
|
12
|
+
APP_RUBY_VERSION=$OPTARG
|
|
13
|
+
;;
|
|
14
|
+
\?)
|
|
15
|
+
echo "Invalid option: -$OPTARG" >&2
|
|
16
|
+
exit 1
|
|
17
|
+
;;
|
|
18
|
+
:)
|
|
19
|
+
echo "Option -$OPTARG requires an argument." >&2
|
|
20
|
+
exit 1
|
|
21
|
+
;;
|
|
22
|
+
esac
|
|
23
|
+
done
|
|
24
|
+
|
|
25
|
+
echo "== Building base images... =="
|
|
26
|
+
# "wrk" not necessary for CI: will be auto-built by local apps via docker-compose.
|
|
27
|
+
# docker build -t datadog/dd-apm-demo:wrk -f $INTEGRATION_DIR/images/wrk/Dockerfile $INTEGRATION_DIR/images
|
|
28
|
+
docker build -t datadog/dd-apm-demo:agent -f $INTEGRATION_DIR/images/agent/Dockerfile $INTEGRATION_DIR/images/agent
|
|
29
|
+
|
|
30
|
+
if [ -v APP_RUBY_VERSION ]; then
|
|
31
|
+
docker build -t datadog/dd-apm-demo:rb-$APP_RUBY_VERSION -f $INTEGRATION_DIR/images/ruby/$APP_RUBY_VERSION/Dockerfile $INTEGRATION_DIR/images
|
|
32
|
+
else
|
|
33
|
+
docker build -t datadog/dd-apm-demo:rb-2.0 -f $INTEGRATION_DIR/images/ruby/2.0/Dockerfile $INTEGRATION_DIR/images
|
|
34
|
+
docker build -t datadog/dd-apm-demo:rb-2.1 -f $INTEGRATION_DIR/images/ruby/2.1/Dockerfile $INTEGRATION_DIR/images
|
|
35
|
+
docker build -t datadog/dd-apm-demo:rb-2.2 -f $INTEGRATION_DIR/images/ruby/2.2/Dockerfile $INTEGRATION_DIR/images
|
|
36
|
+
docker build -t datadog/dd-apm-demo:rb-2.3 -f $INTEGRATION_DIR/images/ruby/2.3/Dockerfile $INTEGRATION_DIR/images
|
|
37
|
+
docker build -t datadog/dd-apm-demo:rb-2.4 -f $INTEGRATION_DIR/images/ruby/2.4/Dockerfile $INTEGRATION_DIR/images
|
|
38
|
+
docker build -t datadog/dd-apm-demo:rb-2.5 -f $INTEGRATION_DIR/images/ruby/2.5/Dockerfile $INTEGRATION_DIR/images
|
|
39
|
+
docker build -t datadog/dd-apm-demo:rb-2.6 -f $INTEGRATION_DIR/images/ruby/2.6/Dockerfile $INTEGRATION_DIR/images
|
|
40
|
+
docker build -t datadog/dd-apm-demo:rb-2.7 -f $INTEGRATION_DIR/images/ruby/2.7/Dockerfile $INTEGRATION_DIR/images
|
|
41
|
+
docker build -t datadog/dd-apm-demo:rb-3.0 -f $INTEGRATION_DIR/images/ruby/3.0/Dockerfile $INTEGRATION_DIR/images
|
|
42
|
+
fi
|
|
43
|
+
echo "== Done building base images. =="
|