Enviar pesquisa
Carregar
KamonとDatadogによるリアクティブアプリケーションの監視の事例
•
1 gostou
•
2,183 visualizações
I
Ikuo Matsumura
Seguir
http://datadog.connpass.com/event/41367 dd_sushi でのUser Talkの発表資料です。
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 30
Baixar agora
Baixar para ler offline
Recomendados
Kamonを理解する
Kamonを理解する
Shuya Tsukamoto
Telemetry事始め
Telemetry事始め
npsg
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
akira6592
AnsibleとNAPALMでネットワークをテストする
AnsibleとNAPALMでネットワークをテストする
akira6592
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
Kohei KaiGai
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
Recomendados
Kamonを理解する
Kamonを理解する
Shuya Tsukamoto
Telemetry事始め
Telemetry事始め
npsg
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
akira6592
AnsibleとNAPALMでネットワークをテストする
AnsibleとNAPALMでネットワークをテストする
akira6592
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
Kohei KaiGai
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
Make your programs Free
Make your programs Free
Pawel Szulc
究極のPHP本完成
究極のPHP本完成
Katsuhiro Ogawa
Arquitectura barroca
Arquitectura barroca
Maria Carmona
Sbtのマルチプロジェクトはいいぞ
Sbtのマルチプロジェクトはいいぞ
Yoshitaka Fujii
How Scala code is expressed in the JVM
How Scala code is expressed in the JVM
Koichi Sakata
ScalaMatsuri 2016
ScalaMatsuri 2016
Yoshitaka Fujii
Scala Refactoring for Fun and Profit (Japanese subtitles)
Scala Refactoring for Fun and Profit (Japanese subtitles)
Tomer Gabel
Functional Programming For All - Scala Matsuri 2016
Functional Programming For All - Scala Matsuri 2016
Zachary Abbott
Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
Kazuhiro Sera
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
x1 ichi
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
Kazuki Negoro
Akka Cluster and Auto-scaling
Akka Cluster and Auto-scaling
Ikuo Matsumura
Tracing Microservices with Zipkin
Tracing Microservices with Zipkin
takezoe
Going bananas with recursion schemes for fixed point data types
Going bananas with recursion schemes for fixed point data types
Pawel Szulc
Van laarhoven lens
Van laarhoven lens
Naoki Aoyama
Why Reactive Matters #ScalaMatsuri
Why Reactive Matters #ScalaMatsuri
Yuta Okamoto
Reducing Boilerplate and Combining Effects: A Monad Transformer Example
Reducing Boilerplate and Combining Effects: A Monad Transformer Example
Connie Chen
Zen of Akka
Zen of Akka
Konrad Malawski
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
chibochibo
Reactive integrations with Akka Streams
Reactive integrations with Akka Streams
Konrad Malawski
アプリケーション開発と分析のための Log Analytics
アプリケーション開発と分析のための Log Analytics
kekekekenta
SORACOM UG 信州 #3 | About SORACOM & Updates
SORACOM UG 信州 #3 | About SORACOM & Updates
SORACOM,INC
Mais conteúdo relacionado
Destaque
Make your programs Free
Make your programs Free
Pawel Szulc
究極のPHP本完成
究極のPHP本完成
Katsuhiro Ogawa
Arquitectura barroca
Arquitectura barroca
Maria Carmona
Sbtのマルチプロジェクトはいいぞ
Sbtのマルチプロジェクトはいいぞ
Yoshitaka Fujii
How Scala code is expressed in the JVM
How Scala code is expressed in the JVM
Koichi Sakata
ScalaMatsuri 2016
ScalaMatsuri 2016
Yoshitaka Fujii
Scala Refactoring for Fun and Profit (Japanese subtitles)
Scala Refactoring for Fun and Profit (Japanese subtitles)
Tomer Gabel
Functional Programming For All - Scala Matsuri 2016
Functional Programming For All - Scala Matsuri 2016
Zachary Abbott
Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
Kazuhiro Sera
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
x1 ichi
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
Kazuki Negoro
Akka Cluster and Auto-scaling
Akka Cluster and Auto-scaling
Ikuo Matsumura
Tracing Microservices with Zipkin
Tracing Microservices with Zipkin
takezoe
Going bananas with recursion schemes for fixed point data types
Going bananas with recursion schemes for fixed point data types
Pawel Szulc
Van laarhoven lens
Van laarhoven lens
Naoki Aoyama
Why Reactive Matters #ScalaMatsuri
Why Reactive Matters #ScalaMatsuri
Yuta Okamoto
Reducing Boilerplate and Combining Effects: A Monad Transformer Example
Reducing Boilerplate and Combining Effects: A Monad Transformer Example
Connie Chen
Zen of Akka
Zen of Akka
Konrad Malawski
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
chibochibo
Reactive integrations with Akka Streams
Reactive integrations with Akka Streams
Konrad Malawski
Destaque
(20)
Make your programs Free
Make your programs Free
究極のPHP本完成
究極のPHP本完成
Arquitectura barroca
Arquitectura barroca
Sbtのマルチプロジェクトはいいぞ
Sbtのマルチプロジェクトはいいぞ
How Scala code is expressed in the JVM
How Scala code is expressed in the JVM
ScalaMatsuri 2016
ScalaMatsuri 2016
Scala Refactoring for Fun and Profit (Japanese subtitles)
Scala Refactoring for Fun and Profit (Japanese subtitles)
Functional Programming For All - Scala Matsuri 2016
Functional Programming For All - Scala Matsuri 2016
Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
Akka Cluster and Auto-scaling
Akka Cluster and Auto-scaling
Tracing Microservices with Zipkin
Tracing Microservices with Zipkin
Going bananas with recursion schemes for fixed point data types
Going bananas with recursion schemes for fixed point data types
Van laarhoven lens
Van laarhoven lens
Why Reactive Matters #ScalaMatsuri
Why Reactive Matters #ScalaMatsuri
Reducing Boilerplate and Combining Effects: A Monad Transformer Example
Reducing Boilerplate and Combining Effects: A Monad Transformer Example
Zen of Akka
Zen of Akka
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
Reactive integrations with Akka Streams
Reactive integrations with Akka Streams
Semelhante a KamonとDatadogによるリアクティブアプリケーションの監視の事例
アプリケーション開発と分析のための Log Analytics
アプリケーション開発と分析のための Log Analytics
kekekekenta
SORACOM UG 信州 #3 | About SORACOM & Updates
SORACOM UG 信州 #3 | About SORACOM & Updates
SORACOM,INC
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM,INC
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
Takuya Ogawa
Migrating tocloudnativeapplicationwithusingelasticapm
Migrating tocloudnativeapplicationwithusingelasticapm
Shotaro Suzuki
実践で学んだLog Analytics
実践で学んだLog Analytics
Tetsuya Odashima
SORACOM UG 農業活用コミュニティ #1 | IoT向け通信プラットフォーム「SORACOM」ご紹介
SORACOM UG 農業活用コミュニティ #1 | IoT向け通信プラットフォーム「SORACOM」ご紹介
SORACOM,INC
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
Naoki (Neo) SATO
Amazon EKSによるスケーラブルなCTR予測システム
Amazon EKSによるスケーラブルなCTR予測システム
駿哉 吉田
Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18
Masatomo Ito
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
NTT DATA Technology & Innovation
機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップ
Daiyu Hatakeyama
Apm enables python app observability
Apm enables python app observability
Shotaro Suzuki
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
Visual Studio App Centerで始めるCI/CD(Android)
Visual Studio App Centerで始めるCI/CD(Android)
Shinya Nakajima
Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版
Daiyu Hatakeyama
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
Developers Summit
明治大学理工学部 特別講義 AI on Azure
明治大学理工学部 特別講義 AI on Azure
Daiyu Hatakeyama
Semelhante a KamonとDatadogによるリアクティブアプリケーションの監視の事例
(20)
アプリケーション開発と分析のための Log Analytics
アプリケーション開発と分析のための Log Analytics
SORACOM UG 信州 #3 | About SORACOM & Updates
SORACOM UG 信州 #3 | About SORACOM & Updates
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
Migrating tocloudnativeapplicationwithusingelasticapm
Migrating tocloudnativeapplicationwithusingelasticapm
実践で学んだLog Analytics
実践で学んだLog Analytics
SORACOM UG 農業活用コミュニティ #1 | IoT向け通信プラットフォーム「SORACOM」ご紹介
SORACOM UG 農業活用コミュニティ #1 | IoT向け通信プラットフォーム「SORACOM」ご紹介
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
Amazon EKSによるスケーラブルなCTR予測システム
Amazon EKSによるスケーラブルなCTR予測システム
Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップ
Apm enables python app observability
Apm enables python app observability
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Visual Studio App Centerで始めるCI/CD(Android)
Visual Studio App Centerで始めるCI/CD(Android)
Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
明治大学理工学部 特別講義 AI on Azure
明治大学理工学部 特別講義 AI on Azure
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-
Baixar agora