0
点赞
收藏
分享

微信扫一扫

基于kube-prometheus作业务应用的自定义指标抓取

爱写作的小土豆 2021-09-27 阅读 42
k8s

这个方案,可以基于prometheus operator,也可以基于kube-prometheus,这两个是一回事嘛~
整个操作步骤,分为两步:

一,ServiceMonitor的建立

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: nodejs-app-monitor
  namespace: monitoring
spec:
  endpoints:
  - port: nodejs-app-port
    interval: 10s
    path: /metrics 
    honorLabels: true
  selector:
    matchLabels:
      app: nodejs-app
  namespaceSelector:
    any: true

这个yaml文件定义的要点:namespaceSelector定义了所有namespace中采集,matchLabels过滤指定的label可采集,endpoints定义了采集的端点(端口,间隔,路径)。

二,K8s service的改造

---
apiVersion: v1
kind: Service
metadata:
  name: 'app-node-demo'
  namespace: 'frontend'
  labels:
    app: nodejs-app
spec:
  ports:
    - name: nodejs-app-port
      port: 3000
      targetPort: 3000
  selector:
    name: 'app-node-demo'

如果要将一个Node.js应用纳入prometheus的采集,要改造两点:一是在metadata下新增一个labels,二是将ports下采集端口进入命名。以契合前一个步骤中的定义。
PS:如果以后,有更多的node.js应用需要prometheus监控入库,则只需要在service上加入label和ports命名,就可以了。ServiceMonitor是不再需要作改动的(除非抓取的path改变,可以新建一个servicemonitor来对应)。

三,自己看~

举报

相关推荐

0 条评论