Slide 1

Slide 1 text

- 2022/09/27 Kubernetes Novice Tokyo #21 - OpneTelemetry を用いた Observability 基盤の実装 with AWS Distro for OpenTelemetry 所属: 氏名:逆井 啓佑(さかさい けいすけ) © 2022 NTT DATA Corporation

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Observability (o11y) テレメトリー OpenTelemetry (Otel) ログ/トレース の紐付け 自己紹介 - 2022/09/27 Kubernetes Novice Tokyo #21 - k8s 上のアプリに Observability を整備して基本を勉強 しよう。 => 今回は 構築した o11y 基盤について LT します! © 2022 NTT DATA Corporation

Slide 5

Slide 5 text

Introduction - 2022/09/27 Kubernetes Novice Tokyo #21 - © 2022 NTT DATA Corporation イントロとして Observability 〜 OpenTelemetry まで 学んだことを簡単にお話しします。 ※ 勉強するにあたって O11yCon2022 が大変手助けになりました。 イントロページもカンファレンスの Session を多く参考にさせて頂いております。

Slide 6

Slide 6 text

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 システムの イベント を時系列で記録 したもの 特定の時間間隔で 測定された統計値 複数のコンポーネントに またがる リクエスト全体の流れ/ 依存関係を可視化 したもの ログ トレース メトリクス これらをまとめてテレメトリー

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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(ベンダ依存)に繋がる

Slide 9

Slide 9 text

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 群を参考

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

検証環境: 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/

Slide 12

Slide 12 text

検証環境: 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 今後ますます需要が高まると考えたため(スキルセットの獲得)

Slide 13

Slide 13 text

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モニタリングサービスや、サードパーティサービスに送信

Slide 14

Slide 14 text

今回構築した基盤はこちら - 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)

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

demonstration - 2022/09/27 Kubernetes Novice Tokyo #21 - © 2022 NTT DATA Corporation

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

© 2022 NTT DATA Corporation 記載されている会社名、商品名、 またはサービス名は、各社の商標登録または商標です。