Skip to content

Commit d593e85

Browse files
committed
Merge remote-tracking branch 'Sozhan308/sozhan/rename.ad' into sozhan/rename.ad
2 parents ce335ca + 8f85d05 commit d593e85

File tree

6 files changed

+56
-27
lines changed

6 files changed

+56
-27
lines changed

CHANGELOG.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ the release.
77

88
## Unreleased
99

10-
* [flagd] Update `paymentServiceFailure` to use a list of variants.
11-
* [paymentservice] Add loyalty level attributes to spans.
12-
Added `service.name` to logs.
13-
([#1815](https://github.com/open-telemetry/opentelemetry-demo/pull/1815))
1410
* [grafana] Update grafana to 11.3.0
1511
([#1764](https://github.com/open-telemetry/opentelemetry-demo/pull/1764))
1612
* [chore] Move build args to .env file
@@ -29,8 +25,13 @@ the release.
2925
([#1794](https://github.com/open-telemetry/opentelemetry-demo/pull/1784))
3026
* [paymentservice] Add nodejs instrumentation for runtime metrics
3127
([#1797](https://github.com/open-telemetry/opentelemetry-demo/pull/1797))
28+
* [flagd and paymentservice] Update `paymentServiceFailure` to use a list of
29+
variants and add loyalty level attributes to spans. Added `service.name` to logs.
30+
([#1815](https://github.com/open-telemetry/opentelemetry-demo/pull/1815))
3231
* [accounting] rename accountingservice to accounting
3332
([#1827](https://github.com/open-telemetry/opentelemetry-demo/pull/1827))
33+
* [cartservice] - Add Exemplars to Cart Service
34+
([#1830](https://github.com/open-telemetry/opentelemetry-demo/pull/1830))
3435
* [ad] rename adservice to ad
3536
([#1827](https://github.com/open-telemetry/opentelemetry-demo/pull/1832))
3637

src/cartservice/src/Program.cs

+3
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,19 @@
6161
builder.Services.AddOpenTelemetry()
6262
.ConfigureResource(appResourceBuilder)
6363
.WithTracing(tracerBuilder => tracerBuilder
64+
.AddSource("OpenTelemetry.Demo.Cart")
6465
.AddRedisInstrumentation(
6566
options => options.SetVerboseDatabaseStatements = true)
6667
.AddAspNetCoreInstrumentation()
6768
.AddGrpcClientInstrumentation()
6869
.AddHttpClientInstrumentation()
6970
.AddOtlpExporter())
7071
.WithMetrics(meterBuilder => meterBuilder
72+
.AddMeter("OpenTelemetry.Demo.Cart")
7173
.AddProcessInstrumentation()
7274
.AddRuntimeInstrumentation()
7375
.AddAspNetCoreInstrumentation()
76+
.SetExemplarFilter(ExemplarFilterType.TraceBased)
7477
.AddOtlpExporter());
7578
OpenFeature.Api.Instance.AddHooks(new TracingHook());
7679
builder.Services.AddGrpc();

src/cartservice/src/cartservice.csproj

+14-14
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@
1515
</PropertyGroup>
1616

1717
<ItemGroup>
18-
<PackageReference Include="Grpc.AspNetCore" Version="2.66.0" />
19-
<PackageReference Include="Grpc.AspNetCore.HealthChecks" Version="2.66.0" />
20-
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.9.0" />
21-
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.9.0" />
22-
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.9.0" />
23-
<PackageReference Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.9.0-beta.1" />
24-
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.9.0" />
25-
<PackageReference Include="OpenTelemetry.Instrumentation.Process" Version="0.5.0-beta.7" />
26-
<PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.9.0-beta.1" />
27-
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.9.0" />
28-
<PackageReference Include="OpenTelemetry.Resources.Container" Version="1.0.0-beta.9" />
29-
<PackageReference Include="OpenTelemetry.Resources.Host" Version="0.1.0-beta.3" />
30-
<PackageReference Include="StackExchange.Redis" Version="2.8.16" />
18+
<PackageReference Include="Grpc.AspNetCore" Version="2.67.0" />
19+
<PackageReference Include="Grpc.AspNetCore.HealthChecks" Version="2.67.0" />
20+
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.10.0" />
21+
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.10.0" />
22+
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.10.1" />
23+
<PackageReference Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.10.0-beta.1" />
24+
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.10.0" />
25+
<PackageReference Include="OpenTelemetry.Instrumentation.Process" Version="1.10.0-beta.1" />
26+
<PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.10.0-beta.1" />
27+
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.10.0" />
28+
<PackageReference Include="OpenTelemetry.Resources.Container" Version="1.10.0-beta.1" />
29+
<PackageReference Include="OpenTelemetry.Resources.Host" Version="1.10.0-beta.1" />
30+
<PackageReference Include="StackExchange.Redis" Version="2.8.22" />
3131
<PackageReference Include="OpenFeature.Contrib.Providers.Flagd" Version="0.3.0" />
3232
<PackageReference Include="OpenFeature.Contrib.Hooks.Otel" Version="0.2.0" />
33-
<PackageReference Include="OpenFeature" Version="2.0.0" />
33+
<PackageReference Include="OpenFeature" Version="2.1.0" />
3434
</ItemGroup>
3535

3636
<ItemGroup>

src/cartservice/src/cartstore/ValkeyCartStore.cs

+26
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using StackExchange.Redis;
88
using Google.Protobuf;
99
using Microsoft.Extensions.Logging;
10+
using System.Diagnostics.Metrics;
11+
using System.Diagnostics;
1012

1113
namespace cartservice.cartstore;
1214

@@ -23,6 +25,20 @@ public class ValkeyCartStore : ICartStore
2325
private readonly byte[] _emptyCartBytes;
2426
private readonly string _connectionString;
2527

28+
private static readonly ActivitySource CartActivitySource = new("OpenTelemetry.Demo.Cart");
29+
private static readonly Meter CartMeter = new Meter("OpenTelemetry.Demo.Cart");
30+
private static readonly Histogram<long> addItemHistogram = CartMeter.CreateHistogram<long>(
31+
"app.cart.add_item.latency",
32+
advice: new InstrumentAdvice<long>
33+
{
34+
HistogramBucketBoundaries = [ 500000, 600000, 700000, 800000, 900000, 1000000, 1100000 ]
35+
});
36+
private static readonly Histogram<long> getCartHistogram = CartMeter.CreateHistogram<long>(
37+
"app.cart.get_cart.latency",
38+
advice: new InstrumentAdvice<long>
39+
{
40+
HistogramBucketBoundaries = [ 300000, 400000, 500000, 600000, 700000, 800000, 900000 ]
41+
});
2642
private readonly ConfigurationOptions _redisConnectionOptions;
2743

2844
public ValkeyCartStore(ILogger<ValkeyCartStore> logger, string valkeyAddress)
@@ -105,6 +121,7 @@ private void EnsureRedisConnected()
105121

106122
public async Task AddItemAsync(string userId, string productId, int quantity)
107123
{
124+
var stopwatch = Stopwatch.StartNew();
108125
_logger.LogInformation("AddItemAsync called with userId={userId}, productId={productId}, quantity={quantity}", userId, productId, quantity);
109126

110127
try
@@ -146,6 +163,10 @@ public async Task AddItemAsync(string userId, string productId, int quantity)
146163
{
147164
throw new RpcException(new Status(StatusCode.FailedPrecondition, $"Can't access cart storage. {ex}"));
148165
}
166+
finally
167+
{
168+
addItemHistogram.Record(stopwatch.ElapsedTicks);
169+
}
149170
}
150171

151172
public async Task EmptyCartAsync(string userId)
@@ -169,6 +190,7 @@ public async Task EmptyCartAsync(string userId)
169190

170191
public async Task<Oteldemo.Cart> GetCartAsync(string userId)
171192
{
193+
var stopwatch = Stopwatch.StartNew();
172194
_logger.LogInformation("GetCartAsync called with userId={userId}", userId);
173195

174196
try
@@ -192,6 +214,10 @@ public async Task EmptyCartAsync(string userId)
192214
{
193215
throw new RpcException(new Status(StatusCode.FailedPrecondition, $"Can't access cart storage. {ex}"));
194216
}
217+
finally
218+
{
219+
getCartHistogram.Record(stopwatch.ElapsedTicks);
220+
}
195221
}
196222

197223
public bool Ping()

src/cartservice/src/services/CartService.cs

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
using System.Threading.Tasks;
55
using System;
66
using Grpc.Core;
7-
using OpenTelemetry.Trace;
87
using cartservice.cartstore;
98
using OpenFeature;
109
using Oteldemo;
@@ -41,7 +40,7 @@ public override async Task<Empty> AddItem(AddItemRequest request, ServerCallCont
4140
}
4241
catch (RpcException ex)
4342
{
44-
activity?.RecordException(ex);
43+
activity?.AddException(ex);
4544
activity?.SetStatus(ActivityStatusCode.Error, ex.Message);
4645
throw;
4746
}
@@ -67,7 +66,7 @@ public override async Task<Cart> GetCart(GetCartRequest request, ServerCallConte
6766
}
6867
catch (RpcException ex)
6968
{
70-
activity?.RecordException(ex);
69+
activity?.AddException(ex);
7170
activity?.SetStatus(ActivityStatusCode.Error, ex.Message);
7271
throw;
7372
}
@@ -92,7 +91,7 @@ public override async Task<Empty> EmptyCart(EmptyCartRequest request, ServerCall
9291
}
9392
catch (RpcException ex)
9493
{
95-
Activity.Current?.RecordException(ex);
94+
Activity.Current?.AddException(ex);
9695
Activity.Current?.SetStatus(ActivityStatusCode.Error, ex.Message);
9796
throw;
9897
}

src/cartservice/tests/cartservice.tests.csproj

+5-5
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="Grpc.Net.Client" Version="2.63.0" />
9-
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="8.0.6" />
10-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
11-
<PackageReference Include="xunit" Version="2.8.1" />
12-
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.1">
8+
<PackageReference Include="Grpc.Net.Client" Version="2.67.0" />
9+
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="8.0.11" />
10+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
11+
<PackageReference Include="xunit" Version="2.9.2" />
12+
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
1313
<PrivateAssets>all</PrivateAssets>
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
</PackageReference>

0 commit comments

Comments
 (0)