Skip to main content

Envelope: Rule Servisi

Topic: qapu.rule
DLQ: qapu.dlq.rule
Producer: rule-service

Rule servisi, pencere verisi üzerinde kullanıcı tanımlı kuralları değerlendirir. Bir kural eşiği aşıldığında rule.triggered.v1, koşul tekrar sağlandığında rule.reset.v1, kural konfigürasyonu değiştiğinde rule.completed.v1 üretilir.

Event Envanteri

EventNe zaman üretilir?ConsumerAmaç
rule.triggered.v1Kural eşiği aşıldığındaAction ServisiAksiyonu tetiklemek
rule.reset.v1Tetiklenen kural koşulu artık geçerli olmadığındaAction Servisi, LedgerAksiyon akışını kapatmak
rule.completed.v1Kural konfigürasyonu değiştirildiğinde veya devre dışı bırakıldığındaAction ServisiAçık aksiyon akışlarını sonlandırmak

rule.triggered.v1

Özet

BaşlıkDeğer
Topicqapu.rule
Producerrule-service
ConsumerAction Servisi
Tetikleyiciwindow.ready.v1 tüketimi — kural koşulları değerlendirildiğinde
KritiklikYüksek — aksiyon zincirine girer

Payload

{
"event": "rule.triggered.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i0",
"producer_service": "rule-service",
"produced_at": "2026-03-11T15:22:13.100Z",
"process_ms": 85
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:13.100Z",
"iccid": null,
"imei": null,
"firmware": "2.3.0"
},
"data": {
"rule_id": "rule_voltage_high_001",
"rule_name": "Yüksek Gerilim Alarmı",
"rule_version": 3,
"metric": "voltage_rms_l1",
"threshold_value": 253.0,
"measured_value": 257.4,
"window_slot": "2026-03-11T15:15:00Z",
"severity": "warning"
},
"error": null
}

Alan Açıklamaları

AlanTipZorunluAçıklama
data.rule_idstringEvetKural tanımlayıcısı
data.rule_versionintegerEvetKural konfigürasyon versiyonu; reset/complete ile eşleşmek için kullanılır
data.metricstringEvetEşiği aşan metrik adı
data.threshold_valuenumberEvetTanımlanan eşik değeri
data.measured_valuenumberEvetHesaplanan pencere değeri
data.severitystringEvetinfo | warning | critical

rule.reset.v1

Özet

BaşlıkDeğer
Topicqapu.rule
Producerrule-service
ConsumerAction Servisi, Ledger Servisi
TetikleyiciDaha önce tetiklenmiş bir kural koşulunun artık sağlanmaması
KritiklikOrta — açık aksiyon akışını kapatır

Payload

{
"event": "rule.reset.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i1",
"producer_service": "rule-service",
"produced_at": "2026-03-11T15:37:13.050Z",
"process_ms": 40
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9825100,
"device_time": "2026-03-11T15:37:06Z",
"stream_time": "2026-03-11T15:37:13.050Z",
"iccid": null,
"imei": null,
"firmware": "2.3.0"
},
"data": {
"rule_id": "rule_voltage_high_001",
"rule_version": 3,
"metric": "voltage_rms_l1",
"measured_value": 241.3,
"window_slot": "2026-03-11T15:30:00Z"
},
"error": null
}

rule.completed.v1

Özet

BaşlıkDeğer
Topicqapu.rule
Producerrule-service
ConsumerAction Servisi
TetikleyiciKural konfigürasyonu güncellenmesi veya kural devre dışı bırakılması
KritiklikDüşük/Orta — açık aksiyon akışlarını sonlandırır

Payload

{
"event": "rule.completed.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i2",
"producer_service": "rule-service",
"produced_at": "2026-03-11T16:00:00.000Z",
"process_ms": 5
},
"context": {
"device_id": "400000011D081B70",
"raw_id": null,
"stream_id": null,
"device_time": null,
"stream_time": "2026-03-11T16:00:00.000Z",
"iccid": null,
"imei": null,
"firmware": null
},
"data": {
"rule_id": "rule_voltage_high_001",
"rule_version": 4,
"reason": "config_updated"
},
"error": null
}

Alan Açıklamaları

AlanTipZorunluAçıklama
data.reasonstringEvetconfig_updated | rule_disabled | rule_deleted
context.stream_idinteger|nullHayırCihaz verisiyle tetiklenmediği için null olabilir