Our OpenShift Kubernetes cluster is currently running in application‑only monitoring mode, so we don’t have visibility into host‑level metrics. To address this, we’re planning to integrate Prometheus with Dynatrace.
Has anyone successfully implemented this integration? We only need to collect host‑level metrics, since application‑only mode already covers workloads, pods, and containers.
We use OCP and can get these metrics without issue, we also use App Only and combination of opt 1 & 3.
Since Dynatrace doesn’t have Prometheus ingestion endpoints (different to scrape) There are 3 relatively straight forward options. Options 1 & 2 are the preferred ones and will mostly give you what you need - you will also get the standard Kubernetes monitoring Alert on common Kubernetes/OpenShift issues — Dynatrace Docs.
this gives data for Clsuter, Node, Namespaces, Pods, Containers & Events.
1. Application and Kubernetes Monitoring - containerised active gates.
This uses multiple Dynakubes to provide the required monitoring on the cluster and reduce resource utilisation.
E.g
2. use an external Active Gate to pull the metrics from the K8s API endpoint (manual version of point 1 - connect in from outside the cluster)
This is same as above, except from an Active Gate external to the cluster.
3. Use an OTEL Collector and configure for Prom (you cannot use the Dynatrace supplied OTEL Option). I have an example here if you wanted to look : OTEL Collector - Example - Dynatrace Community
This is going to add a bit of complexity and isn’t overly necessary.
we use this for custom Prometheus scraping and trace manipulation that you can’t do through the dynatrace otel solution.
1. Application and Kubernetes Monitoring - containerised active gates.
This uses multiple Dynakubes to provide the required monitoring on the cluster and reduce resource utilisation. - i can use this multiple dynakubes approach on one of our openshift cluster since there is a limit range set on some of the application namespace.
Hi @JhonKenneth , the above details are for a relatively large cluster (120+ nodes), resource utilisation and requirements on resources and replica sets would be significantly less for most teams.
if you’re less than 50 nodes, something like the below would suffice.
you could tune this down even further if required.
Just to clarify, this runs only within the Dynatrace namespace. foundation of your application only will continue to run as is (i’ve made an assumption you are on automatic injection and not manual & have the containerised AG).
This solution will be a fair bit less in resource, than having to deploy an OTEL collector, which would need to run as a daemon set to collect the kube monitoring metrics.
I would strongly recommend to give it a go if you can as it will save you time and effort.
you can also remove the log monitoring and otel parts from k8s monitoring AG to further reduce resources. I’ve just included them as a “catch all” to make things easier and for future ref.
above was an example for a 120+ node cluster, with all DT components,
you could quite happily reduce resources and scope like below and just deploy the k8s monitoring part - this can be done in the same namespace. should be able to fit within limits.