-
Notifications
You must be signed in to change notification settings - Fork 0
component dummy sensor
Factory B/C 테스트베드에서 canonical JSON을 생성하는 worker VM 로컬 systemd 컴포넌트다. 이 데이터는 실제 현장 센서 데이터가 아니라 multi-factory, risk, pipeline freshness 검증용 synthetic data다.
worker VM systemd
factory_b_dummy_generator.py 또는 factory_c_dummy_generator.py
-> factory_state / infra_state JSON 생성
-> /var/lib/aegis/outbox/{message_id}.json
K3s edge-iot-publisher Pod
-> 같은 worker node hostPath outbox scan
-> MQTT publish
dummy generator는 publish하지 않는다. factory_b_iot_publisher.py, factory_c_iot_publisher.py는 legacy/manual smoke 용도이며, 표준 운영 경로는 K3s edge-iot-publisher다.
| Factory | 실행 위치 | service |
|---|---|---|
factory-b |
Mac UTM worker VM | aegis-factory-b-dummy-generator.service |
factory-c |
Windows VirtualBox factory-c-worker VM |
aegis-factory-c-dummy-generator.service |
master VM에서 generator를 실행하면 master-local /var/lib/aegis/outbox에만 JSON이 생성된다. 표준 publisher Pod는 worker node hostPath를 읽으므로, master에서 생성한 파일은 S3 raw/DynamoDB로 전달되지 않는다.
| source_type | 기본 주기 | 내용 |
|---|---|---|
factory_state |
3초 | sensor baseline/jitter, sensor event, AI score |
infra_state |
20초 | node/workload/device/heartbeat, freshness gap |
Factory B/C dummy generator는 현재 image_snapshot을 생성하지 않는다.
| 항목 | Factory B stable-lab
|
Factory C noisy-vm
|
|---|---|---|
factory_id |
factory-b |
factory-c |
environment_type |
vm-mac |
vm-windows |
input_module_type |
dummy |
dummy |
| worker node | worker1 |
factory-c-worker |
| temperature baseline/jitter | 24.5 +/- 3.0 |
27.0 +/- 4.0 |
| humidity baseline/jitter | 45.0 +/- 8.0 |
52.0 +/- 10.0 |
| pressure baseline/jitter | 1013.5 +/- 1.5 |
1012.0 +/- 2.0 |
| AI event | ai_warning |
ai_warning, ai_critical
|
| abnormal_sound | brief lab impact |
intermittent vibration |
Sensor event:
| Factory | Event | 값 범위 |
|---|---|---|
factory-b |
temperature_high |
39.0-45.0 C |
factory-b |
humidity_high |
88.0-96.0 % |
factory-b |
pressure_high |
1055.0-1075.0 hPa |
factory-b |
pressure_low |
940.0-960.0 hPa |
factory-c |
temperature_critical |
45.0-52.0 C |
factory-c |
humidity_critical |
95.0-99.0 % |
factory-c |
pressure_high_critical |
1070.0-1090.0 hPa |
factory-c |
pressure_low_critical |
930.0-950.0 hPa |
기본 profile은 단순 확률 anomaly가 아니라 랜덤 간격 + round-robin event + 랜덤 값 구조다. Sensor spike는 기본 30초 동안 유지된다.
기본 AEGIS_CLUSTER_STATE_MODE는 synthetic이다.
| 항목 | 기준 |
|---|---|
| node 상태 | 기본 fixed-ready |
| node down |
AEGIS_DUMMY_SCENARIO=node_down 또는 explicit infra event에서만 발생 |
| workload 상태 | synthetic 기본 또는 kubernetes 모드에서 workload만 조회 |
| pipeline gap | payload 필드를 넣지 않고 infra_state 생성을 건너뛰어 만듦 |
Pipeline freshness event:
| Factory | Event | gap |
|---|---|---|
factory-b |
pipeline_warning_gap |
75-105초 |
factory-c |
pipeline_critical_gap |
135-180초 |
factory-c |
pipeline_outage_gap |
301-330초 |
/var/lib/aegis/outbox/tmp/{message_id}.*.tmp
-> /var/lib/aegis/outbox/{message_id}.json
파일은 UTF-8 JSON 한 건이며, message_id를 파일명으로 사용한다. 같은 message_id 파일이 이미 있으면 덮어쓰지 않는다.
Preview:
python3 apps/dummy-sensor/factory_b_dummy_generator.py --once all --no-write --pretty
python3 apps/dummy-sensor/factory_c_dummy_generator.py --once all --no-write --prettyOutbox 1회 생성:
AEGIS_OUTBOX_DIR=/var/lib/aegis/outbox \
python3 apps/dummy-sensor/factory_b_dummy_generator.py --once allLoop:
python3 /opt/aegis/dummy-sensor/factory_b_dummy_generator.py --loop
python3 /opt/aegis/dummy-sensor/factory_c_dummy_generator.py --loop운영 스크립트:
scripts/ops/manage-dummy-generators.sh start factory-b
scripts/ops/manage-dummy-generators.sh start factory-c
scripts/ops/manage-dummy-generators.sh status factory-b
scripts/ops/manage-dummy-generators.sh status factory-cFactory B/C values 기준:
factoryALogAdapter:
enabled: false
outbox:
type: hostPath
path: /var/lib/aegis/outbox
hostPath:
path: /var/lib/aegis/outbox
type: DirectoryOrCreate
placement:
nodeSelector:
aegis.workload-node: "true"
edgeIotPublisher:
enabled: truepublisher Pod는 dummy generator가 파일을 쓰는 worker node에 떠야 한다.
관련 문서
- 시스템 아키텍처
- 제어 & 데이터 플레인
- Dashboard VPC 설계
- 하드웨어 배치
- Hub EKS 네임스페이스
- Tailscale Mesh VPN
- 데이터 생명주기
- 데이터 조회 모델
- 실시간 갱신 구조
- IoT 데이터 계약
- Reporting Pipeline
- 로컬 스토리지
- 클라우드 스토리지
- Edge Agent
- Edge AI 탐지
- Factory-A Log Adapter
- Dummy Sensor
- Edge IoT Publisher
- Lambda Data Processor
- Risk Normalizer
- Risk Score Engine
- Pipeline Status Aggregator
- Graph Aggregator 5m
- Cloud Infra Collector
- Daily Report Generator
- Risk Alert Dispatcher
- Image Snapshot Pipeline
- Dashboard Backend
- Dashboard Web
- AI 채팅 어시스턴트