Yeni: Yapay zekâ güvenlik duvarı her modülü izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Zaman damgaları, geç ve yinelenen okumalar

Bir okumanın hangi zamanda saklandığı, gelecekten veya geçmişten gelen okumalar, zaman damgası ayarları, yinelenenler ve kesintinin geciktirdiği okumalar.

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önderdikleriSaklanma 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 dizisiHer öğ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:

AyarVarsayılanAralık
Future timestamp tolerance (minutes)101 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ün7 gün
30 gün7 gün
90 gün30 gün
365 gün90 gün
1.095 gün90 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:

  1. Akıştan önce. Mesaj kimliği 60 saniye içinde görülmüş bir cihaz mesajı veya kimliği olmayıp kendi ts değerini taşıyan ve içeriği daha önce görülmüş bir cihaz mesajı, çalışma olmadan onaylanır. Ne kimliği ne de ts değeri olan bir okuma asla tekrar sayılmaz: aynı değer iki kez gelirse bu iki okumadır.
  2. 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ı send değ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 alarm dinleyicisi) 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

BelirtiOlası neden
Bir okuma eksik, aynı cihazdan diğerleri mevcutIts 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üyorCihaz 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şmiyorYeni okumalar, saklanan değerden daha eski veya eşit bir ts taşıyor.
Düzeltilmiş bir değer görünmüyorOrijinaliyle 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.