Kapacitor .post () HTTP-сообщение по URL-адресу, не отправляющему данные

Я использую kapacitor для отправки предупреждений по URL-адресу с помощью HTTP POST. Написанный скрипт обращается к заданному URL-адресу, но не отправляет связанные данные ни на один из заданных URL-адресов.

Ниже приведен мой сценарий TICK.

stream
    |from()
        .measurement('cpu')
    |alert()
        .id('kapacitor/{{ index .Tags "host"}}')
        .message('{{ .ID }} is {{ .Level }} value:{{ index .Fields "value" }}')
        .info(lambda: TRUE)
        .post('http://localhost:1440/alert')
        .post('http://localhost/test.php')

Ниже приводится сценарий первого сообщения:

var express = require("express");
var app = express();

var moment = require("moment");
var dateTime = moment();

var bodyParser = require("body-parser");
var urlencodedParser = bodyParser.urlencoded({extended:false});
var jsonParser = bodyParser.json();
var port = 1440;

app.post('/alert', jsonParser ,function(request, response){
    console.log(request.body);
    response.send(); 
});

app.listen(port);

console.log('Express App.js listening to port '+port);

Ниже приводится второй сценарий сообщения:

<?php

    $content = json_encode($_REQUEST);
    echo file_put_contents("/home/mahendra/Documents/tick/highcputick.log", $content);

?>

оба URL-адреса получают пустые данные. Версия Kapacitor: Kapacitor 1.3.1

Ниже приведена конфигурация Kapacitor [[httppost]].

[[httppost]]
   endpoint = "NodeJs"
   url = "http://localhost:1440/alert"
#   headers = { Example = "node" }
#   basic-auth = { username = "my-user", password = "my-pass" }

person Mahendra    schedule 25.09.2017    source источник
comment
Любое обновление, если это сработало для вас?   -  person Shan-Desai    schedule 13.03.2019


Ответы (2)


На самом деле вам нужно установить в тик-скрипте конечную точку, например:

...
.post()
.endpoint('NodeJs')
person arturo mondelo    schedule 25.10.2018

У меня была аналогичная проблема в php-zend framework, и я решил эту проблему.

header('Content-Type: application/json');
$data = json_decode(file_get_contents('php://input'),true);

Детали вашего сообщения будут в $ data. У меня вот это: https://github.com/influxdata/kapacitor/issues/1681

person J.Ewa    schedule 28.01.2019