README.md

Summary

Maintainability
Test Coverage
# Malsh
*Mackerel Shepherd = malsh(マルシェ)*

[![Build Status](https://travis-ci.org/pyama86/malsh.svg)](https://travis-ci.org/pyama86/malsh)

[![Code Climate](https://codeclimate.com/github/pyama86/sac/badges/gpa.svg)](https://codeclimate.com/github/pyama86/sac)


### Mackerelの運用で便利な機能を提供します。

* 退役忘れホストの通知
* ロールに紐付いてないホストの通知
* 特定のホスト名やCPU、メモリ利用率での検索結果の通知

### 通知先
* Slack

## Installation

```ruby
gem install malsh
```

## Usage

```sh
$ export MACKEREL_APIKEY=xxxxxxxxxxxxxxxxxxxxxxxxxx

# 過去5分間メトリックの投稿がないホストを検知
$ malsh retire --subject 退役忘れホスト

# ロールに所属していないホストを検知
$ malsh maverick --subject 無所属ホスト

# 指定された単語がホスト名に含まれるホストを検知
$ malsh search --regex dev local$ --subject developmentホスト

# CPUとメモリの過去7日間の最高使用率が40%以下のホストをを検知
$ malsh search --past_date 7 --cpu 40 --memory 40 --subject 過去7日間のCPU、メモリがの最高使用率が40%以下
```

## options
* --slack-webhook or ENV["SLACK_WEBHOOK"]
 * slackのwebhookurlを指定するとslackに通知することができます。
* --slack-channel or ENV["SLACK_CHANNEL"]
 * slackの通知先チャネルを指定します。
* --slack-user or ENV["SLACK_USER"]
 * slackの通知ユーザーを指定します。
* --api-key or ENV["MACKEREL_APIKEY"]
 * mackerelのAPIキーを指定します。
* --subject
 * 通知のタイトルを指定します
* --invert-match
 * 除外したいホスト名を正規表現で指定します。
* --regex
 * 特定したいホスト名を正規表現で指定します。
* --invert-role
 * 除外したいロール名を`service:role`で指定します。

## Author
pyama86