ぶていのログでぶログ

思い出したが吉日

PromQLでN日前のグラフと比較する

毎度忘れてそのたびに色々検索するのでブログにメモしておく。 結論から書くとoffset modifierを使うと実現できる。 prometheus.io 例えば、exampleサーバの5分間のCPUの%idleを取りたい場合は以下のように書くと思う。 sum by (mode)(irate(node_cpu_second…

Rust: assertの出力に色を付ける

before/after cargo testで大きめの構造体をassertすると↑のbefore画像みたいにとても長い出力になる。 長すぎてどこに差分があるかわからなくてとても苦労する。 そこで、afterのように色をつけるスクリプトを作ってみた。 #!/usr/bin/env ruby require 'te…

Ubuntuでlivepatchが有効化できない / error: cannot install "canonical-livepatch"が出たときの対処

有償サポートのUbuntu Advantage(以下UA)に契約するといくつかの機能が使えるようになる。 例えば、セキュリティアップデートが5年伸びるExtended Security Maintenance(ESM)や再起動せずにカーネルのパッチを当てられるLivepatchがある。 UAを契約するとト…

kittyからZellijにしてみたけど結局Alacritty+tmuxに戻ってきた

今年のはじめにAlacrittyからkittyに移行しているという記事を書いてそれ以来kittyを使っていたのだが、色々あって結局Alacritty + tmuxな元の環境に戻ってきてしまった。 それまでの変遷とか思ったことを書いておく。 kittyとの出会いと別れ kittyとの出会…

gzip/zgrepの脆弱性CVE-2022-1271を調べた

2022/04/07にgzip/zgrepの脆弱性CVE-2022-1271が見つかった。 cve.mitre.org security.sios.com すでに主要なディストリビューションでは対応が終わっている脆弱性ではあるが、gzip/zgrepがシェルスクリプトで書かれているので、シェル芸人としては気になる…

Chefのruby_blockからリソースを制御する

※ Chef + Knife-Zeroな環境を想定してこの記事を書いている。 かなり特殊な状況ではあるが、chef-clientの実行ユーザがubuntuのときにはubuntuユーザの削除を行わないということがしたい。 想定状況としては、Ubuntu VMを新たに立ち上げてbootstrapをかけ、…

live-migration-notifierをGolangにポーティングした

以前、OpenStackのlive-migrationをSlackに通知するくん通常live-migration通知くんというものを作った。 tech.buty4649.net ブログに書いて依頼、実際に会社のOpenStack環境で安定して稼働していた。 Rubyのアップデートでも特に問題なく稼働していた。 し…

grafana-rrd-serverでcollectdなどのRRDファイルをGrafanaで表示する

会社ではGitHub Enterprise(以下、GHES)を使っている。 GHESの管理コンソールにはMonitorタブがありそこで様々なメトリクスを見ることができる。 ここで見られるデータはcollectdで集計されているらしく外部にcollectdを設置することでexportすることができ…

再起動/削除/変更コマンドの頭に空白をつける

bashやzsh、fishなどではコマンドラインの先頭に空白をつけることで、そのコマンドラインだけhistoryに残さないという機能がある。 以下、fishでの実行例。 # 通常の操作だとhistoryに残る ❯ echo hello hello ❯ history -n 1 echo hello # 頭に空白を入れる…

UTCからJST/JSTからUTCの変換をワンライナーで行う

AWSからくるメンテナンスのお知らせがUTCだったり、ときどきログやグラフのタイムゾーンがUTCになっていたりする。 そんなときにJSTへシュッと変換したくなる。 dateコマンドは現在設定されているタイムゾーンで表示できるのと、-d オプションを指定すること…

Ruby向けのLINSTOR APIクライアントを作った

LINSTORはLINBIT社が出しているSoftware-Defined-Storageを実現するためのミドルウェアである。 もともとはdrbdadmの代替として登場したと記憶しているが、いつのまにかDRBD以外の管理もできたりk8sやOpenStackから利用できるようになっている。 linbit.com …

Alacrittyからkittyに移行している

普段使うターミナルはAlacrittyを使っていた。 速度や機能など特に不満はなかったが、面白そうなのでkittyに移行している。 sw.kovidgoyal.net kittyとは Alacrittyと同じGPUベースのターミナルで、独自の機能としてターミナルプロトコルの拡張がされていた…

2022年抱負

毎年うっすら抱負的なものを考えるものの、ブログなりで表明してこなかったために年末に振り返ることができなかった。 振り返りができないと、何が悪くて目標が達成できなかったのかと分析できないし、次の年につなぐこともできない。 思いつきではあるが、…

FileNameCopyを公開停止します

先程、FileNameCopyの公開停止をVectorに申請して非公開となりました。 今までのご利用ありがとうございました! FileNameCopyとは ほとんどの人は知らないと思うのでFileNameCopyについて説明する。 これは、Windows向けのフリーウェア*1で、15年くらい前(!…

📝 snap版multipassで launch failed: Remote "" is unknown or unreachable. が出たときの対処

snap start/snap stopすれば直ると思われる。 ❯ sudo snap stop multipass Stopped. ❯ sudo snap start multipass Started. 以下、調査ログとか憶測 launch failed: Remote "" is unknown or unreachable. で検索すると真っ先に出てくるのが以下のissue。 gi…