jb_alvarado
Lieutenant
- Registriert
- Sep. 2015
- Beiträge
- 587
Hallo Leute,
ich würde gerne mit Grafana aktuelle Zuschauer eines Livestreams statistisch darstellen.
Dazu logge ich mit nginx den Zugriff auf die entsprechenden *.ts Files und mit einem Parser schreibe ich mir die Daten in eine InfluxDB. Die IPs schreibe ich als HASH Wert in die DB, damit sie anonymisiert sind, ich aber einen Wert habe den ich zum Auswerten verwenden kann.
Die Einträge schauen dann in etwa so aus:
Die Daten würde ich jetzt gerne so in Grafana darstellen, dass nur die aktuellen Zuschauer dargestellt werden. Da die Clientbrowser ca. alle 6 Sekunden ein neues TS File anfordern, kann man daraus schließen wie lange ein Zuschauer aktiv ist.
Mit dieser Abfrage:
bekomme ich etwas angezeigt, aber mir scheint das nicht akkurat zu sein. Je nachdem welchen Wert ich bei
Wie würdet ihr denn den Query schreiben?
ich würde gerne mit Grafana aktuelle Zuschauer eines Livestreams statistisch darstellen.
Dazu logge ich mit nginx den Zugriff auf die entsprechenden *.ts Files und mit einem Parser schreibe ich mir die Daten in eine InfluxDB. Die IPs schreibe ich als HASH Wert in die DB, damit sie anonymisiert sind, ich aber einen Wert habe den ich zum Auswerten verwenden kann.
Die Einträge schauen dann in etwa so aus:
Code:
time ip
---- --
1667220867000000000 d4f6d4c29e50f1eddec9a50c7b6fee48979b7861c6d932002427
1667220859000000000 d4f6d4c29e50f1eddec9a50c7b6fee48979b7861c6d932002427
1667220852000000000 7e465874a0dedeace8d4d46cc0805d762b9817ec449757e03b09
1667220851000000000 d4f6d4c29e50f1eddec9a50c7b6fee48979b7861c6d932002427
1667220850000000000 a1d70bb62cdaf03d43e635572a5034fe52bd96cfa1eaeac09098
1667220849000000000 7e465874a0dedeace8d4d46cc0805d762b9817ec449757e03b09
1667220848000000000 7e465874a0dedeace8d4d46cc0805d762b9817ec449757e03b09
1667220847000000000 7e465874a0dedeace8d4d46cc0805d762b9817ec449757e03b09
1667220845000000000 7e465874a0dedeace8d4d46cc0805d762b9817ec449757e03b09
Die Daten würde ich jetzt gerne so in Grafana darstellen, dass nur die aktuellen Zuschauer dargestellt werden. Da die Clientbrowser ca. alle 6 Sekunden ein neues TS File anfordern, kann man daraus schließen wie lange ein Zuschauer aktiv ist.
Mit dieser Abfrage:
Code:
SELECT count("ip") FROM "stat" WHERE $timeFilter GROUP BY time(12s) fill(null)
bekomme ich etwas angezeigt, aber mir scheint das nicht akkurat zu sein. Je nachdem welchen Wert ich bei
GROUP BY
eingebe, bekomme ich auch andere Werte dargestellt. Habe leider keine Erfahrung mit dieser Art von Datenbankabfragen.Wie würdet ihr denn den Query schreiben?