Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Elastic APM の alpha版がリリースされました!

こんにちは。
@です😊

着々とElastic Stack 6.0の正式リリースが近づいている感じがしますね!
次回のElasticsearch勉強会では、@さんよるElastic Stack 6.0の紹介があるそうです。
www.meetup.com

また、このブログでも、Elastic Stackの6.0.0-beta1の紹介を行いました。
acro-engineer.hatenablog.com

Elastic APM

概要

さて、ここからが本題です。
本日、Elastic Stack 6.0.0-rc1がリリースされました。
このバージョンでは、Elastic APMがalpha版として入りました。
Elastic APMでは、Node.jsやPythonで作成したアプリケーションのパフォーマンス監視を行うことができます。
Elastic APM enters alpha | Elastic

APM Downloads Overview | Elasticからダウンロードできるので、さっそく試してみました!

APM Server インストール

自分の環境にあわせて、媒体をダウンロードします。
今回はWindows 64bitを選択します。
f:id:acro-engineer:20170929132347p:plain:w700

ダウンロードした媒体を解凍し、下記のコマンドで起動します。

.\apm-server -c apm-server.yml -e

内部的には、beatsが起動して、Elasticsearchにデータを送っているようです。

unix系の環境では"\"のかわりに"/"を入力してください。
※x-packでの認証が有効になっている場合はapm-server.ymlを編集して、user・passwordを設定する必要があります。

Kibanaダッシュボード生成

ダッシュボードもデフォルトで用意されています。
次のコマンドを実行すると、Kibana上にindex patternが作成され、
さらにダッシュボードがKibanaにインポートされます。
(curlコマンドを使ってインポートする方法などもありますが、ここでは割愛します。)

.\apm-server setup -e

ダッシュボードが自動的に作成されていることがわかります。
f:id:acro-engineer:20170929135033p:plain:w700

APM Agent インストール

f:id:acro-engineer:20170929132404p:plain:w700
APM Serverの準備が完了したので、次にagentの設定を行います。
agentはNode.js・PythonのWebフレームワークであるDjango・Flaskが提供されています。

今回はNode.jsで進めてみます。

まず、agentをインストールします。

npm install elastic-apm --save

あとは実際のアプリケーションに組み込んで動かします。

// Add this to the VERY top of the first file loaded in your app
var apm = require('elastic-apm').start({
  // Set required app name (allowed characters: a-z, A-Z, 0-9, -, _, and space)
  appName: '',

  // Use if APM Server requires a token
  secretToken: '',

  // Set custom APM Server URL (default: http://localhost:8200)
  serverUrl: '',
})

すると自動的にElasticsearchに取り込まれ、Kibanaのダッシュボード上で確認することができます。
f:id:acro-engineer:20170929171724p:plain:w700
f:id:acro-engineer:20170929171742p:plain

今回は手軽に試したかったので、"Hello, world!"を表示するだけのアプリケーションに
大量のhttpリクエストを投げて、その状況を可視化してみました。
Kibanaのダッシュボードで、応答時間が遅いリクエストがどれかを確認できます。

最後に

Elastic Stackを利用して簡単にアプリケーションの監視を実現できました!
alphaでもとても簡単に利用できたので、今後の機能追加や正式版のリリースに期待です!

Acroquest Technologyでは、キャリア採用を行っています。

  • ビッグデータHadoop/Spark、NoSQL)、データ分析(Elasticsearch、Python関連)、Web開発(SpringCloud/SpringBoot、AngularJS)といった最新のOSSを利用する開発プロジェクトに関わりたい。
  • マイクロサービスDevOpsなどの技術を使ったり、データ分析機械学習などのスキルを活かしたい。
  • 社会貢献性の高いプロジェクトや、顧客の価値を創造するようなプロジェクトで、提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や、対外的な勉強会の開催・参加を通した技術の発信、社内勉強会での技術情報共有により、エンジニアとして成長したい。

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

Elasticsearchを仕事で使いこみたいデータ分析エンジニア募集中! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com