Kibana Discover uygulamasında, sorgulamalar belli bir zaman dilimine göre yapılabilmektedir. Bu yazıda Kibana sorgulamalardaki zaman diliminin nasıl yönetildiği incelenmektedir. Aşağıdaki ekran görüntüsünde Kibana Discover uygulamasının arayüzü gösterilmektedir.

Bu ekran yardımı ile Kibana sorgu ve filtreleri oluşturularak istenen kayıtlar aranabilmektedir. Takvim kutucuğu yardımıyla aramaları istenen bir tarih aralığında yapabilmek mümkündür.

Discover ekranındaki Inspect penceresinde, Kibana’nın sorguyu dönüştürdüğü Elasticsearch DSL query ifadesi bulunmaktadır. Tarih aralığı seçildikten sonraki sorgu penceresi aşağıdaki gibi olacaktır.

Burada @timestamp alanında, tarih kutucuğundan seçilen tarihlerin -3 saat olarak ayarlandığı görünmektedir. Bunun nedeni, Kibana’nın tarihleri otomatik olarak UTC zaman dilimine çevirmesidir. Tarih formatı sonunda bulunan “Z” harfi, bu saat ifadesinin UTC olduğunu gösterir ve ISO 8601 standardına uygundur.
Kibana tarayıcının zaman dilimini kullanır. Bu nedenle @timestamp alanındaki tarihler tarayıcının zaman diliminden UTC formatına dönüştürülür. Tarih seçimi yapıldığında belirtilen saat, bizim local timezone’umuz olduğundan, UTC dönüşümünde saat farkı oluşmaktadır.
Zaman dilimi farkı
Uluslararası bir şirketin, dünyanın farklı noktalarında bulunan iki ofisinde aynı zaman aralığını seçerek sorgulama yapan kullanıcılar, farklı bölgelerden UTC dönüşümü elde edileceğinden dolayı Elasticsearch sorguları da farklı olacaktır. Bu nedenle aynı sonucu göremeyeceklerdir.

Elasticsearch tarihleri UTC saat diliminde döndürürken Kibana bunları tarayıcımızın saat dilimine göre biçimlendirir.
Şirketin Belçika’da olduğunu ve tarihleri UTC zaman diliminde tuttuğunu varsayalım. Bu durumda İstanbul ve Belçika’da raporlara bakan kullanıcılar aşağıdaki gibi farklı grafik raporlar görecektir.

Durumun farkında olmayanlar, satışların 10-12 veya 9-11 arasında arttığının ayrımını anlayamazlar. Bu da yanlış kararlar verilmesine neden olabilir.
Kibana timezone ayarları
Kibana timezone ayarları, ana menü seçeneklerinden Stack Management seçiminden sonra açılan uygulamanın Advenced Settings bölümünde bulunur.

Bu ayarlardan Time Zone, varsayılan olarak Browser seçilmiştir. Bunu UTC olarak ayarlayabiliriz. Day of week ise Monday olarak seçilebilir.
Bu durumda sorgunun nasıl değiştiğini görebiliriz.


Sorguda artık local timezone dönüşümü yapılmamaktadır.