Upgrade to Pro — share decks privately, control downloads, hide ads and more …

品質向上のためのモニタリング改善 X-Ray導入物語

品質向上のためのモニタリング改善 X-Ray導入物語

「ココナラ×レアジョブテクノロジーズ+AWS 少人数エンジニア組織でサービス成長させるには?座談会」のLT資料。
https://coconala.connpass.com/event/296649/

coconala_engineer

October 30, 2023
Tweet

More Decks by coconala_engineer

Other Decks in Technology

Transcript

  1. Copyright coconala Inc. All Rights Reserved. 自己紹介 2 ・光吉 佑馬

    / Yuma Mitsuyoshi ・株式会社ココナラ バックエンド開発チームC Team Manager ・新規機能開発やったり、技術負債解消したり色々 やってます ・趣味: お酒、映画
  2. Copyright coconala Inc. All Rights Reserved. リソース監視:
 • CPU 使用率のモニタリング

    
 • メモリ使用状況のトラッキング 
 • ディスクスペースの使用状況の監視 
 • ネットワーク帯域幅のモニタリング 
 ログ監視:
 • システムログ、アプリケーションログ、セ キュリティログの収集と解析 
 • エラーメッセージや警告の検出 
 パフォーマンス監視 :
 • アプリケーションの応答時間のトラッキン グ
 • データベースクエリのパフォーマンスの 監視
 • サービス可用性の監視 
 インフラストラクチャ監視 :
 • サーバー、ネットワークデバイス、スト レージの可用性と健康状態の監視 
 • ハードウェアの障害の検出 4 セキュリティ監視 :
 • 不正アクセスの検出 
 • セキュリティイベントのモニタリング 
 • 脆弱性のスキャンと脅威検出 
 ロードバランシングとトラフィック監視 :
 • ロードバランサーのパフォーマンス監視 
 • トラフィックの分析と負荷分散 
 データベース監視 :
 • データベースサーバーのパフォーマンス 監視
 • クエリの最適化とスロークエリの識別 
 アプリケーション監視 :
 • アプリケーションのエラーと障害のトラッ キング
 • ユーザーエクスペリエンスの監視 
 

  3. Copyright coconala Inc. All Rights Reserved. リソース監視:
 • CPU 使用率のモニタリング

    
 • メモリ使用状況のトラッキング 
 • ディスクスペースの使用状況の監視 
 • ネットワーク帯域幅のモニタリング 
 ログ監視:
 • システムログ、アプリケーションログ、セ キュリティログの収集と解析 
 • エラーメッセージや警告の検出 
 パフォーマンス監視 :
 • アプリケーションの応答時間のトラッキン グ
 • データベースクエリのパフォーマンスの 監視
 • サービス可用性の監視 
 インフラストラクチャ監視 :
 • サーバー、ネットワークデバイス、スト レージの可用性と健康状態の監視 
 • ハードウェアの障害の検出 5 セキュリティ監視 :
 • 不正アクセスの検出 
 • セキュリティイベントのモニタリング 
 • 脆弱性のスキャンと脅威検出 
 ロードバランシングとトラフィック監視 :
 • ロードバランサーのパフォーマンス監視 
 • トラフィックの分析と負荷分散 
 データベース監視 :
 • データベースサーバーのパフォーマンス 監視
 • クエリの最適化とスロークエリの識別 
 アプリケーション監視 :
 • アプリケーションのエラーと障害のトラッ キング
 • ユーザーエクスペリエンスの監視 
 

  4. Copyright coconala Inc. All Rights Reserved. 7 APMでできること 1. APIのレスポンスタイムの調査

    2. 処理時間の長いトランザクションの調査 3. サービスマップ 4. パフォーマンスの可視化 5. トランザクションのメトリクス 6. エラー分析 7. 外部サービスのパフォーマンス
  5. Copyright coconala Inc. All Rights Reserved. 11 X-Rayとは AWS X-Rayは、Amazon

    Web Services(AWS)が提供する分散アプリケー ションのトレーシングとモニタリングサービスです。 X-Rayを使用することで、複数のマイクロサービスやコンポーネントが連携し て動作するアプリケーションのパフォーマンスとデバッグを追跡し、理解する ことができます。
  6. Copyright coconala Inc. All Rights Reserved. 12 X-Rayの導入理由 1. データ取り込みにおける課金なので、組織の人数が増えることによる料金

    の増加がない。また、sampling数の調整で料金を調整できる。 2. 分散トレーシングができるので、ボトルネックの把握がしやすい
  7. Copyright coconala Inc. All Rights Reserved. 18 OpenTelemetry Ruby with

    AWS X-Ray の導入 - OpenTelemetryは、分散トレーシングとメトリクスのためのオープン ソースのプロジェクトです。 アプリケーションやサービスの内部で何が起こっているかを監視し、問題 を特定し、パフォーマンスを向上させるために役立つツールやライブラリ を提供しています。 https://aws-otel.github.io/docs/getting-started/ruby-sdk/trace-manual-ins tr
  8. Copyright coconala Inc. All Rights Reserved. 19 どのクエリが時間がかかる?? - 現在OpenTelemetrySDKでは、どのようなクエリが発生したかのログを

    見ることができない。そこで、モンキーパッチをあててクエリを確認でき るようにしました。
  9. Copyright coconala Inc. All Rights Reserved. 23 Annotationにデータを送るために otelの設定ファイルを変更 Enable

    Annotation: https://aws-otel.github.io/docs/getting-started/x-ray#enable-the-customized-x-ray-annotations
  10. Copyright coconala Inc. All Rights Reserved. 26 本番導入で問題が... デフォルトだとすべてのリクエストをトレースしてしまう... そして、かなりのコストがかかってしまい...

    結局切り戻すことに... そこで、 トレースのサンプリング設定を行うことにしました AWS Distro for OpenTelemetry Collectorの設定をすることで可能です。 export OTEL_TRACES_SAMPLER_ARG=0.10
  11. Copyright coconala Inc. All Rights Reserved. 27 X-Ray導入の課題 1. AWSの管理画面では6時間分のデータしか表示できない

    2. Grafanaなどの可視化ツールを使わないとみたいデータが調べにくい 3. RubyのOpenTelemetryがデフォルトでアノテーションに対応していない 4. RubyのOpenTelemetryがSQLにデフォルトでデータを取得してくれない。 5. APIはデフォルトで24時間分のデータしか取得できない (オプションで回避できるが、Grafanaのpluginではoptionを設定できない) 6. GetInsightSummariesなどの特定のAPIは30日前までのデータしか取得できない
  12. Copyright coconala Inc. All Rights Reserved. 28 RubyのX-Rayのライブラリは まだまだ開発途中で欲しい機能がないので導 入にはハードルが高いので、まだ道半ば。

    モニタリングは調査を容易にするので、組織 に即したモニタリング環境を整えていきたい ですね まとめ