appoptics_apm 4.2.3 → 4.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +5 -0
  3. data/.travis.yml +15 -12
  4. data/Gemfile +0 -1
  5. data/README.md +7 -38
  6. data/Rakefile +17 -1
  7. data/appoptics_apm.gemspec +2 -0
  8. data/{build_gems.sh → build_gem.sh} +1 -1
  9. data/build_gem_upload_to_packagecloud.sh +15 -0
  10. data/examples/SDK/01_basic_tracing.rb +1 -1
  11. data/ext/oboe_metal/src/VERSION +1 -1
  12. data/ext/oboe_metal/src/bson/bson.h +1 -2
  13. data/ext/oboe_metal/src/bson/platform_hacks.h +4 -4
  14. data/lib/appoptics_apm.rb +28 -30
  15. data/lib/appoptics_apm/api/logging.rb +13 -27
  16. data/lib/appoptics_apm/api/metrics.rb +25 -11
  17. data/lib/appoptics_apm/api/profiling.rb +6 -11
  18. data/lib/appoptics_apm/api/tracing.rb +3 -24
  19. data/lib/appoptics_apm/base.rb +7 -32
  20. data/lib/appoptics_apm/config.rb +26 -4
  21. data/lib/appoptics_apm/frameworks/grape.rb +10 -8
  22. data/lib/appoptics_apm/frameworks/padrino.rb +3 -0
  23. data/lib/appoptics_apm/frameworks/rails.rb +20 -42
  24. data/lib/appoptics_apm/frameworks/rails/inst/action_controller.rb +4 -6
  25. data/lib/appoptics_apm/frameworks/rails/inst/action_controller4.rb +1 -1
  26. data/lib/appoptics_apm/frameworks/rails/inst/action_controller5.rb +1 -1
  27. data/lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb +1 -1
  28. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/utils.rb +1 -9
  29. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/utils5x.rb +1 -1
  30. data/lib/appoptics_apm/frameworks/sinatra.rb +4 -1
  31. data/lib/appoptics_apm/inst/bunny-client.rb +16 -18
  32. data/lib/appoptics_apm/inst/memcached.rb +6 -10
  33. data/lib/appoptics_apm/inst/moped.rb +1 -1
  34. data/lib/appoptics_apm/inst/rack.rb +13 -15
  35. data/lib/appoptics_apm/inst/sidekiq-worker.rb +1 -1
  36. data/lib/appoptics_apm/inst/typhoeus.rb +4 -2
  37. data/lib/appoptics_apm/loading.rb +1 -1
  38. data/lib/appoptics_apm/sdk.rb +48 -50
  39. data/lib/appoptics_apm/version.rb +1 -1
  40. data/lib/appoptics_apm/xtrace.rb +1 -1
  41. data/lib/oboe_metal.rb +13 -11
  42. data/lib/rails/generators/appoptics_apm/templates/appoptics_apm_initializer.rb +45 -7
  43. metadata +5 -16
  44. data/.codeclimate.yml +0 -43
  45. data/Dockerfile +0 -41
  46. data/Dockerfile_alpine +0 -66
  47. data/Dockerfile_test +0 -73
  48. data/config/initializers/.keep +0 -0
  49. data/docker-compose.yml +0 -95
  50. data/ext/oboe_metal/tests/test.rb +0 -11
  51. data/lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb +0 -61
  52. data/lib/appoptics_apm/frameworks/rails/inst/action_view_2x.rb +0 -56
  53. data/ruby_setup.sh +0 -49
  54. data/run_docker_build_gem_upload_to_packagecloud.sh +0 -20
  55. data/run_tests_docker.rb +0 -38
@@ -8,6 +8,47 @@
8
8
 
9
9
  if defined?(AppOpticsAPM::Config)
10
10
 
11
+ # :service_key, :hostname_alias, and :debug_level are startup settings and can't be changed afterwards.
12
+ #
13
+ # Set APPOPTICS_SERVICE_KEY
14
+ # This Setting will be overridden if APPOPTICS_SERVICE_KEY is set as an environment variable.
15
+ # This is a required setting. If the service key is not set here it needs to be set as environment variable.
16
+ #
17
+ # The service key is a combination of the API token plus a service name.
18
+ # E.g.: 0123456789abcde0123456789abcde0123456789abcde0123456789abcde1234:my_service
19
+ #
20
+ # AppOpticsAPM::Config[:service_key] = '0123456789abcde0123456789abcde0123456789abcde0123456789abcde1234:my_service'
21
+
22
+ #
23
+ # Set APPOPTICS_HOSTNAME_ALIAS
24
+ # This Setting will be overridden if APPOPTICS_HOSTNAME_ALIAS is set as an environment variable
25
+ #
26
+ # AppOpticsAPM::Config[:hostname_alias] = 'alias_name'
27
+
28
+ #
29
+ # Set APPOPTICS_DEBUG_LEVEL
30
+ # This Setting will be overridden if APPOPTICS_DEBUG_LEVEL is set as an environment variable
31
+ #
32
+ # It sets the log level and takes the following values:
33
+ ## 0 fatal, 1 error, 2 warning, 3 info (the default), 4 debug low, 5 debug medium, 6 debug high.
34
+ #
35
+ #
36
+ AppOpticsAPM::Config[:debug_level] = 3
37
+ #
38
+ # :debug_level will be used in the c-extension of the gem and also mapped to the
39
+ # Ruby logger as FATAL, ERROR, WARN, INFO, or DEBUG
40
+ # The Ruby logger can afterwards be changed to a different level as follows:
41
+ # AppOpticsAPM.logger.level = Logger::INFO
42
+
43
+ #
44
+ # Set APPOPTICS_GEM_VERBOSE
45
+ # This Setting will be overridden if APPOPTICS_GEM_VERBOSE is set as an environment variable
46
+ #
47
+ # On startup the components that are being instrumented will be reported if this is set to true.
48
+ # If true and the log level is 4 or higher this may create extra debug log messages
49
+ #
50
+ AppOpticsAPM::Config[:verbose] = false
51
+
11
52
  #
12
53
  # Turn tracing on or off
13
54
  #
@@ -17,11 +58,6 @@ if defined?(AppOpticsAPM::Config)
17
58
  #
18
59
  AppOpticsAPM::Config[:tracing_mode] = :always
19
60
 
20
- #
21
- # Verbose output of instrumentation initialization
22
- #
23
- AppOpticsAPM::Config[:verbose] = ENV.key?('APPOPTICS_GEM_VERBOSE') && ENV['APPOPTICS_GEM_VERBOSE'] == 'true' ? true : false
24
-
25
61
  #
26
62
  # Prepend domain to transaction name
27
63
  #
@@ -92,7 +128,7 @@ if defined?(AppOpticsAPM::Config)
92
128
  # In Rails, raised exceptions with rescue handlers via
93
129
  # <tt>rescue_from</tt> are not reported to the AppOptics
94
130
  # dashboard by default. Setting this value to true will
95
- # report all raised exception regardless.
131
+ # report all raised exceptions regardless.
96
132
  #
97
133
  AppOpticsAPM::Config[:report_rescued_errors] = false
98
134
  #
@@ -122,7 +158,9 @@ if defined?(AppOpticsAPM::Config)
122
158
  #
123
159
  # If you're having trouble with one of the instrumentation libraries, they
124
160
  # can be individually disabled here by setting the :enabled
125
- # value to false:
161
+ # value to false.
162
+ #
163
+ # :enabled settings are read on startup and can't be changed afterwards
126
164
  #
127
165
  AppOpticsAPM::Config[:action_controller][:enabled] = true
128
166
  AppOpticsAPM::Config[:action_controller_api][:enabled] = true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appoptics_apm
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.3
4
+ version: 4.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maia Engeli
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-07-10 00:00:00.000000000 Z
13
+ date: 2018-09-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -112,7 +112,6 @@ extensions:
112
112
  extra_rdoc_files:
113
113
  - LICENSE
114
114
  files:
115
- - ".codeclimate.yml"
116
115
  - ".dockerignore"
117
116
  - ".gitignore"
118
117
  - ".rubocop.yml"
@@ -120,9 +119,6 @@ files:
120
119
  - ".yardopts"
121
120
  - CHANGELOG.md
122
121
  - CONFIG.md
123
- - Dockerfile
124
- - Dockerfile_alpine
125
- - Dockerfile_test
126
122
  - Gemfile
127
123
  - LICENSE
128
124
  - README.md
@@ -130,9 +126,8 @@ files:
130
126
  - Vagrantfile
131
127
  - appoptics_apm.gemspec
132
128
  - bin/appoptics_apm_config
133
- - build_gems.sh
134
- - config/initializers/.keep
135
- - docker-compose.yml
129
+ - build_gem.sh
130
+ - build_gem_upload_to_packagecloud.sh
136
131
  - examples/SDK/01_basic_tracing.rb
137
132
  - examples/carrying_context.rb
138
133
  - ext/oboe_metal/extconf.rb
@@ -145,7 +140,6 @@ files:
145
140
  - ext/oboe_metal/src/oboe.hpp
146
141
  - ext/oboe_metal/src/oboe_debug.h
147
142
  - ext/oboe_metal/src/oboe_wrap.cxx
148
- - ext/oboe_metal/tests/test.rb
149
143
  - init.rb
150
144
  - lib/appoptics_apm.rb
151
145
  - lib/appoptics_apm/api.rb
@@ -163,13 +157,11 @@ files:
163
157
  - lib/appoptics_apm/frameworks/padrino/templates.rb
164
158
  - lib/appoptics_apm/frameworks/rails.rb
165
159
  - lib/appoptics_apm/frameworks/rails/inst/action_controller.rb
166
- - lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
167
160
  - lib/appoptics_apm/frameworks/rails/inst/action_controller3.rb
168
161
  - lib/appoptics_apm/frameworks/rails/inst/action_controller4.rb
169
162
  - lib/appoptics_apm/frameworks/rails/inst/action_controller5.rb
170
163
  - lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
171
164
  - lib/appoptics_apm/frameworks/rails/inst/action_view.rb
172
- - lib/appoptics_apm/frameworks/rails/inst/action_view_2x.rb
173
165
  - lib/appoptics_apm/frameworks/rails/inst/action_view_30.rb
174
166
  - lib/appoptics_apm/frameworks/rails/inst/active_record.rb
175
167
  - lib/appoptics_apm/frameworks/rails/inst/connection_adapters/mysql.rb
@@ -225,9 +217,6 @@ files:
225
217
  - lib/oboe_metal.rb
226
218
  - lib/rails/generators/appoptics_apm/install_generator.rb
227
219
  - lib/rails/generators/appoptics_apm/templates/appoptics_apm_initializer.rb
228
- - ruby_setup.sh
229
- - run_docker_build_gem_upload_to_packagecloud.sh
230
- - run_tests_docker.rb
231
220
  - yardoc_frontpage.md
232
221
  homepage: https://www.appoptics.com/
233
222
  licenses:
@@ -249,7 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
249
238
  version: '0'
250
239
  requirements: []
251
240
  rubyforge_project:
252
- rubygems_version: 2.5.1
241
+ rubygems_version: 2.7.4
253
242
  signing_key:
254
243
  specification_version: 4
255
244
  summary: AppOptics APM performance instrumentation gem for Ruby
@@ -1,43 +0,0 @@
1
- ---
2
- engines:
3
- duplication:
4
- enabled: true
5
- config:
6
- languages:
7
- - ruby
8
- - javascript
9
- - python
10
- - php
11
- checks:
12
- Similar code:
13
- enabled: false
14
- fixme:
15
- enabled: true
16
- rubocop:
17
- enabled: true
18
- checks:
19
- Rubocop/Metrics/AbcSize:
20
- enabled: false
21
- Rubocop/Style/ConditionalAssignment:
22
- enabled: false
23
- Rubocop/Metrics/MethodLength:
24
- enabled: false
25
- Rubocop/Metrics/ModuleLength:
26
- enabled: false
27
- Rubocop/Metrics/LineLength:
28
- enabled: false
29
- Rubocop/Lint/EnsureReturn:
30
- enabled: false
31
- ratings:
32
- paths:
33
- - "**.inc"
34
- - "**.js"
35
- - "**.jsx"
36
- - "**.module"
37
- - "**.php"
38
- - "**.py"
39
- - "**.rb"
40
- exclude_paths:
41
- - test/
42
- - examples/
43
- - ext/oboe_metal/tests/
data/Dockerfile DELETED
@@ -1,41 +0,0 @@
1
- FROM ubuntu:16.04
2
-
3
- # Use this Dockerfile to create the gem
4
- # > docker build -f Dockerfile -t buildgem .
5
- # > docker run --rm -v `pwd`:/code/ruby-appoptics buildgem bash -l -c 'cd /code/ruby-appoptics && ./build_gems.sh'
6
-
7
- # install OS packages
8
- RUN apt-get update \
9
- && apt-get install -y --no-install-recommends \
10
- build-essential \
11
- curl \
12
- git-core \
13
- libpcre3-dev \
14
- libreadline-dev \
15
- libssl-dev \
16
- openjdk-8-jdk \
17
- zlib1g-dev \
18
- less \
19
- && rm -rf /var/lib/apt/lists/*
20
-
21
- # rbenv setup
22
- # use rbenv-default-gems to automatically install bundler for each ruby version
23
- RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv \
24
- && git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build \
25
- && git clone https://github.com/rbenv/rbenv-default-gems.git ~/.rbenv/plugins/rbenv-default-gems \
26
- && echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile \
27
- && echo 'eval "$(rbenv init -)"' >> ~/.profile \
28
- && echo 'bundler' > ~/.rbenv/default-gems
29
-
30
- # install rubies to build our gem against
31
- RUN . ~/.profile \
32
- && rbenv install 2.3.1
33
- # && rbenv install jruby-9.0.5.0
34
-
35
- # install swig 3.0.8
36
- RUN curl -SL http://kent.dl.sourceforge.net/project/swig/swig/swig-3.0.8/swig-3.0.8.tar.gz \
37
- | tar xzC /tmp \
38
- && cd /tmp/swig-3.0.8 \
39
- && ./configure && make && make install \
40
- && cd \
41
- && rm -rf /tmp/swig-3.0.8
@@ -1,66 +0,0 @@
1
- FROM ruby:2.4-alpine3.7
2
-
3
- # Use this Dockerfile to create the gem
4
- # > docker build -f Dockerfile_alpine -t ruby_alpine .
5
- # > docker run --rm -v `pwd`:/code/ruby-appoptics ruby_alpine /bin/bash -l -c 'cd /code/ruby-appoptics'
6
-
7
- # install OS packages
8
- RUN apk update
9
- RUN apk add --upgrade \
10
- bash \
11
- build-base \
12
- curl \
13
- curl-dev \
14
- linux-headers \
15
- git \
16
- pcre \
17
- pcre-dev \
18
- readline-dev \
19
- openjdk8 \
20
- zlib-dev \
21
- less \
22
- swig \
23
- && rm -rf /var/lib/apt/lists/*
24
-
25
- # rbenv setup
26
- # use rbenv-default-gems to automatically install bundler for each ruby version
27
- RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv \
28
- && git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build \
29
- && git clone https://github.com/rbenv/rbenv-default-gems.git ~/.rbenv/plugins/rbenv-default-gems \
30
- && echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile \
31
- && echo 'eval "$(rbenv init -)"' >> ~/.profile \
32
- && echo 'bundler' > ~/.rbenv/default-gems
33
-
34
- # install rubies to build our gem against
35
- RUN source ~/.profile \
36
- && rbenv install 2.3.1 \
37
- && rbenv install 2.4.1 \
38
- # && rbenv install jruby-9.0.5.0
39
-
40
- # install swig 3.0.8
41
- RUN curl -SL http://kent.dl.sourceforge.net/project/swig/swig/swig-3.0.8/swig-3.0.8.tar.gz \
42
- | tar xzC /tmp \
43
- && cd /tmp/swig-3.0.8 \
44
- && ./configure && make && make install \
45
- && cd \
46
- && rm -rf /tmp/swig-3.0.8
47
-
48
- RUN apk add --upgrade \
49
- redis \
50
- memcached \
51
- postgresql \
52
- openrc \
53
- && rc-service postgresql start \
54
- && echo "psql --command \"CREATE USER docker WITH SUPERUSER PASSWORD 'docker';\"" >> /tmp/config \
55
- && echo "createdb -O docker travis_ci_test" >> /tmp/config \
56
- && su postgres -c "bash /tmp/config" \
57
- && rm -f /tmp/config
58
-
59
- RUN apk add --update mysql-client mysql mariadb
60
-
61
- ENV PATH="/root/.rbenv/bin:/root/.rbenv/shims:$PATH"
62
- ENV RUBY_ENV=test
63
- ENV DOCKER_PSQL_PASS=docker
64
- ENV APPOPTICS_OS_ARCH=alpine-x86_64
65
-
66
- CMD bash
@@ -1,73 +0,0 @@
1
- FROM ubuntu:16.04
2
-
3
- # to use with ./run_tests_docker.rb
4
- # docker build -f Dockerfile_test -t ruby_appoptics_apm .
5
-
6
- # install OS packages
7
- RUN apt-get update \
8
- && apt-get install -y --no-install-recommends \
9
- build-essential \
10
- apt-utils \
11
- curl \
12
- git-core \
13
- libpcre3-dev \
14
- libreadline-dev \
15
- libsasl2-dev \
16
- libssl-dev \
17
- openjdk-8-jdk \
18
- zlib1g-dev \
19
- libcurl4-gnutls-dev \
20
- libmysqlclient-dev \
21
- libpq-dev \
22
- vim \
23
- less \
24
- tree \
25
- psmisc \
26
- && rm -rf /var/lib/apt/lists/*
27
-
28
- # rbenv setup
29
- # use rbenv-default-gems to automatically install bundler for each ruby version
30
- RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv \
31
- && git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build \
32
- && git clone https://github.com/rbenv/rbenv-default-gems.git ~/.rbenv/plugins/rbenv-default-gems \
33
- && echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile \
34
- && echo 'eval "$(rbenv init -)"' >> ~/.profile \
35
- && echo 'bundler' > ~/.rbenv/default-gems
36
-
37
- # install rubies to build our gem against
38
- RUN . ~/.profile \
39
- && rbenv install 2.3.6 \
40
- && rbenv install 2.4.3 \
41
- && rbenv install 2.4.4 \
42
- && rbenv install 2.5.1
43
- # && rbenv install jruby-9.1.16.0
44
-
45
- # install swig 3.0.8
46
- RUN curl -SL http://kent.dl.sourceforge.net/project/swig/swig/swig-3.0.8/swig-3.0.8.tar.gz \
47
- | tar xzC /tmp \
48
- && cd /tmp/swig-3.0.8 \
49
- && ./configure && make && make install \
50
- && cd \
51
- && rm -rf /tmp/swig-3.0.8
52
-
53
- # install postgres, redis, and memcached
54
- RUN apt-get update \
55
- && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
56
- redis-server \
57
- memcached \
58
- postgresql \
59
- postgresql-contrib \
60
- && service postgresql start \
61
- && echo "psql --command \"CREATE USER docker WITH SUPERUSER PASSWORD 'docker';\"" >> /tmp/config \
62
- && echo "createdb -O docker travis_ci_test" >> /tmp/config \
63
- && su postgres -c "bash /tmp/config" \
64
- && rm -f /tmp/config
65
-
66
- RUN apt-get update && \
67
- apt-get -y install mysql-client libmysqlclient-dev
68
-
69
- ENV PATH="/root/.rbenv/bin:/root/.rbenv/shims:$PATH"
70
- ENV RUBY_ENV=test
71
- ENV DOCKER_PSQL_PASS=docker
72
- ENV APPOPTICS_TOKEN_BUCKET_CAPACITY=1000
73
- ENV APPOPTICS_TOKEN_BUCKET_RATE=1000
File without changes
@@ -1,95 +0,0 @@
1
- version: "2"
2
-
3
- #########################################################################################################
4
- #
5
- # to start the services:
6
- # > docker-compose up -d
7
- # ('ruby_appoptics' and 'wait' will exit)
8
- #
9
- # to run some ruby tests:
10
- # > docker-compose run --service-ports ruby_appoptics_apm /code/ruby-appoptics_apm/ruby_setup.sh 2.3.6 gemfiles/rails42.gemfile
11
- #
12
- ########################################################################################################
13
-
14
- services:
15
- ruby_appoptics_apm:
16
- container_name: ruby_appoptics_apm
17
- image: ruby_appoptics_apm
18
- build:
19
- context: .
20
- dockerfile: ./Dockerfile_test
21
- cpu_quota: 100000 # 1 cpu, assumes cpu_period of 1 second
22
- mem_limit: 1G
23
- volumes:
24
- - .:/code/ruby-appoptics_apm
25
- depends_on:
26
- - wait
27
- links:
28
- - wait
29
- environment:
30
- - APPOPTICS_RABBITMQ_SERVER=rabbitmq
31
- - DOCKER_MYSQL_PASS=admin
32
- - MYSQL_ALLOW_EMPTY_PASSWORD=yes
33
- - MYSQL_ROOT_PASSWORD=admin
34
- - MYSQL_HOST=mysql
35
- - APPOPTICS_MONGO_SERVER=mongo
36
-
37
- # ruby_appoptics_apm_alpine:
38
- # container_name: ruby_appoptics_apm_alpine
39
- # image: ruby_alpine
40
- # build:
41
- # context: .
42
- # dockerfile: ./Dockerfile_alpine
43
- # cpu_quota: 100000 # 1 cpu, assumes cpu_period of 1 second
44
- # mem_limit: 1G
45
- # volumes:
46
- # - .:/code/ruby-appoptics_apm
47
- # depends_on:
48
- # - wait
49
- # links:
50
- # - wait
51
- # environment:
52
- # - APPOPTICS_RABBITMQ_SERVER=rabbitmq
53
- # - DOCKER_MYSQL_PASS=admin
54
- # - MYSQL_ALLOW_EMPTY_PASSWORD=yes
55
- # - MYSQL_ROOT_PASSWORD=admin
56
- # - MYSQL_HOST=mysql
57
- # - APPOPTICS_MONGO_SERVER=mongo
58
-
59
- rabbitmq:
60
- container_name: rabbitmq
61
- image: rabbitmq:3-management
62
- ports:
63
- - "8080:15672"
64
- - "5672:5672"
65
- - "5671:5671"
66
-
67
- mysql:
68
- container_name: mysql
69
- image: mysql:5.7.13
70
- environment:
71
- - MYSQL_ALLOW_EMPTY_PASSWORD=yes
72
- - MYSQL_ROOT_PASSWORD=admin
73
- ports:
74
- - "3306:3306"
75
-
76
- mongo:
77
- container_name: mongo
78
- image: mongo:3.4
79
- ports:
80
- - "27017:27017"
81
-
82
- wait:
83
- container_name: wait
84
- image: waisbrot/wait
85
- depends_on:
86
- - rabbitmq
87
- - mysql
88
- - mongo
89
- links:
90
- - rabbitmq
91
- - mysql
92
- - mongo
93
- environment:
94
- - TARGETS=mysql:3306;rabbitmq:5672;mongo:27017
95
-