RS DB-Analyzer

Im Idealfall und das war genau meine Frage kann ich beim Einlesen der Variablen von den Geräten schon bestimmen mit wievielen Nachkommastellen ich arbeiten möchte (bzw. dort im hintergrund ein round (x,n) einbauen.
Dann sollten sich die Anzahl der geloggten Datensätze bei vielen Float Variablen massiv reduzieren lassen (ich habe das mal als Feature request eingestellt).
Probeweise habe ich mal versucht bei mir im Variablenprofil „eigene Aktion“ einer Floatvariable ein Script aufzurufen welches bei dieser Variablen ein round(x,1) durchführt. Ich bekomme allerdings eine Fehlermeldung, denn die Eingangsvariablen sind wohl „read only“ bzw. in der Datenbank bei logging hat sich leider auch keine Veränderung ergeben.

Oder mache ich hier was falsch, bzw. gibt es einen anderen Trick um die Variablen beim Einlesen zu manipulieren noch vor dem Speichern?

Gruß
Bernd

Nach nun 60 Tagen Regelbetrieb mit dem DB-Analyzer habe ich mal ne Auswertung der DB-Wachstumsrate gemacht. Vor dem DB-Analyzer (Sommer 2012) hatte ich einen Zuwachs von 7,8MB pro Tag. Durch das Datenmanagement des DB-Analyzers ist dieses Wachstum auf 22% gesunken (1,7MB/Tag). Deutlich besser, als ich vermutet hatte.

RSDB-Analyzer-Vergleich-Datenzuwachs.png

Hi,

bei den Scripten stehen diverse ID’s mit drinne wo schon im Install-Script dahinter steht das diese nicht existieren. Istd as so gewollt?
z.B. /[Objekt #65535 existiert nicht]#59999; #10000 usw.

Hi,

wenn du mir den Kontext etwas ausführlicher schildern kannst, kann ich sicher was dazu sagen

Codeschnipsel aus der 49241.ips.php, dem Script aus dem Archiv:


.
.
.
ObjectID,44865 /*[IPS Maintenance\RS DB Analyzer\Core\DB-Analyzer\DB Cleaner\]*/;HasChildren,;ObjectIcon,;ObjectID,44865 /*[IPS Maintenance\RS DB Analyzer\Core\DB-Analyzer\DB Cleaner\]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,ScriptTimer;ObjectPosition,0;ObjectSummary,;ObjectType,4;ParentID,20222 /*[IPS Maintenance\RS DB Analyzer\Core\DB-Analyzer\DB Cleaner]*/;isConfigTree,0;CyclicDateDay,0;CyclicDateDayValue,0;CyclicDateFrom,0;CyclicDateTo,0;CyclicDateType,0;CyclicDateValue,0;CyclicTimeFrom,1362179326;CyclicTimeTo,0;CyclicTimeType,1;CyclicTimeValue,86400 /*[Objekt #20864 existiert nicht]*/;EventActive,1;EventID,44865 /*[IPS Maintenance\RS DB Analyzer\Core\DB-Analyzer\DB Cleaner\]*/;EventLimit,0;EventType,1;LastRun,1362179326.422;NextRun,1362265726;TriggerSubsequentExecution,;TriggerType,0;TriggerValue,;TriggerVariableID,0;
.
.
.
ProfileName,ReAgg.Jobsteuerung;Digits,0;Icon,;IsReadOnly,;MaxValue,0;MinValue,0;Prefix,;ProfileType,1;StepSize,0;Suffix,;|Color,16711680;Icon,;Name,Off;Value,0;§Color,16763904;Icon,;Name,Pause;Value,1;§Color,65280 /*[Objekt #65280 existiert nicht]*/;Icon,;Name,Run;Value,2;§
.
.
.
// VarProfile-Assoziationen für Job-Type $ TS-manager Uhrzeiteingabe setzen
	@IPS_SetVariableProfileAssociation(§\'ReAgg.JobType§\', 0, §\'Manuell§\', §\'§\', 65280 /*[Objekt #65280 existiert nicht]*/);
.
.
.

Sind jedenfalls einige beginnend irgendwo bei Zeile 1500 und folgende und die tauchen dann letztlich auch so in den angelegten Scripten auf.

das ist so ok. Nicht gewollt, aber geduldet :wink:

Ok, Fehler oder Probleme scheints ja auch nicht zu machen :slight_smile:

Hi Raketenschnecke,

ich hab’s ebenfalls installiert, hänge aber an einer Stelle.

Zu Beginn hab ich mal eine Var. zum Check ausgewählt, die Reaggregation lief auch einige Stunden. Jetzt steht der Screen so wie untenstehend und nichts geht mehr.

Hast Du eine Idee, wie ich alles ev. zurücksetzen kann?

Gr, Stromer

Hi Stromer,

ist sicher, dass die Reaggregation gelaufen ist? Hast Du irgendwelche Eingaben während der Reaggregation vorgenommen?Versuch: nimm mal den Haken vor der Variable raus und klicke auf Update.

Hi Raketenschnecke,

er nudeld kurz rum „call your Server“ um dann wieder mit der angehakten Variable zu erscheinen. Der Screen hat sich nicht geändert. Sh. oberes Post.

Danke, Stromer

ok, nochmal präziser nachgefragt: läuft die Reaggregation der angezeigten Variable noch?

OK, läuft nicht mehr.

ich versuch das mal bei mir nachzustellen, wird aber dauern. Zwischenzeitlich hätte ich noch einen trial-and-error Vorschlag: klick mal auf „Off“ links oben

Hi Stromer,

ich vermute, dass das Reagg-Script das Ende der Reaggregation nicht mitbekommen hat. Das kommt zwar mal vor, aber eher sehr selten.
Geh mal in das „RSDB_VarInventory.csv“ (Pfad: C:\IP-Symcon\webfront\user\RSDB_Analyzer\csv)
such dort die Variablen-ID (Strg+F) und lösch mal aus der Zeile den Status „on“ raus

wenn du dann ein Update im WFE machst, sollte das Thema behoben sein

Die Var. fehlt dort :eek:
RSDB_VarInventory.txt (30.5 KB)

also ich kann sie sehen :smiley:

Nachtrag: meine Reaggregation lokal ist eben durchgelaufen (2 Variablen, Manuelle reaggregation), alles perfekt funktioniert. Ich denke, da hat irgendwas gehakt, was normalerweise funktioniert… Meld Dich mal, wenn das nochmal vorkommt.

Sorgen muss man sich hier nicht machen, da lediglich der Status der Ablaufsteuerung unkorrekt ist. Ist nicht schön, wenn ich die Ursache finden sollte, werde ich es abstellen

Hi Raketenschnecke,

ist jetzt korrigiert, war einfach blind. Leider reagiert das WF nicht so wie es sollte. Vielleicht schaust Du es einfach nochmal an.
Ich würde gerne mal alle Vars checken lassen um einfach mal die ganzen Analysen zu sehen…

Danke, Stromer

Hi Stromer,

klar kein Problem. Was genau willst du denn machen bzw. erreichen?

Hallo Raketenschnecke,

hab dein DB-Analyzer installiert um die DB etwas aus zu dünnen…
Nach der Installation, Eintragen der WFC-IDs und dem Ausführen des User-config-Scripts sagt er im WF lediglich „…confused?“, ich warte nun schon 2h und nichts ändert sich.
Im Objektbaum steht vor dem Script „Aggregations-Manager“ ein Ausrufezeichen und er gibt dort folgende Meldung aus wenn ich das script manuell ausführe:

Notice:  Undefined variable: RawInventory in [RS DB Analyzer\Core\Aggregation-Manager\Aggregations-Manager] on line 186
Abort Processing during Fatal-Error: Argument 1 passed to WernersArrayMultisort() must be of the type array, null given, called in D:\IP-Symcon\scripts\31773.ips.php on line 186 and defined
   Error in Script D:\IP-Symcon\scripts\49847.ips.php on Line 151

Vor dem Script „read DB“ steht ebenfalls ein Ausrufezeichen und er gibt dort folgende Meldung aus wenn ich das script manuell ausführe

Fatal error:  Maximum execution time of 60 seconds exceeded in [RS DB Analyzer\Core\DB-Analyzer\DB Cleaner\read DB] on line 34
Abort Processing during Fatal-Error: Maximum execution time of 60 seconds exceeded
   Error in Script D:\IP-Symcon\scripts\44886.ips.php on Line 34

Kannst Du mir helfen?

Gruß
hardlog

Hi Hardlog,

das Script Aggregationsmanager soll nicht manuell gestartet werden, weil er übergebene Wertze benötigt, um arbeiten zu können. Desahlb die erste Fehlermeldung. Also erstmal „normal“.

Das eigentlichze Problem ist vermutlich ein Performance-Problem auf deinem IPS-Server: die max execution-time von 60 Sec reicht bei dir nicht aus. Verdoppel die mal und proboiere, ob es dann passt. Nach dem Hochsetzen der execution-Time (im Script „read DB“) bitte nochmals das Config-Script zur Initialisierung ausführen.