Yoshi Yamaguchi
Staff Developer Advocate at Grafana Labs
Yamanashi, Japan
Actions
Grafana Labs スタッフデベロッパーアドボケイト。Grafana StackとGrafana Cloudの普及と技術支援を担当し、特にオブザーバビリティ、SRE、DevOpsといった領域を専門とする。OpenTelemetryやGoのコミュニティの支援も活発に行っている。「入門OpenTelemetry」「SREをはじめよう」「効率的なGo」「SLO サービスレベル目標」「オブザーバビリティ・エンジニアリング」翻訳、「SREの探求」監訳をはじめ、技術書の翻訳に多数関わる。
Links
Area of Expertise
Topics
今日から始めるpprof
Goの素晴らしいところは豊富なツールセットが標準で付いていてインストール直後から使えるところにあります。本ワークショップではその中でもpprofというプロファイラーの使い方を初めて使う方にもわかりやすい形で解説します。
ワークショップは次のような内容をカバーすることを想定しています。
1. プロファイラーとは
2. pprofの基本機能の説明
3. pprofをプログラムに組み込む
4. pprofでプロファイルを取得する
5. pprofでプロファイルを可視化する
6. pprofの読み方を理解する
7. pprofの結果に基づいて改善する
8. 改善結果をpprofで確認する
9. 実際の開発に活かせる継続的プロファイルの解説
10. (オプション)継続的プロファイルを導入してみる(各種サービスのアカウントが必要)
本セッションを終える頃にはテストやベンチマークだけでなく、Goでのプロファイルの使い方も理解し、根拠のある形でパフォーマンスチューニングを実施できる知識を得ることができるようになるでしょう。
プロファイルとAIエージェントによる効率的なデバッグ
最近ではオブザーバビリティの主要テレメトリーとしてログ、メトリクス、分散トレースは広く認識されるようになりましたが、プロファイルの利用はまだまだ普及していません。これは、プロファイルは特にパフォーマンスの問題を解決するためにはもっとも重要なテレメトリーであるにもかかわらず、そのデータを読み取ってデバッグに活用するためには多少の経験が必要なことが原因でしょう。しかし、この問題は昨今広く普及してきているLLMベースのAIエージェントによって軽減されつつあります。
本セッションでは、まずオブザーバビリティのためのテレメトリーとしてなぜプロファイルが重要であるかを確認した後、プロファイルを使った従来のデバッグ方法を解説したうえで、AIエージェントによる支援がいかに有用であるかをご紹介します。
本セッションを聞き終わるころには、早速実務に活かすべくプロファイルを取得したくなることでしょう。
Utilize another telemetry data for faster improvement with AI agent
When it comes to observability, they usually just talk about logs, metrics and distributed traces. But they are not all about observability. This session navigates you on what profile is, what it is for, and how you can take advantage of it for your day to day development experience. Also, it helps you well with AI agent tool, such as Amazon Q Developer, Kiro and so on. After the session, you'll be confident with the usage of profiles.
The Pythonic Guide to Observability: OpenTelemetry without the Magic
## Abstract
OpenTelemetry often feels like a black box that we plug into Django, FastAPI, or background workers and hope it works. But for Python developers, understanding how telemetry interacts with our code is the key to building systems that are easier to debug, operate, and improve together.
In this talk, we will bridge the gap between zero-code instrumentation and manual tracing. We will explore how OpenTelemetry uses Python’s features, including context variables, decorators, context managers, and import-time instrumentation, to track requests across synchronous and asynchronous boundaries.
We will then move from mechanics to design: how to create meaningful spans, why traces sometimes break in asyncio applications, and how sampling helps teams keep the most useful signals without collecting everything. By the end, attendees will have a practical mental model for using observability not only as a debugging tool, but as a shared source of truth for collaborative engineering.
## Full Description
This session is for Python developers who have used, seen, or heard about OpenTelemetry, but want to understand what is happening beneath auto-instrumentation. The focus is vendor-neutral and practical, using open-source examples that apply to common Python services and scripts.
### 1. Beyond the Auto-Instrumentor, 8 minutes
When opentelemetry-instrument is helpful, and when it is not enough.
How to use manual spans to describe business logic clearly.
Using decorators and context managers to make instrumentation feel natural in Python.
### 2. The Engine Under the Hood, 10 minutes
How OpenTelemetry tracks execution state with contextvars.
Why context propagation matters for asyncio, background tasks, and concurrent workloads.
Common reasons traces “break,” and how to diagnose missing parent-child relationships.
### 3. Strategic Observability for Teams, 7 minutes
Why tracing everything can become expensive and noisy.
Practical use of trace ID ratio sampling and custom sampling logic.
How teams can keep useful signals, such as errors and high-latency requests, while dropping low-value data.
Q&A, 5 minutes
## Takeaways
* How to manually instrument Python code for deeper visibility.
* How OpenTelemetry propagates context in modern Python applications.
* How to recognize and fix common async tracing problems.
* How sampling choices affect cost, signal quality, and team collaboration.
* A clearer mental model for making observability understandable across development and operations.
OpenTelemetry internals
OpenTelemetryはさまざまなテレメトリーを共通規格で扱えるようにすることで、アプリケーションとオブザーバビリティ基盤を疎結合化してくれています。しかし、その間にあるOpenTelemetryは何を行っているのでしょうか。本セッションではOpenTelemetryが各種コンポーネントで扱っている内部的なデータ構造や仕組みを解説します。本セッションによってOpenTelemetryの理解をより一層深められることでしょう。
OpenTelemetry eBPF Instrumentationの舞台裏
OpenTelemetryの「ゼロコード計装」はeBPFを使えばアプリのコードを1行も変えずにHTTPやgRPCのトレースが取れる、と魔法のように語られます。ですが、その魔法をGoバイナリに対して実現するのは、他のどの言語よりも困難です。
本セッションでは、Grafana BeylaがOpenTelemetryプロジェクトへ寄贈され生まれた OpenTelemetry eBPF Instrumentation (OBI) を題材に、「GoバイナリにeBPFで計装する」という行為がGoランタイムのどんな性質と衝突するのかを詳細に解説します。
具体的には、(1) Goの可動スタックゆえにuretprobeが使えずクラッシュする問題と、関数内の全RET命令にuprobeを置く回避策、(2) Go 1.17以降のレジスタベース呼び出し規約(ABIInternal)と、現在のgoroutineを指すgポインタがレジスタに保持される仕組み、(3) Goのバージョンごとに変わる内部構造体のフィールドオフセットを、外部のオフセットテーブルで追従し続ける運用、(4) goroutineの親子関係を辿ってコンテキストを伝搬する手法とその制約、を順に見ていきます。
最後に、これらの困難に対してGo本体側(ランタイム)がどう向き合ってきた/こなかったのかを、flight recorderやgoroutine leak profileなど近年のオブザーバビリティ向上と対比して議論します。
Goとオブザーバビリティ製品に長らく関わってきた経験により、Go Conferenceであまり触れられてこなかったeBPFに関して、参加者の理解を高める発表にします。
Goのメモリ管理
Goはいまや多くのシステムクリティカルな製品を支える言語として広く採用されていますが、その内部構造に関する理解はまだ広く認識されているとはいえません。
本セッションでは、Goランタイムがどのようにメモリ管理を実現しているかをランタイムレベルから解説します。それを踏まえて、その仕組み故に気をつけなければいけないユースケースなどを深堀りし、実際にどのように解決するかを解説していきます。
本セッションはLinuxの知識なども必要となりますが、セッションを終える頃にはGoのメモリ管理について大まかな理解が得られることでしょう。
Goのビルドシステムの変遷
Goの特徴として、プロジェクト規模に対するビルドの速度が速いというものがあります。このビルドシステムへのこだわりはGo自体の設計にも深く根ざしていて、言語開発のそもそものモチベーションの1つが快適なビルドシステムの構築でした。そしてGoは2009年のオープンソース化以降、たゆまなくビルドシステムの改善を続け、今日に至るまで多くの変遷を辿ってきました。
本セッションでは公開から15年経った現在までのGo歩みを、ビルドシステムの変遷に焦点を当てながら辿っていきます。ここに至るまでにはサードパーティ製のツールや他言語のツールの影響も大きいため、これらについても必要に応じて触れていきます。また、これまでの歴史や現場を踏まえた上での、Goのビルドシステムの今後についても、プロポーザルをもとに解説します。
関連する内容として、Go製のプログラム自体のビルドだけでなく、そのアーティファクトをコンテナ化する際のビルドプロセスに関しても解説します。
セッションの大まかなセクションは次のような割り振りで進めていきます。各ツールや仕様ごとにどのような課題を解決しようとしたのか、解説しながらGoの歩みをビルドシステムの側面から振り返れるセッションとなります。
1. makefile
2. goinstall
3. go build
3.1 pkg.in
3.2 vendoring
3.3 gb
3.4 godep
4. go mod
4.1 バージョニング
5. module mirror & index (GOPROXY)
6. go workspace
7. go mod tools
また関連するビルドツールとして、koやgazelle(bazel)など、時間があれば紹介したいと考えています
Go Conference 2026 Sessionize Event Upcoming
PyCon Indonesia 2026 Sessionize Event
Yoshi Yamaguchi
Staff Developer Advocate at Grafana Labs
Yamanashi, Japan
Links
Actions
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top