deps: Migrate pcapreceiver from google/gopacket to gopacket/gopacket#3144
Merged
Dylan-M merged 2 commits intoFeb 18, 2026
Conversation
d795e03 to
0276a6f
Compare
2 tasks
0276a6f to
9fc04e3
Compare
mrsillydog
approved these changes
Feb 18, 2026
mrsillydog
added a commit
that referenced
this pull request
Apr 2, 2026
* chore: Refactor `internal/version` into root `version` folder (#3145) * refactor internal/version into root version folder * update component doc for ocb use case * ci * dont return cfg func * fix: Update Makefile (#3150) * Update Makefile * Update Makefile * chore: Remove ubi8 docker builds from goreleaser config (#3159) * chore: Remove ubi8 docker builds from goreleaser config * chore: Remove ubi8 Dockerfile * deps: Migrate pcapreceiver from google/gopacket to gopacket/gopacket (#3144) * deps: Migrate pcapreceiver from google/gopacket to gopacket/gopacket v1.5.0 * Updated root go.mod and go.sum * feat: Add Windows ARM64 MSI support (#3152) * feat: Add Windows ARM64 build target to Makefile * refactor: Reintegrate Windows builds into unified goreleaser config * feat: Add ARM64 support to WiX MSI template * feat: Update build scripts for multi-arch MSI * ci: Add ARM64 MSI builds with WiX 3.14.1 * fix: Disable CGO for Windows builds to avoid MinGW assembly errors * ci: Consolidate MSI builds to single windows-2022 runner * ci: Redirect TMPDIR to runner temp to avoid /tmp exhaustion * ci: Redirect all temp vars to runner temp for disk space * chore: Add windows/build/ to gitignore * ci: Remove temp directory redirects from release-test workflow * chore: Remove -amd64 suffix from MSI (#3169) * chore(chronicleexporter): don't treat 429s as permanent errors (#3170) * feat: REST API Receiver `min_poll_interval` (#3165) * min_poll_interval * update polling reset behavior - increase poll on partial response * fix race conditions in tests * feedback * backoff multiplier * adaptive polling docs * chore: Add .idea/ to .gitignore (#3173) Ignore JetBrains IDE project files to keep them out of version control. * deps: OTel v0.146.0 (#3171) * deps: OTel v0.146.0 * Update honeycomb, remove text extension replace directive * More honeycomb nonsense * Update go.mod to 1.25.7 to dodge linker bug * chore(chronicleexporter): retry on 502 & 504 errors (#3176) * deps: v1.94.0 (#3177) * deps(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 * deps(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 in /receiver/pluginreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.7 to 1.32.8 in /receiver/awss3rehydrationreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.22.0 to 1.22.1 in /extension/awss3eventextension * deps(deps): bump github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.22.0 to 1.22.1 in /receiver/awss3rehydrationreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.7 to 1.32.8 in /receiver/awss3eventreceiver * deps(deps): bump google.golang.org/api from 0.266.0 to 0.267.0 in /exporter/googlecloudexporter * deps(deps): bump google.golang.org/api from 0.266.0 to 0.267.0 in /exporter/googlemanagedprometheusexporter * deps(deps): bump google.golang.org/api from 0.266.0 to 0.267.0 in /receiver/googlecloudstoragerehydrationreceiver * deps(deps): bump google.golang.org/api from 0.266.0 to 0.267.0 in /exporter/googlecloudstorageexporter * deps(deps): bump github.com/dgraph-io/badger/v4 from 4.8.0 to 4.9.1 in /extension/badgerextension * Fix test * Update modules to v1.94.0 * chore: Ignore MSI signatures (#3179) * chore: Modules v1.94.1 (#3180) * fix(release): Set GORELEASER_CURRENT_TAG (#3181) * fix: Set GORELEASER_CURRENT_TAG * Update module versions * chore(ci): Don't double-run tests (#3178) * chore: Explicitly do not trigger a release on the version package being pushed (#3182) Do not trigger a release on the version package being pushed * chore: Update opamp-go library to v0.23.0 (#3164) * fix: expr-lang rename (#3198) * fix: expr-lang rename * Fix tests * chore(release): Split build-windows targets into parallel operation (#3200) * chore(release): Split build-windows targets into parallel operation * Forget j2, use a matrix * Undo wrong Makefile change * fix: Fix deadlock in measurementsSender/topologySender when CustomCapabilities not received (#3162) ### Proposed Change I didn't run into this issue until using the new opamp-gateway which caused a deadlock because the gateway was not forwarding CustomCapabilities to all downstream agents. Since the caller calls this code whenever the `manager.yaml` is changed, calling it multiple times can lead to a deadlock where the collector is stuck in a `Configuring` state. While this is unlikely to happen outside of use with the opamp-gateway and it now includes a fix to forward the CustomCapabilities, this may not be seen in the wild but is still the right thing to do. ##### Checklist - [ ] Changes are tested - [ ] CI has passed * fix: make version ref (#3202) fix make version ref * chore: Update available components script with OTel v0.146.0 renames (#3203) * feat(chronicleexporter): add agent metrics support to HTTPS exporter (#3199) * feat(chronicleexporter): add agent metrics support to HTTPS exporter Add agent metrics (CPU seconds, memory, collector uptime) to the HTTPS SecOps exporter, matching existing gRPC exporter behavior. The HTTP exporter now creates a hostMetricsReporter on Start when CollectAgentMetrics is enabled, POSTs BatchCreateEventsRequest as JSON to the importStatsEvents REST endpoint, and records sent log counts. * feat: Develop the GCS Pub Sub Event receiver (#3160) * Added gcp pub/sub event receiver * chore: added go files * chore: Add gcspubeventreceiver to dependabot config Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Fix goimports formatting for gcspubeventreceiver Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: Exclude gcspubeventreceiver metadata from gosec Same exclusion as awss3eventreceiver for generated telemetry code. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Address review feedback for gcspubeventreceiver - Use sync.Pool for worker reuse to reduce GC pressure on high-throughput message handling - Return all Shutdown close errors via errors.Join instead of swallowing pubsub/GCS client errors - Replace fragile strings.Contains error checks with typed GCS SDK errors (storage.ErrObjectNotExist, *googleapi.Error) - Deduplicate DLQ condition logic into a shared dlqConditionKind helper to prevent drift - Fix unsafe type assertion in lineParser.AppendLogBody with proper error return Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test: Add tests for non-copied worker files in gcspubeventreceiver - offset_test.go: marshal/unmarshal roundtrip, empty data no-op, invalid JSON, storage key constant - line_parser_test.go: parse with various inputs and offsets, AppendLogBody type assertion error path - dlq_test.go: direct tests of dlqConditionKind and isDLQConditionError with GCS typed errors (storage.ErrObjectNotExist, *googleapi.Error) - worker_test.go: ProcessMessage filtering tests using pstest (event type, missing attrs, bucket/key filters) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: Tidy go.mod for gcspubeventreceiver after adding tests Promote grpc to a direct dependency and add go-cmp and aip as indirect dependencies required by the pstest package used in worker tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: Tidy gcspubeventreceiver go.mod after merge with main Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: Add gcsevent.parse_errors metric for skipped log records Increments a counter each time an individual log record within a GCS object is skipped due to a parse or body-append error. This makes the intentional per-record data loss observable without causing the whole message to nack (retrying a malformed record would hit the same error). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: Fix goimports ordering in generated_logs_test.go Move stdlib imports before third-party imports to satisfy goimports. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: added readme.md * chore addressed comments * chore: Rename gcspubeventreceiver to gcspubsubeventreceiver Rename the package directory, module path, package declarations, all internal import paths, and all external references (go.mod, factories, Makefile, dependabot) to the more descriptive gcspubsubeventreceiver. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: Bump pubsub and storage to match root go.mod versions Update cloud.google.com/go/pubsub from v1.49.0 to v1.50.1 and cloud.google.com/go/storage from v1.50.0 to v1.60.0 to align with the versions used in the root go.mod. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: Deduplicate concurrent Pub/Sub messages for the same GCS object GCS delivers OBJECT_FINALIZE notifications at-least-once, meaning two distinct Pub/Sub messages can arrive for the same object within milliseconds. Since sub.Receive dispatches each message to a separate goroutine, both would be processed concurrently, producing duplicate log records. Add an inFlight sync.Map to logsReceiver that tracks (bucket/object) keys currently being processed. When handleMessage receives a message whose key is already in-flight, it acks the message immediately without invoking the worker. The key is removed via defer so it is always cleaned up regardless of processing outcome. Add tests covering both the deduplication path and key cleanup. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: Fix goimports alignment in receiver_test.go Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: Redesign GCS receiver from streaming pull to synchronous pull-based polling Replace sub.Receive() streaming pull with synchronous Pull() RPCs, a fixed worker pool, and two-layer deduplication — mirroring the proven AWS S3/SQS receiver architecture. Key changes: - Single poller goroutine issues Pull() RPCs via cloud.google.com/go/pubsub/apiv1 - Fixed N worker goroutines consume from a buffered channel (controlled concurrency) - Batch deduplication by (bucket, object, generation) within each Pull response - Cross-batch recentTracker with configurable TTL for sequential duplicates - Explicit ack deadline extension per worker (ModifyAckDeadline), analogous to SQS visibility timeout extension - Removed inFlight sync.Map and sub.Receive() streaming pull entirely - New config fields: poll_interval (250ms default), dedup_ttl (5m default) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: Remove stale doc.go and dependabot entry for gcspubsubeventreceiver The receiver no longer uses Pub/Sub streaming pull, so doc.go's description was outdated. Moved the //go:generate directive to factory.go and removed the file. Also removed the dependabot.yml entry since it tracked the old module. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: addressed comments for docs --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore: make tidy (#3218) * feat: Scaffold OCSF Standardization Processor (#3206) * processor scaffolding * fix go mod * development * ci fixes * dependabot * update name * safter config assertion * feat: Create OCSF standardization processor config (#3219) * added config w/ tests and updated readme * add omc agent memory to gitignore * lint fixes * fix(chronicleexporter): align error & retry handling with otel spec (#3217) * fix: align chronicle exporter error handling with otel spec * add spec reference for shouldretryhttp * rebase recovery * fix ci checks * revert unintentional change * add tests for retry throttling logic * feat: OCSF create field mapping logic (#3220) * build processor mapping * add test files * small tweaks * update naming * update var names * fix logic * update logs and better var naming * feat: Added OCSF codegen and v1.0.0 results (#3221) * added codegen and v1 results * fix codegen format * update map structure package * regen * go mod tidy * change codegen to use url * add schema to gitignore * updates to codegen * chore(chronicleexporter): revert error handling changes (#3223) * chore(release): Split Docker steps off into its own workflow (#3207) * chore(release): Split Docker off into its own workflow * Temporarily trigger on git push to this branch * Test run to list contents * Adjust tar directory structure appropriately * Revert workflow back to manually triggered * Rename flow to release-containers, add local make target to build images * chore(ci): Skip parts of PR CI that aren't required (#3204) * chore(ci): Skip parts of PR CI that aren't required * Use namespace runner for namespace checkout action * Try adjusting outputs * chore: Allow individual targets with manual_msi_build (#3226) * chore: Allow individual targets with manual_msi_build * Claude fix * fix: preserve env var references in manager.yaml during OpAMP config updates (#3205) When the server pushes config updates (e.g. measurements_interval), the managerReload function was marshaling the in-memory config (which has resolved env var values) back to YAML, replacing ${env:...} references with plaintext secrets. This changes to a read-modify-write approach: read the raw on-disk file (which preserves env var strings), selectively update only the updatable fields, and write back. Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> * fix(ci): reference matrix.skip properly (#3231) * feat: OCSF Standardization Processor (#3222) * add other ocsf versions * rerun codegen based on updates * feat: Add OCSF configuration validation of required fields (#3224) * add v1 validation * basic configuration validation * validate all ocsf required fields * clean up duplicate test code * fix lint * fix gosec * feat: OCSF runtime schema enforcement (#3227) * basic body validation * added tests * update comment * feat: Enum, regex, maxlen, and range validation (#3228) * type validations * add recursive validation * update ocsf readme * feat: Improve OCSF validation speed (#3230) * improve ocsf validation speed * make benchmark slightly more accurate * clean up code * feat: Add type coercion for OCSF standardization to make mapping easier (#3250) * add type coercion to make mapping easier * minor cleanup * add license * feat: Include OCSF processor in BDOT (#3251) * Move OCSF processor to Alpha and include it in BDOT * update benchmark to be more complex and add run results to readme * fix format * make fmt * fix: AI-found bugs in the Windows Event trace receiver (#3229) * fix: AI-found bugs in the Windows Event trace receiver * Use other validation method * fix(webhookexporter): classify HTTP errors as retryable (#3252) * fix(webhookexporter): classify HTTP errors as retryable or permanent per OTLP spec The webhook exporter was treating all non-2xx HTTP responses as retryable errors. This caused unnecessary retries on permanent errors like 400, 401, and 403, wasting resources and delaying error reporting. Uses the shared exporterutils.ShouldRetryHTTP() helper to classify errors per the OTLP spec. Only 429, 502, 503, and 504 are retried. Retry-After headers are respected via exporterhelper.NewThrottleRetry(). All other non-2xx responses are marked as permanent errors. * chore: added warn logs * fix(chronicleexporter): fix cpu time metric unit (#3270) * fix(chronicleexporter): fix metrics bugs and simplify logic (#3272) fix(chronicleexporter): recordSent bugs and cleanup * chore: Add AI team to CODEOWNERS (#3275) * feat(chronicleexporter): allow overriding endpoint & api version for HTTPS (#2167) * Allow for custom enpoints in chronicleexporter/http_exporter and ignoring Location when building the endpoint. * update README * review suggestions * clarify comments & README, rename var * fix(receiver/windowseventtrace): Make session controller respect match keyword config flags (#3276) * fix(install): allow --file with --no-gpg-check in offline install (#3279) * feat: Use mdatagen for OCSF processor (#3278) * use mdatagen for ocsf processor * use same version as everything else * make fmt * feat: OCSF Automatically add category_uid and type_uid (#3281) * automatically add category_uid and class_uid * tests, code cleanup * add exported type comment * deps: Update OTel to v0.147.0 (#3282) update otel to v0.147.0 * OpAMP Gateway Extension (#3115) * skeleton * add single docker target * Observathon/gateway client (#2710) * wip * wip2 * actually use the server * add single docker target * remove tls, change listen path * wip * lets give it a shot * correct keyword --------- Co-authored-by: Sam Hazlehurst <sam.hazlehurst@observiq.com> * ctx & fix pool add * more logging * more logging & fix if check * dont sent header * add metrics * sync.Map and better pooling * feat: opamp gateway extension using 2 goroutines (read/write) for each downstream and upstream connection * extension tests * add TestGatewayUpstreamConnectionAffinity * add TestGatewayUpstreamConnectionAffinity * agent affinity passing * fixed merge * extract reader before connection refactor * separate upstream and downstream connections * track connected status and only select connected upstream connections * only connect downstream if upstream is available * better handling of upstream disconnect * close downstream connections when upstream closes * cleanup logs and metrics * direction attribute on metrics * rename metrics and add latency * fix message.number * add sequenceNum to info logging * authenticate connections before creating the websocket * fix tests * refactor to use internal package * address a few minor cleanup items * use configtls * tests * message_reader tests and fix flaky test * README * fix and verify gateway restart * add spec * ci * generate * use same version of go * exclude generated directory from gosec * fix a metric name and regenerate * gosec * fix race * add authTimeout and support tls * avoid possible data race with err * remove dead code * remove closed downstream connections from agentConnections * switch to "confighttp.ServerConfig" for server configuration * relay CustomCapabilities on the first message to every downstream agent and make upstream_connection.send() block * add tests for injecting CustomCapabilities * use select in downstreamConnection.send * add entry for opampgateway extension * use Shutdown context * remove stale TODOs * update go version * update dependencies --------- Co-authored-by: Dakota Paasman <122491662+dpaasman00@users.noreply.github.com> Co-authored-by: Sam Hazlehurst <sam.hazlehurst@observiq.com> * deps: Dependabot v1.95.0 (#3283) * deps(deps): bump github.com/aws/aws-sdk-go-v2/service/sqs from 1.42.21 to 1.42.23 in /extension/awss3eventextension * deps(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.8 to 1.32.11 in /receiver/awss3rehydrationreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.22.3 to 1.22.5 in /extension/awss3eventextension * deps(deps): bump github.com/aws/aws-sdk-go-v2/service/sqs from 1.42.21 to 1.42.23 in /receiver/awss3eventreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.22.1 to 1.22.5 in /receiver/awss3rehydrationreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.96.0 to 1.96.3 in /internal/aws * deps(deps): bump github.com/aws/aws-sdk-go-v2/service/sqs from 1.42.21 to 1.42.23 in /internal/aws * deps(deps): bump github.com/aws/aws-lambda-go from 1.52.0 to 1.53.0 in /receiver/awss3eventreceiver * deps(deps): bump github.com/aws/aws-lambda-go from 1.52.0 to 1.53.0 in /internal/aws * deps(deps): bump google.golang.org/api from 0.265.0 to 0.269.0 in /receiver/gcspubsubeventreceiver * deps(deps): bump google.golang.org/api from 0.268.0 to 0.269.0 in /exporter/googlecloudstorageexporter * deps(deps): bump google.golang.org/api from 0.268.0 to 0.269.0 in /receiver/googlecloudstoragerehydrationreceiver * deps(deps): bump google.golang.org/api from 0.268.0 to 0.269.0 in /exporter/googlemanagedprometheusexporter * deps(deps): bump google.golang.org/api from 0.268.0 to 0.269.0 in /exporter/googlecloudexporter * deps: Dependabot 03.09.26 (#3311) * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /receiver/gcspubsubeventreceiver * deps(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /receiver/googlecloudstoragerehydrationreceiver * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /exporter/googlecloudstorageexporter * deps(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 in /receiver/windowseventtracereceiver * deps(deps): bump golang.org/x/oauth2 from 0.35.0 to 0.36.0 in /receiver/restapireceiver * deps(deps): bump github.com/open-telemetry/opamp-go from 0.22.0 to 0.23.0 in /extension/opampgateway * deps(deps): bump github.com/mgechev/revive from 1.14.0 to 1.15.0 in /internal/tools * deps(deps): bump golang.org/x/oauth2 from 0.35.0 to 0.36.0 in /exporter/chronicleexporter * deps(deps): bump google.golang.org/grpc from 1.79.1 to 1.79.2 in /exporter/chronicleexporter * chore(deps): bump google.golang.org/grpc from 1.79.1 to 1.79.2 in /internal/exporterutils * deps(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 in /updater * resolve dependabot alert on otel sdk * fix: Prevent integer overflow (#3312) * fix: Prevent integer overflow * fix overflow in comparison * deps: Dependabot pt. 2 03.09.26 (#3315) * deps(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.10 to 1.32.11 in /receiver/awss3eventreceiver * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /receiver/gcspubsubeventreceiver * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /receiver/googlecloudstoragerehydrationreceiver * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /exporter/googlecloudstorageexporter * fix panic * chore: Modules v1.95.0 (#3316) * use v0.0.13 of honeycomb exporter * update modules to v1.95.0 * [exporter/googlecloudstorage]: Additional metrics (#3313) * [exporter/googlecloudstorage]: Additional metrics * gosec: skip mdatagen generated code * fmt * Update opampgateway configuration to use server/listener (#3317) * Update configuration to use server/listener * lint/fmt * fix(receiver/windowseventtrace): Don't attempt to format empty properties that require an explicit size (#3318) * fix(receiver/windowseventtrace): Don't attempt to format empty properties * Remove problematic unit tests * chore: Update AvailableComponents script with new components (#3320) * update with new components * Update scripts/retrieve-available-components.sh Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> --------- Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> * fix(receiver/windowseventtrace): Consolidate getEventInformation calls, bulletproof STRING_ONLY events (#3280) * chore(chronicleexporter): optimize `getRawField` for log record original attribute (#3321) * chore(chronicleexporter): optimize getRawField for log record original attribute * handle map type data for log.record.original * Update opampgateway examples to use new configuration (#3323) Update examples to use new configuration * deps: Use split `koanf` packages (#3328) use split koanf packages * chore: Update component refs to contrib (#3332) * update deps for contrib * reference v1.0.0 & pkg/osinfo * make fmt * exclude migrated components from gosec * update snapshot import version * ci * chore: Add check to prevent changes to migrated components (#3333) * add check to prevent changes to components * ci * update readmes with deprecation notice * better migration notice * update doc links * chore: Simplify CI for migrated components (#3334) * cleanup ci to ignore migrated components * cleanup dependabot, update make targets to ignore migrated components * fix plugindocgen referencing migrated component * feat: add ack extension to collector (#3335) ## feat: Add ack extension support ### Proposed Change This change adds support for the ack extension by importing and registering the `ackextension` factory. The extension is now available as part of the default extensions list and the dependency has been moved from indirect to direct in the module requirements. ##### Checklist - [ ] Changes are tested - [ ] CI has passed * feat: Add AWS security lake exporter (#3337) add aws security lake exporter * feat: add aesprovider to manager.yaml confmap resolver (#3331) * feat: add aesprovider to manager.yaml confmap resolver * Update opamp/config_test.go Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> --------- Co-authored-by: Ian Adams <ian.adams@observiq.com> Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> * deps: Bump contrib deps v1.0.1 (#3338) * bump contrib deps, add contrib deps script * use single source of truth txt file for migrated components * chore: Increase successful update monitoring timeout (#3353) increase updater install check timeout * fix: Windows ARM64 build flag references wrong pkg (#3355) fix ref to old pkg * chore: OnConnect handler checks for in-flight update (#3354) skip pkg status handling if reconnecting during update * fix: Have Updater process remove package statuses file on update (#2788) * have updater remove package statuses file rather than collector process * use defer func to always try to remove the file * collector process removes pkg status when failure occurs * log when removing package file --------- Co-authored-by: Dakota Paasman <122491662+dpaasman00@users.noreply.github.com> * chore(release): Include new Powershell install script for detecting AMD vs ARM (#3172) * chore(release): Include new Powershell install script for detecting AMD vs ARM * Adjust how we discern MSI name after testing on ARM * Fix no-version case * Verify MSI signature, log warning on failure to remove temporary MSI * Add file parameter * PR feedback * README update * chore: Polish logs & errors generated by update (#3356) * polish some logs and errors from update process * context done * fix tests * chore: BDOT v1.96.0 release prep (#3367) * update release scripts with bdot contrib changes * update otel to v0.148.0 * update bdot contrib deps v1.1.0 * update doc links * pin mysql & postgresql receivers at 147 for changed behavior * update ac script * update nop exporter doc link to ref tag; update pinned component doc links * update bdot module version v1.96.0 * make tidy * update bdot contrib deps v1.1.1; add threatenrichmentprocessor * deps(deps): bump golang.org/x/tools from 0.42.0 to 0.43.0 in /internal/tools * chore: Fix available components script for signal to metrics connector (#3368) * chore: Documentation fixes - BDOT release service and V2 latest version (#3371) * Delete migrated modules from collector/V2 * Update manifests * Drop all replace path tags from manifests * Update go version, remove removed upsteam components, clean Makefile * Fix Makefile * Update manifest, refine release-test * Bump Honeycomb exporter dependency in manifest * Overzealous component-adding * fix: Explicitly disable cgo for all build targets (#3400) explicitly disable cgo for all build targets * ci: Add Graphite CI optimization for stacked PRs (#3401) * ci: Add Graphite CI optimization for stacked PRs * chore: retrigger CLA check * Drop removed package from dependabot.yml * Do not push any tagged packages on release --------- Co-authored-by: Dakota Paasman <122491662+dpaasman00@users.noreply.github.com> Co-authored-by: Dylan Myers <Dylan-M@users.noreply.github.com> Co-authored-by: Cole Laven <82364622+colelaven@users.noreply.github.com> Co-authored-by: Caleb Hurshman <caleb.hurshman@bindplane.com> Co-authored-by: Ekansh Gupta <ekanshgupta.eku@gmail.com> Co-authored-by: Andy Keller <andykellr@users.noreply.github.com> Co-authored-by: Sam Hazlehurst <sam.hazlehurst@observiq.com> Co-authored-by: Ekansh Gupta <ekansh.gupta@bindplane.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Dylan Strohschein <dylan.strohschein@bindplane.com> Co-authored-by: Dan Jordan <dan.jordan@bindplane.com> Co-authored-by: Joseph Sirianni <joe.sirianni@observiq.com> Co-authored-by: Brian Gardner <1761566+briangardner@users.noreply.github.com> Co-authored-by: Keith Schmitt <32067685+schmikei@users.noreply.github.com>
mrsillydog
added a commit
that referenced
this pull request
May 12, 2026
* chore: Refactor `internal/version` into root `version` folder (#3145) * refactor internal/version into root version folder * update component doc for ocb use case * ci * dont return cfg func * fix: Update Makefile (#3150) * Update Makefile * Update Makefile * chore: Remove ubi8 docker builds from goreleaser config (#3159) * chore: Remove ubi8 docker builds from goreleaser config * chore: Remove ubi8 Dockerfile * deps: Migrate pcapreceiver from google/gopacket to gopacket/gopacket (#3144) * deps: Migrate pcapreceiver from google/gopacket to gopacket/gopacket v1.5.0 * Updated root go.mod and go.sum * feat: Add Windows ARM64 MSI support (#3152) * feat: Add Windows ARM64 build target to Makefile * refactor: Reintegrate Windows builds into unified goreleaser config * feat: Add ARM64 support to WiX MSI template * feat: Update build scripts for multi-arch MSI * ci: Add ARM64 MSI builds with WiX 3.14.1 * fix: Disable CGO for Windows builds to avoid MinGW assembly errors * ci: Consolidate MSI builds to single windows-2022 runner * ci: Redirect TMPDIR to runner temp to avoid /tmp exhaustion * ci: Redirect all temp vars to runner temp for disk space * chore: Add windows/build/ to gitignore * ci: Remove temp directory redirects from release-test workflow * chore: Remove -amd64 suffix from MSI (#3169) * chore(chronicleexporter): don't treat 429s as permanent errors (#3170) * feat: REST API Receiver `min_poll_interval` (#3165) * min_poll_interval * update polling reset behavior - increase poll on partial response * fix race conditions in tests * feedback * backoff multiplier * adaptive polling docs * chore: Add .idea/ to .gitignore (#3173) Ignore JetBrains IDE project files to keep them out of version control. * deps: OTel v0.146.0 (#3171) * deps: OTel v0.146.0 * Update honeycomb, remove text extension replace directive * More honeycomb nonsense * Update go.mod to 1.25.7 to dodge linker bug * chore(chronicleexporter): retry on 502 & 504 errors (#3176) * deps: v1.94.0 (#3177) * deps(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 * deps(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 in /receiver/pluginreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.7 to 1.32.8 in /receiver/awss3rehydrationreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.22.0 to 1.22.1 in /extension/awss3eventextension * deps(deps): bump github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.22.0 to 1.22.1 in /receiver/awss3rehydrationreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.7 to 1.32.8 in /receiver/awss3eventreceiver * deps(deps): bump google.golang.org/api from 0.266.0 to 0.267.0 in /exporter/googlecloudexporter * deps(deps): bump google.golang.org/api from 0.266.0 to 0.267.0 in /exporter/googlemanagedprometheusexporter * deps(deps): bump google.golang.org/api from 0.266.0 to 0.267.0 in /receiver/googlecloudstoragerehydrationreceiver * deps(deps): bump google.golang.org/api from 0.266.0 to 0.267.0 in /exporter/googlecloudstorageexporter * deps(deps): bump github.com/dgraph-io/badger/v4 from 4.8.0 to 4.9.1 in /extension/badgerextension * Fix test * Update modules to v1.94.0 * chore: Ignore MSI signatures (#3179) * chore: Modules v1.94.1 (#3180) * fix(release): Set GORELEASER_CURRENT_TAG (#3181) * fix: Set GORELEASER_CURRENT_TAG * Update module versions * chore(ci): Don't double-run tests (#3178) * chore: Explicitly do not trigger a release on the version package being pushed (#3182) Do not trigger a release on the version package being pushed * chore: Update opamp-go library to v0.23.0 (#3164) * fix: expr-lang rename (#3198) * fix: expr-lang rename * Fix tests * chore(release): Split build-windows targets into parallel operation (#3200) * chore(release): Split build-windows targets into parallel operation * Forget j2, use a matrix * Undo wrong Makefile change * fix: Fix deadlock in measurementsSender/topologySender when CustomCapabilities not received (#3162) ### Proposed Change I didn't run into this issue until using the new opamp-gateway which caused a deadlock because the gateway was not forwarding CustomCapabilities to all downstream agents. Since the caller calls this code whenever the `manager.yaml` is changed, calling it multiple times can lead to a deadlock where the collector is stuck in a `Configuring` state. While this is unlikely to happen outside of use with the opamp-gateway and it now includes a fix to forward the CustomCapabilities, this may not be seen in the wild but is still the right thing to do. ##### Checklist - [ ] Changes are tested - [ ] CI has passed * fix: make version ref (#3202) fix make version ref * chore: Update available components script with OTel v0.146.0 renames (#3203) * feat(chronicleexporter): add agent metrics support to HTTPS exporter (#3199) * feat(chronicleexporter): add agent metrics support to HTTPS exporter Add agent metrics (CPU seconds, memory, collector uptime) to the HTTPS SecOps exporter, matching existing gRPC exporter behavior. The HTTP exporter now creates a hostMetricsReporter on Start when CollectAgentMetrics is enabled, POSTs BatchCreateEventsRequest as JSON to the importStatsEvents REST endpoint, and records sent log counts. * feat: Develop the GCS Pub Sub Event receiver (#3160) * Added gcp pub/sub event receiver * chore: added go files * chore: Add gcspubeventreceiver to dependabot config Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Fix goimports formatting for gcspubeventreceiver Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: Exclude gcspubeventreceiver metadata from gosec Same exclusion as awss3eventreceiver for generated telemetry code. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Address review feedback for gcspubeventreceiver - Use sync.Pool for worker reuse to reduce GC pressure on high-throughput message handling - Return all Shutdown close errors via errors.Join instead of swallowing pubsub/GCS client errors - Replace fragile strings.Contains error checks with typed GCS SDK errors (storage.ErrObjectNotExist, *googleapi.Error) - Deduplicate DLQ condition logic into a shared dlqConditionKind helper to prevent drift - Fix unsafe type assertion in lineParser.AppendLogBody with proper error return Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test: Add tests for non-copied worker files in gcspubeventreceiver - offset_test.go: marshal/unmarshal roundtrip, empty data no-op, invalid JSON, storage key constant - line_parser_test.go: parse with various inputs and offsets, AppendLogBody type assertion error path - dlq_test.go: direct tests of dlqConditionKind and isDLQConditionError with GCS typed errors (storage.ErrObjectNotExist, *googleapi.Error) - worker_test.go: ProcessMessage filtering tests using pstest (event type, missing attrs, bucket/key filters) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: Tidy go.mod for gcspubeventreceiver after adding tests Promote grpc to a direct dependency and add go-cmp and aip as indirect dependencies required by the pstest package used in worker tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: Tidy gcspubeventreceiver go.mod after merge with main Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: Add gcsevent.parse_errors metric for skipped log records Increments a counter each time an individual log record within a GCS object is skipped due to a parse or body-append error. This makes the intentional per-record data loss observable without causing the whole message to nack (retrying a malformed record would hit the same error). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: Fix goimports ordering in generated_logs_test.go Move stdlib imports before third-party imports to satisfy goimports. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: added readme.md * chore addressed comments * chore: Rename gcspubeventreceiver to gcspubsubeventreceiver Rename the package directory, module path, package declarations, all internal import paths, and all external references (go.mod, factories, Makefile, dependabot) to the more descriptive gcspubsubeventreceiver. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: Bump pubsub and storage to match root go.mod versions Update cloud.google.com/go/pubsub from v1.49.0 to v1.50.1 and cloud.google.com/go/storage from v1.50.0 to v1.60.0 to align with the versions used in the root go.mod. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: Deduplicate concurrent Pub/Sub messages for the same GCS object GCS delivers OBJECT_FINALIZE notifications at-least-once, meaning two distinct Pub/Sub messages can arrive for the same object within milliseconds. Since sub.Receive dispatches each message to a separate goroutine, both would be processed concurrently, producing duplicate log records. Add an inFlight sync.Map to logsReceiver that tracks (bucket/object) keys currently being processed. When handleMessage receives a message whose key is already in-flight, it acks the message immediately without invoking the worker. The key is removed via defer so it is always cleaned up regardless of processing outcome. Add tests covering both the deduplication path and key cleanup. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: Fix goimports alignment in receiver_test.go Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: Redesign GCS receiver from streaming pull to synchronous pull-based polling Replace sub.Receive() streaming pull with synchronous Pull() RPCs, a fixed worker pool, and two-layer deduplication — mirroring the proven AWS S3/SQS receiver architecture. Key changes: - Single poller goroutine issues Pull() RPCs via cloud.google.com/go/pubsub/apiv1 - Fixed N worker goroutines consume from a buffered channel (controlled concurrency) - Batch deduplication by (bucket, object, generation) within each Pull response - Cross-batch recentTracker with configurable TTL for sequential duplicates - Explicit ack deadline extension per worker (ModifyAckDeadline), analogous to SQS visibility timeout extension - Removed inFlight sync.Map and sub.Receive() streaming pull entirely - New config fields: poll_interval (250ms default), dedup_ttl (5m default) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: Remove stale doc.go and dependabot entry for gcspubsubeventreceiver The receiver no longer uses Pub/Sub streaming pull, so doc.go's description was outdated. Moved the //go:generate directive to factory.go and removed the file. Also removed the dependabot.yml entry since it tracked the old module. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: addressed comments for docs --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore: make tidy (#3218) * feat: Scaffold OCSF Standardization Processor (#3206) * processor scaffolding * fix go mod * development * ci fixes * dependabot * update name * safter config assertion * feat: Create OCSF standardization processor config (#3219) * added config w/ tests and updated readme * add omc agent memory to gitignore * lint fixes * fix(chronicleexporter): align error & retry handling with otel spec (#3217) * fix: align chronicle exporter error handling with otel spec * add spec reference for shouldretryhttp * rebase recovery * fix ci checks * revert unintentional change * add tests for retry throttling logic * feat: OCSF create field mapping logic (#3220) * build processor mapping * add test files * small tweaks * update naming * update var names * fix logic * update logs and better var naming * feat: Added OCSF codegen and v1.0.0 results (#3221) * added codegen and v1 results * fix codegen format * update map structure package * regen * go mod tidy * change codegen to use url * add schema to gitignore * updates to codegen * chore(chronicleexporter): revert error handling changes (#3223) * chore(release): Split Docker steps off into its own workflow (#3207) * chore(release): Split Docker off into its own workflow * Temporarily trigger on git push to this branch * Test run to list contents * Adjust tar directory structure appropriately * Revert workflow back to manually triggered * Rename flow to release-containers, add local make target to build images * chore(ci): Skip parts of PR CI that aren't required (#3204) * chore(ci): Skip parts of PR CI that aren't required * Use namespace runner for namespace checkout action * Try adjusting outputs * chore: Allow individual targets with manual_msi_build (#3226) * chore: Allow individual targets with manual_msi_build * Claude fix * fix: preserve env var references in manager.yaml during OpAMP config updates (#3205) When the server pushes config updates (e.g. measurements_interval), the managerReload function was marshaling the in-memory config (which has resolved env var values) back to YAML, replacing ${env:...} references with plaintext secrets. This changes to a read-modify-write approach: read the raw on-disk file (which preserves env var strings), selectively update only the updatable fields, and write back. Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> * fix(ci): reference matrix.skip properly (#3231) * feat: OCSF Standardization Processor (#3222) * add other ocsf versions * rerun codegen based on updates * feat: Add OCSF configuration validation of required fields (#3224) * add v1 validation * basic configuration validation * validate all ocsf required fields * clean up duplicate test code * fix lint * fix gosec * feat: OCSF runtime schema enforcement (#3227) * basic body validation * added tests * update comment * feat: Enum, regex, maxlen, and range validation (#3228) * type validations * add recursive validation * update ocsf readme * feat: Improve OCSF validation speed (#3230) * improve ocsf validation speed * make benchmark slightly more accurate * clean up code * feat: Add type coercion for OCSF standardization to make mapping easier (#3250) * add type coercion to make mapping easier * minor cleanup * add license * feat: Include OCSF processor in BDOT (#3251) * Move OCSF processor to Alpha and include it in BDOT * update benchmark to be more complex and add run results to readme * fix format * make fmt * fix: AI-found bugs in the Windows Event trace receiver (#3229) * fix: AI-found bugs in the Windows Event trace receiver * Use other validation method * fix(webhookexporter): classify HTTP errors as retryable (#3252) * fix(webhookexporter): classify HTTP errors as retryable or permanent per OTLP spec The webhook exporter was treating all non-2xx HTTP responses as retryable errors. This caused unnecessary retries on permanent errors like 400, 401, and 403, wasting resources and delaying error reporting. Uses the shared exporterutils.ShouldRetryHTTP() helper to classify errors per the OTLP spec. Only 429, 502, 503, and 504 are retried. Retry-After headers are respected via exporterhelper.NewThrottleRetry(). All other non-2xx responses are marked as permanent errors. * chore: added warn logs * fix(chronicleexporter): fix cpu time metric unit (#3270) * fix(chronicleexporter): fix metrics bugs and simplify logic (#3272) fix(chronicleexporter): recordSent bugs and cleanup * chore: Add AI team to CODEOWNERS (#3275) * feat(chronicleexporter): allow overriding endpoint & api version for HTTPS (#2167) * Allow for custom enpoints in chronicleexporter/http_exporter and ignoring Location when building the endpoint. * update README * review suggestions * clarify comments & README, rename var * fix(receiver/windowseventtrace): Make session controller respect match keyword config flags (#3276) * fix(install): allow --file with --no-gpg-check in offline install (#3279) * feat: Use mdatagen for OCSF processor (#3278) * use mdatagen for ocsf processor * use same version as everything else * make fmt * feat: OCSF Automatically add category_uid and type_uid (#3281) * automatically add category_uid and class_uid * tests, code cleanup * add exported type comment * deps: Update OTel to v0.147.0 (#3282) update otel to v0.147.0 * OpAMP Gateway Extension (#3115) * skeleton * add single docker target * Observathon/gateway client (#2710) * wip * wip2 * actually use the server * add single docker target * remove tls, change listen path * wip * lets give it a shot * correct keyword --------- Co-authored-by: Sam Hazlehurst <sam.hazlehurst@observiq.com> * ctx & fix pool add * more logging * more logging & fix if check * dont sent header * add metrics * sync.Map and better pooling * feat: opamp gateway extension using 2 goroutines (read/write) for each downstream and upstream connection * extension tests * add TestGatewayUpstreamConnectionAffinity * add TestGatewayUpstreamConnectionAffinity * agent affinity passing * fixed merge * extract reader before connection refactor * separate upstream and downstream connections * track connected status and only select connected upstream connections * only connect downstream if upstream is available * better handling of upstream disconnect * close downstream connections when upstream closes * cleanup logs and metrics * direction attribute on metrics * rename metrics and add latency * fix message.number * add sequenceNum to info logging * authenticate connections before creating the websocket * fix tests * refactor to use internal package * address a few minor cleanup items * use configtls * tests * message_reader tests and fix flaky test * README * fix and verify gateway restart * add spec * ci * generate * use same version of go * exclude generated directory from gosec * fix a metric name and regenerate * gosec * fix race * add authTimeout and support tls * avoid possible data race with err * remove dead code * remove closed downstream connections from agentConnections * switch to "confighttp.ServerConfig" for server configuration * relay CustomCapabilities on the first message to every downstream agent and make upstream_connection.send() block * add tests for injecting CustomCapabilities * use select in downstreamConnection.send * add entry for opampgateway extension * use Shutdown context * remove stale TODOs * update go version * update dependencies --------- Co-authored-by: Dakota Paasman <122491662+dpaasman00@users.noreply.github.com> Co-authored-by: Sam Hazlehurst <sam.hazlehurst@observiq.com> * deps: Dependabot v1.95.0 (#3283) * deps(deps): bump github.com/aws/aws-sdk-go-v2/service/sqs from 1.42.21 to 1.42.23 in /extension/awss3eventextension * deps(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.8 to 1.32.11 in /receiver/awss3rehydrationreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.22.3 to 1.22.5 in /extension/awss3eventextension * deps(deps): bump github.com/aws/aws-sdk-go-v2/service/sqs from 1.42.21 to 1.42.23 in /receiver/awss3eventreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.22.1 to 1.22.5 in /receiver/awss3rehydrationreceiver * deps(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.96.0 to 1.96.3 in /internal/aws * deps(deps): bump github.com/aws/aws-sdk-go-v2/service/sqs from 1.42.21 to 1.42.23 in /internal/aws * deps(deps): bump github.com/aws/aws-lambda-go from 1.52.0 to 1.53.0 in /receiver/awss3eventreceiver * deps(deps): bump github.com/aws/aws-lambda-go from 1.52.0 to 1.53.0 in /internal/aws * deps(deps): bump google.golang.org/api from 0.265.0 to 0.269.0 in /receiver/gcspubsubeventreceiver * deps(deps): bump google.golang.org/api from 0.268.0 to 0.269.0 in /exporter/googlecloudstorageexporter * deps(deps): bump google.golang.org/api from 0.268.0 to 0.269.0 in /receiver/googlecloudstoragerehydrationreceiver * deps(deps): bump google.golang.org/api from 0.268.0 to 0.269.0 in /exporter/googlemanagedprometheusexporter * deps(deps): bump google.golang.org/api from 0.268.0 to 0.269.0 in /exporter/googlecloudexporter * deps: Dependabot 03.09.26 (#3311) * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /receiver/gcspubsubeventreceiver * deps(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /receiver/googlecloudstoragerehydrationreceiver * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /exporter/googlecloudstorageexporter * deps(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 in /receiver/windowseventtracereceiver * deps(deps): bump golang.org/x/oauth2 from 0.35.0 to 0.36.0 in /receiver/restapireceiver * deps(deps): bump github.com/open-telemetry/opamp-go from 0.22.0 to 0.23.0 in /extension/opampgateway * deps(deps): bump github.com/mgechev/revive from 1.14.0 to 1.15.0 in /internal/tools * deps(deps): bump golang.org/x/oauth2 from 0.35.0 to 0.36.0 in /exporter/chronicleexporter * deps(deps): bump google.golang.org/grpc from 1.79.1 to 1.79.2 in /exporter/chronicleexporter * chore(deps): bump google.golang.org/grpc from 1.79.1 to 1.79.2 in /internal/exporterutils * deps(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 in /updater * resolve dependabot alert on otel sdk * fix: Prevent integer overflow (#3312) * fix: Prevent integer overflow * fix overflow in comparison * deps: Dependabot pt. 2 03.09.26 (#3315) * deps(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.10 to 1.32.11 in /receiver/awss3eventreceiver * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /receiver/gcspubsubeventreceiver * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /receiver/googlecloudstoragerehydrationreceiver * deps(deps): bump cloud.google.com/go/storage from 1.60.0 to 1.61.0 in /exporter/googlecloudstorageexporter * fix panic * chore: Modules v1.95.0 (#3316) * use v0.0.13 of honeycomb exporter * update modules to v1.95.0 * [exporter/googlecloudstorage]: Additional metrics (#3313) * [exporter/googlecloudstorage]: Additional metrics * gosec: skip mdatagen generated code * fmt * Update opampgateway configuration to use server/listener (#3317) * Update configuration to use server/listener * lint/fmt * fix(receiver/windowseventtrace): Don't attempt to format empty properties that require an explicit size (#3318) * fix(receiver/windowseventtrace): Don't attempt to format empty properties * Remove problematic unit tests * chore: Update AvailableComponents script with new components (#3320) * update with new components * Update scripts/retrieve-available-components.sh Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> --------- Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> * fix(receiver/windowseventtrace): Consolidate getEventInformation calls, bulletproof STRING_ONLY events (#3280) * chore(chronicleexporter): optimize `getRawField` for log record original attribute (#3321) * chore(chronicleexporter): optimize getRawField for log record original attribute * handle map type data for log.record.original * Update opampgateway examples to use new configuration (#3323) Update examples to use new configuration * deps: Use split `koanf` packages (#3328) use split koanf packages * chore: Update component refs to contrib (#3332) * update deps for contrib * reference v1.0.0 & pkg/osinfo * make fmt * exclude migrated components from gosec * update snapshot import version * ci * chore: Add check to prevent changes to migrated components (#3333) * add check to prevent changes to components * ci * update readmes with deprecation notice * better migration notice * update doc links * chore: Simplify CI for migrated components (#3334) * cleanup ci to ignore migrated components * cleanup dependabot, update make targets to ignore migrated components * fix plugindocgen referencing migrated component * feat: add ack extension to collector (#3335) ## feat: Add ack extension support ### Proposed Change This change adds support for the ack extension by importing and registering the `ackextension` factory. The extension is now available as part of the default extensions list and the dependency has been moved from indirect to direct in the module requirements. ##### Checklist - [ ] Changes are tested - [ ] CI has passed * feat: Add AWS security lake exporter (#3337) add aws security lake exporter * feat: add aesprovider to manager.yaml confmap resolver (#3331) * feat: add aesprovider to manager.yaml confmap resolver * Update opamp/config_test.go Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> --------- Co-authored-by: Ian Adams <ian.adams@observiq.com> Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> * deps: Bump contrib deps v1.0.1 (#3338) * bump contrib deps, add contrib deps script * use single source of truth txt file for migrated components * chore: Increase successful update monitoring timeout (#3353) increase updater install check timeout * fix: Windows ARM64 build flag references wrong pkg (#3355) fix ref to old pkg * chore: OnConnect handler checks for in-flight update (#3354) skip pkg status handling if reconnecting during update * fix: Have Updater process remove package statuses file on update (#2788) * have updater remove package statuses file rather than collector process * use defer func to always try to remove the file * collector process removes pkg status when failure occurs * log when removing package file --------- Co-authored-by: Dakota Paasman <122491662+dpaasman00@users.noreply.github.com> * chore(release): Include new Powershell install script for detecting AMD vs ARM (#3172) * chore(release): Include new Powershell install script for detecting AMD vs ARM * Adjust how we discern MSI name after testing on ARM * Fix no-version case * Verify MSI signature, log warning on failure to remove temporary MSI * Add file parameter * PR feedback * README update * chore: Polish logs & errors generated by update (#3356) * polish some logs and errors from update process * context done * fix tests * chore: BDOT v1.96.0 release prep (#3367) * update release scripts with bdot contrib changes * update otel to v0.148.0 * update bdot contrib deps v1.1.0 * update doc links * pin mysql & postgresql receivers at 147 for changed behavior * update ac script * update nop exporter doc link to ref tag; update pinned component doc links * update bdot module version v1.96.0 * make tidy * update bdot contrib deps v1.1.1; add threatenrichmentprocessor * deps(deps): bump golang.org/x/tools from 0.42.0 to 0.43.0 in /internal/tools * chore: Fix available components script for signal to metrics connector (#3368) * chore: Documentation fixes - BDOT release service and V2 latest version (#3371) * fix: Explicitly disable cgo for all build targets (#3400) explicitly disable cgo for all build targets * ci: Add Graphite CI optimization for stacked PRs (#3401) * ci: Add Graphite CI optimization for stacked PRs * chore: retrigger CLA check * feat(receivers): add azuremonitorreceiver support (#3399) Adds azuremonitorreceiver from opentelemetry-collector-contrib at v0.148.0, enabling Azure Monitor as a Custom Source in BDOT. Includes myMap entry in the available components script to map azuremonitor -> azure_monitor. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * deps: OTel v0.149.0 (#3411) * deps: OTel v0.149.0 * Remove plugins from migrated modules in check to match migrated-modules.txt * Sync migrated-modules with the action * chore: Update modules to v1.97.0 (#3440) * chore(security): Bump module versions for dependabot alerts (#3441) * chore(scripts): handle OTel v0.148.0 component renames in retrieve-available-components (#3446) Add/update myMap entries for OTel v0.148.0 snake_case compliant renames across receivers, exporters, extensions, and processors (BPOP-4954). Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: gitignore Claude Code per-user local settings (#3449) * deps: OTel v0.150.0 (#3452) * deps: OTel v0.150.0 * Add replace statements for pinned components with breaking changes * Update factories_test with missed rename change * chore: Update modules to v1.98.0 (#3453) * deps: Dependabot 1.98 (#3454) * deps(deps): bump golang.org/x/sys from 0.42.0 to 0.43.0 in /updater * deps(deps): bump golang.org/x/tools from 0.43.0 to 0.44.0 in /internal/tools * [receiver/windowseventlog]: Use new metrics ahead of OTEL contribution (#3450) * [receiver/windowseventlog]: Use new metrics ahead of OTEL contribution * Update CI env vars to increase available space --------- Co-authored-by: Ian Adams <ian.adams@observiq.com> Co-authored-by: Ian Adams <ian.sam.adams@gmail.com> * fix(ci): remove undeclared pr_labels input from notifications caller (#3455) The reusable-slack-pr-notify.yml workflow does not declare a pr_labels input, so passing it caused the workflow to fail validation at start time on every event (0s runtime, "workflow file issue" error). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: Undo rename of googlecloudstorage component (#3456) Co-authored-by: mrsillydog <ian.adams@bindplane.com> * feat(generic-install): add install_windows.ps1 (#3442) * feat(generic-install): add install_windows.ps1 Adds a Windows PowerShell installer to the generic-install scripts, mirroring the parameterized design of install_unix.sh and install_macos.sh. Resolves the target MSI from GitHub releases using the naming convention established by the OTel Distro Builder. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Correct MSI name, other small fixes * Testing fixes * Adjust signature verification flow --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: Invert install script interactivity, allow skipping signature verification (#3458) * fix: Improve install script package type detection (PIPE-901) (#3369) * feat(extension): add opampconnectionextension (BPOP-4970) (#3447) * feat(extension): add opampconnectionextension (BPOP-4970) Introduce internal/extension/opampconnectionextension, an extension that implements opampcustommessages.CustomCapabilityRegistry so that processors and other collector components in this distribution can register custom capabilities and exchange custom OpAMP messages over the OpAMP connection owned by the opamp package. The implementation mirrors upstream opampextension as closely as possible (see registry.go comment) with two differences: - The underlying OpAMP client is supplied after Start via SetClient, since in this distribution the OpAMP connection is owned by opamp/observiq rather than the extension itself. A CustomCapabilityClient subset interface lets the owner intercept SetCustomCapabilities. - Only a single opamp_connection extension may be configured per collector (enforced in Start). GetRegistry/ForEachInstance provide package-level lookup so the owner can wire its client in without needing the component ID up front. This PR only adds the extension and registers its factory; the opamp package wiring is in BPOP-4971. * fix(opampconnectionextension): defer capability advertisement when Register is called before SetClient The snapshot processor (and any component that talks custom messages) runs its Start hook during collector.Run — which is before the opamp package calls SetClient on every registered extension. The registry was rejecting that Register call with ErrClientNotSet, causing pipeline startup to fail: failed to start "snapshotprocessor" processor: register custom capability: opamp client has not been set on opamp connection extension Instead, let Register succeed while the client is nil: the capability is recorded and the channel/handler are set up as usual, but the SetCustomCapabilities call is skipped. When setClient is eventually called, it flushes the accumulated capability set to the server in one shot. SendMessage now looks up the client through the registry at send time and returns ErrClientNotSet if the client still isn't available. * refactor(opampconnectionextension): collapse to a singleton Since only one opamp_connection extension may be configured per collector, the package-level map keyed by component.ID is overkill. Replace it with a single *opampConnectionExtension. GetRegistry no longer takes a component.ID and ForEachInstance is removed entirely — callers in the opamp package can just use GetRegistry directly. Shutdown now only clears the singleton if it still points at the extension being shut down, so an ordering accident doesn't wipe a legitimate second Start in the interim. * refactor(opampconnectionextension): keep client across extension restarts Split the Registry into two pieces: the per-instance customCapabilityRegistry that owns Registered capabilities and message channels (and is abandoned when the extension shuts down), and a package-level instanceManager that caches the OpAMP client and forwards it to whatever extension instance is currently attached. The collector rebuilds every component from its factory on each restart, so the extension instance itself is short-lived. Before this change, SetClient was called once in Client.Connect and bound to the first instance only; after a config reload the new instance had no client, and Registers done against it silently failed to advertise while SendMessage returned ErrClientNotSet. The manager now remembers the client independently of the extension lifecycle and re-wires it on every attach. * tidy * refactor(opampconnectionextension): rename CustomCapabilityClient to Client * Upgrade go 1.25.9 (#3463) chore(go): Upgrade Go to 1.25.9 * chore(go): bump go mod tidy -compat to 1.25.9 (#3471) Follow-up to #3463: the Go upgrade bumped go.mod files but the -compat flag in the Makefile and update scripts still pinned 1.25.7. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(opamp): wire up opampconnectionextension * feat(opamp): wire up opampconnectionextension (BPOP-4971) Hook the opamp_connection extension into the v1 OpAMP client so that components configured with it actually see the collector's OpAMP connection. - *observiq.Client now implements opampconnectionextension.CustomCapabilityClient. Its SetCustomCapabilities merges the caller-supplied capability set with the hardcoded v1 capabilities (measurements.ReportMeasurementsV1Capability, topologyprocessor.ReportTopologyCapability) so there is a single path that talks to the underlying opamp client. The existing hardcoded advertisement in NewClient is routed through this method. - After collector.Run (extensions have Started and registered) but before opampClient.Start (first AgentToServer), Connect iterates ForEachInstance and calls SetClient(c) on each registered extension. - onMessageFuncHandler forwards msg.CustomMessage to every registered extension via ForEachInstance -> ProcessMessage. Stacked on BPOP-4970. * refactor(opamp): use opampconnectionextension singleton API Switch from ForEachInstance to GetRegistry() now that the extension is a singleton. * refactor(opamp): rename CustomCapabilityClient references to Client * feat(factories): swap v1 snapshotprocessor for v2 and register opampexporter (BPOP-4975) (#3451) * refactor(opamp): use opampconnectionextension singleton API Switch from ForEachInstance to GetRegistry() now that the extension is a singleton. * refactor(opamp): rename CustomCapabilityClient references to Client * feat(factories): register snapshotprocessor_v2 alongside v1 and add opampexporter (BPOP-5003 / BPOP-4975) Ship both snapshot processor implementations side by side: the existing v1 (internal/processor/snapshotprocessor) registered as snapshotprocessor, and the v2 from bindplane-otel-contrib registered as snapshotprocessor_v2 via a thin wrapper at internal/processor/snapshotprocessor_v2. Configs opt into v2 by component type rather than by collector version. BPOP-4975 originally proposed swapping v1 outright for v2 under the same name. That single-release contract didn't survive contact with consumers still on the v1 behavior, so BPOP-5003 supersedes it: keep v1 working, add v2 alongside, and let server-side rendering choose based on which type it sees in the available components. The snapshotprocessor_v2 wrapper is a delegation, not a fork: it constructs a processor.Factory of type snapshotprocessor_v2 whose Create{Traces,Logs,Metrics} call into contrib's factory after rewriting Settings.ID's type to contrib's snapshotprocessor (contrib's component-type validation requires a match). The framework-supplied logger continues to identify instances as snapshotprocessor_v2/<name>; contrib's internal cache key and metrics labels show snapshotprocessor/<name>, documented as the cost of the rename in the wrapper's package doc. Also register the new opampexporter from bindplane-otel-contrib so telemetry can be sent over the existing OpAMP connection (throughput, health metrics, etc. — see the OpAMP Exporter milestone). snapshotprocessor pins to the released v1.3.0; opampexporter pins to a pseudo-version of contrib's main (commit 98328131, merged 2026-04-28) until the next contrib tag. * remove snapshot_v2 --------- Co-authored-by: Dakota Paasman <122491662+dpaasman00@users.noreply.github.com> * feat(snapshotprocessor): unify v1 report-manager and v2 OpAMP custom-message paths (BPOP-5009) (#3473) * feat(snapshotprocessor): unify v1 report-manager and v2 OpAMP custom-message paths (BPOP-5009) Replace the BPOP-5003 two-processor approach (v1 snapshotprocessor + snapshotprocessor_v2 wrapper) with a single snapshotprocessor that responds to either trigger source. The v1 path (snapshotConfig delivered to the report manager, response POSTed to an HTTP endpoint) and the v2 path (OpAMP custom message in, custom message out) share the same per-component buffers in report.SnapshotReporter. Server-side rendering no longer has to choose which processor type to emit based on agent capabilities — the agent multiplexes on the trigger source. Concrete changes: - internal/processor/snapshotprocessor/config.go: add an optional OpAMP component.ID. Unset means v1-only mode; set means the processor also registers a com.bindplane.snapshot custom capability on the named opamp_connection extension. - internal/processor/snapshotprocessor/processor.go: adopt the v2 lifecycle (start/stop with atomic.Bool guards, doneChan, waitgroup). On start, conditionally resolve the configured extension, cast to opampcustommessages.CustomCapabilityRegistry, register the capability, and run a goroutine that handles snapshotRequest custom messages. processTraces/Logs/Metrics keep pushing into the global SnapshotReporter unchanged. The v2 handler reads from the same buffer via new accessors and replies with the JSON snapshotReport framing contrib v2 uses, gzipped. - internal/processor/snapshotprocessor/request.go, report.go: port snapshotRequest, snapshotReport, and the logs/metrics/traces helpers verbatim from contrib v2 so the over-the-wire format is identical. - internal/processor/snapshotprocessor/factory.go: introduce createOrGetProcessor + a package-level processors map so a single snapshotProcessor instance services all signals for a given component ID, mirroring contrib v2. processorhelper now wires WithStart and WithShutdown into each signal. - internal/report/snapshot_reporter.go: add LogBufferFor, MetricBufferFor, and TraceBufferFor accessors. The v1 prepRequestPayload helper continues to use ProtoMarshalers internally; the v2 path uses these accessors to ConstructPayload with JSONMarshalers. Same buffer state, two response framings. - factories/processors.go: drop the snapshotprocessor_v2 wrapper registration. Delete internal/processor/snapshotprocessor_v2/. The contrib snapshotprocessor module falls out of go.mod via go mod tidy. Tests: existing process{Traces,Logs,Metrics} tests rewritten against a real *report.SnapshotReporter (mocks.MockSnapshotter no longer satisfies the processor's interface). New opamp_test.go covers v1-only start (no registration), missing extension error, registration plus shutdown unregister, a logs round-trip from inbound custom message to outbound gzipped snapshotReport, and request-for-different-processor-ID is silently dropped. Race-clean. Supersedes BPOP-5003. * some concurrency polish * fix fmt --------- Co-authored-by: Dakota Paasman <122491662+dpaasman00@users.noreply.github.com> * deps: OTel v0.151.0/v1.57.0 - BDOT-contrib v1.5.0 (#3475) * update otel dependencies to v0.151.0/v1.57.0 * update bdot contrib deps v1.5.0 * update ac script with new renames * update doc links; add opampexporter entry to exporters doc * fix bdot-contrib script; udpate bdot-contrib deps * call collector.Shutdown in go routine, signal when finished * feat: Add drain processor to BDOT (#3472) * deps: dependabot 05.06.26 (#3481) deps(deps): bump go.uber.org/zap from 1.27.1 to 1.28.0 in /packagestate * deps: Azure Blob receiver patch for deleting blobs (#3484) * chore: Update modules to v1.99.0 (#3487) update modules to v1.99.0 * Self PR-review, workflow fixes * Last cleanups * Remove dnslookup processor * More fixes --------- Co-authored-by: Dakota Paasman <122491662+dpaasman00@users.noreply.github.com> Co-authored-by: Dylan Myers <Dylan-M@users.noreply.github.com> Co-authored-by: Cole Laven <82364622+colelaven@users.noreply.github.com> Co-authored-by: Caleb Hurshman <caleb.hurshman@bindplane.com> Co-authored-by: Ekansh Gupta <ekanshgupta.eku@gmail.com> Co-authored-by: Andy Keller <andykellr@users.noreply.github.com> Co-authored-by: Sam Hazlehurst <sam.hazlehurst@observiq.com> Co-authored-by: Ekansh Gupta <ekansh.gupta@bindplane.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Dylan Strohschein <dylan.strohschein@bindplane.com> Co-authored-by: Dan Jordan <dan.jordan@bindplane.com> Co-authored-by: Joseph Sirianni <joe.sirianni@observiq.com> Co-authored-by: Brian Gardner <1761566+briangardner@users.noreply.github.com> Co-authored-by: Keith Schmitt <32067685+schmikei@users.noreply.github.com> Co-authored-by: Joe Armstrong <joe.a.armstrong@gmail.com> Co-authored-by: mrsillydog <ian.adams@bindplane.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed Change
Migrate the pcapreceiver dependency from the archived
github.com/google/gopacket v1.1.19to the community-maintained upstream forkgithub.com/gopacket/gopacket v1.5.0.Updated import paths in 5 source files and the module's
go.mod/go.sum. The API is compatible so no functional code changes were needed.Checklist