Skip to content

Telemetry refactoring#2985

Merged
martincostello merged 3 commits into
mainfrom
refactor-metrics
Mar 14, 2026
Merged

Telemetry refactoring#2985
martincostello merged 3 commits into
mainfrom
refactor-metrics

Conversation

@martincostello

Copy link
Copy Markdown
Member

Cherry-pick changes from #2936:

  • Move Meter to TelemetrySource class.
  • Use Polly's actual version for the meter's version.
  • Extend some test coverage.
  • Apply some minor code style refactoring.

Cherry-pick changes from #2936:

- Move `Meter` to `TelemetrySource` class.
- Use Polly's actual version for the meter's version.
- Extend some test coverage.
- Apply some minor code style refactoring.
Copilot AI review requested due to automatic review settings March 14, 2026 15:53

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Introduces a shared telemetry Meter source in Polly.Extensions so telemetry components use a consistent meter name/version derived from the assembly, and adjusts related tests and small builder refactors.

Changes:

  • Added TelemetrySource singleton to centralize meter creation/versioning, and updated TelemetryListenerImpl to use it.
  • Updated/added tests to validate the new meter behavior and adjusted existing telemetry/builder tests accordingly.
  • Minor refactors: reuse ResilienceStrategyTelemetry instance during pipeline build and modernize RegistryPipelineComponentBuilder via a primary constructor.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
test/Polly.Extensions.Tests/Telemetry/TelemetrySourceTests.cs Adds coverage for the new TelemetrySource meter name/version.
test/Polly.Extensions.Tests/Telemetry/TelemetryListenerImplTests.cs Updates tests to align with meter version now coming from assembly metadata.
test/Polly.Core.Tests/Telemetry/ResilienceStrategyTelemetryTests.cs Adds a constructor sanity test and minor cleanup (method group).
test/Polly.Core.Tests/StrategyBuilderContextTests.cs Makes the test class/method static and improves telemetry assertions formatting.
test/Polly.Core.Tests/ResiliencePipelineBuilderTests.cs Adds a “copy-ctor reminder” reflection-based guard test.
src/Polly.Extensions/Telemetry/TelemetrySource.cs New internal telemetry source providing the shared Meter and version parsing.
src/Polly.Extensions/Telemetry/TelemetryListenerImpl.cs Switches telemetry meter creation to use TelemetrySource.Instance.Meter.
src/Polly.Core/ResiliencePipelineBuilderBase.cs Reuses a local ResilienceStrategyTelemetry instance during pipeline component building.
src/Polly.Core/Registry/RegistryPipelineComponentBuilder.cs Refactors to a primary constructor and field initializers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Polly.Extensions/Telemetry/TelemetrySource.cs
Comment thread src/Polly.Extensions/Telemetry/TelemetrySource.cs
Comment thread test/Polly.Extensions.Tests/Telemetry/TelemetrySourceTests.cs Outdated
Comment thread test/Polly.Extensions.Tests/Telemetry/TelemetrySourceTests.cs Outdated
Fix incorrect test name.

Co-authored-by: Martin Costello <martin@martincostello.com>
@martincostello martincostello enabled auto-merge (squash) March 14, 2026 16:02
Extend assertions on the version string.
@martincostello martincostello merged commit b87f203 into main Mar 14, 2026
26 checks passed
@martincostello martincostello deleted the refactor-metrics branch March 14, 2026 16:26
martincostello added a commit that referenced this pull request Mar 14, 2026
Remove unused constant as of #2985.
martincostello added a commit that referenced this pull request Mar 14, 2026
Remove unused constant as of #2985.
@codecov

codecov Bot commented Mar 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.15%. Comparing base (af7e8b1) to head (517ce13).
⚠️ Report is 2 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2985   +/-   ##
=======================================
  Coverage   96.15%   96.15%           
=======================================
  Files         309      310    +1     
  Lines        7128     7135    +7     
  Branches     1005     1005           
=======================================
+ Hits         6854     6861    +7     
  Misses        221      221           
  Partials       53       53           
Flag Coverage Δ
linux 96.15% <100.00%> (+<0.01%) ⬆️
macos 96.15% <100.00%> (+<0.01%) ⬆️
windows 96.15% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

IhateTrains pushed a commit to ParadoxGameConverters/ImperatorToCK3 that referenced this pull request Jun 11, 2026
Updated [Polly](https://github.com/App-vNext/Polly) from 8.6.6 to 8.7.0.

<details>
<summary>Release notes</summary>

_Sourced from [Polly's
releases](https://github.com/App-vNext/Polly/releases)._

## 8.7.0

## Highlights

* Adds caller cancellation token propagation in hedging and timeout
strategies by @​DaRosenberg in
App-vNext/Polly#3094
* Telemetry refactoring by @​martincostello in
App-vNext/Polly#2985

## What's Changed

* Update zizmor to 1.22.0 by @​martincostello in
App-vNext/Polly#2955
* Increase test timeout by @​martincostello in
App-vNext/Polly#2956
* Disable secrets-outside-env audit by @​martincostello in
App-vNext/Polly#2969
* Update zizmor to 1.23.1 by @​martincostello in
App-vNext/Polly#2970
* Update .NET NuGet packages by @​martincostello in
App-vNext/Polly#2982
* Add AGENTS.md by @​martincostello in
App-vNext/Polly#2983
* Fix typo in HTTP client integrations documentation by @​alexravenna in
App-vNext/Polly#2984
* Remove unused constant by @​martincostello in
App-vNext/Polly#2986
* Fix non-deterministic branch coverage in HedgingExecutionContext
hedging delay tests by @​Copilot in
App-vNext/Polly#2997
* Bump GitHubActionsTestLogger to 3.0.2 by @​martincostello in
App-vNext/Polly#3000
* Bump actionlint to v1.7.12 by @​martincostello in
App-vNext/Polly#3006
* Bump sign by @​martincostello in
App-vNext/Polly#3008
* Move Public API baselines by @​martincostello in
App-vNext/Polly#3016
* Formatting tweaks by @​martincostello in
App-vNext/Polly#3017
* Formatting tweaks by @​martincostello in
App-vNext/Polly#3018
* Remove ZIZMOR_VERSION by @​martincostello in
App-vNext/Polly#3025
* Assert nullable has result by @​martincostello in
App-vNext/Polly#3028
* Update deprecated action input by @​martincostello in
App-vNext/Polly#3035
* Move dependabot to Friday by @​martincostello in
App-vNext/Polly#3044
* Fix tag comment by @​martincostello in
App-vNext/Polly#3045
* Fix dependabot group by @​martincostello in
App-vNext/Polly#3047
* Pin runner images by @​martincostello in
App-vNext/Polly#3065
* Bump Refit to 10.2.0 by @​martincostello in
App-vNext/Polly#3096
* Disable Azure deployments by @​martincostello in
App-vNext/Polly#3105

## New Contributors

* @​alexravenna made their first contribution in
App-vNext/Polly#2984
* @​DaRosenberg made their first contribution in
App-vNext/Polly#3094

**Full Changelog**:
App-vNext/Polly@8.6.6...8.7.0


Commits viewable in [compare
view](App-vNext/Polly@8.6.6...8.7.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Polly&package-manager=nuget&previous-version=8.6.6&new-version=8.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to IntelliTect/EssentialCSharp.ListingManager that referenced this pull request Jun 11, 2026
Updated [Polly](https://github.com/App-vNext/Polly) from 8.6.6 to 8.7.0.

<details>
<summary>Release notes</summary>

_Sourced from [Polly's
releases](https://github.com/App-vNext/Polly/releases)._

## 8.7.0

## Highlights

* Adds caller cancellation token propagation in hedging and timeout
strategies by @​DaRosenberg in
App-vNext/Polly#3094
* Telemetry refactoring by @​martincostello in
App-vNext/Polly#2985

## What's Changed

* Update zizmor to 1.22.0 by @​martincostello in
App-vNext/Polly#2955
* Increase test timeout by @​martincostello in
App-vNext/Polly#2956
* Disable secrets-outside-env audit by @​martincostello in
App-vNext/Polly#2969
* Update zizmor to 1.23.1 by @​martincostello in
App-vNext/Polly#2970
* Update .NET NuGet packages by @​martincostello in
App-vNext/Polly#2982
* Add AGENTS.md by @​martincostello in
App-vNext/Polly#2983
* Fix typo in HTTP client integrations documentation by @​alexravenna in
App-vNext/Polly#2984
* Remove unused constant by @​martincostello in
App-vNext/Polly#2986
* Fix non-deterministic branch coverage in HedgingExecutionContext
hedging delay tests by @​Copilot in
App-vNext/Polly#2997
* Bump GitHubActionsTestLogger to 3.0.2 by @​martincostello in
App-vNext/Polly#3000
* Bump actionlint to v1.7.12 by @​martincostello in
App-vNext/Polly#3006
* Bump sign by @​martincostello in
App-vNext/Polly#3008
* Move Public API baselines by @​martincostello in
App-vNext/Polly#3016
* Formatting tweaks by @​martincostello in
App-vNext/Polly#3017
* Formatting tweaks by @​martincostello in
App-vNext/Polly#3018
* Remove ZIZMOR_VERSION by @​martincostello in
App-vNext/Polly#3025
* Assert nullable has result by @​martincostello in
App-vNext/Polly#3028
* Update deprecated action input by @​martincostello in
App-vNext/Polly#3035
* Move dependabot to Friday by @​martincostello in
App-vNext/Polly#3044
* Fix tag comment by @​martincostello in
App-vNext/Polly#3045
* Fix dependabot group by @​martincostello in
App-vNext/Polly#3047
* Pin runner images by @​martincostello in
App-vNext/Polly#3065
* Bump Refit to 10.2.0 by @​martincostello in
App-vNext/Polly#3096
* Disable Azure deployments by @​martincostello in
App-vNext/Polly#3105

## New Contributors

* @​alexravenna made their first contribution in
App-vNext/Polly#2984
* @​DaRosenberg made their first contribution in
App-vNext/Polly#3094

**Full Changelog**:
App-vNext/Polly@8.6.6...8.7.0


Commits viewable in [compare
view](App-vNext/Polly@8.6.6...8.7.0).
</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This was referenced Jun 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants