Skip to content

[Instrumentation.Remoting] initial implementation#3829

Open
lewis800 wants to merge 51 commits intoopen-telemetry:mainfrom
lewis800:remoting
Open

[Instrumentation.Remoting] initial implementation#3829
lewis800 wants to merge 51 commits intoopen-telemetry:mainfrom
lewis800:remoting

Conversation

@lewis800
Copy link
Copy Markdown
Contributor

@lewis800 lewis800 commented Feb 2, 2026

Hi,

I wanted to revive the amazing work done in #30 with full attribution of work to the original author @mbakalov.

His branch is very out of date, so I decided to fork main and manually move his work over to a new branch on the fork called remoting.

I have kept his work and mainly just done housekeeping renaming and updating to the latest OTEL standards and I have tried to follow the library patterns, but I am sure I am missing some.

Cheers,

Lewis

@linux-foundation-easycla
Copy link
Copy Markdown

linux-foundation-easycla bot commented Feb 2, 2026

CLA Signed

The committers listed above are authorized under a signed CLA.

@lewis800 lewis800 marked this pull request as ready for review February 2, 2026 04:06
@lewis800 lewis800 requested a review from a team as a code owner February 2, 2026 04:06
@martincostello
Copy link
Copy Markdown
Member

Thanks for your contribution @lewis800.

Before we get into reviewing the code in this PR, is this an instrumentation library you're willing to contribute and support for feature requests/issues going forwards if it were merged and released to NuGet.org?

The maintainers only have a fixed amount of bandwidth and we can't take on the maintenance burden of every possible piece of new instrumentation that might be contributed to the repo, particularly if they're a more niche use case.

@lewis800
Copy link
Copy Markdown
Contributor Author

lewis800 commented Feb 5, 2026

Hi @martincostello for the foreseeable future I have the capacity to contribute and support this remoting instrumentation, I will be using it actively and I suspect likely, will be the one coming back with the requests and issues regarding it.

@martincostello
Copy link
Copy Markdown
Member

@lewis800 Cool - in that case can you update the PR to make you a Code Owner in the appropriate places. For example:

The CI setup will also need updating in the relevant places to build, test and publish the new instrumentation as appropriate. You should be able to find all the relevant changes needed by searching the repo for other instrumentations' name and seeing where they appear.

@github-actions github-actions bot added the infra Infra work - CI/CD, code coverage, linters label Feb 9, 2026
@lewis800
Copy link
Copy Markdown
Contributor Author

lewis800 commented Feb 9, 2026

@martincostello I have updated the readme and think I have successfully added the remoting project into the existing workflows

Copy link
Copy Markdown
Member

@Kielek Kielek left a comment

Choose a reason for hiding this comment

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

Could you please consider splitting this PR to 2 chunks? First - just project scaffolding with empty project, CI changes, etc. No classes should be fine.

It will be easier to review the code itslef.

For sure you are missing CHANGELOG.md near to README.md

@github-actions
Copy link
Copy Markdown
Contributor

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 5, 2026

Codecov Report

❌ Patch coverage is 64.70588% with 78 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.65%. Comparing base (d1717a8) to head (a3ef99e).
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...on.Remoting/Implementation/TelemetryDynamicSink.cs 58.90% 60 Missing ⚠️
...plementation/RemotingInstrumentationEventSource.cs 5.26% 18 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #3829      +/-   ##
==========================================
- Coverage   72.75%   72.65%   -0.11%     
==========================================
  Files         458      464       +6     
  Lines       17876    18097     +221     
==========================================
+ Hits        13006    13148     +142     
- Misses       4870     4949      +79     
Flag Coverage Δ
unittests-Contrib.Shared.Tests 89.76% <ø> (ø)
unittests-Exporter.Geneva 55.03% <ø> (+0.21%) ⬆️
unittests-Exporter.InfluxDB 95.81% <ø> (ø)
unittests-Exporter.Instana 74.86% <ø> (-0.19%) ⬇️
unittests-Exporter.OneCollector 94.61% <ø> (ø)
unittests-Extensions 90.65% <ø> (ø)
unittests-Extensions.Enrichment 100.00% <ø> (ø)
unittests-Extensions.Enrichment.AspNetCore 86.27% <ø> (ø)
unittests-Extensions.Enrichment.Http 94.33% <ø> (ø)
unittests-Instrumentation.AWS 83.33% <ø> (-0.21%) ⬇️
unittests-Instrumentation.AspNet 77.37% <ø> (ø)
unittests-Instrumentation.AspNetCore 70.44% <ø> (ø)
unittests-Instrumentation.Cassandra 23.52% <ø> (ø)
unittests-Instrumentation.ConfluentKafka 39.83% <ø> (ø)
unittests-Instrumentation.ElasticsearchClient 80.60% <ø> (ø)
unittests-Instrumentation.EntityFrameworkCore 80.80% <ø> (ø)
unittests-Instrumentation.EventCounters 77.27% <ø> (ø)
unittests-Instrumentation.GrpcCore 91.42% <ø> (ø)
unittests-Instrumentation.GrpcNetClient 73.78% <ø> (ø)
unittests-Instrumentation.Hangfire 86.05% <ø> (ø)
unittests-Instrumentation.Http 74.62% <ø> (ø)
unittests-Instrumentation.Owin 88.62% <ø> (ø)
unittests-Instrumentation.Process 100.00% <ø> (ø)
unittests-Instrumentation.Quartz 78.76% <ø> (ø)
unittests-Instrumentation.Remoting 64.70% <64.70%> (?)
unittests-Instrumentation.Runtime 100.00% <ø> (ø)
unittests-Instrumentation.ServiceFabricRemoting 34.68% <ø> (ø)
unittests-Instrumentation.SqlClient 85.74% <ø> (ø)
unittests-Instrumentation.StackExchangeRedis 71.98% <ø> (ø)
unittests-Instrumentation.Wcf 79.68% <ø> (ø)
unittests-OpAmp.Client 78.99% <ø> (-0.51%) ⬇️
unittests-PersistentStorage 68.19% <ø> (-1.64%) ⬇️
unittests-Resources.AWS 74.34% <ø> (ø)
unittests-Resources.Azure 85.31% <ø> (ø)
unittests-Resources.Container 67.34% <ø> (ø)
unittests-Resources.Gcp 71.42% <ø> (ø)
unittests-Resources.Host 72.26% <ø> (ø)
unittests-Resources.OperatingSystem 76.98% <ø> (ø)
unittests-Resources.Process 100.00% <ø> (ø)
unittests-Resources.ProcessRuntime 79.59% <ø> (ø)
unittests-Sampler.AWS 94.28% <ø> (ø)

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

Files with missing lines Coverage Δ
...ing/Implementation/TelemetryDynamicSinkProvider.cs 100.00% <100.00%> (ø)
...nstrumentation.Remoting/RemotingInstrumentation.cs 100.00% <100.00%> (ø)
...ntation.Remoting/RemotingInstrumentationOptions.cs 100.00% <100.00%> (ø)
...tation.Remoting/TracerProviderBuilderExtensions.cs 100.00% <100.00%> (ø)
...plementation/RemotingInstrumentationEventSource.cs 5.26% <5.26%> (ø)
...on.Remoting/Implementation/TelemetryDynamicSink.cs 58.90% <58.90%> (ø)

... and 7 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Kielek
Copy link
Copy Markdown
Member

Kielek commented Mar 6, 2026

Ideally, I would like to not split this out into two PR's if we can avoid it

@lewis800, I see that you are working on infrastructure fixes here. This was my initial call to split it to separate PR.
Once again, it will allow us to focus on correct things separately.

Cost of extraction does not seem so big to avoid this.

@Kielek Kielek added the comp:instrumentation.remoting Things related to OpenTelemetry.Instrumentation.Remoting label Mar 6, 2026
@github-actions github-actions bot removed the infra Infra work - CI/CD, code coverage, linters label Mar 19, 2026
@lewis800
Copy link
Copy Markdown
Contributor Author

@martincostello @Kielek should be rebased off main, let me know if we need any further changes or clean up etc

Copy link
Copy Markdown
Member

@Kielek Kielek left a comment

Choose a reason for hiding this comment

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

I hope this comments make sense, please let me know what do you think.


<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Options" />
<PackageReference Include="OpenTelemetry" />
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

In general, there is a good practice to reference only OpenTelemetry.Api package by the instrumentations. The only downside is probably lack of support for Sdk.SuppressInstrumentation. I would not consider this as a blocker as WCF is doing probably the same thing.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I only added Sdk.SuppressInstrumentation as I saw other instrumentation use it, so I am not set in stone on having / vs not having it. I'll leave it upto you to decide

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@rajkumar-rangaraj, what is your opinion here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@Kielek I'm happy to just remove it for now and we can add it in back later if its needed, to get this PR merged for now

Co-authored-by: Piotr Kiełkowicz <pkielkow@cisco.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp:instrumentation.remoting Things related to OpenTelemetry.Instrumentation.Remoting

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants