我正在运行一个3节点k8s集群,其中有一个Prometheus实例,该实例使用诸如serviceMonitor之类的对象抓取我的服务指标。除了群集服务指标外,我还想从ambari服务器获取指标。我知道可以将ambari指标导入为grafana中的数据源,但是我对Prometheus尚未见过任何信息。我的目标是在Prometheus中使用这些指标来使用AlertManager设置警报。我还看到可以编写一个以Prometheus格式公开指标的go程序,但是我更喜欢在尝试之前向社区询问.. :-)
如果有人遇到这个问题,如果您能帮上我,我将很高兴!
答案 0 :(得分:2)
您可以,Prometheus允许抓取外部服务公开的指标:显然,他们需要尊重Prometheus格式,但是我看到了it's possible。
您必须创建静态端点和相关服务:
apiVersion: v1
kind: Endpoints
metadata:
name: ambari-metrics
labels:
app: ambari
subsets:
- addresses:
- ip: "ambari-external-ip"
ports:
- name: metrics
port: 9100
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: ambari-metrics-svc
namespace: your-monitoring-namespace
labels:
app: ambari
spec:
type: ExternalName
externalName: ambari-external-ip
clusterIP: ""
ports:
- name: metrics
port: 9100
protocol: TCP
targetPort: 9100
最后是 ServiceMonitor :
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: ambari-metrics-sm
labels:
app: ambari
prometheus: kube-prometheus
spec:
selector:
matchLabels:
app: ambari
namespaceSelector:
matchNames:
your-monitoring-namespace
endpoints:
- port: metrics
interval: 30s
很显然,YMMV可以找到关于此article
的详细指南