Skip to content

Commit 19c5085

Browse files
knudttywrn14897
andauthored
chore: split json otel collector to enable both during dev (#1247)
Gets us closer to a staging instance of json <img width="216" height="174" alt="image" src="https://github.com/user-attachments/assets/b5cc3cf8-aef0-4ba4-9e9a-8c1d4fad5451" /> Co-authored-by: Warren <[email protected]>
1 parent 91e443f commit 19c5085

File tree

5 files changed

+85
-10
lines changed

5 files changed

+85
-10
lines changed

docker-compose.dev.yml

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,7 @@ services:
3333
OPAMP_SERVER_URL: 'http://host.docker.internal:${HYPERDX_OPAMP_PORT}'
3434
CUSTOM_OTELCOL_CONFIG_FILE: '/etc/otelcol-contrib/custom.config.yaml'
3535
# Uncomment to enable stdout logging for the OTel collector
36-
# OTEL_SUPERVISOR_LOGS: 'true'
37-
# Uncomment to enable JSON schema in ClickHouse
38-
# Be sure to also set BETA_CH_OTEL_JSON_SCHEMA_ENABLED to 'true' in ch-server
39-
# OTEL_AGENT_FEATURE_GATE_ARG: '--feature-gates=clickhouse.json'
36+
OTEL_SUPERVISOR_LOGS: 'true'
4037
volumes:
4138
- ./docker/otel-collector/config.yaml:/etc/otelcol-contrib/config.yaml
4239
- ./docker/otel-collector/supervisor_docker.yaml.tmpl:/etc/otel/supervisor.yaml.tmpl
@@ -54,6 +51,37 @@ services:
5451
depends_on:
5552
ch-server:
5653
condition: service_healthy
54+
otel-collector-json:
55+
# image: otel/opentelemetry-collector-contrib:0.120.0
56+
build:
57+
context: ./docker/otel-collector
58+
target: dev
59+
environment:
60+
CLICKHOUSE_ENDPOINT: 'tcp://ch-server:9000?dial_timeout=10s'
61+
CLICKHOUSE_PROMETHEUS_METRICS_ENDPOINT: 'ch-server:9363'
62+
HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE: 'otel_json'
63+
HYPERDX_API_KEY: ${HYPERDX_API_KEY}
64+
HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
65+
OPAMP_SERVER_URL: 'http://host.docker.internal:${HYPERDX_OPAMP_PORT}'
66+
CUSTOM_OTELCOL_CONFIG_FILE: '/etc/otelcol-contrib/custom.config.yaml'
67+
# Uncomment to enable stdout logging for the OTel collector
68+
OTEL_SUPERVISOR_LOGS: 'true'
69+
# Uncomment to enable JSON schema in ClickHouse
70+
# Be sure to also set BETA_CH_OTEL_JSON_SCHEMA_ENABLED to 'true' in ch-server
71+
OTEL_AGENT_FEATURE_GATE_ARG: '--feature-gates=clickhouse.json'
72+
volumes:
73+
- ./docker/otel-collector/config.yaml:/etc/otelcol-contrib/config.yaml
74+
- ./docker/otel-collector/supervisor_docker.yaml.tmpl:/etc/otel/supervisor.yaml.tmpl
75+
# Add a custom config file
76+
- ./docker/otel-collector/dev.json.config.yaml:/etc/otelcol-contrib/custom.config.yaml
77+
ports:
78+
- '14318:4318' # OTLP http receiver
79+
restart: always
80+
networks:
81+
- internal
82+
depends_on:
83+
ch-server:
84+
condition: service_healthy
5785
ch-server:
5886
image: clickhouse/clickhouse-server:25.7-alpine
5987
ports:

docker/otel-collector/custom.config.yaml

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,45 @@ receivers:
1515
# timeout: 10s
1616
# memory_limiter:
1717
# limit_mib: 2000
18+
exporters:
19+
# fork data to otel-collector-json service (DEV ONLY)
20+
otlphttp/json:
21+
endpoint: http://otel-collector-json:4318
22+
headers:
23+
authorization: "super-secure-ingestion-api-key"
24+
compression: gzip
1825
service:
1926
pipelines:
2027
metrics/hostmetrics:
21-
receivers: [hostmetrics]
22-
# attach existing processors
23-
processors: [memory_limiter, batch]
24-
# attach existing exporters
25-
exporters: [clickhouse]
28+
exporters:
29+
- clickhouse
30+
processors:
31+
- memory_limiter
32+
- batch
33+
receivers:
34+
- hostmetrics
35+
traces/json:
36+
exporters:
37+
- otlphttp/json
38+
processors:
39+
- memory_limiter
40+
- batch
41+
receivers:
42+
- otlp/hyperdx
43+
# Metrics hasn't used JSON attributes yet
44+
# metrics/json:
45+
# exporters:
46+
# - otlphttp/json
47+
# processors:
48+
# - memory_limiter
49+
# - batch
50+
# receivers:
51+
# - otlp/hyperdx
52+
logs/json:
53+
exporters:
54+
- otlphttp/json
55+
processors:
56+
- memory_limiter
57+
- batch
58+
receivers:
59+
- otlp/hyperdx
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
service:
2+
pipelines:
3+
# ignore rrweb events
4+
logs/out-rrweb:
5+
exporters:
6+
- nop
7+
processors:
8+
- memory_limiter
9+
- batch
10+
receivers:
11+
- routing/logs

packages/api/.env.development

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ USAGE_STATS_ENABLED=false
2222
NODE_OPTIONS="--max-http-header-size=131072"
2323
ENABLE_SWAGGER=true
2424
DEFAULT_CONNECTIONS=[{"name":"Local ClickHouse","host":"http://localhost:8123","username":"default","password":""}]
25-
DEFAULT_SOURCES=[{"from":{"databaseName":"default","tableName":"otel_logs"},"kind":"log","timestampValueExpression":"TimestampTime","name":"Logs","displayedTimestampValueExpression":"Timestamp","implicitColumnExpression":"Body","serviceNameExpression":"ServiceName","bodyExpression":"Body","eventAttributesExpression":"LogAttributes","resourceAttributesExpression":"ResourceAttributes","defaultTableSelectExpression":"Timestamp,ServiceName,SeverityText,Body","severityTextExpression":"SeverityText","traceIdExpression":"TraceId","spanIdExpression":"SpanId","connection":"Local ClickHouse","traceSourceId":"Traces","sessionSourceId":"Sessions","metricSourceId":"Metrics"},{"from":{"databaseName":"default","tableName":"otel_traces"},"kind":"trace","timestampValueExpression":"Timestamp","name":"Traces","displayedTimestampValueExpression":"Timestamp","implicitColumnExpression":"SpanName","serviceNameExpression":"ServiceName","bodyExpression":"SpanName","eventAttributesExpression":"SpanAttributes","resourceAttributesExpression":"ResourceAttributes","defaultTableSelectExpression":"Timestamp,ServiceName,StatusCode,round(Duration/1e6),SpanName","traceIdExpression":"TraceId","spanIdExpression":"SpanId","durationExpression":"Duration","durationPrecision":9,"parentSpanIdExpression":"ParentSpanId","spanNameExpression":"SpanName","spanKindExpression":"SpanKind","statusCodeExpression":"StatusCode","statusMessageExpression":"StatusMessage","connection":"Local ClickHouse","logSourceId":"Logs","sessionSourceId":"Sessions","metricSourceId":"Metrics"},{"from":{"databaseName":"default","tableName":""},"kind":"metric","timestampValueExpression":"TimeUnix","name":"Metrics","resourceAttributesExpression":"ResourceAttributes","metricTables":{"gauge":"otel_metrics_gauge","histogram":"otel_metrics_histogram","sum":"otel_metrics_sum","_id":"682586a8b1f81924e628e808","id":"682586a8b1f81924e628e808"},"connection":"Local ClickHouse","logSourceId":"Logs","traceSourceId":"Traces","sessionSourceId":"Sessions"},{"from":{"databaseName":"default","tableName":"hyperdx_sessions"},"kind":"session","timestampValueExpression":"TimestampTime","name":"Sessions","displayedTimestampValueExpression":"Timestamp","implicitColumnExpression":"Body","serviceNameExpression":"ServiceName","bodyExpression":"Body","eventAttributesExpression":"LogAttributes","resourceAttributesExpression":"ResourceAttributes","defaultTableSelectExpression":"Timestamp,ServiceName,SeverityText,Body","severityTextExpression":"SeverityText","traceIdExpression":"TraceId","spanIdExpression":"SpanId","connection":"Local ClickHouse","logSourceId":"Logs","traceSourceId":"Traces","metricSourceId":"Metrics"}]
25+
DEFAULT_SOURCES=[{"from":{"databaseName":"default","tableName":"otel_logs"},"kind":"log","timestampValueExpression":"TimestampTime","name":"Logs","displayedTimestampValueExpression":"Timestamp","implicitColumnExpression":"Body","serviceNameExpression":"ServiceName","bodyExpression":"Body","eventAttributesExpression":"LogAttributes","resourceAttributesExpression":"ResourceAttributes","defaultTableSelectExpression":"Timestamp,ServiceName,SeverityText,Body","severityTextExpression":"SeverityText","traceIdExpression":"TraceId","spanIdExpression":"SpanId","connection":"Local ClickHouse","traceSourceId":"Traces","sessionSourceId":"Sessions","metricSourceId":"Metrics"},{"from":{"databaseName":"default","tableName":"otel_traces"},"kind":"trace","timestampValueExpression":"Timestamp","name":"Traces","displayedTimestampValueExpression":"Timestamp","implicitColumnExpression":"SpanName","serviceNameExpression":"ServiceName","bodyExpression":"SpanName","eventAttributesExpression":"SpanAttributes","resourceAttributesExpression":"ResourceAttributes","defaultTableSelectExpression":"Timestamp,ServiceName,StatusCode,round(Duration/1e6),SpanName","traceIdExpression":"TraceId","spanIdExpression":"SpanId","durationExpression":"Duration","durationPrecision":9,"parentSpanIdExpression":"ParentSpanId","spanNameExpression":"SpanName","spanKindExpression":"SpanKind","statusCodeExpression":"StatusCode","statusMessageExpression":"StatusMessage","connection":"Local ClickHouse","logSourceId":"Logs","sessionSourceId":"Sessions","metricSourceId":"Metrics"},{"from":{"databaseName":"default","tableName":""},"kind":"metric","timestampValueExpression":"TimeUnix","name":"Metrics","resourceAttributesExpression":"ResourceAttributes","metricTables":{"gauge":"otel_metrics_gauge","histogram":"otel_metrics_histogram","sum":"otel_metrics_sum","_id":"682586a8b1f81924e628e808","id":"682586a8b1f81924e628e808"},"connection":"Local ClickHouse","logSourceId":"Logs","traceSourceId":"Traces","sessionSourceId":"Sessions"},{"from":{"databaseName":"default","tableName":"hyperdx_sessions"},"kind":"session","timestampValueExpression":"TimestampTime","name":"Sessions","displayedTimestampValueExpression":"Timestamp","implicitColumnExpression":"Body","serviceNameExpression":"ServiceName","bodyExpression":"Body","eventAttributesExpression":"LogAttributes","resourceAttributesExpression":"ResourceAttributes","defaultTableSelectExpression":"Timestamp,ServiceName,SeverityText,Body","severityTextExpression":"SeverityText","traceIdExpression":"TraceId","spanIdExpression":"SpanId","connection":"Local ClickHouse","logSourceId":"Logs","traceSourceId":"Traces","metricSourceId":"Metrics"},{"from":{"databaseName":"otel_json","tableName":"otel_logs"},"kind":"log","timestampValueExpression":"Timestamp","name":"JSON Logs","displayedTimestampValueExpression":"Timestamp","implicitColumnExpression":"Body","serviceNameExpression":"ServiceName","bodyExpression":"Body","eventAttributesExpression":"LogAttributes","resourceAttributesExpression":"ResourceAttributes","defaultTableSelectExpression":"Timestamp,ServiceName,SeverityText,Body","severityTextExpression":"SeverityText","traceIdExpression":"TraceId","spanIdExpression":"SpanId","connection":"Local ClickHouse","traceSourceId":"JSON Traces","metricSourceId":"JSON Metrics"},{"from":{"databaseName":"otel_json","tableName":"otel_traces"},"kind":"trace","timestampValueExpression":"Timestamp","name":"JSON Traces","displayedTimestampValueExpression":"Timestamp","implicitColumnExpression":"SpanName","serviceNameExpression":"ServiceName","bodyExpression":"SpanName","eventAttributesExpression":"SpanAttributes","resourceAttributesExpression":"ResourceAttributes","defaultTableSelectExpression":"Timestamp,ServiceName,StatusCode,round(Duration/1e6),SpanName","traceIdExpression":"TraceId","spanIdExpression":"SpanId","durationExpression":"Duration","durationPrecision":9,"parentSpanIdExpression":"ParentSpanId","spanNameExpression":"SpanName","spanKindExpression":"SpanKind","statusCodeExpression":"StatusCode","statusMessageExpression":"StatusMessage","connection":"Local ClickHouse","logSourceId":"JSON Logs","metricSourceId":"JSON Metrics"},{"from":{"databaseName":"otel_json","tableName":""},"kind":"metric","timestampValueExpression":"TimeUnix","name":"JSON Metrics","resourceAttributesExpression":"ResourceAttributes","metricTables":{"gauge":"otel_metrics_gauge","histogram":"otel_metrics_histogram","sum":"otel_metrics_sum"},"connection":"Local ClickHouse","logSourceId":"JSON Logs","traceSourceId":"JSON Traces"}]
2626
INGESTION_API_KEY="super-secure-ingestion-api-key"
2727
HYPERDX_API_KEY=$INGESTION_API_KEY
2828
ANTHROPIC_API_KEY="your-anthropic-api-key-here"

packages/api/src/opamp/controllers/opampController.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ type CollectorConfig = {
6767
};
6868
};
6969
exporters?: {
70+
nop?: null;
7071
debug?: {
7172
verbosity: string;
7273
sampling_initial: number;
@@ -184,6 +185,7 @@ export const buildOtelCollectorConfig = (teams: ITeam[]): CollectorConfig => {
184185
},
185186
},
186187
exporters: {
188+
nop: null,
187189
debug: {
188190
verbosity: 'detailed',
189191
sampling_initial: 5,

0 commit comments

Comments
 (0)