mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-30 10:42:38 +00:00 
			
		
		
		
	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:
		
							
								
								
									
										21
									
								
								.env.example
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								.env.example
									
									
									
									
									
								
							| @@ -85,8 +85,6 @@ AWS_ACCESS_KEY_ID= | ||||
| AWS_SECRET_ACCESS_KEY= | ||||
| AWS_REGION= | ||||
|  | ||||
| # Sentry | ||||
| SENTRY_DSN= | ||||
|  | ||||
| # Log settings | ||||
| # 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 | ||||
|  | ||||
|  | ||||
| ### 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 | ||||
| ## 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 ---## | ||||
| # static analysis | ||||
| gem 'brakeman' | ||||
|  | ||||
| ##-- apm and error monitoring ---# | ||||
| gem 'ddtrace' | ||||
| gem 'newrelic_rpm' | ||||
| gem 'scout_apm' | ||||
| gem 'sentry-rails' | ||||
| gem 'sentry-ruby' | ||||
|   | ||||
| @@ -362,6 +362,7 @@ GEM | ||||
|     net-http-persistent (4.0.1) | ||||
|       connection_pool (~> 2.2) | ||||
|     netrc (0.11.0) | ||||
|     newrelic_rpm (7.2.0) | ||||
|     nio4r (2.5.8) | ||||
|     nokogiri (1.11.7-arm64-darwin) | ||||
|       racc (~> 1.4) | ||||
| @@ -682,6 +683,7 @@ DEPENDENCIES | ||||
|   listen | ||||
|   maxminddb | ||||
|   mock_redis | ||||
|   newrelic_rpm | ||||
|   pg | ||||
|   procore-sift | ||||
|   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'] | ||||
|   Sentry.init do |config| | ||||
|     config.dsn = ENV['SENTRY_DSN'] | ||||
|     config.enabled_environments = %w[staging production] | ||||
|   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 | ||||
		Reference in New Issue
	
	Block a user
	 Sojan Jose
					Sojan Jose