feat(prometheus.exporter.databricks): Add Databricks exporter component#5054
feat(prometheus.exporter.databricks): Add Databricks exporter component#5054
Conversation
|
💻 Deploy preview available (WIP - feat(prometheus.exporter.databricks): add Databricks exporter component): |
b17d1d1 to
ae221d2
Compare
Add prometheus.exporter.databricks component for collecting metrics from Databricks System Tables including billing, jobs, pipelines, and SQL warehouse performance data. Features: - OAuth2 M2M authentication via Service Principal - Configurable lookback windows for each metric domain - Optional high-cardinality task retry metrics - 19 metrics covering 3 personas: Finance, SRE/Platform, Analytics/BI Arguments: - server_hostname, warehouse_http_path (required) - client_id, client_secret (required, secret) - query_timeout (default: 5m) - billing_lookback (default: 24h) - jobs_lookback, pipelines_lookback (default: 2h) - queries_lookback (default: 1h) - sla_threshold_seconds (default: 3600) - collect_task_retries (default: false) Depends on: github.com/grafana/databricks-prometheus-exporter
ae221d2 to
136572e
Compare
Update default lookback windows to match the upstream databricks-exporter: - JobsLookback: 2h → 3h - PipelinesLookback: 2h → 3h - QueriesLookback: 1h → 2h These changes ensure consistency with the exporter's lookback windows which were increased to prevent data loss with scrape intervals up to 30 minutes.
Add github.com/grafana/databricks-prometheus-exporter v0.0.0-20251219150331-5730cb38c831 to go.mod, matching the Snowflake exporter pattern.
🔍 Dependency ReviewBelow are the dependency upgrades found in the go.mod files of this PR, with an assessment of potential code changes needed. Each section includes a brief summary of relevant upstream changes between the “as-is” and “to-be” versions and any action items for maintainers.
golang.org/x/sys v0.38.0 -> v0.39.0 — ✅ Safe
github.com/klauspost/compress v1.18.1 -> v1.18.2 — ✅ Safe
golang.org/x/crypto v0.45.0 -> v0.46.0 — ✅ Safe
golang.org/x/net v0.47.0 -> v0.48.0 — ✅ Safe
golang.org/x/oauth2 v0.32.0 -> v0.34.0 — ✅ Safe
golang.org/x/sync v0.18.0 -> v0.19.0 — ✅ Safe
golang.org/x/text v0.31.0 -> v0.32.0 — ✅ Safe
golang.org/x/tools v0.38.0 -> v0.40.0 —
|
- Add github.com/grafana/databricks-prometheus-exporter to go.mod - Fix logger type conversion (go-kit → slog) in NewIntegration - Update GitHub issue templates with new component labels
|
💻 Deploy preview available (feat(prometheus.exporter.databricks): add Databricks exporter component): |
Run 'go generate ./internal/tools/docs_generator/' to include prometheus.exporter.databricks in the compatible components list.
Add prometheus.exporter.databricks to TestInstanceKey to ensure all exporters are covered by the instance key test suite.
|
💻 Deploy preview deleted (feat(prometheus.exporter.databricks): Add Databricks exporter component). |
docs/sources/reference/components/prometheus/prometheus.exporter.databricks.md
Outdated
Show resolved
Hide resolved
docs/sources/reference/components/prometheus/prometheus.exporter.databricks.md
Outdated
Show resolved
Hide resolved
docs/sources/reference/components/prometheus/prometheus.exporter.databricks.md
Outdated
Show resolved
Hide resolved
docs/sources/reference/components/prometheus/prometheus.exporter.databricks.md
Outdated
Show resolved
Hide resolved
docs/sources/reference/components/prometheus/prometheus.exporter.databricks.md
Outdated
Show resolved
Hide resolved
docs/sources/reference/components/prometheus/prometheus.exporter.databricks.md
Outdated
Show resolved
Hide resolved
…er.databricks.md Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
…er.databricks.md Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
…er.databricks.md Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
…er.databricks.md Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
|
Docs look OK. Over to @grafana/grafana-alloy-maintainers for code review. |
|
Thanks @clayton-cornell, any specific person I can ask to review? I just added the team slug to the list of reviewers. |
Nope. The team reviewer thing is enough. The whole Alloy team gets notified. They get to is soon as they can. |
docs/sources/reference/components/prometheus/prometheus.exporter.databricks.md
Show resolved
Hide resolved
internal/static/integrations/databricks_exporter/databricks_exporter.go
Outdated
Show resolved
Hide resolved
- Add Lookback windows subsection explaining sliding SQL queries - Document source tables for each lookback parameter - Update default values: jobs/pipelines 3h, queries 2h - Update example scrape config to 10m/9m - Improve tuning recommendations with lookback vs interval guidance
Remove the duplicated config/static pattern by consolidating everything into the component package. Since Databricks is a new exporter that was never part of the legacy agent, there's no need to support the legacy integration system.
docs/sources/reference/components/prometheus/prometheus.exporter.databricks.md
Outdated
Show resolved
Hide resolved
…er.databricks.md Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
Ran 'go mod tidy' in collector/ to update dependencies after 'go generate' added new OpenTelemetry Collector components. This fixes the CI error: 'go: updates to go.mod needed'
Ran 'make generate-module-dependencies' to propagate dependency updates from collector/go.mod to extension/alloyengine/go.mod. This fixes the CI error: 'go.mod files are out of sync with generate-module-dependencies'
PR Description
Add prometheus.exporter.databricks component for collecting metrics from Databricks System Tables including billing, jobs, pipelines, and SQL warehouse performance data.
Features:
Arguments:
Depends on: grafana/databricks-prometheus-exporter#14
Which issue(s) this PR fixes
Fixes: https://github.com/grafana/cloud-onboarding/issues/10029
Part of project: https://github.com/grafana/cloud-onboarding/issues/9716
Notes to the Reviewer
PR Checklist