Как получить статус flowStatus при установке Windows Apache Minifi

Ответ - НЕТ, но команда Apache разрабатывает эту функцию в соответствии с ответом @apiri ниже.

У меня есть сервер Apache NiFi, который я использую для сбора данных из нескольких источников (Windows / Linux), где у меня установлен minifi.

На каждой граничной конфигурации потока minifi у меня есть самоконтролируемый PG, который собирает внутреннюю статистику minifi, такую ​​как экземпляр: состояние, статистика, бюллетени.

Где вызов выглядит так

Например

#/bin/bash
/opt/minifi/bin/minifi.sh flowStatus instance:health,stats,bulletins  | tail -2 | head -1

Пока все хорошо - я получаю эти данные, извлекаю json -> создаю Influx Call и помещаю его в InfluxDb, который затем отображается в Grafana, у него есть предупреждения, когда один Egde срабатывает, или есть высокая очередь, или даже мусор Сборщик статистики по краю минифай бла бла.

Вопрос:

Как мне это сделать в Windowzzzzz? я схожу с ума.

Исполняемые файлы .bat не отвечают ни на один из параметров flowStatus.

Мне удалось сделать это через Cygwin, но я не хочу устанавливать Cygwin во всех случаях.

Любые идеи здесь о том, как я могу этого добиться?

Благодарность

Вот небольшая демонстрация того, что я пытаюсь сделать:

Все действия выполняются на Windows Server

Работает - это делается из клиента MobaXterm, установленного на Windows Server. ─

[2018-01-24 11:50.51]  /drives/d/minifi/bin
[adrian.oprea.PRODMSTR06] ➤ ./minifi.sh flowStatus connection:all:health,stats | tail -2 | head -1
{"controllerServiceStatusList":null,"processorStatusList":null,"connectionStatusList":[{"name":"OUT Run Script/Extract//2e326e86-0160-1000-7b13-90d03f15b46e","connectionHealth":{"queuedCount":0,"queuedBytes":0},"connectionStats":{"inputCount":30,"inputBytes":2996,"outputCount":30,"outputBytes":2996}},{"name":"OUT Generate Scripts//IN Run Script/Extract","connectionHealth":{"queuedCount":0,"queuedBytes":0},"connectionStats":{"inputCount":10,"inputBytes":12360,"outputCount":10,"outputBytes":12360}}],"remoteProcessGroupStatusList":null,"instanceStatus":null,"systemDiagnosticsStatus":null,"reportingTaskStatusList":null,"errorsGeneratingReport":[]}

Не работает - это делается с помощью PowerShell в качестве администратора и с помощью run-minifi.bat.

    PS D:\minifi\bin> ls


    Directory: D:\minifi\bin


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        12/12/2017  11:47 AM       1939 dump-minifi.bat
-a---        12/12/2017  11:47 AM       1130 minifi-env.bat
-a---        12/12/2017  11:47 AM       1120 minifi-env.sh
-a---        12/12/2017  11:47 AM      10999 minifi.sh
-a---        12/12/2017  11:47 AM       1938 run-minifi.bat
-a---        12/12/2017  11:47 AM       1909 status-minifi.bat


PS D:\minifi\bin> .\run-minifi.bat  flowStatus connection:all:health,stats
The JAVA_HOME environment variable is not defined correctly.
Instead the PATH will be used to find the java executable.

2018-01-24 11:54:55,117 INFO [main] org.apache.nifi.minifi.bootstrap.Command Apache MiNiFi is already running, listening
 to Bootstrap on port 49227
2018-01-24 11:54:55,120 INFO [main] org.apache.nifi.minifi.bootstrap.Command Start method returned null, ending start co
mmand.
PS D:\minifi\bin>

person Up_One    schedule 23.01.2018    source источник
comment
Файл minifi.bat находится на здесь. Не могли бы вы предоставить фактические команды оболочки, которые вы выполняете, и результат (как ошибки в Windows, так и успешную версию в Cygwin)?   -  person Andy    schedule 24.01.2018
comment
Привет, @Andy, я только что обновил свой вопрос.   -  person Up_One    schedule 24.01.2018


Ответы (2)


Это определенно было оплошностью с нашей стороны, и у нас нет явной поддержки вызова flowStatus из одного из файлов bat.

Я создал проблему, чтобы убедиться, что она будет решена в нашем следующем выпуске, расположенном по адресу https://issues.apache.org/jira/browse/MINIFI-430.

Временное временное решение, также указанное в заявке:

Текущий обходной путь заключается в редактировании / дублировании одного из файлов bat и изменении BOOTSTRAP_ACTION на flowStatus и поддержке обработки дополнительных аргументов. Например, эта строка в run-minifi.bat (https://github.com/apache/nifi-minifi/blob/e9e9179f8d359bc30aa61c60f5a35441bfb7513a/minifi-nar-bundles/minifi-frameworki-framework/minifi-framework-bundle//minifi-resources/src/main/resources/bin/run-minifi.bat#L48)

Спасибо, что сообщили нам об этом.

Обновление: оно было включено в главную ветку репо (https://github.com/apache/nifi-minifi/commit/a08bc9a23e7274fce18ae4e281e1105d97962f99) и будет доступен с выпуском 0.5.0.

person apiri    schedule 24.01.2018
comment
Привет, @apiri, это было бы здорово - самое забавное, что я все еще могу работать, но использую тип клиента cygwin :) - person Up_One; 25.01.2018
comment
Я полагаю, что на данный момент ответ НЕТ - я помечу ваш ответ как правильный. - person Up_One; 25.01.2018
comment
На данный момент это было бы правильно, из коробки. Обязательно постараемся решить эту проблему в нашем следующем выпуске. - person apiri; 25.01.2018

Я считаю, что проблема в том, что вы вызываете run-minifi.bat, а не status-minifi.bat. Инструмент run-minifi.bat используется для запуска / остановки Apache MiNiFi.

person Andy    schedule 24.01.2018
comment
ни один из исполняемых файлов .bat не имеет выходных данных, если предоставляется с параметром flowStatus, а также я не могу указать какую-либо ссылку на это в документах - person Up_One; 24.01.2018
comment
У меня нет экземпляра Windows, чтобы проверить это прямо сейчас. Однако вы можете увидеть разницу в переменной BOOTSTRAP_ACTION - в run-minifi.bat она установлена ​​в run, а в status-minifi.bat она установлена ​​в status. Что будет на выходе, если вы запустите PS D:\minifi\bin> .\status-minifi.bat flowStatus connection:all:health,stats или PS D:\minifi\bin> .\status-minifi.bat connection:all:health,stats? - person Andy; 24.01.2018
comment
Я просто понял, что minifi работает -PS C: \ Users \ ao \ Desktop \ Personal \ minifijava \ minifi-0.4.0-bin \ minifi-0.4.0 \ bin ›. \ Status-minifi.bat flowStatus connection: all: здоровье, статистика 2018-01-24 12: 35: 28,107 INFO [main] org.apache.nifi.minifi.bootstrap.Command Apache MiNiFi в настоящее время работает, прослушивает Bootstrap на порту 62665, PID = unknown - person Up_One; 24.01.2018