去年のYAPC::Asia2011では、運用の話が活発に行われており、監視周りの話も多かったように記憶しています。そこで、監視の基本となる死活監視について、今回は私が普段使っているtokuhiromさん作の死活監視ツールApp::MadEyeを紹介しつつまとめたいと思います。 「死活」の通り、「死んでいるか、活きているか」について監視することです。具体的には、サーバーにPingを飛ばして死んでいるか活きているか確認したり、サーバーのハードディスクが一定量を超えているかどうか確認したりすることです。つまり、継続的に「1/0」で確認し続けることが、死活監視です。実務的な用途としては、「サイトが落ちている!」っていう状況に素早く対応するための準備となります。 リソース監視 一方で、リソース監視は、システム特定リソースの状態の変化を確認し続けることといえます。例えば、サーバーのロードアベレージの推
mojo-checkbotは指定したURL以下のリンクについてステータスをチェックしてくれるクローラーです。 特定サイト以下のURLについて順次チェックしてステータスを取得してくれる、それがmojo-checkbotです。Webサイト運用に活かしてみてください。 結果画面です。URLとタイトル、そのURLのステータスが一覧になって表示されます。 更新は随時行われます。次々流れていくのは面白いです。 結果行をクリックするとフローティングウィンドウで詳細が表示されます。 サーバを起動しています。デフォルトでは3000番ポートで立ち上がります。 開発環境におけるURLチェックに便利そうです。もちろん運用サーバでも時々実行しておくと思わぬリンク外れが見つかるかも知れません。なおアクセスはGETのみなので、それ以外のメソッドの時には使えないのでご注意ください。 mojo-checkbotはクッキーを
mojo-checkbotがある程度できてきたのでベータ版にしてみたよ。githubでゲットできます。最新のバージョン番号のタグがついたものを使ってください。 mojo-checkbotはクローラーにウェブサイト内のステータスコードを収集させつつ、ブラウザでレポートを見れるコマンドラインツールです。checkbotの機能限定版という感じですが、日本語が正常に表示されたり、ファイルを介さないのでシンプルだったり、レポートの見せ方を工夫したりと、色々改善しています。 mojo-checkbotはMojoliciousをベースにしています。Mojolicious本体は同梱されてるのでインストール不要ですが、Mojoliciousのバージョン2からperl5.10.1依存になったので、以前のバージョンで動くかは不明です(5.10.0では動いてる風)。要改善点はまだ多数あるので逐一更新して行きます。
Perlではメモリリーク検出ツールがいくつか開発されているので、top(1)の結果を眺めるよりそういうツールを使うほうが楽である。 さて、メモリリークが発生しているとき、その可能性としてはだいたい以下の4つが挙げられる。 Perlレベルでの循環参照 グローバル変数に値をどんどん足しているとき*1 XSレベルでリファレンスカウントの管理ミス XSレベルでmalloc()したメモリの管理ミス この1-3についてはすべてPerlインタプリタ内の出来事であり、Test::LeakTraceを使って検出できる。4を検出するのは難しいが、Test::Valgrindが役に立つ。 Test::LeakTraceのSYNOPSISは歴史的経緯によりごちゃごちゃしているが、テストで使うべき関数はno_leaks_ok()とleaks_cmp_ok()だけである。 たとえば、以下のようにして使う*2。 #!p
マクラ - JavaScriptのテストについて テストのないコードはコードではなく、テストを書かないプログラマはプログラマではなく、テスティングフレームワークのない言語は言語と呼ぶに値しない。と以上のような偉そうなことを言う資格は全くないし狂信的でもない僕ですが、少なくともまともに動くコードであることを証明するために、人並みにはテストを書きます。 それでまあ、最近JavaScriptばかり書いてるのですが、JavaScriptのテスティングフレームワークって大体以下のようなものに分かれると思っています。 ブラウザ上で動かすことを前提としたもの(JsUnit, QUnitなど) RhinoやSpiderMonkeyなど、ブラウザから独立したJavaScriptエンジンで実行することを前提としたもの(JsUnit, QUnit-TAPなど) 2. に加え、env.js(http://www.
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
YAPC::Asia Tokyo 2010 で LT してきました。以下はその資料(に少し説明を追加したもの)です。 mod_rewrite 正規表現によるURL書き換えモジュール スイス製アーミーナイフ / 黒魔術 まだ Apache 使ってますよね? reverse proxy とか… はてなの mod_rewrite 活用事例 ほぼ reverse proxy URLにより用途別のbackendに振り分ける 用途によりbackendを分けリソース効率化 特定のアクセスをキャッシュサーバーに振る URL加工 Squidにキャッシュさせたいが同一URLで異なるコンテンツを返す場合がある →クエリに情報を付加する BAN! 便利な半面… 増える! $ cat jp.www.proxy.apache.conf | grep Rewrite | wc -l 179 テストしづらい! → 一行加
NAME Test::Apache::RewriteRules - Testing Apache's Rewrite Rules SYNOPSIS use Test::Apache::RewriteRules; my $apache = Test::Apache::RewriteRules->new; $apache->add_backend(name => 'ReverseProxyedHost1'); $apache->add_backend(name => 'ReverseProxyedHost2'); $apache->rewrite_conf('apache.rewrite.conf'); $apache->start_apache; testing rewritten result $apache->is_host_path('/foo/aaa', 'ReverseProxye
Twitter経由でPlack::Testを見た。なにこれ。もうCGIいらないじゃん。 PlackやPSGIを知らない人は先に適当なページでも見て頂きたい。そんなんよりPSGIのエントリ書いてほしいって方はコメント残しておいてください。でももう半年も経つからググればいっぱい見つかるんじゃないかな。俺ほとんどPSGIに首突っ込んでないし。 で、Plack::Testの何がどうすごいかというと、次のようにPSGIアプリケーションのテストができる。テストコードは宮川さんのものに、クエリ部分を付け加えたものだ。 use Plack::Test; use Test::More; use HTTP::Request; use strict; use warnings; my $app = sub { my $env = shift; my $query = { map { split(/=/) } s
メタデータからテスト件数を取得する 前回はテストファイルやテストデータの数からテストプランを計算するモジュールを紹介しました。今回はその続きとして、テストファイルのメタデータからテストの数を求めるモジュールを紹介していきましょう。これらのモジュールの多くは1994年にケント・ベック(Kent Beck)氏がSmalltalk向けに書いたSUnitを祖先にもつ、いわゆるxUnit系のフレームワークに属するものですが、Perlにはそれ以前からTest Anything Protocolを使った独自のテスト手法が存在していたため、Javaなどで使われている同種のフレームワークとはやや毛色の違う部分もあります。一般的にはクラスをひとつ書くたびに対応するユニットテスト用のクラスを書くのがよいように言われていますが、ここではもっとゆるく、テストを自動的に検出してくれるだけでなく、テストの事前事後になん
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く