Commit 6229229
authored
feat(bigquery-jdbc): add globalOtel support (#13282)
b/517124136
This PR introduces support for opting into the global OpenTelemetry
instance via connection properties in the BigQuery JDBC driver. It also
establishes a clear hierarchy of precedence for various OpenTelemetry
configuration flags to ensure predictable behavior
## Key Changes
### 1. Global OpenTelemetry Support
* Added a new connection property `useGlobalOpenTelemetry` (default:
`false`).
* When set to `true`, the driver will explicitly use the globally
registered OpenTelemetry instance (`GlobalOpenTelemetry.get()`) for both
tracing and logging.
### 2. Precedence Rules for Telemetry Flags
Implemented the following hierarchy of precedence in
`BigQueryConnection`:
1. **`customOpenTelemetry`** (Provided via `DataSource`): Highest
precedence. Overrides everything else.
2. **`useGlobalOpenTelemetry`**: Second precedence. Overrides
driver-managed GCP fallback flags.
3. **`enableGcpTraceExporter` / `enableGcpLogExporter`**: Lowest
precedence. Used only if above are false/null.
### 3. Code Modifications
* **`BigQueryJdbcUrlUtility.java`**: Added property definition and added
it to valid properties.
* **`DataSource.java`**: Added field, getter/setter, and URL parsing
support for the new property.
* **`BigQueryConnection.java`**: Updated constructor to read the new
property and implemented the precedence logic for both tracer
initialization and logging client registration.
* **`BigQueryJdbcOpenTelemetry.java`**: Updated `getOpenTelemetry()` to
handle the `useGlobalOpenTelemetry` flag.
### 4. Testing
* **`BigQueryJdbcOpenTelemetryTest.java`**: Added unit test to verify
that `useGlobalOpenTelemetry` returns the global instance.
* **`BigQueryConnectionTest.java`**: Added a comprehensive parameterized
test (`testOpenTelemetryPrecedenceHierarchy`) covering all 8
combinations of the 4 flags to verify the correct behavior of
`OpenTelemetry` resolution and logging client creation.1 parent aef912c commit 6229229
6 files changed
Lines changed: 209 additions & 16 deletions
File tree
- java-bigquery-jdbc/src
- main/java/com/google/cloud/bigquery/jdbc
- test/java/com/google/cloud/bigquery/jdbc
Lines changed: 13 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
216 | 216 | | |
217 | 217 | | |
218 | 218 | | |
| 219 | + | |
219 | 220 | | |
220 | 221 | | |
221 | 222 | | |
| |||
367 | 368 | | |
368 | 369 | | |
369 | 370 | | |
| 371 | + | |
370 | 372 | | |
371 | 373 | | |
372 | 374 | | |
| |||
1038 | 1040 | | |
1039 | 1041 | | |
1040 | 1042 | | |
1041 | | - | |
1042 | 1043 | | |
1043 | 1044 | | |
1044 | 1045 | | |
| |||
1048 | 1049 | | |
1049 | 1050 | | |
1050 | 1051 | | |
| 1052 | + | |
1051 | 1053 | | |
1052 | 1054 | | |
1053 | 1055 | | |
1054 | 1056 | | |
1055 | 1057 | | |
1056 | 1058 | | |
| 1059 | + | |
1057 | 1060 | | |
1058 | | - | |
| 1061 | + | |
1059 | 1062 | | |
1060 | 1063 | | |
1061 | 1064 | | |
1062 | 1065 | | |
1063 | 1066 | | |
1064 | | - | |
| 1067 | + | |
1065 | 1068 | | |
1066 | | - | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
1067 | 1073 | | |
1068 | 1074 | | |
1069 | 1075 | | |
| |||
1128 | 1134 | | |
1129 | 1135 | | |
1130 | 1136 | | |
1131 | | - | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
1132 | 1140 | | |
1133 | 1141 | | |
1134 | 1142 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
245 | 246 | | |
246 | 247 | | |
247 | 248 | | |
| 249 | + | |
248 | 250 | | |
249 | 251 | | |
250 | 252 | | |
| |||
255 | 257 | | |
256 | 258 | | |
257 | 259 | | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
258 | 264 | | |
259 | 265 | | |
260 | 266 | | |
| |||
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
| 171 | + | |
| 172 | + | |
171 | 173 | | |
172 | 174 | | |
173 | 175 | | |
| |||
638 | 640 | | |
639 | 641 | | |
640 | 642 | | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
641 | 649 | | |
642 | 650 | | |
643 | 651 | | |
| |||
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
| 126 | + | |
126 | 127 | | |
127 | 128 | | |
128 | 129 | | |
| |||
358 | 359 | | |
359 | 360 | | |
360 | 361 | | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
361 | 368 | | |
362 | 369 | | |
363 | 370 | | |
| |||
675 | 682 | | |
676 | 683 | | |
677 | 684 | | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
678 | 690 | | |
679 | 691 | | |
680 | 692 | | |
| |||
832 | 844 | | |
833 | 845 | | |
834 | 846 | | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
835 | 855 | | |
836 | 856 | | |
837 | 857 | | |
| |||
Lines changed: 142 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
20 | 29 | | |
21 | 30 | | |
22 | 31 | | |
23 | 32 | | |
| 33 | + | |
24 | 34 | | |
25 | 35 | | |
26 | 36 | | |
27 | 37 | | |
28 | 38 | | |
| 39 | + | |
| 40 | + | |
29 | 41 | | |
30 | 42 | | |
31 | 43 | | |
| |||
44 | 56 | | |
45 | 57 | | |
46 | 58 | | |
| 59 | + | |
47 | 60 | | |
48 | 61 | | |
49 | 62 | | |
| |||
522 | 535 | | |
523 | 536 | | |
524 | 537 | | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
525 | 667 | | |
0 commit comments