Skip to content

Release v0.9.10#64

Merged
wdoekes merged 21 commits into
releasefrom
develop
May 5, 2026
Merged

Release v0.9.10#64
wdoekes merged 21 commits into
releasefrom
develop

Conversation

@wdoekes

@wdoekes wdoekes commented May 5, 2026

Copy link
Copy Markdown
Member

No description provided.

wdoekes and others added 21 commits January 27, 2026 16:54
Add go.mod / go.sum with pinned dependencies.
The test relied on os.Args being empty, but go test injects its own
flags (e.g. -test.testlogfile).
Fixes: Insecure Temp File Reuse in its extract_zipped_paths()
Note that the golang folks did not stop and appreciate the Wisdom of
Years of Python for the indentation and came up with this mess:

                        if strings.ContainsRune(key, '.') ||
-                                       strings.ContainsRune(key, 0) ||
-                                       strings.HasPrefix(key, "$") {
+                               strings.ContainsRune(key, 0) ||
+                               strings.HasPrefix(key, "$") {
                                log.Log.Printf("possibly problematic key: %s", key)

This is stupid. But we're not going to fight gofmt this time.
Life is too short.

See the recommended Python practice:

    # Add some extra indentation on the conditional continuation line.
    if (this_is_one_thing
            and that_is_another_thing):
        do_something()

Upstream-Bug: golang/go#48064
app.* collectors are sampled every ~24 min (4h / sample_n, default 10)
and snapshots saved to /var/spool/gocollect/<key>/<timestamp>.json. At
push time the most frequently occurring value (mode) across the last N
snapshots is pushed instead of a fresh run, filtering out transient
changes like short-lived processes.

New spool package: Save() writes a snapshot and trims old files;
LoadMode() returns the mode across the last N snapshots.

Runner gains SpoolPath, SampledN, SampledPrefixes fields. The main loop is
restructured: Sample() runs every sampleInterval, Run() is called every
N samples. SIGHUP/SIGUSR1 forces an immediate push. --one-shot bypasses
sampling and goes straight to Run(). Falls back to a live run when the
spool is empty (first startup).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This will be one of the sampled collectors.

Change: osso-org/changes#2389
@wdoekes wdoekes merged commit f50dce2 into release May 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants