Class: Smplkit::ManagementClient::LoggersNamespace

Inherits:
Object
  • Object
show all
Defined in:
lib/smplkit/management/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(api_client) ⇒ LoggersNamespace

Returns a new instance of LoggersNamespace.



686
687
688
689
# File 'lib/smplkit/management/client.rb', line 686

def initialize(api_client)
  @api = SmplkitGeneratedClient::Logging::LoggersApi.new(api_client)
  @buffer = Management::LoggerRegistrationBuffer.new
end

Instance Method Details

#_update_logger(logger) ⇒ Object



735
736
737
738
# File 'lib/smplkit/management/client.rb', line 735

def _update_logger(logger)
  response = ErrorMapping.call { @api.update_logger(logger.id || logger.name, logger_body(logger)) }
  Smplkit::Logging::Helpers.logger_resource_to_model(self, ResourceShim.from_model(response.data))
end

#delete(id) ⇒ Object



729
730
731
732
733
# File 'lib/smplkit/management/client.rb', line 729

def delete(id)
  normalized = Smplkit::Logging::Normalize.normalize_logger_name(id)
  ErrorMapping.call { @api.delete_logger(normalized) }
  true
end

#flushObject



697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
# File 'lib/smplkit/management/client.rb', line 697

def flush
  batch = @buffer.drain
  return if batch.empty?

  items = batch.map do |entry|
    SmplkitGeneratedClient::Logging::LoggerBulkItem.new(
      id: entry["id"],
      resolved_level: entry["resolved_level"],
      level: entry["level"],
      service: entry["service"],
      environment: entry["environment"]
    )
  end
  body = SmplkitGeneratedClient::Logging::LoggerBulkRequest.new(loggers: items)
  ErrorMapping.call { @api.bulk_register_loggers(body) }
rescue StandardError => e
  Smplkit.debug("registration", "logger flush failed: #{e.class}: #{e.message}")
end

#get(id) ⇒ Object



723
724
725
726
727
# File 'lib/smplkit/management/client.rb', line 723

def get(id)
  normalized = Smplkit::Logging::Normalize.normalize_logger_name(id)
  response = ErrorMapping.call { @api.get_logger(normalized) }
  Smplkit::Logging::Helpers.logger_resource_to_model(self, ResourceShim.from_model(response.data))
end

#listObject



716
717
718
719
720
721
# File 'lib/smplkit/management/client.rb', line 716

def list
  response = ErrorMapping.call { @api.list_loggers }
  (response.data || []).map do |r|
    Smplkit::Logging::Helpers.logger_resource_to_model(self, ResourceShim.from_model(r))
  end
end

#register(source) ⇒ Object



691
692
693
694
695
# File 'lib/smplkit/management/client.rb', line 691

def register(source)
  sources = source.is_a?(Array) ? source : [source]
  sources.each { |s| @buffer.add(s) }
  flush if @buffer.pending_count >= Management::LOGGER_BATCH_FLUSH_SIZE
end