mackerel overview
TIME rest time current/total
TopicsPlaceHolder

mackerel overview

Hatena Engineer Seminar #3

Dec 2nd, 2014

Profile

songmu

東京オフィスの様子です

ランチ

フリードリンク&お菓子

本題

Mackerel Logo

 

Mackerel (日本語で鯖)

特色

簡単セットアップ

カジュアル運用

何を監視して良いかわからなくてもお手軽に監視開始。

ヘビーに運用

監視ツール運用がしんどくなってきたあなたに。

Mackerel Overview

アーキテクチャ

エージェント

Why Go?

ダッシュボード

AngularJS

バックエンド

構成図

Why Scala?

はてなではこれまでほとんどのサービスをPerlで開発

使用ライブラリ

Scalaを使ってみた個人的感想

Slow compile, Slow test

最近のトピック

scalatestify.pl

_人人人人人人_
> 突然のPerl! <
 ̄^Y^Y^Y^Y^Y^ ̄
use strict;
use warnings;
foreach my $file (@ARGV) {
    open my $in, '<', $file or die $!;
    local $_ = do { local $/; scalar <$in> };
    s/ (?:should|must) beSome(?:\[.*?\])?\.which( ?[\({].+[\)}])/.filter$1 shouldBe 'defined/g;
    s/ (?:should|must) beSome(?:\[.*?\])?\.like/.fold(fail)/g;
    s/ (?:should|must) beSome(?:\[.*?\])?\.which/.fold(fail)/g;
    s/ (?:should|must) beSome\(/ shouldBe Some(/g;
    s/ (?:should|must) beSome {/.fold(fail) {/g;
    s/ (?:should|must) beSome/ shouldBe 'defined/g;
    s/ (?:should|must) beEmpty/ shouldBe 'empty/g;
    s/ (?:should|must) beNone/ shouldBe None/g;
    s/ (?:should|must) beLeft\(/ shouldBe Left(/g;
    s/ (?:should|must) beLeft\.like/.left.toOption.fold(fail)/g;
    s/ (?:should|must) beLeft/ shouldBe 'left/g;
    s/ (?:should|must) beRight\(/ shouldBe Right(/g;
    s/ (?:should|must) beRight\.like/.right.toOption.fold(fail)/g;
    s/ (?:should|must) beRight/ shouldBe 'right/g;
    s/ (?:should|must) beTrue/ shouldBe true/g;
    s/ (?:should|must) beFalse/ shouldBe false/g;
    s/ (?:should|must) haveSize/ should have size/g;
    s/ (?:should|must) beLike/ match/g; # XXX 雑
    s/ (?:should|must) (beE|e)qualTo/ shouldBe /g;
    s/ (?:should|must) haveLength/ should have length /g;
    s/ be equalTo/ be/g;
    s/ (?:must|should)_== / shouldBe /g;
    s/ (?:must|should)_!= / should not be /g;
    s/ (?:must|should) contain\(exactly\(/ should contain theSameElementsAs(Seq(/g;
    s/ containTheSameElementsAs/ contain theSameElementsAs/g;
    s/(.*) (?:must|should) throwA\[(.*?)\]\(message = (".*?")\)/the [$2] thrownBy { $1 } should have message $3/g;
    s/ must / should /g;
    s/(".*") should {/describe($1) {/g;
    s/(".*") in {/it($1) {/g;
    open my $out, '>', $file or die $!;
    print $out $_;
}

テスト時間改善

PostgreSQL

Graphite

Graphiteの構成

Python製

開発フローの話

開発フローや使っているツールなど

はてなMackerelチームの開発フロー(スクラム、リモート)について話しました #nanapi_study #hatenatech

mackerelの開発体制

3拠点体制で在宅勤務も

在宅勤務規定

こっそりとではなく会社としてもバックアップする

リモート雑感

コミュニケーションの機会を逃さない

リモートという制約を利用する

自律的にルールを決める

リモートアンチパターン

以上

We are Hiring

hatena