Skip to content

Latest commit

 

History

History
32 lines (19 loc) · 1.54 KB

File metadata and controls

32 lines (19 loc) · 1.54 KB

Mappings

Status: Development, except where otherwise specified

This document defines the required attributes of Mapping messages.

Attributes

A message representing a Mapping MUST have at least one of the following attributes:

  • process.executable.build_id.gnu
  • process.executable.build_id.go
  • process.executable.build_id.profiling

If possible all the above listed attributes SHOULD be present in a Mapping. To promote interoperability, it is RECOMMENDED for process.executable.build_id.profiling to be present in every Mapping.

Algorithm for process.executable.build_id.profiling

In some environments GNU and/or Go build_id values are stripped or not usable - for example Alpine Linux which is often used as a base for Docker environments. For that reason and to promote interoperability, a deterministic build_id generation algorithm that hashes the first and last page of a file together with its length is defined as:

TRUNC(SHA256(first4k, last4k, fileLen))

where TRUNC returns the first 16bytes of the resulting digest, input to SHA256 is passed left to right, first4k, last4k are the first and last 4096 bytes of the file (may overlap) and fileLen is the 8byte big-endian serialization of the file length.