Fix Production Bugs Quickly - The Power of Structured Logging in Ruby on Rails - Warsaw Ruby Conference 2024
synapticmishap
175 views
199 slides
Jul 16, 2024
Slide 1 of 199
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
About This Presentation
Rails apps can be a black box. Have you ever tried to fix a bug where you just can’t understand what’s going on? This talk will give you practical steps to improve the observability of your Rails app, taking the time to understand and fix defects from hours or days to minutes. Rails 8 will bring...
Rails apps can be a black box. Have you ever tried to fix a bug where you just can’t understand what’s going on? This talk will give you practical steps to improve the observability of your Rails app, taking the time to understand and fix defects from hours or days to minutes. Rails 8 will bring an exciting new feature: built-in structured logging. This talk will delve into the transformative impact of structured logging on fixing bugs and saving engineers time. Structured logging, as a cornerstone of observability, offers a powerful way to handle logs compared to traditional text-based logs. This session will guide you through the nuances of structured logging in Rails, demonstrating how it can be used to gain better insights into your application’s behavior. This talk will be a practical, technical deep dive into how to make structured logging work with an existing Rails app.
I talk about the Steps to Observable Software - a practical five step process for improving the observability of your Rails app.
Size: 8.71 MB
Language: en
Added: Jul 16, 2024
Slides: 199 pages
Slide Content
Fix Production
Bugs Quickly
The Power Of Structured
Logging In Rails
Based on a true story.
Based on a true story.
* Names have been changed to
protect the innocent
??????
??????
??????
Two Months Later
??????
??????
Vicious Cycle
How often do you encounter issues where you lack visibility
into your application's performance or errors?
How often do you encounter issues where you lack visibility
into your application's performance or errors?
??????
????????????
????????????
??????
????????????
????????????
The problem isn't you.
You're not alone.
You Want Answered
Question
Why are password reset
emails not being sent?
You Want AnsweredQuestion
Failing?
Timed Out?
Delayed?
You Want AnsweredQuestion
Failing?
Timed Out?
Delayed?
You Want AnsweredQuestion
Failing?
Timed Out?
Delayed?
You Want AnsweredQuestion
Which jobs are taking time in
within_five_minutes queue?
You Want AnsweredQuestion
Data To Collect
Decide
Event
Filter By
Group By
Values Of
Data To CollectDecide
Event
Filter By
Group By
Values Of
Job Performed
Data To CollectDecide
Event
Filter By
Group By
Values Of
Job Performed
Job Queue
Data To CollectDecide
Event
Filter By
Group By
Values Of
Job Performed
Job Queue
Job Class
Data To CollectDecide
Event
Filter By
Group By
Values Of
Job Performed
Job Queue
Job Class
Duration
Data To CollectDecide
Instrumentation
Build
InstrumentationBuild
1. Data type (Traces, Logs, Metrics)
2. Plain Text vs Structured
3. Logging Library
4. Customise
InstrumentationBuild
Traces
vs
Logs
vs
Metrics
InstrumentationBuild
Traces
vs
Logs
vs
Metrics
InstrumentationBuild
Plain Text Logs
vs
Structured Logs
InstrumentationBuild
Plain Text Logs
vs
Structured Logs
InstrumentationBuild
Library Payload Rails Docs Mature
fluentd
lograge
logging
contextual_logger
semantic_logger
dry-logger
Thank you to all authors of these gems for your hard work!
InstrumentationBuild
Library Payload Rails Docs Mature
fluentd ❌ ✅ ❌ ✅
lograge ❌ ✅ ❌ ✅
logging ❌ ❌ ❌ ❌
contextual_logger ✅ ✅ ❌ ❌
semantic_logger ✅ ✅ ✅ ✅
dry-logger ✅ ❌ ✅ ❌
Thank you to all authors of these gems for your hard work!
InstrumentationBuild
Library Payload Rails Docs Mature
fluentd ❌ ✅ ❌ ✅
lograge ❌ ✅ ❌ ✅
logging ❌ ❌ ❌ ❌
contextual_logger ✅ ✅ ❌ ❌
semantic_logger ✅ ✅ ✅ ✅
dry-logger ✅ ❌ ✅ ❌
Thank you to all authors of these gems for your hard work!