OpenCensus/OpenTelemetry meetup vol.2 参加レポート

OpenCensus/OpenTelemetry meetup vol.2

OpenCensusやOpenTracingそしてOpenTelemetryについてまるっと知れたのでとても有意義な時間でした。 開催いただきありがとうございます。会場提供はヤプリさんでした。

オープニング

オープニングは主催の@ymotongpooさんによる前回のミートアップとOpenTelemetryについて。 前回のミートアップの時にはOpenTracingとOpenCensusがマージされるがまだ名前が決まってない状態でした。 次回からはOpenTelemetry Meetupに名前を変えるとのことで、開催が楽しみです。

bit.ly

OpenTelemetry進捗

OpenTelemetryのRuby Sigにジョインされた@kawasyさんによるOpenTelemetry進捗のまとめです。

speakerdeck.com

覚えておいてほしいことは、「OpenTelemetry is the next major version of OpenTracing and OpenCensus」ということで、 OpenTelemetryはOpenTracingとOpenCensusからバージョンを上げたものという位置づけだそう。 移行パスも用意されるので、現在運用している人はとりあえず待っておいて大丈夫とのこと。 9月末が現時点でのv1.0のリリース目標で、OpenTelemetryの各言語のSIGの方々はそれに向けて開発中。

  • Ruby SIGのメンバーは各国にいるので、MTGの時間合わせが大変。毎週ビデオカンファレンス。
  • RailsConf 2019での発表動画スライドMedium
  • Javaが参照実装になる
  • 概要はこの動画がわかりやすい
  • OpenTelemetryの名前が明らかにされたツイートはこれ
  • 仕様は参照実装を作る過程でopen-telemetry/opentelemetry-javaのイシューで議論が行われていた。
  • PHP,Rust,SwiftのSIG初期メンバー募集中

OpenCensusでcustom context propagationとexporterを書いた話

@takashabeさん発表。

speakerdeck.com

分散トレーシングの概要やgo実装で使うocgrpcとochttpの説明などわかりやすかったです。 今回の発表はCloud Pub/Subに適用したCustom Context PropagationとTail Latencyを補足するためのにexpoterを書いた話でした。 独自実装のハードルはそれほど高くないので、観測したいものを観測してObservervilityを上げていこうということでした。

自作Language ServerでTelemetryを収集し始めた話

@mopemopeさんの発表でLangServerでTelemetryをとっているという話。

docs.google.com

  • EmacsJavaを書くためのLangServerでは、パフォーマンスに対する品質改善の報告がくる。しかし、どれくらい遅いのか、リソースの消費量はどれくらいかなどはわからない。ユーザに報告してもらうのは大変なので、OpenCensusで解決。
  • 配布プログラムはユーザの環境で動作するので、ファイルパスやパッケージ名、環境変数などがありLogを送るのはやらない。
  • OpenCensus JavaとStackdriver Exporterを使う。
  • メトリクスをアップロードできるだけのサービスアカウントを発行。
  • Emacsからのコマンドを起点にTraceを記録する。
  • OpenCensus自体はHTTPなどによらないがStackdriverはHttp起点
  • クライアントに配布するプログラムでも有用に使えるが、オプトアウトできるようにすること、同意を得てから使う。
  • 個人が特定しうるようなデータはとらない、個人をトレースする用にはhash値を埋め込む

LT: GoでTracableなLaperを生成する

@garsueさんの発表。

docs.google.com

「マイクロサービスじゃなくてもトレースしたい、アプリケーション内の各レイヤでトレースを取りたい」というところから、作ってみたという発表でした。

LT: OpenCensusのここが不満

渋川よしきさんの発表。

docs.google.com

  • expoterをアプリケーション側のコードで入れてあげないといけないが、「クラウドの時代は設定はすべてコンテナの外から行えないとダサい、OpenCensusはexpoterの設定は全部コードで書く」ということで、環境変数を読み込んでいろんな設定をしてくれるやつを作った。
  • expoterを実装するのが難しい 情報が少ない
  • Stast/Metricsの方はややこしい
  • Prometheusのexporterのコードを読むとOpensensuAPIで紹介されてないAPI使ってたり
  • Tech Blogでも紹介
  • 不満はあったけどつぶした!

Cysharp, Inc CEO/CTO

@neueccさんの発表。

www.slideshare.net

  • @neueccさんのMagicOnionというgRPCベースのC#特化のネットワークフレームワークでのOpencensus活用事例。
  • フレームワーク作者としては、Zipkin, Datadog, NewRelic, Mackerel...などなど幅広く対応したい。OpenTelemetryでは自分はコレクターだけを作ればいいので、早くリリースしてくれとのこと。
  • トレーサーの方は使っていない - ゲーム用なので

OpenCensus with Datadog APM

@bgpatさんの発表。

speakerdeck.com

  • Datadog APMはエラーが色付けあされるのでどこが悪いのかわかりやすい
  • サンプリングしないほうがいい理由は、トレースの欠損を防ぐのと、正確な統計情報を取るため。

PHPでもTraceがしたい!!

@castaneaiさんの発表。

speakerdeck.com

  • OpenCensus PHP ExtensionでPHPでもTraceできるけどまだAlpha版。
  • すぐに試せるものを作った

自分のまとめ

OpenCensus/OpenTracing/OpenTelemetry