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

Observabilityジャーニーを実現するためのAWSサービス:OSS編

 Observabilityジャーニーを実現するためのAWSサービス:OSS編

o11yfes

May 07, 2024
Tweet

More Decks by o11yfes

Other Decks in Technology

Transcript

  1. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Observabilityジャーニーを実現するための AWSサービス︓OSS編 Kazuhiro Fujiwara アマゾン ウェブ サービス ジャパン合同会社 Solutions Architect 20:05 - 20:20 JST 春の Observability 祭り 2024 ~Observability獲得までの旅~
  2. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ⾃⼰紹介 2 藤原和弘(Kazuhiro Fujiwara) ストラテジックソリューション部 ソリューションアーキテクト ⾦融業界、主に決済領域のお客様をご⽀援 好きなAWSサービス Amazon Managed Grafana Amazon Managed Service for Prometheus AWS Distro for OpenTelemetry
  3. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 本セッションの前提 3 • 本資料では2024年04⽉時点のサービス内容および価格についてご説明してい ます。最新の情報はAWS公式ウェブサイト (https://aws.amazon.com/)に てご確認ください • 資料作成には⼗分注意しておりますが、資料内の内容とAWS公式ウェブサイ ト記載の内容に相違があった場合、AWS公式ウェブサイトの内容を優先とさ せていただきます • 外形監視やRUMの内容は含みません。アプリケーションのテレメトリデータ に関する内容がメインとなります • AWSサービスに関わらない内容(Grafana LGTM Stackなど)は個⼈の意 ⾒に基づき作成しています
  4. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 01 04 発表に含まれている内容 03 02 05 4 Maturity Modelに沿った Mnaged OSSでの旅 各Managed OSS サービスの説明 OSS (主にGrafana Labs) での分析のデモ AWS Distro for OpenTelemetryの ステータス まとめ
  5. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Observability Overview Observability Collectors and SDKs Container insights Lambda insights Contributor insights Application insights Synthetics Dashboards Alarms RUM AWS X-Ray AWS native services Amazon CloudWatch ServiceLens Open-source managed services Amazon Managed Grafana Do it yourself (DIY) – AWS OSS Solutions Amazon OpenSearch Service Amazon Managed Service for Prometheus Jaeger and Zipkin Tracing Insights & ML Instrumentation Metrics CloudWatch agent AWS X-Ray agent AWS Distro for OpenTelemetry Internet monitor Logs JAEGER ZIPKIN 本セッションの範囲
  6. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Observability Maturity Model (再掲) 6 Stage 成熟度 Stage 1: 基本的なMonitoring Stage 2: 中級レベルの Monitoring Stage 3: ⾼度な Observability Stage 4: 予測的 Observability テ レ メ ト リ デ ー タ の 収 集 テ レ メ ト リ の 分 析 と イ ン サ イ ト 相 関 関 係 と 異 常 検 知 ⾃ 動 か つ 予 測 的 な 根 本 原 因 の 特 定
  7. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Observability Maturity Model 7 Stage 成熟度 Stage 1: 基本的なMonitoring Stage 2: 中級レベルの Monitoring Stage 3: ⾼度な Observability Stage 4: 予測的 Observability テ レ メ ト リ デ ー タ の 収 集 テ レ メ ト リ の 分 析 と イ ン サ イ ト 相 関 関 係 と 異 常 検 知 ⾃ 動 か つ 予 測 的 な 根 本 原 因 の 特 定
  8. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. テレメトリデータの収集︓Managed OSS 8 例)ECS Fargate上で動作するアプリケーションに対し、サイドカーでCollectorをデプロイ* *その他のデプロイメントアーキテクチャはこちらを参照: https://aws-observability.github.io/observability-best-practices/guides/operational/adot-at-scale/operating-adot-collector/ Amazon Managed Grafana Amazon Managed Service for Prometheus X-Ray Exporter X-Ray Receiver Processors Prometheus Remote Write Exporter Prometheus Receiver AWS Cloud Virtual private cloud (VPC) ECS Cluster Service Task App container ADOT collector Pipeline AWS X-Ray 分析ユーザー
  9. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 安 全 で 本 番 環 境 に 適 し た AW S サ ポ ー ト の デ ィ ス ト リ ビ ュ ー シ ョ ン 9 AWS Distro for OpenTelemetry (ADOT) https://aws-otel.github.io/ API、ライブラリ、エージェントを提供 • SDK、⾃動計装Agent、Collectorを提供 • ⾃動計装の使⽤により、コードを変更せずに トレースを収集可能(⼀部⾔語のみ) • Amazon EC2, Amazon ECS, Amazon EKS, AWS Fargate, AWS Lambda, AWS App Runner, オンプレミス からのテレメトリデータ収集に利⽤可能 • SDKはGo, Java, Javascript, Python, Ruby, .NET, PHPを サポート • ログ収集はJava、JavaScript、.NET、Python のみサ ポート • OpenTelemetry アップストリームへの貢献 収集・配信
  10. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 計装によりテレメトリデータを収集 10 • 計装( Instrumentation )とは § アプリケーションにおいて、テレメトリ データの計測コードを実装すること • ⼿動計装 § SDKを⽤いて⾃⾝で細かく計装を⾏うことで、 詳細な計装を実現可能 • ⾃動計装 § 最⼩限の設定コードのみで計装が可能 § JavaやPythonなどの主要な フレームワーク・ライブラリ向けに提供 Application OTEL library Application OTEL library Destination 1 Destination 2 Destination 3 OTEL Collector OTEL Collector host host github.com/aws-observability/aws-otel-community/tree/master/sample-apps
  11. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Collector の役割 11 Collectorの主な構成要素 1. Receivers : データをCollectorに取り込む 2. Processors : 受信したデータを整形、 フィルタ等の変換処理を実施 3. Exporters : 受信データをバックエンドに push及びpullを⾏う https://opentelemetry.io/docs/concepts/data-collection/ https://opentelemetry.io/docs/collector/configuration/ https://opentelemetry.io/docs/concepts/components/ ① ② ③ 様々なバックエンドシステムにデータを送信 - Open Telemetry Protocol (OTLP)を使⽤してgRPCまた はHTTPでデータを受信する役割 - Prometheusなど様々なRecieverが⽤意されている - X-RayやPrometheusなど様々なExporterが⽤意されている - 容易にバックエンドの切り替えができる *ADOT Collectorも同様
  12. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ADOT Collector Built-in Components RECEIVERS PROCESSORS EXPORTERS EXTENSIONS prometheusreceiver attributesprocessor awsxrayexporter healthcheckextension otlpreceiver resourceprocessor awsemfexporter pprofextension awsecscontainermetricsreceiver batchprocessor prometheusremotewriteexporter zpagesextension awsxrayreceiver memorylimiterprocessor loggingexporter ecsobserver statsdreceiver probabilisticsamplerprocessor otlpexporter awsproxy zipkinreceiver metricstransformprocessor fileexporter ballastextention jaegerreceiver spanprocessor otlphttpexporter sigv4authextension awscontainerinsightreceiver filterprocessor prometheusexporter filestorage kafka resourcedetectionprocessor datadogexporter filelogreceiver metricsgenerationprocessor dynatraceexporter cumulativetodeltaprocessor sapmexporter deltatorateprocessor signalfxexporter groupbytraceprocessor logzioexporter tailsamplingprocessor kafka k8sattributesprocessor loadbalancingexporter awscloudwatchlogsexporter AWSが開発 https://github.com/aws-observability/aws-otel-collector 12 インストルメンテーションを オーバーライドまたはカスタマ イズするために設計されている
  13. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 参考: OpenTelemetry Protocol (OTLP) 13 Application AWS X-Ray Receiver Processor Exporter ADOT Collector OTEL SDK Traces in OTLP format OTLP Trace receiver X-Ray exporter テレメトリデータを収集およびエクスポートするためのオープン標準プロトコル • 複数ベンダーのテレメトリデータ収集を統⼀可能 • gRPCベースのプロトコル • クライアント(データ送信側)とレシーバー(データ受信側)の役割を定義 • Jaeger、Zipkin、Prometheusなど主要なOSSツールがOTLPをサポート
  14. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 14 参考: The Status of OpenTelemetry Language Traces Metrics Logs C++ Stable Stable Stable C#/.NET Stable Stable Stable Erlang/Elixir Stable Experimental Experimental Go Stable Stable In development Java Stable Stable Stable JavaScript Stable Stable Experimental PHP Stable Stable Stable Python Stable Stable Experimental Ruby Stable In development In development Rust Beta Alpha Alpha Swift Stable Experimental In development Language SDKs ADOT Collector q Latest︓v0.38.1 (2024/03) q Traces︓⼀般提供開始 (2021/09) q Metrics︓⼀般提供開始 (2022/05) q Logs︓⼀般提供開始 (2023/11) https://aws-otel.github.io/blog https://opentelemetry.io/status/
  15. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. コ ン テ ナ 環 境 向 け の M O N I TO R I N G の マ ネ ー ジ ド サ ー ビ ス Amazon Managed Service for Prometheus (AMP) • ワークロードの拡⼤縮⼩に応じて⾃動的にスケーリング AZ をまたいだレプリケーションもサポート • Prometheus クエリ⾔語(PromQL)を利⽤して、 メトリクスのフィルタリング、集約、アラームを素早く 実⾏ • IAM によるアクセス権限制御や、PrivateLink による セキュアなアクセスを提供。API 呼び出しは CloudTrail で 記録 • サービス検出・メトリクス収集に AWS Distro for OpenTelemetry が利⽤可能。 また、Amazon Managed Grafana との連携によるリッチなデータ可視化を実現 Collectors HTTP APIs – remote write Prometheus server ADOT collector AMP 15 など OpenTelemetry collector メトリクス
  16. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. G R A F A N A L A B S と 連 携 し て 開 発 さ れ た 、 フ ル マ ネ ー ジ ド な デ ー タ 可 視 化 サ ー ビ ス Amazon Managed Grafana (AMG) • 複数のデータソースからのメトリクスやログ、トレースを ⼀元的に可視化 • Grafana の構築、スケーリング、パッチ適⽤などの メンテナンスは AWS が実施 • API を利⽤して既存の Grafana 環境からクエリと ダッシュボードをインポート可能 • v8.4.7 or v9.4.7 をサポート • v9ではコミュニティプラグインのインストールが可能 • プライベートサブネット内のデータソースにも接続可能 ユーザー etc… AMG AMP CloudWatch X-Ray 16 分析・可視化
  17. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Observability Maturity Model 17 Stage 成熟度 Stage 1: 基本的なMonitoring Stage 2: 中級レベルの Monitoring Stage 3: ⾼度な Observability Stage 4: 予測的 Observability テ レ メ ト リ デ ー タ の 収 集 テ レ メ ト リ の 分 析 と イ ン サ イ ト 相 関 関 係 と 異 常 検 知 ⾃ 動 か つ 予 測 的 な 根 本 原 因 の 特 定
  18. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AMGでテレメトリデータの分析 18 Exploreを活⽤してデータを分析 X-Ray トレース 例②あるサービス間の全トレースを表示し、 PetType=bunnyアノテーションでフィルタ 例①ログをパターン別に集約 Severity Level でソート pattern @message | sort @severityLabel | limit 20 CW Logs Insights Prometheus メトリクス edge("PetSite", "payforadoption") AND Annotation.PetType="bunny 例③あるECSタスクの直近5分間の メモリ使用量(MB)の平均 rate(ecs_task_memory_utilized_Me gabytes{aws_ecs_task_id="5c5d161 0794f4ce7b8b533cfe00be84c"}[5m])
  19. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Observability Maturity Model 19 Stage 成熟度 Stage 1: 基本的なMonitoring Stage 2: 中級レベルの Monitoring Stage 3: ⾼度な Observability Stage 4: 予測的 Observability テ レ メ ト リ デ ー タ の 収 集 テ レ メ ト リ の 分 析 と イ ン サ イ ト 相 関 関 係 と 異 常 検 知 ⾃ 動 か つ 予 測 的 な 根 本 原 因 の 特 定
  20. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. テレメトリデータの相関付けと分析 20 AMGでの設定画⾯ *CloudWatch Logsに@xrayTraceId fieldを含める必要あり ⾃動で画⾯分割され、該当のトレースID でX-Rayをクエリ可能。ログとトレース を相関付けて分析することでより詳細へ ドリルダウンできる
  21. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. OSSの可能性に迫る 21 OSSのソフトウェアを導⼊してSelf Managedで運⽤することも可能 https://grafana.com/about/grafana-stack/ The Grafana Stack Application Application Grafana Tempo Grafana Alloy Grafana ADOT X-Ray AMG AMP CloudWatch 興味ある⽅はこちらを参照︓
  22. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Grafana – 相関付け分析デモ 22 https://github.com/grafana/intro-to-mltp 1. Metrics to Trace (Exemplars) 1. レイテンシの急増、リソースの競合、 サービスの低下など、パフォーマンス問 題の根本的な原因と影響を特定 2. Trace to Logs 1. スタック・トレース、エラーメッセージ、 アプリケーションの状態など、エラーや 異常のコンテキストや詳細にアクセス 2. また、システムで発⽣するイベントや メッセージを調査することで、システム のロジックやデータの正しさや⼀貫性を 検証 https://grafana.com/docs/grafana/latest/fundamentals/exemplars/ https://grafana.com/docs/grafana/latest/explore/trace-integration/#trace-to-logs 以下のデモを実施 *他にもLogs to Trace、Trace to Metricsなどもあります デモの構成
  23. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Observability Maturity Model 23 Stage 成熟度 Stage 1: 基本的なMonitoring Stage 2: 中級レベルの Monitoring Stage 3: ⾼度な Observability Stage 4: 予測的 Observability テ レ メ ト リ デ ー タ の 収 集 テ レ メ ト リ の 分 析 と イ ン サ イ ト 相 関 関 係 と 異 常 検 知 ⾃ 動 か つ 予 測 的 な 根 本 原 因 の 特 定
  24. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. never-ending journey… 24 Customer experience Collect Improve Act Business stakeholders Customer needs KPIs • SLI/SLOをもとに早期に気づける仕組みを構築 • 組織⾯︓改善のサイクルを回すこと • ADOT Collectorを導⼊し柔軟にバックエンドソ リューションを切り替えられるように準備すること • ⾃動的に動的ダッシュボードを作成 • 対処中の問題に関連する情報のみが含まれる • 関係のないデータのクエリと可視化に費やす時間とコストが 節約される • ⽣成AIにより、予測的なObservabilityが⼀般的になる⽇も近い AWS Managed OSSの 現状は︖ https://aws-observability.github.io/observability-best-practices/ja/guides/observability-maturity-model/#4- AMGはLLMのプラグインに未対応 では、今できることは︖
  25. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. まとめ 25 • ADOT Collectorを使うことでバックエンドのObservabilityソリューション を柔軟に切り替え • AWSのManaged OSSサービスを活⽤することで運⽤負荷を軽減しながら データの収集と分析 • データの相関付けにより分析を⾼度化 • ツールだけでなく、組織的に継続的な改善のサイクルが回せているか確認