GCP: Add CloudMonitoringMetricsReporter to export Iceberg metrics to Cloud Monitoring#16107
GCP: Add CloudMonitoringMetricsReporter to export Iceberg metrics to Cloud Monitoring#16107talatuyarer wants to merge 1 commit into
Conversation
60316ce to
fc34a15
Compare
| implementation "com.google.cloud:google-cloud-bigquery" | ||
| implementation "com.google.cloud:google-cloud-core" | ||
| implementation "com.google.cloud:google-cloud-kms" | ||
| implementation "com.google.cloud:google-cloud-monitoring" |
There was a problem hiding this comment.
we should be very careful with dependency change for runtime bundle jar. was this PR created after all the dependency/license fixes. at least, rebase with the latest main branch. CI should catch dependency/license problems nowadays.
There was a problem hiding this comment.
Yes I created this PR Last Friday. How can I verify that ? There is also license check too
https://github.com/apache/iceberg/actions/runs/25008117162/job/73236359466?pr=16107
There was a problem hiding this comment.
+1 #16103 + #16081 should enforce any runtime dep changes in CI, via [check-runtime-deps](https://github.com/apache/iceberg/actions/runs/25399058172/job/74493503774?pr=16107#logs) task
Theres also #16182 which is updating the LICENSE for GCP bundle.
Lets wait for all 3 PRs to land so we have a good baseline, and then we can look at adding new deps
There was a problem hiding this comment.
i would expect the runtime-deps.txt file to be modifed based on this addition...
There was a problem hiding this comment.
I didn't see the GitHub action for licensing checks run.
@talatuyarer - can you rebase off of main to make sure that you've got Russell's new dependency checks?
There was a problem hiding this comment.
looks like it was already pulled transitively and already part of runtime-deps.txt, hence no diff here
iceberg/gcp-bundle/runtime-deps.txt
Line 44 in b7ef9f1
👍
c94ffc9 to
3a062b4
Compare
| * GCS project ID. | ||
| */ | ||
| public static final String GCP_MONITORING_PROJECT_ID = "gcp.monitoring.project-id"; | ||
|
|
||
| /** Controls the metric prefix used for Google Cloud Monitoring metrics. */ | ||
| public static final String GCP_MONITORING_METRIC_PREFIX = "gcp.monitoring.metric-prefix"; | ||
|
|
||
| /** Default metric prefix for Google Cloud Monitoring metrics. */ | ||
| public static final String GCP_MONITORING_METRIC_PREFIX_DEFAULT = "custom.googleapis.com/iceberg"; | ||
|
|
There was a problem hiding this comment.
nit: gcs vs gcp. i see we use gcs. prefix in all the other places. If we are starting to use gcp., we should document it
| implementation "com.google.cloud:google-cloud-bigquery" | ||
| implementation "com.google.cloud:google-cloud-core" | ||
| implementation "com.google.cloud:google-cloud-kms" | ||
| implementation "com.google.cloud:google-cloud-monitoring" |
There was a problem hiding this comment.
looks like it was already pulled transitively and already part of runtime-deps.txt, hence no diff here
iceberg/gcp-bundle/runtime-deps.txt
Line 44 in b7ef9f1
👍
modified: build.gradle modified: docs/docs/metrics-reporting.md modified: gcp-bundle/build.gradle new file: gcp/src/integration/java/org/apache/iceberg/gcp/metrics/TestCloudMonitoringMetricsReporterIntegration.java modified: gcp/src/main/java/org/apache/iceberg/gcp/GCPProperties.java new file: gcp/src/main/java/org/apache/iceberg/gcp/metrics/CloudMonitoringMetricsReporter.java new file: gcp/src/test/java/org/apache/iceberg/gcp/metrics/TestCloudMonitoringMetricsReporter.java
975cbc5 to
73cb399
Compare
This PR adds a new MetricsReporter implementation to the iceberg-gcp module that sends Iceberg scan and commit metrics to Google Cloud Monitoring.