問題タブ [riemann]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - 特定のイベントが受信されたときにリーマン指数をクリアする方法は?
Riemann にイベントを送信するアプリケーションの単体テストを作成しています。Riemann の起動は非常に遅いため、一度起動して、すべてのテストでインスタンスを再利用することにしました。したがって、新しい各テストの開始時に、以前のテストによって生成されたイベントからインデックスを消去する必要があります。
私がやろうとしているのは、特別なイベントを受け取ったときにインデックスをクリアするように Riemann を構成することです。このタスクに適していると思われる API 呼び出しがあります: http://riemann.io/api/riemann.index.html#var-clear。しかし、私は Clojure にあまり詳しくなく、使い方がわかりません。これが私の設定の一部です:
しかし、Riemann は次のエラーで開始できません。No implementation of method: :clear of protocol: #'riemann.index/Index found for class: nil
これ(:index @core)
は に評価されるようですnil
。
これも機能しません:
エラーは次のとおりです。No implementation of method: :clear of protocol: #'riemann.index/Index found for class: riemann.streams$default$stream__9829
clojure - Riemann Events へのカスタム日付フィールドの追加
Riemann のデフォルトの構成設定を使用しています。
イベントをそのまま出力しています(ホスト名は削除されています):
時間フィールドは UTC タイムスタンプとして出力されます。上記の構成を使用して、日付を dd-mm-yyyy hh:mm:ss 形式で表示する dateという追加フィールドをこれらのイベントに追加するにはどうすればよいですか? 例えば :
19-10-2015 05:00:00
時間変換を行うように見える関数がいくつかありますが、 config でそれらを実装する方法がわかりません:
clojure - clojure リーマン プロジェクト コレクション
Riemann と Collectd を使用して、明らかに単純なカスタム構成を実行しようとしています。基本的に、2 つのストリームの比率を計算したいと思います。それを行うために、次のようなことを試しました(Rieamann APIプロジェクトの提案はこちら):
これは明らかに機能しますが、しばらくすると、ミスが計算された結果のいくつかに気付きました。ログのデバッグ後、何が起こっているかを確認して値を確認するために、次の構成を完了しました。
驚いたことに、collectd から新しいデータを取得するたびに (10 秒ごと)、以前の未使用のデータを再利用するように、作成した関数が 2 回実行されます。 (where (= :time....) clasue.問題は、メトリックを異なるタイムスタンプで分割していることです。前のコードの出力の下:
私が期待したようにフォーマットされたデータを取得する方法についてヒントを与えることができる人はいますか? 「プロジェクト」機能について私が理解していないことがあると思います。または、受信データが riemann で処理される方法に関連するもの。
前もって感謝します!
更新しました
私は自分の問題を解決することができましたが、それでもそれがどのように機能するかについて明確な考えはありませんが、なんとか解決しました。現在、collectd テール プラグイン (nginx ログから) から 2 つの異なるストリームを受信しており、次のようにそれらの間の商を作ることができました。
私はそれを広くテストしましたが、今のところ正しい結果が得られています。しかし、私はまだいくつかのことを理解していません...まず、合体は両方のイベントが処理された後にのみデータを返すのはどうしてですか。Collectd は両方のストリームのイベントを 2 秒ごとに同じタイム マークで送信します。「合体」の代わりに「プロジェクト」を使用すると、2 秒ごとに 2 つの異なる smap が実行されます (イベントごとに 1 回)。 smap の 2 つのイベントが同じタイム マークで表示されます。これはまさに私が望んでいたことです。
最後に、分子と分母のどちらを選択する基準なのかわかりません。「where」句の「or」句が原因ですか?
とにかく、その背後にいくつかの黒魔術がありましたが、なんとか問題を解決できました ;^)
皆さん、ありがとうございました!
clojure - riemann 設定ファイルで文字列変数を宣言する
私は初心者で、非常に奇妙な問題に直面しています。私は多くの検索を行いましたが、解決策を見つけることができませんでした。私は実際に、riemann 構成ファイルで文字列変数を定義しようとしています。以下の構文を使用しています
毎回、riemann を実行すると、以下のエラー が表示されます java.lang.String cannot be cast to clojure.lang.IFn
誰かが私が間違っていることを教えてもらえますか?
よろしく
clojure - Clojure:riemann.streams$smap$stream IllegalArgumentException: キーは整数でなければなりません
特定の条件が満たされた場合にメールを送信するための clojure コード (riemann) があります。イベントを riemann サーバーに渡す際に、いくつかの問題に直面しています。
リーマン符号
リーマンサーバーのO/P
更新 2:
smap を sreduce に変更しただけです。どのように更新すればよいですか。私はこれに慣れていないので、あなたの提案に従ってコードを変更することについて少し混乱しています
更新 3:
coalesce
を使用してコードを更新し、smap
その子を持っています。エラーは表示されなくなりましたが、メールはトリガーされませんでした。count-of-failures
として取得してい0
ます。私count function
は働いていないと思います。
riemann - Riemann で CPU を常に OK として報告する
Riemann と Riemann-health を使用してサーバーを監視しています。ただし、CPU が非常に短い時間ピークに達したため、かなり多くの CPU クリティカル警告が表示されます。これは、知る必要さえないと思います。私の理解では、一定の CPU 使用率が高いと平均負荷が増加し、これも報告され、より便利に聞こえます。
CPU のレポートを無効にしたくありません。すべてのレベルを問題ないと見なす必要があります。可能であれば、Riemann サーバー上のイベントを変更したいので、すべてのサーバーを変更する必要はありません。
ここでリーマン設定: https://gist.github.com/iGEL/e352764a8c559440c851