Repository navigation
Releases
v0.4.1
Entwistle · ynw release seat
Release v0.4.1: the spoolexporter Go module can send OTLP/HTTP JSON, so a tool can meet ADR-006 rule 1 without the standard OTLP exporters.
Added
spoolexporterhas an OTLP/HTTP JSON exporter for an operator'sOTEL_EXPORTER_OTLP_*settings (ynr #90). It posts the existing OTLP/JSON encoding to the endpoints the operator names, readsENDPOINT, the per-signal endpoints,HEADERSandTIMEOUT, and names the setting that stops it (a protocol other thanhttp/json, custom certificates, compression). Each export is bounded (2 seconds by default), errors are counted inStatsand never returned, redirects are not followed, and header values appear nowhere. No module is added.
Docs
- ADR-006 rule 10: tool details sit behind the strip list, and account ids are hashed (ynr #96).
- ADR-004, the package doc and the
spoolexporterREADME now say the Go module also sends OTLP/HTTP (ynr #90).
The spoolexporter Go module is tagged separately.
v0.4.0
Entwistle · ynw release seat
Release v0.4.0: the relay strips paths, host names, email addresses and full names before the spool.
Privacy
ynr relaystrips paths and host names before the spool, so ADR-006 rule 10's "no paths or host names" is enforced at one point for every vendor (ynr #86). It dropscwd,host.name,host.id,host.ip,host.mac,process.owner,process.command,process.command_line,process.command_argsandprocess.executable.path, and any attribute whose string value is the user's home folder or a path under it, from resource, scope, span, span event, span link, data point, exemplar and log record attributes, for traces, metrics and logs. Log record bodies and span names are not scrubbed.- The relay's exit line reports
N attributes stripped. - The relay also drops
user.email,user.full_nameand any attribute whose whole value is an email address (ynr #87).
Docs: ADR-006 rule 10, ADR-004's relay paragraph, the ynr relay reference and the tutorial's exit line (#86), and ADR-006 and the ynr relay reference for the email and name rule (#87).
v0.3.2
ynr v0.3.2.
Fix
- The linux full binaries (
ynr-full_0.3.2_linux_{amd64,arm64}.tar.gz) link libstdc++ and libgcc statically. v0.3.1's neededGLIBCXX_3.4.32and would not start on Ubuntu 22.04 or Debian 12. They now need glibc 2.25 or newer (#83). - The release checks each linux full binary before publishing, and fails if it still needs libstdc++ or libgcc_s (#83).
The slim, stub-vendor and darwin builds are unchanged from v0.3.1.
v0.3.1
ynr v0.3.1. (v0.3.0 was tagged but never published: its release run found the long-hostname bug fixed in #81.)
Install
- Homebrew now installs the full build: DuckDB, the hot tier,
query,centraland the dashboard, as ADR-001 says (#73). Releases addynr-full_<ver>_<os>_<arch>.tar.gzarchives. The slimynr_…andynr-stub-vendor_…archives keep their names. The release job runs on macOS, with GCC cross toolchains for linux. This is the first release built that way. make install, as ynh, ynf and ynm have (#60).- The docs site: https://eyelock.github.io/ynr/, a Diátaxis tutorial, how-tos, reference and explanation (#61).
Behaviour
ynr servestops reading a run folder over its budget, and stampsynr.provenance.warning=over-budget(ADR-003). The budget is the manifest'srun_quota_bytes, which ynf writes fromtelemetry.run_quota, else 64 MiB (#75).ynr conformanceimplements rule 13, "never into memory". It compares ynm's store before and after the runs, in a scratchYNM_HOME(#70).- Query windows longer than 7 days include days without a rollup yet, such as today, with no double counting (#71).
recent,itemandtracereturn theactorhandle, so an erasure can be checked: it shows(erased)(#71).- New columns
collector_instanceandreceived_at, which ynr stamps asynr.received_atwhen it receives a record (ADR-005, #74). - Parquet files carry
ynr.schema_version, now 2. Files from v0.2.2 have no key and read as version 1. A newer version is refused (#76, #78). - A store with v0.2.2 parts and new parts reads correctly. Before #78, DuckDB bound every part to the first file's columns and silently dropped the new values.
ynr queryfinds acentralwhose socket fell back to the temp folder, so--socketisn't needed (#72).- The embedded collector logs warnings and errors only, unless
--debugis set. The top-level usage lists every flag and environment variable (#72).
Dependencies
- DuckDB 2.0 (duckdb-go v2.20000.0): SQL lambdas use
lambda a: …(#67). spoolexporterv0.3.0 (OpenTelemetry 3 peers for the npm exporter, #69, #79), plus Go, npm and Actions updates (#57, #58, #63, #64, #66, #68).
Tests: three flaky tests fixed. They counted at-least-once redelivery as a failure (#65), and a lease test stole the lease without the store's lock (#77).
Fix in v0.3.1: ynr serve default collector id stays within 63 characters on long hostnames (#81).
Known limit: the linux full archives need libstdc++ from GCC 13 or later (Ubuntu 24.04, Debian 13 or newer); on older systems use the slim archive.
v0.2.2
v0.2.1
Changelog
- dd055fb Bring ynr up to the public-ready standard (#37)
- 26a5d20 Fix serve with a store and an upstream; ship on shutdown without a store; stream-json mode for the stub vendor (#53)
- 19be66a Merge pull request #52 from eyelock/chore/ynr-public
- ebeb1c7 Merge pull request #54 from eyelock/develop
- 005f8be Offer support@eyelock.net for security and conduct reports (#49)
v0.2.0
Changelog
- 654dfb4 ADR-004/006: another collector only when the operator enables it (#26)
- fca978f ADR-005/007/008: PATH-only tools, compaction leases, conformance file fields (#35)
- 24c6ba1 Add infra/aws: the S3 store, a role per collector, central's role (#30)
- cb7de3f Add the S3 store adapter, tested against MinIO (slice 3, part 1) (#29)
- a583ebc Add the full build's DuckDB query engine and ynr query (slice 2, part 2) (#12)
- 6462386 Add the hot tier, answering ynr query from a running ynr serve (slice 2, part 3) (#13)
- 08255f9 Add the local dashboard: lanes, items, a trace waterfall and the live tail (slice 2, part 8) (#19)
- fdfdaea Add ynr central: change feed, compaction leases, shared-store reader (slice 3) (#32)
- 51c82a7 Add ynr conformance and the stub vendor (slice 4) (#34)
- aaf1396 Add ynr doctor (slice 2) (#28)
- 9cca1e5 Add ynr tail: the live stream from the spool (slice 2, part 7) (#17)
- ffb0471 Cap the spool as a whole, evicting the oldest closed files first (slice 2) (#27)
- 4db1439 Compact closed hours into Parquet with manifests (slice 2, part 4) (#14)
- 7d0ba60 Keep a daily item index, so an item's history reads only its hours (slice 2, part 5) (#15)
- ffc5edc Learn tool registries and count names they do not declare (ADR-007) (#31)
- 8d2ac85 Merge pull request #23 from eyelock/main
- 498c4b4 Merge pull request #25 from eyelock/feature/retention-erasure
- bc94ab7 Merge pull request #38 from eyelock/develop
- 8cdf384 Retain a folder store by age and size, and erase handles (slice 2)
- 3bf8e2f Roll up runs and metrics by day and month, for long-range queries (slice 2, part 6) (#16)
v0.1.1
Changelog
- e9db895 Merge pull request #20 from eyelock/hotfix/cosign-installer
- ad96e5b Merge pull request #21 from eyelock/hotfix/release-token
- 1fd3e92 Merge pull request #22 from eyelock/hotfix/revert-release-token
- 9679dc8 Pin the cosign installer to v4.1.2, as ynh does: there is no v4 tag
- 3542bdd Release with the workflow's own token; RELEASE_TOKEN only for the tap
- 1414dc5 Revert the release token split (#21): RELEASE_TOKEN will write both repositories