Analytics / Grafana - Error "pq: division by zero"

Hallo,

wir haben immer mal wieder Fehler im Grafana mit “division by zero”. Dies tritt auf wenn Streams keine Daten senden (rtcpinfo_sentpackets = 0)?

Der Fehler tritt in “Call Quality Overview” und “Call flow” auf.

Im Inspector wird diese Meldung ausgegeben:

{
  "results": {
    "A": {
      "error": "pq: division by zero",
      "refId": "A",
      "meta": {
        "sql": "SELECT\n  rtcpinfo_sourcessrc as ssrc,\n  stream as stream,\n  max(rtcpinfo_sentpackets) as packets,\n  max(rtcpinfo_cumulativelost) as lost,\n  max(rtcpinfo_cumulativelost::float/rtcpinfo_sentpackets::float) as lost_ratio,\n  max(rtcpinfo_iajitter) as jitter_max,\n  avg(rtcpinfo_iajitter) as jitter_avg,\n  max(rtcpinfo_rtt * 1000 ) as rtt_max,\n  avg(rtcpinfo_rtt * 1000) as rtt_avg\nFROM rtcp\nWHERE \n  rtcpinfo_chain = '1593515867195_232'\nGROUP BY ssrc,stream;"
      },
      "series": null,
      "tables": null
    }
  },
  "message": "pq: division by zero"
}

Der Divisionsfehler lässt sich leicht abfangen indem ein AND rtcpinfo_sentpackets > 0 der WHERE-Bedingung angehangen wird, da dies aber ein System-Template ist kann es nicht gespeichert werden und müsste immer wieder manuell angepasst werden.

Ist das evtl. ein generelles Konfigurationsproblem der pascom oder darf das passieren?
Dies tritt hier bei ~10% aller Gespräche auf, in der “Call Quality Overview” ist eine Darstellung ohne manuelle Anpassung (Divisionsfehler) kaum möglich.

Edit: es sind doch deutlich mehr als 10%, schon eher jedes zweite Gespräch.


Hier sieht man zwei Streams mit SSRC=0 und keinen Paketen, daher auch der Divisionsfehler bei der Berechnung von lost_ratio. Der Query hier ohne lost_ratio-Berechnung.

Edit 2: Hier mal ein Beispiel mit SSRC=0 und vorhandenen Paketen, der Standardquery liefert aber trotzdem “division by zero”.

Gruß,
Rapha

Hallo @rapha,
danke für die Meldung. Wir sehen uns das im Detail an.

Besten Gruß
Sebastian