Add gRPC observability: logging, metrics, recovery interceptors
This commit is contained in:
@@ -3,6 +3,8 @@ package indexer
|
||||
import (
|
||||
"encoding/xml"
|
||||
|
||||
"github.com/rs/zerolog/log"
|
||||
|
||||
pb "homelab.lan/music-agregator/gen/music_agregator/indexer/v1"
|
||||
"homelab.lan/music-agregator/internal/tracker/rutracker"
|
||||
)
|
||||
@@ -46,8 +48,25 @@ var (
|
||||
|
||||
func (sr *SearchResult) ToProto() *pb.SearchResponse {
|
||||
var pbItems []*pb.SearchItem
|
||||
var skipped int
|
||||
|
||||
for _, item := range sr.Items {
|
||||
release := rutrackerParserFactory.GetParser(item.Categories).Parse(item.Title)
|
||||
|
||||
log.Trace().
|
||||
Str("tracker", item.JackettIndexer.ID).
|
||||
Str("title", item.Title).
|
||||
Str("artist", release.Artist).
|
||||
Str("album", release.Album).
|
||||
Int("year", release.Year).
|
||||
Bool("parsed", release.ParsedSuccessfully).
|
||||
Msg("parsed item")
|
||||
|
||||
if !release.ParsedSuccessfully {
|
||||
skipped++
|
||||
continue
|
||||
}
|
||||
|
||||
pbAttrs := make([]*pb.TorznabAttr, len(item.TorznabAttrs))
|
||||
for j, attr := range item.TorznabAttrs {
|
||||
pbAttrs[j] = &pb.TorznabAttr{
|
||||
@@ -56,9 +75,6 @@ func (sr *SearchResult) ToProto() *pb.SearchResponse {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO add the check from what tracker the result is to properly get the parser and thus parse it
|
||||
release := rutrackerParserFactory.GetParser(item.Categories).Parse(item.Title)
|
||||
|
||||
pbItems = append(pbItems, &pb.SearchItem{
|
||||
Title: item.Title,
|
||||
DownloadLink: item.Link,
|
||||
@@ -77,6 +93,12 @@ func (sr *SearchResult) ToProto() *pb.SearchResponse {
|
||||
})
|
||||
}
|
||||
|
||||
log.Trace().
|
||||
Int("total", len(sr.Items)).
|
||||
Int("parsed", len(pbItems)).
|
||||
Int("skipped", skipped).
|
||||
Msg("conversion complete")
|
||||
|
||||
return &pb.SearchResponse{
|
||||
Result: pbItems,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user