Slide 1

Slide 1 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve Speaker: Taichi Abe
 Go.1.26の runtime/metricsが 便利そうな件(?)

Slide 2

Slide 2 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 自己紹介 ● 阿部 太一 @o-ga09
 ● 仕事:株式会社ワクト
 ● 趣味:Goで個人開発、山本彩の推し 活、ハイキュー!! の推し活
 最推しは、孤爪研磨だけど、
 宮城勢での推しは、月島蛍と日向翔陽!


Slide 3

Slide 3 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 目次 1. なぜ導入のされるのか
 2. 既存のruntimeメトリクス取得(ReadMemStatsなど)の課題点
 3. どういう機能か?何ができるのか?
 4. 新しいruntime/metricsパッケージの基本概念とGo 1.26で追加されたメトリクス群の 紹介
 5. APIの使い方
 6. うれしくなること
 7. まとめ
 8. デモ的な何か


Slide 4

Slide 4 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve ⚠ 前提 ● LTなので、導入部分のみとなります 
 ● Go初心者〜中級者くらいの人間の感想です 


Slide 5

Slide 5 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 1. なぜ導入のされるのか 1. 同リリースで追加された「goroutine リークプロファイル」との連携 
 2. Green Tea GC の導入によるオブザーバビリティ強化の必要性 
 3. runtime/metrics パッケージの継続的な拡充方針 


Slide 6

Slide 6 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 2. 既存のruntimeメトリクス取得の課題点や要望 などは? 1. MemStats のようにスケジューラも監視したい 
 2. num-active-goroutines / num-cpu という比率でアプリの過負荷を検知 したい
 3. メトリクスが増えすぎて何を使えばよいかわからない問題 


Slide 7

Slide 7 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 3. どういう機能か?何ができるのか? ● 以前はpprofに頼るしかなかった、goroutineやOSスレッドの状態監視をruntimeパッ ケージで一括で確認できるようになった


Slide 8

Slide 8 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 4. 新しいruntime/metricsパッケージ の基本概念とGo 1.26で追加されたメト リクス群の紹介

Slide 9

Slide 9 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 復習:runtime/metricsとは? ● Go ランタイム内部の状態をプログラムから直接読み取るための標準 API です。Go 1.16 で導入された 
 ● 読み取った値は metrics.Value として返され、必ず Kind を確認してから 取り出す必要がある 
 ● 複数のメトリクスを一度の呼び出しでまとめて取得する 


Slide 10

Slide 10 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 一覧 メトリクス 内容 /sched/goroutines-created:goroutines 生成されたgoroutineの総数 /sched/goroutines/not-in-go:goroutines 行中またはブロックされている goroutineの数 /sched/goroutines/runnable:goroutines 実行準備可能状態の gorutineの数 /sched/goroutines/running:goroutines 実行中のgorutineの数 /sched/goroutines/waiting:goroutines 実行待ち中のgoroutineの数 /sched/threads/total:threads GoRuntimeが持っている現在の OSスレッド数 全量


Slide 11

Slide 11 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 5. APIの使い方 ● func Read(m []Sample) を呼ぶのみ!シンプル! 
 ○ このパッケージに定義された関数はこれ1つ!分かりやすい! 


Slide 12

Slide 12 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve APIの使い方例

Slide 13

Slide 13 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve https://go.dev/play/p/ko_jEzD432O


Slide 14

Slide 14 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 7. うれしくなること ● スケジューラの状態をより細かく・リアルタイムに把握できるようになりました! 
 ○ 特に、goroutineの状態監視 
 ○ 総数、実行中数、待ち数 
 
 以上


Slide 15

Slide 15 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve なぜ、タイトルに(?)をつけたのか?

Slide 16

Slide 16 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve ● 全員にすぐに役に立つものではない 
 ● ライブラリ側で対応すればそれでいい 
 ● あったら便利!なものではある 


Slide 17

Slide 17 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve 8. まとめ ● gcへ変更が入ったので、よりシステムの状態を詳細に監視できるようになったの は、ありがたい 
 ● リリースノートに少ししか書かれていない変更でもIssueをたどると数年越しの導 入みたいな機能がたくさんある 
 ● runtimeパッケージは詳細なメトリクスが見ることができるし、これからも拡充方 針らしいのでもっと勉強したい 


Slide 18

Slide 18 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve デモ https://github.com/o-ga09/goconmini2026


Slide 19

Slide 19 text

Go Conference min 2026 in Sendai © 2026 o-ga09 All rights reserve slides made by k1LoW/deck
 The Go gopher was designed by Renée French.
 Go静聴ありがとうございま した!