Files
zeekay b9f9cdf918 feat: bump o11y fork to latest SigNoz — full re-sync, builds green (§4c retained)
Re-sync the entire SigNoz-derived Go tree to a clean fork of latest SigNoz
main (upstream 3e6339019), eliminating the version-skew that broke
`go build ./...` (mixed-era packages, ~14 imported-but-absent packages,
partial signoz->o11y / clickhouse->datastore rebrands, self-import cycle,
duplicate package decls).

- pkg/ + cmd/ wholesale replaced with latest SigNoz; imports rewritten
  github.com/SigNoz/signoz/ -> github.com/hanzoai/o11y/.
- Adopt SigNoz's CURRENT structure (resourcefilter->telemetryresourcefilter,
  integrationtypes->cloudintegrationtypes, roletypes/grammar/times folded in
  upstream); old paths dropped.
- Fork deps repathed to hanzoai + bumped: signoz-otel-collector v0.144.6,
  clickhouse-go-mock v0.14.1, govaluate v0.1.0; expr-lang/expr => hanzoai/expr
  v1.17.8 (replace). go.mod reconciled from latest SigNoz; go.sum re-tidied.
- ee/ + cmd/enterprise stripped — o11y stays MIT-only; community edition
  imports no ee packages.
- Preserved o11y additions: module path github.com/hanzoai/o11y, mount.go
  (cloud.Register/zip mount adapter, HIP-0106), NOTICE + LICENSE (SigNoz §4c
  attribution retained; upstream pkg files are headerless per SigNoz convention).
- Reverted o11y cosmetic renames (o11y*/datastore*) and experimental originals
  (authz/iamauthz, billing, zapreceiver, zapmetricreceiver) to SigNoz canonical
  to kill the skew; snapshots retained in git history for re-layering.

go build ./... = exit 0. go vet clean except benign "unreachable code" in
generated ANTLR parser files (inherited from upstream).
2026-07-02 14:20:32 -07:00

89 lines
2.2 KiB
Go

package errors
import (
"encoding/json"
"net/url"
"time"
)
type JSON struct {
Type string `json:"type" required:"true" nullable:"false"`
Code string `json:"code" required:"true" nullable:"false"`
Message string `json:"message" required:"true" nullable:"false"`
Url string `json:"url,omitempty" required:"false"`
Errors []responseerroradditional `json:"errors" required:"true" nullable:"false"`
Retry *responseretryjson `json:"retry,omitempty" required:"false"`
Suggestions []string `json:"suggestions" required:"true" nullable:"false"`
}
type responseretryjson struct {
Delay time.Duration `json:"delay" required:"true" nullable:"false"`
}
type responseerroradditional struct {
Message string `json:"message" required:"true" nullable:"false"`
Suggestions []string `json:"suggestions" required:"true" nullable:"false"`
}
func AsJSON(cause error) *JSON {
// See if this is an instance of the base error or not
t, c, m, _, u, a := Unwrapb(cause)
rea := responseAdditionals(a)
var retry *responseretryjson
if r := retryOf(cause); r != nil {
retry = &responseretryjson{Delay: r.delay}
}
return &JSON{
Type: t.String(),
Code: c.String(),
Message: m,
Url: u,
Errors: rea,
Retry: retry,
Suggestions: nonNilStrings(suggestionsOf(cause)),
}
}
func AsURLValues(cause error) url.Values {
// See if this is an instance of the base error or not
_, c, m, _, u, a := Unwrapb(cause)
rea := responseAdditionals(a)
errors, err := json.Marshal(rea)
if err != nil {
return url.Values{
"code": {c.String()},
"message": {m},
"url": {u},
}
}
return url.Values{
"code": {c.String()},
"message": {m},
"url": {u},
"errors": {string(errors)},
}
}
func responseAdditionals(a []additional) []responseerroradditional {
rea := make([]responseerroradditional, len(a))
for k, v := range a {
rea[k] = responseerroradditional{Message: v.message, Suggestions: nonNilStrings(v.suggestions)}
}
return rea
}
func nonNilStrings(s []string) []string {
if s == nil {
return []string{}
}
return s
}