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.



762
763
764
765
# File 'lib/smplkit/management/client.rb', line 762

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

Instance Method Details

#_update_logger(logger) ⇒ Object



814
815
816
817
# File 'lib/smplkit/management/client.rb', line 814

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



808
809
810
811
812
# File 'lib/smplkit/management/client.rb', line 808

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

#flushObject



773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
# File 'lib/smplkit/management/client.rb', line 773

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



802
803
804
805
806
# File 'lib/smplkit/management/client.rb', line 802

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

#list(page_number: nil, page_size: nil) ⇒ Object



792
793
794
795
796
797
798
799
800
# File 'lib/smplkit/management/client.rb', line 792

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

#register(source) ⇒ Object



767
768
769
770
771
# File 'lib/smplkit/management/client.rb', line 767

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