Skip to content

Commit 5a7a162

Browse files
committed
Tracing with OpenTelemetry
1 parent cd2c147 commit 5a7a162

Some content is hidden

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

71 files changed

+9338
-680
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
internal: minor
3+
router: minor
4+
config: minor
5+
executor: minor
6+
query-planner: minor
7+
---
8+
9+
# Tracing with OpenTelemetry
10+
11+
Introducing comprehensive OpenTelemetry-based tracing to the Hive Router, providing deep visibility into the GraphQL request lifecycle and subgraph communications.
12+
13+
- **OpenTelemetry Integration**: Support for OTLP exporters (gRPC and HTTP) and standard propagation formats (Trace Context, Baggage, Jaeger, B3/Zipkin).
14+
- **GraphQL-Specific Spans**: Detailed spans for every phase of the GraphQL lifecycle
15+
- **Hive Console Tracing**: Native integration with Hive Console for trace visualization and analysis.
16+
- **Semantic Conventions**: Support for both stable and deprecated OpenTelemetry HTTP semantic conventions to ensure compatibility with a wide range of observability tools.
17+
- **Optimized Performance**: Tracing is designed with a "pay only for what you use" approach. Overhead is near-zero when disabled, and allocations/computations are minimized when enabled.
18+
- **Rich Configuration**: New configuration options for telemetry exporters, batching, and resource attributes.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
config: minor
3+
router: minor
4+
internal: minor
5+
---
6+
7+
# Unified Hive Telemetry Configuration
8+
9+
Refactored the configuration structure to unify Hive-specific telemetry (tracing and usage reporting) and centralize client identification.
10+
11+
- **Unified Hive Config**: Moved `usage_reporting` under `telemetry.hive.usage`. Usage reporting now shares the `token` and `target` configuration with Hive tracing, eliminating redundant settings.
12+
- **Centralized Client Identification**: Introduced `telemetry.client_identification` to define client name and version headers once. These are now propagated to both OpenTelemetry spans and Hive usage reports.
13+
- **Enhanced Expression Support**: Both Hive token and target ID now support VRL expressions for usage reporting, matching the existing behavior of tracing.
14+
15+
### Breaking Changes:
16+
17+
The top-level `usage_reporting` block has been moved.
18+
19+
**Before:**
20+
```yaml
21+
usage_reporting:
22+
enabled: true
23+
access_token: "..."
24+
target_id: "..."
25+
client_name_header: "..."
26+
client_version_header: "..."
27+
```
28+
29+
**After:**
30+
```yaml
31+
telemetry:
32+
client_identification:
33+
name_header: "..."
34+
version_header: "..."
35+
hive:
36+
token: "..."
37+
target: "..."
38+
usage:
39+
enabled: true
40+
```

0 commit comments

Comments
 (0)