Go
Consulでちょっとしたヘルスチェックを追加したいと思ったのですが、例えば iowaitが高いかつuserは低いとき という条件を書こうとしたときに、「うっ。。!どう書けばいいんだ。。」となってしまったので、作りました。 github.com これはなに metr は次の…
Go Conference ‘19 Summer in Fukuokaでも少し紹介したcolrです。 github.com これはなに まずは以下のスクリーンキャストをご覧ください colr は tail -F /path/to/access.log のようなログにカジュアルに色をつけるツールです。 $ tail -F /var/log/nginx/…
みなさんはdeb/RPMパッケージを作ったことはありますか? 私はtcpdpのパッケージ作成ではじめて作りました。具体的にはここらへんです。 tcpdpはlibpcapに依存していることもあり、DockerでUbuntu/CentOSの環境を作ってその上でコンパイルして、合わせてdeb/…
tbls now supports Cloud Spanner !!! https://t.co/TeTg4ulPb6— k1LoW (@k1LoW) 2019年8月12日 約1,000円の資金を投じて作りました。 1000円超えてた。。。 pic.twitter.com/b60FVMw5V6— k1LoW (@k1LoW) 2019年8月13日 Cloud Spannerのスキーマをtblsで出力…
tcpdpの中のお話です パケットを一時的に保持するバッファ google/gopacket/pcap パッケージでパケットを取得するようなツールを作る場合、2つのバッファを持つことになります。 libpcapが持つバッファ google/gopacketが持つバッファ(バッファ付きチャネル…
filtというツールを作りました github.com これはなに まずは以下のスクリーンキャストをご覧ください tail -F /path/to/access.log のようなログの流れを止めてはgrepをして、止めてはgrepのコマンドを変更してしています。 その間、実は裏では実際のストリ…
Go Conference'19 Summer in Fukuoka、私の中でもう少し続いています。 exec.CommandContext は "孫プロセスがあった場合にそれが止まらない" #gocon でのsongmuさんの発表を聞いて、孫プロセスを雑に放置してきたなーと思いまして、気持ちを改めようとして…
前回のエントリからtblsにいくつか機能追加をしたので、v.1.15.2時点での現状報告です。 BigQueryを bq:// でサポート 家庭内の要望によりtblsのBigQuery対応を進めています— k1LoW (@k1LoW) 2019年5月11日 データセット単位でドキュメント化できるようにな…
サーバの運用をしていると、 なぜかホストのCPU使用率やメモリ使用率が上昇するタイミングがあるが、なぜ(何が)そのタイミングで上昇しているのかわからない CPU使用率やメモリ使用率を通常時以上に使用しているプロセスにはあたりがついているが、なぜそ…
最近、同僚の @r_takaishi からの非常にありがたいPull Requestもあって、sshcの整備を行なっています。 github.com そのときにDockerを利用してSSH接続のインテグレーションテスト環境を(ほぼ @r_takaishi が)作りました。 そして紆余曲折あって、https:/…
なるほど!面白そうです!— k1LoW (@k1LoW) 2019年1月30日 というわけで、勉強も兼ねてtcpdpをPROXY protocolに対応させてみました。 今回想定したユースケース 私自身がPROXY protocolのユースケースを持っているわけではなかったので、まずは「TCPパケット…
makeコマンド、rakeみたいにディレクトリを遡ってMakefileを探してくれないので面倒— k1LoW (@k1LoW) 2019年2月2日 Goを書くようになってからなのか、GMOペパボに入ってからなのか、make を実行することが多くなったのですが、make はMakefileがあるディレク…
evry を公開してからオンラインオフライン問わず様々な場でフィードバックをいただいて、それをもとに修正したv0.2.0をリリースしました。 github.com 指定コマンドを実行するための実装をシンプルにした Use `sh -c` instead of go-shellwords by k1LoW · P…
ログの流量やサマリを、カジュアルに、そしてリアルタイムに確認したかったので作ってみました。 github.com これはなに 標準入力の内容を、一定時間ごと(もしくは一定行ごと)にまとめて指定のコマンドに渡し、その実行結果をシーケンシャルに出力するコマ…
GMOペパボ Advent Calendar 2018 の4日目の記事です。 運用しているサーバに何か問題が発生したら、SSH接続をして原因の特定をします。特定するためにいろいろ確認をします。 しかし、自分はチームメンバーの中では上記があまり速いほうではありません。勘所…
Fukuoka.go に参加してきました! fukuokago.connpass.com 主催者、発表者のみなさん、ありがとうございました! ちょっとトラブルがあって楽しみにしていた「Road to your goroutines」をまともに聞けなかったので残念がっていたら、素晴らしいまとめエント…
tcpdpのprobeモードで、CPUが100%に張り付くという問題(結果、原因としてはしょうもないミス)がありました。 機能としては正しく動いているので、単純にテストケースを増やしてもどうにもならず、pprofを使って原因となっている箇所を絞り込んでみました。…
やっと形になってきました。 github.com 「データベースのクエリログを取得したい」 例えば、データベース(RDBMS)のクエリログを取得したいとき一番確実な方法は、そのRDBMSに備わっているログ機構を利用することです。 一方で、全てのクエリログを出力す…
pprofのWeb UIの "heap" の数って何を表すんだろう? pic.twitter.com/JWlAgIL5Ka— k1LoW (@k1LoW) 2018年9月7日 tcprxyというTCPプロキシを作っています。 github.com 8月中旬くらいから「よし、プロダクションレディになるくらいまで開発してやろう」と、…
夏休みの自由課題です。 今作っているサーバにログ出力の機能をつけたいと思っていて、ログライブラリを検討していました。 必要な要件は以下です。 ファイルには、構造化ログを出力したい(JSONでもLTSVでもなんでもいい) コンソール(STDOUT)には、人間…
データベースドキュメント生成ツールのtblsですが、ひと通り機能が落ち着いた(と思った)のでメジャーバージョンのv1をリリースしました(現在は v1.2.1)。 github.com 前回 v0.8.2 からの追加機能や修正などを紹介したいと思います。 Amazon Redshiftのサ…
お、MySQLの通信も見えそうだぞ? pic.twitter.com/GVxBXqHEgA— k1LoW (@k1LoW) 2018年7月25日 "TCP Proxyを書いてPostgreSQLの通信を覗いてみる - Copy/Cut/Paste/Hatena" の続編です。 MySQLの通信を覗いてみる また簡単なクエリだけを対象にします(プリ…
なんとなく興味がでてきたのでインターネット情報を参考にTCP Proxyを書いてPostgreSQLの通信覗いてみた。クエリの取得まではできた。HTTP/1.1の世界で生きていたので、プログラムでバイナリ?を触ったの久しぶり過ぎるし(TokyoTyrantのPHPクライアント書い…
先週、Fukuoka.go#11 に参加しました。 fukuokago.connpass.com どの発表も興味深く聞くことができました。主催の皆さん。発表者の皆さんありがとうございました!! 感想を1つだけあげるとしたら どの発表も本当に面白かったのですが、個人的には @deeeet …
tbls更新情報です。 やっとできた— k1LoW (@k1LoW) 2018年6月5日 やっと、もともと実装したいと思っていた機能をすべて実装できましたので紹介します。 なお、tblsコマンドについては以下のエントリに書いています。 k1low.hatenablog.com 追加機能 ( ~ v0.8…
進捗報告です。 https://t.co/sVmTUw6klC とりあえずPostgreSQLの実装はできたので、明日からテーブル設計のドキュメント化とそのドキュメントのCIは回せそう— k1LoW (@k1LoW) 2018年5月20日 ドキュメントの更新が追いつかない問題を解決したい 活発なプロジ…