cloudfoundry/collector

View on GitHub
lib/collector/handlers/loggregator_dea_agent.rb

Summary

Maintainability
A
2 hrs
Test Coverage
module Collector
  class Handler
    class LoggregatorDeaAgent < Handler
      def process(context)
        varz_message = context.varz
        component_name = varz_message['name']
        tags = varz_message['tags'] || {}

        send_metric("#{component_name}.numCpus", varz_message['numCPUS'], context, tags)
        send_metric("#{component_name}.numGoRoutines", varz_message['numGoRoutines'], context, tags)

        varz_message["memoryStats"].each_pair do |mem_stat_name, mem_stat_value|
          send_metric("#{component_name}.memoryStats.#{mem_stat_name}", mem_stat_value, context, tags)
        end

        varz_message['contexts'].each do |message_context|
          context_name = message_context['name']
          message_context['metrics'].each do |metric|
            metric_name = metric['name']
            metric_value = metric['value']
            metric_tags = tags.merge(metric['tags'] || {})

            send_metric("#{component_name}.#{context_name}.#{metric_name}", metric_value, context, metric_tags)
          end
        end
      end
    end
  end
end