paint-brush
Datadog Agent を使用したローカル デバッグのガイド@hacker5281989
7,311 測定値
7,311 測定値

Datadog Agent を使用したローカル デバッグのガイド

Dhivya Dandapani4m2023/03/21
Read on Terminal Reader

長すぎる; 読むには

Datadog ツールは、本番ログを視覚化するために使用されます。 MacOSX マシンにインストールできます。このツールは Java で作成されており、Java アプリケーションの監視に使用できます。無料で、同社のウェブサイトで無料で入手できます。以下の手順は、ローカル インストール用です。
featured image - Datadog Agent を使用したローカル デバッグのガイド
Dhivya Dandapani HackerNoon profile picture
0-item
1-item

ローカル マシンで Datadog をセットアップすることを気にする必要がある場合は、「理由」から始めましょう。設定する動機を共有できます

私の強い「理由」:不安定なテストを理解しようとしている:

カバレッジの高い広範なエンド ツー エンドのテスト スイートがありました。しかし悲しいことに、テストは時間の経過とともにますます不安定になりました。残念なことに、テストが単独で実行された場合、テストはパスしました。テスト スイート全体を実行すると、多くのテストが失敗し始めました。テストに対応するアプリケーション ログは、デバッグに役立つはずです。しかし、特定のテストのログがどこで開始され、どこで終了したのかさえ理解できませんでした。


Datadog が助けてくれます 🦸!

私たちは使用していますデータドッグ私たちのプロジェクトでは、生産ログを視覚化するために使用しましたが、非常に便利であることがわかりました。そんな時、ひらめきました!これらのログを分析するために Datadog をローカルでセットアップするとどうなりますか?そして、それがこのブログ投稿の内容を引き起こしたものです。


私たちのアプリケーションは Java で書かれており、私のローカル マシンは MacOS で動作しています。必要に応じて、以下の手順を微調整できます。


設定する必要があるもの:

セットアップに必要なコンポーネント

  1. Datadog にサインアップするここ.ここでのスコープはローカル デバッグのみです。無料トライアル十分なはずです。
  2. Datadog Agent は、それが実行されるホストを監視するソフトウェアです。サービス名、環境などの設定はエージェントで行うことができます。
  3. dd トレース Java 、Datadog の APM (App Performance Monitoring) クライアント Java ライブラリ。 dd-trace-java自動または手動で実行する API を含む jar です。痕跡プロフィールJava アプリケーション。


ステップ 1 — サインアップ プロセス:

  • メール ID とその他の詳細を入力すると、次のページで技術スタックを選択するよう求められます。


  • 「次へ」をクリックすると、最も重要な部分が表示されます。 「エージェントのセットアップ」の指示が表示されます。私のローカル マシンは MacOSX なので、適切に選択しました。 DD_API_KEYDD_SITE の値を書き留めておいてください。これらは後続の手順で使用されます。


エージェントのインストール手順

ステップ 2 — Datadog エージェントのインストール:

MacOSの場合、次の方法でインストールできます醸造する(MacOS のパッケージ マネージャー)。使用ここでインストール用に指定されたコマンド. ¹


ダウンロードしたbrew pkgを開き、ウィザードを使用してインストールします

  • 以下に示すように、 datadog-agentカスタマイズします。


customise-local-datadog-agent-settings

  • 上記の手順が完了すると、Datadog-web-UI で「終了」するよう求められます。


終了プロンプト-Datadog-セットアップ

  • integrations追加するように求められます。 JavaDockerなどを追加できます(プロジェクトのニーズに応じて)。

ステップ 3 — Datadog トレーサーをインストールします。

  • からdd-java-agent jar をダウンロードします。ここ²


  • Java アプリケーションの場合、組み込みのFlightRecorderが付属しているバージョンの Java を使用していることを確認してください。これはトレースに必要です。 OpenJdK8 には組み込みのFlightRecorderが付属しています。 Oracle Java を使用している場合、**FlightRecorder** を使用するには商用ライセンスが必要です。**³

アプリケーションの実行:

  • Java アプリケーションの VM オプションを追加します。
 -javaagent:"/Users/home/Downloads/dd-java-agent.jar" -Ddd.profiling.enabled=true -Ddd.logs.injection=true -Ddd.agent.port=8126 -Ddd.service=ecommerce-service -Ddd.env=local -XX:FlightRecorderOptions=stackdepth=256 


Java アプリケーションの JVM 引数



  • gradleタスクを使用している場合は、次のようにjvmArgsを含めることができます。

Gradle タスクの JVM 引数


 jvmArgs = ["-javaagent:/Users/home/Downloads/dd-java-agent.jar", "-XX:FlightRecorderOptions=stackdepth=256", "-Ddd.profiling.enabled=true", "-Ddd.logs.injection=true", "-Ddd.agent.port=8126", "-Ddd.service=ecommerce-service", "-Ddd.env=local"]


  • ここで、Java アプリケーションを開始します。トレースが正しく行われている場合は、次のログが表示されます。

Datadog トレースが開始されました — ログ

Datadog へのログイン:

  • ログを Datadog にストリーミングできるようにするには、Datadog Web UI の指示に従います。 ⁴

ログ ソースの構成

  • macOSの場合 — 構成ディレクトリは~/.datadog-agent/conf.d/java.dで、ファイルは~/.datadog-agent/conf.d/java.d/conf.yamlにあります。

ローカルの「conf.yaml」ファイルの例

  • これで、 logs Datadog に流れ始めます。


Datadog ログ


いくつかのヒント:

  • アプリケーションの各メソッドの最初と最後に適切なdebugログを追加します。デバッグ中に非常に便利です。


  • span idtrace idを注入するメカニズムを追加します。これは驚くべき命の恩人であり、ログを適切なコンテキストに置きます.⁵

結論:

Datadog エージェントをローカルで起動して実行すると、すべてのリクエストを状況に応じて表示できるようになりました。

私のテスト — デバッグ前と Datadog の使用後

そして出来上がり!エンド ツー エンドのすべてのテストに合格しました 🙂 Happy logging!

追加情報:

  • ¹または、ダウンロードすることもできますdmg パッケージそしてそれをインストールします。このリンクは、上記の「エージェントのセットアップ」ステップでも取得できます (スクリーンショットを参照)。


  • ²直接ダウンロードdd トレース Java瓶。


  • ³ JDK 11 以降では、何もアクティブ化せずにFlightRecorder使用できます。詳細はこちらここ.


  • ⁴詳細はこちらここ.


  • ⁵アプリケーションが Java の場合、このライブラリを使用できます春雲探偵span_idtrace_idリクエストに追加します。