Use when investigating latency, throughput, error rate, or concurrency of any Storj Go service (satellite, storagenode, gateway, linksharing, etc.), comparing performance across pods/nodes/regions, finding which Go functions are instrumented, or interpreting monkit `function` / `function_times` series from Thanos/Prometheus.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
Use when investigating latency, throughput, error rate, or concurrency of any Storj Go service (satellite, storagenode, gateway, linksharing, etc.), comparing performance across pods/nodes/regions, finding which Go functions are instrumented, or interpreting monkit `function` / `function_times` series from Thanos/Prometheus.
Monkit Prometheus Metrics
Overview
Monkit (defer mon.Task()(&ctx)(&err)) emits two metrics for every instrumented Go method:
function_times — latency (percentiles, min/max, recent samples). Use for "how slow?"
function — call counters and concurrency. Use for "how often?" / "how many in flight?" / "how many fail?"
Both share the same name, scope, and environment labels, so you usually query them with the same filter set.
sum by (environment_name) (
rate(function{
name="__Endpoint__CommitObject",
scope="storj_io_storj_satellite_metainfo",
field="successes"
}[5m])
)
Naming Convention
Go code
name label
func (e *Endpoint) CommitObject(...)
__Endpoint__CommitObject
func commitObject(...) (package-level)
commitObject
func (s *SpannerAdapter) CommitObject(...)
__SpannerAdapter__CommitObject
Same name, different scope
The same name can appear under multiple scope values. Example: __Endpoint__CommitObject lives in storj_io_storj_satellite_metainfo (the handler), and the RPC wrapper for the same call shows up as _metainfo_Metainfo_CommitObject in storj_io_common_rpc_rpctracing. Always include scope (or scope=~"...") when comparing or you will mix unrelated timings.
Note: Storj scopes double — storj_io_storj_satellite_metainfo — because the import path is storj.io/storj/.... Expected.
Finding Instrumented Methods
Methods with defer mon.Task()(&ctx)(&err) emit metrics: