Slide 1

Slide 1 text

1 Building a ServiceMap with Service Graph Connector 仲嶺 良 / GMO Pepabo, inc. OpenTelemetry Casual Talk - コンセプトのおさらいと実践⼊⾨! 2024.03.25

Slide 2

Slide 2 text

2 ⾃⼰紹介 技術部 プラットフォームグループ 2021年 中途⼊社 仲嶺 良 Nakamine Ryo SRE として minne の SLI / SLO の策定‧運⽤、それ に基づいたパフォーマンス改善や Kubernetes を⽤ いたコンテナプラットフォームの運⽤‧改善を担当 ● naryo と呼ばれています ● 沖縄県出⾝ ● X : @r_nakamine

Slide 3

Slide 3 text

GMO ペパボについて 3 https://pepabo.com

Slide 4

Slide 4 text

各サービスに絶賛 OpenTelemetry 導⼊中 4 OpenTelemetry Meetup 2024-02 https://speakerdeck.com/pyama86/pepaboopentelemetryge-ming

Slide 5

Slide 5 text

5 ● OpenTelemetry Collector の Service Graph Connector を⽤いてトレースからメトリクスを⽣成 ● Grafana Tempo の Service Graphs を⽤いてサービス 間の相互関係を描画する 今⽇話すこと

Slide 6

Slide 6 text

今⽇話すこと 6 ● オブザーバビリティバックエンドに Grafana を使⽤ ● OpenTelemetry Collector Contribを使⽤ ○ 本番環境では OpenTelemetry Collector Builder を使って、必要なプラグイン だけをまとめた Collector を使⽤することが推奨されています ※ Grafana Tempo の Metrics-Generator でも同様のメトリクスを⽣成することができます 前提

Slide 7

Slide 7 text

Service Graph Connector 7

Slide 8

Slide 8 text

Service Graph Connector 8 ● レシーバーとエクスポーターの2つの役割を持つ ● 異なるテレメトリーパイプラインを繋ぎ合わせる そもそも Connector とは

Slide 9

Slide 9 text

Service Graph Connector 9 そもそも Connector とは ref: https://opentelemetry.io/docs/collector/building/connector

Slide 10

Slide 10 text

Service Graph Connector 10 ● トレースデータを分析し、サービス間 の相互関係構築 するためのメトリクスを⽣成する ○ OpenTelemetryのセマンティック規約を元にサービス間のリクエスト を検出 ● ⽣成されたメトリクスは Grafana で可視化できる Service Graph Connector

Slide 11

Slide 11 text

Service Graph Connector 11 OpenTelemetry Collector の設定(⼀部抜粋)

Slide 12

Slide 12 text

Service Graph Connector 12 Service Graph Connector によって⽣成されるメトリクス traces_service_graph_request_total 2 つのサービス間のリクエストの合計数 traces_service_graph_request_failed_total 2 つのサービス間で失敗したリクエストの合計数 traces_service_graph_request_server_seconds サーバーから⾒た 2 つのサービス間のリクエストの処理時間 traces_service_graph_request_client_seconds クライアントから⾒た 2 つのサービス間のリクエストの処理時間 traces_service_graph_unpaired_spans_total ペアになっていない span の合計数 traces_service_graph_dropped_spans_total ドロップされた span の合計数

Slide 13

Slide 13 text

● 取得した span から Request, Error and Duration (R.E.D) メトリクスを⽣成する 各 span ⾃体のメトリクスを⽣成する Service Graph Connector 13 “Span Metrics” Connector

Slide 14

Slide 14 text

Service Graphs in Grafana Tempo 14

Slide 15

Slide 15 text

Service Graphs in Grafana Tempo 15 ● traces_service_graph_ なメトリクスを元にサービス間 の相互関係を可視化する ● 相互関係だけでなくシステムの健全性も可視化される ○ レイテンシー、エラー率 Service Graphs ref: https://grafana.com/docs/tempo/latest/metrics-generator/service_graphs

Slide 16

Slide 16 text

Service Graphs in Grafana Tempo 16 Enable service graphs ● Grafana Tempo の Data Sources の設定から Service Map を有効 にする ● データソースを⽣成したメトリク スが送信される Prometheus に 指定

Slide 17

Slide 17 text

Service Graphs in Grafana Tempo 17

Slide 18

Slide 18 text

Service Graphs in Grafana Tempo 18

Slide 19

Slide 19 text

Service Graphs in Grafana Tempo 19 ● Service Graph Connector, Span Metrics Connector か ら⽣成されるメトリクスは Grafana Tempo の Metrics-Generator というコンポーネントからも⽣成で きる ○ OpenTelemetry Collecotor の Span Metrics Processer ミラーリングすること を⽬標に設計されている Metrics-Generator ref: https://grafana.com/docs/tempo/latest/metrics-generator/

Slide 20

Slide 20 text

20 ご清聴ありがとうございました