自動化されたデバッグログ収集

自動化されたデバッグログは、Java、.NET、Node.js、Python でサポートされています。他の言語の場合は、代わりに手動でのデバッグログ収集をご利用ください。

フレアを使用すると、機密データを除去したうえで、必要なトラブルシューティング情報 (レーサーログを含む) を Datadog サポートチームに送信できます。これは、高い CPU 使用率やメモリ使用率、スパンの欠落などの問題をトラブルシューティングする際に有用です。

前提条件

  • Datadog サイトからフレアを送信するには、Agent で Fleet AutomationRemote Configuration を有効にしてください。
  • 対応するトレーサーバージョンが必要です。
    • Java: 1.26.0 以上
    • Python: 2.11.0 以上
    • Node.js: 5.15.0 以上または 4.39.0 以上
    • .NET: 2.48.0 以上

フレアの送信

To send a remote flare:

  1. From the Fleet Automation page, select an Agent that requires support.
  2. Click Support.
  3. Click Send Support Ticket.
  4. Provide an existing Zendesk support ticket number. If you don’t provide a ticket number, one is created on your behalf.
  5. Enable Debug mode to allow Datadog support staff to troubleshoot your issue faster. The log level is reset to its previous configuration after you send the flare.
  6. If you are troubleshooting your application, enable application tracer level logs to be included in the flare.
  7. Click Send Ticket.

例:

Send Ticket ボタンは、既存または新規のサポートチケットにフレアを送信するためのフォームを起動します

手動でのデバッグログ収集

Datadog デバッグ設定を使用して、問題を診断したり、トレースデータを監査したりできます。ロガーに送信されるイベントの数が増えるため、実稼働システムでデバッグモードを有効にすることはお勧めできません。デバッグモードはデバッグ目的でのみ使用してください。

Datadog Ruby トレーサーのデバッグモードを有効にするには、環境変数 DD_TRACE_DEBUG=true を設定します。

アプリケーションログ

デフォルトでは、デフォルトの Ruby ロガーによってすべてのログが処理されます。Rails を使用している場合は、アプリケーションログファイルにメッセージが表示されます。

Datadog クライアントのログメッセージは、他のメッセージと区別できるように [ddtrace] とマークされます。

トレーサーの log 属性を使用し、デフォルトロガーを上書きしてカスタムロガーに置き換えることができます。

f = File.new("<FILENAME>.log", "w+")           # ログメッセージが書き込まれる場所
Datadog.configure do |c|
  c.logger.instance = Logger.new(f)                 # デフォルトのトレーサーのオーバーライド
end

Datadog::Tracing.logger.info { "this is typically called by tracing code" }

詳細については、API に関するドキュメントを参照してください。

デバッグログを確認する

トレーサーのデバッグモードを有効にすると、トレーサー固有のログメッセージによって、初期化状況やトレースが Agent へ送信されたかを確認できます。デバッグログはログ設定に応じて別のパスに格納されます。アプリケーションレベルのトレーサー情報を有効にすると、デバッグログは対応する言語向けのフレアにも送信されます。以下は、ログファイルに出力されうるログメッセージの例です。

理解できないエラーがある場合、またはトレースが Datadog にフラッシュされたと報告されたものの Datadog UI に表示されない場合は、Datadog サポートに連絡し、フレア で関連するログエントリを入力します。

スパンが生成されます:

D, [<YYYY-MM-DD>T16:42:51.147563 #476] DEBUG -- ddtrace: [ddtrace] (/usr/local/bundle/gems/ddtrace-<version>/lib/ddtrace/tracer.rb:371:in `write') Writing 4 spans (enabled: true)

 Name: rack.request
Span ID: <span id>
Parent ID: 0
Trace ID: <trace id>
Type: web
Service: todo
Resource: NotesController#index
Error: 0
Start: <start time>
End: <end time>
Duration: 11985000
Allocations: 1202
Tags: [
   system.pid => 476,
   env => dev,
   language => ruby,
   http.method => GET,
   http.url => /notes,
   http.base_url => http://0.0.0.0:3000,
   http.status_code => 304,
   http.response.headers.x_request_id => <header value>]
Metrics: [
   ..],

その他の参考資料

お役に立つドキュメント、リンクや記事:

PREVIEWING: brett.blue/reorg-otel