Skip to content

marchuk-ya/telemetry-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telemetry System

Requirements

  • Go 1.22 or newer
  • protoc compiler
  • openssl

Build

make build

TLS certificate generation

make certs

Usage

Telemetry Sink

# Without encryption
./bin/telemetry-sink
# With TLS and encryption
./bin/telemetry-sink \
  --bind=localhost:50051 \
  --log-file=telemetry.log \
  --buffer-size=1048576 \
  --flush-interval=100ms \
  --rate-limit=1048576 \
  --tls \
  --cert=certs/server.crt \
  --key=certs/server.key \
  --encryption-key='K8x#mP9$vL2@nQ7&hF4!jR5*wE8^tY3'

Sensor Node

# Without TLS
./bin/sensor-node
# With TLS
./bin/sensor-node \
  --rate=10 \
  --sensor-name=temperature-sensor-1 \
  --sink-address=localhost:50051 \
  --tls \
  --cert=certs/server.crt

CLI Flags

Telemetry Sink

  • --bind - address to bind to
  • --log-file - path to log file
  • --buffer-size - buffer size in bytes
  • --flush-interval - buffer flush interval
  • --rate-limit - input flow rate limit in bytes/sec
  • --tls - use TLS
  • --cert - path to TLS certificate
  • --key - path to TLS key
  • --encryption-key - encryption key

Sensor Node

  • --rate - number of messages per second
  • --sensor-name - sensor name
  • --sink-address - telemetry sink address
  • --tls - use TLS
  • --cert - path to TLS certificate
  • --key - path to TLS key

Example of usage

1. Run telemetry sink

# Without encryption
./bin/telemetry-sink --bind=:50051 --log-file=telemetry.log
# With encryption
./bin/telemetry-sink --bind=:50051 --log-file=telemetry.log --encryption-key='K8x#mP9$vL2@nQ7&hF4!jR5*wE8^tY3'

2. Run multiple sensor nodes

# Sensor 1
./bin/sensor-node --rate=5 --sensor-name=temp-sensor-1 --sink-address=localhost:50051
# Sensor 2
./bin/sensor-node --rate=3 --sensor-name=humidity-sensor-1 --sink-address=localhost:50051

3. Check the log file

tail -f telemetry.log

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published