Taste of Tech Topics

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

Elastic{ON} Tokyo 2016レポート ~ ENdoSnipe における Elasticsearch 導入の効果 〜 #elasticon

こんにちは、
さきほど投稿した柳原が再びお送りします!

そして本日最後のセッション。
私たちAcroquestのセッションをレポートします!!

Acroquestの発表では、Elasticsearchのすばらしさと、
Elasticsearchを活用した、ソリューションである、
http://www.endosnipe.com/
の紹介を行っています。


発表は当社のJavaトラブルシューターエンジニア、山崎です。
f:id:acro-engineer:20161216005454j:plain:w300

Acroquestでは、
JaTSというトラブル解決サービスを10年以上行っており、
実際に発生したシステム障害から得られたノウハウをベースにして、
ENdoSnipeというJavaシステム可視化・診断ツール
のソリューションを作成しました。

f:id:acro-engineer:20161215235607p:plain:w500


ENdoSnipeが測定したデータの蓄積にRDBを利用していましたが、
大量のデータを蓄積すると検索が遅くなる壁にぶつかりました。

f:id:acro-engineer:20161215235742p:plain:w500

いろいろ苦悩した結果、
Elasticsearchに出会い、これだ!と思ったようです。
実際、ElasticsearchとENdoSnipeの相性はバツグンでした^^

Elasticsearchに移行した結果、圧倒的に開発の生産性が向上。
Elasticsearchのサポートが手厚かったのも大きかったです。
f:id:acro-engineer:20161216000216p:plain:w500


そして、生まれ変わった新ENdoSnipeが紹介されました。

まずはElasticsearch移行で大幅に機能強化したシステムマップ!
f:id:acro-engineer:20161216000914p:plain:w500
検索の大幅な高速化により、
より充実した情報を一枚絵でリアルタイム監視することが可能になりました。

1年間などの長期期間のデータ表示もElasticsearchのAggregationにより、
サクサクと表示が可能に。

そして新ENdoSnipeはさらなる進化を目指し、
ビジネスからユーザ、システムまで一気通貫した可視化を実現することで、
収益向上、ビジョンの実現にコミットします。
f:id:acro-engineer:20161216010303p:plain:w500

サイト上のどのページでユーザが不満を覚え、
ユーザが離脱しているのか、可視化できます。
(その原因特定をソースコードレベルまで掘り下げられるのもENdoSnipeの強みです。)
f:id:acro-engineer:20161216001313p:plain:w500

そして、このような多種多用の可視化を性能を落とさずに、
かつ、生産性が高い状態で開発ができたのは、何と言ってもElasticsearchのおかげです。。


f:id:acro-engineer:20161216001457p:plain:w500
そして、graphを使った、相関分析機能。
SQLがメモリ与える影響」や「システムKPI⇔ビジネスKPI間の相互影響」など、
これまで把握しづらかった分析も、これならできます!


f:id:acro-engineer:20161216001606p:plain:w500
異常検知も検証段階ですが、取り入れています!

今日のセッションでも取り上げられたprelertと連携することで、ENdoSnipeの更なる発展が見えてきました。

  • 異常検出から原因分析までを、シームレスに実現できる可能性
  • センサーデータの実データを判定したところ、故障前に異常を検知
  • 公開サイトに対するリストアタック等の攻撃検出に効果

Elasticsearchはgraphや、prelertなどの新機能が
次々と追加されていくので、
それをENdoSnipeもすぐ活用していけるのが
Powered By Elasticならではですね^^

まだまだ進化は続きそうです...!


最後に、Elasticsearchを活用する、です。
f:id:acro-engineer:20161216001920p:plain:w300

私も開発していて感じますが、
サポートがあると、1週間悩んでいたことが
すぐ解決した、ということがありました。
トータルで見て、サポートを受けた方がコスト的には良かったです!!

駆け足ではありましたが、Elasticsearchの面白さ、強力さ、
ENdoSnipeの便利さを伝えることができたでしょうか?


今回ご紹介したユースケースの実現を考えている方は、
ぜひAcroquestにお問い合わせを!!
http://www.endosnipe.com/

以上、Acroquestのセッションでした!!

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


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

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

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

【データ分析】
データ分析案件の急増に伴い実践的なデータ分析エンジニアWanted! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com

Data Analytics Showcaseで登壇してきました!

こんにちは @です!

先日、恵比寿にて開催されたData Analytics Showcaseにて、私と弊社の@が登壇してきました。
www.db-tech-showcase.com


それぞれ、次のテーマで発表しました。
@ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」を用いた販売データの関連分析~
@:デジタルデータの可視化基盤「ENdoSnipe」を使った、システムトラブルの未然防止、経営判断につながる可視化の実践

ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」を用いた販売データの関連分析~

私(@)は、人気急上昇中の全文検索エンジンElasticsearchの機能を利用したデータ分析について、発表しました。
これまでこのブログでも多く取り上げているので皆さんご存知かと思いますが、
Elasticsearchは、ログ収集・加工ツールであるLogstash、データ可視化ツールであるKibanaと組み合わせて使うことで
ビッグデータを高速処理するデータ分析基盤として力を発揮します。

今回は、Kibana に追加された Graph というプラグインに特にフォーカスしてお話しさせていただきました。
Graphはデータ間の関連を可視化するためのプラグインになっていて、特徴的な関連を一目で見つけることができます。

今回はコンビニエンスストアの販売データを利用し、分析を行いました。
どのお菓子が、どの年代・性別に売れているのか等、すぐにわかります^^

詳細な内容については、発表資料をご覧ください。

www.slideshare.net


デジタルデータの可視化基盤「ENdoSnipe」を使った、システムトラブルの未然防止、経営判断につながる可視化の実践

この講演では、デジタルデータの可視化基盤であるENdoSnipeの紹介を行い、
KPI/KRIといった指標の相関関係、その関係を見つけるにはどうするか説明しました。
そして、ENdoSnipeの基盤をElasticsearchになぜおきかえたのか、
膨大な系列のデータから相関関係をどう発見していくのかについて説明しました。

興味ある方は、ぜひ発表資料をご覧ください。

www.slideshare.net


どちらのセッションも終了後に多くの質問があり、
Elasticsearchを用いたデータ分析に対する注目度の高さを感じた一日でした^^

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


  • 日頃勉強している成果を、AWSHadoop、Storm、NoSQL、Elasticsearch、SpringBoot、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
  • 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
  • OSSの開発に携わりたい。

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
 
データ分析で国内に新規市場を生み出す新サービス開発者WANTED! - Acroquest Technology株式会社の新卒・インターンシップ - Wantedlywww.wantedly.com

性能改善10事例

こんにちは、 @ です。

Acroquestでは、Elastic{ON}のような勉強会やカンファレンスに参加するだけでなく、社内向けの勉強会も開催しています。
新しい技術を調べて「使ってみた」的な発表をしたり、実際に開発の中で得られた知見を発表したり。
各自が得意分野で、様々なテーマで発表し、技術の研鑽を行っています。

私の場合、しばらく性能改善に取り組んでいたため、
その際に解決した問題からいくつか事例をフィードバックし、
性能問題を起こさないよう喚起しました。

www.slideshare.net

スライドでも書きましたが、特に大量に繰り返し実行される処理では、性能を意識した実装をしないと問題になりがちです。
問題があちこちに散らばると性能が大きく劣化し、解決も骨が折れます。
こういう問題は起こさないように、各チームメンバが気を付けて実装する必要があります。

ただ、もし、起きてしまった場合は、ENdoSnipeで解決するのがオススメです^^
www.endosnipe.com


それと、性能問題は解決が難しいケースもあります。
自力で解決できない場合は、JaTSサービスも是非ご利用ください!
jats.acroquest.co.jp

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


  • 日頃勉強している成果を、AWSHadoop、Storm、NoSQL、Elasticsearch、SpringBoot、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
  • 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
  • OSSの開発に携わりたい。

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
 
データ分析で国内に新規市場を生み出す新サービス開発者WANTED! - Acroquest Technology株式会社の新卒・インターンシップ - Wantedlywww.wantedly.com

ENdoSnipe Ver6.0 リリース

f:id:acro-engineer:20150218031813p:plain

こんにちは、fujiiです。

先日、EaaS(ENdoSnipe as a Service)のプレスリリースを行いましたが、
発表に合わせて、
ENdoSnipeをバージョンアップし、Ver6.0をリリースしました!


そこで今回はENdoSnipe Ver6.0の変更点を簡単に紹介したいと思います。
おっと、その前に「ENdoSnipeって何?」という方は、ぜひ 技術評論社さんのサイトの連載 を読んでみてください!


今回のバージョンアップでは、監視機能の強化をメインに行いました。

Java 8 対応

ENdoSnipe Ver6.0では、動作保証環境にJava SE 8を追加しました。
Java SE 8上で動作するアプリケーションにENdoSnipeを適用する場合には、Ver6.0を利用してください。

プロファイラ機能の追加

ENdoSnipeで計測したプロファイリング情報を、Dashboardで参照できるようになりました。
これでどのメソッドボトルネックになっているのか、見つけやすくなります。

f:id:acro-engineer:20151006001849p:plain

オンラインでの設定変更機能の追加

ENdoSnipeの設定を、ブラウザから変更できるようになりました。

f:id:acro-engineer:20151006001850p:plain

メール通知機能の追加

Ver5.2 でシグナル機能を追加しましたが、
Ver6.0では、閾値を超えた場合や回復した場合に、画面表示だけでなくメール通知もできるようになりました。


今回紹介した機能の他に、ENdoSnipe Ver6.0では、デザインの変更、通信のSSL/TLS化対応なども行いました。

追加した機能の詳細については、次回紹介しますね。

ENdoSnipeここからダウンロードできますので、是非感想等をお知らせください。

それでは。

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


  • 日頃勉強している成果を、AWSHadoop、Storm、NoSQL、SpringBoot、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
  • 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
  • OSSの開発に携わりたい。

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

ENdoSnipe5.2の新機能紹介

f:id:acro-engineer:20150218031813p:plain

こんにちは、fujiiです。


かれこれ1年ぶりになりましたが、ENdoSnipeをバージョンアップし、ver5.2をリリースしました!
そこで今回はENdoSnipe5.2の新機能を紹介したいと思います。
おっと、その前に「ENdoSnipeって何?」という方は、技術評論社さんのサイトの連載を読んで、ENdoSnipeについて復習しましょう!


今回のリリースはDashboard機能の強化をメインに行っています。


それでは、さっそく紹介していきますね。

グラフ機能強化

グラフ機能を強化し、グラフを任意にカスタマイズできるようになりました。

ツリーの任意の要素を右クリックし、「Add Multiple Resource Graph」
というメニューを選ぶことで、グラフの追加ができます。

f:id:acro-engineer:20150218025558p:plain

表示する系列を指定する方法には、系列指定(Graph Selection)正規表現指定(Regular Expression)の2つがあります。

系列指定では、表示されている任意のグラフを選択し、好きなグラフを作ることができます。

正規表現指定では、正規表現で系列の指定ができます。

f:id:acro-engineer:20150215232010p:plain

サマリしたいグラフが複数あるときには、正規表現で指定する方が便利ですね。

閾値判定機能

ENdoSnipeで取得したデータをグラフにするだけでなく、予め設定した閾値を超えたことをシグナルとして表示する機能を追加しました。

ツリーの任意の要素を右クリックし、「Add Signal」
というメニューを選ぶことで、設定ができます。

シグナルの種類は、3段階(3Level)と5段階(5Level)の2種類から選ぶことができ、
設定した閾値を超えるごとに、

(緑)→黄→(橙)

のように色が変わります。

f:id:acro-engineer:20150218030934p:plain


設定が完了すると、ツリーにシグナルが生成され、
閾値を超えると色が変わるようになります。

f:id:acro-engineer:20150218025439p:plain


シグナルを作っておくと、グラフを開かなくても、
問題のあるリソースを見ることができるので、便利ですね。

Dashboard

これまでに作成したグラフやシグナルをダッシュボードで表示できるようになりました。

画面右上の「Dashboard」ボタンを押すと、Dashboardが表示されます。

f:id:acro-engineer:20150216073214p:plain


デフォルトでは、以下を確認できるテンプレートを用意しています。

  1. システムのリソース使用状況
  2. Javaプロセスのリソース使用状況
  3. Javaアプリケーションの性能
  4. Webアプリケーションの性能
  5. DBに対するアクセス状況


もちろん、表示したいグラフやシグナルを自由に配置するための編集機能もついています。

f:id:acro-engineer:20150218035717p:plain


編集機能を利用し、監視したい内容に合わせ、カスタマイズしてみてください!



今回紹介した機能の他に、ENdoSnipe5.2ではレポート機能の強化や実行計画表示機能なども行っています。


ENdoSnipeここからダウンロードできますので、是非感想等をお知らせください。

それでは。

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


  • 日頃勉強している成果を、Hadoop、Storm、NoSQL、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
  • 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
  • OSSの開発に携わりたい。

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

Java解析ツールバトルにENdoSnipeで参戦してきました!

f:id:acro-engineer:20130911125211p:plain:w320
9/10(火)のJJUGナイトセミナーにて「Java解析ツールバトル」を開催しました、
発表者の @です。

私たちの開発しているOSSの解析・診断ツール「ENdoSnipe」と、同じくOSSの解析ツールである「HeapStats」
さらにOracle公式ツールである「Java Flight Recorder」の三つ巴でパネルディスカッションを繰り広げてきました。

100名近い参加者が集まる中、各ツールの良い所も悪い所もお互いによく話し、
またロードマップや、オフレコ(オフ音声!)の話題もあり面白い会にできたと思います。
f:id:acro-engineer:20130910210807j:plain:w480
ちなみに同日に、
ENdoSnipe 5.1β
・HeapStats 1.1
Java SE7 Update40(初のJava Flight Recorder正式リリース)
がリリースされるというイベントドリブンぶり(笑

# まぁ7u40は偶然ですけど。

いずれにせよ、参加者の皆さんにとって、楽しい・有用なイベントになっていれば嬉しい限りです。


ところで、私自身の発表について言えば、開幕の自己紹介が終わった後にMacがフリーズし、
リブートすると、構築していたデモ環境が一部壊れていてかなり冷や汗をかきながら環境を再構築していました。

ホントもうダメかと思いました、っていうか結構ダメでした。
いくつかのデモが動かなかったし(><)

そんなわけで、会の中では紹介しきれなかった話を少しここで書きたいと思います。

ENdoSnipeの強みは診断

ENdoSnipeの最大の売りは「診断」です。

会の中では、SQLの実行計画を自動的に取得・診断をする機能をデモしましたが、
他にも、メモリリーク検出、デッドロック検出、過剰なI/O、不要なコンテナ初期化など、
多くの典型的な問題を動的に「診断」して問題を検出します。

検出ルールの一覧
http://www.endosnipe.com/functions/performancedoctor.html


たとえばメモリリーク検出機能では、

f:id:acro-engineer:20130911124349p:plain:w320
メモリリークを検出すると同時に、Collectionに要素追加をしたスレッドのスタックトレースを取得しており、
このようにダッシュボード後から確認することができます。

f:id:acro-engineer:20130911124343p:plain:w320
あわせて、グラフでCollectionが持つ要素数が徐々に増加傾向にあることを確認することもできます。

これらの情報があれば、スタックトレースから問題を起こしている箇所を特定することができます。
ENdoSnipeは、このように問題を診断した際にあわせて関連情報も取得するため、障害解析を効率的に行なうことができます。

導入手順やトラブルシュートの方法など

ENdoSnipeの導入手順や、実際のトラブルシュートの流れは、gihyo.jpにて連載している
「halookで始めるHadoop/HBaseトラブルシューティング」の第7回~第9回が詳しいです。
って私が書いた記事なんですけどね (^^;

第7回 halookを支える技術「ENdoSnipe」
第8回 ENdoSnipeのセットアップ
第9回 ENdoSnipeを使ったトラブルシューティング

セットアップは、ひと手間かかるものの、決して難しくはないため、上の記事を見ながら使ってもらえればと思います。

ENdoSnipeの今後

今後の方針は、大きく分けて3つあります。

1. APMとしての機能強化

ENdoSnipeは、元々Javaの「可視化ツール」として開発し、そこから「診断ツール」として使えるように変化してきました。

ここから先は、解析ツールの領域に留まらず、「アプリケーション性能管理(APM)」としての機能を強化する予定です。
このクラウド時代に、数百台のサーバに導入する費用を考えた場合に、有償のAPMツールなどと並べて、
OSSであるENdoSnipeを評価してもらえることを狙っています。

2. 導入の容易性向上

もともとENdoSnipeは、商用プロダクトという位置づけから、もっと多くのユーザに使ってもらいたい、
さらには海外でも使ってもらいたいという理由でOSS化しました。
同じく使ってもらいやすさという観点で、セットアップの容易性もさらに向上させる予定です。

3. Java以外の監視

ENdoSnipeの多くの機能は、JavaVMから取得できる情報を収集したり、
Javaのクラスファイルを書き換えて情報を収集することで、実現しています。

この「Java」という枠組みから一歩踏み出して、Linuxの情報収集ツールであるSystemTapと連携することで、
PostgreSQLMySQLPHPPython、それにRubyなど、Javaを利用していないミドルウェアや言語でも
利用できる機能を強化したいと考えています。

次回に向けて

主催者の立場としては、あまり知られていないツールの話題なので、参加者が集まるかどうか不安でした。

しかしながら、募集を開始してみれば、24時間で定員の120人が満席になり
その後もキャンセル待ちが延々と続くなど、予想以上の大盛況でした。

一方で、集客を見誤ったがゆえに参加したかったけどできなかった方がたくさん出てしまい、
申し訳なく、ぜひ再演したいと検討しています。


もし続編を実現できれば、今回できなかったデモも含めて「倍返し」で臨みたいと思います。

ぜひご期待ください!