GoのWebアプリケーションのSQLロガーとパフォーマンス分析ツールを作ってみた

はじめに この記事は Go2 Advent Calendar 2018の記事です。 担当の10日より1時間ほど投稿が遅れてしまったことをお詫びします。 今回は、拙作のGo製のWebアプリケーションにSQLのクエリロガーを仕込めるOSS『graqt』 を紹介したいと思います。 過去に書いた…

#isucon 8 で 惨敗してきました

以下のレポートは書いてる途中で力尽きてしまい不完全なものです・・・。あらかじめご了承ください。 2018/09/15(土)にISUCON8に参加して、ボロ負けしてきたのでそのレポートです。 SlackでのやりとりやGitHubのコードをベースに、時間ごとに何をやったかを…

builderscon 2018に行ってきたよ

builderscon.io builderscon 2018 に 参加してきたので、レポート。 buildersconの良いところ 知識欲を満たせる豊富なカテゴリのセッション! その道に詳しい人によるハイレベルなセッション! 「知らなかった!」を絶対聞ける! 普段(使ってない|知らない)…

Evernoteより100倍便利なメモサービス「Notion」を今すぐ使おう

こんばんは、今日*1は歴史的な台風ですが、皆様いかがおすごしでしょうか。 今朝、たまたまTwitterを見ていて発見したメモツール「Notion」が今までのメモツールの100倍は軽く超えてくるレベルで良いので紹介したい。 今までのメモツールの歴史を覆す「Notio…

「Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識」を買った

最近、低レイヤーなことに興味を持ち始めたので買った。 技術書って、今読むか後で読むかの違いなので、迷ったら買うのが良いと思っている。 技術書読むの昔は大嫌いだったけど、 YAPCでkindle oasisもらってからかなり読むようになった。 やっぱり、技術書…

一歩踏み込んだnginxのプロファイリングをする

ISHOCON2で惨敗して、悔しくてたまらなくてhttp2やnginxのことについてずっと調べたので、調査記録として残しておく。 serinuntius.hatenablog.jp 一番手軽で万能な「strace」 使い方 ざっくりと集計してボトルネックを探す 集計結果を元にあたりをつけて調…

ISHOCON2というISUCONの個人大会で惨敗してきました【優勝スコアと同等の参考実装付き】

昨日(2018年8月25日)、ISHOCON2というISUCONの個人競技バージョンの大会に参加してきたのでレポートです。スコアが思うように伸びなかった方はぜひ読んでみてください。 ISHOCONとは ISHOCONの特徴 問題がコンテスト開催前からオープンであること 個人参加で…

Goのボトルネック調査にgo-torchがめっちゃ良い

こんばんは〜。 ISUCONの練習に励んでいる @_serinuntiusです。 自作のWebアプリケーションのボトルネック調査アプリケーションgraqtを書いていますが、もっと便利(?)なツールがあることを僕は知ってしまいました。 それがgo-torchです。 go-torchとは Tool …

【3,4日目】graqt開発日誌 ~PercentileとStddev(標準偏差)~

「べ、別に土日早起き出来なかったからブログ書けなかったわけじゃないんだからね。。。」 冗談はさておき、土日はISHOCON2やgraqtの開発に力を入れてしまい、記事を書けませんでした。 いろいろ機能が追加されたので、紹介したいと思います。 新機能 Percen…

【2日目】graqt開発日誌 ~GolangでスクロールできるCLIを作る~

今日から、朝5時に起きて、筋トレして7時に出勤して、始業の9時半までgraqtを書くことにした。夜は22時に寝る(つもり)。 1日3時間半程開発時間を取れるため、結構捗る。 進捗 午前中 ヘッダーを残したままスクロールする(結構考える必要があった) 今日…

【1日目】graqt開発日誌 ~GolangでリッチなCLIを作る~

最近ブログ書いてないので、graqtの進捗を1mmでも進んだら書くことにする。 graqtについては、以下の記事を参考にされたし。 一言で言うと、バカでも使えるGolang用のWebアプリのボトルネックを調査するソフトウェアです。主にISUCONをターゲットにしていま…

【自宅鯖】自作PCの電源を換装する【オウルテック Seasonic SSR-650FM】

6月の頭ぐらいから、ゲーミングPCとして利用していたタワー型の自作デスクトップを、サーバとして利用していた。 Mackerelで監視していたのだが、しばらくは安定して稼働していた。 しかし、ここ2週間ぐらいで不安定になってきた。ログとか見ても特に変なと…

【Golang】GitHubのAPIでIssueのコメントを全件取ってくるスクリプト

昨日モテるシェル芸とか言って、ブログ書いてたんですけど、 serinuntius.hatenablog.jp 実はGitHubのIssueのコメントが大量すぎて、Load more になっちゃってて、全部の画像をダウンロードできてなかったみたいです。 それをデザイナーに指摘されて、全部取…

【裏技】みんな知らないログイン必須ページの爆速スクレイピング【モテるシェル芸】

ログインが必要なWebサイトで画像を引っこ抜いて欲しいという依頼があり、スクリプトを書くかな〜と迷ったんですが、よく考えたらシェル芸だけで出来るな〜と思ったので共有したいと思います。 今回はデザイナーにGitHubのIssueに貼ってある画像200枚以上をz…

dockerのコンテナを楽に選択するpecoを使ったalias

ブログ書くの怠ってたから、カジュアルにアウトプットしていくぞ!!! 本題 環境 peco zsh(zshのグローバルエイリアスという機能を使っているみたいなのでzshしかできないと思います。) docker 手順 ~/.zshrc に以下を書くだけ alias -g C='`docker ps -a|p…

go run main.goとすると別ファイルのmainパッケージのグローバル関数がundefinedで怒られる

めっちゃ久しぶりのブログになってしまった。 書くことなんか何個でもあるのに、バタバタしてたりでアウトプットを疎かにしていた。(言い訳) 本題 少し前から気になってたことだったんだけど、go run main.go で実行すると、mainパッケージの別ファイルのグ…

kamakura.go #4 に登壇しました!

昨日(2018年5月25日)行われた、kamakura.goのLTで以前から書いているGoのパッケージであるgraqt(がらくた)の紹介をしてきました。 前回のgraqtの記事 serinuntius.hatenablog.jp 発表資料 speakerdeck.com 登壇後に質問されたこととか (あいまいな)記憶と #k…

【追記アリ】Golangで1行1行がJSONのログを効率的にパースする

この記事でも書いたけど、ISUCON用のロガーを作ったので、そのログをパースするツールを書こうと思った。 serinuntius.hatenablog.jp 少しパフォーマンスを意識して書いてみたけど、きっともっとパフォーマンスが良くなる気がするのでマサカリウェルカムです…

Go専用対ISUCON兵器 「graqt」を書いた

はじめに この記事でも書いたけど、最近ISUCONの面白さに気づいた。 serinuntius.hatenablog.jp 社内ISUCONはRubyで書かれていたけど、本家ISUCONでは使用言語が選択できる。 そうなったら、今なら迷わずにGoを選ぶ。 それは、何故かと言うとGoが速いとかそ…

ISUCON7優勝者と社内ISUCONに出て学んだ12のこと

昨日新卒研修向けの社内ISUCONがあり、ISUCON7の優勝者であるsuzukiくんとペアを組んで去年の新卒という枠*1で出させてもらった。*2 僕のISUCONレベルは、社内ISUCONを新卒研修のときに1回やったことがある程度で、レベル5まであるとすれば僕は確実に1ですね…

git blameとpecoとhubで特定行のGitHubのPRを一発で開くのを実現するgit alias

via GIPHY tl;dr 大規模なプロジェクトでコード書いてると、「なんでこういう設計になってるのか」とか「当時はどういう仕様だったのか」みたいなのを知りたいことがよくある。 そういったときに、プルリクエストを見ることで知りたい情報を手に入れられるこ…

新卒が入社して一年で学んだこと

あっという間に1年が過ぎ、入社して2年目になってしまった。 MacBookに乗る実家の猫ちゃん 丁度良い機会なので、自分が1年でどんなことを学び、どんなことを学んで行きたいかを書こうかと思う。 志 今までと圧倒的に違うのは、プロ(?)としてお金を貰って仕事…

SlideShareで日本語が化けるので連番PNGをPDFに変換する

背景 本当はSpeakerDeckに資料を上げたかったんだけど、変換が1日経っても終わらなかったりでどうなっているんだという感じだった。 仕方がないので、SlideShareに上げることにした。 けど、今度はフォントの問題とかがあって、日本語が表示されていない。 …

YAPC::OkinawaでベストLT賞を貰った若者が得たもの

YAPC::Okinawa 2018でベストLT賞に選んで頂いた 1ヶ月前までRuby書いてたのに、気づいたら沖縄でPerlのLTをしていた そんな感じ。紆余曲折を経てこうなった。 この記事は、自分が発表者として書いた記事で、聞いた側の記事はこちらに書いた。 資料 新卒Rubyi…

YAPC::Okinawa 2018に参加してきました

ある日突然、社内のSlackの#Perlチャンネルで若者2名に「交通費出すからYAPCに行きませんか〜」とmacopyさんからメンション飛んできて、僕の方が反応するのが早かったというだけで参加が決まったw