class Hoss::Transport::Serializers::MetadataSerializer

@api private

Public Instance Methods

build(metadata) click to toggle source
# File lib/hoss/transport/serializers/metadata_serializer.rb, line 25
def build(metadata)
  {
    metadata: {
      service: build_service(metadata.service),
      process: build_process(metadata.process),
      system: build_system(metadata.system),
      labels: build_labels(metadata.labels)
    }
  }
end

Private Instance Methods

build_labels(labels) click to toggle source
# File lib/hoss/transport/serializers/metadata_serializer.rb, line 86
def build_labels(labels)
  keyword_object(labels)
end
build_process(process) click to toggle source
# File lib/hoss/transport/serializers/metadata_serializer.rb, line 69
def build_process(process)
  {
    pid: process.pid,
    title: keyword_field(process.title),
    argv: process.argv
  }
end
build_service(service) click to toggle source
# File lib/hoss/transport/serializers/metadata_serializer.rb, line 38
def build_service(service)
  base =
    {
      name: keyword_field(service.name),
      environment: keyword_field(service.environment),
      version: keyword_field(service.version),
      agent: {
        name: keyword_field(service.agent.name),
        version: keyword_field(service.agent.version)
      },
      framework: {
        name: keyword_field(service.framework.name),
        version: keyword_field(service.framework.version)
      },
      language: {
        name: keyword_field(service.language.name),
        version: keyword_field(service.language.version)
      },
      runtime: {
        name: keyword_field(service.runtime.name),
        version: keyword_field(service.runtime.version)
      }
    }

  if node_name = service.node_name
    base[:node] = { name: keyword_field(node_name) }
  end

  base
end
build_system(system) click to toggle source
# File lib/hoss/transport/serializers/metadata_serializer.rb, line 77
def build_system(system)
  {
    hostname: keyword_field(system.hostname),
    architecture: keyword_field(system.architecture),
    platform: keyword_field(system.platform),
    kubernetes: keyword_object(system.kubernetes)
  }
end