是否可以将指标发送给普罗米修斯?

时间:2019-09-15 16:11:03

标签: kubernetes prometheus ambari

我正在运行一个3节点k8s集群,其中有一个Prometheus实例,该实例使用诸如serviceMonitor之类的对象抓取我的服务指标。除了群集服务指标外,我还想从ambari服务器获取指标。我知道可以将ambari指标导入为grafana中的数据源,但是我对Prometheus尚未见过任何信息。我的目标是在Prometheus中使用这些指标来使用AlertManager设置警报。我还看到可以编写一个以Prometheus格式公开指标的go程序,但是我更喜欢在尝试之前向社区询问.. :-)

如果有人遇到这个问题,如果您能帮上我,我将很高兴!

1 个答案:

答案 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

的详细指南