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:
Sojan Jose
2021-08-25 01:04:29 +05:30
committed by GitHub
parent 21e8a41206
commit a9ca76d9df
6 changed files with 80 additions and 5 deletions

View 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

View File

@@ -1,4 +1,6 @@
Sentry.init do |config|
config.dsn = ENV['SENTRY_DSN']
config.enabled_environments = %w[staging production]
if ENV['SENTRY_DSN']
Sentry.init do |config|
config.dsn = ENV['SENTRY_DSN']
config.enabled_environments = %w[staging production]
end
end

45
config/newrelic.yml Normal file
View 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