Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
b52d019
updated grafana dashboards
OJPARKINSON Aug 13, 2025
3c8d651
updated docker-compose.yml
OJPARKINSON Aug 14, 2025
83b491b
updated config
OJPARKINSON Aug 14, 2025
b36e4bb
updated config
OJPARKINSON Aug 14, 2025
0af5494
updated telemetryservice rabbitmq
OJPARKINSON Aug 16, 2025
9b001af
rabbitmq uri
OJPARKINSON Aug 16, 2025
994e555
updated username
OJPARKINSON Aug 16, 2025
f974a27
removed vhost
OJPARKINSON Aug 16, 2025
7aa7ae5
added dedup
OJPARKINSON Aug 16, 2025
5737708
updated go config
OJPARKINSON Aug 16, 2025
ba2ded2
Fix quest and rabbitmq
OJPARKINSON Aug 16, 2025
06a8ba1
Reducing telemetry service memory usage
OJPARKINSON Aug 16, 2025
8ab8cea
updated circuit breaker
OJPARKINSON Aug 17, 2025
bc0da11
Added a worker dockerbuild to build on th pi
OJPARKINSON Aug 17, 2025
7996bf8
updated certs an traefik certs
OJPARKINSON Aug 18, 2025
f40d241
updated network
OJPARKINSON Aug 19, 2025
73d91d1
fixed map routes
OJPARKINSON Aug 21, 2025
c26220a
tried to resolve some data loss
OJPARKINSON Aug 21, 2025
87a1ab9
simpilfied the logging
OJPARKINSON Aug 21, 2025
ae0f06f
remove binary
OJPARKINSON Aug 26, 2025
908bf55
stop data loss for invalid data and use the types default
OJPARKINSON Sep 7, 2025
bd7b985
added sanatise data
OJPARKINSON Sep 15, 2025
98a9181
Create codeql.yml
OJPARKINSON Sep 17, 2025
7b54e9f
added podman commands and clean up of old tables
OJPARKINSON Sep 17, 2025
c68732c
ui tweaks and added logs
OJPARKINSON Sep 17, 2025
3a10244
display updates
OJPARKINSON Sep 18, 2025
883993b
many ui improvements
OJPARKINSON Sep 19, 2025
e80bf42
updated networking
OJPARKINSON Sep 20, 2025
6dd9601
fixes
OJPARKINSON Sep 20, 2025
936542d
updated error message
OJPARKINSON Sep 20, 2025
617605a
updated questdb url
OJPARKINSON Sep 20, 2025
dc11fe6
updated grafana
OJPARKINSON Sep 20, 2025
4152936
remove health check check
OJPARKINSON Sep 20, 2025
9a39ba6
create new questdb service per thread
OJPARKINSON Sep 20, 2025
2cdc9bb
updated nextjs config for the /dashboard/ api route
OJPARKINSON Sep 21, 2025
db5a67d
added /dashboard to the tile url path if the current page includes da…
OJPARKINSON Sep 21, 2025
307f4a5
updated build config for dash
OJPARKINSON Sep 21, 2025
e562af9
fixed useEffect
OJPARKINSON Sep 21, 2025
391c8bd
updated ui
OJPARKINSON Sep 21, 2025
52ebc7d
lint fix
OJPARKINSON Sep 21, 2025
8bce9f2
questdb metrics
OJPARKINSON Sep 21, 2025
984c833
enable wal
OJPARKINSON Sep 21, 2025
971ba57
update create table script
OJPARKINSON Sep 21, 2025
0d33a93
alter table with dedup after
OJPARKINSON Sep 21, 2025
2a21376
added alter table again
OJPARKINSON Sep 21, 2025
a67aeb4
added formatting
OJPARKINSON Sep 22, 2025
7be21d8
formatting
OJPARKINSON Sep 23, 2025
544ce5d
added formatting and make sure that we are only showing race laps
OJPARKINSON Sep 28, 2025
74e172f
map height fix
OJPARKINSON Sep 28, 2025
d0fd1f0
remove limit
OJPARKINSON Sep 28, 2025
6b8ed6e
added testing for confiuration status
OJPARKINSON Sep 29, 2025
89e14c2
log clean
OJPARKINSON Sep 29, 2025
4f5c79e
updated grafana dashboard
OJPARKINSON Oct 7, 2025
0927a66
added auto gen traefik monitoring
OJPARKINSON Oct 7, 2025
9de125a
updated prom yml
OJPARKINSON Oct 7, 2025
f4344c1
move to pull based queue consumption
OJPARKINSON Oct 8, 2025
6a95481
questdb conf
OJPARKINSON Oct 9, 2025
48e245e
added dedup support and partition the fields
OJPARKINSON Oct 10, 2025
6e1d83b
added example envs
OJPARKINSON Oct 10, 2025
11933dc
Updated to be more friendly with windows
OJPARKINSON Oct 13, 2025
04db66a
added basic golang telemetry service
OJPARKINSON Oct 15, 2025
fd86b79
basic queue listenin
OJPARKINSON Oct 14, 2025
288ce49
auto scale the worker counts and maxprocs
OJPARKINSON Oct 15, 2025
4965bc9
revise high ram usage
OJPARKINSON Oct 15, 2025
1e36a47
added env.template for the ingest service
OJPARKINSON Oct 16, 2025
303f00a
remove Sprintf for zero allocation
OJPARKINSON Oct 16, 2025
0ce685d
Added struct processing
OJPARKINSON Oct 17, 2025
52fcc6c
update rabbitmq disable to have better benchmarks for the file parsing
OJPARKINSON Oct 21, 2025
c1d9859
Add processor changes to package and simplified
OJPARKINSON Oct 22, 2025
80d42db
impliment new package
OJPARKINSON Oct 22, 2025
cae2235
improved shut down
OJPARKINSON Oct 22, 2025
0e5c414
Better logging, still needs work
OJPARKINSON Oct 22, 2025
949c8b9
built on top of basic golang telemetry serivce
OJPARKINSON Oct 22, 2025
a5ef140
Fix sessionid
OJPARKINSON Oct 23, 2025
6404bf3
remove debug
OJPARKINSON Oct 23, 2025
70fc9a1
Basic full flow of golang telemetry service
OJPARKINSON Oct 24, 2025
e20cd30
pointer fix and stopping old telemetry serivce
OJPARKINSON Oct 24, 2025
c26bdb9
dockerising application
OJPARKINSON Oct 24, 2025
33213b9
update service name
OJPARKINSON Oct 25, 2025
f78c886
added schema build on start up
OJPARKINSON Oct 25, 2025
d8e8f45
updated prod config
OJPARKINSON Oct 25, 2025
19d93fa
dash upgrade
OJPARKINSON Oct 25, 2025
4f00580
Combine all cores in the grafana dash
OJPARKINSON Oct 25, 2025
b06d7d1
Added telemetry throughput metrics
OJPARKINSON Oct 26, 2025
83a37e9
update the progress.go
OJPARKINSON Oct 27, 2025
ef41046
Remove dotnet ingest an update to any
OJPARKINSON Oct 27, 2025
a34ecef
package update
OJPARKINSON Oct 31, 2025
c271246
remove comment
OJPARKINSON Nov 10, 2025
f8ab52d
fixed the session display to only be races so that testing and quali …
OJPARKINSON Nov 14, 2025
e52a585
Fixed high memory allocation
OJPARKINSON Nov 15, 2025
7fc4205
add a bit of prefect back after some testing
OJPARKINSON Nov 23, 2025
5c4ffd1
logging improvements
OJPARKINSON Nov 27, 2025
e01d2f2
dockerfile fix
OJPARKINSON Dec 16, 2025
378164c
lint and audit
OJPARKINSON Dec 16, 2025
f652b49
better shutdown handling for race conditions
OJPARKINSON Dec 17, 2025
db690a6
starting e2e testing
OJPARKINSON Dec 30, 2025
3fd9325
test file created
OJPARKINSON Dec 30, 2025
f2ef894
fixes for the testContainers config
OJPARKINSON Dec 31, 2025
fc7633f
setup test containers
OJPARKINSON Jan 1, 2026
b5dcbe1
added test table for checks at different tel tick amounts
OJPARKINSON Jan 2, 2026
2445422
test throughputs are actually hit
OJPARKINSON Jan 3, 2026
777bfad
clean up and better batching
OJPARKINSON Jan 4, 2026
9d93fe3
Added worker pool and go from http to tcp?
OJPARKINSON Jan 4, 2026
5c7f193
testing the bigger changes
OJPARKINSON Jan 6, 2026
2d622dc
improvements between questdb and the telemetry service based off the …
OJPARKINSON Jan 9, 2026
1e3f815
Added full e2e test including ingest
OJPARKINSON Jan 9, 2026
54dee37
Move main.go to new file
OJPARKINSON Jan 11, 2026
bbe3e6a
Migrate to vite spa
OJPARKINSON Jan 12, 2026
8b00834
lint fixes
OJPARKINSON Jan 12, 2026
078dd21
geojson handler
OJPARKINSON Jan 13, 2026
09691b8
improving the geojson handler
OJPARKINSON Jan 14, 2026
e147846
geoJSON working
OJPARKINSON Jan 14, 2026
733b57a
improved the racing line and cleaned up the FE TS errors
OJPARKINSON Jan 18, 2026
685d9c3
remove old next stuff from dockerfile
OJPARKINSON Jan 20, 2026
57e84ba
npm audit
OJPARKINSON Jan 23, 2026
a3c4953
session dashboard improvements
OJPARKINSON Jan 24, 2026
c9ef422
back up and running on the rpi
OJPARKINSON Jan 24, 2026
f780f0a
fix navbar width
OJPARKINSON Jan 24, 2026
b0d1ad3
golang updates
OJPARKINSON Jan 24, 2026
db873cc
update dev and prod dockerfile
OJPARKINSON Jan 25, 2026
b4ea4f6
.sum
OJPARKINSON Jan 25, 2026
45070a1
use latest images and always pull the images on full restart
OJPARKINSON Jan 25, 2026
577fd23
channel closing and emptying queues
OJPARKINSON Jan 25, 2026
f286976
give the charts some love
OJPARKINSON Jan 26, 2026
dec343e
Remove extra code around selected index
OJPARKINSON Jan 29, 2026
9d43931
added hover marker
OJPARKINSON Feb 2, 2026
723d5ef
started migration to cobra
OJPARKINSON Feb 2, 2026
5301780
playing around with the cli
OJPARKINSON Feb 4, 2026
6980610
go mod tidy
OJPARKINSON Feb 5, 2026
0c1cb91
clean up of golang ingest
OJPARKINSON Feb 10, 2026
606a634
govulncheck
OJPARKINSON Feb 13, 2026
76c7dc5
update more deps
OJPARKINSON Feb 13, 2026
cd90dca
fix some data loss and dev dashboard fix
OJPARKINSON Feb 15, 2026
d5ad235
breakdown of telemetry page and map component
OJPARKINSON Feb 17, 2026
effe750
adding foundations for a cloud deployment
OJPARKINSON Feb 18, 2026
91c8368
setup base for cloud containers
OJPARKINSON Feb 19, 2026
b05ab00
basic setup of containers
OJPARKINSON Feb 19, 2026
2e50b29
udpated gitignore
OJPARKINSON Feb 24, 2026
648fd6b
fixed local dev for cloud/
OJPARKINSON Feb 24, 2026
8ef6a3a
readme update
OJPARKINSON Feb 26, 2026
96acdce
vul updates
OJPARKINSON Feb 26, 2026
cc29f2d
Bump github.com/quic-go/quic-go in /telemetryService/golang
dependabot[bot] Feb 26, 2026
c6a732d
fix pipeline and remove old service worker / deps
OJPARKINSON Feb 26, 2026
d768d9c
Merge branch 'main' into dependabot/go_modules/telemetryService/golan…
OJPARKINSON Feb 26, 2026
5d74e8b
poc move to get rid of queue
OJPARKINSON Feb 27, 2026
08ebc36
basic protobuf parse and save in db
OJPARKINSON Feb 27, 2026
e8428b9
Merge branch 'main' into dependabot/go_modules/telemetryService/golan…
OJPARKINSON Feb 28, 2026
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
77 changes: 0 additions & 77 deletions .env.example

This file was deleted.

41 changes: 41 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
RABBITMQ_URL=amqp://admin:changeme@rabbitmq:5672/

QUESTDB_HOST=questdb
QUESTDB_HTTP_PORT=9000 # ILP HTTP writes
QUESTDB_PG_PORT=8812 # PostgreSQL wire protocol (queries)
QUESTDB_USER=admin
QUESTDB_PASSWORD=quest
QUESTDB_DATABASE=qdb

# Worker Configuration (auto-scales based on CPU count)
# WORKER_COUNT=20 # Optional: Defaults to CPU_COUNT * 1.25 (16 CPUs → 20 workers)
FILE_QUEUE_SIZE=5000 # File processing queue depth

# Batch Configuration
BATCH_SIZE_BYTES=16777216
BATCH_SIZE_RECORDS=8000 # Records per batch
BATCH_TIMEOUT=10ms # Flush timeout

# Go Runtime (auto-detects optimal values)
GOGC=200 # Garbage collection target (higher = less frequent GC)

# RabbitMQ Configuration (pool size auto-matches worker count)
# RABBITMQ_POOL_SIZE=20 # Optional: Defaults to WORKER_COUNT (each worker needs a channel)
RABBITMQ_BATCH_SIZE=8000 # Messages per batch
RABBITMQ_BATCH_TIMEOUT=2ms # Batch flush timeout
RABBITMQ_PREFETCH_COUNT=50000 # Prefetch buffer
RABBITMQ_FRAME_SIZE=4194304 # 4MB frame size

ENABLE_PPROF=false # Enable pprof profiler
PPROF_PORT=6060 # Profiler port


GRAFANA_ADMIN_PASSWORD=testing4564

TRAEFIK_DASHBOARD_AUTH=admin:$$2y$$10$$X7d.w.zKRV9cGAc5QZnw7uAMeZjKcaFVZmRJ6YZ8vF5Zh.D1Ge2Gi


# Local Network
LOCAL_DOMAIN=pi.local

TAILSCALE_DOMAIN=your-device.tail12345.ts.net
104 changes: 104 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '28 16 * * 5'

jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
permissions:
# required for all workflows
security-events: write

# required to fetch internal or private CodeQL packs
packages: read

# only required for workflows in private repositories
actions: read
contents: read

strategy:
fail-fast: false
matrix:
include:
- language: actions
build-mode: none
- language: csharp
build-mode: none
- language: go
build-mode: autobuild
- language: javascript-typescript
build-mode: none
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'rust', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Add any setup steps before running the `github/codeql-action/init` action.
# This includes steps like installing compilers or runtimes (`actions/setup-node`
# or others). This is typically only required for manual builds.
# - name: Setup runtime (example)
# uses: actions/setup-example@v1

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
2 changes: 1 addition & 1 deletion .github/workflows/snyk-container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: ./telemetryService/telemetryService/
context: ./telemetryService/golang/
platforms: linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
Expand Down
16 changes: 14 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
*.dll
*.so
*.dylib
tailscaled.*

**/.claude

# Test binary, built with `go test -c`
*.test
Expand All @@ -21,21 +24,24 @@ dynamic/tls.yml
# Go workspace file
go.work
go.work.sum
tailscale/

# Environment and sensitive files
.env
.env.local
.env.production
.env.development
**/.env*
!.env.example
!.env.template
*.pdf

# Secrets and tokens
*.token
*.secret
api_keys/
tokens/
credentials/
auth_credentials.txt
ingest/go/ibt_files/*.ibt
*.DS_Store
.DS_Store
Expand Down Expand Up @@ -64,7 +70,6 @@ acme.json
*.blk
*.db
*.influxdb
*.sum
*.inf
**/bin
*.ibt
Expand Down Expand Up @@ -228,3 +233,10 @@ keys/

telemetryService/kafka/*
ingest/go/kafka-data/*

# Failed batch persistence (temporary recovery files)
failed_batches/
telemetryService/golang/benchmark_results/*
dashboard/dist/**
node_modules/
learnings/
13 changes: 0 additions & 13 deletions .idea/.gitignore

This file was deleted.

21 changes: 18 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,25 @@
"editor.defaultFormatter": "biomejs.biome",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"quickfix.biome": "explicit",
"source.organizeImports.biome": "explicit"
"source.fixAll.biome": "explicit"
},
"[go]": {
"editor.defaultFormatter": "golang.go"
},
"[csharp]": {
"editor.defaultFormatter": "ms-dotnettools.csharp"
},
"files.readonlyInclude": {
"**/routeTree.gen.ts": true
},
"files.watcherExclude": {
"**/routeTree.gen.ts": true
},
"search.exclude": {
"**/routeTree.gen.ts": true
},
"biome.configurationPath": "dashboard/biome.json",
"files.associations": {
"wrangler.json": "jsonc"
}
}
}
Loading
Loading