OpenTelemetryを使ってNew Relicにテレメトリデータを送付してみたいと思ったことはないですか?OpenTelemetryにはさっと試せるデモ環境があるのですが、今回は手元のDockerで動かしてテレメトリデータをNew Relicに送ってどのように見えるか試してみたいと思います!
OpenTelemetryのデモ環境の詳細は下記を参照ください。
概要
OpenTelemetryのデモ環境ではJava、Python、Goなどの複数の言語のアプリケーションを立ち上げて、Locust を使って継続的にトランザクションを作り出しています。全体の構成については下記を参照ください。
デフォルトの設定では、OpenTelemetry Collectorを通してメトリクスはPrometheusに、トレースはJaegerに、ログはOpenSearchに送付されています。
本記事では、このOpenTelemetry Collectorの設定を変更してNew Relicにメトリクス、トレース、ログを送付します。
OpenTelemetryのデモ環境をDockerで動かす
デフォルトの設定でOpenTelemetryのデモ環境を動かしてみます。
まずは、リポジトリをクローンして、
git clone https://github.com/open-telemetry/opentelemetry-demo.git
opentelemetry-demoに移動して、デモ環境を起動します。
cd opentelemetry-demo/
make start
デフォルトではメトリクスはPrometheusに、トレースはJaegerに、ログはOpenSearchに送付されるようになっています。詳細は下記を参照ください
テレメトリデータをNew Relicに送付するように変更
続いて、OpenTelemetry Collectorの設定をNew Relicにメトリクス、トレース、ログを送付するように変更してotel-collectorのコンテナを再起動します。
デモ環境ではOpenTelemetry Collectorの設定は、otelcol-config.ymlにかかれていますが、otelcol-config-extras.ymlに設定を書くことで上書きすることができるのでこちらに変更する設定を記載していきます。
<New RelicのLicense key>
には、New RelicのAPI KeyでタイプがIngest - Licenseとなっているものを使用してください。New RelicのAPI Keysの画面で作成可能です。
exporters:
otlp/newrelic:
endpoint: "https://otlp.nr-data.net:4317"
headers:
api-key: "<New RelicのLicense key>"
service:
pipelines:
traces:
exporters: [otlp/newrelic, debug, spanmetrics]
metrics:
exporters: [otlp/newrelic, debug]
logs:
exporters: [otlp/newrelic, debug]
設定が書き終わったらotel-collectorのコンテナを再起動します。
OpenTelemetry Collectorの詳細は下記を参照ください。
New Relicで取り込んだ結果を確認
まず、All Entitiesを確認すると21個のOpenTelemetryのエンティティを確認することができます。
adエンティティを選択すると、まずレスポンス、スループット、エラーレートが表示され、
View charts byで取り込んだメトリクスとトレースのどちらでチャートを表示するか選ぶことができます。
また、Frontendエンティティを表示して、Transactionsを選ぶと時間がかかっているものでランキング表示することができ、
トレースを選択することでその詳細な処理を確認したり、
そのトレースに関連するログを確認したりすることができます。
ちなみに、デモ環境では下記のリンクからFlagdを使ってエラーを発生させることができます。
http://localhost:8080/feature
例えば、adFailureをonにしたりpaymentFailureを100%にするとadやpaymentでエラーが発生し、Errors inboxでエラーを扱えることが確認できます。
まとめ
OpenTelemetryのデモ環境を使ってテレメトリデータをNew Relicに送ってみました。OpenTelemetry Collectorのデータの送り先をNew Relicに変更するだけで、New Relicでトレースとログを紐づけて分析したり、エラーをグループ化して優先順位をつけて分析できたりするのでぜひお試しください。
その他
New Relicでは、新しい機能やその活用方法について、QiitaやXで発信しています!
無料でアカウント作成も可能なのでぜひお試しください!
New Relic株式会社のX(旧Twitter) や Qiita OrganizationOrganizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!