164 karma · joined October 13, 2014
Our focus is definitely more on container-first, cloud-native Kubernetes environments like EKS, GKE, AKS. Also we're way more health monitoring of the actual GPU hardware rather than just scheduling jobs.
And yes, it's nowhere near 100% but an overwhelming majority was running Kubes for GPU workloads...mainly cuz so they'd have a unifying layer that wasn't managing each cloud separately and being proficient with their respective tooling.
Are you using something else? Slurm, docker, etc?
The main 3 are:
- GPU runtime stats from NVIDIA smi
- Running pods from Kube state
- Node data & events from Kube state
We have several screens with similar information intended for different roles. For example, the Workloads screen is mainly for researchers to monitor their workloads from creation to completion. The Reports screen shows mainly cost data grouped by team/project, etc.
Our solution is self-hosted and your data remains on your servers. And I think we do provide a fairly generous free limit of 64 GPUs.
Then on your GPU cluster w/o disk, you just need to install the Neurox Workload agent. In the Web Portal UI, click on Clusters > New Cluster and copy/paste the snippet there.
Currently, our free version is self-hosted and monitors clusters with up to 64 GPUs. We feel this will work for many use cases, especially just to try it out. Monitoring GPUs typically requires you to deploy something where your GPUs live. Since you’re already installing software on your cluster, you might as well keep your data there too.
Also we're purpose built to monitor GPUs, so we have things like drilling down from a Kube cluster, down to GPU nodes, down to a GPU card.
When I co-founded Mezmo (a Series D observability platform), we obsessed over logs, metrics, and traces. I learned firsthand how critical app-level observability is for DevOps, cutting through logging noise and finding the needle in the haystack is everything.
But after diving into AI infra, I noticed a huge gap: GPU monitoring in multi-cloud environments is woefully insufficient.
Despite companies throwing billions at GPUs, there's no easy way to answer basic questions:
- What's happening with my GPUs?
- Who's using them?
- How much is this project costing me?
What's happening: Metrics (like DCGM_FI_DEV_GPU_UTIL) told us what was happening, but not why. Underutilized GPUs? Maybe the pod is crashlooping, stuck pulling an image, or misconfigured, or the application is simply not using the GPU.
Who's using the compute: Kubernetes metadata such as namespace or podname gave us the missing link. We even traced issues like failed pod states, incorrect scheduling, and even PyTorch jobs silently falling back to CPU.
How much is this gonna cost: Calculating cost isn't easy either. If you're renting, you need GPU-time per pod and cloud billing data. If you're on-prem, you'll want power usage + rate cards. Neither comes from a metrics dashboard.
---
Most teams are duct-taping scripts to Prometheus, Grafana, and kubectl.
So we built Neurox - A purpose-built GPU observability platform for Kubernetes-native, multi-cloud AI infrastructure. Think:
1. Real-time GPU utilization and alerts for idle GPUs
2. Cost breakdowns per app/team/project and finops integration
3. Unified view across AWS, GCP, Azure, and on-prem
4. Kubernetes-aware: connect node metrics to running pods, jobs, and owners
5. GPU health checks
Everyone we talked to runs their compute in multi-cloud and uses Kubes as the unifier across all environments. Metrics alone aren't good enough. You gotta combine metrics with Kube state and financial data to see the whole picture.
Check us out, let us know what we're missing. Curious to hear from folks who've rolled their own, what did you do?
Lee @ Neurox
The gif was from our docs page which afaik doesn't allow js.
From the beginning, we’ve always wanted to be able to embed logs (light log viewer with live tail) onto any web page and we’ve just released this! Let us know if you have any feedback or cool use cases.
So far we’ve seen these pretty awesome uses from early testers:
1) custom internal dashboards with 1 embedded log viewer tab per internal app
2) showing customers their own logs
3) show inner workings of their app
Screenshot: https://files.readme.io/2351a3a-embedded-views.gif
I’m happy to answer any questions you may have!
Yeah, we now set our agent up w/o namespaces. During our beta, we originally had it set up inside `kube-system` but 2 of our testers mentioned that the pod wouldn't install unless it was in `default`. So we moved it out of `kube-system` but we still weren't sure what caused the issue since it worked fine on our cluster. We were using Kubernetes v1.4 so it could've been an older version issue.
We have thought about this before and doing something like: if a line starts with tab or a fixed number of spaces a few times in a row, treat it as 1 line with \n's and store it as such. It would help with alerting and filtering alerts. Just not 100% sure if this will screw up anything.
Based on user feedback, we're happy to announce our super easy Kubernetes integration. No more wrestling with fluentd configs, fiddling with Elasticsearch knobs or following 30-step guides cutting and pasting other people's configs.
kubectl create secret generic logdna-agent-key --from-literal=logdna-agent-key=<YOUR LOGDNA API KEY>
kubectl create -f https://raw.githubusercontent.com/logdna/logdna-agent/master/logdna-agent-ds.yaml
We're looking for some feedback on how we can improve this integration. We currently extract Kubernetes metadata: pod name, container name, container id, namespace.Feel free to try it out. Happy to answer any questions!