[10.14 workshop] 自定义 Prometheus 监控指标并通过 Grafana 展示

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
应用实时监控服务-应用监控,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 阿里云Prometheus监控全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,且提供全面托管的Prometheus服务。借助阿里云Prometheus监控,您无需自行搭建Prometheus监控系统,因而无需关心底层数据存储、数据展示、系统运维等问题。

阿里云Prometheus监控全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,且提供全面托管的Prometheus服务。借助阿里云Prometheus监控,您无需自行搭建Prometheus监控系统,因而无需关心底层数据存储、数据展示、系统运维等问题。

您可以通过阿里云Prometheus监控查看容器服务Kubernetes版ACK(Container Service for Kubernetes)预先配置的监控大盘和监控性能指标。

本文介绍如何通过Annotations和ServiceMonitor来自定义监控指标并通过Grafana展示。

前提条件


背景信息


  • 阿里云 Prometheus监控兼容并提供三种主流采集规则的实现,包括标准开源prometheus.yaml采集规则配置文件、适合自定义K8s内监控的采集规则ServiceMonitor、以及默认采集规则Annotation。
  • 与开源Prometheus监控相比,阿里云 Prometheus监控无需重启,即可使用prometheus.yaml配置文件动态更新采集规则。
  • 在Deployment文件里也无需编写多行代码,仅需增加以下3个Annotation注解即可。具体参考托管 ARMS Prometheus 监控

操作步骤


方式一:通过 Annotations 自定义指标监控

通过给 Deployment Pod Template 加入 Annotations 的方式自定义监控,阿里云 ARMS pilot 将会自动配置 ARMS Prometheus 获取 Pod 自定义指标。

1、登录容器服务管理控制台,在左侧导航栏单击集群,在集群列表中点击目标集群。

2、在左侧边导航栏,单击工作负载,在右侧单击使用镜像创建

3、输入应用的基本信息,单击下一步

4、使用镜像registry.cn-hangzhou.aliyuncs.com/containerdemo/pindex创建一个Web应用,暴露 5000 端口。

mypindex-1

或者,可以直接采用如下 YAML 直接部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: pindex
  name: pindex
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: pindex
  template:
    metadata:
      annotations:
        prometheus.io/path: /access
        prometheus.io/port: '5000'
        prometheus.io/scrape: 'true'
      labels:
        app: pindex
    spec:
      containers:
        - image: 'registry.cn-hangzhou.aliyuncs.com/containerdemo/pindex:latest'
          imagePullPolicy: Always
          name: pindex
          ports:
            - containerPort: 5000
              name: web
              protocol: TCP
          resources:
            requests:
              cpu: 250m
              memory: 512Mi
---
apiVersion: v1
kind: Service
metadata:
  name: pindex-svc
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
    - name: web
      port: 5000
      protocol: TCP
      targetPort: 5000
  selector:
    app: pindex
  sessionAffinity: None
  type: LoadBalancer

5、给 Pod 添加上 ARMS 相关的 annotations。prometheus.io/port 表示 Prometheus 要 scrape 的 endpoint 端口,prometheus.io/path 表示 Prometheus 要 scrape 的 endpoint 路径。

mypindex-2

6、单击下一步,创建一个Loadbalancer型Service,暴露服务到公网,单击创建完成服务部署。

7、登录 Prometheus 控制台,单击对应的 K8S 集群。

8、在左侧导航栏单击设置, 然后在右侧区域单击Targets页签,可见自定义的指标已经配置成功。

mypindex-3

9、访问该服务暴露出来的公网IP,增加一些指标值。

mypindex-web

10、单击 Prometheus 任意一个预置的图表进入 Grafana,然后单击添加 Panal ,选择 Graph 类型,将Metrics 填写为current_person_counts

11、保存配置即可观察到自定义指标的 Grafana 图形。

mypindex-4

方式二:通过 ServiceMonitor 自定义指标监控

通过 ServiceMonitor 方式自定义指标监控在部署的时候不需要配置 annotations,但是要给 service 对象添加标签。

1、部署 Demo 示例服务。

与方式一的步骤类似,但是部署服务的时候不需要配置 Annotations。

custom-1

2、添加服务时,需要添加标签(app=custom-metrics-pindex),该标签将被用于 serviceMonitor 的 selector:

custom-2

或者通过如下的 YAML 直接部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: pindex
  name: pindex
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: pindex
  template:
    metadata:
      annotations:
        prometheus.io/path: /access
        prometheus.io/port: '5000'
        prometheus.io/scrape: 'true'
      labels:
        app: pindex
    spec:
      containers:
        - image: 'registry.cn-hangzhou.aliyuncs.com/containerdemo/pindex:latest'
          imagePullPolicy: Always
          name: pindex
          ports:
            - containerPort: 5000
              name: web
              protocol: TCP
          resources:
            requests:
              cpu: 250m
              memory: 512Mi
---
apiVersion: v1
kind: Service
metadata:
  name: pindex-svc
  namespace: default
  labels:
    app: custom-metrics-pindex
spec:
  externalTrafficPolicy: Local
  ports:
    - name: web
      port: 5000
      protocol: TCP
      targetPort: 5000
  selector:
    app: pindex
  sessionAffinity: None
  type: LoadBalancer

3、登录 Prometheus 控制台,单击对应的 K8S 集群。

4、在左侧导航栏单击设置, 然后在右侧区域单击服务发现页签。

5、单击页面右上角添加 ServiceMonitor,模板文件如下,单击确定完成ServiceMonitor创建。

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  #  填写一个唯一名称
  name: custom-metrics-pindex
  #  填写目标命名空间
  namespace: default
spec:
  endpoints:
  - interval: 30s
    #  填写service.yaml中对应的Port的Name字段的值(参考上图)
    port: web
    #  填写Service对应的Path的值
    path: /access
  namespaceSelector:
    any: true
    #  Nginx Demo的命名空间
  selector:
    matchLabels:
      #  填写service.yaml的Label字段的值以定位目标service.yaml
      app: custom-metrics-pindex

6、在Targets页签,可见 Prometheus 已经获得服务 Scape Endpioint。

custom-3

说明 这里 ServiceMonitor 定义比 Annotations 方式更美观,指示出了 Namespace 和 Service 名称。

7、再次进入之前的 Grafana 页面,因为是相同的指标,与上述相同的 Metrics 配置,可见 4 个实例的指标监控信息。

custom-4

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
1月前
|
存储 Prometheus 监控
136_生产监控:Prometheus集成 - 设置警报与指标选择与LLM部署监控最佳实践
在大语言模型(LLM)部署的生产环境中,有效的监控系统是确保服务稳定性、可靠性和性能的关键。随着LLM模型规模的不断扩大和应用场景的日益复杂,传统的监控手段已难以满足需求。Prometheus作为当前最流行的开源监控系统之一,凭借其强大的时序数据收集、查询和告警能力,已成为LLM部署监控的首选工具。
|
7月前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana(docker安装)
本文档详细介绍了如何使用Docker容器快速部署Prometheus监控系统和Grafana数据可视化平台。该方案适用于需要快速搭建监控环境的开发测试场景,具备部署简单、资源占用低、易于维护等特点。
|
11月前
|
存储 数据采集 Prometheus
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
613 20
|
11月前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana监控Linux主机
通过本文的步骤,我们成功地在 Linux 主机上使用 Prometheus 和 Grafana 进行了监控配置。具体包括安装 Prometheus 和 Node Exporter,配置 Grafana 数据源,并导入预设的仪表盘来展示监控数据。通过这种方式,可以轻松实现对 Linux 主机的系统指标监控,帮助及时发现和处理潜在问题。
999 7
|
11月前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
1706 3
|
11月前
|
Prometheus 监控 前端开发
Grafana 安装配置教程,让你的 Prometheus 监控数据变得更美观
《Grafana安装配置教程,让你的Prometheus监控数据变得更美观》简介: Grafana是一个开源的度量分析与可视化工具,支持多种数据源(如Prometheus),提供丰富的可视化功能和警报机制。本文详细介绍了Grafana的安装、汉化方法及模板使用,帮助用户轻松创建美观、灵活的数据面板,并实现数据的协作与共享。通过Docker镜像、配置文件修改或替换前端页面等方式实现汉化,让用户更便捷地使用中文界面。此外,还提供了导入JSON格式模板的具体步骤,方便快速搭建仪表盘。
1147 2
|
11月前
|
Prometheus Cloud Native Linux
Prometheus+Grafana新手友好教程:从零开始搭建轻松掌握强大的警报系统
本文介绍了使用 Prometheus 和 Grafana 实现邮件报警的方案,包括三种主要方法:1) 使用 Prometheus 的 Alertmanager 组件;2) 使用 Grafana 的内置告警通知功能;3) 使用第三方告警组件如 OneAlert。同时,详细描述了环境准备、Grafana 安装配置及预警设置的步骤,确保用户能够成功搭建并测试邮件报警功能。通过这些配置,用户可以在系统或应用出现异常时及时收到邮件通知,保障系统的稳定运行。
1446 1
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
1140 3
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
715 2
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
1056 0

热门文章

最新文章

推荐镜像

更多
下一篇
oss云网关配置