2016-03-29 23 views
0

yılında sorgudan bazı dizi çıkarın sorgu vardır:akını

SELECT non_negative_derivative(max("value"), 10s) 
        FROM "interface_rx" 
        WHERE "host" =~ /host.+/ 
          AND "instance" =~ /eth.+/ 
          AND "type" = 'if_octets' 
          AND $timeFilter 
        GROUP BY time(5m), "instance" 
        fill(null) 

Tüm dizi bulundu döndürür - ve bu çok fazla.

Ben non_negative_derivative değerleri ile dizileri kesmek istiyorum (max ("değer"), 10s)> 100.

Eğer bunu yaparsam:

SELECT non_negative_derivative(max("value"), 10s) 
     as irx 
     FROM "interface_rx" 
     WHERE "host" =~ /host.+/ 
      AND "instance" =~ /eth.+/ 
      AND "type" = 'if_octets' 
      AND $timeFilter 
      AND irx > 100 
    GROUP BY time(5m), "instance" 
    fill(null) 

akını beni (boş sonuçları göz ardı).

Yavaş dizileri sonuçtan nasıl filtreleyebilirim? Teşekkürler.

cevap

2

Maalesef, sorgunun gövdesi içinde irx'a başvurmanın bir yolu yoktur.

iki sorgu oluşturmak gerekir kullanarak, istediğiniz sonucu elde etmek için:

SELECT non_negative_derivative(max("value"), 10s) AS irx 
       INTO tmp 
       FROM "interface_rx" 
       WHERE "host" =~ /host.+/ 
         AND "instance" =~ /eth.+/ 
         AND "type" = 'if_octets' 
         AND $timeFilter 
       GROUP BY time(5m), "instance" 
       fill(null) 

ve

SELECT irx FROM tmp WHERE irx > 100 GROUP BY instance