こんにちは。
@shin0higuchiです😊
着々とElastic Stack 6.0の正式リリースが近づいている感じがしますね!
次回のElasticsearch勉強会では、@johtaniさんよる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を選択します。
ダウンロードした媒体を解凍し、下記のコマンドで起動します。
.\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
ダッシュボードが自動的に作成されていることがわかります。
APM Agent インストール
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のダッシュボード上で確認することができます。
今回は手軽に試したかったので、"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