Architecture diagram: current main, timeline histogram
- Title without the commit hash (the hand-drawn font turned "32593b9" into "3259369"); the subtitle dates the diagram instead. - New Histogram (histogram.go) box: API -> histogram -> VictoriaLogs (stats). - Query mentions the from/to range (zoom); the web UI mentions the timeline, columns and live view. - Multi-segment arrows drawn straight, routed between the containers. - PNG regenerated from the .excalidraw source (Excalidraw 0.18 renderer). - README: histogram.go in the Search flow. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
b3b7041ee9
commit
459d5cb79b
3 files changed
+287
-37
No files matched your search
@@ -18,7 +18,8 @@ devices ──514 udp/tcp──▶ logstream (Go) ──HTTP batches──▶ Vi
|
||||
on IP hosts), then the `Store` queue, which sends them in batches to VictoriaLogs.
|
||||
- **Live view**: `sink()` also publishes each message to the `Hub`, which streams it to the
|
||||
browsers over SSE.
|
||||
- **Search**: the HTTP API turns the UI filters into LogsQL queries sent to VictoriaLogs.
|
||||
- **Search**: the HTTP API turns the UI filters into LogsQL queries sent to VictoriaLogs;
|
||||
`histogram.go` computes the timeline intervals (division, time zone, count per severity).
|
||||
- **State**: tags and source settings live in `/data` (`logstream-data` volume); the logs
|
||||
themselves in the `vlogs-data` volume.
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"type": "text",
|
||||
"x": 380,
|
||||
"y": -40,
|
||||
"width": 638,
|
||||
"width": 403.0,
|
||||
"height": 35.0,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
@@ -29,8 +29,8 @@
|
||||
"updated": 1759385400000,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"text": "LogStream : schéma logique (commit 32593b9)",
|
||||
"originalText": "LogStream : schéma logique (commit 32593b9)",
|
||||
"text": "LogStream : schéma logique",
|
||||
"originalText": "LogStream : schéma logique",
|
||||
"fontSize": 28,
|
||||
"fontFamily": 1,
|
||||
"textAlign": "left",
|
||||
@@ -44,7 +44,7 @@
|
||||
"type": "text",
|
||||
"x": 380,
|
||||
"y": 0,
|
||||
"width": 836,
|
||||
"width": 991.6,
|
||||
"height": 20.0,
|
||||
"angle": 0,
|
||||
"strokeColor": "#757575",
|
||||
@@ -65,8 +65,8 @@
|
||||
"updated": 1759385400000,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"text": "Go stdlib, binaire unique, UI embarquée ; stockage VictoriaLogs ; déploiement docker compose (3 services)",
|
||||
"originalText": "Go stdlib, binaire unique, UI embarquée ; stockage VictoriaLogs ; déploiement docker compose (3 services)",
|
||||
"text": "État de main au 02/10/2026 · Go stdlib, binaire unique, UI embarquée ; stockage VictoriaLogs ; déploiement docker compose (3 services)",
|
||||
"originalText": "État de main au 02/10/2026 · Go stdlib, binaire unique, UI embarquée ; stockage VictoriaLogs ; déploiement docker compose (3 services)",
|
||||
"fontSize": 16,
|
||||
"fontFamily": 1,
|
||||
"textAlign": "left",
|
||||
@@ -955,6 +955,10 @@
|
||||
{
|
||||
"type": "arrow",
|
||||
"id": "a_nav"
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"id": "a_ah"
|
||||
}
|
||||
],
|
||||
"updated": 1759385400000,
|
||||
@@ -1001,9 +1005,9 @@
|
||||
"id": "query",
|
||||
"type": "rectangle",
|
||||
"x": 900,
|
||||
"y": 520,
|
||||
"y": 515,
|
||||
"width": 240,
|
||||
"height": 90,
|
||||
"height": 100,
|
||||
"angle": 0,
|
||||
"strokeColor": "#8b5cf6",
|
||||
"backgroundColor": "#d0bfff",
|
||||
@@ -1042,10 +1046,10 @@
|
||||
{
|
||||
"id": "query_lbl",
|
||||
"type": "text",
|
||||
"x": 937.5,
|
||||
"y": 535.0,
|
||||
"width": 165,
|
||||
"height": 60.0,
|
||||
"x": 937.05,
|
||||
"y": 525.0,
|
||||
"width": 165.9,
|
||||
"height": 80.0,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
@@ -1065,8 +1069,8 @@
|
||||
"updated": 1759385400000,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"text": "Query\nfiltres UI → LogsQL\nMatcher (filtre live)",
|
||||
"originalText": "Query\nfiltres UI → LogsQL\nMatcher (filtre live)",
|
||||
"text": "Query\nfiltres UI → LogsQL\nMatcher (filtre live)\nplage from/to (zoom)",
|
||||
"originalText": "Query\nfiltres UI → LogsQL\nMatcher (filtre live)\nplage from/to (zoom)",
|
||||
"fontSize": 16,
|
||||
"fontFamily": 1,
|
||||
"textAlign": "center",
|
||||
@@ -1075,6 +1079,253 @@
|
||||
"lineHeight": 1.25,
|
||||
"autoResize": true
|
||||
},
|
||||
{
|
||||
"id": "hist",
|
||||
"type": "rectangle",
|
||||
"x": 900,
|
||||
"y": 650,
|
||||
"width": 250,
|
||||
"height": 90,
|
||||
"angle": 0,
|
||||
"strokeColor": "#8b5cf6",
|
||||
"backgroundColor": "#d0bfff",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"seed": 771234567,
|
||||
"version": 1,
|
||||
"versionNonce": 1234987,
|
||||
"isDeleted": false,
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "hist_lbl"
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"id": "a_ah"
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"id": "a_hv"
|
||||
}
|
||||
],
|
||||
"updated": 1759385400000,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": "hist_lbl",
|
||||
"type": "text",
|
||||
"x": 918.35,
|
||||
"y": 665.0,
|
||||
"width": 213.3,
|
||||
"height": 60.0,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"seed": 771234568,
|
||||
"version": 1,
|
||||
"versionNonce": 1234988,
|
||||
"isDeleted": false,
|
||||
"boundElements": [],
|
||||
"updated": 1759385400000,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"text": "Histogram (histogram.go)\npas auto/fixe ≤ 300 interv.\nfuseau, détail par sévérité",
|
||||
"originalText": "Histogram (histogram.go)\npas auto/fixe ≤ 300 interv.\nfuseau, détail par sévérité",
|
||||
"fontSize": 16,
|
||||
"fontFamily": 1,
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "hist",
|
||||
"lineHeight": 1.25,
|
||||
"autoResize": true
|
||||
},
|
||||
{
|
||||
"id": "a_ah",
|
||||
"type": "arrow",
|
||||
"x": 860,
|
||||
"y": 695,
|
||||
"width": 40,
|
||||
"height": 0,
|
||||
"angle": 0,
|
||||
"strokeColor": "#22c55e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 771234569,
|
||||
"version": 1,
|
||||
"versionNonce": 1234989,
|
||||
"isDeleted": false,
|
||||
"boundElements": [],
|
||||
"updated": 1759385400000,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
40,
|
||||
0
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow",
|
||||
"elbowed": false,
|
||||
"startBinding": {
|
||||
"elementId": "api",
|
||||
"focus": 0,
|
||||
"gap": 4,
|
||||
"fixedPoint": [
|
||||
1,
|
||||
0.875
|
||||
]
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "hist",
|
||||
"focus": 0,
|
||||
"gap": 4,
|
||||
"fixedPoint": [
|
||||
0,
|
||||
0.5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "a_hv",
|
||||
"type": "arrow",
|
||||
"x": 1150,
|
||||
"y": 695,
|
||||
"width": 110,
|
||||
"height": 360,
|
||||
"angle": 0,
|
||||
"strokeColor": "#0f9f8f",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"seed": 771234570,
|
||||
"version": 1,
|
||||
"versionNonce": 1234990,
|
||||
"isDeleted": false,
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "a_hv_lbl"
|
||||
}
|
||||
],
|
||||
"updated": 1759385400000,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
72,
|
||||
0
|
||||
],
|
||||
[
|
||||
72,
|
||||
-360
|
||||
],
|
||||
[
|
||||
110,
|
||||
-360
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow",
|
||||
"elbowed": false,
|
||||
"startBinding": {
|
||||
"elementId": "hist",
|
||||
"focus": 0,
|
||||
"gap": 4,
|
||||
"fixedPoint": [
|
||||
1,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "vl",
|
||||
"focus": 0,
|
||||
"gap": 4,
|
||||
"fixedPoint": [
|
||||
0,
|
||||
0.97
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "a_hv_lbl",
|
||||
"type": "text",
|
||||
"x": 1204.7,
|
||||
"y": 551.25,
|
||||
"width": 34.6,
|
||||
"height": 17.5,
|
||||
"angle": 0,
|
||||
"strokeColor": "#0f9f8f",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"seed": 771234571,
|
||||
"version": 1,
|
||||
"versionNonce": 1234991,
|
||||
"isDeleted": false,
|
||||
"boundElements": [],
|
||||
"updated": 1759385400000,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"text": "stats",
|
||||
"originalText": "stats",
|
||||
"fontSize": 14,
|
||||
"fontFamily": 1,
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "a_hv",
|
||||
"lineHeight": 1.25,
|
||||
"autoResize": true
|
||||
},
|
||||
{
|
||||
"id": "tags",
|
||||
"type": "rectangle",
|
||||
@@ -1157,9 +1408,9 @@
|
||||
"id": "ui",
|
||||
"type": "rectangle",
|
||||
"x": 340,
|
||||
"y": 660,
|
||||
"y": 655,
|
||||
"width": 230,
|
||||
"height": 80,
|
||||
"height": 95,
|
||||
"angle": 0,
|
||||
"strokeColor": "#22c55e",
|
||||
"backgroundColor": "#b2f2bb",
|
||||
@@ -1194,10 +1445,10 @@
|
||||
{
|
||||
"id": "ui_lbl",
|
||||
"type": "text",
|
||||
"x": 372.0,
|
||||
"y": 670.0,
|
||||
"width": 166,
|
||||
"height": 60.0,
|
||||
"x": 372.05,
|
||||
"y": 662.5,
|
||||
"width": 165.9,
|
||||
"height": 80.0,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
@@ -1217,8 +1468,8 @@
|
||||
"updated": 1759385400000,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"text": "UI web embarquée\ngo:embed web/\nHTML/CSS/JS vanilla",
|
||||
"originalText": "UI web embarquée\ngo:embed web/\nHTML/CSS/JS vanilla",
|
||||
"text": "UI web embarquée\ngo:embed web/\nHTML/CSS/JS vanilla\nfrise, colonnes, live",
|
||||
"originalText": "UI web embarquée\ngo:embed web/\nHTML/CSS/JS vanilla\nfrise, colonnes, live",
|
||||
"fontSize": 16,
|
||||
"fontFamily": 1,
|
||||
"textAlign": "center",
|
||||
@@ -1332,6 +1583,10 @@
|
||||
{
|
||||
"type": "arrow",
|
||||
"id": "a_vd"
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"id": "a_hv"
|
||||
}
|
||||
],
|
||||
"updated": 1759385400000,
|
||||
@@ -2490,9 +2745,7 @@
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"roundness": null,
|
||||
"seed": 656439678,
|
||||
"version": 1,
|
||||
"versionNonce": 1605947757,
|
||||
@@ -2512,12 +2765,12 @@
|
||||
0
|
||||
],
|
||||
[
|
||||
60,
|
||||
0.0
|
||||
55,
|
||||
0
|
||||
],
|
||||
[
|
||||
60,
|
||||
-250.0
|
||||
55,
|
||||
-250
|
||||
],
|
||||
[
|
||||
120,
|
||||
@@ -2550,7 +2803,7 @@
|
||||
{
|
||||
"id": "a_q_lbl",
|
||||
"type": "text",
|
||||
"x": 1175.5,
|
||||
"x": 1170.5,
|
||||
"y": 431.25,
|
||||
"width": 49,
|
||||
"height": 17.5,
|
||||
@@ -2661,9 +2914,7 @@
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"roundness": null,
|
||||
"seed": 83651971,
|
||||
"version": 1,
|
||||
"versionNonce": 480468220,
|
||||
@@ -3097,9 +3348,7 @@
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"roundness": null,
|
||||
"seed": 1817363616,
|
||||
"version": 1,
|
||||
"versionNonce": 909666338,
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 597 KiB After Width: | Height: | Size: 711 KiB |
Reference in new issue
Block a user