Skip to content
This repository was archived by the owner on Dec 18, 2023. It is now read-only.

Commit e5f3822

Browse files
Automatic spans collection for Redis (#93)
Automatic spans collection for Redis
1 parent 46ecfab commit e5f3822

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+992
-30
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ the release.
1111
and process links, annotations and messages.
1212
- ASP.NET Core collector now uses `http.route` for the span name.
1313
- Initial implementation of Resource Specification.
14+
- Plug in to collect Redis calls made using StackExchange.Redis package.
15+
- Object of type `ISpanData` can be created using only Abstractions package.
16+
- Number of minor APIs adjustments.
1417

1518
## 0.1.0-alpha-33381
1619

OpenCensus.sln

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenCensus.Exporter.Stackdr
6363
EndProject
6464
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenCensus.Exporter.ApplicationInsights.Tests", "test\OpenCensus.Exporter.ApplicationInsights.Tests\OpenCensus.Exporter.ApplicationInsights.Tests.csproj", "{1FA1F509-7722-48E3-9A35-16CBB6774957}"
6565
EndProject
66+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenCensus.Collector.StackExchangeRedis", "src\OpenCensus.Collector.StackExchangeRedis\OpenCensus.Collector.StackExchangeRedis.csproj", "{6B681D72-D68A-44CC-8C75-53B9A322E6EC}"
67+
EndProject
68+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenCensus.Collector.StackExchangeRedis.Tests", "test\OpenCensus.Collector.StackExchangeRedis.Tests\OpenCensus.Collector.StackExchangeRedis.Tests.csproj", "{CA98AF29-0852-4ADD-A66B-7E96266EE7B7}"
69+
EndProject
6670
Global
6771
GlobalSection(SolutionConfigurationPlatforms) = preSolution
6872
Debug|Any CPU = Debug|Any CPU
@@ -133,6 +137,14 @@ Global
133137
{1FA1F509-7722-48E3-9A35-16CBB6774957}.Debug|Any CPU.Build.0 = Debug|Any CPU
134138
{1FA1F509-7722-48E3-9A35-16CBB6774957}.Release|Any CPU.ActiveCfg = Release|Any CPU
135139
{1FA1F509-7722-48E3-9A35-16CBB6774957}.Release|Any CPU.Build.0 = Release|Any CPU
140+
{6B681D72-D68A-44CC-8C75-53B9A322E6EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
141+
{6B681D72-D68A-44CC-8C75-53B9A322E6EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
142+
{6B681D72-D68A-44CC-8C75-53B9A322E6EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
143+
{6B681D72-D68A-44CC-8C75-53B9A322E6EC}.Release|Any CPU.Build.0 = Release|Any CPU
144+
{CA98AF29-0852-4ADD-A66B-7E96266EE7B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
145+
{CA98AF29-0852-4ADD-A66B-7E96266EE7B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
146+
{CA98AF29-0852-4ADD-A66B-7E96266EE7B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
147+
{CA98AF29-0852-4ADD-A66B-7E96266EE7B7}.Release|Any CPU.Build.0 = Release|Any CPU
136148
EndGlobalSection
137149
GlobalSection(SolutionProperties) = preSolution
138150
HideSolutionNode = FALSE

README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ We encourage contributions. Use tags [up-for-grabs][up-for-grabs-issues] and
3232
| ----------------------- | ---------------- | -----------------|
3333
| Asp.Net Core | [![MyGet Nightly][opencensus-collect-aspnetcore-myget-image]][opencensus-collect-aspnetcore-myget-url] | [![NuGet Release][opencensus-collect-aspnetcore-nuget-image]][opencensus-collect-aspnetcore-nuget-url] |
3434
| .Net Core HttpClient | [![MyGet Nightly][opencensus-collect-deps-myget-image]][opencensus-collect-deps-myget-url] | [![NuGet Release][opencensus-collect-deps-nuget-image]][opencensus-collect-deps-nuget-url] |
35+
| StackExchange.Redis | [![MyGet Nightly][opencensus-collect-stackexchange-redis-myget-image]][opencensus-collect-stackexchange-redis-myget-url] | [![NuGet Release][opencensus-collect-stackexchange-redis-nuget-image]][opencensus-collect-stackexchange-redis-nuget-url]|
3536

3637
### Exporters Packages
3738

@@ -109,6 +110,41 @@ Outgoing http calls made by .NET Core `HttpClient` can be automatically tracked.
109110
var depCollector = app.ApplicationServices.GetService<DependenciesCollector>();
110111
```
111112

113+
### Using StackExchange.Redis collector
114+
115+
Outgoing http calls to Redis made usign StackExchange.Redis library can be automatically tracked.
116+
117+
1. Install package to your project:
118+
[OpenCensus.Collector.StackExchangeRedis][opencensus-collect-stackexchange-redis-nuget-url]
119+
120+
2. Make sure `ITracer`, `ISampler`, and `IExportComponent` registered in DI.
121+
``` csharp
122+
services.AddSingleton<ITracer>(Tracing.Tracer);
123+
services.AddSingleton<ISampler>(Samplers.AlwaysSample);
124+
services.AddSingleton<IExportComponent>(Tracing.ExportComponent);
125+
```
126+
127+
3. Configure data collection singletons in ConfigureServices method:
128+
``` csharp
129+
public void ConfigureServices(IServiceCollection services)
130+
{
131+
// ...
132+
services.AddSingleton<StackExchangeRedisCallsCollectorOptions>(new StackExchangeRedisCallsCollectorOptions());
133+
services.AddSingleton<StackExchangeRedisCallsCollector>();
134+
```
135+
136+
4. Initiate data collection by instantiating singleton in Configure method
137+
``` csharp
138+
public void Configure(IApplicationBuilder app, /*... other arguments*/ )
139+
{
140+
// ...
141+
var redisCollector = app.ApplicationServices.GetService<StackExchangeRedisCallsCollector>();
142+
143+
// use collector to configure the profiler
144+
ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost:6379");
145+
connection.RegisterProfiler(redisCollector.GetProfilerSessionsFactory());
146+
```
147+
112148
## OpenCensus QuickStart: exporting data
113149

114150
### Using Zipkin exporter
@@ -236,6 +272,8 @@ deprecate it for 18 months before removing it, if possible.
236272
[opencensus-collect-aspnetcore-myget-url]: https://www.myget.org/feed/opencensus/package/nuget/OpenCensus.Collector.AspNetCore
237273
[opencensus-collect-deps-myget-image]:https://img.shields.io/myget/opencensus/vpre/OpenCensus.Collector.Dependencies.svg
238274
[opencensus-collect-deps-myget-url]: https://www.myget.org/feed/opencensus/package/nuget/OpenCensus.Collector.Dependencies
275+
[opencensus-collect-stackexchange-redis-myget-image]:https://img.shields.io/myget/opencensus/vpre/OpenCensus.Collector.StackExchangeRedis.svg
276+
[opencensus-collect-stackexchange-redis-myget-url]: https://www.myget.org/feed/opencensus/package/nuget/OpenCensus.Collector.StackExchangeRedis
239277
[opencensus-nuget-image]:https://img.shields.io/nuget/vpre/OpenCensus.svg
240278
[opencensus-nuget-url]:https://www.nuget.org/packages/OpenCensus
241279
[opencensus-abs-nuget-image]:https://img.shields.io/nuget/vpre/OpenCensus.Abstractions.svg
@@ -252,6 +290,8 @@ deprecate it for 18 months before removing it, if possible.
252290
[opencensus-collect-aspnetcore-nuget-url]: https://www.nuget.org/packages/OpenCensus.Collector.AspNetCore
253291
[opencensus-collect-deps-nuget-image]:https://img.shields.io/nuget/vpre/OpenCensus.Collector.Dependencies.svg
254292
[opencensus-collect-deps-nuget-url]: https://www.nuget.org/packages/OpenCensus.Collector.Dependencies
293+
[opencensus-collect-stackexchange-redis-nuget-image]:https://img.shields.io/nuget/vpre/OpenCensus.Collector.StackExchangeRedis.svg
294+
[opencensus-collect-stackexchange-redis-nuget-url]: https://www.nuget.org/packages/OpenCensus.Collector.StackExchangeRedis
255295
[up-for-grabs-issues]: https://github.com/census-instrumentation/opencensus-csharp/issues?q=is%3Aissue+is%3Aopen+label%3Aup-for-grabs
256296
[good-first-issues]: https://github.com/census-instrumentation/opencensus-csharp/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
257297
[zipkin-get-started]: https://zipkin.io/pages/quickstart.html
File renamed without changes.
File renamed without changes.

src/OpenCensus.Abstractions/OpenCensus.Abstractions.csproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,11 @@
2626
</PackageReference>
2727
</ItemGroup>
2828
<ItemGroup>
29-
<Folder Include="Common\" />
3029
<Folder Include="Internal\" />
3130
<Folder Include="Stats\" />
3231
<Folder Include="Tags\" />
3332
</ItemGroup>
3433
<ItemGroup>
35-
<Compile Remove="Utils\Arrays.cs" />
3634
<Compile Remove="Utils\AttributesWithCapacity.cs" />
3735
</ItemGroup>
3836
</Project>

src/OpenCensus.Abstractions/Tags/TagValues.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
namespace OpenCensus.Tags
1818
{
1919
using System.Collections.Generic;
20-
using OpenCensus.Utils.Abstractions;
20+
using OpenCensus.Abstractions.Utils;
21+
using OpenCensus.Utils;
2122

2223
/// <summary>
2324
/// Collection of tags.

src/OpenCensus/Trace/Annotation.cs renamed to src/OpenCensus.Abstractions/Trace/Annotation.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace OpenCensus.Trace
2020
using System.Collections.Generic;
2121
using System.Collections.ObjectModel;
2222
using System.Linq;
23-
using OpenCensus.Utils;
23+
using OpenCensus.Abstractions.Utils;
2424

2525
public sealed class Annotation : IAnnotation
2626
{
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)