AWS Distrofor OpenTelemetry
というわけでreferenceを見て気になった部分をかいつまんでいく。対象となるアプリケーションがJavaで書かれているのでJavaの内容が中心。
当然のことながらADOT Collectorは動かしておく必要がある
このドキュメントほぼ情報無い...
こっち見たほうが良い
デフォの設定はこれ
本家のauto instrumentationの使い方
Play2を使っているので play と play-ws の両方がサポートされているのは非常にありがたい 基本的にAWS環境で使っている (i.e. バックエンドはX-Rayと統合する) 場合はこれを使うことになりそう
javaagentとして食わせる点は本家のotelの使い方と同じ
デフォではOTELのexporterに投げるようになってるっぽい
localhost:4317
サンプリングについては個別に設定できるっぽい。この項目はX-Ray側のサンプリングとは独立していそうに見えるが、X-Rayのサンプリング情報を使うということもできるらしい。
OTEL_TRACES_SAMPLER
OTEL_TRACES_SAMPLER=xray とするとX-RayのRemote Sampling設定を取ってくるようになるらしい
この場合 OTEL_TRACES_SAMPLER_ARG=endpoint=http://... で指定したendpointにリクエストを打ってsampling rateを取ってくるらしい。デフォルト値は http://localhost:2000。つまりこのためにX-Rayのdaemonを動かしておけということなんだろうか?
ADOT Collectorが2000でlistenできるっぽい
OTEL_TRACES_SAMPLER_ARG
ログも出せるとのこと。どういう形式で出るんだろ。
OTEL_TRACES_EXPORTER=logger
OTEL_METRICS_EXPORTER=logger
これ微妙に意味が違って、「logを出す」ではなく「実際のtrace/metricsの送出の代わりにログ出力する」というやつだった。微妙にハマった。
X-Rayのremote samplingのrateを引っぱってくる場合
とはいえわざわざこれ使う必要もそんな無い気はする。OTELのサンプリングで十分では?
いらんauto instrumentationを除去する
OTEL_JAVAAGENT_EXCLUDE_CLASSES
IAM権限について