ddtrace 0.12.1 → 0.13.0.beta1

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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.env +11 -21
  3. data/.rubocop.yml +1 -4
  4. data/Appraisals +75 -439
  5. data/CHANGELOG.md +16 -19
  6. data/Rakefile +89 -259
  7. data/circle.yml +69 -0
  8. data/ddtrace.gemspec +6 -6
  9. data/docker-compose.yml +37 -222
  10. data/docs/GettingStarted.md +260 -19
  11. data/gemfiles/contrib.gemfile +5 -0
  12. data/gemfiles/contrib_old.gemfile +4 -1
  13. data/gemfiles/rails30_postgres.gemfile +0 -1
  14. data/gemfiles/rails30_postgres_sidekiq.gemfile +0 -1
  15. data/gemfiles/rails32_mysql2.gemfile +0 -1
  16. data/gemfiles/rails32_postgres.gemfile +0 -1
  17. data/gemfiles/rails32_postgres_redis.gemfile +0 -1
  18. data/gemfiles/rails32_postgres_sidekiq.gemfile +0 -1
  19. data/gemfiles/rails5_mysql2.gemfile +1 -1
  20. data/gemfiles/rails5_postgres.gemfile +1 -1
  21. data/gemfiles/rails5_postgres_redis.gemfile +1 -1
  22. data/gemfiles/rails5_postgres_sidekiq.gemfile +1 -1
  23. data/lib/ddtrace.rb +6 -0
  24. data/lib/ddtrace/configuration.rb +2 -2
  25. data/lib/ddtrace/contrib/active_model_serializers/event.rb +57 -0
  26. data/lib/ddtrace/contrib/active_model_serializers/events.rb +30 -0
  27. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +32 -0
  28. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +35 -0
  29. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +62 -0
  30. data/lib/ddtrace/contrib/active_record/event.rb +30 -0
  31. data/lib/ddtrace/contrib/active_record/events.rb +30 -0
  32. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +51 -0
  33. data/lib/ddtrace/contrib/active_record/events/sql.rb +48 -0
  34. data/lib/ddtrace/contrib/active_record/patcher.rb +3 -73
  35. data/lib/ddtrace/contrib/active_record/utils.rb +1 -15
  36. data/lib/ddtrace/contrib/active_support/notifications/event.rb +62 -0
  37. data/lib/ddtrace/contrib/aws/instrumentation.rb +2 -2
  38. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +2 -2
  39. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +8 -40
  40. data/lib/ddtrace/contrib/excon/middleware.rb +140 -0
  41. data/lib/ddtrace/contrib/excon/patcher.rb +50 -0
  42. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +65 -0
  43. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +49 -0
  44. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +66 -0
  45. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +49 -0
  46. data/lib/ddtrace/contrib/grpc/patcher.rb +62 -0
  47. data/lib/ddtrace/contrib/http/patcher.rb +16 -18
  48. data/lib/ddtrace/contrib/racecar/event.rb +61 -0
  49. data/lib/ddtrace/contrib/racecar/events.rb +30 -0
  50. data/lib/ddtrace/contrib/racecar/events/batch.rb +27 -0
  51. data/lib/ddtrace/contrib/racecar/events/message.rb +27 -0
  52. data/lib/ddtrace/contrib/racecar/patcher.rb +6 -52
  53. data/lib/ddtrace/contrib/rack/middlewares.rb +65 -11
  54. data/lib/ddtrace/contrib/rack/patcher.rb +16 -0
  55. data/lib/ddtrace/contrib/rack/request_queue.rb +34 -0
  56. data/lib/ddtrace/contrib/rails/action_view.rb +65 -0
  57. data/lib/ddtrace/contrib/rails/active_support.rb +8 -9
  58. data/lib/ddtrace/contrib/rails/core_extensions.rb +115 -74
  59. data/lib/ddtrace/contrib/rake/instrumentation.rb +70 -0
  60. data/lib/ddtrace/contrib/rake/patcher.rb +53 -0
  61. data/lib/ddtrace/contrib/sequel/database.rb +58 -0
  62. data/lib/ddtrace/contrib/sequel/dataset.rb +59 -0
  63. data/lib/ddtrace/contrib/sequel/patcher.rb +56 -0
  64. data/lib/ddtrace/contrib/sequel/utils.rb +28 -0
  65. data/lib/ddtrace/ext/distributed.rb +5 -0
  66. data/lib/ddtrace/ext/grpc.rb +7 -0
  67. data/lib/ddtrace/ext/http.rb +35 -5
  68. data/lib/ddtrace/propagation/grpc_propagator.rb +54 -0
  69. data/lib/ddtrace/quantization/hash.rb +89 -0
  70. data/lib/ddtrace/tracer.rb +1 -4
  71. data/lib/ddtrace/utils.rb +4 -10
  72. data/lib/ddtrace/utils/database.rb +21 -0
  73. data/lib/ddtrace/version.rb +3 -3
  74. metadata +38 -13
  75. data/.circleci/config.yml +0 -456
  76. data/.circleci/images/primary/Dockerfile-1.9.3 +0 -69
  77. data/.circleci/images/primary/Dockerfile-2.0.0 +0 -69
  78. data/.circleci/images/primary/Dockerfile-2.1.10 +0 -69
  79. data/.circleci/images/primary/Dockerfile-2.2.10 +0 -69
  80. data/.circleci/images/primary/Dockerfile-2.3.7 +0 -73
  81. data/.circleci/images/primary/Dockerfile-2.4.4 +0 -73
  82. data/lib/ddtrace/contrib/rails/action_controller_patch.rb +0 -77
@@ -1,69 +0,0 @@
1
- # Last version: https://github.com/docker-library/ruby/blob/90c4e3be58d565007c518d311d4bd05086a1638c/1.9/Dockerfile
2
- FROM ruby:1.9.3
3
-
4
- # Make apt non-interactive
5
- RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
- && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
-
8
- ENV DEBIAN_FRONTEND=noninteractive
9
-
10
- # Install required packages
11
- RUN set -ex; \
12
- apt-get update; \
13
- mkdir -p /usr/share/man/man1; \
14
- apt-get install -y --no-install-recommends \
15
- git mercurial xvfb \
16
- locales sudo openssh-client ca-certificates tar gzip parallel \
17
- net-tools netcat unzip zip bzip2 gnupg curl wget \
18
- tzdata rsync vim; \
19
- rm -rf /var/lib/apt/lists/*;
20
-
21
- # Set timezone to UTC by default
22
- RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
23
-
24
- # Set language
25
- RUN locale-gen en_US.UTF-8
26
- ENV LANG en_US.UTF-8
27
- ENV LANGUAGE en_US:en
28
-
29
- # Install jq
30
- RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
31
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
32
- && chmod +x /usr/bin/jq \
33
- && jq --version
34
-
35
- # Install Docker
36
- RUN set -ex \
37
- && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
38
- && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
39
- && echo Docker URL: $DOCKER_URL \
40
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
41
- && ls -lha /tmp/docker.tgz \
42
- && tar -xz -C /tmp -f /tmp/docker.tgz \
43
- && mv /tmp/docker/* /usr/bin \
44
- && rm -rf /tmp/docker /tmp/docker.tgz \
45
- && which docker \
46
- && (docker version || true)
47
-
48
- # Install Docker Compose
49
- RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
50
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
51
- && chmod +x /usr/bin/docker-compose \
52
- && docker-compose version
53
-
54
- # Install Dockerize
55
- RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
56
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
57
- && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
58
- && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
59
- && dockerize --version
60
-
61
- # Install RubyGems
62
- RUN gem update --system
63
- RUN gem install bundler
64
- ENV BUNDLE_SILENCE_ROOT_WARNING 1
65
-
66
- RUN mkdir /app
67
- WORKDIR /app
68
-
69
- CMD ["/bin/sh"]
@@ -1,69 +0,0 @@
1
- # Last version: https://github.com/docker-library/ruby/blob/c387c6c3a2505060514e31c247cb37d22c944e55/2.0/Dockerfile
2
- FROM ruby:2.0.0
3
-
4
- # Make apt non-interactive
5
- RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
- && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
-
8
- ENV DEBIAN_FRONTEND=noninteractive
9
-
10
- # Install required packages
11
- RUN set -ex; \
12
- apt-get update; \
13
- mkdir -p /usr/share/man/man1; \
14
- apt-get install -y --no-install-recommends \
15
- git mercurial xvfb \
16
- locales sudo openssh-client ca-certificates tar gzip parallel \
17
- net-tools netcat unzip zip bzip2 gnupg curl wget \
18
- tzdata rsync vim; \
19
- rm -rf /var/lib/apt/lists/*;
20
-
21
- # Set timezone to UTC by default
22
- RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
23
-
24
- # Set language
25
- RUN locale-gen en_US.UTF-8
26
- ENV LANG en_US.UTF-8
27
- ENV LANGUAGE en_US:en
28
-
29
- # Install jq
30
- RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
31
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
32
- && chmod +x /usr/bin/jq \
33
- && jq --version
34
-
35
- # Install Docker
36
- RUN set -ex \
37
- && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
38
- && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
39
- && echo Docker URL: $DOCKER_URL \
40
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
41
- && ls -lha /tmp/docker.tgz \
42
- && tar -xz -C /tmp -f /tmp/docker.tgz \
43
- && mv /tmp/docker/* /usr/bin \
44
- && rm -rf /tmp/docker /tmp/docker.tgz \
45
- && which docker \
46
- && (docker version || true)
47
-
48
- # Install Docker Compose
49
- RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
50
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
51
- && chmod +x /usr/bin/docker-compose \
52
- && docker-compose version
53
-
54
- # Install Dockerize
55
- RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
56
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
57
- && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
58
- && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
59
- && dockerize --version
60
-
61
- # Install RubyGems
62
- RUN gem update --system
63
- RUN gem install bundler
64
- ENV BUNDLE_SILENCE_ROOT_WARNING 1
65
-
66
- RUN mkdir /app
67
- WORKDIR /app
68
-
69
- CMD ["/bin/sh"]
@@ -1,69 +0,0 @@
1
- # Last version: https://github.com/docker-library/ruby/blob/99def14400fcd612782367830836dfcbc10c8c50/2.1/Dockerfile
2
- FROM ruby:2.1.10
3
-
4
- # Make apt non-interactive
5
- RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
- && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
-
8
- ENV DEBIAN_FRONTEND=noninteractive
9
-
10
- # Install required packages
11
- RUN set -ex; \
12
- apt-get update; \
13
- mkdir -p /usr/share/man/man1; \
14
- apt-get install -y --no-install-recommends \
15
- git mercurial xvfb \
16
- locales sudo openssh-client ca-certificates tar gzip parallel \
17
- net-tools netcat unzip zip bzip2 gnupg curl wget \
18
- tzdata rsync vim; \
19
- rm -rf /var/lib/apt/lists/*;
20
-
21
- # Set timezone to UTC by default
22
- RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
23
-
24
- # Set language
25
- RUN locale-gen en_US.UTF-8
26
- ENV LANG en_US.UTF-8
27
- ENV LANGUAGE en_US:en
28
-
29
- # Install jq
30
- RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
31
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
32
- && chmod +x /usr/bin/jq \
33
- && jq --version
34
-
35
- # Install Docker
36
- RUN set -ex \
37
- && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
38
- && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
39
- && echo Docker URL: $DOCKER_URL \
40
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
41
- && ls -lha /tmp/docker.tgz \
42
- && tar -xz -C /tmp -f /tmp/docker.tgz \
43
- && mv /tmp/docker/* /usr/bin \
44
- && rm -rf /tmp/docker /tmp/docker.tgz \
45
- && which docker \
46
- && (docker version || true)
47
-
48
- # Install Docker Compose
49
- RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
50
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
51
- && chmod +x /usr/bin/docker-compose \
52
- && docker-compose version
53
-
54
- # Install Dockerize
55
- RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
56
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
57
- && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
58
- && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
59
- && dockerize --version
60
-
61
- # Install RubyGems
62
- RUN gem update --system
63
- RUN gem install bundler
64
- ENV BUNDLE_SILENCE_ROOT_WARNING 1
65
-
66
- RUN mkdir /app
67
- WORKDIR /app
68
-
69
- CMD ["/bin/sh"]
@@ -1,69 +0,0 @@
1
- # Last version: https://github.com/docker-library/ruby/blob/395cce4eba52917eb9a40c72d50703a1ce9e1acd/2.2/jessie/Dockerfile
2
- FROM ruby:2.2.10
3
-
4
- # Make apt non-interactive
5
- RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
- && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
-
8
- ENV DEBIAN_FRONTEND=noninteractive
9
-
10
- # Install required packages
11
- RUN set -ex; \
12
- apt-get update; \
13
- mkdir -p /usr/share/man/man1; \
14
- apt-get install -y --no-install-recommends \
15
- git mercurial xvfb \
16
- locales sudo openssh-client ca-certificates tar gzip parallel \
17
- net-tools netcat unzip zip bzip2 gnupg curl wget \
18
- tzdata rsync vim; \
19
- rm -rf /var/lib/apt/lists/*;
20
-
21
- # Set timezone to UTC by default
22
- RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
23
-
24
- # Set language
25
- RUN locale-gen en_US.UTF-8
26
- ENV LANG en_US.UTF-8
27
- ENV LANGUAGE en_US:en
28
-
29
- # Install jq
30
- RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
31
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
32
- && chmod +x /usr/bin/jq \
33
- && jq --version
34
-
35
- # Install Docker
36
- RUN set -ex \
37
- && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
38
- && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
39
- && echo Docker URL: $DOCKER_URL \
40
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
41
- && ls -lha /tmp/docker.tgz \
42
- && tar -xz -C /tmp -f /tmp/docker.tgz \
43
- && mv /tmp/docker/* /usr/bin \
44
- && rm -rf /tmp/docker /tmp/docker.tgz \
45
- && which docker \
46
- && (docker version || true)
47
-
48
- # Install Docker Compose
49
- RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
50
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
51
- && chmod +x /usr/bin/docker-compose \
52
- && docker-compose version
53
-
54
- # Install Dockerize
55
- RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
56
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
57
- && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
58
- && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
59
- && dockerize --version
60
-
61
- # Install RubyGems
62
- RUN gem update --system
63
- RUN gem install bundler
64
- ENV BUNDLE_SILENCE_ROOT_WARNING 1
65
-
66
- RUN mkdir /app
67
- WORKDIR /app
68
-
69
- CMD ["/bin/sh"]
@@ -1,73 +0,0 @@
1
- # Current version: https://github.com/docker-library/ruby/blob/699a04311386ecc98ca242fc9bdee17fb4008863/2.3/stretch/Dockerfile
2
- FROM ruby:2.3.7
3
-
4
- # Make apt non-interactive
5
- RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
- && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
-
8
- ENV DEBIAN_FRONTEND=noninteractive
9
-
10
- # Install required packages
11
- RUN set -ex; \
12
- apt-get update; \
13
- mkdir -p /usr/share/man/man1; \
14
- apt-get install -y --no-install-recommends \
15
- git mercurial xvfb \
16
- locales sudo openssh-client ca-certificates tar gzip parallel \
17
- net-tools netcat unzip zip bzip2 gnupg curl wget \
18
- tzdata rsync vim; \
19
- rm -rf /var/lib/apt/lists/*;
20
-
21
- # Set timezone to UTC by default
22
- RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
23
-
24
- # Set language
25
- RUN locale-gen en_US.UTF-8
26
- ENV LANG en_US.UTF-8
27
- ENV LANGUAGE en_US:en
28
-
29
- # Install jq
30
- RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
31
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
32
- && chmod +x /usr/bin/jq \
33
- && jq --version
34
-
35
- # Install Docker
36
- RUN set -ex \
37
- && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
38
- && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
39
- && echo Docker URL: $DOCKER_URL \
40
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
41
- && ls -lha /tmp/docker.tgz \
42
- && tar -xz -C /tmp -f /tmp/docker.tgz \
43
- && mv /tmp/docker/* /usr/bin \
44
- && rm -rf /tmp/docker /tmp/docker.tgz \
45
- && which docker \
46
- && (docker version || true)
47
-
48
- # Install Docker Compose
49
- RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
50
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
51
- && chmod +x /usr/bin/docker-compose \
52
- && docker-compose version
53
-
54
- # Install Dockerize
55
- RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
56
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
57
- && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
58
- && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
59
- && dockerize --version
60
-
61
- # Install RubyGems
62
- RUN gem update --system
63
- RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
64
-
65
- # Install RubyGems
66
- RUN gem update --system
67
- RUN gem install bundler
68
- ENV BUNDLE_SILENCE_ROOT_WARNING 1
69
-
70
- RUN mkdir /app
71
- WORKDIR /app
72
-
73
- CMD ["/bin/sh"]
@@ -1,73 +0,0 @@
1
- # Current version: https://github.com/docker-library/ruby/blob/699a04311386ecc98ca242fc9bdee17fb4008863/2.4/stretch/Dockerfile
2
- FROM ruby:2.4.4
3
-
4
- # Make apt non-interactive
5
- RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
- && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
-
8
- ENV DEBIAN_FRONTEND=noninteractive
9
-
10
- # Install required packages
11
- RUN set -ex; \
12
- apt-get update; \
13
- mkdir -p /usr/share/man/man1; \
14
- apt-get install -y --no-install-recommends \
15
- git mercurial xvfb \
16
- locales sudo openssh-client ca-certificates tar gzip parallel \
17
- net-tools netcat unzip zip bzip2 gnupg curl wget \
18
- tzdata rsync vim; \
19
- rm -rf /var/lib/apt/lists/*;
20
-
21
- # Set timezone to UTC by default
22
- RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
23
-
24
- # Set language
25
- RUN locale-gen en_US.UTF-8
26
- ENV LANG en_US.UTF-8
27
- ENV LANGUAGE en_US:en
28
-
29
- # Install jq
30
- RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
31
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
32
- && chmod +x /usr/bin/jq \
33
- && jq --version
34
-
35
- # Install Docker
36
- RUN set -ex \
37
- && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
38
- && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
39
- && echo Docker URL: $DOCKER_URL \
40
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
41
- && ls -lha /tmp/docker.tgz \
42
- && tar -xz -C /tmp -f /tmp/docker.tgz \
43
- && mv /tmp/docker/* /usr/bin \
44
- && rm -rf /tmp/docker /tmp/docker.tgz \
45
- && which docker \
46
- && (docker version || true)
47
-
48
- # Install Docker Compose
49
- RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
50
- && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
51
- && chmod +x /usr/bin/docker-compose \
52
- && docker-compose version
53
-
54
- # Install Dockerize
55
- RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
56
- && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
57
- && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
58
- && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
59
- && dockerize --version
60
-
61
- # Install RubyGems
62
- RUN gem update --system
63
- RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
64
-
65
- # Install RubyGems
66
- RUN gem update --system
67
- RUN gem install bundler
68
- ENV BUNDLE_SILENCE_ROOT_WARNING 1
69
-
70
- RUN mkdir /app
71
- WORKDIR /app
72
-
73
- CMD ["/bin/sh"]
@@ -1,77 +0,0 @@
1
- module Datadog
2
- module Contrib
3
- module Rails
4
- # Instrument ActiveController processing
5
- module ActionControllerPatch
6
- def self.included(base)
7
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0.0')
8
- base.send(:prepend, ProcessActionPatch)
9
- else
10
- base.class_eval do
11
- alias_method :process_action_without_datadog, :process_action
12
-
13
- include ProcessActionPatch
14
- end
15
- end
16
- end
17
-
18
- # Compatibility module for Ruby versions not supporting #prepend
19
- module ProcessActionCompatibilityPatch
20
- def process_action(*args)
21
- process_action_without_datadog(*args)
22
- end
23
- end
24
-
25
- # ActionController patch
26
- module ProcessActionPatch
27
- # compatibility module for Ruby versions not supporting #prepend
28
- include ProcessActionCompatibilityPatch unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0.0')
29
-
30
- def process_action(*args)
31
- # mutable payload with a tracing context that is used in two different
32
- # signals; it propagates the request span so that it can be finished
33
- # no matter what
34
- payload = {
35
- controller: self.class,
36
- action: action_name,
37
- headers: {
38
- # The exception this controller was given in the request,
39
- # which is typical if the controller is configured to handle exceptions.
40
- request_exception: request.headers['action_dispatch.exception']
41
- },
42
- tracing_context: {}
43
- }
44
-
45
- begin
46
- # process and catch request exceptions
47
- Datadog::Contrib::Rails::ActionController.start_processing(payload)
48
- result = super(*args)
49
- status = datadog_response_status
50
- payload[:status] = status unless status.nil?
51
- result
52
- # rubocop:disable Lint/RescueException
53
- rescue Exception => e
54
- payload[:exception] = [e.class.name, e.message]
55
- payload[:exception_object] = e
56
- raise e
57
- end
58
- # rubocop:enable Lint/RescueException
59
- ensure
60
- Datadog::Contrib::Rails::ActionController.finish_processing(payload)
61
- end
62
-
63
- def datadog_response_status
64
- case response
65
- when ActionDispatch::Response
66
- response.status
67
- when Array
68
- # Likely a Rack response array: first element is the status.
69
- status = response.first
70
- status.class <= Integer ? status : nil
71
- end
72
- end
73
- end
74
- end
75
- end
76
- end
77
- end