chore: support for APMs (#2874)
Add the support for Newrelic and Datadog. ref: https://www.chatwoot.com/docs/self-hosted/monitoring/apm-and-error-monitoring fixes: #2861
This commit is contained in:
parent
21e8a41206
commit
a9ca76d9df
6 changed files with 80 additions and 5 deletions
21
.env.example
21
.env.example
|
@ -85,8 +85,6 @@ AWS_ACCESS_KEY_ID=
|
||||||
AWS_SECRET_ACCESS_KEY=
|
AWS_SECRET_ACCESS_KEY=
|
||||||
AWS_REGION=
|
AWS_REGION=
|
||||||
|
|
||||||
# Sentry
|
|
||||||
SENTRY_DSN=
|
|
||||||
|
|
||||||
# Log settings
|
# Log settings
|
||||||
# Disable if you want to write logs to a file
|
# Disable if you want to write logs to a file
|
||||||
|
@ -139,6 +137,25 @@ ANDROID_SHA256_CERT_FINGERPRINT=AC:73:8E:DE:EB:56:EA:CC:10:87:02:A7:65:37:7B:38:
|
||||||
USE_INBOX_AVATAR_FOR_BOT=true
|
USE_INBOX_AVATAR_FOR_BOT=true
|
||||||
|
|
||||||
|
|
||||||
|
### APM and Error Monitoring configurations
|
||||||
|
## Sentry
|
||||||
|
# SENTRY_DSN=
|
||||||
|
|
||||||
|
## Scout
|
||||||
|
## https://scoutapm.com/docs/ruby/configuration
|
||||||
|
# SCOUT_KEY=YOURKEY
|
||||||
|
# SCOUT_NAME=YOURAPPNAME (Production)
|
||||||
|
# SCOUT_MONITOR=true
|
||||||
|
|
||||||
|
## NewRelic
|
||||||
|
# https://docs.newrelic.com/docs/agents/ruby-agent/configuration/ruby-agent-configuration/
|
||||||
|
# NEW_RELIC_LICENSE_KEY=
|
||||||
|
|
||||||
|
## Datadog
|
||||||
|
## https://github.com/DataDog/dd-trace-rb/blob/master/docs/GettingStarted.md#environment-variables
|
||||||
|
# DD_TRACE_AGENT_URL=
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## IP look up configuration
|
## IP look up configuration
|
||||||
## ref https://github.com/alexreisner/geocoder/blob/master/README_API_GUIDE.md
|
## ref https://github.com/alexreisner/geocoder/blob/master/README_API_GUIDE.md
|
||||||
|
|
3
Gemfile
3
Gemfile
|
@ -93,7 +93,10 @@ gem 'google-cloud-dialogflow'
|
||||||
##--- gems for debugging and error reporting ---##
|
##--- gems for debugging and error reporting ---##
|
||||||
# static analysis
|
# static analysis
|
||||||
gem 'brakeman'
|
gem 'brakeman'
|
||||||
|
|
||||||
|
##-- apm and error monitoring ---#
|
||||||
gem 'ddtrace'
|
gem 'ddtrace'
|
||||||
|
gem 'newrelic_rpm'
|
||||||
gem 'scout_apm'
|
gem 'scout_apm'
|
||||||
gem 'sentry-rails'
|
gem 'sentry-rails'
|
||||||
gem 'sentry-ruby'
|
gem 'sentry-ruby'
|
||||||
|
|
|
@ -362,6 +362,7 @@ GEM
|
||||||
net-http-persistent (4.0.1)
|
net-http-persistent (4.0.1)
|
||||||
connection_pool (~> 2.2)
|
connection_pool (~> 2.2)
|
||||||
netrc (0.11.0)
|
netrc (0.11.0)
|
||||||
|
newrelic_rpm (7.2.0)
|
||||||
nio4r (2.5.8)
|
nio4r (2.5.8)
|
||||||
nokogiri (1.11.7-arm64-darwin)
|
nokogiri (1.11.7-arm64-darwin)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
|
@ -682,6 +683,7 @@ DEPENDENCIES
|
||||||
listen
|
listen
|
||||||
maxminddb
|
maxminddb
|
||||||
mock_redis
|
mock_redis
|
||||||
|
newrelic_rpm
|
||||||
pg
|
pg
|
||||||
procore-sift
|
procore-sift
|
||||||
pry-rails
|
pry-rails
|
||||||
|
|
6
config/initializers/datadog.rb
Normal file
6
config/initializers/datadog.rb
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
if ENV['DD_TRACE_AGENT_URL']
|
||||||
|
Datadog.configure do |c|
|
||||||
|
# This will activate auto-instrumentation for Rails
|
||||||
|
c.use :rails
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,4 +1,6 @@
|
||||||
Sentry.init do |config|
|
if ENV['SENTRY_DSN']
|
||||||
config.dsn = ENV['SENTRY_DSN']
|
Sentry.init do |config|
|
||||||
config.enabled_environments = %w[staging production]
|
config.dsn = ENV['SENTRY_DSN']
|
||||||
|
config.enabled_environments = %w[staging production]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
45
config/newrelic.yml
Normal file
45
config/newrelic.yml
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#
|
||||||
|
# This file configures the New Relic Agent. New Relic monitors Ruby, Java,
|
||||||
|
# .NET, PHP, Python, Node, and Go applications with deep visibility and low
|
||||||
|
# overhead. For more information, visit www.newrelic.com.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# For full documentation of agent configuration options, please refer to
|
||||||
|
# https://docs.newrelic.com/docs/agents/ruby-agent/installation-configuration/ruby-agent-configuration
|
||||||
|
|
||||||
|
common: &default_settings
|
||||||
|
# Required license key associated with your New Relic account.
|
||||||
|
license_key: <%= ENV['NEW_RELIC_LICENSE_KEY'] %>
|
||||||
|
|
||||||
|
# Your application name. Renaming here affects where data displays in New
|
||||||
|
# Relic. For more details, see https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/renaming-applications
|
||||||
|
app_name: <%= ENV.fetch('NEW_RELIC_APP_NAME', 'Chatwoot') %>
|
||||||
|
|
||||||
|
distributed_tracing:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# To disable the agent regardless of other settings, uncomment the following:
|
||||||
|
agent_enabled: <%= ENV['NEW_RELIC_LICENSE_KEY'].present? && ENV.fetch('NEW_RELIC_AGENT_ENABLED', true) %>
|
||||||
|
|
||||||
|
# Logging level for log/newrelic_agent.log
|
||||||
|
log_level: <%= ENV.fetch('NEW_RELIC_LOG_LEVEL', 'info') %>
|
||||||
|
|
||||||
|
|
||||||
|
# Environment-specific settings are in this section.
|
||||||
|
# RAILS_ENV or RACK_ENV (as appropriate) is used to determine the environment.
|
||||||
|
# If your application has other named environments, configure them here.
|
||||||
|
development:
|
||||||
|
<<: *default_settings
|
||||||
|
app_name: <%= ENV.fetch('NEW_RELIC_APP_NAME', 'Chatwoot') %> (Development)
|
||||||
|
|
||||||
|
test:
|
||||||
|
<<: *default_settings
|
||||||
|
# It doesn't make sense to report to New Relic from automated test runs.
|
||||||
|
monitor_mode: false
|
||||||
|
|
||||||
|
staging:
|
||||||
|
<<: *default_settings
|
||||||
|
app_name: <%= ENV.fetch('NEW_RELIC_APP_NAME', 'Chatwoot') %> (Staging)
|
||||||
|
|
||||||
|
production:
|
||||||
|
<<: *default_settings
|
Loading…
Add table
Add a link
Reference in a new issue