Prometheus stack命令行接入springboot服务metrics

使用Prometheus Stack监控SpringBoot应用

本文将详细介绍如何使用Prometheus Stack监控SpringBoot应用的metrics。假设你已经安装了Kubernetes集群,并使用Helm安装了Prometheus Stack全家桶。SpringBoot应用已经配置好,暴露了相应的metrics端点。
SpringBoot Feign指标暴露,参考链接:https://blog.youkuaiyun.com/fengwuJ/article/details/146506845

前置条件

  1. Kubernetes集群:确保你已经有一个运行中的Kubernetes集群。
  2. Prometheus Stack:使用Helm安装Prometheus Stack全家桶。
  3. SpringBoot应用:SpringBoot应用已经配置好,暴露了metrics端点,例如 /actuator/prometheus

步骤

1. 创建 springboot-monitor.yaml 文件

首先,我们需要创建一个 ServiceMonitor 资源文件,以便Prometheus能够发现并监控SpringBoot应用的metrics。

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: springboot-monitor  # monitor名称,可自定义
  namespace: monitoring  # 必须与Prometheus Operator同namespace
spec:
  selector:
    matchLabels:
      app: springboot-app  # 必须匹配Service的标签,命令: kubectl get svc -----NAME 那一列值,需要监控哪个服务就填写哪个服务
  namespaceSelector:
    any: true  # 设置为true可跨namespace监控
    matchNames:
    - default  # 指定被监控Service所在的namespace, 命令: kubectl get svc -A
  endpoints:
  - port: http  # 必须与Service中定义的端口名一致,这里是port名称,并非是port的值, kubectl describe svc xxx
    path: /actuator/prometheus  # SpringBoot中Prometheus暴露的端点信息
    interval: 15s  # 指定监控间隔

2. 应用 springboot-monitor.yaml 文件

将上述内容保存为 springboot-monitor.yaml 文件,然后使用 kubectl 命令将其应用到Kubernetes集群中:

kubectl apply -f springboot-monitor.yaml

3. 验证监控状态

查看Prometheus服务

首先,查看Prometheus服务的外部IP地址:

kubectl get svc -n monitoring

找到Prometheus服务的 externalIp,然后使用 curl 命令验证监控目标:

curl http://{externalIp}:9090/api/v1/targets | jq '.data.activeTargets[] | select(.labels.service == "前面yaml中app对应的值")'

确保输出中包含你配置的SpringBoot应用的监控目标。

4. 在Grafana中查看指标

访问Grafana

打开Grafana的Web界面,进入到datasource explore中,metric 检索查看指标信息:
在这里插入图片描述

查看指标

在Grafana中,选择 Explore 选项卡,输入你感兴趣的指标名称,例如 jvm_memory_used_bytes,即可看到SpringBoot应用暴露的指标数据。

有以下几种方式可以在命令行中使用Prometheus监控Kubernetes: 1. 使用PrometheusKubernetes SD配置:可以在Prometheus的配置文件中设置Kubernetes SD配置,这样Prometheus会自动发现Kubernetes中的所有服务和Pod,并开始监控它们。下面是一个示例配置: ``` scrape_configs: - job_name: 'kubernetes-pods' kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) ``` 2. 使用kube-prometheuskube-prometheus是一个为Kubernetes提供Prometheus监控的开源项目。它包含了一整套Prometheus和Grafana的配置文件和Dashboard,可以快速地搭建一个完整的监控系统。可以使用以下命令安装kube-prometheus: ``` git clone https://github.com/prometheus-operator/kube-prometheus.git cd kube-prometheus kubectl apply -f manifests/setup kubectl apply -f manifests/ ``` 3. 使用Prometheus Operator:Prometheus Operator是一个为Kubernetes提供Prometheus监控的开源项目。通过定义一些自定义资源对象,可以在Kubernetes集群中轻松地部署和管理Prometheus实例。可以使用以下命令安装Prometheus Operator: ``` kubectl create namespace monitoring helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install prometheus-operator prometheus-community/kube-prometheus-stack -n monitoring ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值