observability

package
v1.9.0 Latest Latest
Warning

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

Go to latest
Published: Nov 3, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package observability provides a metrics extension for Ledger that records lifecycle event counts via go-utils MetricFactory.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Counter

type Counter interface {
	Inc()
	Add(float64)
}

Counter interface for metric counters.

type Histogram

type Histogram interface {
	Observe(float64)
}

Histogram interface for metric histograms.

type MetricFactory

type MetricFactory interface {
	Counter(name string) Counter
	Histogram(name string) Histogram
}

MetricFactory creates metrics.

type MetricsExtension

type MetricsExtension struct {

	// Plan metrics
	PlanCreated  Counter
	PlanUpdated  Counter
	PlanArchived Counter

	// Subscription metrics
	SubscriptionCreated    Counter
	SubscriptionUpgraded   Counter
	SubscriptionDowngraded Counter
	SubscriptionCanceled   Counter
	SubscriptionExpired    Counter
	// The lifecycle clock's transitions, and scheduled cancels, which
	// SubscriptionCanceled no longer counts: it counts cancels that took
	// effect.
	SubscriptionRenewed         Counter
	SubscriptionTrialEnded      Counter
	SubscriptionCancelScheduled Counter

	// Usage metrics
	UsageEventsIngested Counter
	UsageBatchSize      Histogram
	UsageFlushLatency   Histogram

	// Entitlement metrics
	EntitlementChecks      Counter
	EntitlementCacheHits   Counter
	EntitlementCacheMisses Counter
	EntitlementDenied      Counter
	EntitlementLatency     Histogram

	// Invoice metrics
	InvoiceGenerated Counter
	InvoiceFinalized Counter
	InvoicePaid      Counter
	InvoiceVoided    Counter
	InvoicePastDue   Counter
	InvoiceTotal     Histogram

	// Provider metrics
	ProviderSyncSuccess Counter
	ProviderSyncFailure Counter
	WebhookReceived     Counter
	WebhookProcessed    Counter

	// Error metrics
	StoreErrors  Counter
	PluginErrors Counter
	// contains filtered or unexported fields
}

MetricsExtension records system-wide lifecycle metrics. Register it as a Ledger plugin to automatically track billing metrics.

func NewMetricsExtension

func NewMetricsExtension(factory MetricFactory) *MetricsExtension

NewMetricsExtension creates a MetricsExtension with the provided MetricFactory. Use app.Metrics() in forge extensions.

func (*MetricsExtension) Name

func (m *MetricsExtension) Name() string

Name implements plugin.Plugin.

func (*MetricsExtension) OnEntitlementChecked

func (m *MetricsExtension) OnEntitlementChecked(_ context.Context, _ interface{}) error

OnEntitlementChecked implements plugin.OnEntitlementChecked.

func (*MetricsExtension) OnInit

func (m *MetricsExtension) OnInit(_ context.Context, _ interface{}) error

OnInit implements plugin.OnInit.

func (*MetricsExtension) OnInvoiceFinalized

func (m *MetricsExtension) OnInvoiceFinalized(_ context.Context, _ interface{}) error

OnInvoiceFinalized implements plugin.OnInvoiceFinalized.

func (*MetricsExtension) OnInvoiceGenerated

func (m *MetricsExtension) OnInvoiceGenerated(_ context.Context, _ interface{}) error

OnInvoiceGenerated implements plugin.OnInvoiceGenerated.

func (*MetricsExtension) OnInvoicePaid

func (m *MetricsExtension) OnInvoicePaid(_ context.Context, _ interface{}) error

OnInvoicePaid implements plugin.OnInvoicePaid.

func (*MetricsExtension) OnInvoicePastDue

func (m *MetricsExtension) OnInvoicePastDue(_ context.Context, _ interface{}) error

OnInvoicePastDue implements plugin.OnInvoicePastDue.

func (*MetricsExtension) OnPlanArchived

func (m *MetricsExtension) OnPlanArchived(_ context.Context, _ string) error

OnPlanArchived implements plugin.OnPlanArchived.

func (*MetricsExtension) OnPlanCreated

func (m *MetricsExtension) OnPlanCreated(_ context.Context, _ interface{}) error

OnPlanCreated implements plugin.OnPlanCreated.

func (*MetricsExtension) OnPlanUpdated

func (m *MetricsExtension) OnPlanUpdated(_ context.Context, _, _ interface{}) error

OnPlanUpdated implements plugin.OnPlanUpdated.

func (*MetricsExtension) OnProviderSync

func (m *MetricsExtension) OnProviderSync(_ context.Context, _ string, success bool, _ error) error

OnProviderSync implements plugin.OnProviderSync.

func (*MetricsExtension) OnQuotaExceeded

func (m *MetricsExtension) OnQuotaExceeded(_ context.Context, _, _ string, _, _ int64) error

OnQuotaExceeded implements plugin.OnQuotaExceeded.

func (*MetricsExtension) OnSubscriptionCancelScheduled

func (m *MetricsExtension) OnSubscriptionCancelScheduled(_ context.Context, _ interface{}) error

OnSubscriptionCancelScheduled implements plugin.OnSubscriptionCancelScheduled.

func (*MetricsExtension) OnSubscriptionCanceled

func (m *MetricsExtension) OnSubscriptionCanceled(_ context.Context, _ interface{}) error

OnSubscriptionCanceled implements plugin.OnSubscriptionCanceled.

func (*MetricsExtension) OnSubscriptionChanged

func (m *MetricsExtension) OnSubscriptionChanged(_ context.Context, _, _, _ interface{}) error

OnSubscriptionChanged implements plugin.OnSubscriptionChanged.

func (*MetricsExtension) OnSubscriptionCreated

func (m *MetricsExtension) OnSubscriptionCreated(_ context.Context, _ interface{}) error

OnSubscriptionCreated implements plugin.OnSubscriptionCreated.

func (*MetricsExtension) OnSubscriptionExpired

func (m *MetricsExtension) OnSubscriptionExpired(_ context.Context, _ interface{}) error

OnSubscriptionExpired implements plugin.OnSubscriptionExpired.

func (*MetricsExtension) OnSubscriptionRenewed

func (m *MetricsExtension) OnSubscriptionRenewed(_ context.Context, _ interface{}) error

OnSubscriptionRenewed implements plugin.OnSubscriptionRenewed: one count per move, however many periods it ended.

func (*MetricsExtension) OnSubscriptionTrialEnded

func (m *MetricsExtension) OnSubscriptionTrialEnded(_ context.Context, _ interface{}) error

OnSubscriptionTrialEnded implements plugin.OnSubscriptionTrialEnded.

func (*MetricsExtension) OnUsageFlushed

func (m *MetricsExtension) OnUsageFlushed(_ context.Context, _ int, elapsed time.Duration) error

OnUsageFlushed implements plugin.OnUsageFlushed.

func (*MetricsExtension) OnUsageIngested

func (m *MetricsExtension) OnUsageIngested(_ context.Context, events []interface{}) error

OnUsageIngested implements plugin.OnUsageIngested.

Jump to

Keyboard shortcuts

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