- register OTEL metrics if it's missing (#1456) | Yingrong Zhao
- call out cache changes and add missing changelog entry (#1454) | Yingrong Zhao
- update Husky to 0.34.0 (#1459) | Mike Goldsmith
This release introduces a variety of enhancements and bug fixes. It has two major features: one that improves memory consumption reporting, and one experimental feature for configuring trace locality mode. See full details in the Release Notes.
- feat: rename DisableTraceLocality to TraceCache (#1450) | Yingrong Zhao
- feat: Add 'unpublished' flag to configs (#1446) | Kent Quirk
- feat: Rename EnableTraceLocality to DisableTraceLocality (#1442) | Mike Goldsmith
- feat: add a limit to queue draining logic (#1441) | Yingrong Zhao
- feat: Try to drain incoming and peer queues for an amount of time (#1440) | Mike Goldsmith
- feat: ignore trace decision messages produced by the publishers (#1437) | Yingrong Zhao
- feat: Add basic telemetry to event, batch and OTLP endpoints (#1431) | Mike Goldsmith
- feat: compress kept trace decision message (#1430) | Yingrong Zhao
- feat: publish instanceID during peer comms (#1420) | Kent Quirk
- feat: increase KeptDecisionSendInterval default value to 1s (#1421) | Yingrong Zhao
- feat: batch kept decisions (#1419) | Yingrong Zhao
- feat: set a better version for dev builds (#1415) | Robb Kidd
- feat: only enalbe stress relief for the entire cluster together (#1413) | Yingrong Zhao
- feat: send kept trace decision in a separate goroutine (#1412) | Yingrong Zhao
- feat: only redistribute traces when its ownership has changed (#1411) | Yingrong Zhao
- feat: Add a way to specify the team key for config fetches (experimental) (#1410) | Kent Quirk
- feat: send drop decisions in batch (#1402) | Yingrong Zhao
- feat: use priority queue to implement trace cache (#1399) | Mike Goldsmith
- feat: Update in-memory trace cache to use LRU instead of ring buffer (#1359) | Mike Goldsmith
- feat: Log response bodies when sending events to Honeycomb (#1386) | Mike Goldsmith
- feat: make collector health check timeout configurable (#1371) | Yingrong Zhao
- feat: Record original user agent for spans and logs (#1358) | Mike Goldsmith
- feat: forward decision span through peer endpoint (#1342) | Yingrong Zhao
- feat: extract decision span from full span (#1338) | Yingrong Zhao
- feat(doc): separate table for metrics contains prefix (#1354) | Yingrong Zhao
- feat: generate metrics documentation (#1351) | Yingrong Zhao
- feat: Improve shutdown logic (#1347) | Kent Quirk
- feat: Update Honeycomb logger to use EMAThroughput sampler (#1328) | Mike Goldsmith
- feat: Improve log messages to be more informative (#1322) | Mike Goldsmith
- feat: extract key fields from rules config (#1327) | Yingrong Zhao
- fix: documentation bug (#1449) | Kent Quirk
- fix: missing read lock in MapWithTTL (#1445) | Yingrong Zhao
- fix: revert draining logic for incoming and peer queue (#1443) | Yingrong Zhao
- fix: only ignore messages that are coming from the node itself (#1438) | Yingrong Zhao
- fix: Update flaky test (#1436) | Mike Goldsmith
- fix: send all traffic through deterministic sampler during stress relief activated (#1433) | Yingrong Zhao
- fix: more reliable dev version tagging (#1424) | Robb Kidd
- fix: do not use trace object during processTraceDecisions (#1423) | Yingrong Zhao
- fix: count the number of IDs in drop decision messages (#1416) | Mike Goldsmith
- fix: replace api key with SendKey before transmission (#1404) | Yingrong Zhao
- fix: deal with orphan traces and expired traces (#1408) | Yingrong Zhao
- fix: reset redistribution delay on peer membership change (#1403) | Yingrong Zhao
- fix: explictly assign float64 type for trace cache metrics (#1406) | Yingrong Zhao
- fix: deal with orphan traces in trace cache (#1405) | Yingrong Zhao
- fix: use current node address as default peer list (#1388) | Yingrong Zhao
- fix: Only set incoming user agent if not already present (#1366) | Mike Goldsmith
- fix: Put a limit on the size of sampler keys (#1364) | Kent Quirk
- fix: set 0 for otel metrics during registration (#1352) | Yingrong Zhao
- fix: remove InMemoryCollector from liveness check on shutdown (#1349) | Yingrong Zhao
- fix: ConvertNumeric now handles bools (#1336) | Kent Quirk
- fix: remove unnecessary assertion to any (#1333) | Yingrong Zhao
- fix: Use peer transmission during redistribute and shutdown events (#1332) | Mike Goldsmith
- maint: remove unused collect_cache metrics (#1452) | Yingrong Zhao
- maint(deps): bump the minor-patch group with 6 updates (#1451) | dependabot
- maint: update metrics doc (#1448) | Yingrong Zhao
- maint: remove trace cache metrics (#1447) | Yingrong Zhao
- maint: clean up sampler log entry (#1444) | Yingrong Zhao
- maint(deps): bump the minor-patch group with 11 updates (#1428) | dependabot
- maint: Add missing LICENSE file (#1429) | Kent Quirk
- maint: build fixes (#1427) | Kent Quirk
- maint: Update log level for making a trace decision to debug (#1425) | Mike Goldsmith Goldsmith](https://github.com/MikeGoldsmith)
- maint: Add missing LICENSE file (#1429) | Kent Quirk
- maint: build fixes (#1427) | Kent Quirk
- maint: Update log level for making a trace decision to debug (#1425) | Mike Goldsmith
- docs: update config docs for compatability of using DryRun and EnableTraceLocality together (#1418) | Mike Goldsmith
- maint: add comments about an edge case in SendKey (#1387) | Yingrong Zhao
- maint: Update OTel dependencies (#1409) | Mike Goldsmith lmuth](https://github.com/vinozzZ)
- docs: Document the ability to use prefix in dynamic sampler FieldList (#1396) | Irving Popovetsky (demo_metrics_doc)- maint: cherry pick v2.8.4 commits into main. (#1383) | Tyler Helmuth
- maint: Update main documentation with 2.8.3 release (#1374) | Tyler Helmuth
- docs: Update configMeta.yaml with capitalization fixes (#1373) | Mary J.
- maint: add collector_redistribute_traces_duration_ms metric (#1368) | Yingrong Zhao
- maint(deps): bump the minor-patch group with 13 updates (#1357) | dependabot
- maint: Refactor metrics registration to streamline declaration and enable easier documentation generation (#1350) | Yingrong Zhao
- maint: rename sent_reason_cache to kept_reason_cache (#1346) | Yingrong Zhao
- fix: Switch
collector_collect_loop_duration_ms
metric to be a histogram (#1381) | Tyler Helmuth
- fix: Only set incoming user agent if not already present (#1366) | Mike Goldsmith
- fix: Put a limit on the size of sampler keys (#1364) | Kent Quirk
- feat: Record original user agent for spans and logs (#1358) | Mike Goldsmith
- feat: Make collector health check timeout configurable (#1371) | Yingrong Zhao
- fix: ConvertNumeric now handles bools (#1336) | Kent Quirk
- fix: assertion for ClusterSizer (#1329) | Yingrong Zhao
- feat: Allow SendKey to be set via command line and env var (#1323) | Mike Goldsmith
- feat: add SendKey envvar config metadata (#1331) | Yingrong Zhao
- maint: run smoke test in CI (#1316) | Yingrong Zhao
This release includes a fix to a bug that prevented Refinery from starting up a new cluster from scratch.
- fix: load peer list in sharder once manually on startup (#1314) | Yingrong Zhao
This release has many features designed to help manage and operate Refinery at scale.
It also includes some features to help in writing sampling rules (in
and not-in
operators, root.
)
See full details in the Release Notes.
- feat: add IN operator (#1302) | Kent Quirk
- feat: support layered (multiple) configuration files (#1301) | Kent Quirk
- feat: Add a cache to the cache (#1296) | Kent Quirk
- feat: support configure refinery to use redis in cluster mode (#1294) | Yingrong Zhao
- feat: allow
root.
in field list for dynamic sampler (#1275) | Yingrong Zhao - feat: redistribute traces on peer membership changes (#1268) | Yingrong Zhao
- feat: Add SpanLimit (includes some config changes) (#1266) | Kent Quirk
- feat: redistribute remaining traces during shutdown (#1261) | Yingrong Zhao
- feat: Allow more complex key behavior (#1263) | Kent Quirk
- feat: unregister peer asap on shutdown (#1260) | Yingrong Zhao
- fix: periodically clean up recent_dropped_traces cache (#1312) | Yingrong Zhao
- fix: revert the revert -- that wasn't the problem (#1311) | Kent Quirk
- fix: revert "Use HTTP/2 for all upstream and peer-to-peer connections… (#1310) | Kent Quirk
- fix: join peer list only after refinery is ready to accept traffic (#1309) | Yingrong Zhao
- fix: use float histogram for otel metrics (#1303) | Kent Quirk
- fix: escape use input in debug route (#1299) | Tyler Helmuth
- fix: use trace.DescendantCount for span limit (#1297) | Yingrong Zhao
- fix: support TLS connections to Redis (#1285) | Yingrong Zhao
- fix: only set send reason to span limit if it's configured (#1290) | Yingrong Zhao
- fix: record previous value of sampler counter metrics so they report correctly (#1281) | Kent Quirk
- fix: set up tls for redis when it's enabled | Yingrong Zhao
- fix: don't read more than max bytes from a request (#1282) | Kent Quirk
- fix: allow draining traces even if only 1 peer left (#1278) | Yingrong Zhao
- fix: record sample rate in decision cache during stress relief (#1273) | Yingrong Zhao
- fix: SpanLimit shouldn't add SendDelay (#1272) | Kent Quirk
- fix: Use HTTP/2 for all upstream and peer-to-peer connections (#1269) | Irving Popovetsky
- maint: Add some extra logging to pubsub systems (#1308) | Kent Quirk
- maint: Add warning about cli flags (#1293) | Tyler Helmuth
- maint: Delete unused Dockerfile (#1292) | Tyler Helmuth
- maint: add a docker'd Redis TLS local setup (#1291) | Robb Kidd
- maint: change default for MaxSendMsgSize and MaxRcvMsgSize. (#1289) | Kent Quirk
- maint: use non-forked cuckoofilter again (#1287) | Kent Quirk
- maint(deps): bump the minor-patch group with 13 updates (#1304) | dependabot[bot]
- maint(deps): bump the minor-patch group with 4 updates (#1262) | dependabot[bot]
- refactor: Remove error returns from config functions, fix tests. (#1259) | Kent Quirk
- docs: fix CacheCapacity documentation (#1267) | Kent Quirk
This release incorporates a new publish/subscribe (pubsub) system for faster and cleaner communication between Refinery nodes. In particular, the way Refinery uses Redis has changed. See full details in the Release Notes.
- feat: Add metrics to pubsub and peers (#1226) | Kent Quirk
- feat: add otel tracing support for Refinery internal operations (#1218) | Yingrong Zhao
- feat: Add some useful generics (#1206) | Kent Quirk
- feat: gossip config reload information (#1241) | Kent Quirk
- feat: Health/Ready system imported from R3 (#1231) | Kent Quirk
- feat: peer management on pubsub via callbacks (#1220) | Kent Quirk
- feat: track config hash on config reload (#1212) | Yingrong Zhao
- feat: use pub/sub for stress relief (#1221) | Yingrong Zhao
- feat: Working, tested, but unused pubsub system (#1205) | Kent Quirk
- fix: add injection tags for configwatcher (#1246) | Yingrong Zhao
- fix: add peer logging, add debug log of peers (#1239) | Kent Quirk
- fix: allow a single node to activate stress relief mode during significant load increase (#1256) | Yingrong Zhao
- fix: allow sending otel tracing to non honeycomb backend (#1219) | Yingrong Zhao
- fix: Change pubsub interface to use callbacks. (#1217) | Kent Quirk
- fix: clean up a print line (#1250) | Yingrong Zhao
- fix: FilePeers implies no Redis (#1251) | Kent Quirk
- fix: make sure stress relief pub/sub topic is consistent (#1245) | Yingrong Zhao
- fix: make sure to inject Health object as a pointer (#1237) | Yingrong Zhao
- fix: Record hashes at startup in metrics (#1252) | Kent Quirk
- fix: reduce pub/sub messages from stress relief (#1248) | Yingrong Zhao
- fix: remove otel-config-go as a dependency (#1240) | Yingrong Zhao
- fix: remove personal api keys (#1253) | Kent Quirk
- fix: Root spans must have a non-empty parent ID field (#1236) | Mike Goldsmith
- fix: sharder should use peer identity from Peers package (#1249) | Yingrong Zhao
- docs: Tweak docs for reload (#1247) | Kent Quirk
- docs: update vulnerability reporting process (#1224) | Robb Kidd
- maint: add instrumentation for GoRedisPubSub (#1229) | Yingrong Zhao
- maint: Add jitter to peer traffic, fix startup (#1227) | Kent Quirk
- maint: change targeted arch to arm for local development Dockerfile (#1228) | Yingrong Zhao
- maint: last changes before the final release prep (#1254) | Kent Quirk
- maint: update doc based on config changes (#1243) | Yingrong Zhao
- maint: Update licenses (#1244) | Tyler Helmuth
- maint(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 (#1223) | dependabot[bot]
- maint(deps): bump the minor-patch group across 1 directory with 9 updates (#1232) | dependabot[bot]
- fix: Don’t consider log events as root spans (#1208) | @MikeGoldsmith
- maint(deps): bump the minor-patch group with 9 updates (#1198) | @dependabot
- feat: Allow URL encoded dataset in libhoney endpoint paths (#1199) | @MikeGoldsmith
- feat: Add OTLP log endpoints (gRPC & HTTP) (#1187) | @MikeGoldsmith
- maint: Bump libhoney-go to v1.23.1 (#1200) | @MikeGoldsmith
- maint: bump libhoney-go to v1.23.0 (#1192) | @MikeGoldsmith
- maint: bump Husky to v0.30.0 (#1190) | @TylerHelmuth
This release fixes a race condition in OTel Metrics that caused Refinery to crash. This update is recommended for everyone who has OTelMetrics enabled.
- fix: correct race condition in OTel metrics (#1165) | Kent Quirk
Thanks to Joshua Jones for the bug report and diagnosis.
- fix: Clarify what has-root-span does (#1114) | Phillip Carter
- fix: Add validation for ingest keys (#1066) | Kent Quirk
- fix: Deal with locking issues at startup (#1060) | Kent Quirk
- fix: Update cache lookup to use read lock (#1145) | Joshua Jones
- maint: Bump protobuf (#1058) | Kent Quirk
- maint(deps): bump the minor-patch group with 4 updates (#1073) | dependabot[bot]
The main feature is support of Honeycomb Classic ingest keys; there is also a performance improvement for the new
root.
rule feature, and a new metric to track traces dropped by rules.
- feat: new metric for drops caused by rules (#1047) | Kent Quirk
- feat: Shortcut evaluation of rules containing 'root.' (#1018) | Kent Quirk
- feat: support Classic Ingest Keys (#1043) | Jason Harley
- fix: change validation type for PeerManagement.Peers to be url (#1046) | Yingrong Zhao
- fix:
defaulttrue
now shows up in docs asbool
(#1045) | Kent Quirk - fix: Support 'none' as a logger type (#1034) | Kent Quirk
- maint: add labels to release.yml for auto-generated grouping (#1042) | Jamie Danielson
- maint(deps): bump the minor-patch group with 12 updates (#1030) | dependabot[bot]
- maint: group minor/patch dep updates (#1028) | [Alex Boten](https://github.com/Alex Boten)
A bug fix release for a regression introduced in the 2.4.2 bug fix release. It was possible to trigger 500 errors in Refinery's OTLP error responses when sending traces in an unsupported content-type.
- fix: upgrade husky to handle and add tests for invalid content type errors (#1019) | Mike Goldsmith & Robb Kidd
This is a bug fix release for returning a improperly formatted OTLP error responses. OTLP clients receiving the improper response would show errors about parsing the response, masking the error message within the response which complicated solving data send issues. This release is a recommended upgrade for anyone sending OTLP data to Refinery.
- fix: Bring OTLP HTTP error responses in line with spec. (#1010) | Tyler Helmuth
This is a bug fix release for matching fields in the root span context.
The implementation in v2.4.0 can crash if the trace's root span is not present at the time a sampling decision is being made.
Root spans are often not present when the root span is taking longer to complete than the time configured for Refinery to wait for a trace's spans to arrive (TraceTimeout
).
This release contains a fix for this crash and is a recommended upgrade for anyone using this new feature.
- fix: handle root prefix when no root span on trace (#1006) | fchikwekwe
- refactor: add default true type (#998) | fchikwekwe
- Update refinery_rules.md | fchikwekwe
- feat: allow user to sample on root span context (#981) | fchikwekwe
- fix: flaky TestOriginalSampleRateIsNotedInMetaField (#991) | Robb Kidd
- chore: consolidate routine dependency updates (#994) | Robb Kidd
- chore: Revert "chore: fix license tracking (#989)" (#990) | Robb Kidd
- chore: fix license tracking (#989) | Robb Kidd
- fix: allow config bools to default to true (#969) | Robb Kidd
- docs: update configMeta to remove spaces | fchikwekwe
- docs: update refinery docs | fchikwekwe
- docs: Add sampler default intervals to docs (#995) | Mike Goldsmith
- docs: include a warning about surprising not-exists behavior (#979) | Robb Kidd
- maint: Refactor cuckoo cache for reusability (#975) | Yingrong Zhao
- maint: create generic set and use it (#976) | Kent Quirk
- maint: bump deps for 2.4 (#968) | fchikwekwe
- maint: bump Husky (#966) | Kent Quirk
- feat: Add
matches
operator to rules (#939) | Kent Quirk - feat: Add Fields option for rules (#949) | Kent Quirk
- feat: use a computed field for current descendant count in rules (#950) | Yingrong Zhao
- feat: add sent reason for late arriving spans (#936) | Yingrong Zhao
- docs: Add rule conditions documentation (#951) | Kent Quirk
- docs: document stress relief in readme (#955) | Faith Chikwekwe
- fix: Fix memory size parsing (#944) | tvdfly
- fix: handle otlp request with /v1/traces/ path (#933) | Yingrong Zhao
- maint: Update
firstversion
for 2.2 (#957) | Kent Quirk - maint: update codeowners to pipeline (#937) | Jamie Danielson
- maint: update codeowners to pipeline-team (#942) | Jamie Danielson
- maint: update project workflow for pipeline (#938) | Jamie Danielson
- maint: upload test result to circle ci (#940) | Yingrong Zhao
- maint: use command to check for other commands (#941) | Robb Kidd
- docs: Add section on running tests to contributing guide (#953) | Mike Goldsmith
- docs: update doc for release process and config/rules doc generation process (#932) | Yingrong Zhao
- test: Integration tests fail in parallel (#935) | Kent Quirk
- test: try to deflake several flaky tests (#934) | Kent Quirk
- test: attempt to fix flaky integration tests (#945) | Yingrong Zhao
- test: add deterministic fallback test (#948) | Faith Chikwekwe
- test: use
t.Setenv
to set env vars in tests (#947) | Eng Zer Jun
This is a minor release with several new configuration options and bug fixes, and is recommended for all Refinery users. See Release Notes for a summary of changes.
- feat(config): expose IdleTimeout for http.Server (#919) | Yingrong Zhao
- feat: Add GRPC configuration option, rework grpc config a bit (#917) | Kent Quirk
- feat(config): allow separate config for peer and incoming span queue (#916) | Yingrong Zhao
- feat(config): add AddCountsToRoot to report counts data for traces (#910) | Yingrong Zhao
- feat: enable sampling for stdout logger (#892) | Yingrong Zhao
- feat: Add Redis Auth Authentication (#859) | Davin Taddeo
- fix(config/metadata): fix reference in description for MaxMemoryPercentage (#926) | Yingrong Zhao
- fix: default values in new config parameters (#925) | Kent Quirk
- fix: Allow non-ints in memorysize (#914) | Kent Quirk
- fix: load default config and rules file in service file (#900) | Yingrong Zhao
- fix: add refinery version to refinery metric and log (#899) | Yingrong Zhao
- fix: add steps for local setup and config changes to CONTRIBUTING.md (#895) | Yingrong Zhao
- fix: Correct defaults that got messed up in 2.x. (#894) | Kent Quirk
- fix: change sample key to not include args in honeycomb logger (#893) | Yingrong Zhao
- fix: [config]: fix structured logging (#884) | Yingrong Zhao
- fix: ClearFrequencySec crash (#880) | Kent Quirk
- fix: Fix AvailableMemory parsing on the cmd line (#875) | Kent Quirk
- fix: [build] disable cgo for binary-only deploys (#846) | Liz Fong-Jones
- fix: Updating metric registrations in the start function of the EMAThroughputSampler (#845) | Davin Taddeo
- maint: Respond to docs feedback. (#931) | Kent Quirk
- maint: Bump all dependabot deps at once (#927) | Kent Quirk
- maint: Add some detail about release tasks (#915) | Kent Quirk
- maint: update circleci config to build docker images with go 1.20 (#913) | Ryan Katkov
- maint: Update msgpack to v5 (#911) | Kent Quirk
- maint: update hashicorp/golang-lru (#909) | Kent Quirk
- maint: update dependency for x/exp (#908) | Kent Quirk
- maint: bump dependencies (#891) | Tyler Helmuth
- maint: Bump all dependencies at once (#876) | Kent Quirk
- maint: bump dependencies (#856) | Tyler Helmuth
- maint: Refinery Readme improvements (#837) | Mary J
This is a minor release with several new features and bug fixes, and is recommended for all Refinery users. See Release Notes for a summary of changes.
- feat: Add darwin-arm64 to the list of binaries. (#829) | Kent Quirk
- feat: Allow setting throughput for the cluster. (#827) | Kent Quirk
- feat: Record the event that caused trace evaluation. (#828) | Kent Quirk
- feat: Add
has-root-span
operator to rules. (#814) | Kent Quirk - feat: Validate Collection memory config through adding
conflictsWith
validation.(#806) | Mason Legere - feat: add a field with the formula used to decide to activate stress relief (#805) | Terra Field
- fix: Change default ConfigReloadInterval, add jitter, fix docs (#823) | Kent Quirk
- fix: add missing metrics fields (#811) | Kent Quirk
- fix: live reload deadlock (#810) | Kent Quirk
- fix: location and content of sample_rate metric (#809) | Kent Quirk
- fix: Update metadata for bad envvar and regenerate (#800) | Kent Quirk
- docs: Touch up readme (#832) | Kent Quirk
- maint: use Go v1.20 (#831) | Kent Quirk
- maint: convert hardcoded operators to constants (#813) | Kent Quirk
- maint: Bump dependencies (#821) | Kent Quirk
- docs: refinery_rules.md (#802) | Terra Field
This is a patch release to address additional issues with Refinery 2.0.
- fix: Redis scan batch size increase (#794) | Renning Bruns
- fix: Don't inject real metrics if they're not enabled. (#795) | Kent Quirk
- maint: Dont try to publish external PRs to ECR (#797) | Tyler Helmuth
- maint: replace slash with dash in branch name (#796) | Tyler Helmuth
- maint: Docker tagging updates (#791) | Terra Field
This is a patch release to address several issues in the 2.0.0 release. Most of them were related to the new validation and config conversion features. Validation has now been extended to include validation of values specified in environment variables.
- feat: Extended validation of config files (#781) | Kent Quirk
- fix: Remove excess validation for api keys (#786) | Kent Quirk
- fix: Update validate logic to use MemorySize (#782) | Tyler Helmuth
- fix: Promote stress relief activation and deactivation logs to Warn (#784) | Kent Quirk
- fix: Correct peer management default value (#783) | Kent Quirk
- fix: Update file_config to honor GRPCServerParameters.Enabled (#771) | Tyler Helmuth
- fix: Fix adjustmentinterval conversions inside rules-based samples (#768) | Tyler Helmuth
- fix: Inject all metrics and config later (#780) | Kent Quirk
- fix: Add missing validation for LegacyMetrics APIKey (#774) | Tyler Helmuth
- fix: Add ability to handle k8s unit format (#778) | Tyler Helmuth
- fix: Move Unknown log level to zero position (#772) | Tyler Helmuth
- fix: Fix bugs with convert (#764) | Tyler Helmuth
- docs: General Improvements (#789) | Mary J
- docs: Update docs to fix memory description (#785) | Kent Quirk
- maint: Update release notes (#779) | Tyler Helmuth
- maint(deps): bump github.com/klauspost/compress from 1.16.6 to 1.16.7 (#763)
- maint(deps): bump github.com/sirupsen/logrus from 1.9.2 to 1.9.3 (#761)
- maint(deps): bump google.golang.org/protobuf from 1.30.0 to 1.31.0 (#759)
- maint(deps): bump google.golang.org/grpc from 1.55.0 to 1.56.1 (#758)
** NEW MAJOR VERSION ** !! BREAKING CHANGES !! Configuration file formats have changed and some functionality has changed. Use the new converter tool to convert existing configuration and rules files. Binaries are available as part of the release. For more information, see the release notes.
- feat: Rewrite config code without Viper (#654) | Kent Quirk
- feat: Add Warn() to Logger interface (#656) | Kent Quirk
- feat: Config conversion and validation code from one data file (#677) | Kent Quirk
- feat: Refactoring of rules configuration and rules converter (#681) | Kent Quirk
- feat: Remove trace key params -> add meta sample_key (#685) | Kent Quirk
- feat: Use the new configuration system (#690) | Kent Quirk
- feat: Metrics cleanup (#692) | Kent Quirk
- feat: Validation integration, part 1 (#700) | Kent Quirk
- feat: More validation add rules metadata and rules validation (#701) | Kent Quirk
- feat: Integrate validation into the executable (#706) | Kent Quirk
- feat: Write out parsed configs (#707) | Kent Quirk
- feat: Add EMAThroughput sampler support (#708) | Kent Quirk
- feat: Add WindowedThroughput sampler (#709) | Kent Quirk
- feat: Support MaxKeys in configs and add default of 500 (#710) | Kent Quirk
- feat: Add sampler metrics (#714) | Kent Quirk
- feat: Preregister libhoney metrics (#716) | Kent Quirk
- feat: Warn about samplers that might need adjustment (#718) | Kent Quirk
- feat: Allow suffixes on memory size in config (#719) | Kent Quirk
- feat: MaxAlloc improvements (#721) | Kent Quirk
- feat: Allow disabling reload monitoring (#730) | Tyler Helmuth
- feat: Add ability to convert a helm chart (#736) | Kent Quirk
- feat: Enable pyroscope deltaprof (#747) | Liz Fong-Jones
- fix: Check apikeys for otlp requests too (+tests) (#672) | Kent Quirk
- fix: Various config fixes (#684) | Kent Quirk
- fix: Send a small amount of data to peers during stress relief (#688) | Kent Quirk
- fix: Add stress relief reason; fix JSON unmarshal bug (#698) | Kent Quirk
- fix: Log reason for MinimumStartupDuration (#703) | Terra Field
- fix: Rework APIKeys logic (#712) | Kent Quirk
- fix: Update dynamic samplers to count spans instead of traces (#717) | Kent Quirk
- fix: Try a few slots when there's a buffer overrun. (#722) | Kent Quirk
- fix: Make refinery run from minimal config (#724) | Kent Quirk
- fix: Correct dependency injection instability (#741) | Kent Quirk
- fix: Query auth bug fix; add tests (#753) | Kent Quirk
- fix: Improve drop cache performance (#757) | Kent Quirk
- perf: preallocate outbound libhoney attribute map (#754) | Liz Fong-Jones
- docs: Generated Refinery docs for docs site improvements (#752) | Mary J
- docs: Update config_complete.yaml (#751) | Kent Quirk
- docs: Regenerate docs from recent changes (#750) | Kent Quirk
- docs: Update APIKeys reference in config (#748) | Mary J
- maint: Update dynsampler-go to latest to fix bug (#746) | Kent Quirk
- docs: Fix up docs, especially envvar and cmdline (#737) | Kent Quirk
- docs: Fix convert help and docs (#744) | Kent Quirk
- maint: README updates -- round 1 (#742) | Phillip Carter
- maint(deps): Bump github.com/klauspost/compress from 1.16.4 to 1.16.5 (#675) | dependabot[bot]
- maint(deps): Bump github.com/prometheus/client_golang from 1.14.0 to 1.15.1 (#676) | dependabot[bot]
- refactor: Rename fields for clarity in an E&S world (#680) | Kent Quirk
- maint: Update dependencies (#699) | Kent Quirk
- docs: Improve generated documentation (#711) | Kent Quirk
- maint: Generate docs better suited to docs team prefs (#713) | Kent Quirk
- maint: Remove remaining references to obsolete fields (#720) | Kent Quirk
- docs: Refinery Rules copyediting (#731) | Mary J
- ci: Update build_binaries to build convert (#732) | Tyler Helmuth
- docs: Add generator for website docs (#733) | Kent Quirk
- docs: Refinery Config copyediting (#734) | Mary J
- chore: Switch to temp credentials for CI (#735) | Nathan Lincoln
- docs: Fix up docs, especially envvar and cmdline (#737) | Kent Quirk
- maint: Clarify 1.x configs for 1.x folks, remove old stuff (#739) | Phillip Carter
- Documentation fix | Kevan Carstensen
- WindowedThroughput sampler (in dynsamplers-go) | Yi Zhao
Adds many fixes for existing features such as meta fields for use with stress relief mode. Adds ability to annotate sample rates that were already set upstream before refinery sampling for debugging purposes.
- feat: annotate incoming sample rate (#658) | Faith Chikwekwe
- fix: Replace incorrectly used Systemd Alias directive with a WantedBy (#657) | Irving Popovetsky
- fix: add hostname to span during stress relief mode (#666) | Faith Chikwekwe
- fix: only decorate late spans when configured to do so (#665) | Faith Chikwekwe
- fix: validate cache overrun strategy for stress relief mode (#664) | Faith Chikwekwe
- docs: update doc to remove deprecated field name (#659) | Faith Chikwekwe
- fix: Remove Stop() function from stress relief (#645) | Kent Quirk
- chore: Spelling (#644) | Josh Soref
- fix: tweak timeouts (#647) | Faith Chikwekwe
- fix: correct syntax error in config_complete.toml (#639) | Hazel Weakly
- chore: Update MetricsReportingInterval in config_complete.toml (#653) | Davin
- maint: switch dependabot to collection (#660) | [Vera Reynolds](https://github.com/Vera Reynolds)
- maint(deps): bump google.golang.org/protobuf from 1.28.1 to 1.30.0 (#663) | dependabot[bot]
- maint(deps): bump github.com/honeycombio/husky from 0.21.0 to 0.22.2 (#662) | dependabot[bot]
- maint(deps): bump github.com/klauspost/compress from 1.16.3 to 1.16.4 (#661) | dependabot[bot]
- maint(deps): bump go.uber.org/automaxprocs from 1.5.1 to 1.5.2 (#650) | dependabot[bot]
- maint(deps): bump github.com/honeycombio/dynsampler-go from 0.3.0 to 0.4.0 (#649) | dependabot[bot]
- maint(deps): bump google.golang.org/grpc from 1.52.3 to 1.54.0 (#652) | dependabot[bot]
- maint(deps): bump github.com/honeycombio/husky from 0.21.0 to 0.22.2 (#651) | dependabot[bot]
- maint(deps): bump github.com/klauspost/compress from 1.16.0 to 1.16.3 (#648) | dependabot[bot]
- maint: Add labels to docker image (#640) | Tyler Helmuth
- maint: Add LICENSES dir (#638) | Tyler Helmuth
This is a significant new release of Refinery, with several features designed to help when operating Refinery at scale:
For details on all of the new features, please see the new Release Notes document New features must be enabled by adjusting configuration.
- feat: Add configuration for trace and parent ID field names (#630) | Davin Taddeo
- feat: allow ability to add new attributes to refinery data (#621) | Faith Chikwekwe
- feat: Add ability to set Redis database and prefix in config (#614) | Kent Quirk
- perf: Improve performance of stress relief (#604) | Kent Quirk
- feat: Stress Relief system (#594) | Kent Quirk
- feat: extend and unify metrics system (#593) | Kent Quirk
- feat: allow user to convert datatype if valid (#585) | Faith Chikwekwe
- feat: Implement alternative sharding using rendezvous hash to improve dynamic scalability (#570) | Kent Quirk
- feat: On shutdown, remove ourself from the peers list (#569) | Kent Quirk
- feat: Add cuckoo-based drop cache (#567) | Kent Quirk
- feat: Extract Sent Cache to an interface for future expansion (#561) | Kent Quirk
- fix: do not send sample rate in dry run (#611) | Faith Chikwekwe
- fix: Remove API key logging (#606) | Tyler Helmuth
- fix: Fix flaky tests, clean up logic on rules (#596) | Kent Quirk
- fix: Add missing done channel to fix build (#573) | Kent Quirk
- chore: publish should only happen on main (#627) | Kent Quirk
- chore: Publish every build to honeycomb's ecr (#613) | Kent Quirk
- docs: update FieldList (#591) | Tyler Helmuth
- docs: add environment variables (#589) | Tyler Helmuth
- chore: Update CODEOWNERS (#588) | Tyler Helmuth
- chore: Change workflow to use Collections board (#587) | Kent Quirk
- chore: update dependabot (#583) | Kent Quirk
- chore: update validate PR title workflow (#572) | Purvi Kanal
- chore: validate PR title (#571) | Purvi Kanal
- refactor: Change Router to use TraceServer (#607) | Tyler Helmuth
- maint(deps): bump golang.org/x/net from 0.4.0 to 0.7.0 (#628) | dependabot[bot]
- maint(deps): bump github.com/pelletier/go-toml/v2 from 2.0.6 to 2.0.7 (#620) | dependabot[bot]
- maint(deps): bump github.com/honeycombio/husky from 0.19.0 to 0.21.0 (#619) | dependabot[bot]
- maint(deps): bump github.com/klauspost/compress from 1.15.15 to 1.16.0 (#618) | dependabot[bot]
- maint(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#616) | dependabot[bot]
- maint(deps): bump github.com/honeycombio/husky from 0.17.0 to 0.19.0 (#603) | dependabot[bot]
- maint(deps): bump github.com/hashicorp/golang-lru from 0.5.4 to 1.0.1 (#602) | dependabot[bot]
- maint(deps): bump github.com/klauspost/compress from 1.15.12 to 1.15.15 (#601) | dependabot[bot]
- maint(deps): bump github.com/honeycombio/dynsampler-go from 0.2.1 to 0.3.0 (#600) | dependabot[bot]
- maint(deps): bump grpc to 1.52.3 (#599) | Kent Quirk
- maint(deps): bump github.com/spf13/viper from 1.13.0 to 1.15.0 (#597) | dependabot[bot]
- maint(deps): Bump github.com/prometheus/client_golang from 1.13.0 to 1.14.0 (#576) | dependabot[bot]
- maint(deps): Bump github.com/tidwall/gjson from 1.14.3 to 1.14.4 (#575) | dependabot[bot]
- maint(deps): Bump github.com/hashicorp/golang-lru from 0.5.4 to 1.0.1 (#574) | dependabot[bot]
Adds new query command to retrieve configuration metadata, and also allows for a new (optional) cache management strategy that should be more effective at preventing OOM crashes in situations where memory is under pressure.
- Add command to query config metadata (#556) | @kentquirk
- New cache management strategy (#547) | @kentquirk
- Set content-type on marshalToFormat (#548) | @kentquirk
- Bump google.golang.org/grpc from 1.50.0 to 1.50.1 (#553)
- Bump github.com/fsnotify/fsnotify from 1.5.4 to 1.6.0 (#552)
- Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#551)
- Bump github.com/honeycombio/libhoney-go from 1.16.0 to 1.18.0 (#550)
- Bump github.com/klauspost/compress from 1.15.11 to 1.15.12 (#549)
- Track span count and optionally add it to root (#532) | @kentquirk
- Add support for metrics api key env var (#535) | @TylerHelmuth
- RedisIdentifier now operates properly in more circumstances (#521) | @Baliedge
- Properly set metadata to values that will work. (#523) | @kentquirk
- maint: add new project workflow (#537) | @vreynolds
- Bump go version to 1.19 (#534) | @TylerHelmuth
- Bump github.com/klauspost/compress from 1.15.9 to 1.15.11 (#531)
- Bump github.com/honeycombio/husky from 0.15.0 to 0.16.1 (#529)
- Bump github.com/prometheus/client_golang from 1.12.2 to 1.13.0 (#528)
- Bump github.com/spf13/viper from 1.12.0 to 1.13.0 (#527)
- Bump Husky to v0.17.0 (#538) | @kentquirk
Full Changelog: https://github.com/honeycombio/refinery/compare/v1.17.0...v1.18.0
- Allow adding extra fields to error logs (#514) | @kentquirk
- Allow BatchTimeout to be overridden on the libhoney Transmission (#509) | @leviwilson
- Consolidate honeycomb metrics to use single lock & fix concurrent read/write (#511)| @MikeGoldsmith
- Fix variable shadowing bug (#519)| @kentquirk
This release contains a number of small new features to assist in running refinery more effectively:
- Adds new endpoints to help in debugging refinery rules (see README.md)
- Fixes issues with SampleRate
- Adds some new configuration parameters (see the *_complete.toml files for more)
- Conforms to the GRPC standard for health probes
- Accepts OTLP/JSON traces and conforms to the most recent OTLP trace specification
- Add /query endpoints to help debug refinery rules (#500, #502) | kentquirk
- Implement grpc-health-probe (#498) | abatilo
- Make gRPC ServerParameters configurable (#499) | abatilo
- Fix sample rate for late spans (#504) | kentquirk
- Optionally record why a sample decision was made (#503) | kentquirk
- Added PeerManagement.Timeout config option (#491) | thrawn01
- Add 'meta.refinery.original_sample_rate' (#508) | epvanhouten
- maint: improvements to GitHub operation (#474, #477, #478) | JamieDanielson, vreynolds
- Bump github.com/stretchr/testify from 1.7.2 to 1.8.0 (#472) | dependabot
- Bump github.com/sirupsen/logrus from 1.8.1 to 1.9.0 (#484) | dependabot
- Bump google.golang.org/grpc from 1.46.2 to 1.49.0 (#485, 494) | dependabot
- Bump github.com/honeycombio/libhoney-go from 1.15.8 to 1.16.0 (#487) | dependabot
- Bump github.com/gomodule/redigo from 1.8.8 to 1.8.9 (#488) | dependabot
- Bump github.com/klauspost/compress from 1.15.7 to 1.15.9 (#495) | dependabot
- Bump github.com/tidwall/gjson from 1.14.1 to 1.14.3 (#497) | dependabot
- Update github.com/honeycombio/husky to latest and fix breaking changes (#505) | kentquirk
- Go mod tidy (#507) | kentquirk
- @abatilo made their first contribution in #498
- @thrawn01 made their first contribution in #491
- @epvanhouten made their first contribution in #508
Full Changelog: https://github.com/honeycombio/refinery/compare/v1.15.0...v1.16.0
- Add rule Scope configuration option to rules-based sampler (#440) | isnotajoke
- Replace hand-rolled binary.BigEndian.Uint32 with the real deal (#459) | toshok
- Validate successful span scoped rules test (#465) | MikeGoldsmith
- Create helm-chart issue on release (#458) | MikeGoldsmith
- github_token needs underscore not hyphen (#464) | @JamieDanielson
- Replace legacy with classic in readme (#457) | MikeGoldsmith
- Bump github.com/spf13/viper from 1.10.1 to 1.12.0 (#461)
- Bump github.com/stretchr/testify from 1.7.1 to 1.7.2 (#467)
- Bump github.com/honeycombio/husky from 0.10.5 to 0.10.6 (#460)
- Bump github.com/klauspost/compress from 1.15.4 to 1.15.6 (#466)
- Bump github.com/prometheus/client_golang from 1.12.1 to 1.12.2 (#463)
- Fix crash bug related to sharding (#455) | @kentquirk
- bump husky to 0.10.5 (#450) | @MikeGoldsmith
- Bump github.com/klauspost/compress from 1.15.2 to 1.15.4 (#451) | dependabot
- Bump github.com/tidwall/gjson from 1.14.0 to 1.14.1 (#444) | dependabot
- Bump github.com/fsnotify/fsnotify from 1.5.1 to 1.5.4 (#441) | dependabot
- add a note about reloading the configuration when running within docker (#448) | @leviwilson
- README: remove incorrect mention of sending SIGUSR1 to trigger a configuration reload (#447) | @jharley
- Add support for environment and dataset rules with same names (#438) | @MikeGoldsmith
- Update otlp to v0.11.0 (#437) | @MikeGoldsmith
- Update go to 1.18 (#430) | @MikeGoldsmith
Note: The docker image used to create the binaries has been updated to a version that does not suffer a OpenSSL CVE.
- Add parsing for nested json fields in the rules sampler (#418) | @ecobrien29
- Update husky to v0.10.3 (#431) | @MikeGoldsmith
- Bump google.golang.org/grpc from 1.43.0 to 1.45.0 (#428)
- Bump github.com/klauspost/compress from 1.13.6 to 1.15.1 (#427)
- Bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (#426)
- Bump github.com/prometheus/client_golang from 1.11.0 to 1.12.1 (#390)
- fix: error log event metadata (#422) | @vreynolds
- Create checksums when building binaries (#423) | @MikeGoldsmith
- Cache google ko deps between workflows (#424) | @MikeGoldsmith
- feat: add support for env name from auth (#410) | @JamieDanielson
- update aws-client orb to latest (#409) | @MikeGoldsmith
Note: Environment & Services Support requires v1.12.0 and higher
Do not use this version with Environment & Services.
- Add Environment & Services support (#403) | @MikeGoldsmith
- docs: add helm charts step to releasing (#400) | @vreynolds
- added username in config for redis auth (#397) | @ecobrien29
- build: add ARM64 (aarch64) RPM artifact (#395) | @jharley
- fix: deadlock when reloading configs (#398) | @vreynolds
- Fixed "honeeycomb" typo in log output when reloading config (#394) | @looneym
- Honor env. variable to set gRPC listener address (#386) | @seh
- Add retries when connecting to redis during init (#382) | @MikeGoldsmith
- Properly set meta.refinery.local_hostname field (#387) | @jharley
- docs: update rules example (#378) | @vreynolds
- Bump github.com/gomodule/redigo from 1.8.5 to 1.8.8 (#374)
- Bump github.com/spf13/viper from 1.9.0 to 1.10.1 (#375)
- Bump google.golang.org/grpc from 1.42.0 to 1.43.0 (#372)
- Add re-triage workflow (#368) | @vreynolds
- Bump libhoney & golang (#373) | @lizthegrey
- Bump github.com/honeycombio/husky from 0.5.0 to 0.6.0 (#370)
- Bump github.com/prometheus/client_golang from 0.9.4 to 1.11.0 (#357)
- Make MaxBatchSize configurable (#365) | @JamieDanielson
- Bump husky to v0.5.0 (#366) | @MikeGoldsmith
- Bump husky to v0.4.0 (#361) | @MikeGoldsmith
- Replace internal duplicated code with Husky (#341) @MikeGoldsmith
- Also fixes segfaults caused by nil appearing in OTLP data as described in (#358)
- Improves histogram buckets over the default set (#355) @bdarfler
- Update dependabot to monthly (#356) @vreynolds
- Revert "Use alpine as base image (#343)" (#352)
- Add an --interface-names flag (#342) | @ismith
- bump libhoney-go to v1.15.6
- empower apply-labels action to apply labels (#344)
- Bump github.com/honeycombio/libhoney-go from 1.15.4 to 1.15.5 (#327)
- Re-add missing docker login when publishing (#338)
- Build multi-arch docker images during publish CI step (#336) @MikeGoldsmith
- Fix for race condition in prometheus metrics (#324) @estheruary
- Update race condition fix to use RWLock instead of Lock (#331) @MikeGoldsmith & @robbkidd
- Build docker images on all builds and publish only on tag (#328) @MikeGoldsmith
- Add dynamic sampler support to rules based samplers (#317) @puckpuck
- Publish arm64 Docker images (#323) @MikeGoldsmith
- Adds Stalebot (#321) @JamieDanielson
- Switch lifecycle terminology to maintained (#315) cartermp
- Add NOTICE (#314) cartermp
- Add issue and PR templates (#307) @vreynolds
- Add OSS lifecycle badge (#304) @vreynolds
- Add community health files (#303) @vreynolds
- Bump github.com/spf13/viper from 1.8.1 to 1.9.0 (#320) [dependabot[bot]]
- Bump github.com/json-iterator/go from 1.1.11 to 1.1.12 (#316) [dependabot[bot]]
- Bump github.com/klauspost/compress from 1.13.4 to 1.13.6 (#319) [dependabot[bot]]
- Bump github.com/fsnotify/fsnotify from 1.5.0 to 1.5.1 (#311) [dependabot[bot]]
- Bump google.golang.org/grpc from 1.39.1 to 1.40.0 (#305) [dependabot[bot]]
- Bump github.com/fsnotify/fsnotify from 1.4.9 to 1.5.0 (#308) [dependabot[bot]]
- Bump github.com/klauspost/compress from 1.13.3 to 1.13.4 (#306) [dependabot[bot]]
- Add span.kind when ingesting OTLP (#299)
### Maintenance
- Bump google.golang.org/grpc from 1.39.0 to 1.39.1 (#300)
- Bump github.com/klauspost/compress from 1.13.2 to 1.13.3 (#301)
- Bump github.com/honeycombio/libhoney-go from 1.12.4 to 1.15.4 (#295)
- Bump github.com/klauspost/compress from 1.10.3 to 1.13.2 (#297)
- Add support for OTLP over HTTP/protobuf #279 | @MikeGoldsmith
- Bump github.com/sirupsen/logrus from 1.2.0 to 1.8.1 (#290)
- Bump google.golang.org/grpc from 1.37.1 to 1.39.0 (#288)
- Bump github.com/gomodule/redigo from 1.8.4 to 1.8.5 (#287)
- Bump github.com/spf13/viper from 1.7.0 to 1.8.1 (#274)
- Bump github.com/gogo/protobuf from 1.3.1 to 1.3.2 (#242)
- Bump github.com/golang/protobuf from 1.4.3 to 1.5.2 (#252)
- Bump github.com/grpc-ecosystem/grpc-gateway from 1.12.1 to 1.16.0 (#233)
- Add support to "does-not-contain" operator on RulesBasedSampler #267 | @tr-fteixeira
- Ensure span links and events generate events and get resource attrs #264 | @MikeGoldsmith
- OTLP span events are now supported, they were being dropped on the floor previously (#261) | @dstrelau
- Add
UseTLSInsecure
config option to skip TLS verification with Redis (#254) | @beanieboi - Add
AddHostMetadataToTrace
config option to add Refinery hostname information to spans (#250) | @jharley - Additional config validation: verify that sample rate trace field key is specified, if needed (#248) | @paulosman
- Remove redundant peer/api suffix from response error metrics (#247) | @vreynolds
api_response_errors_api
,api_response_errors_peer
,peer_response_errors_api
,peer_response_errors_peer
- replaced by
api_response_errors
,peer_response_errors
- Fix rules sampler to emit correct metric (#236) | @isnotajoke
- Previously
dynsampler_num_dropped
was emitted, nowrulessampler_num_dropped
will be emitted
- Previously
- Update README content (#239) | @jjziv
- Move from garyburd Redigo to supported redigo (#249) | @verajohne
- Bump google.golang.org/grpc from 1.32.0 to 1.37.1 (#253)
- Bump github.com/prometheus/client_golang from 0.9.3 to 0.9.4 (#240)
- Bump github.com/pkg/errors from 0.8.1 to 0.9.1 (#232)
- Bump github.com/stretchr/testify from 1.5.1 to 1.7.0 (#231)
- Bump github.com/jessevdk/go-flags from 1.4.0 to 1.5.0 (#230)
- Bump github.com/hashicorp/golang-lru from 0.5.1 to 0.5.4 (#229)
- Refinery startup issues in v1.1.0
- Add support environment variables for API keys (#221)
- Removes whitelist terminology (#222)
- Log sampler config and validation errors (#228)
- Pass along upstream and peer metrics configs to libhoney (#227)
- Guard against nil pointer dereference when processing OTLP span.Status (#223)
- Fix YAML config parsing (#220)
- Add test for OTLP handler, including spans with no status (#225)
Initial GA release of Refinery