Slide 1

Slide 1 text

SpringBoot 関 '25 5 月 度 @irof

Slide 2

Slide 2 text

自己 紹介 irof 関 中 人 個 人 事ۀ主 現場  2 ៉麗 捨 話 ٧ ʁ知

Slide 3

Slide 3 text

今日 ձ  3

Slide 4

Slide 4 text

XXX XXX XXX 性質 思 言 葉 思 現実的 言 事態 ؕ 現実的 除 思 可能性 容қ性 適切 現実的 可能性 言 思 事実 話  4

Slide 5

Slide 5 text

Note: TDD TDD 駆動開発 形 取 入 全 言 少 高 確保 細粒度 組 合 得 可能性 高 結Ռ的 品質 向上 働  5

Slide 6

Slide 6 text

正直 ײ ඥ ײ 見 取 組 言 葉 出 初期 少 意味合 変 気 障֐ 対Ԡ時間 減 ײ覚  6

Slide 7

Slide 7 text

Spring Observability Spring6 2022年 Spring Observability Spring Observability 本腰 入 現在 ֓ 組 込 Spring Java 限 頃 取 組 ؤ張 時期  7

Slide 8

Slide 8 text

Spring Micrometer OpenTelemetry  8

Slide 9

Slide 9 text

Spring Micrometer Spring Observability 実現 使用 過程 出来 Micrometer Micrometer Spring 関係 深 Spring README Sponsored by VMware 書 Broadcom Spring 他 乗  9

Slide 10

Slide 10 text

Micrometer OpenTelemetry Micrometer 主 扱 JVM OpenTelemetry 実装技術非依存 Observability全域 仕様 実装 OpenTelemetry 自 体 話 割愛 実践OpenTelemetry 読 思 書籍中 API SDK Java 障֐対Ԡ時間 関係 冒頭 書 Micrometer OpenTelemetry 扱 Micrometer 通 OpenTelemetry 対Ԡ 形 Micrometer 先 行 時期的 事情  10

Slide 11

Slide 11 text

Spring OpenTelemetry Micrometer OTLP OTLP 受 付 送信 OpenTelemetryAPI/SDK 使 使 Java Agent Spring以外 基本 Spring Boot starter  11

Slide 12

Slide 12 text

雑 Spring Micrometer OpenTelemetry 図  12 大雑把 ײ

Slide 13

Slide 13 text

雑 Spring使 Spring Micrometer 使 必要 記録 必要 Micrometer使 記録 Micrometer使 好 送信 一形態 OTLP 送信 OpenTelemetry API SDK 使 Spring使 無理 OpenTelemetryAPI使 Micrometer 乗 順当 思 Spring Micrometer 外 OpenTelemetry  13

Slide 14

Slide 14 text

話  14

Slide 15

Slide 15 text

SpringBoot SpringObservability 以前 SpringBoot Micrometer 通 一 出力 連携 整理 ײ  15

Slide 16

Slide 16 text

SpringBootActuator /actuator/metrics/{対象} actuator prometheus 公開 management.endpoints.web.exposure.include=metrics 見 本番運用 他 方 思  16

Slide 17

Slide 17 text

Demoʁ  17 - 見 - 起動 - /actuator/metrics 開 - 適当 選

Slide 18

Slide 18 text

仕組 二種類 pull型 外 取 例: Prometheus push型 中 送 例: StatsD OpenTelemetry  18 絶対的 向 不向

Slide 19

Slide 19 text

Prometheus pull型 監視 多次元 収集 独 自 言 語 処理 CNCF graduated project Prometheus Server 中 心 連携  19

Slide 20

Slide 20 text

SpringBoot Prometheus pull型  20

Slide 21

Slide 21 text

SpringBoot Prometheus 使 側 依存 micrometer-registry-prometheus 追Ճ actuator prometheus 公開 management.endpoints.web.exposure.include=prometheus Prometheus側 設定  21

Slide 22

Slide 22 text

確認方法 Prometheus 動 順当 Prometheus 多少 知識 必要 設定 値 見 HTTP ୟ  22

Slide 23

Slide 23 text

Demoʁ  23 - dependency 見 - 見 - 起動 - 開

Slide 24

Slide 24 text

StatsD  24 送信 歴史 軽量 周辺 周辺 ײ 対Ԡ 多 Prometheus Datadog CloudWatch

Slide 25

Slide 25 text

SpringBoot StatsD push型  25 TCP 選 UDP 使 思

Slide 26

Slide 26 text

SpringBoot StatsD 使 側 依存 micrometer-registry-statsd 追Ճ 送信先 設定 localhost:8125 StatsD 側 起動 待  26

Slide 27

Slide 27 text

確認方法 StatsD 動 順当ʁ 適当 UDP 受 取 nc -u -l 8125 自身 DatagramSocket使 受 取  27

Slide 28

Slide 28 text

Demoʁ  28 - dependency 見 - 見 - 受 取 用意 - 起動 - 待

Slide 29

Slide 29 text

Prometheus StatsD 見 比 同 情報源 見 方 違 知 多次元 分析 StatsD 厳 StatsD使 物 足 作 Prometheus Wikipedia 書 言 常 Prometheus 勝  29

Slide 30

Slide 30 text

SpringBoot OTLP push型  30

Slide 31

Slide 31 text

SpringBoot OTLP 使 側 依存 micrometer-registry-otlp 追Ճ 送信先 設定 localhost:4318/v1/metrics 側 OTLP 受 取 待  31

Slide 32

Slide 32 text

確認方法 適当 OTLP 受 取 用意 待 opentelemetry-collector-contrib https://opentelemetry.io/docs/collector/quick-start/ 立 上 待 OK  32

Slide 33

Slide 33 text

Datadog 全体 話 Datadog 話 続 右上 乗  33

Slide 34

Slide 34 text

SpringBoot Datadog 連携 言 一 定 Datadog 形 対Ԡ  34

Slide 35

Slide 35 text

Datadog javaagent  35 Datadog 採用 場合 javaagent 使 取 得 javaagent is Կʁ 別 機ձ 際 DogStatsD StatsD 拡張 使 StatsD 使 確認方法 StatsD 同

Slide 36

Slide 36 text

Datadog javaagent ֓要  36

Slide 37

Slide 37 text

SpringBoot Datadog javaagent適用 SpringBoot CNB 場合 javaagent 取 得 実 行 時 設定 buildpack 任 javaagent 自 体 Datadog 接続 実 行 取得 動 見  37

Slide 38

Slide 38 text

 38 左図 Datadog 限 運用 Java 情報 見 仕組 ֓略図 緑点線枠 各ʑ ײ 選 必要 Spring Datadog 連携

Slide 39

Slide 39 text

 39 Datadog javaagent 使 Datadog AgentContainer経由 Datadog 情報 送信 形 micrometer 情報 素 直 取得 Micrometer MBean 登録 JXMFetch 追Ճ取得 ʁ JMXFetch 情報

Slide 40

Slide 40 text

 40 micrometer-registory-statsd Datadog AgentContainer経由 Datadog 情報 送信 収集 Datadog javaagent 使 必要 入 同 項目 別名異周期 重複 収集

Slide 41

Slide 41 text

 41 micrometer-registory-datadog 直接 Datadog 送信 SpringBoot 的 推奨 ʁ Datadog 認証情報 設定 必要

Slide 42

Slide 42 text

 42 micrometer-registory-prometheus 公開 DatadogContainerAgent 収集 Datadog 送信

Slide 43

Slide 43 text

SpringBoot Datadog 連携 方 ڍ 全部 Datadog OTLP対Ԡ OTLP 使 選択肢 javaagent JMXFetch 取得 事 足 設定 取得 一部 Tomcat HikariCP 取  43

Slide 44

Slide 44 text

参考 Datadog 収集  44 16項目 実際 少 送 JMX 全項目 micrometer 扱 当然入

Slide 45

Slide 45 text

正直 同 複数 方法 区別 難 一 丁寧 押 結Ռ的 早 思 JMX 全然現役 意識 ʁDatadog JMXFetch 触 㚽 必要 情報 手 届 時 打 手 無 思  45

Slide 46

Slide 46 text

選択肢 Datadog javaagent 標準 管理画面 Datadog 上 獲得 Micrometer OpenTelemetry 併用 Continuous Pro fi ler 使  46 Datadog上 ඥ付 努力 必要 完ᘳ

Slide 47

Slide 47 text

補 足 Java MBean 記録 MBean 記録 Micrometer 見 頻出 tomcat  47

Slide 48

Slide 48 text

例: Tomcat MBean登録 有効 見 一気 増 特 Tomcat worker thread 状態 頻出  48

Slide 49

Slide 49 text

Tomcat MBean登録前後  49 Prometheus 開 ײ 左 Tomcat MBean登録 版 右 登録 版 結構増

Slide 50

Slide 50 text

話 軽  50

Slide 51

Slide 51 text

SpringBoot SpringCloud Sleuth 対Ԡ 後継 Micrometer Tracing 今 Brave OpenTelemetry 選 OTLP 対Ԡ 流 込 他 ඥ  51

Slide 52

Slide 52 text

伝搬 Observability 実現 向 伝搬 重要 一番 Өڹ 受 言 及 動 成立 間 渡 多 HTTP AMQP 内 ThreadLocal 標準実装 別 引 継 必要 必要  52

Slide 53

Slide 53 text

Demo?  53 micrometer-tracing-bridge-otel 依存 ID 伝೻ Datadog javaagent使 伝೻ micrometer-tracing不使用

Slide 54

Slide 54 text

: ID 外部 送  54 HTTP通信時 送 個別 手 間 自 動的 付与 仕ֻ 除外 外部通信 入 送 受 取 事故

Slide 55

Slide 55 text

話 軽  55

Slide 56

Slide 56 text

Java 乗 換 話 自 動的 情報 付与 他 同 送 ඥ付 調査 ײ 具体的 有効 MDC ID 入 Demo?  56

Slide 57

Slide 57 text

(1/2) 監視 採用 関 採用 方式 見 見 運用環ڥ 乗 初 情報 試 行 錯誤 "Ṗ " 動 認識 Demo 手 元 確認 手 段 持 全員 知 Կ 人 知 思 思 Java 話 開発者 責務  57

Slide 58

Slide 58 text

(2/2) 取 組 色 ʑ必要 Կ 程度 ײ 程度 Կ 知 今回 話 知 世ք 思 現実 行 知  58