mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
Goes from 135 MB binary with 1153 files importing go.temporal.io and 224
importing google.golang.org/grpc to a 10 MB native binary with ZERO of
either.
Deleted:
- tasks/, tasktests/, service/, chasm/, client/, api/, proto/, tools/
- cmd/tools/, components/, docker/
- schema/{cassandra,elasticsearch,mysql,postgresql,sqlite}/
- 40 tainted common/ subdirs + 7 top-level common files
- tests/testutils (no longer referenced after surviving deps drop common)
New cmd/tasksd (~100 lines) boots tasks.Embed (zap.Node) + http.Server.
New pkg/tasks/embed.go registers ZAP handlers for the SDK opcode surface
(0x0060-0x00A5). Workflow handlers return a 501 "not yet implemented"
envelope; native engine lands behind this contract.
Build: go build ./cmd/tasksd → 10 MB
Vet: go vet ./... → clean
Boot: tasksd --zap-port 9999 --http :7243
Probes: /healthz, /v1/tasks/health → 200
UI: /_/tasks/, / → 200 (embedded Vite bundle)
ZAP: _tasks._tcp on :9999 (mDNS disabled; direct connect)
go.mod: tidy. No go.temporal.io. No google.golang.org/grpc.
81 lines
2.2 KiB
Go
81 lines
2.2 KiB
Go
package metrics
|
|
|
|
import (
|
|
"go.temporal.io/server/common/tqid"
|
|
)
|
|
|
|
const (
|
|
omitted = "__omitted__"
|
|
)
|
|
|
|
// GetPerTaskQueueFamilyScope returns "namespace" and "taskqueue" tags. "taskqueue" will be "__omitted__" if
|
|
// taskQueueBreakdown is false.
|
|
func GetPerTaskQueueFamilyScope(
|
|
handler Handler,
|
|
namespaceName string,
|
|
taskQueueFamily *tqid.TaskQueueFamily,
|
|
taskQueueBreakdown bool,
|
|
tags ...Tag,
|
|
) Handler {
|
|
metricTaskQueueName := omitted
|
|
if taskQueueBreakdown {
|
|
metricTaskQueueName = taskQueueFamily.Name()
|
|
}
|
|
|
|
tags = append(tags, NamespaceTag(namespaceName), UnsafeTaskQueueTag(metricTaskQueueName))
|
|
return handler.WithTags(tags...)
|
|
}
|
|
|
|
// GetPerTaskQueueScope returns GetPerTaskQueueFamilyScope plus the "task_type" tag.
|
|
func GetPerTaskQueueScope(
|
|
handler Handler,
|
|
namespaceName string,
|
|
taskQueue *tqid.TaskQueue,
|
|
taskQueueBreakdown bool,
|
|
tags ...Tag,
|
|
) Handler {
|
|
return GetPerTaskQueueFamilyScope(handler, namespaceName, taskQueue.Family(), taskQueueBreakdown,
|
|
append(tags, TaskQueueTypeTag(taskQueue.TaskType()))...)
|
|
}
|
|
|
|
// GetPerTaskQueuePartitionIDScope is similar to GetPerTaskQueuePartitionTypeScope, except that the partition tag will
|
|
// hold the normal partition ID if partitionIDBreakdown is true.
|
|
func GetPerTaskQueuePartitionIDScope(
|
|
handler Handler,
|
|
namespaceName string,
|
|
partition tqid.Partition,
|
|
taskQueueBreakdown bool,
|
|
partitionIDBreakdown bool,
|
|
tags ...Tag,
|
|
) Handler {
|
|
var value string
|
|
if partition == nil {
|
|
value = unknownValue
|
|
} else {
|
|
value = partition.MetricTag(partitionIDBreakdown)
|
|
}
|
|
|
|
return GetPerTaskQueueScope(handler, namespaceName, partition.TaskQueue(), taskQueueBreakdown,
|
|
append(tags, PartitionTag(value))...)
|
|
}
|
|
|
|
// GetPerTaskQueuePartitionTypeScope returns GetPerTaskQueueScope scope plus a "partition" tag which
|
|
// can be "__normal__", "__sticky__", "__worker_commands__", or "_unknown_".
|
|
func GetPerTaskQueuePartitionTypeScope(
|
|
handler Handler,
|
|
namespaceName string,
|
|
partition tqid.Partition,
|
|
taskQueueBreakdown bool,
|
|
tags ...Tag,
|
|
) Handler {
|
|
var value string
|
|
if partition == nil {
|
|
value = unknownValue
|
|
} else {
|
|
value = partition.MetricTag(false)
|
|
}
|
|
|
|
return GetPerTaskQueueScope(handler, namespaceName, partition.TaskQueue(), taskQueueBreakdown,
|
|
append(tags, PartitionTag(value))...)
|
|
}
|