Üretim Performansı Hesaplamaları¶
Bu belge GET /api/v1/production-performance metriklerinin nasıl türetildiğini açıklar. API kullanımı: Üretim Performansı API.
Veri kaynakları¶
| Kaynak | Koleksiyon / konum | Kullanım |
|---|---|---|
| Proje yapısı | projects |
Kapsam çözümleme, gömülü production_stage_operation olayları |
| Kiracı makineleri | machines |
Alarm sorguları için makine ID koruması |
| Alarm zaman çizelgesi | alarms |
Net/duruş süre aralıkları |
Tüm okumalar çözümlenmiş kiracıya kapsamlanır. Alarm sorguları ek olarak kiracı makine ID'leriyle sınırlanır.
Zaman penceresi¶
start_time ve end_time verildiğinde:
- Her ikisi geçerli RFC 3339 zaman damgası olmalıdır (ofset kabul edilir, UTC'ye normalize)
start_time,end_time'dan kesinlikle önce olmalıdır- Pencere
[effective_start_time, effective_end_time)—effective_end_timeanındaki olaylar hariç tutulur
Atlandığında:
effective_end_time= istek işleme anındaki güncel UTC zamaneffective_start_timesırayla çözümlenir:- Varsa proje
start_date - Aktif kapsam için en erken gömülü operasyon olayı zaman damgası
- Aktif kapsam ve kiracı makineleri için en erken alarm zaman damgası
- Daha erken sinyal yoksa
effective_end_time'a geri dönüş
Kapsam ve bağımsız metrikler¶
Metrikler döndürülen her seviye için ayrı hesaplanır:
| Seviye | Dahil edilen olaylar |
|---|---|
| Proje | Proje altındaki tüm üretimler ve aşamalar |
| Üretim | Yalnızca seçilen üretim |
| Üretim aşaması | Yalnızca seçilen aşama |
Operasyon olayları eşleşen aşamalardaki gömülü production_stage_operation dizilerinden düzleştirilir. Alarm olayları kiracı makine $in korumasıyla kapsam için yüklenir.
Süre kesme¶
Tüm süre çıktıları int64 saniyedir. Dönüşüm:
text
int64(duration / time.Second)
Kesirli alt saniye artıkları sıfıra doğru kesilir. Kırpılmış aralık hesabı, segmentler aktif pencereyle kesiştikten sonra aynı kuralı uygular.
Operasyon süresi (total_operation_time_seconds)¶
Kaynak: gömülü production_stage_operation kayıtları (event_case, event_time, makine kimliği).
Makine grubu başına (makine ID, yoksa normalize makine adı):
| Olay durumu | Etki |
|---|---|
operation_start |
Açık aralık yoksa aktif aralık açar |
operation_break |
Aktif aralığı kapatır |
operation_end |
Aktif aralığı kapatır |
Kurallar:
- Makine başına aynı anda yalnızca bir aktif aralık; zaten aktifken ikinci
operation_startyok sayılır - İstek anında açık kalan aralıklar
operation_break,operation_endveya pencere sonuna kadar açık kalır - Her kapatılan segment toplamdan önce pencereye kırpılır
total_operation_time_seconds tüm makine gruplarında toplanır.
Alarm süreleri¶
Kaynak: alarms belgeleri (event_type, type_code, timestamp, makine kimliği).
Olaylar makine başına gruplanır, (timestamp ASC, _id ASC) ile sıralanır. Hesaplayıcı ayrıca pencere içi başlangıç durumunu kurmak için makine başına effective_start_time öncesindeki en son alarmı yükler.
Durum geçişleri¶
event_type |
Sonuç durumu | Notlar |
|---|---|---|
start |
Net operasyon | |
stop |
Duruş | type_code planlı / plansız / arıza sınıflandırır |
reconnecting |
Aktif durum yok | Sıfır süre katkısı. Eski aliaslar (reconnect, re-connect, re_connect, büyük/küçük harf fark etmez) bu kanonik değere normalize edilir. |
| Diğer / bilinmeyen | Aktif durum yok |
Duruş sınıflandırması normalize type_code kullanır:
Kanonik type_code |
Kova |
|---|---|
planned |
planned_stop_time_seconds |
unplanned |
unplanned_stop_time_seconds |
failure |
failure_stop_time_seconds |
Pencere içi ardışık olaylar arasında (ve pencere başından sonuna) her durumdaki geçen süre pencereye kırpılır ve şunlara eklenir:
net_operation_time_secondsstop_time_seconds(toplam)- Eşleşen planlı/plansız/arıza alt kümesi
reconnecting önceki start veya stop aralığını kendi timestamp değerinde kapatır; net veya stop toplamlarına süre eklemez.
Ürün metrikleri (product_metrics)¶
Kaynak: pencere içi operasyon olaylarına bağlı product_operations girdileri.
Ürün anahtarı başına (product_id tercih, yoksa product_code):
| Sayaç | Kaynak alan |
|---|---|
successful_count |
success_count |
revised_count |
revise_count |
scrap_count |
fire_count |
total_count |
Üç sayacın toplamı |
Negatif kaynak değerleri sıfır kabul edilir. Sonuçlar product_code, ardından product_id ile sıralanır.
Pencere içi ürün operasyonu yoksa product_metrics boş dizi olur.
Sıfır veri davranışı¶
Proje mevcut ancak pencerede nitelikli operasyon veya alarm olayı yoksa:
- HTTP 200
- Tüm süre alanları
0 product_metrics[]döner
404 yanıtları yalnızca proje, üretim veya aşama varlığı kiracı için bulunamadığında geçerlidir.
Normalizasyon¶
event_type, type_code ve operasyon event_case değerleri paylaşılan normalizer'dan geçer (internal/outbound/normalize):
- Trim, küçük harf, boşluk/tire → alt çizgi
- Bilinen alias'lar kanonik snake_case biçimlerine eşlenir
- Alarm
event_typekanonik değerleri yalnızstart,stopvereconnecting(reconnect varyasyonlarıreconnecting'e map edilir)
Bu, kaynak büyük/küçük harfinden bağımsız tutarlı hesaplama ve API çıktısı sağlar.
İlgili indeksler¶
Alarm okuma performansı migration yönetimli benzersiz olmayan indekslere dayanır:
ix_alarms_machine_timestamp_id_descix_alarms_project_production_stage_machine_timestamp_id
Bunlar API istekleri sırasında değil, migration CLI ile oluşturulur.