Sie können SIGNL4-Alarme per Inbound-Webhook auslösen. Dies ist ein einfacher und zuverlässiger Weg zur Integration mit Ihren Backend-Systemen. Zu diesem Zweck haben wir einige Code-Beispiele aufgelistet, wie Sie Webhook-Anfragen an SIGNL4 senden können. Sie müssen hier entsprechend durch Ihr SIGNL4-Teamgeheimnis ersetzen und können je nach Bedarf zusätzliche Parameter zu den Alarm-Daten hinzufügen.
Informationen zum Setup der Webhooks findest du in unserer Getting-Started-Dokumentation.
cURL
Bash Script
PowerShell
Node.js
Python
C#
Go
PHP
Ruby
Flutter / Dart
Du findest die Code-Beispiele auch auf GitHub: https://github.com/signl4/code-snippets
curl -X POST 'https://connect.signl4.com/webhook/{team-secret}' -H 'Content-Type:application/json' -d '{"Title":"Test Alert","Text":"Hello world."}'
# Send SIGNL4 alert from Bash
# SIGNL4 team secret
team_secret="team-secret"
# Alert data
data()
{
cat <
# Send SIGNL4 alert from PowerShell
# SIGNL4 team secret
$team_secret = ""
# Alert data
$data = @{
"Title"="Alert"
"Message"="SIGNL4 alert from PowerShell"
} | ConvertTo-Json -Depth 4
Invoke-RestMethod "https://connect.signl4.com/webhook/$team_secret" -Method POST -ContentType "application/json" -Body $data
// Send SIGNL4 alert from Node.js
// Your SIGNL4 team secret
const teamSecret = 'team-secret'
const https = require('https')
// Alert data
const data = JSON.stringify({
'Title': 'Alert',
'Message': 'SIGNL4 alert from Node.js'
})
// SIGNL4 webhook URL
const options = {
hostname: 'connect.signl4.com',
port: 443,
path: '/webhook/' + teamSecret,
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': data.length
}
}
const req = https.request(options, res => {
console.log(`statusCode: ${res.statusCode}`)
if (res.statusCode != 201) {
// Error
console.error('Error: ' + res.statusCode)
return
}
// Success
res.on('data', d => {
process.stdout.write(d)
})
})
// Error
req.on('error', error => {
console.error(error)
})
req.write(data)
req.end()
# Send SIGNL4 alert from Python
import requests
# Your SIGNL4 team secret
teamSecret = 'team-secret'
# SIGNL4 webhook URL
webhook_url = 'https://connect.signl4.com/webhook/' + teamSecret
# Alert data
alert_data = {
'Title': 'Alert',
'Message': 'SIGNL4 alert from Python'}
result = requests.post(url = webhook_url, json = alert_data)
if result.status_code == 201:
# Success
print(result.text)
else:
# Error
print('Error: ' + str(result.status_code))
using System;
using System.IO;
using System.Net;
using System.Text;
// Send SIGNL4 alert from C#
// Your SIGNL4 team secret
string teamSecret = "team-secret";
// Alert data
string json = @"{
'Title': 'Alert',
'Message': 'SIGNL4 alert from C#'
}";
sendSIGNL4Alert(teamSecret, json);
public static void sendSIGNL4Alert(string strTeamSecret, string strData)
{
string url = "https://connect.signl4.com/webhook/" + strTeamSecret;
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(strData);
request.ContentType = "application/json";
request.ContentLength = byteArray.Length;
// Send the request
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
using (dataStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine("Status Code: {0}", (int)response.StatusCode);
Console.WriteLine(responseFromServer);
if ((int)response.StatusCode == 201) {
// Success
Console.WriteLine("Success");
}
else {
// Error
Console.WriteLine("Error");
}
}
response.Close();
}
catch (Exception e)
{
// Error
Console.WriteLine("Error: " + e.ToString());
}
}
package main
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
)
// Send SIGNL4 alert from Go
func main() {
// Your SIGNL4 team secret
teamSecret := "team-secret"
url := "https://connect.signl4.com/webhook/" + teamSecret
// Alert data
var jsonStr = []byte(`{
"Title":"Alert",
"Message": "SIGNL4 alert from Go"}`)
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
// Error
fmt.Println("Error")
panic(err)
}
defer resp.Body.Close()
if resp.StatusCode == 201 {
// Success
fmt.Println("Success")
} else {
// Error
fmt.Println("Error: " + resp.Status)
}
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("response Body:", string(body))
}
require 'net/http'
require 'uri'
require 'json'
# Send SIGNL4 alert from Ruby
# SIGNL4 team secret
team_secret = "team-secret"
# Alert data
alert_data = { "Title" => "Alert", "Message" => "SIGNL4 alert from Ruby" }.to_json
url = "https://connect.signl4.com/webhook/" + team_secret
res = Net::HTTP.post URI(url),
alert_data,
"Content-Type" => "application/json"
# Status
puts res.code
puts res.message
# Body
puts res.body
case res
when Net::HTTPSuccess, Net::HTTPRedirection
if res.code == "201"
# Success
puts "Success"
else
# Error
puts "Error1"
end
else
# Error
puts "Error"
end
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() {
print('Sending SIGNL4 alert ...');
sendRequest('SIGNL4 Alert from Dart.');
}
// Send alert
Future sendRequest(String title) async {
// SIGNL4 team secret
String teamSecret = 'signl4-team-secret';
final response = await http.post(
Uri.parse('https://connect.signl4.com/webhook/' + teamSecret),
headers: {
'Content-Type': 'application/json',
},
body: jsonEncode({
'title': title,
}),
);
if (response.statusCode == 201) {
// If the server did return a 201 CREATED response,
// then parse the JSON.
print(jsonDecode(response.body)['eventId']);
} else {
// If the server did not return a 201 CREATED response,
// then throw an exception.
print('Error: ${response.statusCode}');
throw Exception('Failed to send alert.');
}
}