Connect Dienst Probleme, TrafficLimit erreicht

Ich habe mir jetzt mal was unter der Annahme zusammen gebaut, dass die beiden Counter den Verkehr in Byte beinhalten.

Dann bliebe noch die Frage, auf welchen Zeitraum sich die Werte beziehen. Auf den aktuellen Tag, seit Verbindungsaufbau, seit Serverstart?

Ich vermute, dass es eine Mischung daraus ist, je nachdem was zuletzt eingetreten ist?!

Dann wäre die Aussagekraft, wenn sich das Limit jeweils auf den aktuellen Tag bezieht, aber ggf. begrenzt, oder?

Die Angaben sind in kB und werden immer hochgezählt. Intern resettet sich der Zähler alle 24 Stunden → Diese Funktion aber zeit immer das absolute Ergebnis seit IP-Symcon start an. Außerdem entfernen wir alle Elemente die < 1 MB sind und 5 Minuten lang keinen Traffic generiert haben.

paresy

1 „Gefällt mir“

Mhh… Dann ist die Funktion aber für eine Überwachung hinsichtlich des Erreichens des Traffic-Limits eher nicht so gut geeignet, oder? Oder ich müsste mir immer nach 24 Stunden den alten Wert notieren, um das Delta für den jeweiligen Tag zu ermitteln.
Also bisher konnte ich zumindest aus den ermittelten Zahlen noch nicht so ganz viel ableiten.

Für die Sperrung des Connect-Dienstes (1 GB Limit) sind aber nur die Remote-Counter relevant?

Zu IP-Symcon 6.3 werden wir (da wird Int64 support bekommen) die Ausgabe in Bytes (statt kB) zurückgeben für die bekannte Funktion und zusätzlich dort die LimitCounter Variable hinzufügen (im Prinzip die Summe aus Local+Remote), welche gegen das Limit zählt. Außerdem werden die Statistiken nach einem Reset geleert, sodass man immer über den aktuellen Zeitraum eine Aussage treffen kann. Da die Statistik Übertragungen von < 1MB alle 5 Minuten aussortiert, gibt es zusätzlich eine CC_GetTrafficCounter Funktion, die für den aktuellen Zeitraum den gesamten Verbrauch in Bytes in einer LimitCounter Variable zurückgibt. Die LocalCounter/RemoteCounter sind dann wieder die entsprechenden Einzelteile (Local = Symcon empfängt vom Connect Dienst, Remote = Symcon sendet zum Connect Dienst)

Ich werde dies außerdem noch in mein Prometheus Exporter Modul einpflegen, sodass es dort auch direkt visualisiert werden kann.

paresy

paresy

1 „Gefällt mir“

Das hört sich gut an, auch wenn ich es im Detail glaube ich noch nicht so ganz kapiert habe, was wann wie gezählt wird.
Ich schaue mir das dann an, wenn es verfügbar ist. Vielleicht könnt ihr die entsprechenden Funktionen dann auch dokumentieren. Das sind ja schließlich Informationen, die nicht ganz unerheblich für einen reibungslosen Betrieb sind.

Den Unterschied zwischen Local und Remote kapiere ich glaube ich immer noch nicht. Hört sich irgendwie nach Uplink/Downlink an. Aber müsste dann bei einem Zugriff aufs Webfront nicht in ähnlichem Umfang Traffic auf beiden Seiten anfallen, wenn ich z.B. einen Stream öffne? Der Server sendet doch den Stream an den Dienst und von Dort aus geht es zum Client.

Bei mir tut sich beim Remote-Counter aber über Tage kaum was. Der krebst immer im ein- oder zweistelligen MB-Bereich rum, während beim Local mehrere GB erreicht werden (also über die Laufzeit des Dienstes kumuliert).

…ich hänge mich hier mal ran…

Vorgestern und gestern kam ich nicht mehr über das iPhone auf das Webfront, Limit erreicht, jeweils neu IP-Symcon neu gestartet, jetzt kommt ein „Parse Error“. Wo muss ich nach dem Fehler suchen?

Joachim

Gerade beobachtet:
20.06.2022, 19:48:11 | Connect Control | Traffic Limit für Symcon Connect ist erreicht (1073741824 bytes)

Nach dem Neustart sollte alles wie gewohnt laufen.

Falls du genauer prüfen willst, wohin der Traffic verschwindet, kannst du dir entweder selber die CC_GetTrafficStatistics Funktion ansehen oder mein Prometheus Modul installieren und den WebHook aufrufen. Dort sollten dann die Verbräuche unter symcon_connect_usage_area_bytes aufgeschlüsselt sein.

paresy

Vorab, ich verstehe euer Problem das die Nutzung von Connect bei Euch zu Kosten führt die Ihr managen müsst.

Mein Problem : So wie es aussieht ist kann ich Connect in Verbindung mit IPSVIEW nicht nutzen. Ich habe einen IPAD und ein Handy ständig angeschlossen um unser Haus insbesondere wenn wir nicht da sind zu überwachen. Nach drei Stunden habe ich bereits 50% meines Tages Kontingents verbraucht ! Einmal die View auf mein IPAD laden und schon sind ~8% weg.
Ich komme also nicht umhin mich entweder über VPN einzuwählen (der Overhead beim Traffic macht das ganze natürlich langsam) oder einen Port auf meiner Firewall freizuschalten (was mir eigentlich überhaupt nicht gefällt)
Das Risiko das Connect sich abschaltet und ich aus der Ferne einen Reboot machen muss ist viel zu hoch.
Interessehalber könnt ihr mir (gerne auch nur in einer PM) eine Idee geben wie hoch die Kosten wären wenn ich anstelle der 1GB 10GB pro Tag hätte ?

VPN und OVerhead der es langsam macht? Was nutzt du für ein VPN? Ich habe in meiner gesamten VPN Geschichte quasi noch nie das Gefühl gehabt, es wäre etwas durch VPN soviel langsamer, dass es mir auffiele. Es wird ggf. am Prozessor (Fritzbox??) liegen, aber eher nicht an der Tatsache VPN generell.

Zum Volumen: Vmtl. ist deine View ziemlich groß. Hier wäre doch mittelfristig ein lokales Caching der View in der Client-App die bessere Option?

Jetzt ist mir noch etwas aufgefallen
So wie ich die Funktion CC_GetTrafficCounter(14601)[„LimitCounter“]; glaube verstanden zu haben, wird die Auslastung des täglichen Limits zurückgegeben.

Bei einem Neustart und täglich um 00:00 wird das Limit auf 0 zurückgesetzt. Falls das stimmt verstehe ich die Entwicklung des Limits bei meinem gestrigen test nicht :

Um 8:00 habe ich IPSVIEW über connect geladen und um 13:00 den Test beendet. Um 15:00 habe ich nichts gemacht, das System wurde nicht neu gestartet. Warum ist der Limit Zähler auf 0 zurückgegangen ?

Das Limit wird immer je 24 Stunden ab Start zurückgesetzt.

Bzgl. Kosten schreibe ich dir mal ne PM.

paresy

1 „Gefällt mir“

Ich weiß der Thread ist alt, hab aber eben doch jetzt das Thema am Tisch, weil mir zu oft der Traffic ausgeht und ich wissen will warum.
Frage an @paresy , kann es sein, dass das vertauscht ist?
Zum Verständnis:

  • Local ist die Datenmenge, die der Connect Dienst vom Client empfängt und an IPS leitet
  • Remote ist die Datenmenge, die der Connect Dienst von IPS bekommt und an den Client sendet

Warum ist dann der Wert für Empfangen (Remote) so hoch und der für Gesendet (Local) so niedrig. Meinem Verständnis nach müsste es genau umgekehrt sein, wenn ich das WF über den Connectdienst aufrufe.

Ich bin gerade auch auf Ursachensuche…
Wie komme ich an die grafische Traffic-Auswertung um ein paar Tests durchzuführen?

@hfichtinger Wenn es über den WFC Endpoint geht, bedeutet dies meistens, dass du große String Variablen hast, die übertragen werden (z.B. HTML Boxen). Kann das sein?

paresy

Das ist auf jeden Fall so. Ich verwende das sehr inflationär :wink: . Das weiß ich auch, nur war es lange Zeit nicht so das Problem. Ok, eventuell hat sich mein Nutzungsverhalten beim externen Zugriff gändert. Das kann sein. Ich hab jedenfalls gestern das WF von extern nicht mehr aufgemacht und die Datenmenenge blieb quasi unverändert. Also ist es das schon.
Meine Frage nach der Interpration der Daten (Senden/Empfangen) würde mich noch interessieren.

Wie generierst du denn die Tabelle?

paresy

Das ist mein Code dafür

//Datenverbrauch Connectdienst
$counter=CC_GetTrafficCounter(52365);
$limitcounter=$counter["LimitCounter"] / 1024000;
$localcounter=$counter["LocalCounter"] / 1024000;
$remotecounter=$counter["RemoteCounter"] / 1024000;
setvalue(28754,$limitcounter);
setvalue(12922,$remotecounter);
setvalue(38391,$localcounter);
if ($limitcounter>500 and $limitcounter<700) $ZaehlerWarnung++;
if ($limitcounter>700) $ZaehlerFehler++;

//Connectverbindungen
$Status_HTML="";
$Status_HTML=$Status_HTML."<table class=\"wwx\" border=\"1\" style=\"width:100%\">";
$Status_HTML = $Status_HTML."<tr>";
$Status_HTML = $Status_HTML."<thead class=\"blue\">
                             <th><center>Url</center></th>
                             <th><center>Hits</center></th>
                             <th><center>Gesamt</center></th>
                             <th><center>Gesendet</center></th>
                             <th><center>Empfangen</center></th>
                             </thead>";
$Status_HTML = $Status_HTML."</tr>";
$connects=CC_GetTrafficStatistics(52365);
foreach ($connects as $connect)
{
	$Status_HTML=$Status_HTML."<tr>";
	$url=$connect["Url"];
	$hits=$connect["Hits"];
	$limitcounter=$connect["LimitCounter"]/1024000;
	$localcounter=$connect["LocalCounter"]/1024000;
	$remotecounter=$connect["RemoteCounter"]/1024000;
	$Status_HTML = $Status_HTML."<td><center>".$url."</center></td>";
	$Status_HTML = $Status_HTML."<td><center>".$hits."</center></td>";
	$Status_HTML = $Status_HTML."<td><center>".number_format($limitcounter,3,",",".")." MB</center></td>";
	$Status_HTML = $Status_HTML."<td><center>".number_format($remotecounter,3,",",".")." MB</center></td>";
	$Status_HTML = $Status_HTML."<td><center>".number_format($localcounter,3,",",".")." MB</center></td>";
	$Status_HTML=$Status_HTML."</tr>";
}
$Status_HTML=$Status_HTML."</table>";
setvalue(49654,$Status_HTML);

Das ist nur ein Teil aus einem großen Skript, dass jede Minute aufgerufen wird um diverse Stati zu überprüfen. Ein sog. System Health Check.

1 „Gefällt mir“

2 Beiträge wurden in ein existierendes Thema verschoben: Ständige Verbingungsabbrüche !?

Könntest du bitte mal deinen SystemHealthCheck näher erklären?

Ich hab mir da ein langes Skript gebastelt, dass verschiedene Dinge überprüft.
Internet, Heizung, ZigBee,…
Ein Teil davon ist auch die Überprüfung der Datenmengen.