Documentation
¶
Overview ¶
Package prometheus provides Prometheus metrics integration for the Basecamp SDK.
It implements the basecamp.Hooks interface to expose standard HTTP client metrics in Prometheus format.
Usage ¶
import (
"github.com/basecamp/basecamp-sdk/go/pkg/basecamp"
basecampprom "github.com/basecamp/basecamp-sdk/go/pkg/basecamp/prometheus"
"github.com/prometheus/client_golang/prometheus"
)
hooks := basecampprom.NewHooks(prometheus.DefaultRegisterer)
client := basecamp.NewClient(cfg, tokenProvider, basecamp.WithHooks(hooks))
Index ¶
- type Hooks
- func (h *Hooks) OnOperationEnd(ctx context.Context, op basecamp.OperationInfo, err error, ...)
- func (h *Hooks) OnOperationStart(ctx context.Context, op basecamp.OperationInfo) context.Context
- func (h *Hooks) OnRequestEnd(ctx context.Context, info basecamp.RequestInfo, result basecamp.RequestResult)
- func (h *Hooks) OnRequestStart(ctx context.Context, info basecamp.RequestInfo) context.Context
- func (h *Hooks) OnRetry(ctx context.Context, info basecamp.RequestInfo, attempt int, err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Hooks ¶
type Hooks struct {
// contains filtered or unexported fields
}
Hooks implements basecamp.Hooks using Prometheus metrics.
func NewHooks ¶
func NewHooks(registerer prometheus.Registerer) *Hooks
NewHooks creates a new Prometheus-based Hooks implementation. The registerer is used to register the metrics. Use prometheus.DefaultRegisterer for the global registry, or pass a custom registry for testing. Returns nil if registerer is nil.
func (*Hooks) OnOperationEnd ¶
func (h *Hooks) OnOperationEnd(ctx context.Context, op basecamp.OperationInfo, err error, duration time.Duration)
OnOperationEnd records metrics for a completed SDK operation.
func (*Hooks) OnOperationStart ¶
OnOperationStart is called when a semantic SDK operation begins. Returns the context unchanged as Prometheus hooks don't need to track state.
func (*Hooks) OnRequestEnd ¶
func (h *Hooks) OnRequestEnd(ctx context.Context, info basecamp.RequestInfo, result basecamp.RequestResult)
OnRequestEnd records HTTP-level metrics for a completed request. Operation-level metrics are recorded in OnOperationEnd.
func (*Hooks) OnRequestStart ¶
OnRequestStart is called before an HTTP request is sent. Returns the context unchanged as no pre-processing is needed.