はじめに
ZipkinにおいてAnnotationやTagを条件にトレース検索したい場合、AnnotationQueryを使うのが唯一の方法でした。
しかしAnnotationQueryは以下の点でユーザに負担を強いるため、初心者にとってはいささかハードルの高いものでした。
- ユーザがクエリのフォーマットを覚えなければならない
- ユーザがAnnotation名やTagのキーやバリュー値を覚えなければならない
そうした問題を解決するため、Zipkin-2.11.x 〜 2.12.xでAutocompleteTagsという機能が追加されました。
この機能を用いればTagのキーとバリューが補完されるようになり、Tag情報を用いたトレースの検索が比較的簡単になること請け合いです。
使い方
Zipkinの実行時にAUTOCOMPLETE_KEYS
という環境変数に補完したいタグのキー文字列をカンマ区切りで指定するだけです。
AUTOCOMPLETE_KEYS=key1,key2,...,keyN java -jar zipkin.jar
具体例
例としてこのトレース情報を使ってみます。
このトレース内のスパンはservice_asg_name
とservice_cluster_name
という名前のキーのタグを持っているので、これらを補完してみることにします。
起動
上述したように起動時には環境変数AUTOCOMPLETE_KEYS
に補完したいキー名を指定します。
AUTOCOMPLETE_KEYS=service_asg_name,service_cluster_name java -jar zipkin.jar
データのPOST
JSONファイルへのパスは適宜変更してください。
curl -XPOST -H "Content-Type: application/json" http://localhost:9411/api/v2/spans -d @netflix.json
動作の確認
localhost:9411
にブラウザでアクセスして…。
service_asg_name
とservice_cluster_name
というキーと、それぞれに対応するバリューが補完されていることと、それらを用いて検索ができてることが確認できると思います。