-
Notifications
You must be signed in to change notification settings - Fork 347
chore: split json otel collector to enable both during dev #1247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
E2E Test Results✅ All tests passed • 39 passed • 3 skipped • 296s
|
Pull Request Review: Split JSON OTel Collector for Dev EnvironmentThis PR introduces a second OTel collector instance (otel-collector-json) to run alongside the standard collector during development. Strengths
Critical Issues1. Server Startup Logic Bug (HIGH PRIORITY) 2. Missing Tests (HIGH PRIORITY) 3. Missing Documentation (MEDIUM PRIORITY) Other IssuesOPAMP_PORT Validation (LOW) Redundant Conditional (LOW) Hardcoded Port (MEDIUM) API Key Handling (INFO) Performance Note Concurrency Colors (LOW) RecommendationsMust Fix:
Should Fix: Nice to Have: OverallWell-structured PR that achieves its goal. Main blockers are the logic bug and missing tests. Once addressed, ready to merge! Reviewed per CLAUDE.md conventions |
PR ReviewSummaryThis PR adds a second OTel collector instance (otel-collector-json) to enable testing the JSON schema feature in development alongside the standard collector. Issues Found
Minor Notes
Recommendation: Address the hardcoded credential issue before merge. Other items are minor and can be addressed if needed. |
wrn14897
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think adding OTEL_AGENT_FEATURE_GATE_ARG should be sufficient. We can let developers decide whether to switch over and test the JSON columns to minimize code changes. If we are going to test JSON features more, imo we should just enable it by default
dhable
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two comments about the code and a nit pick.
| ch-server: | ||
| condition: service_healthy | ||
| otel-collector-json: | ||
| # image: otel/opentelemetry-collector-contrib:0.120.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: remove the commented line
f6dedd2 to
7eea492
Compare
Pushed changes to use otel custom config instead
|
reimplemented the data forking using otel config override (b2f7e48) |
7eea492 to
d2d2dfa
Compare
d2d2dfa to
b2f7e48
Compare
| # Uncomment to enable JSON schema in ClickHouse | ||
| # Be sure to also set BETA_CH_OTEL_JSON_SCHEMA_ENABLED to 'true' in ch-server | ||
| # OTEL_AGENT_FEATURE_GATE_ARG: '--feature-gates=clickhouse.json' | ||
| OTEL_SUPERVISOR_LOGS: 'true' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO, we should enable supervisor logs (easier debugging)
| environment: | ||
| CLICKHOUSE_ENDPOINT: 'tcp://ch-server:9000?dial_timeout=10s' | ||
| CLICKHOUSE_PROMETHEUS_METRICS_ENDPOINT: 'ch-server:9363' | ||
| HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE: 'otel_json' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hardcode the target database
| }, | ||
| }, | ||
| exporters: { | ||
| nop: null, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
used for disabling rrweb export (json-otel-collector)
| otlphttp/json: | ||
| endpoint: http://otel-collector-json:4318 | ||
| headers: | ||
| authorization: "super-secure-ingestion-api-key" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hyperdx/packages/api/.env.development
Line 26 in b2f7e48
| INGESTION_API_KEY="super-secure-ingestion-api-key" |
wrn14897
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It works on my local environment, but I’d appreciate another pair of eyes!
Gets us closer to a staging instance of json