Skip to content

Commit f4bb218

Browse files
authored
Merge pull request #2352 from flow-php/flow-telemetry-improvements
Flow telemetry improvements
2 parents 40e3dcd + a85ba4f commit f4bb218

335 files changed

Lines changed: 24171 additions & 8152 deletions

File tree

Some content is hidden

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

.nix/pkgs/flow-php/package.nix

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
with-blackfire ? false,
1212
with-pg-query-ext ? false,
1313
with-arrow-ext ? false,
14-
with-grpc ? false
14+
with-grpc ? false,
15+
with-protobuf ? true
1516
}:
1617

1718
let
@@ -27,7 +28,6 @@ let
2728
(php-lz4.override { inherit php; })
2829
(php-snappy.override { inherit php; })
2930
(php-zstd.override { inherit php; })
30-
protobuf
3131
xmlreader
3232
xmlwriter
3333
zlib
@@ -38,6 +38,7 @@ let
3838
++ (if with-pg-query-ext then [(php-pg-query-ext.override { inherit php; })] else [])
3939
++ (if with-arrow-ext then [(php-arrow-ext.override { inherit php; })] else [])
4040
++ (if with-grpc then [grpc] else [])
41+
++ (if with-protobuf then [protobuf] else [])
4142
);
4243
in
4344
flowPHP.buildEnv {

.php-cs-fixer.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
])
3434
->exclude([
3535
'Flow/Parquet/ThriftModel',
36+
'Opentelemetry',
37+
'GPBMetadata',
3638
'Flow/CLI/Tests/Integration',
3739
'Flow/ETL/Tests/Unit/Loader',
3840
'Flow/ETL/Tests/Unit/Exception',

compose.yml.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ services:
107107
- "8888:8888"
108108
volumes:
109109
- "./docker/otel-collector-config.yaml:/etc/otel-collector-config.yaml:ro"
110-
- "./var/otel:/var/otel"
110+
- "./.scratchpad/migraitons/var/otel:/var/otel"
111111
depends_on:
112112
- aspire
113113
- postgres

composer.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
"grpc/grpc": "^1.74",
5959
"nikic/php-parser": "^5.3",
6060
"nyholm/psr7": "^1.8",
61-
"open-telemetry/gen-otlp-protobuf": "^1.8",
6261
"php-http/curl-client": "^2.2",
6362
"php-http/mock-client": "^1.5",
6463
"ramsey/uuid": "^4.5",
@@ -187,6 +186,12 @@
187186
],
188187
"Flow\\ETL\\Adapter\\Doctrine\\": [
189188
"src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine"
189+
],
190+
"Opentelemetry\\Proto\\": [
191+
"src/bridge/telemetry/otlp/src/Opentelemetry/Proto"
192+
],
193+
"GPBMetadata\\Opentelemetry\\": [
194+
"src/bridge/telemetry/otlp/src/GPBMetadata/Opentelemetry"
190195
]
191196
},
192197
"files": [
@@ -428,6 +433,9 @@
428433
"protoc --php_out=src/lib/postgresql/src --proto_path=src/lib/postgresql/resources/proto pg_query.proto",
429434
"@cs:php:fix"
430435
],
436+
"build:telemetry:otlp:protobuf": [
437+
"src/bridge/telemetry/otlp/bin/generate-proto.sh"
438+
],
431439
"pre-autoload-dump": [
432440
"Google\\Task\\Composer::cleanup"
433441
],

composer.lock

Lines changed: 9 additions & 72 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docker/otel-collector-config.yaml

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ receivers:
66
http:
77
endpoint: 0.0.0.0:4318
88

9+
# OTLP JSON file receiver — picks up JSONL written by flow-php StreamTransport.
10+
# Docs: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/otlpjsonfilereceiver
11+
otlpjsonfile:
12+
include:
13+
- /var/otel/*.jsonl
14+
start_at: end
15+
916
# PostgreSQL metrics receiver
1017
# Docs: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/postgresqlreceiver
1118
postgresql:
@@ -45,6 +52,16 @@ exporters:
4552
endpoint: aspire:18889
4653
tls:
4754
insecure: true
55+
sending_queue:
56+
enabled: true
57+
storage: file_storage/queue
58+
num_consumers: 4
59+
queue_size: 10000
60+
retry_on_failure:
61+
enabled: true
62+
initial_interval: 5s
63+
max_interval: 30s
64+
max_elapsed_time: 0
4865

4966
processors:
5067
# Add service.name to PostgreSQL metrics
@@ -80,9 +97,15 @@ processors:
8097
extensions:
8198
health_check:
8299
endpoint: 0.0.0.0:13133
100+
file_storage/queue:
101+
directory: /var/lib/otelcol/queue
102+
timeout: 10s
103+
compaction:
104+
directory: /var/lib/otelcol/queue
105+
on_start: true
83106

84107
service:
85-
extensions: [health_check]
108+
extensions: [health_check, file_storage/queue]
86109
telemetry:
87110
traces:
88111
sampler:
@@ -138,3 +161,6 @@ service:
138161
logs:
139162
receivers: [otlp]
140163
exporters: [debug, otlp_grpc/aspire]
164+
logs/file:
165+
receivers: [otlpjsonfile]
166+
exporters: [debug, otlp_grpc/aspire]

documentation/components/bridges/monolog-telemetry-bridge.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ use function Flow\Telemetry\DSL\{
286286
use function Flow\Bridge\Telemetry\OTLP\DSL\{
287287
otlp_curl_transport,
288288
otlp_json_serializer,
289-
otlp_log_exporter,
289+
otlp_exporter,
290290
};
291291
use function Flow\Bridge\Monolog\Telemetry\DSL\telemetry_handler;
292292

@@ -305,7 +305,7 @@ $transport = otlp_curl_transport(
305305
$telemetry = telemetry(
306306
$resource,
307307
loggerProvider: logger_provider(
308-
batching_log_processor(otlp_log_exporter($transport))
308+
batching_log_processor(otlp_exporter($transport))
309309
),
310310
);
311311

0 commit comments

Comments
 (0)