grpc の binary log
grpc-java でログ取るのにどういった項目やどういったフローで取ることになるんだろうなーと調べていたら、 BinaryLog
というクラスがあって良さそうなのにググっても全く英語でも概要や使い方が殆ど出てこず、気になったので調べてみた。
つまり、バイナリ形式でログを取り、RPC の再現や問題の発見のためのログということらしい。けれど、提案中の機能で、まだ本番で使えるようなものではない様子。
使い方はサーバや、channel に仕込めばいいだけ。
- https://grpc.github.io/grpc-java/javadoc/io/grpc/ServerBuilder.html#setBinaryLog-io.grpc.BinaryLog-
- https://github.com/grpc/grpc-java/blob/master/api/src/main/java/io/grpc/ManagedChannelBuilder.java#L490
このインスタンスは、 BinaryLogs というヘルパークラスを使って作ることができる。ファイルの出力先やログのフィルタ設定などはここから実装をたどれば良い。
実装を見ると、ログに残す対象のサービス・メソッドやログに残す項目を設定できる環境変数の名前が、提案と実装で違っているので本当にまだ試験段階なんだと思う。
BinaryLogSink で、受け取ったログを出力する実装を書けるみたいだが、受け取るメッセージの型のが MessageLite
で扱いづらい。Slf4j に json 化して出力とかできるかな?
JSON にするはこれ使う:
Author And Source
この問題について(grpc の binary log), 我々は、より多くの情報をここで見つけました https://qiita.com/k_ui/items/89875e0bcdb42b089bc5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .