input/- Struct definitions of input models, e.g. Intake v2, RUM v3, OTel
- Decoding and translation logic from these input models to the internal model
APMEvent
model/proto- Protobuf definitions of the internal model
APMEvent
- Protobuf definitions of the internal model
model/modelpb- Struct definitions of the internal model
APMEvent - Automatically generated from the protobuf definitions
- Struct definitions of the internal model
model/internal/modeljson- JSON serialization logic for indexing into Elasticsearch
- As an event is sent from an agent to APM server, it is deserialized to an input model (e.g. Intake v2, RUM v3, OTel).
- The input model will then be decoded and translated to the internal model
APMEvent. - The
APMEventis used throughout APM server for all processing and aggregation. - The internal model
APMEventis converted to modeljson. - At last, modeljson will be serialized into JSON and indexed into Elasticsearch.
(All of the above is done in batches.)