NewRelic REST API クライアント released!!

NewRelic REST APIクライアントを作りました。


そもそも、NewRelicとは何かを一言でいうと、"サービス向上のための情報を手軽に得られるツール"です。
というのも、NewRelicのいくつかのプロダクトを使うことで、いい感じにサーバのリソース使用率をロギングし、いい感じに提供しているサービスの応答性能を監視し、それらをいい感じに可視化し(もちろんリアルタイムに)、異常時にはアラートをなげることができます。
そしてこれらがとても簡単に実現できるというすぐれものです。(でもお高いんでしょう?)*1

nrcmdについて、

nrcmdが叩いているapiの詳細については、
https://rpm.newrelic.com/api/explore を参照してください。

簡単に使い方

あらかじめ、 http://newrelic.com/ にユーザ登録、そしてライセンスキーではなくAPIキーを取得してください。
ユーザメニュー -> Accout settings -> Data sharing -> API access です。

$ bundle exec ./bin/nrcmd -h
Commands:
  nrcmd apps <sub-command>    # commands for Applications services
  nrcmd configure             # setup your config file.
  nrcmd help [COMMAND]        # Describe available commands or one specific command
  nrcmd server <sub-command>  # commands for Servers services
  nrcmd user <sub-command>    # commands for Users services

Options:
  -c, [--config=CONFIG]
  -v, [--verbose], [--no-verbose]

$ bundle exec ./bin/nrcmd configure
Your NewRelic Api Key:  				# 取得したAPIキーを入力

$ bundle exec ./bin/nrcmd apps help
Commands:
  nrcmd apps delete_app <app_id>           # deletes a application and all of reported data.
  nrcmd apps help [COMMAND]                # Describe subcommands or one specific subcommand
  nrcmd apps hosts <sub-command>           # sub-commands for Applications Hosts services
  nrcmd apps list                          # list your applications
  nrcmd apps metrics <sub-command>         # sub-commands for Applications Metrics services
  nrcmd apps show <app_id>                 # show summary data of a application.
  nrcmd apps update <app_id> <json_param>  # update application setting.
  nrcmd get <app_id> -n, --names=NAMES     # show a list of values for each of the requested metrics.
  nrcmd help [COMMAND]                     # Describe subcommands or one specific subcommand
  nrcmd help [COMMAND]                     # Describe subcommands or one specific subcommand
  nrcmd list <app_id>                      # show a list of known metrics and their value names for the given resource.
  nrcmd list <app_id>                      # list your hosts associated with the given app_id.
  nrcmd metrics <sub-command>              # sub-commands for Application Hosts Metrics services
  nrcmd show <app_id> <host_id>            # show a single application host, identified by its ID.

$ bundle exec ./bin/nrcmd apps list | jq '.' # アプリケーション一覧

$ bundle exec ./bin/nrcmd apps metrics list <application-id> | jq '.' 
あとがき

今回作ったこのgemの利用ケースはいくつか考えられるのですがまだ実際には使ってはいません。
需要はあるかわかりませんがあるならあとからでるだろうということで、とりあえず作ったものですw

自分は、レンタルしているVPCとか、普段のギョーム(aws環境)、あとはisucon4 予選で使ったりもしています。どれも無料プランの範囲で使っていますがそれでもだいたい満足しています。(NewRelicとAmazonがパートナー契約を結んでいる(AWS & Free New Relic SaaS Application Performance Monitoring | New Relic Partner)とかで、aws環境ならスタンダードプランが無料ということもあります。) プラスで、NewRelic, Incが開発したiOSアプリを使っています。

New Relic

New Relic

  • New Relic, Inc.
  • ビジネス
  • 無料


NewRelicは個人的にはかなりライフチェンジングなプロダクトで、今まで使っていて(記憶にあたらしい最近1ヶ月で)少なくとも2,3回は入れといてよかったと思えたので本当にいいものだと思います。ありがたや。

*1:そりゃお高いでしょう。

© karahiyo