ローカル マシンで Datadog をセットアップすることを気にする必要がある場合は、「理由」から始めましょう。設定する動機を共有できます
カバレッジの高い広範なエンド ツー エンドのテスト スイートがありました。しかし悲しいことに、テストは時間の経過とともにますます不安定になりました。残念なことに、テストが単独で実行された場合、テストはパスしました。テスト スイート全体を実行すると、多くのテストが失敗し始めました。テストに対応するアプリケーション ログは、デバッグに役立つはずです。しかし、特定のテストのログがどこで開始され、どこで終了したのかさえ理解できませんでした。
私たちは使用しています
私たちのアプリケーションは Java で書かれており、私のローカル マシンは MacOS で動作しています。必要に応じて、以下の手順を微調整できます。
dd-trace-java
自動または手動で実行する API を含む jar です。
メール ID とその他の詳細を入力すると、次のページで技術スタックを選択するよう求められます。
「次へ」をクリックすると、最も重要な部分が表示されます。 「エージェントのセットアップ」の指示が表示されます。私のローカル マシンは MacOSX なので、適切に選択しました。 DD_API_KEYとDD_SITE の値を書き留めておいてください。これらは後続の手順で使用されます。
MacOSの場合、次の方法でインストールできます
以下に示すように、 datadog-agent
カスタマイズします。
上記の手順が完了すると、Datadog-web-UI で「終了」するよう求められます。
integrations
追加するように求められます。 Java
、 Docker
などを追加できます(プロジェクトのニーズに応じて)。からdd-java-agent
jar をダウンロードします。
Java アプリケーションの場合、組み込みのFlightRecorderが付属しているバージョンの Java を使用していることを確認してください。これはトレースに必要です。 OpenJdK8 には組み込みのFlightRecorderが付属しています。 Oracle Java を使用している場合、**FlightRecorder** を使用するには商用ライセンスが必要です。**³
-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
gradle
タスクを使用している場合は、次のようにjvmArgs
を含めることができます。
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"]
macOS
の場合 — 構成ディレクトリは~/.datadog-agent/conf.d/java.d
で、ファイルは~/.datadog-agent/conf.d/java.d/conf.yaml
にあります。 これで、 logs
Datadog に流れ始めます。
アプリケーションの各メソッドの最初と最後に適切なdebug
ログを追加します。デバッグ中に非常に便利です。
span id
とtrace id
を注入するメカニズムを追加します。これは驚くべき命の恩人であり、ログを適切なコンテキストに置きます.⁵
Datadog エージェントをローカルで起動して実行すると、すべてのリクエストを状況に応じて表示できるようになりました。
そして出来上がり!エンド ツー エンドのすべてのテストに合格しました 🙂 Happy logging!
¹または、ダウンロードすることもできます
²直接ダウンロード
³ JDK 11 以降では、何もアクティブ化せずにFlightRecorder
使用できます。詳細はこちら
⁴詳細はこちら
⁵アプリケーションが Java の場合、このライブラリを使用できますspan_id
とtrace_id
リクエストに追加します。