TWSNMP FC/FKのgNMI対応開発9日目:gNMIによるポーリングを作っています
今朝も4時に助手の猫さんが起こしてくれました。ご飯を食べて30分後にまた呼びにきました。夜が開け始めるころに外を見たいらしく雨戸をあけろと言いにきたようです。6時前に、かみさんを起こそうとして騒いで、怒られてました。
gNMIツールはなんとかできたので、gNMIによるポーリングを作り始めました。
のような設定で動作しました。
種別は、gnmiです。
モードはgetとsubscribeに対応しようと思います。getは、SNMPと同じように定期的に情報を取得して判断する方法です。subscribeは変化があったら、即時検知できるSNMPのTRAPよりすごいモードです。
今朝はとりあえずgetだけ作りました。
パラメータは、gNMIのターゲットを指定します。空欄なら
ノードのIP:57400
にします。数値だけならポート番号として扱います。
検索フィルターにパスを指定します。
最初JQでデータを抽出しようと思いましたが、作り始めてから良いアイデアが浮かびました。
TWSNMPは、otto
というJavaScriptのエンジンを搭載しています。ポーリングの判定に使っています。この機能を使えば、JSONで取得したデータをパースして判定できるはずなので、やってみました。
var value = JSON.parse(json_data);
value == "up"
のようなスクリプトです。json_dataは、gNMIで取得して応答を、そのまま設定しています。
取得した値が、1つの場合は、うまくいきました。
この方法で、もう少し考えてみます。
subscribeモードは、ポーリングを止める方法を考えなければなりません。
こちらも、うまい方法を考えてみます。
明日に続く
いいなと思ったら応援しよう!
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。
ソフトウェアのマニュアルをnoteの記事で提供しています。
サポートによりnoteの運営にも貢献できるのでよろしくお願います。