mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 11:42:24 -05:00
[feature] Add a request ID and include it in logs (#1476)
This adds a lightweight form of tracing to GTS. Each incoming request is assigned a Request ID which we then pass on and log in all our log lines. Any function that gets called downstream from an HTTP handler should now emit a requestID=value pair whenever it logs something. Co-authored-by: kim <grufwub@gmail.com>
This commit is contained in:
parent
b5993095fa
commit
68e6d08c76
118 changed files with 813 additions and 591 deletions
|
|
@ -36,17 +36,18 @@ func (queryHook) BeforeQuery(ctx context.Context, _ *bun.QueryEvent) context.Con
|
|||
}
|
||||
|
||||
// AfterQuery logs the time taken to query, the operation (select, update, etc), and the query itself as translated by bun.
|
||||
func (queryHook) AfterQuery(_ context.Context, event *bun.QueryEvent) {
|
||||
func (queryHook) AfterQuery(ctx context.Context, event *bun.QueryEvent) {
|
||||
// Get the DB query duration
|
||||
dur := time.Since(event.StartTime)
|
||||
|
||||
switch {
|
||||
// Warn on slow database queries
|
||||
case dur > time.Second:
|
||||
log.WithFields(kv.Fields{
|
||||
{"duration", dur},
|
||||
{"query", event.Query},
|
||||
}...).Warn("SLOW DATABASE QUERY")
|
||||
log.WithContext(ctx).
|
||||
WithFields(kv.Fields{
|
||||
{"duration", dur},
|
||||
{"query", event.Query},
|
||||
}...).Warn("SLOW DATABASE QUERY")
|
||||
|
||||
// On trace, we log query information,
|
||||
// manually crafting so DB query not escaped.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue