+5
bgs/bgs.go
+5
bgs/bgs.go
···
876
876
repoCommitsReceivedCounter.WithLabelValues(host.Host).Add(1)
877
877
evt := env.RepoCommit
878
878
log.Debugw("bgs got repo append event", "seq", evt.Seq, "pdsHost", host.Host, "repo", evt.Repo)
879
+
880
+
s := time.Now()
879
881
u, err := bgs.lookupUserByDid(ctx, evt.Repo)
882
+
userLookupDuration.Observe(time.Since(s).Seconds())
880
883
if err != nil {
881
884
if !errors.Is(err, gorm.ErrRecordNotFound) {
882
885
return fmt.Errorf("looking up event user: %w", err)
883
886
}
884
887
885
888
newUsersDiscovered.Inc()
889
+
start := time.Now()
886
890
subj, err := bgs.createExternalUser(ctx, evt.Repo)
891
+
newUserDiscoveryDuration.Observe(time.Since(start).Seconds())
887
892
if err != nil {
888
893
return fmt.Errorf("fed event create external user: %w", err)
889
894
}
+12
bgs/metrics.go
+12
bgs/metrics.go
···
81
81
Buckets: prometheus.ExponentialBuckets(100, 10, 8),
82
82
}, []string{"code", "method", "path"})
83
83
84
+
var userLookupDuration = promauto.NewHistogram(prometheus.HistogramOpts{
85
+
Name: "relay_user_lookup_duration",
86
+
Help: "A histogram of user lookup latencies",
87
+
Buckets: prometheus.ExponentialBuckets(0.001, 2, 15),
88
+
})
89
+
90
+
var newUserDiscoveryDuration = promauto.NewHistogram(prometheus.HistogramOpts{
91
+
Name: "relay_new_user_discovery_duration",
92
+
Help: "A histogram of new user discovery latencies",
93
+
Buckets: prometheus.ExponentialBuckets(0.001, 2, 15),
94
+
})
95
+
84
96
// MetricsMiddleware defines handler function for metrics middleware
85
97
func MetricsMiddleware(next echo.HandlerFunc) echo.HandlerFunc {
86
98
return func(c echo.Context) error {
+6
did/metrics.go
+6
did/metrics.go
···
9
9
Name: "multiresolver_resolved_dids_total",
10
10
Help: "Total number of DIDs resolved",
11
11
}, []string{"resolver"})
12
+
13
+
var mrResolveDuration = promauto.NewHistogramVec(prometheus.HistogramOpts{
14
+
Name: "indigo_multiresolver_resolve_duration",
15
+
Help: "A histogram of resolve latencies",
16
+
Buckets: prometheus.ExponentialBuckets(0.001, 2, 15),
17
+
}, []string{"resolver"})
+6
did/multi.go
+6
did/multi.go
···
3
3
import (
4
4
"context"
5
5
"fmt"
6
+
"time"
6
7
7
8
"github.com/whyrusleeping/go-did"
8
9
)
···
43
44
}
44
45
45
46
func (mr *MultiResolver) GetDocument(ctx context.Context, didstr string) (*did.Document, error) {
47
+
s := time.Now()
48
+
defer func() {
49
+
mrResolveDuration.WithLabelValues(didstr).Observe(time.Since(s).Seconds())
50
+
}()
51
+
46
52
pdid, err := did.ParseDID(didstr)
47
53
if err != nil {
48
54
return nil, err
+18
repomgr/metrics.go
+18
repomgr/metrics.go
···
9
9
Name: "repomgr_repo_ops_imported",
10
10
Help: "Number of repo ops imported",
11
11
})
12
+
13
+
var openAndSigCheckDuration = promauto.NewHistogram(prometheus.HistogramOpts{
14
+
Name: "repomgr_open_and_sig_check_duration",
15
+
Help: "Duration of opening and signature check",
16
+
Buckets: prometheus.ExponentialBuckets(0.001, 2, 15),
17
+
})
18
+
19
+
var calcDiffDuration = promauto.NewHistogram(prometheus.HistogramOpts{
20
+
Name: "repomgr_calc_diff_duration",
21
+
Help: "Duration of calculating diff",
22
+
Buckets: prometheus.ExponentialBuckets(0.001, 2, 15),
23
+
})
24
+
25
+
var writeCarSliceDuration = promauto.NewHistogram(prometheus.HistogramOpts{
26
+
Name: "repomgr_write_car_slice_duration",
27
+
Help: "Duration of writing car slice",
28
+
Buckets: prometheus.ExponentialBuckets(0.001, 2, 15),
29
+
})
+7
-1
repomgr/repomgr.go
+7
-1
repomgr/repomgr.go
···
8
8
"io"
9
9
"strings"
10
10
"sync"
11
+
"time"
11
12
12
13
atproto "github.com/bluesky-social/indigo/api/atproto"
13
14
bsky "github.com/bluesky-social/indigo/api/bsky"
···
538
539
unlock := rm.lockUser(ctx, uid)
539
540
defer unlock()
540
541
542
+
start := time.Now()
541
543
root, ds, err := rm.cs.ImportSlice(ctx, uid, since, carslice)
542
544
if err != nil {
543
545
return fmt.Errorf("importing external carslice: %w", err)
···
551
553
if err := rm.CheckRepoSig(ctx, r, did); err != nil {
552
554
return err
553
555
}
556
+
openAndSigCheckDuration.Observe(time.Since(start).Seconds())
554
557
555
558
var skipcids map[cid.Cid]bool
556
559
if ds.BaseCid().Defined() {
···
571
574
}
572
575
}
573
576
577
+
start = time.Now()
574
578
if err := ds.CalcDiff(ctx, skipcids); err != nil {
575
579
return fmt.Errorf("failed while calculating mst diff (since=%v): %w", since, err)
576
-
577
580
}
581
+
calcDiffDuration.Observe(time.Since(start).Seconds())
578
582
579
583
evtops := make([]RepoOp, 0, len(ops))
580
584
···
631
635
}
632
636
}
633
637
638
+
start = time.Now()
634
639
rslice, err := ds.CloseWithRoot(ctx, root, nrev)
635
640
if err != nil {
636
641
return fmt.Errorf("close with root: %w", err)
637
642
}
643
+
writeCarSliceDuration.Observe(time.Since(start).Seconds())
638
644
639
645
if rm.events != nil {
640
646
rm.events(ctx, &RepoEvent{