Webhook

Funzione

I lavori Webhook sono utilizzati per ricevere dati dall'esterno dello SKOOR Engine, utilizzando la sua API REST. Il job attende i valori in ingresso (valori numerici e stringhe) e memorizza la cronologia dei valori in ingresso.

Allarmi

Codice di errore, Valori, Valori stringa

Per questo tipo di lavoro, il collettore deve essere impostato su uno che possa essere usato per autenticare le chiamate REST. Se non è ancora stato fatto, creare un utente di tipo Collector in /root/Users/Users.

Dettaglio webhook

Parametri del webhook

Parametro

Descrizione

Timeout dopo

Se impostato, il codice di errore del lavoro verrà impostato su 5 (errore di timeout) se non vengono inviati dati al lavoro durante il tempo specificato. Il timeout deve essere ripristinato dal codice di errore inviato con la successiva consegna di dati.

Valori

Aggiungere un valore per ogni valore numerico che verrà inviato a SKOOR REST API. Per ogni valore, un pulsante di definizione dell 'unità consente di specificare il nome, l'unità, il divisore, la precisione e la descrizione del valore.

Valori stringa

Aggiungere un valore stringa per ogni valore stringa che verrà inviato a SKOOR REST API. Per ogni valore di stringa, un pulsante di definizione dell 'unità consente di specificare il nome, l'unità e la descrizione del valore di stringa.

Valori e limiti di allarme dei webhook

Valore / Limite di allarme

Descrizione

Valore 1-x

Valore numerico definito dall'utente

Valore stringa 1-x

Valore stringa definito dall'utente

Codice di errore

Codice di errore generico del lavoro (vedere la sezione Codici di errore del lavoro)

Alimentazione dei dati di un lavoro Webhook

È possibile utilizzare qualsiasi client REST per inviare valori e stringhe al job Webhook. In questo esempio viene utilizzato lo strumento da riga di comando curl. Di seguito è riportato un semplice script di shell bash che alimenterà il job con 2 valori numerici e 1 valore stringa a ogni esecuzione.

Insieme ai valori deve essere inviato un codice di errore per resettare il codice di errore 5 (errore di timeout) se nella configurazione del lavoro è impostato Timeout after.

#!/bin/bash
  
HOST="10.1.0.89"
USER="webhook"
PASSWORD="webhook"
JOBID=830

SESSIONID=$(curl -s -k "https://${HOST}/skoor-webservice/session/login?username=${USER}&password=${PASSWORD}" | python -m json.tool | grep sessionId | cut -d"\"" -f4)

curl -s -k -X POST -H "Content-Type: application/json" -d '{"returnValue1":24.42,"returnValue2":99,"stringValue1":"Skoor Test 3","errorCode":0}' "https://${HOST}/skoor-webservice/webcollector/jobs/$JOBID/values?sessionId=${SESSIONID}"

curl -s -k "https://${HOST}/skoor-webservice/session/logout?sessionId=${SESSIONID}"

Lo script definisce innanzitutto alcune variabili:

  • HOST: l'indirizzo IP o il nome dell'host dello SKOOR Server in cui è configurato il job Webhook

  • USER: il nome dell'utente del collector configurato sullo SKOOR Server

  • PASSWORD: la password dell'utente del collettore

  • JOBID: l'ID del lavoro Webhook che deve ricevere i valori.

Viene quindi eseguito un login allo SKOOR Webservice, ricevendo un ID di sessione. L'ID di sessione è una stringa di questo tipo: d6c38ad55e80b4a3bed39d55699b824e.

Il comando curl invia i valori utilizzando le notazioni returnValueX e stringValueX all'interno di una richiesta POST al SKOOR Webservice, insieme a un ID di sessione valido.

Il corpo della richiesta POST ha questo aspetto:

{
    "returnValue1": 24.42,
    "returnValue2": 99,
    "stringValue1": "Skoor Test 3",
    "errorCode": 0
}

oppure

{
    "returnValue": [24.42, 99],
    "stringValue1": "Skoor Test 3",
    "errorCode": 0
}

I dati da inserire possono provenire da qualsiasi fonte, purché possano essere passati al client REST.

Inviare sempre la richiesta POST utilizzando l'intestazione appropriata Content-Type: application/json.

Come ultimo passo, lo script si disconnette dalla sessione. Assicuratevi di implementare un logout, altrimenti l'esecuzione regolare di questo script lascerà molte sessioni aperte sul Server SKOOR.

Lo script può risiedere ed essere eseguito da qualsiasi host in grado di raggiungere il server SKOOR Engine tramite la sua porta HTTPS TCP 443.

Per ulteriori informazioni sull'API REST, consultare la guida ai webservice disponibile su ogni installazione di SKOOR Engine all'indirizzo https://<SKOOR server>/skoor-webservice.

Prima di eseguire lo script, è necessario definire i 2 valori e il valore di stringa nel job Webhook utilizzando i pulsanti corrispondenti dell 'unità:


Una volta eseguito lo script, il job Webhook dovrebbe aver ricevuto i valori:

Il valore 1 pone il job in stato Minor, poiché sul job sono stati definiti i seguenti limiti di allarme: