タグ

ブックマーク / tagomoris.hatenablog.com (339)

  • 自家製 td-agent のrpmをつくる - たごもりすメモ

    自社サービスの運営のために fluentd を使っているとrpmでインストールできる td-agent が大変便利だ。 便利だが、自社内で使うんだから、もう最初から自社用の設定とかその設定に必要なプラグインとか入っててほしい。そんで yum install td-agent をサーバ上で実行したら設定とかいじらないでいいようにしたい。みんなラクをしたいでしょ!? もちろん td-agent のリポジトリをforkしてあれこれ手を入れればできるが、そうするとその後のメンテナンスが面倒だ。リポジトリ自体のアップデートはTreasure Dataの人に頑張っていただいて、我々は spec をいじる程度に収めておきたい。みんなラクをしたいよねー。 した いろいろと td-agent のビルドスクリプトに手を入れる必要はあったが、もうその修正は当たっているのでみなさんは以下の手順を実行するだけでよろ

    自家製 td-agent のrpmをつくる - たごもりすメモ
    tagomoris
    tagomoris 2013/12/24
    書いたよー
  • tagomorisとDMM.comのはなし - たごもりすメモ

    前にこんなblogエントリを書いた。 dmmのエンジニアと話をしてみたいという話(追記あり) - たごもりすメモ このエントリ、Cassandra Casualという勉強会でCassandraのようなそうでないような話を聞きながら、しかもビール2飲んだ状態で書いたものだった。書いてさっさと公開して放っておいた*1ところ、だいぶ経ってはてブがやたらとついていることにびっくりしたものだった。 正直に言おう。対象はなんでもよかったんだ。世間に知られている大規模インターネットサービスを運営していて、会社としての・中の人としての雑誌記事やイベント登壇やblogエントリがあまり見られない企業であれば。DMMでなくても、たとえばFC2でも楽天でもNTT docomoでもY!Jでもドワンゴでも。 もちろんどんな会社の人でも行くべきところに行けば中の人がいるのは知っているけれども、そういう話じゃない。単に

    tagomorisとDMM.comのはなし - たごもりすメモ
    tagomoris
    tagomoris 2013/12/20
    ぽえむかいた
  • クラウド環境の設計指針をどう決めるか - たごもりすメモ

    クラウドに限らず、データセンタの設計全般に言えることだけど。 コンピューティング基盤をどのように設計するかには根から異なるアーキテクチャが様々あって、ある特定の方向のアーキテクチャについても実現するためのソフトウェアやハードウェアに様々なものがある。 合議制で決めてはいけない。何を採用するか、どのように設計するかについては、誰かが英知をもって決断するべきだ。それも可能な限り素早く。 今更言うまでもないことだが、この世界は技術の変化が非常に速い。おそらく3年経てば優位な技術は入れ替わっていて、何か新しいトレンドとか技術要素だとかいったものが登場しているだろう。 そんな中で何を採用するかについて、長い時間をかけるのは簡単だ。3年かけて実機を多数揃えて比較検討すれば、検討開始からの3年間で何が優位だったかが確実にわかるだろう。 おそらくその頃には別の技術が登場し、更に3年の比較検討が必要になっ

    クラウド環境の設計指針をどう決めるか - たごもりすメモ
    tagomoris
    tagomoris 2013/12/18
    やばい、4年半前のおれ、だいぶいいこと言ってるなこれ
  • Fluentd Casual Talks #3 開催してきた&しゃべってきた - たごもりすメモ

    Fluentd Casual Talks #3 : ATND 開催しました。いつもながら会場を :DeNA さんにお借りしまして、いつもいつも大変お世話になっております。ありがとうございました。160人の募集に対して応募が最終的には200人弱、会場には定員の7割を超えるくらいは来てたのかなと思います。大盛況で良いことだったと思います。 で、もう他に感想エントリもあるようなのであまり書かないけど、fluentd v11-preview が突如リリースされたり*1、某TD社の新サービスが突然発表されたり*2、面白い人達がなんか面白いことやってて面白くて非常によかった。またやりたい。 しゃべってきた またしょうこりもなく Norikra の話。最近 fluent-plugin-norikra を大規模に整理したのでそれもからめて。 fluent-plugin-norikra #fluentdca

    Fluentd Casual Talks #3 開催してきた&しゃべってきた - たごもりすメモ
    tagomoris
    tagomoris 2013/12/16
    書いた #fluentdcasual
  • scalar context において sort の挙動は未定義 - たごもりすメモ

    この問題についてなんですがね。 http://search.cpan.org/dist/Perl-Critic/lib/Perl/Critic/Policy/Subroutines/ProhibitReturnSort.pm まあ未定義っつってもどうせリストの要素数返すんだろ! そう思っていた時期が俺にもありました。 試す とりあえずこういうコードを書きます。 use strict; use warnings; sub hoge { my @a = (5, 3, 2, 6, 1); return (sort @a); } use Data::Dumper; warn Dumper +{ list => [hoge()], scalar => scalar(hoge()), }; おもむろに実行します。 $ perl tmp/hoge.pl $VAR1 = { 'list' => [ 1,

    scalar context において sort の挙動は未定義 - たごもりすメモ
    tagomoris
    tagomoris 2013/12/10
    Perl Advent Calendar 12月10日も占領して書いた!
  • カスタマイズ済みのApacheログ書式もパースする Apache::Log::Parser の話 - たごもりすメモ

    さて、Perlといえばテキスト処理、テキスト処理といえばPerlですね。そしてこのビッグでデータな現代においてテキスト処理といえばログの処理に決まっています。 ログの処理といってもいろいろですが、もちろん強く逞しく生きる現代っ子の我々は以下のようなログを扱います。 Apacheのログ Apacheのログなんだけどいくつかの書式が混ざってたりする combined に当然いろいろデータが足してある LTSVってなんですか? そのような素敵な問題を解決するためのモジュールがCPANにあります。Apache::Log::Parserです。 あっ、そのページはダメ、こっち、こっちな。 Apache::Log::Parser Apache::Log::Parserは内部に2種類の解析器を備えており、パーサを初期化するときにどちらかを選びます。それぞれ以下のように動作します。 fast mode Ap

    カスタマイズ済みのApacheログ書式もパースする Apache::Log::Parser の話 - たごもりすメモ
    tagomoris
    tagomoris 2013/12/10
    書いた!
  • 実行中のRubyプログラム中で自分自身を動かしているrubyのパスを取得する - たごもりすメモ

    何が嬉しいんだそれって言われると、うーん、rbenv/rvmなんかの影響を無理矢理外すために環境変数とかをいじった上で自分自身を起動しなおしたかったからんだけど、あっやめて石を投げないで、そんなマイナーケース知るかって、あっ、 RbConfig モジュール 要するに RbConfig.ruby を呼べばすべて解決! http://docs.ruby-lang.org/ja/2.0.0/class/RbConfig.html#S_RUBY require 'rbconfig' RbConfig.ruby #=> "/Users/tagomoris/.rbenv/versions/jruby-1.7.8/bin/jruby" # とか @KitaitiMakoto さんに教えてもらいました。ありがとうございます! ボツ案 psして結果をパースする したくない。あとjrubyだとプロセス名自体は

    実行中のRubyプログラム中で自分自身を動かしているrubyのパスを取得する - たごもりすメモ
    tagomoris
    tagomoris 2013/12/06
    めも
  • Fluentdとはどのようなソフトウェアなのか - たごもりすメモ

    Fluentd というソフトウェアがある。日国内ではそこそこ話題になってきたが、何ができるのか、何に使うと嬉しいのか、何に使えるのか、という点について詳細をよく知らないという人もおそらくまだ多いことでしょう。 なので、簡単にまとめる。 http://fluentd.org/ なお以下の個別項目ごとに書いていくが、その手前にまとめを置いておくので忙しい人はそれだけ読むとよい。インストールや設定については導入部分については日語の記事はもう多くあるので、触れない。 概要 できること ログの収集 センサデータ等の収集 汎用データ処理プロセッサとして 頻出ユースケース ログの収集 データの集約 簡単なリアルタイム集計 ソフトウェアとしての特徴 コア プラグイン 安定性 性能 開発体制 コミュニティ ぶっちゃけどうなの? まとめ 現時点で、複数の場所に分散したデータや常に増え続けるデータの安全な転

    Fluentdとはどのようなソフトウェアなのか - たごもりすメモ
    tagomoris
    tagomoris 2013/12/03
    #fluentd Advent Calendar 2013 3日目記事書いた!
  • Monitoring Casual Talks in Kyotoいってきた&しゃべってきた - たごもりすメモ

    京都でモニカジが行われるらしい、と聞いたときにたぶんあんまりクルマ乗ってなくて、ひさびさにロングドライブがてら行くのもいいか、とつい思ってしまい参加登録してたので、いってきました。紅葉シーズンの京都で宿が取れなかったときはどうしようかと思った*1。 Monitoring Casual Talk in Kyoto on Zusaar しゃべってきた 資料はこちら。 The longest 5 minutes in our life from SATOSHI TAGOMORI タイトルは厨二です。っていうかこのタイトル、最初は "shortest 5min." にしようと思ってたのに気付いたら longest になってました。まあどっちでも意味ありげだしいいか、どうせ厨二だしな、って放置。 内容につきましては、まあいつも通りログの調査なんだけど、時と場合によって調査したい内容とか幅とか深さとか

    Monitoring Casual Talks in Kyotoいってきた&しゃべってきた - たごもりすメモ
    tagomoris
    tagomoris 2013/12/02
    めもった
  • MySQLにおいて真とされる値を調べた - たごもりすメモ

    このエントリはMySQL Casual Advent Calendar 2013の1日目の記事です。 はじめに SQLを書くとき、普通は where でその処理が対象とする行を絞り込みます。要するに where 以下が真である行が対象になるわけですね。簡単には以下のように書きます。 DELETE FROM tbl WHERE 1=1 さて、もちろん WHERE 以下には実際の各行のデータを用いるわけですが、例えば削除用フラグを各行に持たせておいて、バッチ処理で一気に消したい場合ならこのようにします。 -- delflag TINYINT(1) DELETE FROM tbl WHERE delflag=1 ここで、おっと、と思う人もいると思います。そう、MySQL にはBOOL型がありません。いや、正確にはBOOLという独立の型は存在せず、BOOLといえばTINYINT(1)のことである、

    MySQLにおいて真とされる値を調べた - たごもりすメモ
    tagomoris
    tagomoris 2013/12/01
    書きました! #mysqlcasual
  • Ruby 2.1.0-preview2 で #fluentd (というかmsgpack)は動きません - たごもりすメモ

    このチケット(既にclosed)の関連なんだけど。 http://bugs.ruby-lang.org/issues/9106 Ruby 2.1.0-preview2 で gem install msgpack すると、ビルド&インストールされたgemのディレクトリにおいて lib 以下にビルド済みバイナリファイル(*.so や *.bundle)がコピーされておらず、実行時にLoadErrorが出ます。手動で msgpack.so (など)をコピーすれば動きます。 Cool::IO などを試したところそっちは lib 以下にコピーされているようなので extconf あたりの書き方によるのではないかなーと思いますが、rubygemsの変更に伴うものであることも間違いありません。そこまで行くと自分にはよくわからないので誰かにどうにかしてほしいところ。 なんにしろ、注意が必要です。このまま

    Ruby 2.1.0-preview2 で #fluentd (というかmsgpack)は動きません - たごもりすメモ
    tagomoris
    tagomoris 2013/11/26
    めも
  • Ruby World Conference 2013いってきた - たごもりすメモ

    毎年島根県松江市で行われているらしいとかねてより聞いてはいたイベント、聞きたいセッションがあったので参加してきた。実家が松江市で、ちょっと帰省しておきたい事情が重なったのも決定を後押しした感あったけど。かなり後になって参加を決めたので特にしゃべる方は何も応募とかせず、当に単に参加してきただけ。 http://www.rubyworld-conf.org/ja/ プログラミング言語系のイベントでは他に見ない現地関係者のご来賓挨拶みたいなのがあったりでだいぶ戸惑ったけど、慣れるとじわじわくるらしいのでまだ未熟ということだろう。セッションも聞いてはいたけど、それより色々な人と色々話してきた、という感じ。基的にぼっち行程だったので果敢にRubyコミッタの方々に話しかけに突撃してた。 だいぶスーツ色が強い空気もあった*1けど、そうでない人もかなり混ざっててどちらもアリみたいな感じ。 あんまり具体

    Ruby World Conference 2013いってきた - たごもりすメモ
    tagomoris
    tagomoris 2013/11/25
    書いた
  • 最近の多言語対応User-Agentパーサライブラリ woothee について - たごもりすメモ

    User-Agent文字列を parse メソッドにわせるとparse結果がハッシュで返ってくる、というたいへん単純なライブラリ woothee を作って細々とメンテナンスしてましたが、最近たまに使っているという話を目にするようになりました。嬉しいなあ。使ってる人は教えてくれると作者が嬉しがります。 wootheeの最大の特徴は多言語対応*1ですが、多言語実装をひとつのリポジトリに埋めてたところ管理がたいへん面倒くさくなったので、最近分離して整理しました。 整理したリポジトリの現在の場所はこちらです。 https://github.com/woothee/woothee そこから各言語のライブラリに向けてリンクがあります。適当にご利用ください。また対応していないUser-Agentなどに心当たりがおありの方はissueなどにご連絡いただけると嬉しいです。 今回、あわせて一部のコード生成部

    最近の多言語対応User-Agentパーサライブラリ woothee について - たごもりすメモ
    tagomoris
    tagomoris 2013/11/19
    書いた
  • isucon3本戦いってきた&勝ってきた! #isucon - たごもりすメモ

    isucon3の戦にLINE選抜チームとして出た。ガッカリな感じだった予選時の状況はこちら。 isucon3予選参戦の記録 - tagomorisのメモ置き場 引き続き @kazeburo @sugyan @tagomoris の3人チーム。 ざっくりまとめ みんなこれまでこんな楽しいイベントに参加してたのか! ずるい!!!!!! 普段やってることを普段通りやる、と思っていたが焦って普段やらないようなミスを次々連発、社会は厳しい 思いきった構成変更とかできるのがisuconでしょwwww とかドヤ顔していたが、やりきれた。ドヤッ。 これからisuconという名前を口にするときに堂々とドヤ顔しようと思います。嘘です。元出題者のくせに成績出ないとかwwwみたいにならなくて当に安心しました。終わったあとのビールおいしかったです。 ということで、勝ちました。優勝と、あと僅差で特別賞もいただきま

    isucon3本戦いってきた&勝ってきた! #isucon - たごもりすメモ
    tagomoris
    tagomoris 2013/11/11
    書いた
  • Cloudera World Tokyo 2013 行ってきた&しゃべってきた - たごもりすメモ

    Cloudera World Tokyo 2013で登壇する機会をいただいたので行ってきた。 Cloudera World Tokyo 2013 | Cloudera Japan しゃべってきた しゃべる方は最近作ってるNorikra……の話だけだとなんでCloudera World Tokyoだということになるので、集計処理をSQLに一化してラクしよう、という文脈でHiveとNorikraで全部片付けるようにするといろいろ便利だしお仕事も回るよ! という話。 で、ついでにv0.1.0をリリースしたばかりのNorikraというやつがどういうソフトウェアなのか、について簡単に紹介した。どういうソフトウェアなのかがいまいちわからん、という話が同僚からも聞かれていたので、分かりやすい話を一度しておこうかなと。*1 Batch and Stream processing with SQL fro

    Cloudera World Tokyo 2013 行ってきた&しゃべってきた - たごもりすメモ
    tagomoris
    tagomoris 2013/11/08
    いってきた
  • Norikra v0.1.0 released! - たごもりすメモ

    RubyKaigiから5ヶ月くらい経ってますが、ついにというか、Norikra v0.1.0 をリリースしました。 http://norikra.github.io/ https://rubygems.org/gems/norikra https://github.com/norikra/norikra 知らない人向けのソフトウェアの詳しい紹介はまた後日に別途やるとして……っていうかこれからすごい量のドキュメント書かないといけなくて萎えてるんだけどそれは置いておいて、これまでの情報に加えてのことを列挙するとこんな感じです。 daemonizeオプションやJVMのメモリ指定、マルチスレッド指定などの動作環境、性能面あたりのオプションを大量に追加 ターゲットやクエリなどの情報の保存機能 JOIN やサブクエリをフルサポート *1 多段ネストした Hash や Array を含む入力イベントにも

    Norikra v0.1.0 released! - たごもりすメモ
    tagomoris
    tagomoris 2013/11/01
    リリースした! ということを書いた!
  • isucon3予選参戦の記録 - たごもりすメモ

    isucon3の予選に参加してきた。戦には共催の1社、LINEの選抜枠として参加が決まっているんだけど、なにしろこれまでisuconというイベントに参加したことがない! ということで、最終結果から除外されるのはわかってたんだけど練習として参加してみよう、ということに。 ざっくりまとめ みんなこれまでこんな楽しいイベントに参加してたのか! ずるい!!!!!! 普段やってることを普段通りやる、という感じだったけど、イベントならではというか気付いて当然のことに数時間気付かないとか割とあって社会は厳しい 思いきった構成変更とかできるのがisuconでしょwwww とかドヤ顔していたがいざとなると非常に難しい、社会は厳しい これからisuconという名前を口にするときにドヤ顔をしないように気をつけたいと思います。 あれこれ チームは kazeburo, sugyan という社内でいっしょに働いてる

    isucon3予選参戦の記録 - たごもりすメモ
    tagomoris
    tagomoris 2013/10/07
    書いた
  • 最速でisucon3本戦への出場を確定しました! - たごもりすメモ

    共催の会社勤務なので選抜枠もらって戦への出場が誰よりも早く確定しております。やったー! ※ この記事は言うまでもなく冗談です

    最速でisucon3本戦への出場を確定しました! - たごもりすメモ
    tagomoris
    tagomoris 2013/10/07
  • Review: Instant Apache Hive Essentials How-to - たごもりすメモ

    突然英語でメールがやってきてレビューしてくれないかと頼まれ、面白そうだから引き受けて読んでみた。日語でしかレビュー記事書かないけど大丈夫? と確認したら大丈夫だといって電子書籍データをもらいました。すごいことやってる会社があるなあ。イギリスの(電子書籍専門の?)出版社みたいだけど。 なおフォーマットは pdf, epub, mobi のどれでもダウンロードできる。すごい。日はなぜこうじゃないの。 で、読んだ。76ページの短い。 ざっくり言うと 英語だけどすごく簡単な英語で書かれてて、きわめて簡単に読める。manとか普通に英語で読んでる人なら楽勝だと思う。読めば普通に導入からいろんなクエリを発行するところまで行ける。リファレンスには使えない*1けど、それはまあ、wikiを見ればいいんじゃないですかね。 各トピックについてはかなり短いが、必ず前提になるテーブルの準備をするためのクエリ*2

    Review: Instant Apache Hive Essentials How-to - たごもりすメモ
    tagomoris
    tagomoris 2013/09/27
    書いたよ
  • ruby 2.1.0-preview1 を fluentd で試してみた (追記あり) (再度追記あり) - たごもりすメモ

    2.1.0-preview1 が出た。RGenGCはそのロジックがいかにもFluentdにジャストフィットしそうなので期待していた。あとGCまわりも含めあれこれ変わってるので、使うと事故るなら早めに確認しておこうかな、という感じ。 確認したノードは以下の2種類で1台ずつ。 fluentd + out_exec_filter (+perlの外部プロセス) でログをparseするworker fluentd で大量のクライアント(fluent-agent-liteなど)から接続を受け付け、fluentdクラスタの各ノードへロードバランスするdeliver で、日の12:40くらいに変更したと思いねえ。そのグラフがこれ。トラフィック、CPU使用率、メモリ使用量。 worker 起動するrubyのバージョンを変えてからぐんぐんメモリ使用量が伸びはじめ、見てるうちに物理メモリ量を突破しそうになった

    ruby 2.1.0-preview1 を fluentd で試してみた (追記あり) (再度追記あり) - たごもりすメモ
    tagomoris
    tagomoris 2013/09/25
    めも / RGenGC offの状況の追記ed / 翌朝の状況を再度追記ed