「Pepabo Tech Conference #22 春のSREまつり」に参加してきました

  • 2024/5/9
  • https://pepabo.connpass.com/event/314411/
  • 最近FE界隈でもOpenTelemetryを耳にする機会が増えた気がしたので参加してみました
  • 知らない単語が多かったので勉強になりました

ペパボOpenTelemetry革命

OpenTelemetry

  • SaaSOSSごとにやっていたテレメトリデータを標準化したもの
  • テレメトリデータ
    • オブザーバビリティを実現するための情報
    • ログ、メトリクス、トレース
  • Receiver
    • 集める
  • Processors
    • 加工する
  • Exporters
    • 外に出す

なぜ導入したか

  • もしDataDogが値上げしたとしても対応できるように
    • 円安による間接的な値上げ・・
  • 分散トレーシングが未導入だった
  • MackerelとPrometheusを両方入れていた
    • Otel入れてライセンス数が減った

導入状況

  • Metrics
    • VMk8sも導入済み
  • Trace
    • Grafana Tempoを採用
    • VMのTraceもOtel Collectorを経由してk8sのTempoへ
  • Log

今後

  • APM
    • 可用性高くなくていいのでSelfHostedでいい
    • Sentryを検討中
    • Elastic APMはやめた
  • 計測できるようになったので改善のサイクルを回していきたい
    • 計測できるようになったが活用できているかは別
      • ツールの教育
    • 計測できても改善できるかは別
      • SLO違反があっても直すのは開発チーム

Ruby on Rails における OpenTelemetry の活用

サービスの構成

  • 複数のRailsアプリ
  • 全てk8s
  • PrometheusやGrafana

Railsへの導入

  • opentelemetry-rubyというrubyようのクライアントがある
  • APISDKを提供
  • メトリクスとログはin development

その他の活用

  • Service Graphs
    • トレースデータを分析してサービス感の関係を構築
    • Grafanaで可視化
  • Exemplar
    • トレースODを付与することでトレースとメトリクスを連携

仕様と実装で学ぶOpenTelemetry

OpenTelemetryの仕様

  • 仕様は実装を意識して作られてる
  • OpenTelemetry Specification
    • テータ構造や用語の定義
  • Package Layout
  • Client Design Principles
    • FWやライブラリはOpenTelemetryAPIのみに依存すること

SMTPでのOpenTelemetryの可能性を考えてみる

  • RyuichiWatanabe@gurasan(@ryuichi_1208)さん

メールの送信

  • 送信元送信先にサーバがある
  • 中間には多くのステップがある
  • さらにSMTPのやりとりが複雑で多い
  • メールが届かないとなった時にどこで落ちてるか調べるのが大変
    • 分散トレーシング
    • OpenTelemetry
  • Trace
    • アプリでtrace idを作ってヘッダーにいれる
  • log
    • postfixではメールヘッダーをログに出せる
  • Metrics

otelcol receiver 自作RTA

OpenTelemetry SDKを使ってフロントエンドのログとCore Web Vitalsを収集した話

  • Hiroshi Isomuraさん

背景

  • BEはOpenTelemetry入れている
  • FEでも利用することにした

やったこと

  • OpenTelemetryCollectorにログを送信するロガーを作る
  • console.errorを上書きして送る
  • キャッチされなかったエラーをキャッチするイベントハンドラーに登録
  • web-vitalsのパッケージで取得した値も送信
  • LogAnalyticsでグラフを作った

落とし穴

  • SDKは開発中でドキュメントもない
    • ブラウザ実装に関しては仕様すら固まってない
  • ヘッダーを指定するとsendBeaconが使われない