Berechnen Sie
Funktion | Berechnen Sie neue Werte, indem Sie andere SKOOR-Jobmessungen mit Python-Skripten kombinieren oder aggregieren. Es können ein oder mehrere Filter konfiguriert werden, um Jobs nach Typ, Name, benutzerdefinierten Eigenschaften oder anderen Kriterien zu suchen. Alle Rückgabewerte oder aggregierten Werte der gefilterten Jobs können für die Berechnung verwendet werden. |
|---|---|
Alarmierung | Laufzeit, Skriptzeit, Fehlercode, Rückgabewert <0-n>, Zeichenfolgenwert <0-n>, Jobanzahl <0-n>. |
Berechnungsjobs dürfen nur von Benutzern vom Typ „Administrator” erstellt/bearbeitet werden, da sie die Ausführung von beliebigem Code auf dem SKOOR Collector oder dem SKOOR Server (im Falle des kollektorlokalen) ermöglichen.
Die in das Inline-Textfeld eingegebene ausführbare Datei oder der Code wird mit den Berechtigungen des Benutzers „eranger” ausgeführt. Daher können nur begrenzte Befehle ausgeführt werden, es sei denn, der Linux-Administrator (root) aktiviert zusätzliche Befehle, z. B. mit sudo.
Berechnungsdetails
Da Berechnungsaufträge auf dem Server ausgeführt werden und mit Messungen anderer Aufträge arbeiten, wird für die Ausführung kein Kollektor verwendet. Der im Abschnitt „Auftragsausführung“ ausgewählte Kollektor ist irrelevant.
Um einen Wert zu berechnen, muss mindestens ein vorhandener SKOOR-Job im System ausgewählt werden. Aus diesem Job oder diesen Jobs können alle Rückgabewerte für die Berechnung verwendet werden.
Zunächst muss ein übergeordnetes Objekt für die Suchfilter ausgewählt werden. Klicken Sie auf die Schaltfläche „Durchsuchen“ und das Dropdown-Menü neben „Suchen“ unten, um das übergeordnete Objekt zu definieren. Klicken Sie auf die Schaltfläche „+“ neben „Filter 1“, um bei Bedarf weitere Filter hinzuzufügen:
Fügen Sie Filterkriterien mit den Schaltflächen „+“ und „-“ eines Filters hinzu oder entfernen Sie sie. Im folgenden Beispiel werden alle Ausführungsaufträge mit der benutzerdefinierten Eigenschaft „Kanton“ gesucht, die auf „Zürich“ gesetzt ist:
Für jeden Filter muss nun der Wertetyp mithilfe der Dropdown-Liste „Werte für Skript“ ausgewählt werden. Die folgenden Optionen stehen zur Verfügung:
Kategorie | Typ |
Aggregiert | Durchschnitt, Min, Max usw. |
Für jeden Auftrag | Spitzenwerte der letzten Stunde |
Klicken Sie abschließend neben dem Dropdown-Menü „Werte“ auf „Aktualisieren“, um das Menü mit den verfügbaren Werten aus den gefilterten Jobs zu füllen, und wählen Sie einen der Werte aus dem Dropdown-Menü aus, der dann für die Berechnung verfügbar ist:
Inline-Skript
Dieser Abschnitt ist der Hauptteil der Arbeit bezüglich des Berechnungsjobs. Nachdem die Jobwerte ausgewählt wurden, muss ein Python-Skript erstellt werden, um etwas mit ihnen zu tun. Klicken Sie auf die Informationsschaltfläche in der oberen rechten Ecke des Abschnitts „Jobparameter“, um die Hilfeseite mit Beispielskripten zu öffnen:
In der Jobdefinition wird ein Vorlagenskript bereitgestellt. Dieses Skript enthält die variablen Daten mit allen Ergebnissen aus den gefilterten Jobs, formatiert als JSON. Diese JSON-Zeichenfolge sieht je nach ausgewähltem Wertetyp und Rückgabewert wie folgt aus (zur besseren Lesbarkeit leicht bearbeitet):
{
"arguments": [],
"thisJob": {
"type": "jobInfo",
"jobId": 4769,
"jobType": 10,
"jobTypeName": "calculate",
"jobState": 0,
"jobStateName": "Undefined",
"lastTs": 0,
"values": {}
},
"results": [
{
"type": "jobAggregateValues",
"filter": 1,
"value": "return_value1",
"count": 43,
"average": -24882040.997674418,
"max": 24648.0,
"min": -1070000000.0
}
],
"info": [
{
"filter": 0,
"warning": false
}
]
}
JSON-Element | Beschreibung |
|---|---|
argumente | Array der zum Skript hinzugefügten Argumente. Im obigen Beispiel wurden keine hinzugefügt. |
thisJob | Daten des berechneten Auftrags selbst |
results | Werte der resultierenden Jobs pro Filter. Diese werden für die Berechnung verwendet. |
info | Zusätzliche Job-Informationen. Warning, wenn beispielsweise keine Jobs durch eine Filterdefinition gefunden werden |
Wie auch auf der Job-Info-/Hilfeseite beschrieben, können die Werte mit der folgenden Python-Codezeile in die SKOOR-Rückgabewerte des Berechnungsjobs eingefügt werden (Beispiel entspricht dem obigen JSON):
setErangerValues(data["results"][0]["average"],data["results"][0]["max"],data["results"][0]["min"])
Die erforderlichen Funktionen zum Zuweisen von SKOOR-Ergebniswerten sind in der Dropdown-Liste „Tags” verfügbar. Fügen Sie Argumente und Rückgabewerte unterhalb des Feldes „Inline-Skript” der Konfiguration hinzu:




