Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
02f9681
feat: add processor base
CoJaques Jul 10, 2025
598efd8
feat: implement base interfaces
CoJaques Jul 13, 2025
134ac83
feat: implement influx repo
CoJaques Jul 13, 2025
64a5c12
feat: implement machine processor
CoJaques Jul 13, 2025
ccaaac3
feat: implement pre-processing (WIP)
CoJaques Jul 13, 2025
b207b7f
feat: implement base services and program
CoJaques Jul 13, 2025
070b575
feat: add appsettinsg
CoJaques Jul 13, 2025
6229f90
feat: add auto-generated readme
CoJaques Jul 13, 2025
68ddf07
feat: implement base configuration
CoJaques Jul 13, 2025
1cc22d4
feat: implement health check controller
CoJaques Jul 13, 2025
19840b2
feat: update sln
CoJaques Jul 13, 2025
c48dbd3
feat: adapt app.config
CoJaques Jul 14, 2025
1768f56
fix: sensor usage in processor
CoJaques Jul 14, 2025
0b3b34e
feat: implement pre-processing configuration for normalization
CoJaques Jul 14, 2025
3d0df75
feat: implement MathUtils (using example in mlnet)
CoJaques Jul 14, 2025
b5a9b82
feat: implement example in appsettings.json
CoJaques Jul 14, 2025
621317e
fix: formatting in MathUtils
CoJaques Jul 14, 2025
0a7367b
feat: implement feature extractor (To test)
CoJaques Jul 14, 2025
c226c96
feat: do not use async for preprocessing
CoJaques Jul 14, 2025
6dc87ac
doc: delete auto-generated doc for private methods
CoJaques Jul 14, 2025
b5f0c1c
feat: add regions
CoJaques Jul 14, 2025
b02d9e7
feat: add unit test for mathutils
CoJaques Jul 15, 2025
26555c2
feat: add healthCheckController test
CoJaques Jul 15, 2025
0c6265a
fix: health check usage
CJaquesDigiinov Jul 16, 2025
db63aec
fix: RegistrationServiceClient on empty string
CJaquesDigiinov Jul 16, 2025
3c5a134
feat: registration clien test
CJaquesDigiinov Jul 16, 2025
e1f21ce
fix: MathUtils tests
CJaquesDigiinov Jul 16, 2025
a7ce5b4
feat: test for feature extractor
CJaquesDigiinov Jul 16, 2025
f2a623d
fix: todo unused
CJaquesDigiinov Jul 16, 2025
bf2f52c
fix: inputs format errors for onnx models
CJaquesDigiinov Jul 16, 2025
b4f8588
feat: add resources to test
CJaquesDigiinov Jul 16, 2025
c0acc38
feat: add complete test cases
CJaquesDigiinov Jul 16, 2025
2a0ab0c
feat: use IMeasurementData in place of dictionary<string, float>
CJaquesDigiinov Jul 16, 2025
f06e8fe
feat: naming modification
CoJaques Jul 17, 2025
d026c74
feat: unify usage of IMeasurementData
CoJaques Jul 17, 2025
d2b9d75
fix: tests after refactoring IMeasurementData
CoJaques Jul 17, 2025
bbdc335
feat: include model
CoJaques Jul 18, 2025
e1e7331
feat: clean tests
CoJaques Jul 18, 2025
aac63dc
fix: prediction engine behavior
CoJaques Jul 18, 2025
3bfa1fc
feat: add label to feature extractor to match model input scheme
CoJaques Jul 18, 2025
fa34716
feat: create interface for MachinePredictionProcessor
CoJaques Jul 18, 2025
1fadd71
feat: use new interface for PredictionBackgroundService
CoJaques Jul 18, 2025
94013c3
feat: enhance error message on registration service unavailable
CoJaques Jul 18, 2025
abcfd37
feat: set appsettings to match micro5 case
CoJaques Jul 18, 2025
5f000f6
feat: add datas for test
CoJaques Jul 18, 2025
b618856
fix: tests position
CoJaques Jul 20, 2025
50fec2d
feat: add influx ui
CoJaques Jul 20, 2025
afb95c6
fix: fix processor
CoJaques Jul 20, 2025
b9170fa
feat: fix minors and rework influx scheme
CoJaques Jul 24, 2025
e4e94a6
fix: timing results
CoJaques Jul 24, 2025
4ab37e1
fix: influx helper
CoJaques Jul 27, 2025
fead69b
Merge pull request #6 from CoJaques/feature/implement-processor
CoJaques Jul 27, 2025
7fc5a69
feat: implement list of data processor
CoJaques Jul 27, 2025
90f4d8c
feat: adapt tests
CoJaques Jul 27, 2025
b5f462a
fix: Configuration management
CoJaques Jul 28, 2025
beb1809
fix: projects folder
CoJaques Jul 30, 2025
c9ecf58
feat: add flush interval to collector configuration
CoJaques Jul 30, 2025
62131cb
feat: enhance post-processor
CoJaques Jul 30, 2025
f0373ee
feat: implement batch processing
CoJaques Jul 30, 2025
11b9197
feat: set result timestamp to first sample timestamp
CoJaques Jul 31, 2025
d8ae2f9
clean: clean window slicing
CoJaques Jul 31, 2025
4c24f58
feat: adapt settings for model using 30 sample window width
CoJaques Jul 31, 2025
59a4557
fix: state deduction
CoJaques Jul 31, 2025
60553cc
feat: remove unused logs and update configuration
CoJaques Aug 5, 2025
dc46cbf
feat: remove integration tests and update MachinePrediction behaviour…
CoJaques Aug 5, 2025
5525526
Merge pull request #7 from CoJaques/feature/rework-processor
CoJaques Aug 5, 2025
81a875b
feat: delete unused files and fix program.cs to use http in prod
CoJaques Aug 5, 2025
40e3066
feat: update serilog management
CoJaques Aug 5, 2025
afd55fa
feat: use connexion string from appsettings for registration
CoJaques Aug 5, 2025
9944a1e
fix: Dockerfile
CoJaques Aug 5, 2025
5dd9b29
feat: update docker compose and dockerfile
CoJaques Aug 6, 2025
6e8137a
feat: adapt docker compose
CoJaques Aug 6, 2025
46a1d25
Merge pull request #8 from CoJaques/feature/enhance-deployement
CoJaques Aug 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 93 additions & 7 deletions DataAggregator.sln
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAggregator.Collector.Te
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAggregator.Registration.Tests", "tests\DataAggregator.Registration.Tests\DataAggregator.Registration.Tests.csproj", "{FB0B4F80-5801-407F-8425-54069C93DB60}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAggregator.Integration.Tests", "tests\DataAggregator.Integration.Tests\DataAggregator.Integration.Tests.csproj", "{12FEEB75-A03A-4389-980B-6B735C550CAC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
Expand All @@ -36,44 +34,130 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAggregator.Collector.Sh
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAggregator.Collector.OpenCNCapnProtoConnector", "src\DataAggregator.Collector.OpenCNCapnProtoConnector\DataAggregator.Collector.OpenCNCapnProtoConnector.csproj", "{2C10378E-0937-40E3-940E-F236F6E8B95B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAggregator.Processor", "src\DataAggregator.Processor\DataAggregator.Processor.csproj", "{039EC00D-5EDF-4C48-B449-29CFB6750232}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "processor", "processor", "{EB9A5576-3E00-4007-8C72-2235E0A1546D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAggregator.Processor.Tests", "tests\DataAggregator.Processor.Tests\DataAggregator.Processor.Tests.csproj", "{EFE47FE6-F41E-CDD6-0991-472080AD88B0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Debug|x64.ActiveCfg = Debug|x64
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Debug|x64.Build.0 = Debug|x64
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Debug|x86.ActiveCfg = Debug|x86
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Debug|x86.Build.0 = Debug|x86
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Release|Any CPU.Build.0 = Release|Any CPU
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Release|x64.ActiveCfg = Release|x64
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Release|x64.Build.0 = Release|x64
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Release|x86.ActiveCfg = Release|x86
{4DA834BA-134A-4F58-B6FF-FF0820FB9FA9}.Release|x86.Build.0 = Release|x86
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Debug|x64.ActiveCfg = Debug|x64
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Debug|x64.Build.0 = Debug|x64
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Debug|x86.ActiveCfg = Debug|x86
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Debug|x86.Build.0 = Debug|x86
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Release|Any CPU.Build.0 = Release|Any CPU
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Release|x64.ActiveCfg = Release|x64
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Release|x64.Build.0 = Release|x64
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Release|x86.ActiveCfg = Release|x86
{54E71A40-291A-4FEB-9E13-1545172AF9EE}.Release|x86.Build.0 = Release|x86
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Debug|x64.ActiveCfg = Debug|x64
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Debug|x64.Build.0 = Debug|x64
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Debug|x86.ActiveCfg = Debug|x86
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Debug|x86.Build.0 = Debug|x86
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Release|Any CPU.Build.0 = Release|Any CPU
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Release|x64.ActiveCfg = Release|x64
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Release|x64.Build.0 = Release|x64
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Release|x86.ActiveCfg = Release|x86
{E593EA7B-F713-4444-AE40-FDCEF462660A}.Release|x86.Build.0 = Release|x86
{63D70F2C-9C7D-4397-8150-37F343949530}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{63D70F2C-9C7D-4397-8150-37F343949530}.Debug|Any CPU.Build.0 = Debug|Any CPU
{63D70F2C-9C7D-4397-8150-37F343949530}.Debug|x64.ActiveCfg = Debug|x64
{63D70F2C-9C7D-4397-8150-37F343949530}.Debug|x64.Build.0 = Debug|x64
{63D70F2C-9C7D-4397-8150-37F343949530}.Debug|x86.ActiveCfg = Debug|x86
{63D70F2C-9C7D-4397-8150-37F343949530}.Debug|x86.Build.0 = Debug|x86
{63D70F2C-9C7D-4397-8150-37F343949530}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63D70F2C-9C7D-4397-8150-37F343949530}.Release|Any CPU.Build.0 = Release|Any CPU
{63D70F2C-9C7D-4397-8150-37F343949530}.Release|x64.ActiveCfg = Release|x64
{63D70F2C-9C7D-4397-8150-37F343949530}.Release|x64.Build.0 = Release|x64
{63D70F2C-9C7D-4397-8150-37F343949530}.Release|x86.ActiveCfg = Release|x86
{63D70F2C-9C7D-4397-8150-37F343949530}.Release|x86.Build.0 = Release|x86
{FB0B4F80-5801-407F-8425-54069C93DB60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB0B4F80-5801-407F-8425-54069C93DB60}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB0B4F80-5801-407F-8425-54069C93DB60}.Debug|x64.ActiveCfg = Debug|x64
{FB0B4F80-5801-407F-8425-54069C93DB60}.Debug|x64.Build.0 = Debug|x64
{FB0B4F80-5801-407F-8425-54069C93DB60}.Debug|x86.ActiveCfg = Debug|x86
{FB0B4F80-5801-407F-8425-54069C93DB60}.Debug|x86.Build.0 = Debug|x86
{FB0B4F80-5801-407F-8425-54069C93DB60}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB0B4F80-5801-407F-8425-54069C93DB60}.Release|Any CPU.Build.0 = Release|Any CPU
{12FEEB75-A03A-4389-980B-6B735C550CAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12FEEB75-A03A-4389-980B-6B735C550CAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12FEEB75-A03A-4389-980B-6B735C550CAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12FEEB75-A03A-4389-980B-6B735C550CAC}.Release|Any CPU.Build.0 = Release|Any CPU
{FB0B4F80-5801-407F-8425-54069C93DB60}.Release|x64.ActiveCfg = Release|x64
{FB0B4F80-5801-407F-8425-54069C93DB60}.Release|x64.Build.0 = Release|x64
{FB0B4F80-5801-407F-8425-54069C93DB60}.Release|x86.ActiveCfg = Release|x86
{FB0B4F80-5801-407F-8425-54069C93DB60}.Release|x86.Build.0 = Release|x86
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Debug|x64.ActiveCfg = Debug|x64
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Debug|x64.Build.0 = Debug|x64
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Debug|x86.ActiveCfg = Debug|x86
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Debug|x86.Build.0 = Debug|x86
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Release|Any CPU.Build.0 = Release|Any CPU
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Release|x64.ActiveCfg = Release|x64
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Release|x64.Build.0 = Release|x64
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Release|x86.ActiveCfg = Release|x86
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182}.Release|x86.Build.0 = Release|x86
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Debug|x64.ActiveCfg = Debug|x64
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Debug|x64.Build.0 = Debug|x64
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Debug|x86.ActiveCfg = Debug|x86
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Debug|x86.Build.0 = Debug|x86
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Release|Any CPU.Build.0 = Release|Any CPU
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Release|x64.ActiveCfg = Release|x64
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Release|x64.Build.0 = Release|x64
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Release|x86.ActiveCfg = Release|x86
{2C10378E-0937-40E3-940E-F236F6E8B95B}.Release|x86.Build.0 = Release|x86
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Debug|Any CPU.Build.0 = Debug|Any CPU
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Debug|x64.ActiveCfg = Debug|x64
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Debug|x64.Build.0 = Debug|x64
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Debug|x86.ActiveCfg = Debug|x86
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Debug|x86.Build.0 = Debug|x86
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Release|Any CPU.ActiveCfg = Release|Any CPU
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Release|Any CPU.Build.0 = Release|Any CPU
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Release|x64.ActiveCfg = Release|x64
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Release|x64.Build.0 = Release|x64
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Release|x86.ActiveCfg = Release|x86
{039EC00D-5EDF-4C48-B449-29CFB6750232}.Release|x86.Build.0 = Release|x86
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Debug|x64.ActiveCfg = Debug|x64
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Debug|x64.Build.0 = Debug|x64
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Debug|x86.ActiveCfg = Debug|x86
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Debug|x86.Build.0 = Debug|x86
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Release|Any CPU.Build.0 = Release|Any CPU
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Release|x64.ActiveCfg = Release|x64
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Release|x64.Build.0 = Release|x64
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Release|x86.ActiveCfg = Release|x86
{EFE47FE6-F41E-CDD6-0991-472080AD88B0}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -84,12 +168,14 @@ Global
{E593EA7B-F713-4444-AE40-FDCEF462660A} = {AA521B32-6E75-46BD-ABDF-0450227A94C4}
{63D70F2C-9C7D-4397-8150-37F343949530} = {247EF7A2-1DFD-4B51-AC7D-0FD13827CAC2}
{FB0B4F80-5801-407F-8425-54069C93DB60} = {247EF7A2-1DFD-4B51-AC7D-0FD13827CAC2}
{12FEEB75-A03A-4389-980B-6B735C550CAC} = {247EF7A2-1DFD-4B51-AC7D-0FD13827CAC2}
{95F8787D-6FE2-4173-8450-6762EA6FAE1F} = {E1AD9667-4C40-4CAF-8096-5FA749EBB2B1}
{AA521B32-6E75-46BD-ABDF-0450227A94C4} = {E1AD9667-4C40-4CAF-8096-5FA749EBB2B1}
{F5250AC4-9CCC-432B-8725-DAC6AE01CCF0} = {95F8787D-6FE2-4173-8450-6762EA6FAE1F}
{4A5708E5-B5D1-4DA4-A2E4-323D3A21B182} = {95F8787D-6FE2-4173-8450-6762EA6FAE1F}
{2C10378E-0937-40E3-940E-F236F6E8B95B} = {F5250AC4-9CCC-432B-8725-DAC6AE01CCF0}
{039EC00D-5EDF-4C48-B449-29CFB6750232} = {EB9A5576-3E00-4007-8C72-2235E0A1546D}
{EB9A5576-3E00-4007-8C72-2235E0A1546D} = {E1AD9667-4C40-4CAF-8096-5FA749EBB2B1}
{EFE47FE6-F41E-CDD6-0991-472080AD88B0} = {247EF7A2-1DFD-4B51-AC7D-0FD13827CAC2}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {9C8E6DBA-9F77-4FD0-9A1D-25150F7806FF}
Expand Down
60 changes: 0 additions & 60 deletions docker-compose.yml

This file was deleted.

21 changes: 21 additions & 0 deletions docker/Dockerfile.Collector
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src

COPY NuGet.config /NuGet.config
COPY lib /lib

COPY src/DataAggregator.Collector/*.csproj ./DataAggregator.Collector/
COPY src/DataAggregator.Shared/*.csproj ./DataAggregator.Shared/
COPY src/DataAggregator.Collector.OpenCNCapnProtoConnector/*.csproj ./DataAggregator.Collector.OpenCNCapnProtoConnector/

RUN dotnet restore ./DataAggregator.Collector/DataAggregator.Collector.App.csproj --configfile /NuGet.config

COPY src/ ./
WORKDIR /src/DataAggregator.Collector
RUN dotnet publish -c Release -o /app/publish --configfile /NuGet.config

FROM mcr.microsoft.com/dotnet/aspnet:9.0
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "DataAggregator.Collector.App.dll"]
17 changes: 17 additions & 0 deletions docker/Dockerfile.Processor
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src

COPY src/DataAggregator.Processor/*.csproj ./DataAggregator.Processor/
COPY src/DataAggregator.Shared/*.csproj ./DataAggregator.Shared/

RUN dotnet restore ./DataAggregator.Processor/DataAggregator.Processor.csproj

COPY src/ ./
WORKDIR /src/DataAggregator.Processor
RUN dotnet publish -c Release -o /app/publish

FROM mcr.microsoft.com/dotnet/aspnet:9.0
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "DataAggregator.Processor.dll"]
17 changes: 17 additions & 0 deletions docker/Dockerfile.Registration
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src

COPY src/DataAggregator.Registration/*.csproj ./DataAggregator.Registration/
COPY src/DataAggregator.Shared/*.csproj ./DataAggregator.Shared/

RUN dotnet restore ./DataAggregator.Registration/DataAggregator.Registration.csproj

COPY src/ ./
WORKDIR /src/DataAggregator.Registration
RUN dotnet publish -c Release -o /app/publish

FROM mcr.microsoft.com/dotnet/aspnet:9.0
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "DataAggregator.Registration.dll"]
54 changes: 54 additions & 0 deletions env/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
services:
postgres:
image: postgres:15
environment:
POSTGRES_DB: dataaggregator
POSTGRES_USER: admin
POSTGRES_PASSWORD: password123
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data

influxdb:
image: influxdb:3-core
ports:
- "8181:8181"
environment:
INFLUXDB3_AUTH_TOKEN: YOUR-TOKEN
command:
- influxdb3
- serve
- --node-id=node0
- --object-store=file
- --data-dir=/var/lib/influxdb3
volumes:
- influx_data:/var/lib/influxdb3

influxdb-ui:
image: influxdata/influxdb3-ui:1.0.0
container_name: influxdb3-explorer
ports:
- "8888:80"
environment:
INFLUXDB_URL: http://influxdb:8181
command: [ "--mode=admin" ]
depends_on:
- influxdb

grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3001:3000"
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- grafana_data:/var/lib/grafana
- ./volumes/grafana/data:/data/

volumes:
postgres_data:
influx_data:
grafana_data:
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,4 @@ public class CapnProtoConfig
/// Gets or sets the server port.
/// </summary>
public int Port { get; set; } = 7001;

/// <summary>
/// Gets or sets the connection timeout in milliseconds.
/// </summary>
public int TimeoutMs { get; set; } = 5000;
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class CollectorService(

private readonly SemaphoreSlim _processingLock = new(1, 1);
private readonly ConcurrentQueue<IMeasurementData> _dataQueue = new();
private readonly TimeSpan _flushInterval = TimeSpan.FromSeconds(1); // Flush every 1 second
private readonly TimeSpan _flushInterval = TimeSpan.FromMilliseconds(configuration.FlushIntervalMilliseconds); // Flush every 1 second

private bool _isRunning;
private CancellationTokenSource? _cancellationTokenSource;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,9 @@ public class CollectorConfiguration
/// Gets or sets the list of sensors configured for this collector.
/// </summary>
public List<SensorConfig> Sensors { get; set; } = [];

/// <summary>
/// Gets or sets the interval in milliseconds for flushing data to the time series database.
/// </summary>
public int FlushIntervalMilliseconds { get; set; } = 1000;
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class SensorConfig
/// <summary>
/// Gets or sets the type of data this sensor produces.
/// </summary>
public SensorDataType DataType { get; set; }
public SensorDataType DataType { get; set; } = SensorDataType.Undefined;

/// <summary>
/// Gets or sets additional metadata for the sensor.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ private void InitializeClient()
{
Token = _config.Token,
Host = _config.Endpoint,
Organization = "Dataggregator",
Database = "Dataggregator",
Organization = InfluxHelper.DatabaseName,
Database = InfluxHelper.DatabaseName,
};

_client = new InfluxDBClient(clientConfig);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
namespace DataAggregator.Collector.Shared.Models;

// TODO CJS -> Check if it's better to have a SensorConfig here and work with its datatype

/// <summary>
/// Interface for common measurement data operations regardless of the value type.
/// </summary>
Expand Down
Loading
Loading