forked from sourcegraph/sourcegraph-public-snapshot
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathobservability.go
More file actions
123 lines (100 loc) · 4.16 KB
/
observability.go
File metadata and controls
123 lines (100 loc) · 4.16 KB
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
package uploads
import (
"fmt"
"github.com/prometheus/client_golang/prometheus"
"github.com/sourcegraph/sourcegraph/internal/honey"
"github.com/sourcegraph/sourcegraph/internal/metrics"
"github.com/sourcegraph/sourcegraph/internal/observation"
)
type operations struct {
// Commits
getCommitsVisibleToUpload *observation.Operation
getCommitGraphMetadata *observation.Operation
// Repositories
getRepoName *observation.Operation
getRepositoriesForIndexScan *observation.Operation
getDirtyRepositories *observation.Operation
getRecentUploadsSummary *observation.Operation
getLastUploadRetentionScanForRepository *observation.Operation
// Uploads
getUploads *observation.Operation
getUploadByID *observation.Operation
getUploadsByIDs *observation.Operation
getVisibleUploadsMatchingMonikers *observation.Operation
getUploadDocumentsForPath *observation.Operation
updateUploadsVisibleToCommits *observation.Operation
deleteUploadByID *observation.Operation
inferClosestUploads *observation.Operation
// Dumps
getDumpsWithDefinitionsForMonikers *observation.Operation
getDumpsByIDs *observation.Operation
// References
referencesForUpload *observation.Operation
// Audit Logs
getAuditLogsForUpload *observation.Operation
// Tags
getListTags *observation.Operation
// Worker metrics
uploadProcessor *observation.Operation
uploadSizeGuage prometheus.Gauge
}
func newOperations(observationContext *observation.Context) *operations {
m := metrics.NewREDMetrics(
observationContext.Registerer,
"codeintel_uploads",
metrics.WithLabels("op"),
metrics.WithCountHelp("Total number of method invocations."),
)
op := func(name string) *observation.Operation {
return observationContext.Operation(observation.Op{
Name: fmt.Sprintf("codeintel.uploads.%s", name),
MetricLabelValues: []string{name},
Metrics: m,
})
}
honeyObservationContext := *observationContext
honeyObservationContext.HoneyDataset = &honey.Dataset{Name: "codeintel-worker"}
uploadProcessor := honeyObservationContext.Operation(observation.Op{
Name: "codeintel.uploadHandler",
ErrorFilter: func(err error) observation.ErrorFilterBehaviour {
return observation.EmitForTraces | observation.EmitForHoney
},
})
uploadSizeGuage := prometheus.NewGauge(prometheus.GaugeOpts{
Name: "src_codeintel_upload_processor_upload_size",
Help: "The combined size of uploads being processed at this instant by this worker.",
})
observationContext.Registerer.MustRegister(uploadSizeGuage)
return &operations{
// Commits
getCommitsVisibleToUpload: op("GetCommitsVisibleToUpload"),
getCommitGraphMetadata: op("GetCommitGraphMetadata"),
// Repositories
getRepoName: op("GetRepoName"),
getRepositoriesForIndexScan: op("GetRepositoriesForIndexScan"),
getDirtyRepositories: op("GetDirtyRepositories"),
getRecentUploadsSummary: op("GetRecentUploadsSummary"),
getLastUploadRetentionScanForRepository: op("GetLastUploadRetentionScanForRepository"),
// Uploads
getUploads: op("GetUploads"),
getUploadByID: op("GetUploadByID"),
getUploadsByIDs: op("GetUploadsByIDs"),
getVisibleUploadsMatchingMonikers: op("GetVisibleUploadsMatchingMonikers"),
getUploadDocumentsForPath: op("GetUploadDocumentsForPath"),
updateUploadsVisibleToCommits: op("UpdateUploadsVisibleToCommits"),
deleteUploadByID: op("DeleteUploadByID"),
inferClosestUploads: op("InferClosestUploads"),
// Dumps
getDumpsWithDefinitionsForMonikers: op("GetDumpsWithDefinitionsForMonikers"),
getDumpsByIDs: op("GetDumpsByIDs"),
// References
referencesForUpload: op("ReferencesForUpload"),
// Audit Logs
getAuditLogsForUpload: op("GetAuditLogsForUpload"),
// Tags
getListTags: op("GetListTags"),
// Worker metrics
uploadProcessor: uploadProcessor,
uploadSizeGuage: uploadSizeGuage,
}
}