~/talk

Workshop 3

Talkat CakeFest 2024 · 2024-07-24..07-26· [observability, php]
slides:none on file

Shows concrete instrumentation: installs the OpenTelemetry PHP extension via PECL, configures HTTP/JSON export to Jaeger, and then switches to Sentry using a Sentry DSN to send traces. Builds a Cake middleware that starts a transaction (root span), a custom query logger that turns parameterized SQL and timings into child spans, and HTTP-client event hooks that record external API 400ms calls. Observes single-span examples ~4ms and aggregated P95 ~21ms, uses the eximer sampling profiler at ~10ms sampling (profiles currently capped at 30s), and flushes telemetry in the server_terminate event so sending does not slow the client.

AI-written summary · about

  1. 0:00Introduction and background
  2. 1:04What is observability
  3. 2:13OpenTelemetry introduction
  4. 3:17Setting up a CakePHP app
  5. 4:43Zero-code instrumentation
  6. 7:13Running Jaeger for traces
  7. 7:55Installing OpenTelemetry dependencies
  8. 9:01Viewing first trace in Jaeger
  9. 10:30How auto-instrumentation works
  10. 13:09Adding custom spans
  11. 18:42Switching to Sentry for demo
  12. 19:52Sentry PHP SDK overview
  13. 21:07Middleware-based tracing
  14. 24:05Configuring Sentry SDK
  15. 28:19Transactions vs spans
  16. 31:13Enabling tracing in Sentry
  17. 34:03Setting precise transaction start
  18. 36:26Improving transaction naming
  19. 37:32Distributed tracing concept
  20. 39:26Updating transaction name dynamically
  21. 40:30Measuring bootstrap time
  22. 43:09Database query tracing
  23. 44:54Break time announcement
  24. 45:15Sentry self-hosting options
  25. 46:19Precise timing with start/end stamps
  26. 48:09Tracing HTTP client calls
  27. 51:32Creating custom query logger
  28. 57:28Query logger implementation
  29. 1:01:41Viewing database spans in Sentry
  30. 1:02:57Aggregating query performance
  31. 1:06:19Tracing third-party API calls
  32. 1:17:34Enhancing HTTP client spans
  33. 1:21:50Event-based tracing in CakePHP
  34. 1:22:12Error reporting with Sentry
  35. 1:23:36Custom error logger setup
  36. 1:28:46User context in error reporting
  37. 1:31:20Profiling introduction
  38. 1:32:25Deterministic vs sampling profilers
  39. 1:35:21Setting up Eximer profiler
  40. 1:36:25Viewing profiling data
  41. 1:40:46Real-world profiling example
  42. 1:43:37Flame graph aggregation
  43. 1:46:49Sending profiling data to Sentry
  44. 1:47:53Using Relay for performance
  45. 1:49:01Server terminate event in CakePHP
  46. 1:52:32Metrics introduction
  47. 1:53:36Recording custom metrics
  48. 1:56:16Flushing metrics in terminate
  49. 1:57:35Viewing metrics in Sentry
  50. 1:59:07Alerting and anomaly detection
  51. 2:01:00Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.