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.



701
702
703
704
# File 'lib/smplkit/management/client.rb', line 701

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

Instance Method Details

#_update_logger(logger) ⇒ Object



750
751
752
753
# File 'lib/smplkit/management/client.rb', line 750

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



744
745
746
747
748
# File 'lib/smplkit/management/client.rb', line 744

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

#flushObject



712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
# File 'lib/smplkit/management/client.rb', line 712

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



738
739
740
741
742
# File 'lib/smplkit/management/client.rb', line 738

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



731
732
733
734
735
736
# File 'lib/smplkit/management/client.rb', line 731

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



706
707
708
709
710
# File 'lib/smplkit/management/client.rb', line 706

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