prometheus

package
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2026 License: MIT Imports: 4 Imported by: 0

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

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

func (h *Hooks) OnOperationStart(ctx context.Context, op basecamp.OperationInfo) context.Context

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

func (h *Hooks) OnRequestStart(ctx context.Context, info basecamp.RequestInfo) context.Context

OnRequestStart is called before an HTTP request is sent. Returns the context unchanged as no pre-processing is needed.

func (*Hooks) OnRetry

func (h *Hooks) OnRetry(ctx context.Context, info basecamp.RequestInfo, attempt int, err error)

OnRetry records a retry attempt.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL