トレースの設定
このガイドでは、Milvusのトレースを収集するためにJaegerを設定する方法を説明します。
前提条件
Jaegerの導入
JaegerはUber Technologiesがオープンソースで公開している分散トレーシングプラットフォームです。
1.KubernetesへのJaeger Operatorのインストール
オペレータをインストールするには、以下を実行する:
$ kubectl create namespace observability
$ kubectl create -f https://github.com/jaegertracing/jaeger-operator/releases/download/v1.62.0/jaeger-operator.yaml -n observability
この時点で、jaeger-operator
のデプロイが利用可能になっているはずです。以下のコマンドを実行することで表示できます:
$ kubectl get deployment jaeger-operator -n observability
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
jaeger-operator 1 1 1 1 48s
2.Jagerのデプロイ
Jagerインスタンスを作成する最も簡単な方法は、次の例のようなYAMLファイルを作成することです。これはデフォルトのAllInOneストラテジーをインストールし、オールインワンイメージ(jaeger-agent、jaeger-collector、jaeger-query、Jaeger UIを組み合わせたもの)を単一のポッドにデプロイします。
トレースを長期間保存したい場合は、production-strategyを参照してください。
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: jaeger
YAMLファイルはkubectl
:
$ kubectl apply -f simplest.yaml
数秒で、Jaegerの新しいインメモリ・オールインワンインスタンスが利用可能になり、迅速なデモや開発目的に適しています。作成されたインスタンスを確認するには、jaegerオブジェクトをリストアップする:
$ kubectl get jaegers
NAME STATUS VERSION STRATEGY STORAGE AGE
jaeger Running 1.62.0 allinone memory 13s
HelmチャートでMilvusをインストールする
以下の設定で、Milvus with Helm Chartをインストールまたはアップグレードすることができます:
extraConfigFiles:
user.yaml: |+
trace:
exporter: jaeger
sampleFraction: 1
jaeger:
url: "http://jaeger-collector:14268/api/traces"
上記の設定をMilvusの新規導入に適用するには、以下のコマンドを実行します:
$ helm repo add zilliztech https://zilliztech.github.io/milvus-helm
$ helm repo update
$ helm upgrade --install -f values.yaml my-release milvus/milvus
上記の設定を既存のMilvus展開に適用するには、次のコマンドを実行します:
$ helm upgrade my-release -f values.yaml milvus/milvus
トレースの表示
Helm ChartでJaegerとMilvusをデプロイすると、dfaultによってingressが有効になります。以下のコマンドを実行することでイングレスを表示できます:
$ kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
jaeger-query <none> * 192.168.122.34 80 14m
イングレスが利用可能になったら、http://${ADDRESS}
にナビゲートしてJaeger UIにアクセスできます。${ADDRESS}
をイングレスの実際のIPアドレスに置き換えてください。
以下のスクリーンショットは、Jaeger UIでMilvusの検索操作時と負荷収集操作時のトレースを表示したものです:
トレース検索リクエスト
トレース負荷収集リクエスト