class OpenCensus::Stats::Exporters::Logger

The Logger exporter exports captured stats view data to a standard Ruby Logger interface.

Public Class Methods

new(logger, level: ::Logger::INFO) click to toggle source

Create a new Logger exporter

@param [#log] logger The logger to write to. @param [Integer] level The log level. This should be a log level

defined by the Logger standard library. Default is
`::Logger::INFO`.
# File lib/opencensus/stats/exporters/logger.rb, line 23
def initialize logger, level: ::Logger::INFO
  @logger = logger
  @level = level
end

Public Instance Methods

export(views_data) click to toggle source

Export the captured stats to the configured logger.

@param [Array<ViewData>] views_data The captured stats data.

# File lib/opencensus/stats/exporters/logger.rb, line 33
def export views_data
  stats_data = views_data.map { |vd| format_view_data(vd) }
  @logger.log @level, stats_data.to_json
  nil
end

Private Instance Methods

format_aggregation(view_data) click to toggle source
# File lib/opencensus/stats/exporters/logger.rb, line 66
def format_aggregation view_data
  {
    type: view_data.view.aggregation.class.name.downcase,
    start_time: view_data.start_time,
    end_time: view_data.end_time,
    data: view_data.data
  }
end
format_measure(measure) click to toggle source
# File lib/opencensus/stats/exporters/logger.rb, line 57
def format_measure measure
  {
    name: measure.name,
    unit: measure.unit,
    type: measure.type,
    description: measure.description
  }
end
format_view(view) click to toggle source
# File lib/opencensus/stats/exporters/logger.rb, line 49
def format_view view
  {
    name: view.name,
    columns: view.columns,
    description: view.description
  }
end
format_view_data(view_data) click to toggle source
# File lib/opencensus/stats/exporters/logger.rb, line 41
def format_view_data view_data
  {
    view: format_view(view_data.view),
    measure: format_measure(view_data.view.measure),
    aggregation: format_aggregation(view_data)
  }
end