Skip to content

Commit 7a78a18

Browse files
Litedb storage (#43)
1 parent bf4edd5 commit 7a78a18

File tree

146 files changed

+5011
-588
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

146 files changed

+5011
-588
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,3 +402,6 @@ FodyWeavers.xsd
402402
generated/
403403

404404
src/Mocha.Antlr4.Generated/**/gen/
405+
406+
# LiteDB database files
407+
*.db

Mocha.sln

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ EndProject
4545
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docker", "docker", "{D598862A-999C-40FD-A190-EBD00376D077}"
4646
ProjectSection(SolutionItems) = preProject
4747
docker\docker-compose.yml = docker\docker-compose.yml
48+
docker\docker-compose-mysql-influxdb.yml = docker\docker-compose-mysql-influxdb.yml
4849
EndProjectSection
4950
EndProject
5051
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "distributor", "distributor", "{959DCB4E-A070-4C66-A27F-D83CB933F0D8}"
@@ -61,6 +62,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mocha.Query.Tests", "tests\
6162
EndProject
6263
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mocha.Antlr4.Generated", "src\Mocha.Antlr4.Generated\Mocha.Antlr4.Generated.csproj", "{904CC523-A2D4-4982-8A7B-A6A0F5A5EB19}"
6364
EndProject
65+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mocha.Storage.Benchmarks", "tests\Mocha.Storage.Benchmarks\Mocha.Storage.Benchmarks.csproj", "{4B63E7B0-C8C8-4206-A113-A3D4EFB7533E}"
66+
EndProject
6467
Global
6568
GlobalSection(SolutionConfigurationPlatforms) = preSolution
6669
Debug|Any CPU = Debug|Any CPU
@@ -81,6 +84,7 @@ Global
8184
{C7222A9C-C50C-4FF0-A02D-778A9BB4DD2C} = {D598862A-999C-40FD-A190-EBD00376D077}
8285
{D56CA47A-A948-4FB5-9E16-C61E12535521} = {24F9E34A-D92A-4C0A-851F-1E864181BF97}
8386
{904CC523-A2D4-4982-8A7B-A6A0F5A5EB19} = {6983D239-07DA-4DFA-9AAA-F6876029FF8D}
87+
{4B63E7B0-C8C8-4206-A113-A3D4EFB7533E} = {24F9E34A-D92A-4C0A-851F-1E864181BF97}
8488
EndGlobalSection
8589
GlobalSection(ProjectConfigurationPlatforms) = postSolution
8690
{DCA600F0-4D6C-44DA-A493-F63097CCE74E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -127,5 +131,9 @@ Global
127131
{904CC523-A2D4-4982-8A7B-A6A0F5A5EB19}.Debug|Any CPU.Build.0 = Debug|Any CPU
128132
{904CC523-A2D4-4982-8A7B-A6A0F5A5EB19}.Release|Any CPU.ActiveCfg = Release|Any CPU
129133
{904CC523-A2D4-4982-8A7B-A6A0F5A5EB19}.Release|Any CPU.Build.0 = Release|Any CPU
134+
{4B63E7B0-C8C8-4206-A113-A3D4EFB7533E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
135+
{4B63E7B0-C8C8-4206-A113-A3D4EFB7533E}.Debug|Any CPU.Build.0 = Debug|Any CPU
136+
{4B63E7B0-C8C8-4206-A113-A3D4EFB7533E}.Release|Any CPU.ActiveCfg = Release|Any CPU
137+
{4B63E7B0-C8C8-4206-A113-A3D4EFB7533E}.Release|Any CPU.Build.0 = Release|Any CPU
130138
EndGlobalSection
131139
EndGlobal

docker/distributor/Dockerfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
2-
USER $APP_UID
32
WORKDIR /app
4-
EXPOSE 4319
53

64
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
75
ARG BUILD_CONFIGURATION=Release
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# Licensed to the .NET Core Community under one or more agreements.
2+
# The .NET Core Community licenses this file to you under the MIT license.
3+
4+
version: "3.8"
5+
6+
name: mocha-mysql-influxdb
7+
8+
services:
9+
mysql:
10+
image: mysql:8.2.0
11+
container_name: mocha-mysql
12+
environment:
13+
MYSQL_ROOT_PASSWORD: root
14+
MYSQL_DATABASE: mocha
15+
MYSQL_USER: mocha
16+
MYSQL_PASSWORD: mocha
17+
ports:
18+
- "3306:3306"
19+
expose:
20+
- "3306"
21+
volumes:
22+
- ../scripts/mysql/init:/docker-entrypoint-initdb.d/
23+
# - ./mysql:/var/lib/mysql
24+
restart: always
25+
networks:
26+
- mocha
27+
28+
influxdb:
29+
image: influxdb:2.7.7
30+
container_name: mocha-influxdb
31+
ports:
32+
- "8086:8086"
33+
environment:
34+
- DOCKER_INFLUXDB_INIT_MODE=setup
35+
- DOCKER_INFLUXDB_INIT_USERNAME=mocha
36+
- DOCKER_INFLUXDB_INIT_PASSWORD=mocha_password
37+
- DOCKER_INFLUXDB_INIT_ORG=mocha_org
38+
- DOCKER_INFLUXDB_INIT_BUCKET=mocha_metrics
39+
- DOCKER_INFLUXDB_INIT_RETENTION=1w
40+
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=mocha_influxdb_token
41+
# volumes:
42+
# - ./influxdb:/var/lib/influxdb2
43+
restart: always
44+
networks:
45+
- mocha
46+
47+
grafana:
48+
image: grafana/grafana:11.0.1
49+
container_name: mocha-grafana
50+
ports:
51+
- "3000:3000"
52+
# volumes:
53+
# - ./grafana:/var/lib/grafana
54+
restart: always
55+
networks:
56+
- mocha
57+
58+
distributor:
59+
build:
60+
context: ..
61+
dockerfile: ./docker/distributor/Dockerfile
62+
container_name: mocha-distributor
63+
ports:
64+
- "4317:4317"
65+
expose:
66+
- "4317"
67+
environment:
68+
- ASPNETCORE_ENVIRONMENT=Production
69+
- Metadata__Storage__Provider=EFCore
70+
- Tracing__Storage__Provider=EFCore
71+
- Metrics__Storage__Provider=InfluxDB
72+
- Metadata__Storage__EFCore=server=mysql;port=3306;database=mocha;userid=mocha;password=mocha
73+
- Tracing__Storage__EFCore=server=mysql;port=3306;database=mocha;userid=mocha;password=mocha
74+
- Metrics__Storage__InfluxDB__Url=http://influxdb:8086
75+
- Metrics__Storage__InfluxDB__Token=mocha_influxdb_token
76+
- Metrics__Storage__InfluxDB__Org=mocha_org
77+
- Metrics__Storage__InfluxDB__Bucket=mocha_metrics
78+
- Logging__LogLevel__Microsoft.EntityFrameworkCore=Warning
79+
depends_on:
80+
- mysql
81+
- influxdb
82+
restart: always
83+
networks:
84+
- mocha
85+
86+
query:
87+
build:
88+
context: ..
89+
dockerfile: ./docker/query/Dockerfile
90+
container_name: mocha-query
91+
ports:
92+
- "5775:5775"
93+
expose:
94+
- "5775"
95+
environment:
96+
- ASPNETCORE_ENVIRONMENT=Production
97+
- Metadata__Storage__Provider=EFCore
98+
- Tracing__Storage__Provider=EFCore
99+
- Metrics__Storage__Provider=InfluxDB
100+
- Metadata__Storage__EFCore=server=mysql;port=3306;database=mocha;userid=mocha;password=mocha
101+
- Tracing__Storage__EFCore=server=mysql;port=3306;database=mocha;userid=mocha;password=mocha
102+
- Metrics__Storage__InfluxDB__Url=http://influxdb:8086
103+
- Metrics__Storage__InfluxDB__Token=mocha_influxdb_token
104+
- Metrics__Storage__InfluxDB__Org=mocha_org
105+
- Metrics__Storage__InfluxDB__Bucket=mocha_metrics
106+
- Logging__LogLevel__Microsoft.EntityFrameworkCore=Warning
107+
depends_on:
108+
- mysql
109+
- influxdb
110+
restart: always
111+
networks:
112+
- mocha
113+
114+
networks:
115+
mocha:
116+
driver: bridge

docker/docker-compose.yml

Lines changed: 17 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -6,49 +6,13 @@ version: "3.8"
66
name: mocha
77

88
services:
9-
mysql:
10-
image: mysql:8.2.0
11-
container_name: mocha-mysql
12-
environment:
13-
MYSQL_ROOT_PASSWORD: root
14-
MYSQL_DATABASE: mocha
15-
MYSQL_USER: mocha
16-
MYSQL_PASSWORD: mocha
17-
ports:
18-
- "3306:3306"
19-
expose:
20-
- "3306"
21-
volumes:
22-
- ../scripts/mysql/init:/docker-entrypoint-initdb.d/
23-
# - ./mysql:/var/lib/mysql
24-
restart: always
25-
networks:
26-
- mocha
27-
28-
influxdb:
29-
image: influxdb:2.7.7
30-
container_name: mocha-influxdb
31-
ports:
32-
- "8086:8086"
33-
environment:
34-
- DOCKER_INFLUXDB_INIT_MODE=setup
35-
- DOCKER_INFLUXDB_INIT_USERNAME=mocha
36-
- DOCKER_INFLUXDB_INIT_PASSWORD=mocha_password
37-
- DOCKER_INFLUXDB_INIT_ORG=mocha_org
38-
- DOCKER_INFLUXDB_INIT_BUCKET=mocha_metrics
39-
- DOCKER_INFLUXDB_INIT_RETENTION=1w
40-
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=mocha_influxdb_token
41-
# volumes:
42-
# - ./influxdb:/var/lib/influxdb2
43-
restart: always
44-
networks:
45-
- mocha
469

4710
grafana:
4811
image: grafana/grafana:11.0.1
4912
container_name: mocha-grafana
5013
ports:
5114
- "3000:3000"
15+
# If you want to persist Grafana data, uncomment the following lines
5216
# volumes:
5317
# - ./grafana:/var/lib/grafana
5418
restart: always
@@ -66,19 +30,17 @@ services:
6630
- "4317"
6731
environment:
6832
- ASPNETCORE_ENVIRONMENT=Production
69-
- Metadata__Storage__EF=server=mysql;port=3306;database=mocha;userid=mocha;password=mocha
70-
- Trace__Storage__EF=server=mysql;port=3306;database=mocha;userid=mocha;password=mocha
71-
- Metrics__Storage__InfluxDB__Url=http://influxdb:8086
72-
- Metrics__Storage__InfluxDB__Token=mocha_influxdb_token
73-
- Metrics__Storage__InfluxDB__Org=mocha_org
74-
- Metrics__Storage__InfluxDB__Bucket=mocha_metrics
75-
- Logging__LogLevel__Microsoft.EntityFrameworkCore=Warning
76-
depends_on:
77-
- mysql
78-
- influxdb
33+
- Metadata__Storage__Provider=LiteDB
34+
- Tracing__Storage__Provider=LiteDB
35+
- Metrics__Storage__Provider=LiteDB
36+
- Metadata__Storage__LiteDB__DatabasePath=/data/litedb
37+
- Tracing__Storage__LiteDB__DatabasePath=/data/litedb
38+
- Metrics__Storage__LiteDB__DatabasePath=/data/litedb
7939
restart: always
8040
networks:
8141
- mocha
42+
volumes:
43+
- ./litedb_data:/data/litedb
8244

8345
query:
8446
build:
@@ -91,22 +53,18 @@ services:
9153
- "5775"
9254
environment:
9355
- ASPNETCORE_ENVIRONMENT=Production
94-
- Metadata__Storage__EF=server=mysql;port=3306;database=mocha;userid=mocha;password=mocha
95-
- Trace__Storage__EF=server=mysql;port=3306;database=mocha;userid=mocha;password=mocha
96-
- Metrics__Storage__InfluxDB__Url=http://influxdb:8086
97-
- Metrics__Storage__InfluxDB__Token=mocha_influxdb_token
98-
- Metrics__Storage__InfluxDB__Org=mocha_org
99-
- Metrics__Storage__InfluxDB__Bucket=mocha_metrics
100-
- Logging__LogLevel__Microsoft.EntityFrameworkCore=Warning
101-
depends_on:
102-
- mysql
103-
- influxdb
56+
- Metadata__Storage__Provider=LiteDB
57+
- Tracing__Storage__Provider=LiteDB
58+
- Metrics__Storage__Provider=LiteDB
59+
- Metadata__Storage__LiteDB__DatabasePath=/data/litedb
60+
- Tracing__Storage__LiteDB__DatabasePath=/data/litedb
61+
- Metrics__Storage__LiteDB__DatabasePath=/data/litedb
10462
restart: always
10563
networks:
10664
- mocha
65+
volumes:
66+
- ./litedb_data:/data/litedb
10767

10868
networks:
10969
mocha:
11070
driver: bridge
111-
112-

docker/query/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
22
WORKDIR /app
3-
EXPOSE 8080
43

54
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
65
ARG BUILD_CONFIGURATION=Release
-25.5 KB
Loading
-165 KB
Loading
-170 KB
Loading
-157 KB
Loading

0 commit comments

Comments
 (0)