50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
# Fetches the system metrics dashboard and formats the output.
 | 
						|
# Use Gitlab::Metrics::Dashboard::Finder to retrive dashboards.
 | 
						|
module Gitlab
 | 
						|
  module Metrics
 | 
						|
    module Dashboard
 | 
						|
      class SystemDashboardService < Gitlab::Metrics::Dashboard::BaseService
 | 
						|
        SYSTEM_DASHBOARD_PATH = 'config/prometheus/common_metrics.yml'
 | 
						|
        SYSTEM_DASHBOARD_NAME = 'Default'
 | 
						|
 | 
						|
        class << self
 | 
						|
          def all_dashboard_paths(_project)
 | 
						|
            [{
 | 
						|
              path: SYSTEM_DASHBOARD_PATH,
 | 
						|
              display_name: SYSTEM_DASHBOARD_NAME,
 | 
						|
              default: true
 | 
						|
            }]
 | 
						|
          end
 | 
						|
 | 
						|
          def system_dashboard?(filepath)
 | 
						|
            filepath == SYSTEM_DASHBOARD_PATH
 | 
						|
          end
 | 
						|
        end
 | 
						|
 | 
						|
        private
 | 
						|
 | 
						|
        def dashboard_path
 | 
						|
          SYSTEM_DASHBOARD_PATH
 | 
						|
        end
 | 
						|
 | 
						|
        # Returns the base metrics shipped with every GitLab service.
 | 
						|
        def get_raw_dashboard
 | 
						|
          yml = File.read(Rails.root.join(dashboard_path))
 | 
						|
 | 
						|
          YAML.safe_load(yml)
 | 
						|
        end
 | 
						|
 | 
						|
        def cache_key
 | 
						|
          "metrics_dashboard_#{dashboard_path}"
 | 
						|
        end
 | 
						|
 | 
						|
        def insert_project_metrics?
 | 
						|
          true
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |