Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
142 commits
Select commit Hold shift + click to select a range
4a83556
Route Execute Stored Procedure requests to Thin Proxy endpoint.
jeet1995 Jan 20, 2026
325ff0a
Route Execute Stored Procedure and QueryPlan requests to Thin Proxy e…
jeet1995 Jan 21, 2026
eb9a83e
Ensure QueryPlan gets routed to Gateway Service Endpoint (in non-TC +…
jeet1995 Jan 23, 2026
1492b36
Ensure QueryPlan gets routed to Gateway Service Endpoint (in non-TC +…
jeet1995 Jan 23, 2026
2c8a5f3
Ensure QueryPlan gets routed to Gateway Service Endpoint (in non-TC +…
jeet1995 Jan 23, 2026
1e14a7b
Obtain List<Range<String>> from List<PartitionKeyInternal>.
jeet1995 Jan 28, 2026
91116c9
Obtain List<Range<String>> from List<PartitionKeyInternal>.
jeet1995 Jan 28, 2026
688a5ac
Adding query + thin-client tests.
jeet1995 Jan 28, 2026
8ae321f
Fixing tests.
jeet1995 Jan 29, 2026
e76c84c
Fixing tests.
jeet1995 Jan 29, 2026
7f3bad8
Fixing tests.
jeet1995 Jan 30, 2026
7600598
Addressing review comments.
jeet1995 Jan 30, 2026
281bc88
Addressing review comments.
jeet1995 Mar 7, 2026
1d171f5
Refactor thin-client E2E tests based on operation type.
jeet1995 Mar 9, 2026
9f1b4ee
Refactor thin-client E2E tests based on operation type.
jeet1995 Mar 9, 2026
cfe720b
Refactor thin-client E2E tests based on operation type.
jeet1995 Mar 9, 2026
8f1615b
Refactor thin-client E2E tests based on operation type.
jeet1995 Mar 9, 2026
b037a1d
Refactor thin-client E2E tests based on operation type.
jeet1995 Mar 10, 2026
8e28d82
Refactor thin-client E2E tests based on operation type.
jeet1995 Mar 10, 2026
2be1433
Refactor thin-client E2E tests based on operation type.
jeet1995 Mar 10, 2026
4b44cd5
Refactor thin-client E2E tests based on operation type.
jeet1995 Mar 10, 2026
afa9811
Merge branch 'Azure:main' into AzCosmos_GatewayV2_QueryPlanSupport
jeet1995 Mar 10, 2026
b07b104
Refactor thin-client E2E tests based on operation type.
jeet1995 Mar 10, 2026
22db578
Merge remote-tracking branch 'azure/main' into AzCosmos_GatewayV2_Que…
jeet1995 Mar 30, 2026
a991123
Add SupportedQueryFeatures and QueryVersion RNTBD request headers for…
jeet1995 Mar 30, 2026
7ab7ffa
Add change feed tests for FeedRange.forFullRange and forLogicalPartition
jeet1995 Mar 30, 2026
f9b2874
Add thin client E2E test matrix documentation for QueryPlan review
jeet1995 Mar 30, 2026
06b1a8c
Add SupportedQueryFeatures and QueryVersion RNTBD request headers for…
jeet1995 Mar 30, 2026
d006c72
Fix testGetCurrentDateTime flaky assertion, add AAD auth support, RNT…
jeet1995 Mar 31, 2026
01b54ec
Refactor thin client query tests for reliability
jeet1995 Mar 31, 2026
37c0d9d
Fix container leaks and Direct TCP AAD auth in tests
jeet1995 Mar 31, 2026
d65e174
Use bulkDelete in AfterClass for seeded docs cleanup
jeet1995 Mar 31, 2026
c7c31c4
Address PR review feedback
jeet1995 Mar 31, 2026
9372597
Align vector/FTS/hybrid tests with existing patterns
jeet1995 Mar 31, 2026
8fb7e24
Address review agent comments + fix broken link
jeet1995 Mar 31, 2026
01feecf
Address review agent comments (round 2)
jeet1995 Mar 31, 2026
a3cded4
Refactor queryRanges deserialization — detect format from response, n…
jeet1995 Apr 1, 2026
2422cbc
Use agnostic QueryRangesFormat hint instead of PartitionKeyDefinition…
jeet1995 Apr 1, 2026
10549fc
Merge remote-tracking branch 'azure/main' into AzCosmos_GatewayV2_Que…
jeet1995 Apr 1, 2026
2d7db15
Merge remote-tracking branch 'upstream/main' into AzCosmos_GatewayV2_…
jeet1995 Jun 2, 2026
86683a8
Fix fetchQueryPlanForValidation caller after merge
jeet1995 Jun 2, 2026
e27bf3f
Make PartitionedQueryExecutionInfo(ObjectNode, RequestTimeline) ctor …
jeet1995 Jun 2, 2026
55ed09e
fix(cosmos): HTTP/2 PING handler must observe child-stream read activ…
jeet1995 Jun 7, 2026
26f1615
perf: install Http2PingCloseRewrapHandler in doOnConnected, not doOnR…
jeet1995 Jun 7, 2026
60c1dab
[Cosmos] Default thin-client to enabled and add HTTP/2 connectivity-p…
jeet1995 Jun 10, 2026
91bf62a
Merge upstream/main into jeet1995/thin-client-probe-flow
jeet1995 Jun 10, 2026
d2ec2f8
Address PR #49437 review comments: probe single-flight, body-drain li…
jeet1995 Jun 10, 2026
3f1b1be
Address PR #49437 second-batch review feedback
jeet1995 Jun 10, 2026
66fca70
Clarify CHANGELOG: probe recovery threshold is now configurable
jeet1995 Jun 10, 2026
8a602fb
Address PR #49437 review (rounds 4-8): reactor-chain probe, FQN clean…
jeet1995 Jun 10, 2026
4a31ea0
Fix CI test fallout from default ThinClient enablement
jeet1995 Jun 11, 2026
ccc7c39
Disable thin-client probe in Http2PingKeepaliveTest
jeet1995 Jun 11, 2026
ad9e3df
Disable thin-client probe by default for E2E tests in TestSuiteBase
jeet1995 Jun 11, 2026
e381f3a
Revert "Disable thin-client probe by default for E2E tests in TestSui…
jeet1995 Jun 11, 2026
da6c698
Add per-class thinclient probe disable in CosmosNotFoundTests and Per…
jeet1995 Jun 11, 2026
5473c00
Merge remote-tracking branch 'origin/jeet1995/thin-client-probe-flow'…
jeet1995 Jun 12, 2026
edfff97
Add unit tests for QueryPlan and stored-procedure thin-client routing
jeet1995 Jun 12, 2026
9d74638
Remove endpoint-probe content from QueryPlan PR branch
jeet1995 Jun 12, 2026
df1ed37
Merge upstream/main into AzCosmos_GatewayV2_QueryPlanSupport
jeet1995 Jun 12, 2026
f881c0d
Propagate hybrid query diagnostics
jeet1995 Jun 12, 2026
156aaa3
Advertise CountIf query feature
jeet1995 Jun 12, 2026
37302d6
Propagate hybrid query diagnostics
jeet1995 Jun 12, 2026
0d20e80
Advertise CountIf query feature
jeet1995 Jun 12, 2026
610003e
Address query plan review feedback
jeet1995 Jun 13, 2026
acbcac5
Address query plan review feedback
jeet1995 Jun 13, 2026
ffe50dc
Share thin client test property setup
jeet1995 Jun 13, 2026
1f1c7d3
Clean up query range conversion state
jeet1995 Jun 13, 2026
4c9e344
Share thin client test property setup
jeet1995 Jun 13, 2026
be37e74
Clean up query range conversion state
jeet1995 Jun 13, 2026
56efc37
review: address PR #49437 items 3 and 4
jeet1995 Jun 14, 2026
3b392e3
Address PR #49437 Review 2 feedback
jeet1995 Jun 14, 2026
7868b38
Fix CI compile: import ConnectionPolicy in CosmosNotFoundTests
jeet1995 Jun 14, 2026
b5a4173
Cover ReadManyByPartitionKey QueryPlan bifurcation with unit + E2E tests
jeet1995 Jun 14, 2026
e95e65d
Thread DocumentCollection into readMany query-plan validation
jeet1995 Jun 14, 2026
7148ca3
Cover ReadManyByPartitionKey QueryPlan bifurcation with unit + E2E tests
jeet1995 Jun 14, 2026
74917fa
fix(thin-client): disable probe in CI fault-injection tests + honor k…
jeet1995 Jun 14, 2026
ba8bb81
fix(thin-client): kill switch bypasses probe-health gate
jeet1995 Jun 14, 2026
33a4769
test(thin-client): disable probe in CI fault-injection / failover / c…
jeet1995 Jun 14, 2026
c267df6
Skip RNTBD QueryPlan frames when capturing V2 feed requests
Jun 15, 2026
2c7cc24
Skip RNTBD QueryPlan frames when capturing V2 feed requests
Jun 15, 2026
a4185e5
Fix thin-client QueryPlan error returning statusCode 0 instead of 400
jeet1995 Jun 16, 2026
65b23d9
Harden ThinClientQueryE2ETest assertions (F1-F5)
jeet1995 Jun 16, 2026
5b11c3b
Replace thin-client test matrix with reverse-engineered E2E test spec
jeet1995 Jun 16, 2026
5541846
Apply Aditya Sarpotdar review feedback to thin-client E2E tests
jeet1995 Jun 17, 2026
6cd7bff
Redesign thin-client probe to per-region probe-and-cache model
jeet1995 Jun 18, 2026
7eb5822
Merge remote-tracking branch 'upstream/main' into AzCosmos_GatewayV2_…
jeet1995 Jun 24, 2026
f554ef2
Address review feedback: opt-in thin-client QueryPlan routing + kill-…
jeet1995 Jun 24, 2026
273b31c
Address review feedback: broaden gateway error fallback to ClassCastE…
jeet1995 Jun 24, 2026
4aefb59
Make thin-client QueryPlan no-EPK-headers contract explicit in wrapIn…
jeet1995 Jun 24, 2026
a4b844d
Fix missing StandardCharsets import in RxGatewayStoreModelTest
jeet1995 Jun 24, 2026
87ab2c0
Test: add QueryOracle-derived LIKE/scalar-expression thin-client pari…
jeet1995 Jun 25, 2026
d16ab54
Test: verify a cached proxy-generated query plan still executes corre…
jeet1995 Jun 25, 2026
19204b3
Test: cross-partition tests use a dedicated multi-physical-partition …
jeet1995 Jun 25, 2026
48b0a45
Add CHANGELOG entry for QueryPlan request routing to Gateway V2
jeet1995 Jun 25, 2026
5bb942c
Call out Execute Stored Procedure support in CHANGELOG entry
jeet1995 Jun 25, 2026
a70c9f8
Fix flaky region/timing-sensitive fault-injection E2E tests
jeet1995 Jun 26, 2026
f12b34c
Remove test AAD auth toggle; move thin-client test matrix to docs/ an…
jeet1995 Jun 26, 2026
580f4d7
Merge commit 'ccb0163cad4' into review/thin-client-probe-flow
jeet1995 Jun 26, 2026
427ae9d
Merge commit 'ccb0163cad4' into AzCosmos_GatewayV2_QueryPlanSupport
jeet1995 Jun 26, 2026
e78a4d0
Thin-client review: tri-state enablement/probe-decision + EndpointPro…
jeet1995 Jun 26, 2026
c548b28
Consolidate probe state into single source-of-truth map; remove force…
jeet1995 Jun 26, 2026
94dc07f
Add cross-partition aggregate / GROUP BY parity tests for thin-client…
jeet1995 Jun 30, 2026
26e4235
Fix thin-client MULTI_HASH prefix EPK over-span; add QueryPlan parity…
jeet1995 Jun 30, 2026
499f928
Fix thin-client MULTI_HASH prefix partition key EPK over-span
jeet1995 Jul 1, 2026
8df2e85
Add thin-client query E2E parity regression tests
jeet1995 Jul 1, 2026
5eb41ee
Reuse prefix EPK range on thin-client parallel prefix-query path
jeet1995 Jul 1, 2026
24921af
Consolidate thin-client prefix EPK RNTBD headers, propagate prefix fl…
jeet1995 Jul 1, 2026
63641ae
Simplify prefix-query flag assignment in ParallelDocumentQueryExecuti…
jeet1995 Jul 1, 2026
0b74678
Add CHANGELOG entry for thin-client prefix hierarchical partition key…
jeet1995 Jul 1, 2026
817d948
Minimize prefix-query flag change vs main in ParallelDocumentQueryExe…
jeet1995 Jul 1, 2026
8b5b1a5
Order thin-client prefix detection to prefer the cached feed-range path
jeet1995 Jul 1, 2026
c2fa5f1
Address Copilot review: validate all requests in thin-client endpoint…
jeet1995 Jul 1, 2026
a56db9a
Simplify thin-client prefix EPK handling to reuse HTTP EPK headers
jeet1995 Jul 2, 2026
03a7c67
Remove dead prefix-query flag and expand HPK thin-client test coverage
jeet1995 Jul 2, 2026
5e3c80f
Merge branch 'main' into fix/thinclient-multihash-prefix-epk-overspan
jeet1995 Jul 3, 2026
848c57e
Revert ParallelDocumentQueryExecutionContextBase to main
jeet1995 Jul 3, 2026
9670464
Merge remote-tracking branch 'origin/AzCosmos_GatewayV2_QueryPlanSupp…
jeet1995 Jul 3, 2026
fa70bff
Merge remote-tracking branch 'origin/users/jeet1995/http2-ping-child-…
jeet1995 Jul 3, 2026
a5d6ac1
Merge remote-tracking branch 'origin/fix/thinclient-multihash-prefix-…
jeet1995 Jul 3, 2026
39e5f5b
Restore thin-client-probe symbols dropped during merge of #47759
jeet1995 Jul 3, 2026
117938b
test(cosmos): allowlist subStatus 1003 in thinclient readiness-probe …
jeet1995 Jul 3, 2026
42c2c7d
test(cosmos-benchmark): parameterize SDK version + add RunId/Endpoint…
jeet1995 Jul 4, 2026
99d58a6
perf(cosmos): add opt-in HTTP/2 connection instrumentation metrics
jeet1995 Jul 5, 2026
29c6880
test(cosmos-benchmark): add Azure Data Explorer (Kusto) metrics sink
jeet1995 Jul 5, 2026
513c1a5
Add opt-in eager HTTP/2 connection pre-warm for thin-client path
jeet1995 Jul 7, 2026
dc02999
Merge upstream/main into AzCosmos_GatewayV2_QueryPlanSupport
jeet1995 Jul 8, 2026
694dc71
Enforce QueryPlan thin-client routing invariant and harden container-…
jeet1995 Jul 8, 2026
bf30911
Add kill-switch flip validation for QueryPlan thin-client routing
jeet1995 Jul 8, 2026
e578d4b
Merge remote-tracking branch 'upstream/main' into AzCosmos_GatewayV2_…
jeet1995 Jul 8, 2026
8d3c7eb
Merge remote-tracking branch 'origin/AzCosmos_GatewayV2_QueryPlanSupp…
jeet1995 Jul 8, 2026
d8b9275
Merge remote-tracking branch 'upstream/main' into jeet1995/thin-clien…
jeet1995 Jul 8, 2026
63d2f6d
Restore isAnyRegionShortCircuitedForPartition helper dropped during #…
jeet1995 Jul 8, 2026
ef762d3
Remove azure-cosmos-benchmark and HTTP/2 ping-handler changes (moved …
jeet1995 Jul 9, 2026
3a13379
Merge remote-tracking branch 'upstream/main' into jeet1995/thin-clien…
jeet1995 Jul 9, 2026
6200640
Run thin-client probe cycle on every account refresh (delta-gated)
jeet1995 Jul 9, 2026
8c1bb2a
Add thin-client endpoint-probe (implicit path) E2E test lane + GEM pr…
jeet1995 Jul 9, 2026
cfe5c09
Merge upstream/main into jeet1995/thin-client-probe-flow
jeet1995 Jul 9, 2026
614eaaa
Align query/* and test files with Azure/main to reduce PR diff
jeet1995 Jul 9, 2026
1c81a57
Remove isThinClientEnabled() helper; require positive probe verdict t…
jeet1995 Jul 9, 2026
3545861
Collapse thin-client enablement to single nullable isThinClientEnabled()
jeet1995 Jul 9, 2026
f8e039f
Consolidate thin-client probe E2E tests into shared classes via dual …
jeet1995 Jul 9, 2026
b60d3a1
Merge origin/jeet1995/thin-client-probe-flow into benchmark-kusto-sink
jeet1995 Jul 9, 2026
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
Original file line number Diff line number Diff line change
Expand Up @@ -173,13 +173,18 @@ public AppInsightsReporterConfig getAppInsightsReporterConfig() {
return orchestrator.metrics.destination != null ? orchestrator.metrics.destination.applicationInsights : null;
}

public KustoReporterConfig getKustoReporterConfig() {
return orchestrator.metrics.destination != null ? orchestrator.metrics.destination.kusto : null;
}

/**
* Determine the reporting destination from which config is present.
*/
public ReportingDestination getReportingDestination() {
if (getCsvReporterConfig() != null) return ReportingDestination.CSV;
if (getCosmosReporterConfig() != null) return ReportingDestination.COSMOSDB;
if (getAppInsightsReporterConfig() != null) return ReportingDestination.APPLICATION_INSIGHTS;
if (getKustoReporterConfig() != null) return ReportingDestination.KUSTO;
return null;
}

Expand Down Expand Up @@ -313,5 +318,8 @@ public static class MetricsDestinationConfig {

@JsonProperty("applicationInsights")
AppInsightsReporterConfig applicationInsights;

@JsonProperty("kusto")
KustoReporterConfig kusto;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ private void runLifecycleLoop(BenchmarkConfig config,

CsvMetricsReporter csvReporter = null;
CosmosMetricsReporter cosmosReporter = null;
KustoMetricsReporter kustoReporter = null;
MeterRegistry appInsightsRegistry = null;

try {
Expand Down Expand Up @@ -178,6 +179,23 @@ private void runLifecycleLoop(BenchmarkConfig config,
+ "configuration, including the connection string.");
}
break;

case KUSTO:
// Dedicated SimpleMeterRegistry carrying the run-level common tags
// (RunId/SdkVersion/ConnectionMode/EndpointFlavor/Phase) so the Kusto
// reporter maps them straight to first-class BenchmarkMetrics columns.
SimpleMeterRegistry kustoSimpleRegistry = new SimpleMeterRegistry();
kustoSimpleRegistry.config().commonTags(benchmarkCommonTags);
cycleRegistry.add(kustoSimpleRegistry);
Set<String> kustoOps = new LinkedHashSet<>();
for (TenantWorkloadConfig t : tenants) {
kustoOps.add(t.getOperation() != null ? t.getOperation() : "Unknown");
}
kustoReporter = KustoMetricsReporter.create(
kustoSimpleRegistry, config.getKustoReporterConfig(),
String.join("+", kustoOps), config.getConcurrency());
kustoReporter.start(config.getPrintingInterval(), TimeUnit.SECONDS);
break;
}
}

Expand Down Expand Up @@ -207,6 +225,9 @@ private void runLifecycleLoop(BenchmarkConfig config,
if (cosmosReporter != null) {
cosmosReporter.stop();
}
if (kustoReporter != null) {
kustoReporter.stop();
}

// 6. Disconnect loggingRegistry before SDK clears the cycle registry
cycleRegistry.remove(loggingRegistry);
Expand All @@ -230,6 +251,9 @@ private void runLifecycleLoop(BenchmarkConfig config,
if (cosmosReporter != null) {
try { cosmosReporter.stop(); } catch (Exception e) { /* already stopped or best-effort */ }
}
if (kustoReporter != null) {
try { kustoReporter.stop(); } catch (Exception e) { /* already stopped or best-effort */ }
}
cycleRegistry.remove(loggingRegistry);
if (addedToGlobal) {
Metrics.removeRegistry(cycleRegistry);
Expand Down Expand Up @@ -359,11 +383,14 @@ private void prepareTenants(BenchmarkConfig config, MeterRegistry sharedRegistry
tenant.setSuppressCleanup(true);
}

// Ensure unique applicationName per tenant
// Ensure unique applicationName per tenant.
// tenant.getId() is optional in the config, so guard against null to avoid
// a NullPointerException on multi-cycle runs (String.contains(null)).
String tenantId = tenant.getId() == null ? "0" : tenant.getId();
if (tenant.getApplicationName() == null || tenant.getApplicationName().isEmpty()) {
tenant.setApplicationName("mt-bench-" + tenant.getId());
} else if (!tenant.getApplicationName().contains(tenant.getId())) {
tenant.setApplicationName(tenant.getApplicationName() + "-" + tenant.getId());
tenant.setApplicationName("mt-bench-" + tenantId);
} else if (!tenant.getApplicationName().contains(tenantId)) {
tenant.setApplicationName(tenant.getApplicationName() + "-" + tenantId);
}
}
}
Expand Down
Loading
Loading