Skip to content

Commit 452041f

Browse files
committed
Add and configure OpenTelemetry for tracing
This will auto-hook into Rails and other libraries to produce traces. No explicit trace spans are created yet, only automatic instrumentation. The only explicit configuration is to avoid tracing the /up endpoint used for health checks. This prevents a large number of unhelpful traces from being created. All other configuration is provided through environment variables, specified in `forms-deploy`. We also disable logging for Rake tasks to avoid cluttering output when running tasks like database migrations. Finally, OpenTelemetry is only enabled if the `ENABLE_OTEL` environment variable is set to "true". This allows us to control whether tracing is active without changing the code. Again, this is configured in `forms-deploy` when deploying to different environments.
1 parent 9f9af97 commit 452041f

File tree

3 files changed

+284
-1
lines changed

3 files changed

+284
-1
lines changed

Gemfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,9 @@ group :test do
117117
# For validating against the JSON schema for form submissions
118118
gem "json_schemer"
119119
end
120+
121+
gem "opentelemetry-sdk", "~> 1.10"
122+
gem "opentelemetry-instrumentation-all", "~> 0.89.1"
123+
124+
gem "opentelemetry-exporter-otlp", "~> 0.31.1"
125+
gem "opentelemetry-propagator-xray", "~> 0.26.0"

Gemfile.lock

Lines changed: 266 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,29 @@ GEM
211211
raabro (~> 1.4)
212212
globalid (1.3.0)
213213
activesupport (>= 6.1)
214+
google-protobuf (4.33.2)
215+
bigdecimal
216+
rake (>= 13)
217+
google-protobuf (4.33.2-aarch64-linux-gnu)
218+
bigdecimal
219+
rake (>= 13)
220+
google-protobuf (4.33.2-aarch64-linux-musl)
221+
bigdecimal
222+
rake (>= 13)
223+
google-protobuf (4.33.2-arm64-darwin)
224+
bigdecimal
225+
rake (>= 13)
226+
google-protobuf (4.33.2-x86_64-darwin)
227+
bigdecimal
228+
rake (>= 13)
229+
google-protobuf (4.33.2-x86_64-linux-gnu)
230+
bigdecimal
231+
rake (>= 13)
232+
google-protobuf (4.33.2-x86_64-linux-musl)
233+
bigdecimal
234+
rake (>= 13)
235+
googleapis-common-protos-types (1.22.0)
236+
google-protobuf (~> 4.26)
214237
govuk-components (5.13.1)
215238
html-attributes-utils (~> 1.0.0, >= 1.0.0)
216239
pagy (>= 6, < 10)
@@ -309,6 +332,180 @@ GEM
309332
racc (~> 1.4)
310333
notifications-ruby-client (6.2.0)
311334
jwt (>= 1.5, < 3)
335+
opentelemetry-api (1.7.0)
336+
opentelemetry-common (0.23.0)
337+
opentelemetry-api (~> 1.0)
338+
opentelemetry-exporter-otlp (0.31.1)
339+
google-protobuf (>= 3.18)
340+
googleapis-common-protos-types (~> 1.3)
341+
opentelemetry-api (~> 1.1)
342+
opentelemetry-common (~> 0.20)
343+
opentelemetry-sdk (~> 1.10)
344+
opentelemetry-semantic_conventions
345+
opentelemetry-helpers-mysql (0.4.0)
346+
opentelemetry-api (~> 1.7)
347+
opentelemetry-common (~> 0.21)
348+
opentelemetry-helpers-sql (0.3.0)
349+
opentelemetry-api (~> 1.7)
350+
opentelemetry-helpers-sql-processor (0.3.1)
351+
opentelemetry-common (~> 0.21)
352+
opentelemetry-instrumentation-action_mailer (0.6.1)
353+
opentelemetry-instrumentation-active_support (~> 0.10)
354+
opentelemetry-instrumentation-action_pack (0.15.1)
355+
opentelemetry-instrumentation-rack (~> 0.29)
356+
opentelemetry-instrumentation-action_view (0.11.1)
357+
opentelemetry-instrumentation-active_support (~> 0.10)
358+
opentelemetry-instrumentation-active_job (0.10.1)
359+
opentelemetry-instrumentation-base (~> 0.25)
360+
opentelemetry-instrumentation-active_model_serializers (0.24.0)
361+
opentelemetry-instrumentation-active_support (>= 0.7.0)
362+
opentelemetry-instrumentation-active_record (0.11.1)
363+
opentelemetry-instrumentation-base (~> 0.25)
364+
opentelemetry-instrumentation-active_storage (0.3.1)
365+
opentelemetry-instrumentation-active_support (~> 0.10)
366+
opentelemetry-instrumentation-active_support (0.10.1)
367+
opentelemetry-instrumentation-base (~> 0.25)
368+
opentelemetry-instrumentation-all (0.89.1)
369+
opentelemetry-instrumentation-active_model_serializers (~> 0.24.0)
370+
opentelemetry-instrumentation-anthropic (~> 0.3.0)
371+
opentelemetry-instrumentation-aws_lambda (~> 0.6.0)
372+
opentelemetry-instrumentation-aws_sdk (~> 0.11.0)
373+
opentelemetry-instrumentation-bunny (~> 0.24.0)
374+
opentelemetry-instrumentation-concurrent_ruby (~> 0.24.0)
375+
opentelemetry-instrumentation-dalli (~> 0.29.0)
376+
opentelemetry-instrumentation-delayed_job (~> 0.25.1)
377+
opentelemetry-instrumentation-ethon (~> 0.26.0)
378+
opentelemetry-instrumentation-excon (~> 0.26.0)
379+
opentelemetry-instrumentation-faraday (~> 0.30.0)
380+
opentelemetry-instrumentation-grape (~> 0.5.0)
381+
opentelemetry-instrumentation-graphql (~> 0.31.1)
382+
opentelemetry-instrumentation-grpc (~> 0.4.1)
383+
opentelemetry-instrumentation-gruf (~> 0.5.0)
384+
opentelemetry-instrumentation-http (~> 0.27.0)
385+
opentelemetry-instrumentation-http_client (~> 0.26.0)
386+
opentelemetry-instrumentation-httpx (~> 0.5.0)
387+
opentelemetry-instrumentation-koala (~> 0.23.0)
388+
opentelemetry-instrumentation-lmdb (~> 0.25.0)
389+
opentelemetry-instrumentation-mongo (~> 0.25.0)
390+
opentelemetry-instrumentation-mysql2 (~> 0.32.1)
391+
opentelemetry-instrumentation-net_http (~> 0.26.0)
392+
opentelemetry-instrumentation-pg (~> 0.34.1)
393+
opentelemetry-instrumentation-que (~> 0.12.0)
394+
opentelemetry-instrumentation-racecar (~> 0.6.0)
395+
opentelemetry-instrumentation-rack (~> 0.29.0)
396+
opentelemetry-instrumentation-rails (~> 0.39.1)
397+
opentelemetry-instrumentation-rake (~> 0.5.0)
398+
opentelemetry-instrumentation-rdkafka (~> 0.9.0)
399+
opentelemetry-instrumentation-redis (~> 0.28.0)
400+
opentelemetry-instrumentation-resque (~> 0.8.0)
401+
opentelemetry-instrumentation-restclient (~> 0.26.0)
402+
opentelemetry-instrumentation-ruby_kafka (~> 0.24.0)
403+
opentelemetry-instrumentation-sidekiq (~> 0.28.1)
404+
opentelemetry-instrumentation-sinatra (~> 0.28.0)
405+
opentelemetry-instrumentation-trilogy (~> 0.65.1)
406+
opentelemetry-instrumentation-anthropic (0.3.0)
407+
opentelemetry-instrumentation-base (~> 0.25)
408+
opentelemetry-instrumentation-aws_lambda (0.6.0)
409+
opentelemetry-instrumentation-base (~> 0.25)
410+
opentelemetry-instrumentation-aws_sdk (0.11.0)
411+
opentelemetry-instrumentation-base (~> 0.25)
412+
opentelemetry-instrumentation-base (0.25.0)
413+
opentelemetry-api (~> 1.7)
414+
opentelemetry-common (~> 0.21)
415+
opentelemetry-registry (~> 0.1)
416+
opentelemetry-instrumentation-bunny (0.24.0)
417+
opentelemetry-instrumentation-base (~> 0.25)
418+
opentelemetry-instrumentation-concurrent_ruby (0.24.0)
419+
opentelemetry-instrumentation-base (~> 0.25)
420+
opentelemetry-instrumentation-dalli (0.29.0)
421+
opentelemetry-instrumentation-base (~> 0.25)
422+
opentelemetry-instrumentation-delayed_job (0.25.1)
423+
opentelemetry-instrumentation-base (~> 0.25)
424+
opentelemetry-instrumentation-ethon (0.26.0)
425+
opentelemetry-instrumentation-base (~> 0.25)
426+
opentelemetry-instrumentation-excon (0.26.1)
427+
opentelemetry-instrumentation-base (~> 0.25)
428+
opentelemetry-instrumentation-faraday (0.30.1)
429+
opentelemetry-instrumentation-base (~> 0.25)
430+
opentelemetry-instrumentation-grape (0.5.0)
431+
opentelemetry-instrumentation-rack (~> 0.29)
432+
opentelemetry-instrumentation-graphql (0.31.2)
433+
opentelemetry-instrumentation-base (~> 0.25)
434+
opentelemetry-instrumentation-grpc (0.4.1)
435+
opentelemetry-instrumentation-base (~> 0.25)
436+
opentelemetry-instrumentation-gruf (0.5.0)
437+
opentelemetry-instrumentation-base (~> 0.25)
438+
opentelemetry-instrumentation-http (0.27.1)
439+
opentelemetry-instrumentation-base (~> 0.25)
440+
opentelemetry-instrumentation-http_client (0.26.1)
441+
opentelemetry-instrumentation-base (~> 0.25)
442+
opentelemetry-instrumentation-httpx (0.5.1)
443+
opentelemetry-instrumentation-base (~> 0.25)
444+
opentelemetry-instrumentation-koala (0.23.0)
445+
opentelemetry-instrumentation-base (~> 0.25)
446+
opentelemetry-instrumentation-lmdb (0.25.0)
447+
opentelemetry-instrumentation-base (~> 0.25)
448+
opentelemetry-instrumentation-mongo (0.25.0)
449+
opentelemetry-instrumentation-base (~> 0.25)
450+
opentelemetry-instrumentation-mysql2 (0.32.1)
451+
opentelemetry-helpers-mysql
452+
opentelemetry-helpers-sql
453+
opentelemetry-helpers-sql-processor
454+
opentelemetry-instrumentation-base (~> 0.25)
455+
opentelemetry-instrumentation-net_http (0.26.1)
456+
opentelemetry-instrumentation-base (~> 0.25)
457+
opentelemetry-instrumentation-pg (0.34.1)
458+
opentelemetry-helpers-sql
459+
opentelemetry-helpers-sql-processor
460+
opentelemetry-instrumentation-base (~> 0.25)
461+
opentelemetry-instrumentation-que (0.12.0)
462+
opentelemetry-instrumentation-base (~> 0.25)
463+
opentelemetry-instrumentation-racecar (0.6.1)
464+
opentelemetry-instrumentation-base (~> 0.25)
465+
opentelemetry-instrumentation-rack (0.29.0)
466+
opentelemetry-instrumentation-base (~> 0.25)
467+
opentelemetry-instrumentation-rails (0.39.1)
468+
opentelemetry-instrumentation-action_mailer (~> 0.6)
469+
opentelemetry-instrumentation-action_pack (~> 0.15)
470+
opentelemetry-instrumentation-action_view (~> 0.11)
471+
opentelemetry-instrumentation-active_job (~> 0.10)
472+
opentelemetry-instrumentation-active_record (~> 0.11)
473+
opentelemetry-instrumentation-active_storage (~> 0.3)
474+
opentelemetry-instrumentation-active_support (~> 0.10)
475+
opentelemetry-instrumentation-concurrent_ruby (~> 0.23)
476+
opentelemetry-instrumentation-rake (0.5.0)
477+
opentelemetry-instrumentation-base (~> 0.25)
478+
opentelemetry-instrumentation-rdkafka (0.9.0)
479+
opentelemetry-instrumentation-base (~> 0.25)
480+
opentelemetry-instrumentation-redis (0.28.0)
481+
opentelemetry-instrumentation-base (~> 0.25)
482+
opentelemetry-instrumentation-resque (0.8.0)
483+
opentelemetry-instrumentation-base (~> 0.25)
484+
opentelemetry-instrumentation-restclient (0.26.0)
485+
opentelemetry-instrumentation-base (~> 0.25)
486+
opentelemetry-instrumentation-ruby_kafka (0.24.0)
487+
opentelemetry-instrumentation-base (~> 0.25)
488+
opentelemetry-instrumentation-sidekiq (0.28.1)
489+
opentelemetry-instrumentation-base (~> 0.25)
490+
opentelemetry-instrumentation-sinatra (0.28.0)
491+
opentelemetry-instrumentation-rack (~> 0.29)
492+
opentelemetry-instrumentation-trilogy (0.65.1)
493+
opentelemetry-helpers-mysql
494+
opentelemetry-helpers-sql
495+
opentelemetry-helpers-sql-processor
496+
opentelemetry-instrumentation-base (~> 0.25)
497+
opentelemetry-semantic_conventions (>= 1.8.0)
498+
opentelemetry-propagator-xray (0.26.0)
499+
opentelemetry-api (~> 1.7)
500+
opentelemetry-registry (0.4.0)
501+
opentelemetry-api (~> 1.1)
502+
opentelemetry-sdk (1.10.0)
503+
opentelemetry-api (~> 1.1)
504+
opentelemetry-common (~> 0.20)
505+
opentelemetry-registry (~> 0.2)
506+
opentelemetry-semantic_conventions
507+
opentelemetry-semantic_conventions (1.36.0)
508+
opentelemetry-api (~> 1.0)
312509
ostruct (0.6.3)
313510
pagy (9.4.0)
314511
parallel (1.27.0)
@@ -562,6 +759,10 @@ DEPENDENCIES
562759
i18n-tasks (~> 1.1.2)
563760
json_schemer
564761
lograge
762+
opentelemetry-exporter-otlp (~> 0.31.1)
763+
opentelemetry-instrumentation-all (~> 0.89.1)
764+
opentelemetry-propagator-xray (~> 0.26.0)
765+
opentelemetry-sdk (~> 1.10)
565766
pg (~> 1.6)
566767
puma (~> 7.1.0)
567768
rails (= 8.1.1)
@@ -645,6 +846,14 @@ CHECKSUMS
645846
faker (3.5.3) sha256=b961482dc0bb15ccb9a98ea7878b925669e9ae8f5e59b607da540b768137d765
646847
fugit (1.12.1) sha256=5898f478ede9b415f0804e42b8f3fd53f814bd85eebffceebdbc34e1107aaf68
647848
globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
849+
google-protobuf (4.33.2) sha256=748150d6c642fd655ef39efa23ecf2abe6d616020039a6d1c1764be1da530315
850+
google-protobuf (4.33.2-aarch64-linux-gnu) sha256=822b2dcb707e94e652cd994642c31035935fca021adfac6164772c511eb7acd4
851+
google-protobuf (4.33.2-aarch64-linux-musl) sha256=c4b64428183cfd1953ec8c37beec1036668c8ec0865cfb0b18df21181ca397ee
852+
google-protobuf (4.33.2-arm64-darwin) sha256=6d0ac185fed18768e5f16338455b1e4b7c38a97fc46f352e709f7a3007b64e1d
853+
google-protobuf (4.33.2-x86_64-darwin) sha256=87cde586234674562cf099e2b708a65e376e2d39b0f0f48281f4b4ea182b47f8
854+
google-protobuf (4.33.2-x86_64-linux-gnu) sha256=73cba041477afcac92ff383fcbdec195ea28d96b994876d1deaa944d18f91786
855+
google-protobuf (4.33.2-x86_64-linux-musl) sha256=97cdf4f772c5540f9274603b00f1474ed5e6e2238b1d8b1585e77f941a36bd2c
856+
googleapis-common-protos-types (1.22.0) sha256=f97492b77bd6da0018c860d5004f512fe7cd165554d7019a8f4df6a56fbfc4c7
648857
govuk-components (5.13.1) sha256=74808d8188a7de2c5e83e5a829c5f8ac3851df27f82410a4a2444cf53c24cfe5
649858
govuk-forms-markdown (0.6.0)
650859
govuk_design_system_formbuilder (5.13.0) sha256=126ff4af70b36f06395e8f4f09d399944bcc10e9a41c2ff7d7773e81e92ca885
@@ -687,6 +896,62 @@ CHECKSUMS
687896
nokogiri (1.19.0-x86_64-linux-gnu) sha256=f482b95c713d60031d48c44ce14562f8d2ce31e3a9e8dd0ccb131e9e5a68b58c
688897
nokogiri (1.19.0-x86_64-linux-musl) sha256=1c4ca6b381622420073ce6043443af1d321e8ed93cc18b08e2666e5bd02ffae4
689898
notifications-ruby-client (6.2.0) sha256=da4ba515cef3105d7ed46d17c644a3ea437f07cbc02c6cf095cf1984a656cf72
899+
opentelemetry-api (1.7.0) sha256=ccfd264ea6f2db5bf4185e3c07a1297977b44a944e2ce65457c4fe63a697214f
900+
opentelemetry-common (0.23.0) sha256=da721190479d57bae0ad2207468f47f3e2c3b9a91024b5bc32c9d280183eb32c
901+
opentelemetry-exporter-otlp (0.31.1) sha256=5358be17d7849cbcc4f49e1fc24105edc780a6f96c8e57b64192ab9a8e47474a
902+
opentelemetry-helpers-mysql (0.4.0) sha256=d309c0b20825bdd14d4dbc75e0d3b381ffdad37d16424ceca3cb8453d9cb5a4f
903+
opentelemetry-helpers-sql (0.3.0) sha256=4bb08017d6a16dd41c4d1c53c7fd30f9c5bb691195d8b458933724627b3f37f9
904+
opentelemetry-helpers-sql-processor (0.3.1) sha256=6041e934bee76c593e971a8bca0979a6ee411723affdd3c11ca1312903bcd9bc
905+
opentelemetry-instrumentation-action_mailer (0.6.1) sha256=8384866bdb066ae14b9a1fe686ffaf1f23468326a35af64390c0395fcd471057
906+
opentelemetry-instrumentation-action_pack (0.15.1) sha256=84fade740783caeebf260aaefcbf8f1a7a4c49f946944ff520a2fb1d6b07f273
907+
opentelemetry-instrumentation-action_view (0.11.1) sha256=426134dd7604b77032abe26a49d75d16de32d89af962704c0fdf4ab203e5f599
908+
opentelemetry-instrumentation-active_job (0.10.1) sha256=aea1311224c20d064a8f218a44299171152dc36eeb531b9eba84bed8b3942a89
909+
opentelemetry-instrumentation-active_model_serializers (0.24.0) sha256=8fe81e44167d17e45d9acfa588d20140c7640c323e58aca99e266de1bb3fce15
910+
opentelemetry-instrumentation-active_record (0.11.1) sha256=1b083f34eea0449f8d6f4370b3fb4b935757fac6e4e538e67bb98211809e7c92
911+
opentelemetry-instrumentation-active_storage (0.3.1) sha256=f89b0fef54921f17c0c4c38a6e0926d29afabd0ac98436fcdbb8bde85dfde89e
912+
opentelemetry-instrumentation-active_support (0.10.1) sha256=82ea98367158797e33c6de96581f10aa4fe8adf0ebec832dcff5fd04c59bc57d
913+
opentelemetry-instrumentation-all (0.89.1) sha256=6a7de5fd7498024a34eecb63f3d69e8d3e1a3c7933bfef444e1d64e8c2b69f04
914+
opentelemetry-instrumentation-anthropic (0.3.0) sha256=09bd9b4ba6189389a6c0f7ba49f1d11f387d93b411ab585137a48b59925a48de
915+
opentelemetry-instrumentation-aws_lambda (0.6.0) sha256=1a3161393cfe9bc9eddd81a0668d076c38a0a2c3d5df40e95d02f5a8fcd3334c
916+
opentelemetry-instrumentation-aws_sdk (0.11.0) sha256=67a21e754ddf51e2bb8c3e46e116aa9158d8db800f34c2a9b1e0da5a6ca911e3
917+
opentelemetry-instrumentation-base (0.25.0) sha256=642a3a7f08354e6e969423327a4fa67ed2cca7ac6fe5ee09e55b17d1c576da27
918+
opentelemetry-instrumentation-bunny (0.24.0) sha256=1ec484e48a5f42a1d0c33e8e6bc7e9e78dd80f3ed9d63520b8a22ba564aa2585
919+
opentelemetry-instrumentation-concurrent_ruby (0.24.0) sha256=229bd8b72000c59de693609bb637b8a9114992f5e0ab03730d7fd7ef91f7d1d2
920+
opentelemetry-instrumentation-dalli (0.29.0) sha256=a2686650545609e8d7e281c9fd1aef529ab578ef2dcf9a6258737e4ba214bc2f
921+
opentelemetry-instrumentation-delayed_job (0.25.1) sha256=47f35b10d2bfd9ac7c2bbbe10dea095a2e25db2a84f5351860ead969d180c3ec
922+
opentelemetry-instrumentation-ethon (0.26.0) sha256=d4461082c84e8912ab1204340f31cae4aba58b4ae2a854d517b27116750e3752
923+
opentelemetry-instrumentation-excon (0.26.1) sha256=a856816c98d45ff4cd3ec3b0d7fc1e5e340390f47478f882eb4a688cfc678fef
924+
opentelemetry-instrumentation-faraday (0.30.1) sha256=526822c0575aba333e53bfdb26a4a7b6a30c9cb1b1d400d514d891f4507732f9
925+
opentelemetry-instrumentation-grape (0.5.0) sha256=b9fcbe13b015b663577b8bde5b419c297da2588d0a022f4ce40f9ffc49df7624
926+
opentelemetry-instrumentation-graphql (0.31.2) sha256=a4455f225427f8f9058247c8c0b351b8932567913c35ef049f7958801d401b1f
927+
opentelemetry-instrumentation-grpc (0.4.1) sha256=5ffa2bb1d5ec69bcd1fe23e1d8c1a563a00351ce052fe9d76885cc43f21ebc87
928+
opentelemetry-instrumentation-gruf (0.5.0) sha256=ee21be36e312e71b847c9a87168225625890121140a364b68d3668e0df58dacd
929+
opentelemetry-instrumentation-http (0.27.1) sha256=ba70029da6fe9bdfadd31d539823fae3d7fefff11f3487aeeb4cc47b48cf7303
930+
opentelemetry-instrumentation-http_client (0.26.1) sha256=f6af45487998db43d4b8772b4929d692189b66c5591420220e06c3848012e6ff
931+
opentelemetry-instrumentation-httpx (0.5.1) sha256=3ef926ec56e208290052c8d278e3f82890a7f6dadeb01a7c9a706a3fb4da52dd
932+
opentelemetry-instrumentation-koala (0.23.0) sha256=8f324b50a2a64fd4994bb2b105a4cb0c80b64ec05cf5487d2daa906c650bc6f9
933+
opentelemetry-instrumentation-lmdb (0.25.0) sha256=1e4d66d583ea242d4f72051062971f5af1ea353484d224abbd0aabdd1ce5f5cb
934+
opentelemetry-instrumentation-mongo (0.25.0) sha256=d04585669f928ea82e7c469f996061d39d8ff184278d57cf4fc77a6d607f9c7a
935+
opentelemetry-instrumentation-mysql2 (0.32.1) sha256=9f5c705b374f7804d374e4fdb5b793c0321dea25644a006bbb76b2150452277a
936+
opentelemetry-instrumentation-net_http (0.26.1) sha256=354ebf161f2aca0eaafdc9decc014f98b246994308a5de3ccf303f1d4abdfa2c
937+
opentelemetry-instrumentation-pg (0.34.1) sha256=8d6d75f8d895eea040f72ac7765257e82f9aaa81eed44bd1afbcaa7f49ebb5c2
938+
opentelemetry-instrumentation-que (0.12.0) sha256=3b7a84341f6af5a04f8c57860aeba4033f87c855d40c611a2fc40dde849944fb
939+
opentelemetry-instrumentation-racecar (0.6.1) sha256=833f6611906fb661f577e841d4ec52549474d32b4e8edea8048162348d35b845
940+
opentelemetry-instrumentation-rack (0.29.0) sha256=9e2cbb8336087064cbe33b502d917d85b174162bc717efda1cfdbd182342f377
941+
opentelemetry-instrumentation-rails (0.39.1) sha256=7959df7895543040fbb5cd3877c37bc9f95d79ff9d7749334314c50b871ac96f
942+
opentelemetry-instrumentation-rake (0.5.0) sha256=fa6bd019078975ac8a67eaea06294e4fe6707e6770d8ced88d74dc573b0a01ef
943+
opentelemetry-instrumentation-rdkafka (0.9.0) sha256=f3beb56828c584d7d91a2c46f6e5a2ef82289b1d4445b1eb5bc13b80ab6aca89
944+
opentelemetry-instrumentation-redis (0.28.0) sha256=8721957d1c527dd22bd564d17f3a8db252081abb302be189511282d023693900
945+
opentelemetry-instrumentation-resque (0.8.0) sha256=559edde9d6273dd757ae5149ed36e26d147b63028d084121203f51c8cff805e5
946+
opentelemetry-instrumentation-restclient (0.26.0) sha256=5d4e9d93ef51564a1023c076e17b4ac3b42fe81003321d9fb66e44886538bdce
947+
opentelemetry-instrumentation-ruby_kafka (0.24.0) sha256=257e891f4ce630ba3e0669408d497b44afcc493cd49aed09343d5a51fa8952c2
948+
opentelemetry-instrumentation-sidekiq (0.28.1) sha256=abc85d62996a5362e7a9fd7af9f6c709d01ce04795514d12fee5126335ae97ae
949+
opentelemetry-instrumentation-sinatra (0.28.0) sha256=9f11d68c580a421cadd633aca1f8f92707d6b6995d48fffa045a48c187347f26
950+
opentelemetry-instrumentation-trilogy (0.65.1) sha256=4e20ef2aee15613ea9e5468c1561184fc94cde615f3174c6f5d80c76fea8ccbd
951+
opentelemetry-propagator-xray (0.26.0) sha256=c8f4328599e5749d3896aec118088de4a58914c4801802fe49cdf4f4fba6374f
952+
opentelemetry-registry (0.4.0) sha256=903fa6bfaa29eac1c1d73a4fdd29b850977b5353b84b8cdff11222c00ad2968f
953+
opentelemetry-sdk (1.10.0) sha256=43719949be8df24dcaeb86ebbf75636cda87d51a01af2729499b92a48b80521a
954+
opentelemetry-semantic_conventions (1.36.0) sha256=c1b1607dbc7853aac7f9e23f6e8b76969c45b07f2b812a4aa4383c19a3b0f617
690955
ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
691956
pagy (9.4.0) sha256=db3f2e043f684155f18f78be62a81e8d033e39b9f97b1e1a8d12ad38d7bce738
692957
parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130
@@ -778,4 +1043,4 @@ RUBY VERSION
7781043
ruby 3.4.8p72
7791044

7801045
BUNDLED WITH
781-
2.7.1
1046+
2.6.9
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
require "opentelemetry/sdk"
2+
require "opentelemetry/instrumentation/all"
3+
4+
return unless ENV["ENABLE_OTEL"] == "true"
5+
6+
OpenTelemetry::SDK.configure do |c|
7+
instrumentation_config = { "OpenTelemetry::Instrumentation::Rack" => { untraced_endpoints: ["/up"] } }
8+
c.use_all(instrumentation_config)
9+
10+
# Disable logging for Rake tasks to avoid cluttering output
11+
c.logger = Logger.new(File::NULL) if Rails.const_defined?(:Rake) && Rake.application.top_level_tasks.any?
12+
end

0 commit comments

Comments
 (0)