Collection pipeline / Reading notes
Design a compact event envelope
The fields that make distributed request events useful.
Separate event and ingest time
Record when the event happened and when it arrived. Clock skew and queue delay should not be mistaken for application latency.
Use stable dimensions
Store a route template rather than the complete URL. Avoid user identifiers as metric labels and document allowed values for each categorical field.
Version the contract
Add optional fields compatibly and make breaking changes explicit. Consumers should be able to reject an unsupported version with a useful reason.