Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
7c0d427
TracerBuilder depedency injection improvements.
CodeBlanch Aug 3, 2022
4c01825
Fixes and API updates.
CodeBlanch Aug 3, 2022
a64ae6b
Update skipped test.
CodeBlanch Aug 3, 2022
816736e
Tweak.
CodeBlanch Aug 3, 2022
ae8a856
Tweaks.
CodeBlanch Aug 3, 2022
96e29c2
Test fix.
CodeBlanch Aug 4, 2022
bb17782
Turn on options in TracerProviderBuilderBase.
CodeBlanch Aug 4, 2022
ed11c2b
Updated CHANGELOGs.
CodeBlanch Aug 4, 2022
95f71d3
Merge remote-tracking branch 'upstream/main' into tracerprovider-depe…
CodeBlanch Aug 4, 2022
dcfb85a
Added XML comments to AddOpenTelemetryTracing methods.
CodeBlanch Aug 4, 2022
a22dad3
Merge remote-tracking branch 'upstream/main' into tracerprovider-depe…
CodeBlanch Aug 5, 2022
a1ea05d
Tweaks.
CodeBlanch Aug 5, 2022
b5d285d
Merge from main.
CodeBlanch Aug 6, 2022
e02a951
Added export helpers and restored removed API from hosting library so…
CodeBlanch Aug 6, 2022
d3b0ac6
Export extension tweaks.
CodeBlanch Aug 6, 2022
c0eee21
Tweak.
CodeBlanch Aug 6, 2022
f3f0e85
Tracer builder improvements.
CodeBlanch Aug 8, 2022
d8338cd
Fix hosting multiple configurations test.
CodeBlanch Aug 8, 2022
2a7906d
Cleanup.
CodeBlanch Aug 8, 2022
dea2152
Cleanup and fixes.
CodeBlanch Aug 9, 2022
8be5f98
Added "UseOpenTelemetry" extensions.
CodeBlanch Aug 15, 2022
9e02797
Cleanup.
CodeBlanch Aug 15, 2022
b458552
Code review.
CodeBlanch Aug 17, 2022
489ae0c
Code review.
CodeBlanch Aug 17, 2022
d953928
Rename SDK extension "Configure" and restore "Add" in the hosting lib.
CodeBlanch Aug 17, 2022
cd95c32
Merging from main.
CodeBlanch Aug 19, 2022
57e3b49
Doc clarification.
CodeBlanch Aug 19, 2022
6467f6d
Some test coverage.
CodeBlanch Aug 19, 2022
cb37f39
README updates.
CodeBlanch Aug 19, 2022
ecd1df4
Fix double dispose of TracerProvider when using Sdk.CreateTracerProvi…
CodeBlanch Aug 19, 2022
59979e2
AddExporter tests.
CodeBlanch Aug 19, 2022
923211d
More test coverage.
CodeBlanch Aug 19, 2022
ae64512
More test coverage.
CodeBlanch Aug 19, 2022
856c751
Code review.
CodeBlanch Aug 23, 2022
b3a46b5
Merge branch 'main' into tracerprovider-dependencyinjection
CodeBlanch Aug 23, 2022
c91f02d
Merge branch 'main' into tracerprovider-dependencyinjection
CodeBlanch Aug 29, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
README updates.
  • Loading branch information
CodeBlanch committed Aug 19, 2022
commit cb37f397481ca7dc46a021b09255243350b33afe
24 changes: 11 additions & 13 deletions src/OpenTelemetry.Extensions.Hosting/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,27 +45,27 @@ Similar methods exist for registering instrumentation (`AddInstrumentation<T>`)
and setting a sampler (`SetSampler<T>`).

You can also access the application `IServiceProvider` directly and accomplish
the same registration using the `Configure` extension like this:
the same registration using the `ConfigureBuilder` extension like this:

```csharp
services.AddSingleton<MyProcessor>();

services.AddOpenTelemetryTracing(hostingBuilder => hostingBuilder
.Configure((sp, builder) => builder
.ConfigureBuilder((sp, builder) => builder
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddProcessor(sp.GetRequiredService<MyProcessor>())));
```

**Note:** `Configure` is called _after_ the `IServiceProvider` has been built
**Note:** `ConfigureBuilder` is called _after_ the `IServiceProvider` has been built
from the application `IServiceCollection` so any services registered in the
`Configure` callback will be ignored.
`ConfigureBuilder` callback will be ignored.

#### Building Extension Methods

Library authors may want to configure the OpenTelemetry `TracerProvider` and
register application services to provide more complex features. This can be
accomplished concisely by using the `TracerProviderBuilder.GetServices`
accomplished concisely by using the `TracerProviderBuilder.ConfigureServices`
extension method inside of a more general `TracerProviderBuilder` configuration
extension like this:

Expand All @@ -74,15 +74,13 @@ public static class MyLibraryExtensions
{
public static TracerProviderBuilder AddMyFeature(this TracerProviderBuilder tracerProviderBuilder)
{
(tracerProviderBuilder.GetServices()
?? throw new NotSupportedException(
"MyFeature requires a hosting TracerProviderBuilder instance."))
.AddHostedService<MyHostedService>()
.AddSingleton<MyService>()
.AddSingleton<MyProcessor>()
.AddSingleton<MySampler>();

return tracerProviderBuilder
.ConfigureServices(services =>
services
.AddHostedService<MyHostedService>()
.AddSingleton<MyService>()
.AddSingleton<MyProcessor>()
.AddSingleton<MySampler>())
.AddProcessor<MyProcessor>()
.SetSampler<MySampler>();
}
Expand Down