Skip to content

Commit f757168

Browse files
committed
add BackendReuse tag
1 parent 9f5cca6 commit f757168

File tree

5 files changed

+45
-3
lines changed

5 files changed

+45
-3
lines changed

render/sequence.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ func addTransactionLogs(s *svgsequence.Sequence, ts vsl.TransactionSet, tx *vsl.
218218
s.AddStep(svgsequence.Step{
219219
Source: B, Target: B,
220220
Text: fmt.Sprintf(
221-
"%s: %s\n%s %s:%d",
221+
"%s\n%s\n%s %s:%d",
222222
record.GetTag(),
223223
truncateStrMiddle(record.Name, truncateLen),
224224
record.Reason,
@@ -231,14 +231,25 @@ func addTransactionLogs(s *svgsequence.Sequence, ts vsl.TransactionSet, tx *vsl.
231231
s.AddStep(svgsequence.Step{
232232
Source: B, Target: B,
233233
Text: fmt.Sprintf(
234-
"%s: %s\n%s %s",
234+
"%s\n%s\n%s %s",
235235
record.GetTag(),
236236
truncateStrMiddle(record.Name, truncateLen),
237237
record.Reason,
238238
record.OptionalReason,
239239
),
240240
})
241241

242+
// Old varnish versions
243+
case vsl.BackendReuseRecord:
244+
s.AddStep(svgsequence.Step{
245+
Source: B, Target: B,
246+
Text: fmt.Sprintf(
247+
"%s\n%s",
248+
record.GetTag(),
249+
truncateStrMiddle(record.Name, truncateLen),
250+
),
251+
})
252+
242253
case vsl.FetchErrorRecord:
243254
s.AddStep(svgsequence.Step{Source: B, Target: B, Text: wrapAndTruncate(record.GetRawValue(), truncateLen, 100), Color: ColorError})
244255

render/timeline.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ func Timeline(ts vsl.TransactionSet, root *vsl.Transaction, precision, numTicks
133133
func collectAndSortRecords(ts vsl.TransactionSet, tx *vsl.Transaction, visited map[vsl.VXID]bool) (events []TimelineEvent) {
134134
if visited[tx.VXID] {
135135
slog.Info("collectAndSortRecords(): loop detected", "txid", tx.TXID)
136-
return
136+
return events
137137
}
138138
visited[tx.VXID] = true
139139

vsl/parser.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,8 @@ func processRecord(line string) (Record, error) {
236236
return NewBackendStartRecord(blr)
237237
case tags.BackendClose:
238238
return NewBackendCloseRecord(blr)
239+
case tags.BackendReuse:
240+
return NewBackendReuseRecord(blr)
239241
case tags.ReqAcct, tags.BereqAcct:
240242
return NewAcctRecord(blr)
241243
case tags.PipeAcct:

vsl/records.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,33 @@ func NewBackendCloseRecord(blr BaseRecord) (BackendCloseRecord, error) {
360360
}, nil
361361
}
362362

363+
// BackendReuseRecord holds information about a backend reuse (keep-alive)
364+
//
365+
// Note that this record was deprecated in favor of BackendClose
366+
type BackendReuseRecord struct {
367+
BaseRecord
368+
FileDescriptor int // Connection file descriptor
369+
Name string // Backend display name
370+
}
371+
372+
func NewBackendReuseRecord(blr BaseRecord) (BackendReuseRecord, error) {
373+
record := BackendReuseRecord{BaseRecord: blr}
374+
375+
parts := strings.Fields(blr.GetRawValue())
376+
if len(parts) < 2 {
377+
return record, nil
378+
}
379+
380+
fileDesc, err := strconv.Atoi(parts[0])
381+
if err != nil {
382+
return record, nil
383+
}
384+
385+
record.FileDescriptor = fileDesc
386+
record.Name = parts[1]
387+
return record, nil
388+
}
389+
363390
// AcctRecord holds accounting information for ReqAcct and BereqAcct tags
364391
type AcctRecord struct {
365392
BaseRecord

vsl/tags/tags.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ const (
4242
BackendOpen = "BackendOpen"
4343
// Logged when a backend connection is started
4444
BackendStart = "BackendStart"
45+
// Logged when a backend connection is reused (keep-alive)
46+
BackendReuse = "BackendReuse"
4547
// Contains byte counters from backend request processing
4648
BereqAcct = "BereqAcct"
4749
// Backend request method

0 commit comments

Comments
 (0)