119 Commits
Author SHA1 Message Date
zeekayandClaude Opus 4.8 d1a58feb4a fix rebrand: finish botched signoz->o11y merge (installation Spec.Signoz->O11y + HanzoO11y type, delete stale signozmolding, reconstruct foundry.New for migrated struct, systemd services flat-list + IsEnabled, foundryctl callers, fix 3 botched-merge templates, regen schema)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
v0.3.0
2026-06-30 22:54:04 -07:00
z 4865d2ec68 docs(brand): add hero banner 2026-06-28 20:14:41 -07:00
z aa885c9d65 chore(brand): dynamic hero banner 2026-06-28 20:14:40 -07:00
zeekay 3d2946a7b9 chore: restore upstream attribution + NOTICE (OSS compliance) 2026-06-21 02:14:21 -07:00
bf32956f4c ci: run on self-hosted ARC pool (hanzo-build-linux-amd64/deploy), not GitHub-hosted (#1)
Co-authored-by: zeekay <z@hanzo.ai>
2026-06-19 20:37:16 -07:00
Antje WorringandClaude Opus 4.8 4653c2273a docs: tidy LLM.md indexes; CLAUDE.md -> LLM.md symlink convention
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 10:08:38 -07:00
Hanzo AI 8ca9d70a37 deps: bump Go to 1.26.4 across go.mod, Dockerfiles, GH Actions
Workspace-wide sync. luxfi/node already shipped on 1.26.4 in v1.30.6
(commit 121aca1fa9); this is the cross-repo catch-up.
2026-06-07 12:11:53 -07:00
Hanzo AI 605346b11b merge: upstream/main (preserve Hanzo brand, 50 commits)
# Conflicts:
#	api/v1alpha1/casting.go
#	api/v1alpha1/installation/signoz.go
#	docs/casting.md
#	docs/examples/docker/compose/pours/deployment/configs/ingester/opamp.yaml
#	docs/examples/systemd/binary/pours/deployment/signoz-ingester.service
#	docs/examples/systemd/binary/pours/deployment/signoz-signoz.service
#	docs/examples/systemd/binary/pours/deployment/signoz-telemetrystore-migrator.service
#	docs/schemas/v1alpha1.yaml
#	internal/foundry/registry.go
#	internal/instrumentation/handler.go
#	internal/molding/signozmolding/signoz.go
2026-06-02 09:59:25 -07:00
Amin EhteramiandGitHub c4f9c01077 fix(tooler): detect both legacy docker-compose and the docker cli compose plugin (#128)
Hey, 
this is fix of pull request:
https://github.com/SigNoz/foundry/pull/126
2026-06-02 21:25:46 +05:30
Hanzo AI 1c9a452fe2 dockerfile: switch multi-arch base to ghcr.io/hanzoai/debian12:base
Replace gcr.io/distroless/base@sha256:${DISTROLESS_SHA} with the
Hanzo-mirrored ghcr.io/hanzoai/debian12:base@sha256:${DISTROLESS_SHA}.
SHA passed in via build-arg is preserved so caller pin discipline
remains identical; only the registry/path changes.

TODO flagged: CI workflows pulling this base may need a PAT secret
(GHCR_PULL_TOKEN) since the default GITHUB_TOKEN scopes to the repo's
own package only.
2026-06-02 03:41:25 -07:00
NageshbansalandGitHub bafb1697b8 chore(systemd): derive signoz asset paths from install root via env (#127)
#### Chores

- Align the signoz assets (templates, web) with the signoz tarball
structure in systemdcasting
- Update the systemdcasting to help folks with downloading binary and
with instructions on keeping things aligned


Related: https://github.com/SigNoz/platform-pod/issues/2347
2026-05-27 02:19:58 +05:30
NageshbansalandGitHub 738ae464ff refactor: better handle casting kind dispatch (#122)
#### Summary

Introduces a per-Kind `Planner` contract so Foundry can drive multiple
casting Kinds through a single pipeline. `Foundry.Forge` / `Cast` /
`Gauge` become Kind-agnostic; per-Kind state (registry, moldings,
casting strategy, enricher) lives in the Kind's own Planner.

#### Changes

- New `internal/planner` package defining the `Planner` contract.
- `Foundry` holds a `Planners` dispatch map; each casting package
implements the contract (`installation.Planner`,
`collectionagent.Planner`).
- Installation registry moves from `internal/foundry/registry.go` to
`internal/casting/installation/registry.go`.
- CollectionAgent Kind scaffolded: Planner + collector molding wired
end-to-end. No deployment castings yet.
- `MoldingKindCollector` added to `api/v1alpha1/molding_kind.go`.

Related: https://github.com/SigNoz/platform-pod/issues/1971,
https://github.com/SigNoz/platform-pod/issues/1972
2026-05-26 15:32:31 +05:30
NageshbansalandGitHub 15fe0f6aaf fix: templated signoz and ingester services with replicaIdx suffix (#121)
#### Fixes

- Templated the signoz and ingester services with a replicaIdx suffix
- Fixed volume names to respect signoz replicaIdx for the sqlite
metastore
- Fixed port collisions for replicas of signoz and ingester
2026-05-21 20:02:24 +05:30
NageshbansalandGitHub 272a49f57d fix(clickhouse): templated per-node macros and single-host client DSN (#120)
#### Fixes

- Render templated per-node macros (`shard`, `replica`) in ClickHouse
`config.yaml` so multi-shard/multi-replica clusters get unique Keeper
paths instead of collisions
- Use the first TelemetryStore TCP address (not comma-joined) for
`SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN` and ingester ClickHouse DSNs

 #### Refactors
- `telemetrystore` molding now emits `config-{shard}-{replica}.yaml` per
node (mirrors `telemetrykeeper` per-replica pattern)

Related: https://github.com/SigNoz/platform-pod/issues/1332
2026-05-20 17:48:14 +05:30
NageshbansalandGitHub ec05e38657 feat(scripts): show progress bar while downloading foundryctl tarball (#119)
#### Features

- Adds progress bar flag for curl to show progress bar while downloading
foundryctl tarball
2026-05-18 13:33:36 +05:30
PandeyandGitHub 998092f8cd refactor(foundryctl): silent-by-default logs, typed exit codes, ban fmt.Errorf (#118)
## Summary

Reshape foundryctl's output contract so it composes with agents and
shell pipelines. Three changes that fall out of the same observation:
**stdout, stderr, and exit codes should be a stable contract — today
they're conflated.**

- **Logger to stderr, silent by default.** `instrumentation.NewLogger`
writes to `os.Stderr` (was `os.Stdout`) and uses `slog.DiscardHandler`
unless `--debug` is set. Matches helm/aws CLI convention. stdout is now
reserved for command results.
- **Typed exit codes.** `internal/errors.typ` carries a `code int`
field; `errors.ExitCode(err)` walks the wrap chain via `errors.As` and
returns a deterministic code: `InvalidInput=2, NotFound=3,
Unsupported=4, Internal=5, Fatal=6`, untyped=1, nil=0. Compact 1-6
scheme rather than sysexits.h because sysexits would collapse `Internal`
and `Fatal` into the same `EX_SOFTWARE (70)`, losing a distinction we
care about (Fatal = recovered panic; Internal = expected-but-failed
path). `cmd/foundryctl/main.go` now exits with `errors.ExitCode(err)`.
- **`fmt.Errorf` forbidden by lint.** New forbidigo rules in
`.golangci.yml` ban `fmt.Errorf` and `fmt.Print*` / `print` / `println`.
168 call sites across 38 files converted to `errors.Newf` /
`errors.Wrapf` with contextually-chosen types. Narrow exception for
`internal/errors/error_test.go` so the ExitCode wrap-chain test stays
authentic.

Sites of note for review:
- `internal/errors/type.go` — exit code mapping table (one source of
truth)
- `internal/errors/error.go` — `ExitCode(err)` helper
- `internal/instrumentation/logger.go` — `slog.DiscardHandler` default
- `.golangci.yml` — forbidigo config + the single narrow test exclusion

## Test plan

- [x] `go build ./...`
- [x] `go test ./...` (all packages pass; new `TestExitCode` covers 9
cases: nil, untyped, each typed, fmt.Errorf-wrapped,
foundry-Wrapf-wrapped)
- [x] `golangci-lint run ./...` — 0 issues
- [x] Manual: `foundryctl forge` on a missing file exits non-zero and
emits nothing on stdout (logs hidden); `--debug` emits JSON on stderr
only
- [x] Manual: end-to-end forge + cast against the docker/compose flavor
still produces a healthy stack
2026-05-17 23:01:00 +05:30
NageshbansalandGitHub 1a72d6ac3c feat: introduce collection agent schema (#117)
#### Features

- Adds collectionAgent Casting Kind

Related: https://github.com/SigNoz/platform-pod/issues/1970
2026-05-16 19:39:35 +05:30
NageshbansalandGitHub 815889b7b7 feat: introduce casting kind (#116)
### Summary                            

- Introduce a `kind` discriminator for Casting. Existing Casting without
a kind field keep working, empty kind defaults to `Installation`
- New `api/v1alpha1/installation/` subpackage with the Installation
Casting, Spec types and holds its own JSON schema from its Go type:
`installation/casting.schema.json`
- New Machinery interface in `api/v1alpha1/machinery.go` exposes
`Kind()` and `TrackableProperties()` so Dispatcher(Getv1alpha1 and
Forge/Cast/Gauge) work across any kind without knowing its concrete
type.
- A root casting.schema.json lists every per-Kind schema to supports
IDEs completion from one schema URL
- cmd/foundryctl gen schemas reads a list of types from schemaTargets.
Adding a kind means adding one entry.
  
Related: https://github.com/SigNoz/platform-pod/issues/1970
2026-05-16 17:40:03 +05:30
Hanzo AI 7c67cf88ae go.mod: bump go directive to 1.26.3 (security advisory) 2026-05-12 21:26:11 -07:00
NageshbansalandGitHub 146dc25c0e chore: adds distribution issue template (#98)
#### Chores

- Adds template for distribution issues

Related: https://github.com/SigNoz/platform-pod/issues/2065
2026-05-07 20:13:47 +00:00
Miguel ValdesandGitHub 76d34466a7 fix(foundryctl): metastore support for sqlite (#114) 2026-05-07 13:58:43 -05:00
NageshbansalandGitHub 7efdede844 fix(domain): truncate distinct ID to 32 characters (#115)
#### Fixes

- truncate distinct ID to 32 characters
2026-05-04 23:45:49 +05:30
PandeyandGitHub 2491a71905 refactor(ledger): extract domain primitives and centralize tracking (#113)
## Summary

- Extract \`DistinctID\`, \`Event\`, and \`Properties\` value objects
from \`internal/ledger\` into \`internal/domain\` so they can be reused
without coupling callers to ledger orchestration. Move the analytics
serializer to \`api/v1alpha1\` as \`Casting.TrackableProperties()\`.
Tighten \`Ledger.Track\` to take \`domain.Event\` and
\`domain.Properties\`.
- Add \`cmd/foundryctl/root.go\` with shared
\`rootLogger\`/\`rootTracker\` initialized via \`PersistentPreRunE\`,
plus \`recoverRunE\` — a wrapper that converts panics to \`TypeFatal\`
errors and centralizes log + ledger tracking of success/failure for
every command. Each \`runX\` collapses to \`(domain.Properties, error)\`
with no in-function tracking.
- Add \`WithStacktrace\` on \`*base\` errors so the recovered panic
stack flows through the existing \`LogAttr\` machinery.
2026-05-04 23:36:04 +05:30
NageshbansalandGitHub 73ad12dd3c feat(scripts): add install.sh for foundryctl (#112)
## Summary

- Adds `scripts/install.sh` : a curl-pipe-bash installer for foundryctl,
served from `signoz.io/signoz.sh` (Vercel rewrite to this repo's
`main`).
- Detects OS/arch (darwin, linux, windows shells; amd64, arm64),
resolves the latest version via the GitHub `/releases/latest` redirect
(no API rate-limit), downloads the tarball + verifies SHA-256 against
the published checksums file, installs into `$FOUNDRY_INSTALL_DIR` →
`$XDG_BIN_HOME` → `~/.local/bin`, and runs the binary as a post-install
smoke test.
- Idempotent: same-version re-runs short-circuit early;
different-version runs prompt interactively, auto-proceed when piped
(curl-pipe-bash, CI). `-y` / `FOUNDRY_ASSUME_YES` bypasses the prompt
explicitly.
- Wires `sh-fmt` and `sh-lint` jobs into `ci.yaml` (via
`signoz/primus.workflows`) so the script is enforced against shellcheck
and shfmt on every PR.

Related: SigNoz/platform-pod#2065,
https://github.com/SigNoz/foundry/issues/96,
https://github.com/SigNoz/foundry/issues/97
2026-05-04 16:48:14 +05:30
PandeyandGitHub dfa40e2d5c refactor(domain): make Template a format-aware value object (#111)
## Summary
- `Template` now carries its `Format` end-to-end. Each format declares
its `Material` constructor inline (`FormatYAML = Format{s: "yaml", new:
...}`), so adding a format is one `var` entry — no switch in `Render`,
no per-callsite dispatch.
- New `Template.Render(data, path) (Material, error)` replaces the
`Execute` → `bytes.Buffer` → `NewXMaterial` trio duplicated across
`ecsterraformcasting`, `kuberneteskustomizecasting`, `systemdcasting`,
and `infrastructure/terraform/generator`. Net −165/+259, but most of the
+s are the new test file.
- Errors flow through `internal/errors` (`TypeInvalidInput` /
`TypeInternal` / `TypeUnsupported`) using the project's `failed to
create <X> from %q: <reason>` wording, matching the recent `Material`
and `Address` refactors.
- Drop `Get` prefix on accessors: `Name()`, `Path()`, `Format()`.
- `internal/domain/template_test.go` covers `Render` across every format
plus the unsupported-format and invalid-output paths.
2026-05-01 13:25:04 +05:30
PandeyandGitHub 9628c57b9e refactor(domain): make Address a scheme-aware value object (#110)
## Summary
- Carry scheme on `domain.Address` so the round-trip `Parse → String` is
lossless; bracket IPv6 hosts on render.
- Single construction path: `ParseAddress` delegates field validation to
`NewAddress`. Add `MustNewAddress` and rename the slice constructor
`NewAddresses` → `ParseAddresses` (it parses strings).
- Port is optional — `0` means unset and is dropped from `String`, so
`tcp://signoz` and `tcp://[::1]` round-trip cleanly.
- Drop `FormatAddress`; casting enrichers now use
`domain.MustNewAddress(...).String()`.
- Error messages aligned with the material-domain wording (`failed to
create address[ from %q]: <reason>`).
- Adds `internal/domain/address_test.go` covering hostname / IPv4 /
IPv6, port-less variants, parse round-trip, and slice error propagation.
2026-05-01 12:34:23 +05:30
PandeyandGitHub 488c9315e9 refactor(domain): split material types (#109)
## Summary
- Split material domain into writer-facing `Material` and
traversal-capable `StructuredMaterial` interfaces with concrete
`YAMLMaterial`, `JSONMaterial`, `INIMaterial`, and `BlobMaterial` types.
- Inline INI and YAML format helpers into their respective material
types and remove `format.go` and `ini.go`.
- Rename interface methods for clarity: `Contents` → `JSONContents`,
`WithContents` → `CloneWithJSONContents`, `IsMultiDoc` →
`HasMultipleDocuments`.
- Switch material constructors to `internal/errors` with
`TypeInvalidInput` for parse failures, `TypeInternal` for canonical-JSON
marshaling failures, and `TypeNotFound` for missing traversal paths.
- Add `MustNew{JSON,YAML,INI}Material` constructors and split tests into
per-type `*_material_test.go` files.
- Tighten interface doc comments to follow godoc convention (lead with
identifier, drop pure restatement, document the gjson dotted-key path
syntax).
- Move `ini.PrettyFormat = false` into a package `init()` so the global
is touched once instead of on every `FmtContents` call.
2026-05-01 12:07:26 +05:30
PandeyandGitHub ec985909a7 refactor: rename types package to domain (#108)
## Summary
- Rename internal/types to internal/domain
- Update imports and call sites to use the domain package
- Document the domain package boundaries
- Remove api/v1alpha1 dependency on internal/domain

## Tests
- GOCACHE=/private/tmp/foundry-go-cache go test ./...
2026-05-01 09:26:16 +05:30
PandeyandGitHub 383bc9d2de feat(v1alpha1): jsonschema validation for casting (#107)
## Summary
- Wires schema-based validation of `casting.yaml` at config load time.
Schema is generated from the Go types via `swaggest/jsonschema-go`,
embedded as `api/v1alpha1/schema.json`, and validated post-merge with
`google/jsonschema-go`.
- Adds field-level rules: `required`, `enum`, `pattern` (DNS-1123 name,
JSON Pointer paths, OCI image), `minimum`/`minLength`/`minItems` on the
relevant fields. `additionalProperties:false` is set on every nested
type for the published schema.
- Replaces the loose string `Platform` / `Mode` / `Flavor` on
`TypeDeployment` with typed enums following the existing `*Kind`
pattern. Bad values now fail at unmarshal with a clear "invalid
deployment …" message.
- Drops `InfrastructureProvider` in favor of `Platform` — the cloud
subset (aws, gcp, azure) drives the Terraform IaC pipeline directly.
`ResolveProvider` collapses `PlatformECS → PlatformAWS`.
- Side cleanups bundled here: typed errors in `internal/errors` with
stacktrace capture (used by yamlconfig to wrap validation failures as
`TypeInvalidInput`), and removal of the custom pretty slog handler in
`internal/instrumentation` in favor of `slog.NewJSONHandler`.

## Test plan
- [ ] `make gen-schemas` is idempotent (CI's `schemas` job stays green).
- [ ] `go test ./...` passes locally.
- [ ] Every committed example casting (`docs/examples/**/casting.yaml`,
`docs/standalone/casting.yaml`) loads without error.
- [ ] Negative cases at config load: bad `apiVersion`, missing required
fields, unknown enum values for `kind` / `mode` / `flavor` / `platform`
/ patch `op`, non-JSON-Pointer patch paths, negative `replicas`,
`shards: 0`, malformed image refs — each fails with a `TypeInvalidInput`
error pointing at the offending location.
- [ ] `foundryctl forge` against
`docs/examples/docker/compose/casting.yaml` still produces the expected
pours.
2026-05-01 09:04:53 +05:30
NageshbansalandGitHub eac4a0ba66 chore: fix the alignment in readme (#106)
#### Chores

- Fix alignment of the signoz icon in the readme
2026-05-01 01:42:10 +05:30
c0be07dcbf fix(foundryctl): docker issues (#105)
#### Fixes
- Removes health check for docker compose, causes ingester to be
unhealthy
- Removes docker compose project to allow opamp to connect to signoz
- Pins volume names to casting metadata instead of docker project.

---------

Co-authored-by: Nagesh Bansal <nageshbansal59@gmail.com>
2026-05-01 01:37:01 +05:30
Miguel ValdesandGitHub 86a0eb68b1 feat(foundryctl): migrator timeout 10m in all platforms (#104)
#### Features
- Timeout settings to 10M in all platforms (ingester, migrator) set via
ENV Vars
- K8s already has 10M default in the chart
2026-04-30 21:49:16 +05:30
Miguel ValdesandGitHub 08aba61feb feat(foundryctl): telemetrykeeper settings (#103)
#### Features
- Disable fsync
- Adjust timeout settings
- Adjust the partition size and retention
2026-04-28 13:50:19 -05:00
Miguel ValdesandGitHub 143b1b53ab feat: add sane defaults to telemetrystore (#102)
#### Features
- Disable simdjson engine to avoid issues with CPUs that do not support
AVX2
- Remove max memory server limits
- Reduce retention for system logs/tables
- Increase flush interval to help with data flushes
2026-04-28 13:38:57 -05:00
Miguel ValdesandGitHub a9ca831074 feat(foundryctl): ingester metadata pipeline (#100) 2026-04-28 19:26:21 +05:30
dependabot[bot]andGitHub 9c388bf49d chore(deps): bump helm.sh/helm/v3 from 3.20.0 to 3.20.2 (#95) 2026-04-13 20:08:07 +05:30
NageshbansalandGitHub 886d36c806 feat(ledger): use anonymousId for segementprovider (#94)
#### Features

- Add getDistinctID() using the machineid library to generate a stable,
non-reversible HMAC-SHA256 hash of the OS machine ID for Segment's
AnonymousId, enabling cross-session event correlation without collecting
PII.

Related: https://github.com/SigNoz/platform-pod/issues/1910
2026-04-07 22:45:43 +05:30
Hanzo AI 0fb878e3eb chore: symlink AGENTS.md + CLAUDE.md → LLM.md 2026-04-06 15:07:19 -07:00
NageshbansalandGitHub 6c6168c53c fix(ledger): use event parameter for track and exclude gen command (#92)
#### Fixes

- Add event parameter to Track() for explicit event naming (foundryctl:
<event>)
- Remove command from properties since it is now part of the event name
- Remove CommandProperties() and PropCommand constant
- Add nil map guard to WithSuccess and WithError
- Exclude gen command from ledger tracking

Related: https://github.com/SigNoz/platform-pod/issues/1910
2026-04-06 18:30:41 +05:30
NageshbansalandGitHub 682cdc9f63 docs: fix broken links in docs (#91)
#### Chores

- Fix Broken Links for `patches.md` in casting docs

Related: https://github.com/SigNoz/foundry/issues/90
2026-04-04 14:50:50 +00:00
Hanzo AI 0dc33b5ff0 chore: update dependencies 2026-04-01 14:23:05 -07:00
NageshbansalandGitHub 10abb403c2 fix: fix build workflow for docker-build (#88)
#### Fixes

- Fix the build flags for the docker build


Related: https://github.com/SigNoz/platform-pod/issues/1910
2026-03-30 11:02:27 +00:00
NageshbansalandGitHub 0e4e752a19 feat: introduce ledger and version (#87)
#### Features

- Introduce ledger for gathering analytics abt usage of foundryctl
- Adds version command

Related: https://github.com/SigNoz/platform-pod/issues/1910
2026-03-30 16:07:37 +05:30
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
a5e02386ec chore(deps): bump google.golang.org/grpc from 1.72.2 to 1.79.3 (#82)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from
1.72.2 to 1.79.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's
releases</a>.</em></p>
<blockquote>
<h2>Release 1.79.3</h2>
<h1>Security</h1>
<ul>
<li>server: fix an authorization bypass where malformed :path headers
(missing the leading slash) could bypass path-based restricted
&quot;deny&quot; rules in interceptors like <code>grpc/authz</code>. Any
request with a non-canonical path is now immediately rejected with an
<code>Unimplemented</code> error. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8981">#8981</a>)</li>
</ul>
<h2>Release 1.79.2</h2>
<h1>Bug Fixes</h1>
<ul>
<li>stats: Prevent redundant error logging in health/ORCA producers by
skipping stats/tracing processing when no stats handler is configured.
(<a
href="https://redirect.github.com/grpc/grpc-go/pull/8874">grpc/grpc-go#8874</a>)</li>
</ul>
<h2>Release 1.79.1</h2>
<h1>Bug Fixes</h1>
<ul>
<li>grpc: Remove the <code>-dev</code> suffix from the User-Agent
header. (<a
href="https://redirect.github.com/grpc/grpc-go/pull/8902">grpc/grpc-go#8902</a>)</li>
</ul>
<h2>Release 1.79.0</h2>
<h1>API Changes</h1>
<ul>
<li>mem: Add experimental API <code>SetDefaultBufferPool</code> to
change the default buffer pool. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8806">#8806</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/vanja-p"><code>@​vanja-p</code></a></li>
</ul>
</li>
<li>experimental/stats: Update <code>MetricsRecorder</code> to require
embedding the new <code>UnimplementedMetricsRecorder</code> (a no-op
struct) in all implementations for forward compatibility. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8780">#8780</a>)</li>
</ul>
<h1>Behavior Changes</h1>
<ul>
<li>balancer/weightedtarget: Remove handling of <code>Addresses</code>
and only handle <code>Endpoints</code> in resolver updates. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8841">#8841</a>)</li>
</ul>
<h1>New Features</h1>
<ul>
<li>experimental/stats: Add support for asynchronous gauge metrics
through the new <code>AsyncMetricReporter</code> and
<code>RegisterAsyncReporter</code> APIs. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8780">#8780</a>)</li>
<li>pickfirst: Add support for weighted random shuffling of endpoints,
as described in <a
href="https://redirect.github.com/grpc/proposal/pull/535">gRFC A113</a>.
<ul>
<li>This is enabled by default, and can be turned off using the
environment variable
<code>GRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING</code>. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8864">#8864</a>)</li>
</ul>
</li>
<li>xds: Implement <code>:authority</code> rewriting, as specified in <a
href="https://github.com/grpc/proposal/blob/master/A81-xds-authority-rewriting.md">gRFC
A81</a>. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8779">#8779</a>)</li>
<li>balancer/randomsubsetting: Implement the
<code>random_subsetting</code> LB policy, as specified in <a
href="https://github.com/grpc/proposal/blob/master/A68-random-subsetting.md">gRFC
A68</a>. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8650">#8650</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/marek-szews"><code>@​marek-szews</code></a></li>
</ul>
</li>
</ul>
<h1>Bug Fixes</h1>
<ul>
<li>credentials/tls: Fix a bug where the port was not stripped from the
authority override before validation. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8726">#8726</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/Atul1710"><code>@​Atul1710</code></a></li>
</ul>
</li>
<li>xds/priority: Fix a bug causing delayed failover to lower-priority
clusters when a higher-priority cluster is stuck in
<code>CONNECTING</code> state. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8813">#8813</a>)</li>
<li>health: Fix a bug where health checks failed for clients using
legacy compression options (<code>WithDecompressor</code> or
<code>RPCDecompressor</code>). (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8765">#8765</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/sanki92"><code>@​sanki92</code></a></li>
</ul>
</li>
<li>transport: Fix an issue where the HTTP/2 server could skip header
size checks when terminating a stream early. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8769">#8769</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/joybestourous"><code>@​joybestourous</code></a></li>
</ul>
</li>
<li>server: Propagate status detail headers, if available, when
terminating a stream during request header processing. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8754">#8754</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/joybestourous"><code>@​joybestourous</code></a></li>
</ul>
</li>
</ul>
<h1>Performance Improvements</h1>
<ul>
<li>credentials/alts: Optimize read buffer alignment to reduce copies.
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8791">#8791</a>)</li>
<li>mem: Optimize pooling and creation of <code>buffer</code> objects.
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8784">#8784</a>)</li>
<li>transport: Reduce slice re-allocations by reserving slice capacity.
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8797">#8797</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/grpc/grpc-go/commit/dda86dbd9cecb8b35b58c73d507d81d67761205f"><code>dda86db</code></a>
Change version to 1.79.3 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8983">#8983</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/72186f163e75a065c39e6f7df9b6dea07fbdeff5"><code>72186f1</code></a>
grpc: enforce strict path checking for incoming requests on the server
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8981">#8981</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/97ca3522b239edf6813e2b1106924e9d55e89d43"><code>97ca352</code></a>
Changing version to 1.79.3-dev (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8954">#8954</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/8902ab6efea590f5b3861126559eaa26fa9783b2"><code>8902ab6</code></a>
Change the version to release 1.79.2 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8947">#8947</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/a9286705aa689bee321ec674323b6896284f3e02"><code>a928670</code></a>
Cherry-pick <a
href="https://redirect.github.com/grpc/grpc-go/issues/8874">#8874</a> to
v1.79.x (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8904">#8904</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/06df3638c0bcee88197b1033b3ba83e1eb8bc010"><code>06df363</code></a>
Change version to 1.79.2-dev (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8903">#8903</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/782f2de44f597af18a120527e7682a6670d84289"><code>782f2de</code></a>
Change version to 1.79.1 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8902">#8902</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/850eccbb2257bd2de6ac28ee88a7172ab6175629"><code>850eccb</code></a>
Change version to 1.79.1-dev (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8851">#8851</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/765ff056b6890f6c8341894df4e9668e9bfc18ef"><code>765ff05</code></a>
Change version to 1.79.0 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8850">#8850</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/68804be0e78ed0365bb5a576dedc12e2168ed63e"><code>68804be</code></a>
Cherry pick <a
href="https://redirect.github.com/grpc/grpc-go/issues/8864">#8864</a> to
v1.79.x (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8896">#8896</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/grpc/grpc-go/compare/v1.72.2...v1.79.3">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 17:23:24 +05:30
NageshbansalandGitHub 9cbc64dc40 feat: introduce catalog command (#86)
#### Feature

- Adds a dedicated catalog command to display available castings
- Removes castings.json artefact logic from the gen command



Related: https://github.com/SigNoz/platform-pod/issues/1868
2026-03-27 16:22:07 +05:30
NageshbansalandGitHub 812d676792 feat: introduce signoz-standalone and fix systemdcasting (#80)
#### Features   
- Add standalone Docker image (docs/standalone/): single container
running all SigNoz components via systemd
  casting
- Add SQLite metastore support in systemd casting (enricher, signoz
molding, forge, cast)
- Add Restart=on-failure with RestartSec=5 to migrator, ingester, and
signoz service templates to remove job readiness checks with
`After`/`Wants`/`Requires`
#### Fixes
                                                                     
- Enable all services before starting any (fixes Unit not found during
start)
- Use --no-block for systemctl start (prevents cast from blocking on
oneshot services)
 #### Refactors                                                 
- Remove inter-service dependency coupling (After=/Requires=/Wants=)
from all service templates; services manage their own readiness via
restart policies and readiness checks
- Move config material paths from configs/<component>/ to
<component>/<kind>/
- Move IsEnabled() checks to forgeCasting dispatcher instead of
individual forge methods
- Simplify discoverAndPrepareServices and startAllService, remove
service categorization map
- Render environment variables (Spec.Env) and ClickHouse DSN in
ingester, migrator, and telemetrystore templates
Related: https://github.com/SigNoz/platform-pod/issues/1522
2026-03-26 23:51:57 +05:30
NageshbansalandGitHub 4a049ac81d docs: better serve docs (#81) 2026-03-26 18:49:03 +05:30
Miguel ValdesandGitHub 6373e5dcf6 feat(terraform): inital support for infrastructure (#35) 2026-03-26 00:30:07 +05:30
NageshbansalandGitHub 6119af52de fix: fix enabled flag being ignored for moldings (#79)
## Summary

- Fix `enabled: false` being silently ignored when it's the only field
set on a molding
- Change `MoldingSpec.Enabled` from `bool` to `*bool` to distinguish
"not set" (`nil`) from "explicitly disabled" (`&false`)
- Add casting config tests covering the `enabled` field merge behavior


Related: https://github.com/SigNoz/platform-pod/issues/1868
2026-03-25 23:26:54 +05:30
NageshbansalandGitHub 21e4a74a15 chore: standardize title for the issue templates (#78)
#### Chores

- Use `[label]` instead of `()`
- Use enhancement, casting label for casting request


Related: https://github.com/SigNoz/platform-pod/issues/1868
2026-03-25 15:13:39 +05:30