19 lines
		
	
	
		
			547 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			547 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| RESERVED_CHARACTERS_REGEX = /[\:\|\@]/
 | |
| 
 | |
| StatsD.prefix              = 'mastodon'
 | |
| StatsD.default_sample_rate = 1
 | |
| 
 | |
| def clean_name(str)
 | |
|   str.gsub('::', '.').gsub(RESERVED_CHARACTERS_REGEX, '_')
 | |
| end
 | |
| 
 | |
| ActiveSupport::Notifications.subscribe(/performance/) do |name, _start, _finish, _id, payload|
 | |
|   action      = payload[:action] || :increment
 | |
|   measurement = payload[:measurement]
 | |
|   value       = payload[:value]
 | |
|   key_name    = clean_name("#{name}.#{measurement}")
 | |
| 
 | |
|   StatsD.send(action.to_s, key_name, (value || 1))
 | |
| end
 |