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

OpenTelemetryを用いたObservability基盤の実装 with AWS Di...

OpenTelemetryを用いたObservability基盤の実装 with AWS Distro for OpenTelemetry

オブザーバビリティの基本を学ぶため、
サンプルアプリに OpenTelemetry(opentelemetry-go) を使って計装し、
AWS のマネジメントサービスを使ってログやトレースを観測できる基盤を作ったのでその紹介とデモを行います。

発表した検証を通して、以下も Zenn にまとめたので興味のある方はご覧ください。

■ OpenTelemetry Go を使ったトレースとログの紐付け on AWS CloudWatch
=> https://zenn.dev/k6s4i53rx/articles/69ef65b84dd799

■ AWS Distro for OpenTelemetry を使ってトレースを X-Ray でサクッと可視化する on EKS
=> https://zenn.dev/k6s4i53rx/articles/33d5aa4f6a124e

逆井(さかさい)

September 27, 2022
Tweet

More Decks by 逆井(さかさい)

Other Decks in Technology

Transcript

  1. - 2022/09/27 Kubernetes Novice Tokyo #21 - OpneTelemetry を用いた Observability

    基盤の実装 with AWS Distro for OpenTelemetry 所属: 氏名:逆井 啓佑(さかさい けいすけ) © 2022 NTT DATA Corporation
  2. 自己紹介 - 2022/09/27 Kubernetes Novice Tokyo #21 - © 2022

    NTT DATA Corporation 逆井 啓佑 さかさい belongs: carrier:   3 yrs:”Scrum Team の PO 兼 非機能試験担当” k8sNovice:   #17:”性能試験は CI/CD にお任せ!” description:     性能試験の際に、当たり前にトレースやログ、     メトリクスを GCP で見てるが、そもそもこれって     どうやって取得、可視化してるの ...?????
  3. - 2022/09/27 Kubernetes Novice Tokyo #21 - 自己紹介 Observability (o11y)

    テレメトリー OpenTelemetry (Otel) © 2022 NTT DATA Corporation ログ/トレース の紐付け
  4. Observability (o11y) テレメトリー OpenTelemetry (Otel) ログ/トレース の紐付け 自己紹介 - 2022/09/27

    Kubernetes Novice Tokyo #21 - k8s 上のアプリに Observability を整備して基本を勉強 しよう。 => 今回は 構築した o11y 基盤について LT します! © 2022 NTT DATA Corporation
  5. Introduction - 2022/09/27 Kubernetes Novice Tokyo #21 - © 2022

    NTT DATA Corporation イントロとして Observability 〜 OpenTelemetry まで 学んだことを簡単にお話しします。 ※ 勉強するにあたって O11yCon2022 が大変手助けになりました。 イントロページもカンファレンスの Session を多く参考にさせて頂いております。
  6. Ref: ・入門 OpenTelemetry Collector (@katzchang san) ・kubernetes Observability入門 (@yosshi_ san)

    Introduction: Observability - 2022/09/27 Kubernetes Novice Tokyo #21 - © 2022 NTT DATA Corporation Observability の Three pillars(三本柱) => 今は Primary Signals と呼ぶ Logs Traces Metrics システムの イベント を時系列で記録 したもの 特定の時間間隔で 測定された統計値 複数のコンポーネントに またがる リクエスト全体の流れ/ 依存関係を可視化 したもの ログ トレース メトリクス これらをまとめてテレメトリー
  7. Introduction: OpenTelemetry - 2022/09/27 Kubernetes Novice Tokyo #21 - ©

    2022 NTT DATA Corporation o11y やるには、テレメトリがないと始まらない テレメトリの収集 => 計装(Instrumentation) + エクスポータ− (+集めて可視化) Service Input Output 計 装 Exp. テレメトリ ログ メトリクス トレース Ref: ・OpenTelemetryのこれまでとこれから (@ymotongpoo san) ❶ 計装やエクスポータ−は (基本的に)アプリに実装する必要がある 1/3
  8. Introduction: OpenTelemetry - 2022/09/27 Kubernetes Novice Tokyo #21 - ©

    2022 NTT DATA Corporation o11y やるには、テレメトリがないと始まらない テレメトリの収集 => 計装(Instrumentation) + エクスポータ− (+集めて可視化) Service Input Output 計 装 Exp. テレメトリ ログ メトリクス トレース Ref: ・OpenTelemetryのこれまでとこれから (@ymotongpoo san) 2/3 ❷ 計装や Exp. は各種 OSS やサービスが API / SDK を提供している → Proprietary(ベンダ依存)に繋がる
  9. Introduction: OpenTelemetry - 2022/09/27 Kubernetes Novice Tokyo #21 - ©

    2022 NTT DATA Corporation o11y やるには、テレメトリがないと始まらない テレメトリの収集 => 計装(Instrumentation) + エクスポータ− (+集めて可視化) Service Input Output 計 装 Exp. テレメトリ ログ メトリクス トレース Ref: ・OpenTelemetryのこれまでとこれから (@ymotongpoo san) ❸ OpenTelemetry は テレメトリの計装・エクスポータ−の 標準仕様 3/3 ※ エクスポーターとモニタリングサービスの間に OpenTelemetry Collector を挟むアーキテクチャが一般的。Reference 群を参考
  10. Introduction: OpenTelemetry - 2022/09/27 Kubernetes Novice Tokyo #21 - ©

    2022 NTT DATA Corporation o11y やるには、テレメトリがないと始まらない テレメトリの収集 => 計装(Instrumentation) + エクスポータ− (+集めて可視化) Service Input Output 計 装 Exp. テレメトリ ログ メトリクス トレース Ref: ・OpenTelemetryのこれまでとこれから (@ymotongpoo san) ❸ OpenTelemetry は テレメトリの計装・エクスポータ−の 標準仕様 3/3 ※ エクスポーターとモニタリングサービスの間に OpenTelemetry Collector を挟むアーキテクチャが一般的。Reference 群を参考 Introduction はここまでで、 以降検証についてご紹介させていただきます。 © 2022 NTT DATA Corporation
  11. 検証環境: AWS Distro for OpneTelemetry(ADOT) - 2022/09/27 Kubernetes Novice Tokyo

    #21 - © 2022 NTT DATA Corporation 今回は AWS Distro for OpenTelemetry(ADOT) を扱うことで、 OpenTelemetry への理解を深めることにしました。 ADOT は、、、 • OpenTelemetry PJ の AWS サポートのディストリビューション ◦ OpenTelemetryの仕様に沿って開発 • EKS(Elastic Kubernete Service) 上で OTel を使う ために、 便利なコンポーネントがプリインストールされている! Ref: https://aws-otel.github.io/
  12. 検証環境: AWS Distro for OpneTelemetry(ADOT) - 2022/09/27 Kubernetes Novice Tokyo

    #21 - © 2022 NTT DATA Corporation 今回は AWS Distro for OpenTelemetry(ADOT) を扱うことで、 OpenTelemetry への理解を深めることにしました。 1 2 限られた時間で、計装さえすれば、 バックエンドソリューションは X-Ray、Cloud Watch など整備されている点 (自前で Jaeger / Loki / Prometheus など整備もできるが容易ではない) エンタープライズ的にも、AP の実装は Open 化(OTel 化)しながらも、 AWS のモニタリングサービスは継続的に使いたいといったケースはあると考えられ、 AWS Distro 今後ますます需要が高まると考えたため(スキルセットの獲得)
  13. ADOT の Architecture - 2022/09/27 Kubernetes Novice Tokyo #21 -

    © 2022 NTT DATA Corporation μサービス Kubernetes API Server ADOT Collector Prometheus Receiver AWS Prometheus Exporter Processor AWS X-Ray Receiver AWS X-Ray Exporter Service Account • Otel Library で計装済のマイクロサービスからテレメトリを受信 • ADOT Collector は EKS の場合 Sidecar や DaemonSet としてデプロイされる • AWSモニタリングサービスや、サードパーティサービスに送信
  14. 今回構築した基盤はこちら - 2022/09/27 Kubernetes Novice Tokyo #21 - © 2022

    NTT DATA Corporation Todo BFF Todo API User API DB todo namespace observability namespace Fluent Bit ADOT Collector X-Ray Cloudwatch Cloudwatch logs otel-collector.observability.svc.cluster.local:4318 へ、trace や Span を送信 ❷ Tracd ❶ Log ❸ Metrics ログは Golang で Not Yet Implemented の Status Ref: https://opentelemetry.io/status/ Ref: ・OpenTelemetryを知れば世界が平和に (@nwiizo san)
  15. テレメトリの取得: トレースとログ - 2022/09/27 Kubernetes Novice Tokyo #21 - ©

    2022 NTT DATA Corporation Logs Traces Metrics 今回は時間の都合上、 ログとトレース 取得の検証を紹介
  16. demonstration - 2022/09/27 Kubernetes Novice Tokyo #21 - © 2022

    NTT DATA Corporation サンプル AP を動かすことで、 AWS のモニタリングソリューションで ログやトレースを可視化し解析できる o11y 基盤を構築できた。
  17. まとめ - 2022/09/27 Kubernetes Novice Tokyo #21 - © 2022

    NTT DATA Corporation 構築を通して Observability の基礎について学ぶことができた ❶ PJ 全体で o11y 基盤を整備することの重要性   複雑な MSA の動き方を、非開発者や途中参画者がイメージを持つためにトレース情報は有効 (実装を読んで追う前にイメージ持つのはきっと大事) ❷ 普段当たり前に使ってた PJ の a11y 基盤は、 SRE チームの努力の上に成り立っていた ことを肌で感じた...(圧倒的感謝)