Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: custom message based throughput measurements #1691

Merged

Conversation

BinaryFissionGames
Copy link
Contributor

Proposed Change

  • Adds custom message based throughput measurements.

These measurements are emitted over an OpAMP connection.

In bindplane-agent, throughput measurements are associated with a static registry, which holds all the throughput measurements. The measurements in this repository is reported to BindPlane over custom messages if the BindPlane server supports the capability.

In an OCB build of the collector, an optional bindplane extension may be specified to use as a registry for throughput metrics. In this case, the bindplane extension will use an opamp extension to report throughput metrics to the BindPlane server.

Regardless of either of these, the throughputmeasurements processor still registers metrics with the collector's self-metrics, so the metrics remain available over prometheus, which makes this change backwards compatible.

Checklist
  • Changes are tested
  • CI has passed

@BinaryFissionGames BinaryFissionGames force-pushed the feat/custom-message-based-measurements branch from ae87af7 to 332bd5a Compare July 1, 2024 09:52
@BinaryFissionGames BinaryFissionGames changed the base branch from release/v1.54.0 to release/v1.55.0 July 1, 2024 12:06
@BinaryFissionGames BinaryFissionGames marked this pull request as ready for review July 1, 2024 12:08
Copy link
Contributor

@dpaasman00 dpaasman00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested against BindPlane with our agent and OCB collector and it was all working well.

@BinaryFissionGames BinaryFissionGames force-pushed the feat/custom-message-based-measurements branch from 578e3ec to 9e33cc1 Compare August 19, 2024 11:59
@CLAassistant
Copy link

CLAassistant commented Aug 19, 2024

CLA assistant check
All committers have signed the CLA.

@BinaryFissionGames BinaryFissionGames changed the base branch from release/v1.55.0 to release/v1.58.0 August 20, 2024 12:50
@BinaryFissionGames BinaryFissionGames force-pushed the feat/custom-message-based-measurements branch from bb92ae9 to 3b91ec0 Compare August 21, 2024 14:40
@BinaryFissionGames BinaryFissionGames changed the base branch from release/v1.58.0 to release/v1.59.0 August 21, 2024 14:41
@BinaryFissionGames BinaryFissionGames merged commit d65b4c2 into release/v1.59.0 Aug 28, 2024
15 checks passed
@BinaryFissionGames BinaryFissionGames deleted the feat/custom-message-based-measurements branch August 28, 2024 04:14
BinaryFissionGames added a commit that referenced this pull request Sep 3, 2024
* start on second processor

* start on handler stuff

* work on interface for metrics

* add shared throughput measurement struct

* implement bindplane extension getting metrics

* hook up bindplane extension to throughput measurements

* add start func to throughput measurement

* tweak some extension logic

* add timestamp to measurements

* skip 0 value metrics

* working towards bindplane-agent using custom message throughput

* add tags to build

* update opamp to v0.14.0

* Hook up measurements to agent

* set capabilities

* add gitignore for config.yaml and storage dir

* remove extraneous resetting of registry

* delete unused file

* bring modules up to date

* add license

* lint

* fix compile error

* handle error from SetCustomCapabilities

* fix manager reload test

* fix test

* remove random jitter

* make tidy, bump modules

* test measurements package

* remove todo

* test measurements sender

* add license

* remove unused config field

* non-blocking send

* fix throughput tests

* Allow configuring addtional fixed attributes for all throughput measurment processors

* limit retries for sending measurements

* Make measurements interval non-pointer

* fix yaml tag instead of mapstructure

* fix measurements reload to actually update interval/attrs

* Reconfigure extra attributes when sent

* remove ldflags from make test

* bring internal module versions up to date

* make sure otel up-to-date
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants