見出し画像

翻訳しながらOpenTelemetryを触ってみる~Collector編~

はじめに

今回はCollectorに関してみていきます。

概要を読んだ時に役割については軽く書かれていたので少しだけ理解していますが実際の使用方法など詳しい利用方法に関してはわからないので知りたいと思っています。

今回もドキュメントに沿って進めていきます。

Collector

Collecter → ベンダーによらずテレメトリーデータの受信・処理・公開を行う
ここら辺は概要でも書いていましたね!

いつCollectorを使うべき?

  • ほとんどの言語では他のバックエンドやOTLPエクスポーターが実装されている

  • 直接データを(PrometheusやJaegerに対して)送信することができるのになぜCollectorにデータを送信する必要がある?

    • 初めてであるなら直接データを送るのが早い

    • 開発段階や小規模な環境ならCollectorなしでも大丈夫

  • データの追加処理などもできるためCollectorを使用するのがオススメ

要約すると直接データの送信を送っても良いけどCollecterを使うことをオススメするよ!という内容でした。

Instrumentationの章でGoのテレメトリーデータを取得した時Collectorを介さないといけないのだと思っていたのですがこの文章を読んだ感じどうやら直接送信もできるみたいですね。

Getting Started

Deploymentに関しては以前のConcepts編でも書いてあったのでサラッと読んでおきます。

  • Agent

  • Gateway

サービスによって使い分けていく感じですかね?

Getting Startedは複数のプラットフォームで用意されていますがDemoに従ってみます。READMEを読んでそれぞれのバックエンド(Prometheus, Zipkin, Jaeger)にアクセスして触ってみました。正直データの読み方があまりわからないです。JaegerのUIに関しては少し調べてみる価値があるかもしれないです。ただどんなアクセスがあったかは直感的にわかりました。

Configuration

Collectorの設定ファイル(otel-collector-config.yaml)の設定について説明されています。
これをもとにGetting Startedで実行したファイルにどんなことが書かれてあるかわかりました。

例では受信は全てotlpで特に処理は行わずprometheus, jaeger, zipkinに対してポートを開けています。

これは覚えるというよりかは実装の時にドキュメントを見て参考にするといった感じでしょうか?

感想

簡単にではありますがOpenTelemetryCollectorを触ってみました。基本的にデータはCollectorに送信するようにしてそこから各サービスに対して情報を送信したり受け取ってもらったりすれば結構簡単に実装ができるというイメージを持ちました。

ただOpenTelemetry自体には可視化ツールは入っていないみたいなのでトレースであればjaegerだったりメトリックスであればprometheusだったりを使わないといけないと思いました。それぞれのUIを見ても見方がそもそもわからない気がしたのでそのUIに関しても少し調べてみようと思います!


この記事が気に入ったらサポートをしてみませんか?