MackerelチームのCREはTrelloを使ってタスク管理をしている。
なので最近はTrelloのAPIを使って業務効率の改善などやっている。
上記のような定例作業意外にもメールを返すことなど多いのでそういう細かいタスクもTrelloに登録するスタイル。
そうするとタスクの増える時間帯と消化が捗る時間帯、一日の対応量などが見たくなる。
もちろん、Trelloに課金するとそういった機能もあるのだけど折角なのでMackerelのサービスメトリックに投稿してみた。
例の如くGoogle Apps Scriptで送っている。
GASは定期実行出来るので取り敢えずは5分に一回登録してる。
ソースコードはこちら。
var scriptProp = PropertiesService.getScriptProperties().getProperties(); var trelloKey = scriptProp.TRELLO_API_KEY; var trelloToken = scriptProp.TRELLO_TOKEN; var trelloTodoListId = scriptProp.TRELLO_TODO_LIST_ID; var trelloDoneListId = scriptProp.TRELLO_DONE_LIST_ID; var trelloBaseURL = scriptProp.TRELLO_BASE_URL; var mackerelApiKey = scriptProp.MACKEREL_API_KEY; var trelloIdMembers = scriptProp.TRELLO_ID_MEMBER; var serviceName = scriptProp.SERVICE_NAME; function main() { var epoch = Date.now() / 1000; var TrelloTodo = getTrelloCardCount(trelloTodoListId); var TrelloDone = getTrelloCardCount(trelloDoneListId); var todoCount = Object.keys(JSON.parse(TrelloTodo)).length; var doneCount = Object.keys(JSON.parse(TrelloDone)).length; var payload = [ {"name" : "Trello.todo", "time" : epoch, "value" : todoCount}, {"name" : "Trello.done", "time" : epoch, "value" : doneCount} ]; var mackerelPostRes = postMackerelServiceMetric(mackerelApiKey, serviceName, payload); Logger.log(mackerelPostRes) } function postMackerelServiceMetric(apiKey, serviceName, payload) { var url = "https://mackerel.io/api/v0/services/" + serviceName + "/tsdb"; return UrlFetchApp.fetch( url, { "contentType" : "application/json", "method" : "post", "headers" : { "X-Api-Key" : apiKey }, "payload" : JSON.stringify(payload), "muteHttpExceptions" : true } ); } function getTrelloCardCount(trelloListId) { var url = trelloBaseURL + 'lists/' + trelloListId + '/cards/?fields=name&key=' + trelloKey + '&token=' + trelloToken; var options = { 'method' : 'get', 'muteHttpExceptions' : true } return UrlFetchApp.fetch(url, options); }
関数で分けてるのでGAS経由でMackerelにサービスメトリックを投げたい人とかの参考になれば。
Mackerelに投げるメリットは以下のような物がある。
- タスクが溜まってたらアラート出せる
- 簡単に差分表示と切り替えれる
- グラフの扱いが簡単
- サービスメトリックはフリープランでも使える!
ちょっと mackerel-client-gas はあってもいいかなーって気持ちにはなったので気が向いたら作る。