MackerelにOpenTelemetryのspanを送る時はbatch processorの設定を調整しよう

created at
updated at
technology Mackerel OpenTelemetry Observability

この記事は Mackerel アドベントカレンダー の8日目の記事です。

MackerelのOpenTelemeryサポートおめでとうございます、という事で今回はOpenTelemeryのお話です。
皆さん適当にOpenTelemetryのspanを送ってはいませんか、そのspan、本当に送れてますか?

OpenTelemetry Collectorではcollector自身のメトリックを取得できます。
collector自身のメトリックではexporterでspanをどれぐらい送ってるか、どれぐらい送信に失敗したか、などを取得できます。
https://scrapbox.io/files/6754605addb469723c5f61b5.png

otelcol_exporter_send_failed_metric_points の値に注目してください、もしこの値が0じゃないなら送れていない値があります。0ならOKです。

さて、もし送れていない値がある場合はどうすればいいでしょうか。正解はbatch processorを挟んで設定を調整する、です。
batch processorでは各種spanの流量を調整できます。今回は send_batch_max_sizesend_batch_sizetimeout を調整しましょう。
何故か記載されていないのですが、MackerelのOpenTelemetryエンドポイントはペイロードサイズに制限があるので、batch processor側で引っかからないように制限しましょう。
_
yamlbatch/mackerel:
  send_batch_max_size: 7500
  send_batch_size: 7500
  timeout: 5s

send_batch_max_sizesend_batch_size を7500に制限するとペイロードのサイズ制限に引っかからないようになります。
timeout はお任せで構いませんが、あまり大きくするとラグが生じてしまうので、適当な秒数にしましょう。

これでspanを送り放題、皆さんどしどし送っていきましょう!!!

ちなみに執筆時点では1メトリックにつき11円かかるので、クラウド破産をしないよう計画的に送信しましょう
https://scrapbox.io/files/67546053a9bbb70c462e6530.png
自分は52650メトリックを送っているので58万円かかる計算になります♪