titan-iac/services/monitoring/jetson-tegrastats-exporter.yaml

85 lines
2.1 KiB
YAML

# services/monitoring/jetson-tegrastats-exporter.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: jetson-tegrastats-exporter
namespace: monitoring
labels:
app: jetson-tegrastats-exporter
spec:
selector:
matchLabels:
app: jetson-tegrastats-exporter
template:
metadata:
labels:
app: jetson-tegrastats-exporter
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9100"
spec:
serviceAccountName: default
hostPID: true
tolerations:
- operator: Exists
nodeSelector:
jetson: "true"
containers:
- name: exporter
# Exposes tegrastats output as Prometheus metrics for Jetson devices.
image: python:3.10-slim
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
ports:
- name: metrics
containerPort: 9100
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
env:
- name: JETSON_EXPORTER_PORT
value: "9100"
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
volumeMounts:
- name: script
mountPath: /etc/tegrastats-exporter
readOnly: true
- name: tegrastats-bin
mountPath: /host/usr/bin/tegrastats
readOnly: true
command:
- python
- /etc/tegrastats-exporter/exporter.py
volumes:
- name: script
configMap:
name: jetson-tegrastats-exporter-script
defaultMode: 0555
- name: tegrastats-bin
hostPath:
path: /usr/bin/tegrastats
type: File
---
apiVersion: v1
kind: Service
metadata:
name: jetson-tegrastats-exporter
namespace: monitoring
labels:
app: jetson-tegrastats-exporter
spec:
selector:
app: jetson-tegrastats-exporter
ports:
- name: metrics
port: 9100
targetPort: metrics