Skip to content

Commit 98c48bc

Browse files
committed
Add creative_size and creative_ttl metrics for Vtrack
1 parent c5b8c7f commit 98c48bc

File tree

5 files changed

+111
-41
lines changed

5 files changed

+111
-41
lines changed

src/main/java/org/prebid/server/cache/CoreCacheService.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import java.util.Objects;
5959
import java.util.Set;
6060
import java.util.concurrent.TimeoutException;
61+
import java.util.function.BiConsumer;
6162
import java.util.function.Function;
6263
import java.util.stream.Collectors;
6364
import java.util.stream.Stream;
@@ -217,7 +218,10 @@ public Future<BidCacheResponse> cachePutObjects(List<BidPutObject> bidPutObjects
217218
final List<CachedCreative> cachedCreatives =
218219
updatePutObjects(bidPutObjects, isEventsEnabled, biddersAllowingVastUpdate, accountId, integration);
219220

220-
updateCreativeMetrics(accountId, cachedCreatives);
221+
updateCreativeMetrics(
222+
cachedCreatives,
223+
(ttl, type) -> metrics.updateVtrackCacheCreativeTtl(accountId, ttl, type),
224+
(size, type) -> metrics.updateVtrackCacheCreativeSize(accountId, size, type));
221225

222226
return makeRequest(toBidCacheRequest(cachedCreatives), cachedCreatives.size(), timeout, accountId);
223227
}
@@ -316,7 +320,10 @@ private Future<CacheServiceResult> doCacheOpenrtb(List<CacheBid> bids,
316320

317321
final BidCacheRequest bidCacheRequest = toBidCacheRequest(cachedCreatives);
318322

319-
updateCreativeMetrics(accountId, cachedCreatives);
323+
updateCreativeMetrics(
324+
cachedCreatives,
325+
(ttl, type) -> metrics.updateCacheCreativeTtl(accountId, ttl, type),
326+
(size, type) -> metrics.updateCacheCreativeSize(accountId, size, type));
320327

321328
final String url = ObjectUtils.firstNonNull(internalEndpointUrl, externalEndpointUrl).toString();
322329
final String body = mapper.encodeToString(bidCacheRequest);
@@ -542,17 +549,20 @@ private static String resolveVideoBidUuid(String uuid, String hbCacheId) {
542549
return hbCacheId != null && uuid.endsWith(hbCacheId) ? hbCacheId : uuid;
543550
}
544551

545-
private void updateCreativeMetrics(String accountId, List<CachedCreative> cachedCreatives) {
552+
private void updateCreativeMetrics(List<CachedCreative> cachedCreatives,
553+
BiConsumer<Integer, MetricName> updateCreativeTtlMetric,
554+
BiConsumer<Integer, MetricName> updateCreativeSiseMetric) {
555+
546556
for (CachedCreative cachedCreative : cachedCreatives) {
547557
final BidPutObject payload = cachedCreative.getPayload();
548558
final MetricName creativeType = resolveCreativeTypeName(payload);
549559
final Integer creativeTtl = ObjectUtils.defaultIfNull(payload.getTtlseconds(), payload.getExpiry());
550560

551561
if (creativeTtl != null) {
552-
metrics.updateCacheCreativeTtl(accountId, creativeTtl, creativeType);
562+
updateCreativeTtlMetric.accept(creativeTtl, creativeType);
553563
}
554564

555-
metrics.updateCacheCreativeSize(accountId, cachedCreative.getSize(), creativeType);
565+
updateCreativeSiseMetric.accept(cachedCreative.getSize(), creativeType);
556566
}
557567
}
558568

src/main/java/org/prebid/server/metric/CacheVtrackMetrics.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ class CacheVtrackMetrics extends UpdatableMetrics {
99

1010
private final CacheReadMetrics readMetrics;
1111
private final CacheWriteMetrics writeMetrics;
12+
private final CacheCreativeSizeMetrics creativeSizeMetrics;
13+
private final CacheCreativeTtlMetrics creativeTtlMetrics;
1214

1315
CacheVtrackMetrics(MetricRegistry metricRegistry, CounterType counterType, String prefix) {
1416
super(
@@ -18,6 +20,8 @@ class CacheVtrackMetrics extends UpdatableMetrics {
1820

1921
readMetrics = new CacheReadMetrics(metricRegistry, counterType, createPrefix(prefix));
2022
writeMetrics = new CacheWriteMetrics(metricRegistry, counterType, createPrefix(prefix));
23+
creativeSizeMetrics = new CacheCreativeSizeMetrics(metricRegistry, counterType, createPrefix(prefix));
24+
creativeTtlMetrics = new CacheCreativeTtlMetrics(metricRegistry, counterType, createPrefix(prefix));
2125
}
2226

2327
private static Function<MetricName, String> nameCreator(String prefix) {
@@ -36,4 +40,12 @@ CacheWriteMetrics write() {
3640
return writeMetrics;
3741
}
3842

43+
CacheCreativeSizeMetrics creativeSize() {
44+
return creativeSizeMetrics;
45+
}
46+
47+
CacheCreativeTtlMetrics creativeTtl() {
48+
return creativeTtlMetrics;
49+
}
50+
3951
}

src/main/java/org/prebid/server/metric/Metrics.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,16 @@ public void updateVtrackCacheWriteRequestTime(String accountId, long timeElapsed
619619
forAccount(accountId).cache().vtrack().write().updateTimer(metricName, timeElapsed);
620620
}
621621

622+
public void updateVtrackCacheCreativeSize(String accountId, int creativeSize, MetricName creativeType) {
623+
cache().vtrack().creativeSize().updateHistogram(creativeType, creativeSize);
624+
forAccount(accountId).cache().vtrack().creativeSize().updateHistogram(creativeType, creativeSize);
625+
}
626+
627+
public void updateVtrackCacheCreativeTtl(String accountId, Integer creativeTtl, MetricName creativeType) {
628+
cache().vtrack().creativeTtl().updateHistogram(creativeType, creativeTtl);
629+
forAccount(accountId).cache().vtrack().creativeTtl().updateHistogram(creativeType, creativeTtl);
630+
}
631+
622632
public void updateAuctionCacheRequestTime(String accountId, long timeElapsed, MetricName metricName) {
623633
cache().requests().updateTimer(metricName, timeElapsed);
624634
forAccount(accountId).cache().requests().updateTimer(metricName, timeElapsed);
@@ -629,6 +639,11 @@ public void updateCacheCreativeSize(String accountId, int creativeSize, MetricNa
629639
forAccount(accountId).cache().creativeSize().updateHistogram(creativeType, creativeSize);
630640
}
631641

642+
public void updateCacheCreativeTtl(String accountId, Integer creativeTtl, MetricName creativeType) {
643+
cache().creativeTtl().updateHistogram(creativeType, creativeTtl);
644+
forAccount(accountId).cache().creativeTtl().updateHistogram(creativeType, creativeTtl);
645+
}
646+
632647
public void updateTimeoutNotificationMetric(boolean success) {
633648
if (success) {
634649
timeoutNotificationMetrics.incCounter(MetricName.ok);
@@ -706,11 +721,6 @@ public void updateAccountModuleDurationMetric(Account account, String moduleCode
706721
}
707722
}
708723

709-
public void updateCacheCreativeTtl(String accountId, Integer creativeTtl, MetricName creativeType) {
710-
cache().creativeTtl().updateHistogram(creativeType, creativeTtl);
711-
forAccount(accountId).cache().creativeTtl().updateHistogram(creativeType, creativeTtl);
712-
}
713-
714724
public void updateRequestsActivityDisallowedCount(Activity activity) {
715725
requests().activities().forActivity(activity).incCounter(MetricName.disallowed_count);
716726
}

src/test/java/org/prebid/server/cache/CoreCacheServiceTest.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -853,13 +853,13 @@ public void cachePutObjectsShouldCacheObjects() throws IOException {
853853
// then
854854
verify(httpClient).post(eq("http://cache-service/cache"), any(), any(), anyLong());
855855

856-
verify(metrics).updateCacheCreativeSize(eq("account"), eq(12), eq(MetricName.json));
857-
verify(metrics).updateCacheCreativeSize(eq("account"), eq(4), eq(MetricName.xml));
858-
verify(metrics).updateCacheCreativeSize(eq("account"), eq(11), eq(MetricName.unknown));
856+
verify(metrics).updateVtrackCacheCreativeSize(eq("account"), eq(12), eq(MetricName.json));
857+
verify(metrics).updateVtrackCacheCreativeSize(eq("account"), eq(4), eq(MetricName.xml));
858+
verify(metrics).updateVtrackCacheCreativeSize(eq("account"), eq(11), eq(MetricName.unknown));
859859

860-
verify(metrics).updateCacheCreativeTtl(eq("account"), eq(1), eq(MetricName.json));
861-
verify(metrics).updateCacheCreativeTtl(eq("account"), eq(2), eq(MetricName.xml));
862-
verify(metrics).updateCacheCreativeTtl(eq("account"), eq(3), eq(MetricName.unknown));
860+
verify(metrics).updateVtrackCacheCreativeTtl(eq("account"), eq(1), eq(MetricName.json));
861+
verify(metrics).updateVtrackCacheCreativeTtl(eq("account"), eq(2), eq(MetricName.xml));
862+
verify(metrics).updateVtrackCacheCreativeTtl(eq("account"), eq(3), eq(MetricName.unknown));
863863

864864
verify(metrics).updateVtrackCacheWriteRequestTime(eq("account"), anyLong(), eq(MetricName.ok));
865865

@@ -918,8 +918,8 @@ public void cachePutObjectsShouldLogErrorMetricsWhenStatusCodeIsNotOk() {
918918
timeout);
919919

920920
// then
921-
verify(metrics).updateCacheCreativeSize(eq("account"), eq(12), eq(MetricName.json));
922-
verify(metrics).updateCacheCreativeTtl(eq("account"), eq(1), eq(MetricName.json));
921+
verify(metrics).updateVtrackCacheCreativeSize(eq("account"), eq(12), eq(MetricName.json));
922+
verify(metrics).updateVtrackCacheCreativeTtl(eq("account"), eq(1), eq(MetricName.json));
923923
verify(metrics).updateVtrackCacheWriteRequestTime(eq("account"), anyLong(), eq(MetricName.err));
924924
verify(vastModifier).modifyVastXml(true, singleton("bidder1"), bidObject, "account", "pbjs");
925925
}
@@ -955,8 +955,8 @@ public void cachePutObjectsShouldNotLogErrorMetricsWhenCacheServiceIsNotConnecte
955955

956956
// then
957957
verify(metrics, never()).updateVtrackCacheWriteRequestTime(eq("account"), anyLong(), any());
958-
verify(metrics).updateCacheCreativeSize(eq("account"), eq(12), eq(MetricName.json));
959-
verify(metrics).updateCacheCreativeTtl(eq("account"), eq(1), eq(MetricName.json));
958+
verify(metrics).updateVtrackCacheCreativeSize(eq("account"), eq(12), eq(MetricName.json));
959+
verify(metrics).updateVtrackCacheCreativeTtl(eq("account"), eq(1), eq(MetricName.json));
960960
verify(vastModifier).modifyVastXml(true, singleton("bidder1"), bidObject, "account", "pbjs");
961961
}
962962

@@ -997,8 +997,8 @@ public void cachePutObjectsShouldCallInternalCacheEndpointWhenProvided() throws
997997

998998
// then
999999
verify(httpClient).post(eq("http://cache-service-internal/cache"), any(), any(), anyLong());
1000-
verify(metrics).updateCacheCreativeSize(eq("account"), eq(12), eq(MetricName.json));
1001-
verify(metrics).updateCacheCreativeTtl(eq("account"), eq(1), eq(MetricName.json));
1000+
verify(metrics).updateVtrackCacheCreativeSize(eq("account"), eq(12), eq(MetricName.json));
1001+
verify(metrics).updateVtrackCacheCreativeTtl(eq("account"), eq(1), eq(MetricName.json));
10021002

10031003
verify(vastModifier).modifyVastXml(true, singleton("bidder1"), firstBidPutObject, "account", "pbjs");
10041004

src/test/java/org/prebid/server/metric/MetricsTest.java

Lines changed: 57 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1284,6 +1284,63 @@ public void shouldIncrementPrebidCacheCreativeSizeHistogram() {
12841284
.isEqualTo(1);
12851285
}
12861286

1287+
@Test
1288+
public void shouldIncrementPrebidCacheVtrackCreativeSizeHistogram() {
1289+
// when
1290+
metrics.updateVtrackCacheCreativeSize("accountId", 123, MetricName.json);
1291+
metrics.updateVtrackCacheCreativeSize("accountId", 456, MetricName.xml);
1292+
metrics.updateVtrackCacheCreativeSize("accountId", 789, MetricName.unknown);
1293+
1294+
// then
1295+
assertThat(metricRegistry.histogram("prebid_cache.vtrack.creative_size.json").getCount()).isEqualTo(1);
1296+
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.vtrack.creative_size.json").getCount())
1297+
.isEqualTo(1);
1298+
assertThat(metricRegistry.histogram("prebid_cache.vtrack.creative_size.xml").getCount()).isEqualTo(1);
1299+
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.vtrack.creative_size.xml").getCount())
1300+
.isEqualTo(1);
1301+
assertThat(metricRegistry.histogram("prebid_cache.vtrack.creative_size.unknown").getCount()).isEqualTo(1);
1302+
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.vtrack.creative_size.unknown").getCount())
1303+
.isEqualTo(1);
1304+
}
1305+
1306+
@Test
1307+
public void shouldIncrementPrebidCacheCreativeTtlHistogram() {
1308+
// when
1309+
metrics.updateCacheCreativeTtl("accountId", 123, MetricName.json);
1310+
metrics.updateCacheCreativeTtl("accountId", 456, MetricName.xml);
1311+
metrics.updateCacheCreativeTtl("accountId", 789, MetricName.unknown);
1312+
1313+
// then
1314+
assertThat(metricRegistry.histogram("prebid_cache.creative_ttl.json").getCount()).isEqualTo(1);
1315+
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.creative_ttl.json").getCount())
1316+
.isEqualTo(1);
1317+
assertThat(metricRegistry.histogram("prebid_cache.creative_ttl.xml").getCount()).isEqualTo(1);
1318+
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.creative_ttl.xml").getCount())
1319+
.isEqualTo(1);
1320+
assertThat(metricRegistry.histogram("prebid_cache.creative_ttl.unknown").getCount()).isEqualTo(1);
1321+
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.creative_ttl.unknown").getCount())
1322+
.isEqualTo(1);
1323+
}
1324+
1325+
@Test
1326+
public void shouldIncrementPrebidCacheVtrackCreativeTtlHistogram() {
1327+
// when
1328+
metrics.updateVtrackCacheCreativeTtl("accountId", 123, MetricName.json);
1329+
metrics.updateVtrackCacheCreativeTtl("accountId", 456, MetricName.xml);
1330+
metrics.updateVtrackCacheCreativeTtl("accountId", 789, MetricName.unknown);
1331+
1332+
// then
1333+
assertThat(metricRegistry.histogram("prebid_cache.vtrack.creative_ttl.json").getCount()).isEqualTo(1);
1334+
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.vtrack.creative_ttl.json").getCount())
1335+
.isEqualTo(1);
1336+
assertThat(metricRegistry.histogram("prebid_cache.vtrack.creative_ttl.xml").getCount()).isEqualTo(1);
1337+
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.vtrack.creative_ttl.xml").getCount())
1338+
.isEqualTo(1);
1339+
assertThat(metricRegistry.histogram("prebid_cache.vtrack.creative_ttl.unknown").getCount()).isEqualTo(1);
1340+
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.vtrack.creative_ttl.unknown").getCount())
1341+
.isEqualTo(1);
1342+
}
1343+
12871344
@Test
12881345
public void shouldCreateCurrencyRatesGaugeMetric() {
12891346
// when
@@ -1571,25 +1628,6 @@ public void shouldIncrementUpdateAccountRequestRejectedByFailedFetchCount() {
15711628
.isEqualTo(1);
15721629
}
15731630

1574-
@Test
1575-
public void shouldIncrementPrebidCacheCreativeTtlHistogram() {
1576-
// when
1577-
metrics.updateCacheCreativeTtl("accountId", 123, MetricName.json);
1578-
metrics.updateCacheCreativeTtl("accountId", 456, MetricName.xml);
1579-
metrics.updateCacheCreativeTtl("accountId", 789, MetricName.unknown);
1580-
1581-
// then
1582-
assertThat(metricRegistry.histogram("prebid_cache.creative_ttl.json").getCount()).isEqualTo(1);
1583-
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.creative_ttl.json").getCount())
1584-
.isEqualTo(1);
1585-
assertThat(metricRegistry.histogram("prebid_cache.creative_ttl.xml").getCount()).isEqualTo(1);
1586-
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.creative_ttl.xml").getCount())
1587-
.isEqualTo(1);
1588-
assertThat(metricRegistry.histogram("prebid_cache.creative_ttl.unknown").getCount()).isEqualTo(1);
1589-
assertThat(metricRegistry.histogram("account.accountId.prebid_cache.creative_ttl.unknown").getCount())
1590-
.isEqualTo(1);
1591-
}
1592-
15931631
private void verifyCreatesConfiguredCounterType(Consumer<Metrics> metricsConsumer) {
15941632
final EnumMap<CounterType, Class<? extends Metric>> counterTypeClasses = new EnumMap<>(CounterType.class);
15951633
counterTypeClasses.put(CounterType.counter, Counter.class);

0 commit comments

Comments
 (0)