Go で gRPC 周りをデバッグするときに設定しているとデバッグするのが楽になる環境変数がいくつかあります。このあたり、情報が色んな所に散財しているので、ちょっとまとめますね。 GODEBUG その他 GRPC_VERBOSITY, GRPC_TRACE GRPC_GO_LOG_SEVERITY_LEVEL,…
なぜかおかしな振る舞いをするサーバプログラムをデバッグするというのは、それなりに骨の折れる作業です。大量のソースを前に「ここが怪しい」と言いながらデバッグログを埋め込むこともあるでしょう。また、lsof や ss といったコマンドやスタックトレース…
雑談ネタです。 4 月に入り、自宅の Mac をクリーンインストールし直しました。 最近どうも多忙にかまけてしまい、この Blog も含めて自宅での IT 関連のモチベーションが湧かない状況でした。全てを一新することで、もう一度あの熱い想いを思い出せないか、…
Protocol Buffer の proto ファイルを VS Code で編集するにあたって便利なのが vscode-proto3 です。 こちらを割と使っていたのですが、いつの間にか spawnSync clang-format ENOENT というエラーが出るようになってしまいました。ver. は 0.2.2。 原因 メ…
API でのリクエスト、レスポンスのフィールドとして、タイムスタンプを定義したいときがあります。 しかし、Protocol Buffer の言語仕様上、Scalar として日付、時刻関連の型は定義されていません。このようなとき、どのように対処すれば良いでしょうか。 日…
先日は gRPC の Unary RPC で HTTP/2 の挙動を確認してみました。 gRPC Unary RPC で HTTP/2 の通信を追ってみる - 理系学生日記はてなブックマーク- gRPC Unary RPC で HTTP/2 の通信を追ってみる - 理系学生日記 今日は、gRPC の Server Streaming RPC を…
gRPC でいろいろとトラブルが起きており、そのトラブルシュートをしようと思っています。 しかし、gRPC は HTTP/2 の上で動作するプロトコルであり、HTTP/2 の RFC を見ても、イマイチ HTTP/2 が見えてこない。HTTP/2 のプロトコルが見えないと、gRPC の挙動…
gRPC、および、その下で使われている HTTP/2 について、パケットキャプチャして解析しようとしていました。 パケットキャプチャといえば、wireshark ですが、gRPC の通信をキャプチャしても、gRPC でも HTTP/2 でもなく、TCP としか判定されないということになって…
デスクトップアプリを作ってて、デスクトップアプリ上で version を表示させたいということがありました。 version 自体は git でタグ付けしているので最新のタグを取得すれば良いはずだったのですが、今回のアプリは、semantic version 以外に integration …
npm script が楽やなと思って、便利系ツールの起動 (docker-compose.yaml がリポジトリに散らばったコンテナ群の一斉起動とか) を npm script に寄せているのですが、npm run したらエラーが出るといるメンバの溜息を聞いて調べてみるとおもしろいことが分か…