この記事は Go Advent Calendar 2020 の20日目の記事です。
この記事は Go5 Advent Calendar 2019 の2日目の記事です。
grpc-goではログやメトリクス取得、権限チェックなど、gRPCサーバの全てのメソッドで共通して行いたい処理を interceptor で行います。
本記事では、interceptor でメソッドごとの処理を記述する方法を紹介します。
grpc-gateway は gRPC のエラーコードと HTTP のステータスコードをよしなに変換してくれますが、クライアントにエラーの理由を知らせる場合にはエラーレスポンスをカスタマイズする必要があります。
本記事では grpc-go + grpc-gateway でカスタムエラーレスポンスを返す方法について、実装例を出しながら紹介します。
OpenCensus Meetup vol.1に参加してきました。本記事ではイベントで話されたことをまとめます。
イベントでは OpenCensusの概要紹介や、OpenCensusを使ってみて便利だったところと辛かったところ、辛さを解消するために行ったことについて話されていました。
OpenCensusの概要の把握や、深掘りするかどうかの判断の参考になれば幸いです。
本番環境でのみ起こるようなパフォーマンス問題の調査は、簡単ではありません。そのようなボトルネックの調査では、どの処理がどのような入力で時間がかかるかを特定することが重要です。
本記事では、メトリクスの収集や処理のトレースを行うためのフレームワークであるOpenCensusとその可視化、分析サービスのStackdriver Traceを使ってGoのアプリケーションの処理時間を可視化する方法を紹介します。
Cloud Firestore を使う利点の一つとしてリアルタイムに変更を取得できる点が挙げられます。公式ドキュメントでは Go SDK はまだサポートされていないと書かれていますが(2018/12/5 時点)、機能自体は SDK に実装されています (v0.21.0 リリースノート)。本記事では、Firestore の Go SDK で Firestore のリアルタイムアップデートを取得する方法について述べます。