Prometheus:区分应用程序指标

Prometheus : Distinguish Application metrics

我运行在 EKS 集群上使用我的服务。为了收集应用程序指标 [API 响应时间、状态和调用次数],我遇到了 Prometheus。我认为需要完成以下步骤:

  1. 集群角色、服务帐户和角色绑定:这将允许我的 prometheus 服务与集群节点、pods 和服务 [在资源部分中定义] 对话。
  2. Configmap:这允许抓取过程并定义不同的角色。
  3. 服务和入口:建立端点[例如:9090]并路由来自互联网的流量。

我遇到了 prometheus using helm,它描述了我们如何利用 helm 预定义的 prometheus 图表来从 kubernetes 获取原始指标。

我遵循了以下步骤:

kubectl create namespace prometheus

helm install prometheus stable/prometheus \
    --namespace prometheus \
    --set alertmanager.persistentVolume.storageClass="gp2",server.persistentVolume.storageClass="gp2"

kubectl get pods -n prometheus

我可以看到 pods 运行 那个命名空间。现在,我有两个问题,

  1. 我有多个服务(例如,服务 A 和服务 B) 运行ning 在集群上。那么,我怎样才能区分指标 普罗米修斯.
  2. 我需要每次都运行 kubectl --namespace=prometheus port-forward deploy/prometheus-server 9090才能看到结果吗?我懂了 targetPort 定义为 9090 那么为什么我需要 运行 命令?我可以 values.yaml 代替吗?

好了回答你的问题

  1. 是的,你可以通过在你的prometheus的configMap中这样使用标签来区分服务指标

     static_configs:
       - targets:
           - "<yourfirstservicename>.<namespace>.svc.cluster.local:<yourservice1portnumber>"
         labels:
           instance: 'service1'
       - targets:
           - "<yourservice2name>.<namespace>.svc.cluster.local:<yourservice2port>"
         labels:
           instance: 'service2'
    
  2. 是的,你必须做那个端口转发,但如果你打算使用 grafana 进行可视化,那么新的 grafana 版本提供内置查询 运行 功能。

希望对您有所帮助!!