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

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

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

    View full-size slide

  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 で見てるが、そもそもこれって
        どうやって取得、可視化してるの
    ...?????

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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/

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide