Slide 1

Slide 1 text

Copyright © 2024 Bitkey Inc. All right reserved. ログから始めるオブザーバビリティ Japan Datadog User Group Meetup#4 株式会社ビットキー 星野貴信 2024/05/29

Slide 2

Slide 2 text

2 Copyright © 2024 Bitkey Inc. All right reserved. Outline 1. オブザーバビリティのおさらい 2. Datadogのメトリクス 3. Datadogのログ 4. Datadogのトレース 5. まとめ

Slide 3

Slide 3 text

3 Copyright © 2024 Bitkey Inc. All right reserved. 株式会社ビットキー SREとして入社。主にオブザーバビリティ、CI/CDを担 当する。SETとしてサービス品質向上の活動もしてい る 自己紹介 星野 貴信 Hoshino Takanobu 2020.01 2022.11~ 株式会社LCL バックエンドエンジニアとしてサービス運用改善を中 心にAWS、Terraform、GitHub Actions、Mackerelの 活用をリード

Slide 4

Slide 4 text

4 Copyright © 2024 Bitkey Inc. All right reserved. 1. オブザーバビリティのおさらい

Slide 5

Slide 5 text

5 Copyright © 2024 Bitkey Inc. All right reserved. 1. オブザーバビリティのおさらい APM ≠ o11y オブザーバビリティはトレースを中心に語られる印象 (n=1の感想です) つまり、DatadogのオブザーバビリティはApplication Performance Monitoring(APM)ってコト?

Slide 6

Slide 6 text

6 Copyright © 2024 Bitkey Inc. All right reserved. 1. オブザーバビリティのおさらい APM ≠ o11y オブザーバビリティはトレースを中心に語られる印象 (n=1の感想です) つまり、DatadogのオブザーバビリティはApplication Performance Monitoring(APM)ってコト? 󰢄🙅 󰢃

Slide 7

Slide 7 text

7 Copyright © 2024 Bitkey Inc. All right reserved. 1. オブザーバビリティのおさらい オブザーバビリティとは? 「ソフトウェアアプリケーションにオブザーバビリティを持たせるためには、次のことができなければなり ません。 アプリケーションの内部構造を理解する 今まで見たことのない、予測できないことが起こったとしても、アプリケーションがどのようなシステム状 態に陥っているかを理解する 外部ツールを使って観測し、調査することで、内部動作とシステム状態を理解する 新たにコードを改修 することなく 、内部状態を理解する (コードを改修するには何が起こるかをあらかじめ知っている必要があるため)」 『オブザービリティ・エンジニアリング』 1.2 オブザーバビリティのソフトウェアシステムへの適用

Slide 8

Slide 8 text

8 Copyright © 2024 Bitkey Inc. All right reserved. 1. オブザーバビリティのおさらい オブザーバビリティとは? 「今まで見たことのない、予測できないことが起こったとしても、アプリケーションがどのようなシステム 状態に陥っているかを理解する」 「外部ツールを使って観測し、調査することで、内部動作とシステム状態を理解する」 こちらの2点についてDatadogのメトリクス、ログ、トレースにオブザーバビリティの特性が備わっている かそれぞれ見ていきます 特に、探索的にアプリケーションを調査できるかの観点をチェックします

Slide 9

Slide 9 text

9 Copyright © 2024 Bitkey Inc. All right reserved. 2. Datadogのメトリクス

Slide 10

Slide 10 text

10 Copyright © 2024 Bitkey Inc. All right reserved. 2. Datadogのメトリクス ● Metric Explorerから探索的にクエリが可能 ● パブリッククラウドとのインテグレーションや dd-agentの機能でメトリクスの取得は非常に容易 ● DogStatsDなどを活用してカスタムメトリクスを 送信すればアプリケーションの内部情報も取得できる ● メトリクス選択にワイルドカードが 利用できないため大量のメトリクスを 一気に調べることは難しい 所感: メトリクス単体ではオブザーバビリティの獲得は難しい オブザーバビリティの観点からみたメトリクス

Slide 11

Slide 11 text

11 Copyright © 2024 Bitkey Inc. All right reserved. 3. Datadogのログ

Slide 12

Slide 12 text

12 Copyright © 2024 Bitkey Inc. All right reserved. 3. Datadogのログ オブザーバビリティの観点からみたログ ● Logs Explorerから探索的にクエリすることが可能 ● ログを時系列で並べるだけでなくフィールド毎や メッセージパターン毎のように集計クエリで 強力に可視化をサポートできる ● 左カラムのFacetsを展開してメタデータ毎に 出現回数を俯瞰したり、絞り込みに利用可能 ● Reference TableとJoinすることでさらに 外部データを結合して情報量を増やせる ● 構造化ログや例外キャッチなど事前の準備が多め ● 欲しいログ出力のためにアプリケーション改修が必要になることもある  所感: 構造化ログを意識してログを送信することで、Datadogの機能を活かしたクエリが可能

Slide 13

Slide 13 text

13 Copyright © 2024 Bitkey Inc. All right reserved. 4. Datadogのトレース

Slide 14

Slide 14 text

14 Copyright © 2024 Bitkey Inc. All right reserved. 4.. Datadogのトレース ● Trace Queryによるしたサービス全体の俯瞰と Span単位の詳細分析が利用できる ● 複数Traceを紐づけることでサービス間の関係を 可視化してボトルネックを分析できる ● dd-traceやOpenTelemetry Collectorを利用して 少ない実装コストでデータの収集が可能 ● 集計機能はログと比較してやや弱めか ● Flame Graphの表示はSpan数の増大とDurationが 長い場合にスクロールが煩雑になる印象 所感: トレースはマイクロサービスのように、複数サービスをまたがるアプリケーションの俯瞰に強い一方、 探索的にクエリする際に、UIがログと比較してやや弱い印象 オブザーバビリティの観点からみたトレース

Slide 15

Slide 15 text

15 Copyright © 2024 Bitkey Inc. All right reserved. 5. まとめ

Slide 16

Slide 16 text

16 Copyright © 2024 Bitkey Inc. All right reserved. 5. まとめ 探索的な調査の能力でみたDatadogのオブザーバビリティ ● オブザーバビリティの獲得に重要な、探索的なクエリによるアプリケーションの調査において、 Datadogではメトリクスとログとトレースを比較した際に、ログが使いやすい感触を得た ● まずはログの収集に力を入れてから、トレースに進むとログとトレースの紐付けで隙がなくなる 未解決の課題: サンプリングによるログに紐づいていて欲しいトレースが無い問題 ● ログデータ増加に耐えるコスト面の工夫は、またの機会があれば紹介したい

Slide 17

Slide 17 text

17 End of File Copyright © 2024 Bitkey Inc. All right reserved.