2017-11-09 12 views
1

influx dbタグを動的に送信することは可能ですか?次の設定は、流入dbクライアント経由ですべてのタグを選択しようとしたときに0の結果を返し、どのように変更されるべきかアドバイスをお願いします。前もって感謝します。ここでRiemannクライアントでInfluxDBタグを動的に送信する方法

(def send-influx 
(influxdb/influxdb { 
    :host "localhost" 
    :db "riemann" 
    :username "riemann" 
    :password "riemann"} 
)) 

(streams 
(where (and (not (expired? event)) (service "service")) 
    #(info %) 
    (by [:host :service :id] 
     (changed :metric {:pairs? true} 
      (fn [[startEvent endEvent]] 
       (when-not (empty? startEvent) 
        (let [diff (- (:metric endEvent) (:metric startEvent))] 
         (send-influx [{ 
          :host (:host startEvent), 
          :service (:service startEvent), 
          :id (:id startEvent), 
          :metric diff, 
          :time (:time startEvent) }, 
          :tag-fields {:id (:id startEvent)} }] 
         ) 
        ) 
       ) 
      ) 
     ) 
    ) 
)) 

答えて

1

リーマンのドキュメントからの例です:あなたが見ることができるように

(def influx (influxdb {:host "localhost" 
         :db "riemann" 
         :version :new-stream})) 

(streams 
    (smap 
    (fn [event] 
     (assoc event :measurement  (:service event) 
        :influxdb-tags {:state (:state event)} 
        ;; :value = 0 by default 
        :influxdb-fields {:value (or (:metric event) 0)})) 
    influx)) 

、あなたが使用する必要があります:測定、:influxdbタグ、および:イベントでinfluxdbフィールドのキーを。

この設定は、Riemann 0.2.13以降で動作します。

0

いくつかの理由のためのバージョンの互換性がないか、なめらかに起因するいくつかの解析例外がありましたので、残念ながら、それは、多くの助けにはならないが、しかし、私は最終的には、以下の

(def send-influx 
    (influxdb/influxdb { 
     :host "localhost" 
     :db "riemann" 
     :username "riemann" 
     :password "riemann" 
     :tag-fields #(:id)}) 

(streams 
(where (and (not (expired? event)) (service "service")) 
    #(info %) 
    (by [:host :service :id] 
    (changed :metric {:pairs? true} 
     (fn [[startEvent endEvent]] 
      (when-not (empty? startEvent) 
       (let [diff (- (:metric endEvent) (:metric startEvent))] 
        (send-influx [{ 
         :host (:host startEvent), 
         :service (:service startEvent), 
         :id (:id startEvent), 
         :metric diff, 
         :time (:time startEvent) }, 
         :id (:id startEvent) }] 
        ) 
       ) 
      ) 
     ) 
    ) 
) 
)) 
へのconfigsを変更することで動作させることができました
関連する問題