Submit Search
KamonとDatadogによるリアクティブアプリケーションの監視の事例
1 like
2,213 views
I
Ikuo Matsumura
http://datadog.connpass.com/event/41367 dd_sushi でのUser Talkの発表資料です。
Software
Read more
1 of 30
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
More Related Content
PDF
Kamonを理解する
Shuya Tsukamoto
PPTX
Telemetry事始め
npsg
PDF
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
akira6592
PDF
AnsibleとNAPALMでネットワークをテストする
akira6592
PPTX
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
PDF
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
PDF
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
Kohei KaiGai
PDF
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
Kamonを理解する
Shuya Tsukamoto
Telemetry事始め
npsg
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
akira6592
AnsibleとNAPALMでネットワークをテストする
akira6592
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
Kohei KaiGai
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
Viewers also liked
(20)
PDF
Make your programs Free
Pawel Szulc
PPTX
究極のPHP本完成
Katsuhiro Ogawa
PPTX
Arquitectura barroca
Maria Carmona
PDF
Sbtのマルチプロジェクトはいいぞ
Yoshitaka Fujii
PDF
How Scala code is expressed in the JVM
Koichi Sakata
PDF
ScalaMatsuri 2016
Yoshitaka Fujii
PPTX
Scala Refactoring for Fun and Profit (Japanese subtitles)
Tomer Gabel
PDF
Functional Programming For All - Scala Matsuri 2016
Zachary Abbott
PDF
Contributing to Scala OSS from East Asia #ScalaMatsuri
Kazuhiro Sera
PDF
あなたのScalaを爆速にする7つの方法(日本語版)
x1 ichi
PDF
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
Kazuki Negoro
PDF
Akka Cluster and Auto-scaling
Ikuo Matsumura
PDF
Tracing Microservices with Zipkin
takezoe
PDF
Going bananas with recursion schemes for fixed point data types
Pawel Szulc
PDF
Van laarhoven lens
Naoki Aoyama
PDF
Why Reactive Matters #ScalaMatsuri
Yuta Okamoto
PDF
Reducing Boilerplate and Combining Effects: A Monad Transformer Example
Connie Chen
PDF
Zen of Akka
Konrad Malawski
PDF
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
chibochibo
PDF
Reactive integrations with Akka Streams
Konrad Malawski
Make your programs Free
Pawel Szulc
究極のPHP本完成
Katsuhiro Ogawa
Arquitectura barroca
Maria Carmona
Sbtのマルチプロジェクトはいいぞ
Yoshitaka Fujii
How Scala code is expressed in the JVM
Koichi Sakata
ScalaMatsuri 2016
Yoshitaka Fujii
Scala Refactoring for Fun and Profit (Japanese subtitles)
Tomer Gabel
Functional Programming For All - Scala Matsuri 2016
Zachary Abbott
Contributing to Scala OSS from East Asia #ScalaMatsuri
Kazuhiro Sera
あなたのScalaを爆速にする7つの方法(日本語版)
x1 ichi
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
Kazuki Negoro
Akka Cluster and Auto-scaling
Ikuo Matsumura
Tracing Microservices with Zipkin
takezoe
Going bananas with recursion schemes for fixed point data types
Pawel Szulc
Van laarhoven lens
Naoki Aoyama
Why Reactive Matters #ScalaMatsuri
Yuta Okamoto
Reducing Boilerplate and Combining Effects: A Monad Transformer Example
Connie Chen
Zen of Akka
Konrad Malawski
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
chibochibo
Reactive integrations with Akka Streams
Konrad Malawski
Ad
Similar to KamonとDatadogによるリアクティブアプリケーションの監視の事例
(20)
PPTX
アプリケーション開発と分析のための Log Analytics
kekekekenta
PDF
SORACOM UG 信州 #3 | About SORACOM & Updates
SORACOM,INC
PDF
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM,INC
PDF
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
PDF
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
PDF
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
Takuya Ogawa
PDF
Migrating tocloudnativeapplicationwithusingelasticapm
Shotaro Suzuki
PDF
実践で学んだLog Analytics
Tetsuya Odashima
PDF
SORACOM UG 農業活用コミュニティ #1 | IoT向け通信プラットフォーム「SORACOM」ご紹介
SORACOM,INC
PDF
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
Naoki (Neo) SATO
PDF
Amazon EKSによるスケーラブルなCTR予測システム
駿哉 吉田
PDF
Microsoft open tech night 2020 feb18
Masatomo Ito
PDF
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
NTT DATA Technology & Innovation
PPTX
機械学習 - MNIST の次のステップ
Daiyu Hatakeyama
PDF
Apm enables python app observability
Shotaro Suzuki
PDF
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
PPTX
Visual Studio App Centerで始めるCI/CD(Android)
Shinya Nakajima
PPTX
Azure Machine Learning services 2019年6月版
Daiyu Hatakeyama
PDF
【18-C-4】Google App Engine - 無限の彼方へ
Developers Summit
PPTX
明治大学理工学部 特別講義 AI on Azure
Daiyu Hatakeyama
アプリケーション開発と分析のための Log Analytics
kekekekenta
SORACOM UG 信州 #3 | About SORACOM & Updates
SORACOM,INC
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM,INC
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
Takuya Ogawa
Migrating tocloudnativeapplicationwithusingelasticapm
Shotaro Suzuki
実践で学んだLog Analytics
Tetsuya Odashima
SORACOM UG 農業活用コミュニティ #1 | IoT向け通信プラットフォーム「SORACOM」ご紹介
SORACOM,INC
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
Naoki (Neo) SATO
Amazon EKSによるスケーラブルなCTR予測システム
駿哉 吉田
Microsoft open tech night 2020 feb18
Masatomo Ito
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
NTT DATA Technology & Innovation
機械学習 - MNIST の次のステップ
Daiyu Hatakeyama
Apm enables python app observability
Shotaro Suzuki
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
Visual Studio App Centerで始めるCI/CD(Android)
Shinya Nakajima
Azure Machine Learning services 2019年6月版
Daiyu Hatakeyama
【18-C-4】Google App Engine - 無限の彼方へ
Developers Summit
明治大学理工学部 特別講義 AI on Azure
Daiyu Hatakeyama
Ad
KamonとDatadogによるリアクティブアプリケーションの監視の事例
1.
KamonとDatadogによる リアクティブアプリケーションの 監視の事例 松村 郁⽣ (ikuo) ソフトウェアエンジニア
@ CyberAgent, Inc.
2.
紹介の流れ • 技術環境 /
選んだ経緯 • アプリケーション監視の事例 • Kamonの計測モデル • 監視の例 • 受信メッセージ数, Kinesisアプリの遅延, 外部接続の応答時間, アプリのボトルネック • つまづいた点と解決策, Tips • タグの組合せ数を抑える(フィルタ, リソース解放)
3.
技術環境 / 選んだ経緯
4.
スマホ向け広告の配信を最適化するプラットフォーム (SSP) リリース: 2015年3⽉ (1年半の運⽤) 配信規模: ⽉間数⼗億imp 広告問合せの接続数: 数⼗デマンド
5.
サーバ側 技術環境 Scala/Akka Docker EC2/Elastic Beanstalk,
DynamoDB, Kinesis, etc. Kamon Datadog EMR + Spot Spark AWS Kamon 監視系 広告配信系 集計系 …
6.
インフラ構成の省⼒化,伸びる環境に投資 2014年末に選定 AWS Docker (環境G) (環境O) Google Trends goo.gl/cB8ll4
7.
• 健全な基礎 • Actor
Model (1973) • ⾮同期メッセージ通信 → 弾⼒性, 耐障害性, 即応性[REM] • エコシステム • 社内事例, JVMベース • 背圧制御, 永続化, クラスタ, シャーディング などの拡張 ⾼性能 TechEmpower Web Framework Benchmarks EC2最新版 (Round11), Nov. 2015, json [WFB]
8.
ThoghtWorks Technology Radar Nov. 2016
[TTR] “Architectures based on asynchronous message passing introduce complexity and make the overall system harder to understand”
9.
計測: 理解しやすくする1つのアプローチ • 元々
“Reactive Application Monitoring”のコンセプト • Scala/Akka⽤の OSS 計測ライブラリ
10.
• 当時から Kamon,
Docker に対応 • 監視系の省⼒化と費⽤とのバランス • + “トレンド” 2014年末 に選定 Google Trends goo.gl/yQVIiY Datadog ツールS
11.
ツールM (国内) goo.gl/hq5vth ツールZ ツールn ツールN ツールm goo.gl/yzb3jd 2014年末 に選定 Google Trends goo.gl/yQVIiY Datadog ツールS
12.
Kamonの計測モデルと アプリケーション監視の例
13.
Kamonの計測モデルと構成要素 • Core • Metrics
- 計測対象(Entity)から計測値(EntityRecorder) へのマップ • Tracing - 複数の計測対象間の相互作⽤の記録 • Integrations • Scala{,z}, Akka, Logback, Annotation, Exexutors, Play, Spray, JDBC, ElasticSearch, System Metrics • Backends • Datadog, JMX 他多数
14.
計測器 計測対象(Entity)の例 紹介する監視の例 Counter
akka-actor.errors 1. 受信メッセージ数 Histogram akka-actor.time-in-mailbox 2. Kinesisアプリの遅延 tracer.elapsed-time 3. 外部接続の応答時間 MinMaxCounter akka-actor.mailbox-size 4. アプリのボトルネック Gauge system-metrics.thread-count - Kamonの4つの計測器と監視の例
15.
1. 受信メッセージ数の監視 (Counter) host-a
でノード障害 (コンテナにrestartかかる) host-bにfailover Kamon.metrics.counter(“my-event”).increment()
16.
2. Kinesisアプリの遅延の監視 (Histogram) 社内勉強会の資料[SMK]
(@s_tsuka) より Kamon.metrics.histogram(“my-delay”).record(v)
17.
3. 経過時間の取得 Tracer.withNewContext(“my-proc”, autoFinish=true)
{ // 計測対象コード } 内部的には Histogram
18.
3. 外部接続の応答時間の監視 (Tracer)
19.
4. アプリのボトルネックの監視 (MinMaxCounter) リリースから半年時点
20.
ボトルネック解消 リリースから1年半
21.
つまづいた点と解決策, Tips
22.
タグの組合せ数の制限 (Datadog) タグの組合せ毎にCustom Metricがカウントされる デフォルトでは「ホスト数
x 100個」まで* Metirc毎のタグ⼀覧 Datadog UI > Metric > Summary (*) Datadog Integrationは含まず …
23.
タグの組合せ数の注意点 (Kamon) • タグの組合せ毎にKamonのEntityが⽣成される •
⽣成されたEntityは⾃動では削除されない Kamon.metrics.counter( name = "pageview", tags = Map(“url” -> url) ).increment() メモリ リーク • 対策 • 限られた値を取るものしかタグには使わない • LRUキャッシュなどで不要なEntityは明⽰的に remove する
24.
タグの組合せ数の注意点 (kamon-akka) • Actorのパス毎にKamonのEntityが⽣成される •
Actorを⼤量に⽣成する設計パターンがある* • e.g. Cameoパターン, Cluster Sharding context.actorOf( MyActor.props, name = “my-actor-” + randomUUID.toString ) (*)もともとAkkaは 数百万Actor/JVM を想定している “~2.5 million actors per GB of heap”, http://akka.io/
25.
Actorの⼤量⽣成の対策 (kamon-akka) • akka-actorのフィルタで計測対象から除外する •
必要なら別の形で計測を仕込む • e.g. ClusterShardingStats でActor総数を取る // application.conf kamon.metric.filters.akka-actor { includes = [ “**” ] excludes = [ “*/user/**/my-actor-*”, “*/system/**” ] }
26.
フィルタの効果 before after
27.
グラフへのコメント
28.
外部チャットにポスト
29.
まとめ • Kamonと組合せたScala/Akkaアプリの監視について Datadogを選んだ経緯、1年半の運⽤の中から事例・Tips を紹介しました • タグの組合せが増えすぎないように、フィルタやリソー ス解放などに留意しています •
Kamonの使い⽅詳細や内部の仕組みについては 是⾮弊社のブログ[SBK]・勉強会資料[SMK]もご覧下さい
30.
Reference • [REM] Reactive
Manifesto v2.0, http://www.reactivemanifesto.org/ja • [WFB] TechEmpower Web Framework Benchmarks, Round11, JSON serialization, EC2, https://www.techempower.com/benchmarks/ (graph script: goo.gl/IpyQ4T ) • [TTR] ThoughtWorks, Technology Radar Nov. 2016, https:// www.thoughtworks.com/radar/techniques • [SBK] KamonとDatadogを使ってAkka actorのパフォーマンスを可視化 する, CyberAgent AdTech Studio ScalaBlog, https:// adtech.cyberagent.io/scalablog/2015/09/24/ kamon_datadog_akka_performance/ • [SMK] Kamonを理解する, AdTech Scala Meetup, http:// www.slideshare.net/shuyatsukamoto/kamon-55734536 • [DCM] Datadog FAQ, Limit on the number of custom metrics, https:// help.datadoghq.com/hc/en-us/articles/204271775-What-is-a- custom-metric-and-what-is-the-limit-on-the-number-of-custom- metrics-I-can-have-
Download