地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

2023-11-01から1ヶ月間の記事一覧

【Go】otelでspanにattributeを付ける

SetAttributesを使うことで実現できる。例えば以下はtraceの情報にAddという関数の引数をattributeにつけることで情報が追加される。 package calc import ( "context" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/attribute" ) var tracer = ote…

【CLI】jqでlessして色をつけたい

lessに-Rをつけて -R or --RAW-CONTROL-CHARS Like -r, but only ANSI "color" escape sequences and OSC 8 hyperlink sequences are output in "raw" form. Unlike -r, the screen appearance is maintained correctly, provided that there are no escape …

サービス稼働中にMySQLのプライマリDBがメジャーアップデートされたらどうなるのか

考えただけでも恐ろしいが考えてみる。どれくらいのダウンがありそうだろうか。ざっと考えると1~4までは大体決まった作業になりそう。ただ問題は5でこれを焦りながらやるのはメンタルやられそうだなぁと思った。いやーそうならないようにしよう。 1. シャッ…

【Go】GOOS=wasip1でビルドしたwasmでTCPサーバを起動する

github.com wasip1ではネットワーク関連の機能が一部しかサポートされてないので使えないと思っていたがstealthrocket/netを使うことでできる模様。 こんな感じのDockerfileを用意しておく。このライブラリではWasmEdgeをサポートしているらしいのでそちらを…

fzfで画像のプレビューが可能になった

github.com 結構欲しかったやつでめっちゃとても便利。撮った写真をDropboxとかNASに移すときにFinderだと常にリスト表示してるのでCLIで操作できたらなと思っていたので嬉しい。0.44.0を入れれば使える。

Redisの25倍のスループットを出したDragonflyのロマン

目次 目次 書いた背景 Dragonflyとは スループット25倍の話 計測方法次第ではRedisと性能差はそこまでないってこと? どうやって性能を出しているのか ロックマネージャーとは VLLの実装をGoで書いてもらった まとめ/感想 参考資料 書いた背景 ChatGPTで論文…

Cache-Control: max-age=Xがない時のブラウザキャッシュ

レスポンスにCache-Control: max-ageがない場合って何も考えずにクライアントにキャッシュされないと思っていたがどうやらそうではないらしい。この挙動自体はRFCでも定義されている。HTTP は可能な限りキャッシュするように設計されているので、Cache-Contr…

【ポエム】アウトプットへのネガティブコメントはどう受け取るのが良いのか

前職時代の後輩と久々に飲みにいってブログ書くと炎上とかまさかりが怖くて〜みたいな話をしていて色々考えがまとまってなかったので書いてみる。「この考えは間違っている」や「こんなのも知らないのか」とか「こんなのやってる暇あるなら仕事しろ」とか今…

【MySQL】slaveでもbinlogを更新するにはlog-slave-updatesが必要

dev.mysql.com リードレプリカでbinlogが更新されないなぁと思っていたらlog-slave-updatesがオフになっていて更新されていなかった。これはレプリケーションソースサーバーから受信した更新を、レプリカ独自のバイナリログに記録するかどうかを決めるための…

php-fpmのセッションの保存先

[Session] session.save_handler = memcache こんな感じで定義することでファイル以外のハンドラを設定することができる。 www.php.net 上記のサンプルだと以下のライブラリを使うように設定してある PECL :: Package :: memcache ちなみにmemcacheとmemcach…

三陸沿岸道路ドライブですずめの戸締りの聖地巡礼をしてきた

すずめの戸締りのブルーレイを買って見返してたら割と近場に色々あることに気づき久々の長時間運転で回ってきた。朝に行こうって決めてホテル取って300キロくらいの中距離ドライブだったけどあんま疲れなくてまだギリギリ20代であることに感謝の気持ちが芽生…

【MySQL】mysql can't reopen union

MySQLの仕様として一時テーブルはテーブルを再オープンできないので一つのクエリ内では複数回参照するということができない。 mysql> desc employee_table; +---------------+--------------+------+-----+---------+----------------+ | Field | Type | Nul…

mysqlslapを使ったロードエミュレーション

dev.mysql.com mysqlslapは,MySQLの負荷をエミュレーションできるクライアントアプリケーション。MySQLが公式でサポートしているツールになります。並列実行数やSQLの自動生成など機能豊富で色々な負荷試験ができそうです。MySQLをインストールすると、デフ…

performance_schema.data_locksとperformance_schema.data_lock_waits

今更すぎるがMySQL 8.0から入ったperformance_schema.data_locks・performance_schema.data_lock_waitsあたりを学んでメモしていく。 performance_schema.data_locks dev.mysql.com performance_schema.data_locks は、MySQLデータベースのパフォーマンス監…

Performance InsightsとPerformance Schema

docs.aws.amazon.com RDS for MySQLでも使えるPerformance InsightsだがPerformance Schemaを有効化している状態だとソースレベルの処理時間が取れないということがわかった。オンにしているとこんな感じでイベント単位の処理時間しか見えない。もちろんこれ…

opentelemetry-go-instrumentationで自動計装を試す

github.com 対象のアプリケーションを書く net/httpを簡単なwebサーバをターゲットにします。 package main import ( "fmt" "net/http" ) func helloHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello") } func main() { http.Handle…