MackerelにOpenTelemetryのspanを送る時はbatch processorの設定を調整しよう
created at
updated at
この記事は Mackerel アドベントカレンダー の8日目の記事です。
MackerelのOpenTelemeryサポートおめでとうございます、という事で今回はOpenTelemeryのお話です。
皆さん適当にOpenTelemetryのspanを送ってはいませんか、そのspan、本当に送れてますか?
OpenTelemetry Collectorではcollector自身のメトリックを取得できます。
collector自身のメトリックではexporterでspanをどれぐらい送ってるか、どれぐらい送信に失敗したか、などを取得できます。
otelcol_exporter_send_failed_metric_points
の値に注目してください、もしこの値が0じゃないなら送れていない値があります。0ならOKです。さて、もし送れていない値がある場合はどうすればいいでしょうか。正解はbatch processorを挟んで設定を調整する、です。
batch processorでは各種spanの流量を調整できます。今回は
send_batch_max_size
と send_batch_size
と timeout
を調整しましょう。何故か記載されていないのですが、MackerelのOpenTelemetryエンドポイントはペイロードサイズに制限があるので、batch processor側で引っかからないように制限しましょう。
_
yamlbatch/mackerel:
send_batch_max_size: 7500
send_batch_size: 7500
timeout: 5s
send_batch_max_size
と send_batch_size
を7500に制限するとペイロードのサイズ制限に引っかからないようになります。timeout
はお任せで構いませんが、あまり大きくするとラグが生じてしまうので、適当な秒数にしましょう。これでspanを送り放題、皆さんどしどし送っていきましょう!!!
ちなみに執筆時点では1メトリックにつき11円かかるので、クラウド破産をしないよう計画的に送信しましょう
自分は52650メトリックを送っているので58万円かかる計算になります♪