OpenCensus meetup vol.1 に参加してきた
参加してきました。抽選倍率高めだったのでブログ枠にしました。書きます。 メモはしたけどスライドが全部公開されていて、見ればだいたい書いてあるので感想成分多めでいきます。
私のステータスとしては OpenCensus の存在は知ってるけど実際に手を動かして触ったことはないみたいな感じでこの勉強会に参加してました。
OpenCensus Intro and Status Update
OpenCensus の概要から今後の展望の話とかをしていただきました。OpenCensus が Collector と Exportor に別れているから、送信するバックエンドを変えるときは Exportor だけ変えればいいんだよぐらいの話は把握してたんですけど、Stats/Metrics の方の話とかなんにも知らなかったので勉強になりました。
OpenCensus Service についてはなにも知らなくて今回初耳だったんですけど、Exportor 自体はそれぞれのバックエンドに依存していてアプリの中に組み込まれているのでバックエンドの切り替え時にはコードに手を入れなきゃいけない、ので Agent として外に切り出そう、みたいな思想は良いなーと思ったので今後に期待したいです。
デザインドキュメント軽く読んでたら OpenCensus 以外からのデータも OpenCensus Agent で受け取れるように Recevier 用意して拡張できたりするんですね、すごい。
opencensus-service/DESIGN.md at master · census-instrumentation/opencensus-service · GitHub
OpenCensusを実際に使ってみて、便利なところと、困ってるところ
GCP の SDK に OpenCensus が組み込まれてるの、めちゃくちゃ便利そう。基本 Trace 情報はサンプリングされているので、ダメだったやつピンポイントで Trace が見たいけど難しい。trace.AlwaysSample{}
で全部出力しようとしたけど buffer full になって捨てられた。みたいなつらいお話が聞けました。サンプリングで欲しいのが取れない話、割と聞くので苦労ポイントっぽい。Trace の Span だけ見てないでその瞬間の CPU などの他の Metrics も考慮しようって話はいいお話でした。
Distributed Tracing with OpenCensus at Wantedly
Wantedly さんの発表。OpenCensus を導入した背景から、入れてみた課題について触れられていました。技術選定のときにどういうことを考えて OpenCensus を選択したとか、実際のマイクロサービスでは共通ライブラリに実装を入れていて、検索用にメタデータには Kubenetes の情報とか Request ID/User ID とか入れてるよとかの情報が聞けて学びがありました。
Exporter がコードに依存するのでライブラリのアップデートなどのつらみがあったり、使ってる言語での Exporter 実装がなかったりしたときにつらいことになるので OpenCensus Service によってアプリとベンダが分離された世界になると嬉しいとのことでここでも期待されてる感じでした。
OpenCensus Javaで始めるOpenCensus
Java のお話でした。お仕事のでは Java と Spring Boot 使ってたりするんですが、Spring Cloud Sleuth なるものがあるんですね。知らなかった。
JavaのCustom Exporterを書いてみた / Writing custom exporter for Java
Java の AWS X-Ray Exporter を作ったというお話でした。200 行ぐらいでメインのロジックは書けたらしい、すごい。
TracingとLoggingの連携 / Tracing and logging correlation
Jaeger を使って Trace 情報と Log を紐づけるお話でした。デモアプリケーションがサクッと動くので動かすとわかりやすいです。
OpenCensus の Span には Log フィールドがないので annotations に入れとくと Jaeger Exporter が OpenTracing Span の Log に変換してくれるらしいです。このへんとこのへん。
Gopher くんはニンジンが好きらしい。かわいい。
OpenCensus Stats で PaaS のメトリクスを補完する / Interpolate PaaS metrics with OpenCensus Stats
OpenCensus Stats のお話。アプリケーションメトリクスも OpenCensus で取得できるよとのことでした。OpenCensus についてまさに Trace しか知らない人間だったので学びしかありませんでした。
Ruby実装について / About Ruby implementation
Wantedly さんで OpenCensus の Ruby 実装 やっていくぞというスライド。かっこいい。
ウェブフロントエンドからサーバーまでの一気通貫のトレーシングに挑戦してみる / Try consistent tracing from web frontend to backend servers
フロントエンドからの Tracing のお話。WebSocket でサーバに繋いで start/end を代わりに実行してもらう感じらしい。
この LT で Observability は港区用語。というパワーワードが爆誕していて笑いました。
Observabilityは港区用語。俺たちは現実《リアル》を把握していく と表現することで足立区まで到達していける #opencensusjp
— わかめ@毎日猫がいる (@vvakame) 2019年4月3日
おわりに
OpenCensus 全然わかってなかったので本当に勉強になりました。これからは手を動かしていきたい。
今回が初回の勉強会だったのですが、OpenCensus マジヤバイとか言って流行らせると2回目が開催されるらしいので布教していきたいと思います。
OpenCensus マジヤバイ