Her okuma bir zamanda saklanır. Bu sayfa, bunun hangi zaman olduğunu, zamanı nedeniyle hangi okumaların reddedildiğini, yinelenenlerin nasıl ele alındığını ve geç gelen okumalara ne olduğunu açıklar.
Cihaz zamanı veya alım zamanı
| Cihazın gönderdikleri | Saklanma zamanı |
|---|---|
Düz bir nesne, örneğin {"temperature": 21.5} | Platformun mesajı aldığı zaman |
{"ts": 1759572000000, "values": {...}} | ts: cihazın kendi zamanı |
| İki biçimin bir dizisi | Her öğe kendi zamanında |
ts, 1 Ocak 1970 UTC’den itibaren milisaniye cinsinden bir tam sayıdır. Diğer her ts (saniye, metin, negatif sayı) o kaydı bad_ts olarak düşürür. Bkz. MQTT topics and payload reference.
Yalnızca cihazın saati senkronize olduğunda ts gönderin. Güvenilir saati olmayan bir cihaz düz nesneler göndermeli ve zaman damgasını platformun atmasına izin vermelidir. Kayan bir saat, grafiklerde okumaların yanlış yerde görünmesine neden olur ve reddedilebilir.
Bir akışta kayıt zamanı msg.metadata.recordTs, alım zamanı ise msg.metadata.ts‘dir. Save telemetry bloğu varsayılan olarak kayıt zamanını saklar; ts ayarı alım zamanına geçirilebilir ve ts_path, bir kaydın zamanını mesajdaki bir değerden yeniden ayarlayabilir.
Gelecekteki okumalar
Geldiği andan 10 dakikadan fazla ileri zaman damgalı bir kayıt bad_ts olarak düşürülür. Asla “şimdi” olarak düzeltilmez. Toleransı Settings > Telemetry (IoT Telemetry Settings) bölümünden değiştirin:
| Ayar | Varsayılan | Aralık |
|---|---|---|
| Future timestamp tolerance (minutes) | 10 | 1 ila 1.440 |
| Oldest accepted reading (days) | 0 (herhangi bir yaş) | 0 ila 36.500 |
Gelişinden önce Oldest accepted reading (days) süresinden daha eski bir kayıt bad_ts olarak düşürülür. Bir cihazın çok eski tamponlanmış verileri yeniden oynatmasını durdurmak için kullanın. Sayfa View IoT telemetry settings ve Change IoT telemetry settings izinlerini gerektirir (varsayılan olarak Admin). Değişiklikler bir dakika içinde ingest’e ulaşır.
Geçmiş okumalar
Saklama sınıfınızın ham veriyi tuttuğu süreden daha eski bir okuma, yukarıdaki ayarlar ne derse desin, depo tarafından too_old olarak reddedilir:
| Saklama sınıfı | Bu süreden daha eski olduğunda okuma reddedilir |
|---|---|
| 7 gün | 7 gün |
| 30 gün | 7 gün |
| 90 gün | 30 gün |
| 365 gün | 90 gün |
| 1.095 gün | 90 gün |
Ham pencere içindeki okumalar eski olsalar bile saklanır ve dakika, saat ve gün özetlerine eklenir. Bkz. How long data is kept.
Yinelenenler
Bir cihaz, bir ağ geçidi veya bir yeniden deneme aynı okumayı iki kez gönderebilir. Hermetry bunu iki noktada ele alır:
- Akıştan önce. Mesaj kimliği 60 saniye içinde görülmüş bir cihaz mesajı veya kimliği olmayıp kendi
tsdeğerini taşıyan ve içeriği daha önce görülmüş bir cihaz mesajı, çalışma olmadan onaylanır. Ne kimliği ne detsdeğeri olan bir okuma asla tekrar sayılmaz: aynı değer iki kez gelirse bu iki okumadır. - Depoda. Aynı cihaz için aynı değerlere sahip aynı zamandaki bir mesaj bir kez saklanır. Yeniden iletilen veya tekrar oynatılan bir mesaj hiçbir şeyi değiştirmez.
Aynı zaman damgasına sahip iki farklı mesaj da tutulur. API ham değerleri okuduğunda, zaman damgası başına bir nokta döndürür. En son değer, o zaman damgası için gördüğü ilk değeri korur.
Sırası bozuk okumalar
Çevrimdışıyken okumaları tamponlayıp daha sonra gönderen bir cihaz, bunları daha yeni verilerden sonra iletir. Bunlar geçmişte kendi zamanlarında saklanır. Daha yeni bir en son değerin yerine geçmezler. Alarm kuralları, son değerlendirilenden daha eski kayıtları geriye dönük veri olarak ele alır: bunlar canlı olarak değerlendirilmez ve geriye dönük veri açık olan bir kural, bu kayıtlardan kimseye bildirim göndermeden alarm üretir. Bkz. Clear conditions and late readings.
Kesintinin geciktirdiği okumalar
Bir işleme çalışanı devre dışıyken mesajlar bir kuyrukta bekler. Platform yetişince, bekleme süresi yaşam süresini (varsayılan olarak 5 dakika) aşan bir cihaz mesajı geç bir mesajdır:
- Yine de kök akışından geçer ve saklanır. Birikmiş veri sizin verinizdir, bu yüzden orada asla düşürülmez.
- Geç olarak işaretlenir (
msg.metadata.late). Platform dışında işlem yapan bloklar onu atlar: bildirim yok, cihaz komutu yok, HTTP çağrısı veya MQTT yayını yok (bloğun late ayarısenddeğilse), yayılan olay yok. - Alarm rules bloğu onu geriye dönük veri olarak değerlendirir: alarmlar geçmişe yazılır, Backfilled olarak işaretlenir ve geçmiş için kimse çağrılmaz. Canlı okumalar devam ettiğinde hâlâ açık olan bir alarm o anda duyurulur.
- Buna tepki verebilecek diğer akışlar (örneğin bir
alarmdinleyicisi) onu düşürür ve Too old olarak sayar.
Bkz. Protections and failed messages.
Saat dilimleri
Everything is stored in UTC. The console, dashboards and exports show times in the viewer’s zone. Day rollups run from midnight to midnight UTC; see Aggregates and rollups for reading local days.
Sorun giderme
| Belirti | Olası neden |
|---|---|
| Bir okuma eksik, aynı cihazdan diğerleri mevcut | Its ts değeri gelecekteydi veya aralık dışındaydı (bad_ts), ya da ham pencereden daha eskiydi (too_old). Kök akışın çalışma kayıtlarını kontrol edin. |
| Okumalar saatler veya bir gün kadar kayık görünüyor | Cihaz ts değerini yerel saatte veya saniye cinsinden gönderiyor. UTC milisaniye veya düz nesneler gönderin. |
| Yeni okumalar gelmesine rağmen en son değer değişmiyor | Yeni okumalar, saklanan değerden daha eski veya eşit bir ts taşıyor. |
| Düzeltilmiş bir değer görünmüyor | Orijinaliyle aynı ts ile gönderildi; en son değer ilkini korur. Düzeltmeyi yeni bir ts ile gönderin. |
Ayrıca bkz. Wrong times and gaps.

