diff --git a/Gemfile b/Gemfile index a8c9fd59c..9d96fecb6 100644 --- a/Gemfile +++ b/Gemfile @@ -74,6 +74,8 @@ gem "roo", "~> 2" gem "rswag", "~> 2" gem "sanitize" gem "sassc-rails" +gem "scout_apm", "~> 6.1" +gem "scout_apm_logging", "~> 2.1" gem "simple-navigation" gem "simple_form" gem "simple_form_bs5_file_input"#, path: "../../noesya/simple_form_bs5_file_input" diff --git a/Gemfile.lock b/Gemfile.lock index 7016a69db..ffdb69364 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -147,6 +147,7 @@ GEM annotaterb (4.20.0) activerecord (>= 6.0.0) activesupport (>= 6.0.0) + ast (2.4.3) aws-eventstream (1.4.0) aws-partitions (1.1210.0) aws-sdk-core (3.241.4) @@ -352,6 +353,8 @@ GEM google-protobuf (4.33.4-x86_64-linux-gnu) bigdecimal rake (>= 13) + googleapis-common-protos-types (1.22.0) + google-protobuf (~> 4.26) hal_openscience (1.0.0) json net-http @@ -507,11 +510,46 @@ GEM stringio time uri + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-instrumentation-base (0.25.0) + opentelemetry-api (~> 1.7) + opentelemetry-common (~> 0.21) + opentelemetry-registry (~> 0.1) + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) orm_adapter (0.5.0) orthotypo (2.0.0) ostruct (0.6.3) paranoia (3.1.0) activerecord (>= 7, < 8.2) + parser (3.3.11.1) + ast (~> 2.4.1) + racc pexels (0.5.0) requests (~> 1.0.2) pg (1.6.3-arm64-darwin) @@ -666,6 +704,18 @@ GEM sawyer (0.9.3) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) + scout_apm (6.1.1) + parser + scout_apm_logging (2.1.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types + opentelemetry-api + opentelemetry-common + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-instrumentation-base + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-sdk (>= 1.2) + scout_apm securerandom (0.4.1) selenium-webdriver (4.10.0) rexml (~> 3.2, >= 3.2.5) @@ -846,6 +896,8 @@ DEPENDENCIES rswag (~> 2) sanitize sassc-rails + scout_apm (~> 6.1) + scout_apm_logging selenium-webdriver simple-navigation simple_form diff --git a/config/application.sample.yml b/config/application.sample.yml index 88da28b2b..dbd633c77 100644 --- a/config/application.sample.yml +++ b/config/application.sample.yml @@ -20,25 +20,25 @@ GOOD_JOB_EXECUTION_MODE: external KEYCDN_HOST: -LANGUAGE_TOOL_ADD_ON_TOKEN: -LANGUAGE_TOOL_USERNAME: +LANGUAGE_TOOL_ADD_ON_TOKEN: +LANGUAGE_TOOL_USERNAME: -LIBRETRANSLATE_API_KEY: +LIBRETRANSLATE_API_KEY: MAIL_FROM_DEFAULT_ADDRESS: MAIL_FROM_DEFAULT_NAME: MAINTENANCE: "false" -MICROLINK_API_KEY: +MICROLINK_API_KEY: OSUNY_API_AUTOUPDATE_THEME_KEY: OSUNY_DEVELOPMENT_DBNAME: # Can be used when working on two incompatible branches (e.g. main & i18n) -OSUNY_DESIGN: +OSUNY_DESIGN: OSUNY_STAGING_APP_NAME: OSUNY_STAGING_PG_ADDON_ID: -OSUNY_SHOWCASE: -OSUNY_TRANSPARENCY: +OSUNY_SHOWCASE: +OSUNY_TRANSPARENCY: OTP_SECRET_ENCRYPTION_KEY: @@ -52,6 +52,8 @@ SCALEWAY_OS_ENDPOINT: SCALEWAY_OS_REGION: SCALEWAY_OS_SECRET_ACCESS_KEY: +SCOUT_KEY: + SECRET_KEY_BASE: SKYLIGHT_AUTHENTICATION: diff --git a/config/scout_apm.yml b/config/scout_apm.yml new file mode 100644 index 000000000..6f9327564 --- /dev/null +++ b/config/scout_apm.yml @@ -0,0 +1,60 @@ +# This configuration file is used for Scout APM. +# Environment variables can also be used to configure Scout. See our help docs at https://scoutapm.com/docs/ruby/configuration#environment-variables for more information. +common: &defaults + + # key: Your Organization key for Scout APM. Found on the settings screen. + # - Default: none + key: <%= ENV["SCOUT_KEY"] %> + + # log_level: Verboseness of logs. + # - Default: 'info' + # - Valid Options: debug, info, warn, error + # log_level: debug + + # use_prepend: Use the newer `prepend` instrumentation method. In some cases, gems + # that use `alias_method` can conflict with gems that use `prepend`. + # To avoid the conflict, change this setting to match the method + # that the other gems use. + # If you have another APM gem installed, such as DataDog or NewRelic, + # you will likely want to set `use_prepend` to true. + # + # See https://scoutapm.com/docs/ruby/configuration#library-instrumentation-method + # for more information. + # - Default: false + # - Valid Options: true, false + # use_prepend: true + + # name: Application name in APM Web UI + # - Default: the application names comes from the Rails or Sinatra class name + # name: + + # monitor: Enable Scout APM or not + # - Default: none + # - Valid Options: true, false + monitor: true + + # errors_enabled: Enable error tracking via Scout + # - Default: false + errors_enabled: true + + # logs_enabled: Enable log correlation via Scout. THIS REQUIRES AN APP-SPECIFIC INGEST KEY! + # Visit the logs tab of your App after deployment to get the ingest key. + # See https://scoutapm.com/docs/features/log-management for more information. + # + # - Default: false + logs_enabled: false + logs_ingest_key: "" + +production: + <<: *defaults + +development: + <<: *defaults + monitor: false + +test: + <<: *defaults + monitor: false + +staging: + <<: *defaults