Event ingestion
Event ingestion in Crystalline happens via the /api/ingest/*
api endpoints.
These endpoints are populated via configured inputs which accept a range of parameters. Each input will send any events sent to it to the index specified in it's configuration, each input will send events to exactly one index; but an index may be configured with many inputs.
Inputs handle the following operations:
- Batch decoding - splitting a request into multiple events
- Timestamp extraction and parsing
- Retention policy filtering
When a request is received by an input, it will first be split into seperate events, and have the timestamp extracted based on the input configuration.
after the timestamp for an event has been validated; it will be evaluated against the retention policy of the index to ensure that the stamp
falls with the retention period for hot
buckets. If the event doesn't fall into this period it will be dropped.
All retained events will then be forwarding to a pool of workers for the target index to be routed to appropriate buckets.