Files
tasks/service/matching/pri_metrics_handler.go
zeekay 5a601d081b rebrand: go.temporal.io/server -> github.com/hanzoai/tasks
Full module path rebrand from Temporal to Hanzo Tasks:
- go.mod module: github.com/hanzoai/tasks
- All internal Go imports updated (1906 files)
- cmd/server renamed to cmd/tasksd
- Binary name: tasksd (was temporal-server)
- Docker images: hanzoai/tasks (was temporalio/server)
- README rewritten with Hanzo Tasks branding
- LLM.md created with integration notes
- Makefile, goreleaser, CI workflows updated
- go.temporal.io/sdk and go.temporal.io/api imports preserved (separate repos)

Fork of Temporal.io (MIT license).
2026-03-19 10:36:40 -07:00

148 lines
3.7 KiB
Go

// nolint:forbidigo,panic // panic for unused metric handler methods
package matching
import (
"time"
"github.com/hanzoai/tasks/common/log"
"github.com/hanzoai/tasks/common/metrics"
)
type (
priMetricHandler struct {
handler metrics.Handler
}
priMetricsTimer struct {
name string
handler metrics.Handler
}
priMetricsCounter struct {
name string
handler metrics.Handler
}
priMetricsGauge struct {
name string
handler metrics.Handler
}
fairMetricHandler struct {
handler metrics.Handler
}
fairMetricsTimer struct {
name string
handler metrics.Handler
}
fairMetricsCounter struct {
name string
handler metrics.Handler
}
fairMetricsGauge struct {
name string
handler metrics.Handler
}
)
// TODO(pri): cleanup; delete this
func newPriMetricsHandler(handler metrics.Handler) priMetricHandler {
return priMetricHandler{
handler: handler,
}
}
func (p priMetricHandler) Stop(logger log.Logger) {
p.handler.Stop(logger)
}
func (p priMetricHandler) Counter(name string) metrics.CounterIface {
return priMetricsCounter{name: name, handler: p.handler}
}
func (p priMetricHandler) Timer(name string) metrics.TimerIface {
return priMetricsTimer{name: name, handler: p.handler}
}
func (p priMetricHandler) Gauge(name string) metrics.GaugeIface {
return priMetricsGauge{name: name, handler: p.handler}
}
func (p priMetricHandler) WithTags(...metrics.Tag) metrics.Handler {
panic("not implemented")
}
func (p priMetricHandler) Histogram(string, metrics.MetricUnit) metrics.HistogramIface {
panic("not implemented")
}
func (p priMetricHandler) StartBatch(string) metrics.BatchHandler {
panic("not implemented")
}
func (c priMetricsCounter) Record(i int64, tag ...metrics.Tag) {
c.handler.Counter(c.name).Record(i, tag...)
c.handler.Counter(withPriPrefix(c.name)).Record(i, tag...)
}
func (t priMetricsTimer) Record(duration time.Duration, tag ...metrics.Tag) {
t.handler.Timer(t.name).Record(duration, tag...)
t.handler.Timer(withPriPrefix(t.name)).Record(duration, tag...)
}
func (t priMetricsGauge) Record(v float64, tag ...metrics.Tag) {
t.handler.Gauge(t.name).Record(v, tag...)
t.handler.Gauge(withPriPrefix(t.name)).Record(v, tag...)
}
func withPriPrefix(name string) string {
return "pri_" + name
}
func newFairMetricsHandler(handler metrics.Handler) fairMetricHandler {
return fairMetricHandler{
handler: handler,
}
}
func (p fairMetricHandler) Stop(logger log.Logger) {
p.handler.Stop(logger)
}
func (p fairMetricHandler) Counter(name string) metrics.CounterIface {
return fairMetricsCounter{name: name, handler: p.handler}
}
func (p fairMetricHandler) Timer(name string) metrics.TimerIface {
return fairMetricsTimer{name: name, handler: p.handler}
}
func (p fairMetricHandler) Gauge(name string) metrics.GaugeIface {
return fairMetricsGauge{name: name, handler: p.handler}
}
func (p fairMetricHandler) WithTags(...metrics.Tag) metrics.Handler {
panic("not implemented")
}
func (p fairMetricHandler) Histogram(string, metrics.MetricUnit) metrics.HistogramIface {
panic("not implemented")
}
func (p fairMetricHandler) StartBatch(string) metrics.BatchHandler {
panic("not implemented")
}
func (c fairMetricsCounter) Record(i int64, tag ...metrics.Tag) {
c.handler.Counter(c.name).Record(i, tag...)
c.handler.Counter(withFairPrefix(c.name)).Record(i, tag...)
}
func (t fairMetricsTimer) Record(duration time.Duration, tag ...metrics.Tag) {
t.handler.Timer(t.name).Record(duration, tag...)
t.handler.Timer(withFairPrefix(t.name)).Record(duration, tag...)
}
func (t fairMetricsGauge) Record(v float64, tag ...metrics.Tag) {
t.handler.Gauge(t.name).Record(v, tag...)
t.handler.Gauge(withFairPrefix(t.name)).Record(v, tag...)
}
func withFairPrefix(name string) string {
return "fair_" + name
}