Update readme and add some deps
This commit is contained in:
@@ -20,7 +20,7 @@ ottyl reads the logs via stdin and indexes it in-memory in a BTreeMap for proper
|
||||
This is the main program, hosting the webapp over axum.
|
||||
|
||||
The engine reads stdin and sends line-split messages to a log ingester.
|
||||
The log ingester holds a mutex over a BTreeMap<IndexKey, DataValue>.
|
||||
The log ingester holds a BTreeMap<IndexKey, DataValue>.
|
||||
|
||||
The BTreeMap may be a custom variation of the std library one, because we need to be able to scan specific ranges and jump to keys.
|
||||
```
|
||||
@@ -90,6 +90,19 @@ enum MetricPrimitive {
|
||||
}
|
||||
```
|
||||
|
||||
## Tasks
|
||||
|
||||
The ingestion tasks reads stdin, sequences the logs, timestamps them and sends over a channel to the engine task.
|
||||
|
||||
The engine task processes incoming logs and incoming requests.
|
||||
It should be lock-free and the sole-owner of the btreemap.
|
||||
|
||||
Axum is not a specific task, but exists and serves the API and frontend.
|
||||
API requests get validated (like, correct syntax etc etc) and then requests are sent over a channel to the engine.
|
||||
The request includes a byte buffer, for response serialisation to go into it.
|
||||
The engine does the serialisation, because it is the sole owner of the btreemap and should not be copying memory simply to serialise it later.
|
||||
A callback is given, so the API knows the request is processed and response is ready to send back from the byte buffer.
|
||||
Rkyv can be used if that helps, otherwise sending raw bytes is fine as well.
|
||||
|
||||
# WebApp
|
||||
|
||||
@@ -174,4 +187,22 @@ There should be support for promql queries to derive the visualisation.
|
||||
Supported charts should be bar chart, line chart, and pie chart.
|
||||
|
||||
|
||||
# Ideas
|
||||
|
||||
This part describes ideas that can be implemented in the future, but not now.
|
||||
|
||||
## Ntfy.sh alerts
|
||||
|
||||
Have matchers you are interested in.
|
||||
Configure the ntfy.sh channel.
|
||||
Send to the channel when an event triggers.
|
||||
|
||||
## Sequence diagram of events
|
||||
|
||||
It would be awesome if it were possible to declare participants of a sequence diagram using parameters or matchers.
|
||||
Example `node_id` for a cluster test or something.
|
||||
Then it may be possible to capture specific events of interest.
|
||||
There wouldn't be a relation between nodes, only the sequence of events determines relations in the sequence diagram.
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user