2016/12/23

New Relic APM エージェントのここ一年の変更を振り返る

New Relic アドベントカレンダー23日目。今日はタイトルにあるように、リリースノートからここ一年で APM エージェントを振り返ります。


New Relic の APM エージェントは、地味にちょいちょいアップデートしています。主に以下の3種類の理由でアップデートしていると思います。

  1. バグフィックス。多分これが理由なのが一番と多い
  2. 言語のバージョンアップや、新しいフレームワークやライブラリへの対応
  3. APM に新機能が付いたときに、その機能のために追加で情報収集が必要になった場合

ここ一年(2015/12/1 – 2016/12/23) でどういった変更があったのか簡単に紹介します。情報のソースは、各言語のリリースノートとなります。詳しく知りたい方は、是非、リリースノートを確認ください。

言語ごとのリリース回数

言語 最新バージョン 最終更新日 更新回数
Ruby 3.17.2.327 2016.12.13 13
Java 3.34.0 2016.12.14 16
.NET 6.4.21.0 2016.12.19 18
Node.js 1.36.0 2016.12.21 35
PHP 6.8.0.177 2016.11.9 16
Go 1.4 2016.10.12 5
Python 2.76.0.55 2016.12.14 22

※ Go は、2016.8.8 に、1.0 がリリース
※ リリース回数の集計期間は、2015/12/1 – 2016/12/23 までの期間

主な変更

Ruby エージェントの場合

バージョン リリース日 主な変更点
3.17.2.327 2016.12.13 Ruby 2.4.0-preview3 に対応。
コントローラー計測モジュールを Rails5 API へ組み込む。
ActiveRecord 5 の計測に、Module#prepend を利用。
3.17.1.326 2016.11.08 Redis、MongoDB、memcached 用のデータストアインスタンス情報のレポート開始
3.17.0.325 2016.10.18 ActiveRecord のデータストアのインスタンス情報のレポート開始
3.16.3.323 2016.09.27 notice_error API に :trace_only を追加
HTTP.rb gem のサポート
3.16.0.318 2016.06.27 Rails 5 正式サポート
3.15.2.317 2016.04.25 AR4 でのパラメータ化されたスロークエリの実行計画の実行
Padrino 0.13.1 サポート
3.14.3.313 2016.01.25 SQL 難読化アルゴリズムの改善(他の言語と標準化を計った)
3.14.2.312 2016.01.25 Sidekiq 4 正式サポート
Web トランザクションとして、HTTP レスポンスの Content-Length、HTTP リクエストヘッダーの Content-Type を収集開始

Ruby の場合は、Github でソースが公開されていますので、気になる方は、rpm リポジトリをチェックしてください。

Java エージェントの場合

バージョン リリース日 主な変更点
3.34.0 2016.12.14 Solr 用データベースのインスタンス情報のレポート開始
3.33.0 2016.11.02 データベースのインスタンス情報のレポート開始
3.32.0 2016.09.19 WebLogic バージョン 12.2.x へのサポート開始
エージェントの起動時間のパフォーマンス改善。
Play 2.5 用のいつくかのバグフィックス
3.31.0 2016.08.03 Mulesoft Mule ESB Server バージョン3.6-3.8 の計測処理を追加。
OkHttp クライアントのバージョン 3.0-3.4 に対応。
3.30.1 2016.07.20 HTTP リクエストパラメーター送信に関するセキュリティバグを修正。バージョンアップ推奨。
3.30.0 2016.06.28 Mulesoft Mule ESB Server バージョン 3.4 – 3.6 に対応。
Play 2.5 に対応。
Datastax Cassandra ドライバーのバージョン 2.1.2 以上かつ3.x における非同期クエリの計測を追加。
Async Http Client バージョン 2.x を使って、外部サービス呼び出しの計測を追加。
JDBC のパフォーマンスとオーバーヘッドの改善。
3.29.0 2016.05.24 JDBC 計測の改善。
Cassandra Datastax 3.0 Driver の計測を追加。
3.28.0 2016.04.20 Datastax ドライバー経由の Cassandra のクエリのスロークエリの追跡を追加。
Tomcat 8.5 の対応。
Akka forwarding と Akka broadcasting の対応。
非同期フレームワークの Hystrix のパフォーマンス拡張を追加。
MySQL 6.0.2 以上、i-Net Oranxo 3.06、i-Net MERLIA 8.04.03 と 8.06 の JDBC ドライバーに対応。
3.29.0 2016.05.24 INet Oracle Driver (Oranxo) 3.14 と Sybase (jConnect) JDBC 3 の JDBC ドライバーに対応。
3.26.1 2016.02.25 PostgreSQL 8.0 以上の jdbc3 以上に対応。
3.26.0 2016.02.23 MySQL 5.1.4 – 5.1.x、 PostgreSQL 8.2-504 – 9.4-1206 (jdbc4 と jdbc41 ドライバーのみ)、Oracle ojdbc14, ojdbc5, ojdbc6, ojdbc7、Microsoft SQLServer 2.0 – 4.2、jTDS 1.2 – 1.3.x、DB2 9.1 – 10.x、Derby 10.6.1.0 – 10.x、H2 1.0.x – 1.4.x、HSQL 1.7.2.2 – 2.x、MariaDB 1.1.7 – 1.3.x の JDBC ドライバーに対応。
3.25.0 [Established Release] 2016.01.18 パフォーマンス改善。50%速度アップ。既知の問題のバグフィックス。
3.24.0 2016.01.18 Mongo Java Driver 2.12 – 3.1 の同期呼び出しのレポートを追加。
3.23.0 2015.12.01 Hystrix フレームワーク 1.0.2 – 1.4 に対応。
Cross Application Tracing (CAT) のバグフィックス。

.NET エージェントの場合

バージョン リリース日 主な変更点
6.4.21.0 2016.12.19 Transaction イベントと PageView イベントに、共通の nr.tripId 属性を追加。これを使うと、Insights で同じ対象に対して APM と Browser のデータを見れるようになる。
記述式のインストラーが利用できるようになった。
6.2.26.0 2016.10.13 IBM DB2 に対応。
6.0.0.0 2016.09.14 非同期フレームワークの計測に対応。
5.20.61.0 2016.07.15 .NET Async モードに System.Web.Script.Services.WebServiceMethodData を追加。
.NET Async モードに、OpenRasta のサポートを追加。
5.19.47.0 2016.04.26 非同期モードが有効の場合に、Castle MonoRail 2.x に対応。
5.18.36.0 2016.04.13 AsyncMode フラグが true の場合に、NServiceBus の計測を追加。同じく、フラグが true の場合に、Microsoft Message Queue (MSMQ) の計測をサポート。同じく、Microsoft Enterprise Library の正式サポート。
5.17.59.0 2016.04.04 AsyncMode フラグが true の場合に、 NpgsqlCommand 非同期メソッドのサポート。 同じく、MS SQL と MySQL コマンド用の実行計測をサポート。
5.15.64.0 2016.02.24 非同期モード: SqlCommand メソッドの ExecuteReaderAsync, ExecuteScalarAsync, ExecuteNonQueryAsync, ExecuteXmlReaderAsync のサポート。
AsyncMode の場合、スロー SQL コマンドの SQL Traces をサポート。同じく、Synthetics トランザクショントレースをサポート。System.Data.SqlClient.SqlDataReader ReadAsync and NextResultAsync メソッドのサポート。
5.14.43.0 2016.02.09 非同期モード: Agent API サポート。AsyncMode の場合、同期 SQL コマンドの計測をサポート。
5.13.30.0 2016.01.21 非同期モード: APM Application Overview ページで、CPU/メモリ使用量を表示。 AsyncMode の場合、Redis と MongoDB のサポート。
5.12.13.0 2016.01.07 非同期モード: Browser モニタリングのサポート。
5.11.53.0 2015.12.16 非同期フレームワーク計測用の、async mode オプションの提供開始。

Node.js エージェントの場合

バージョン リリース日 主な変更点
1.36.0 2016.12.21 Node.js バージョン6.1未満で CPU メトリック収集の追加。
メモリー使用量分類メトリックを追加。
1.35.0 2016.12.12 サポート対象のプラ​​ットフォームでガベージコレクションの統計情報を収集開始。
1.34.0 2016.11.10 Node 6.1.0 以上の場合に、CPU メトリクスの収集開始。addCustomParameters() メソッドを API に追加。
1.33.0 2016.10.31 Memcached 用データベースインスタンス情報の収集開始。
1.32.0 2016.10.20 MySQL と MongoDB 用データベースインスタンス情報の収集開始。
1.31.0 2016.10.12 PostgreSQL と Redis 用データベースインスタンス情報の収集開始
1.30.4 2016.09.27 プロミスの計測を改善。
1.28.3 2016.07.14 エージェント起動時の速度アップ。
1.28.0 2016.05.25 デフォルトで、Express ミドルウェアのメトリクスが有効。
1.24.1 2015.12.30 エラー合計がレポートされるようになりました。

PHP エージェントの場合

バージョン リリース日 主な変更点
6.8.0.177 2016.11.09 PHP 7.1 のサポート。mysql、mysqli、PDO mysql エクステンション用のインスタンス情報の収集開始。
6.7.0.174 2016.09.21 Slim Framework 2.x と 3.x. のサポート
6.6.0.169 2016.08.23 Laravel 5.3 と Experimental Laravel Queue のサポート
6.3.0.161 2016.05.18 pg_prepare または pg_execute を使われた場合に、Postgres のプリペアードステートメントをサポート
6.2.1.0 2016.05.2 Alpine Linux 3.1以降 をサポート
6.2.0.158 2016.04.12 Doctrine 2 DQL Queries のサポート
6.1.0.157 2016.03.17 Magento 2 のサポート
6.0.0.155 2016.03.07 PHP 7.0 のサポート
5.5.0.154 2016.02.18 Docker や AWS を利用していた際に、ホストからいくつかの情報を収集を開始。
5.4.0.150 2016.01.26 Guzzle の計測を開始。
5.3.0.148 2016.01.19 New Relic UI 内に、Wordpress 専用のタブを追加
5.2.0.141 2015.12.15 Linux の場合、エージェントがデーモンと通信するための抽象ソケットをサポート。

Go エージェントの場合

バージョン リリース日 主な変更点
1.4 2016.10.12 スロークエリトレースに対応。 DatastoreSegment に ParameterizedQuery, QueryParameters, Host, PortPathOrID, and DatabaseName フィールドを追加。
1.2 2016.10.06 mgutz/logxi をサポート
1.1 2016.09.07 トランザクショントレースをサポート
1.0 2016.08.08 1.0 リリース

Python エージェントの場合

バージョン リリース日 主な変更点
2.76.0.55 2016.12.14 python-memcached 用データストアのインスタンス情報の収集を開始。
2.74.0.54 2016.11.14 redis と MySQLdb ドライバーでデータストアのインスタンス情報の収集を開始。
2.72.0.52 2016.10.18 psycopg2 Postgresql ドライバーでデータストアのインスタンス情報の収集を開始。
2.70.0.51 2016.09.06 Django 1.10 のサポート。 Boto3 と AWS CLI のサポート。
2.66.0.49 2016.05.26 Pyramid 1.7 のサポート。
2.64.0.48 2016.04.20 Tornado 4 アプリ用の属性を収集開始。
2.60.0.46 2015.12.14 Insights のカスタムイベント送信機能提供開始。

まとめ

どうでしたでしょうか? もし古いバージョンのエージェントを利用している場合は、これを気に最新版にアップデートしてみてはどうでしょうか? 今後も、更新がされていくので、何か新機能がリリースされていないか、お使いの言語のリリースノートをちょいちょいチェックしてみては如何でしょうか。

Qiita で New Relic Advent Calendar 2017 いろいろ書きました。特に、New Relic APM の入門的な連載を書きましたので、是非、ご覧ください。

New Relic 公式の日本 New Relic ユーザー会を立ち上げました。ワークショップの情報など日本のお客様向けに情報を発信していきますので、是非、参加ください。

過去記事

2018/09/13

翻訳: FutureStack18: New Relic 開発者向けプログラム-オープン化、シンプル化、活発化への道

今年も始まりました。New Relic の年次カンファレンス FutureStack 18。
この記事では、Elixir 用の New Relic APM エージェントの発表とデベロッパープログラムの発表がされています。

続きを読む

2018/08/27

翻訳: New Relic APM 新機能: 分散トレーシング

New Relic APM にDistributed Tracing (分散トレーシング)機能が追加されました。メニュー単位で機能が追加されたのはだいぶなかったのではないかと思います。マイクロサービスにおけるサービスをまたがったデータの流れを可視化できる機能のようです。是非、チェックしてみてください。

続きを読む

2018/05/18

SREcon18 と Rails デベロッパー向けアンケート結果の紹介

SRECon America カンファレンスにおけるアンケートの記事と Rails デベロッパーに対するアンケートの記事という2つの異なったレイヤーのアンケートに関する記事を見つけたので、ざっくり紹介します。違った視点での傾向が見れてなかなか面白いです。

続きを読む

2018/05/11

AWS Summit Tokyo を中心に直近の New Relic 関連イベントのご紹介

5/30 から始まる AWS summit Tokyo に参加するということで、海外から New Relic スタッフが来日し、イベント等を行います。是非、この機会に New Relic に興味のある人は参加してみてはいかがでしょうか。(基本、日本人スタッフいるので、日本語でも大丈夫なはず)

続きを読む

2018/03/17

翻訳: New Relic Browser JavaScript Error Analytics ベータ版 – エラーの早期発見、修正に役立つ

New Relic Browser の JS エラー機能が新しくなるようです (現在ベータ版)。APM で採用されているエラープロファイルが JS エラーにも対応したようです。これによって、エラーが起きている傾向が分析できるようになり、今後の JS のエラーが起きる前に対策が取りやすくなります。既存の PRO ユーザーはベータ版が使えるようなので、是非、使ってみてください。

続きを読む

 もっと見る