github.com これはなに? RDSのインスタンスクラスごとのメモリ量を習得するterraform provider。 インスタンスクラスごとにデータソースを定義するか、 data "rds_db_instance_memory" "rds" { instance_class = "db.t3.micro" } #=> { # "instance_class" …
クエリログ log_statement=allを設定するとpostgresql.logにクエリログされる。 $ cat postgresql.log 2022-05-30 04:59:41 UTC:10.0.3.147(57382):postgres@postgres:[12768]:LOG: statement: select now(); 2022-05-30 04:59:46 UTC:10.0.3.147(57382):pos…
ridgepoleの1.0.2でパーティショニングの対応が入ったのですが、これを削除することを考えています。 理由としては、パーティショニングの機能は多岐にわたりそのすべてをサポートするのは難しいのですが 現状では本体に密結合になっているため、オプショナ…
demitas2 github.com demitasでシェルスクリプトを使っていた部分がつらくなってきたので、Goで書き直したもの。 ssocreds github.com AWS SSOの一時的なクレデンシャルを出力するやつ。 poslog github.com posgresql.logをパースしてNDJSONで出力するやつ。
RDS(PostgreSQL)でクエリログをON(log_statement=all)・OFF(log_statement=none)、さらにexportしたときの性能の変化が気になったので、pgbenchで負荷テストを行ってみた。 テスト環境 クライアント pgbench (PostgreSQL) 14.2 (Ubuntu 14.2-1ubuntu1) EC2の…
MySQLでpgbenchと同じようなTPC-B likeなテストを実行するツールを書いた。 github.com これは何? pgbenchと同様のtcpb-likeなテストを実行する負荷テストツール。 github.com pgbenchとだいたい同じSQLが実行されると思うが、TPC-Bの仕様をきちんと満たし…
PostgreSQLエンジンでAuroraとRDSでpgbenchを使った負荷テストを行った。 テスト環境 クライアント pgbench (PostgreSQL) 14.2 (Ubuntu 14.2-1ubuntu1) EC2のc5.2xlargeインスタンスから実行 クライアントインスタンスの性能上限には引っかかっていないこと…
ヒューマンリーダブルなURLでesa.ioの記事を開くやつを作った。 github.com これはなに? http://your-esaop.example.com/foo/bar/zoo のような感じの記事のパスを指定したURLを開くと esa.io の https://[team].esa.io/posts/12345 というURLにリダイレクト…
apt-transport-s3をGoに移植してapt-transport-s3-goを作った。 github.com これは何? aptのリポジトリとしてS3を利用できるようにするやつ。 すでにapt-transport-s3が存在しているのだがあまりメンテナンスされている様子がなく、またpythonやpython-conf…
三行で pkg/errorsのスタックトレースが見にくい DatadogのError Trackingが見にくい まあまあなんとかするやつを作った pkg/errors Goのスタックトレース事情については、以下を参照のこと。 zenn.dev 現状では標準ライブラリにスタックトレースが実装され…
github.com 以前業務でMySQLのRDSのスロークエリをCloudWatch Logs サブスクリプションフィルター+LambdaでAmazon ES(現OpenSearch)に集めるやつを作った。 似たようなものをPostgreSQLのRDSで作ったのだが、今回の要件ではクロスアカウントでログを集計す…
github.com これは何? esaのCLIです。 AWS CLIでs3を操作するのと同じような感覚でesaを操作できます。 使い方 see https://github.com/winebarrel/kasa#usage 最初に環境変数ESA_TOKENとESA_TEAMの設定が必要です。 記事の一覧を出す % kasa ls | head 202…
ecspressoをラップしたkubectl runっぽいことをするツールを書いた。 github.com これはなに? ~/.demitas/ 配下に設定ファイルの元をおいてランタイムでimage等を上書きし、最終的にecspresso runを実行するツール。 ~/.demitas ├── db │ ├── ecs-container…
同じリポジトリ内にあるactionを uses: ./.github/actions/my-action のようなかたちで使うやつ。 以下の記事が詳しい: qiita.com node_modulesのコミットが必要でactions/toolkitが使いにくいが、素のNode.jsでもいろいろできる。 処理を共通化したいけどサ…
ECS ExecがどうもマネージドなSSM Agentを使って動いているということはわかっていたが、実際どうなっているのかよくわからなかった。 New – Amazon ECS Exec による AWS Fargate, Amazon EC2 上のコンテナへのアクセス | Amazon Web Services ブログ デバッ…
github.com 経緯 qrnを作ってからndjsonとかJSON Linesとか呼ばれているJSONを一行にして改行で並べたフォーマット*1がなかなか合理的で便利なことに気づいた。 たとえば 複数行のデータ(SQLなど)をエスケープして一行にまとめられる jqで加工・フィルタリ…
先日作ったqlapを流用してPostgreSQL版のmysqlslapを作った。 github.com 概ねmysqlslapと同じ動作になる、と思う とりあえず動いたのでv1.0.0をリリース
先日作成したMySQL負荷テストツールのqlapでdb.r6g.largeとdb.r5.largeを比較した。 Aurora MySQLのバージョンは2.09.2。パラメータグループはデフォルト。 作業手順 以下のようなスクリプトでload typeとrateを変えながらテスト。 DSN='root:..@tcp(...:330…
qrnである程度知見がたまったのでmysqlslapのGo版みたいなものを書いた。 github.com 単純なワークロードのタイプを指定できて、実行するクエリを自動生成できるやつ。 生成するクエリはmysqlslapと大体おなじような感じで、以下のような違いがある。 レート…
一応、ブログに残しておく。 https://github.com/winebarrel/mysql_casual_explain
github.com これは何? Aurora/RDSでプロダクション→ステージングのデータのレプリケーションを行うツールです。 「開発環境のデータをできるだけ本番に近づける - クックパッド開発者ブログ」という記事があって、同じことをAurora/RDSで行うために作りまし…
SpringOnionというRailsの遅そうなEXPLAINをログ出力するgemを作りました。 github.com 某kamopoさんのMySQLCasualLog.pmの移植?です。 cf. ふつうのWeb開発者のためのクエリチューニング 以前の移植とは異なって、Arproxyを必要とせず、単体で動きます。 …
CSVとかTSVをJSON LinesにするツールをGoとRustで書いた。 Go版 github.com $ printf 'foo,bar\nbar,zoo' | xjsonl -keys a,b {"a":"foo","b":"bar"} {"a":"bar","b":"zoo"} Rust版 github.com $ printf 'foo,bar\nbar,zoo' | xjr -k a,b {"a":"foo","b":"ba…
qrnというDBベンチマークツールを作りました。 github.com これは何? 羅列されたクエリを実行するだけのDBベンチマークツールです。 今のところMySQLにしか対応していませんが、PostgreSQLへの対応はそんなに難しくないと考えています。 羅列したクエリを実…
年末で少し時間があったので、書こう書こうと思っていたSendGridのv3 Mail Sendを書きました。 V3 Mail Send API Overview - SendGrid Documentation | SendGrid github.com READMEのUsageを見ればわかるとおり、ほぼAPIに即した薄いクライアントです。 とり…
ridgeporeのv0.7.6でignoreという属性をカラム・インデックス・FKにつけられるようにした。 github.com あんまり周知していなかったせいで、全然知られていないが、ridgepoleでもexecuteがつかえる。 https://github.com/winebarrel/ridgepole#execute creat…
ちょうど4日ほど前に、apexにrubyサポートのPRがマージされていた。 github.com なので、すこし試してみた。 apexのビルド goのバージョンは1.11.4。 GO111MODULE=onでビルド・インストールできた。 (apexのmasterをcloneしてから) export GO111MODULE=on ma…
active_record_mysql_xverifyというgemファイルを書いた。 github.com これは何? RailsでAuroraを使うときに、フェイルオーバー時に旧マスタにつなぎに行く問題をなんとかするやつ。 世間様を見渡すに「コネクションプール使うな。接続を切れ」というのが現…
先日、Kyoto.rbがあったので、参加してもくもくとLinuxのauidt.logのパーサを書いてきた。 github.com audit.logは構造化されているようでいて、微妙に例外のあるフォーマットで*1、Red Hatのドキュメントを見ても、以下のような感じで type=SYSCALL msg=aud…
そろそろ腐りそうな知見なので、腐りきる前にメモだけ残しておく。 まあ、基本的にはSendGridなどのクラウドサービスを使った方がいいと思うけど、どこかの誰かの役に立つかもしれないので… Postfixでメール配信の流量制限を行う場合、送る量を制限するか、M…