Skip to content

Update monitoring stack to SDP 25.7 and scrape all products #284

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

Open
wants to merge 19 commits into
base: main
Choose a base branch
from

Conversation

sbernauer
Copy link
Member

@sbernauer sbernauer commented Jul 23, 2025

This is a somewhat big PR, the monitoring stack rotted a bit over the last years and things broke.
This PR cleans everything up and achieves a better state than ever before :)
I now also took the time to look into ServiceMonitors and how they work, so we are able to scrape a lot more of products than before!

  1. No need to update monitoring stack definition to SDP 25.7 (someone already YOLOed it here)
  2. Switch to the new native metrics where possible. This obviously broke the Dashboards, so fixed them
  3. Take the time to ensure all products are scraped. This required workarounds for some tools that mess up Services (e.g. kafka-op). Check that all products correctly expose metrics issues#747 will take care of cleaning up the mess. The only exclusions are spark and opensearch.
  4. Use mTLS for NiFi 2. Related to Improve serving of NiFi 2 metrics nifi-operator#813
  5. Tested that certificate rotation works for NiFi mTLS 🚀
  6. Make sure all Dashboards work again with the new metric labels
  7. Update MinIO dashboard to newest upsteam version, as it was broken
  8. Added a simple Dashboard to get a quick overview if all products are scraped:
image

NiFi

image

Kafka

image

@sbernauer sbernauer requested a review from xeniape July 23, 2025 12:44
@sbernauer sbernauer moved this from Development: In Progress to Development: Waiting for Review in Stackable Engineering Jul 23, 2025
@sbernauer sbernauer changed the title Update monitoring stack to SDP 25.7 and scrape everything Update monitoring stack to SDP 25.7 and scrape all products Jul 23, 2025
@sbernauer sbernauer requested a review from a team July 23, 2025 12:50
Copy link
Member

@xeniape xeniape left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some comments about things I encountered while reading through the code or when testing with the monitoring stack. Otherwise LGTM

app.kubernetes.io/name: hdfs
endpoints:
- scheme: http
port: http # Don't use metrics!
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "why" to the comment is missing here

# Use something like this to check for metrics:
# count by (app_kubernetes_io_name, app_kubernetes_io_instance, pod) ({app_kubernetes_io_name!="",pod!=""})
#
# [x] Airflow - exporter
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would add a line above explaining what this list represents or shows. I would assume it's something like "Products metrics covered by the ServiceMonitors below - Metrics origin(?)"

@@ -5,6 +5,289 @@ kind: ConfigMap
metadata:
name: stackable-grafana-dashboards
data:
metric-collection-overview.json: |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kafka seems to be missing from the Stacklets and Pods overview

- airflow
- druid
- hive
- kafka
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kafka here in the list but has a separate ServiceMonitor

namespaceSelector:
any: true
selector:
matchLabels:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This matches two services probably, each of the Kafka Pods are scraped twice

# [x] NiFi 1 - native
# [x] NiFi 2 - native
# [ ] OpenSearch - not officially part of the platform yet
# [ ] Spark - native - was too lazy, no idea if we even expose metrics
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spark should have exporter as well as native metrics stackabletech/spark-k8s-operator#582

@xeniape xeniape moved this from Development: Waiting for Review to Development: In Review in Stackable Engineering Jul 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Development: In Review
Development

Successfully merging this pull request may close these issues.

2 participants