mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-31 02:57:57 +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_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 @@ | |||||||
|  | if ENV['SENTRY_DSN'] | ||||||
|   Sentry.init do |config| |   Sentry.init do |config| | ||||||
|     config.dsn = ENV['SENTRY_DSN'] |     config.dsn = ENV['SENTRY_DSN'] | ||||||
|     config.enabled_environments = %w[staging production] |     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 | ||||||
		Reference in New Issue
	
	Block a user
	 Sojan Jose
					Sojan Jose