mqtt_topic_exporter という mqtt ブローカーに接続して特定の topic を subscribe して prometheus 形式で出すというのを、7年前に書いたまま放置していた。

放置といっても(珍しく)使ってなかったわけではなく、ビルド済みバイナリをずっと使い続けていた。けどまぁ7年も経過すると何もかもかわっており (当時 go.mod すらなかった)、現行のツールチェインではビルドできなくなっていたので、なおすことにした。

  1. 現行ツールチェイン (go 1.22) でビルド可能に
    • ついでに kingpin を使うには小粒ツールすぎるので標準の flag に置き換えた
  2. Dev Container に対応させた
    • mqtt broker がないとデバッグできないので、Eclipse Mosquitto を docker-compose で同時に立ち上げてあげる感じに
  3. e2e テストを追加
    • Dev Container 内部で、Mosquitto と接続してうまいこといくかのテスト
  4. graceful shutdown
  5. リファクタリング

全体的に Copilot Agent に分からんこと聞いたり、やりたいことを指示するだけでほぼ完了させることができた。特にテストは自力で書こうと思うとダルすぎてたぶん一生やらなかった。「どうしたらいいかねえ」ぐらいのふわっとした段階から壁打ちして方針 (e2eだけテストしようとか) 決めて、雑に初期実装してくれるのはありがたい……

ただ今回、普通に指示するだけだとベタ書きする感じだったので、分けてほしい部分は個別に指示する必要があった。あとやっぱり普通に嘘をつかれる。「version.NewCollector() はなくなりました (正しくは別パッケージに移動)」とか

  1. トップ
  2. tech
  3. 7年放置した mqtt_topic_exporter を Copilot とともに書きかえた

有給消化中に行ったいろんなところ

特に大学博物館や、企業博物館など平日にしか行けないところを中心にいろいろいった。完全主観な個人的な一言そえて

大学系

以下はすべて無料で見れる。特別展やってたり凝っているところも多い

企業系

無料だったり、とっても少額のところが多い

公共系

時系列 (古い順/行った順)


なんとなく相模湖に行ってみた。行ったことあるような、ないような?と思ってたけど、自転車で一度だけ行ったことがあるっぽい。よくこれたな……

ボート乗り場あたりはむちゃくちゃ昭和の雰囲気




発電所のほう。30分ぐらい登ると山の上にいけるっぽいけど日暮が近かったので今回は行かなかった。

湖の中に泡が出ているポイントがあって、なんだろうと思った。アオコの発生を抑制するために圧縮空気を定期的に出しているらしい (相模湖のエアレーション)。

相模湖駅は高尾駅から1駅と、意外と近い。高尾駅から下り方面は社内の路線図も長野中心のものになってて急に地方にきた気がしてくる。

  1. トップ
  2. photo
  3. 相模湖