class ElasticAPM::Transport::Serializers::MetadataSerializer

@api private

Public Instance Methods

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

Private Instance Methods

build_process(process) click to toggle source

rubocop:enable Metrics/MethodLength, Metrics/AbcSize

# File lib/elastic_apm/transport/serializers/metadata_serializer.rb, line 45
def build_process(process)
  {
    pid: process.pid,
    title: keyword_field(process.title),
    argv: process.argv
  }
end
build_service(service) click to toggle source

rubocop:disable Metrics/MethodLength, Metrics/AbcSize

# File lib/elastic_apm/transport/serializers/metadata_serializer.rb, line 20
def build_service(service)
  {
    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)
    }
  }
end
build_system(system) click to toggle source
# File lib/elastic_apm/transport/serializers/metadata_serializer.rb, line 53
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