尝试在Kubernetes上使用Prometheus来收集系统的度量指标,并将其集成到New Relic中

以下是《New Relic Advent Calendar 2019》的第21天的发布。(由于身体不适,发布有些迟了。。)

首先

我们的产品在数据传输方面使用Kubernetes(EKS)构建基础设施。数据传输是通过作业(Jobs)进行的。

我们使用New Relic来监控基础设施和应用程序。我们使用Prometheus来收集指标。

我想介绍一下这次的内容,即如何使用Prometheus在Kubernetes上收集系统的指标,并将其集成到New Relic中。

关于Prometheus和new relic之间的协作

Kubernetes和New Relic的整合是通过使用New Relic Prometheus OpenMetrics实现的。它能够自动识别监视目标的Prometheus端点,并收集指标。通过New Relic Insights,我们可以将收集到的指标可视化。

prometheus-kubernetes.png

方法 (yà

请参阅以下链接,了解在Kubernetes上引入New Relic Prometheus OpenMetrics的方法。

基本上,您只需将New Relic的许可密钥和集群名称输入到由New Relic提供的manifest文件中,然后应用即可进行部署。

当导入完成后,New Relic Prometheus OpenMetrics的Pod(nri-prometheus-78888747d7-gxkrd)会被启动起来。

kubectl get pod -n kube-system
NAME                                 READY   STATUS    RESTARTS   AGE
aws-node-j825j                       1/1     Running   0          63m
aws-node-qmr56                       1/1     Running   0          4m
cluster-autoscaler-779c8bfb8-zvcxx   1/1     Running   0          25m
coredns-57db5788d5-968pj             1/1     Running   0          25m
coredns-57db5788d5-nrjpk             1/1     Running   0          25m
fluentd-7ft2n                        1/1     Running   0          63m
fluentd-p48g5                        1/1     Running   0          3m40s
kube-proxy-cktvq                     1/1     Running   0          63m
kube-proxy-htwgh                     1/1     Running   0          4m
kube-state-metrics-d6c99df65-9p8qk   2/2     Running   0          25m
nri-prometheus-78888747d7-gxkrd      1/1     Running   0          25m

识别 Prometheus 端点的收集对象的方法主要有两种。

    通过对部署分配标签,实现自动识别。

通过在部署模板的标签中添加 prometheus.io ,可以实现识别。在以下示例中,通过访问端口9394上的metrics来配置收集指标。

apiVersion: apps/v1
kind: Deployment
spec:

  ・
  ・
  ・

  template:
    metadata:
      labels:
        prometheus.io/scrape: "true"
        prometheus.io/port: "9394"
        prometheus.io/path: "metrics"
    将Prometheus端点的URL设置为配置文件的目标。

在New Relic Prometheus OpenMetrics的manifest文件的config.yaml内,有一个选项可以设置固定URL,您可以在那里填写端点信息。

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: nri-prometheus


・
・
・

apiVersion: v1
data:
  config.yaml: |

    ・
    ・
    ・

    targets:
      - description: trocco app
        urls: ["http://sample.com:9394/metrics", "http://sample.com:9100/metrics"]

通过这样做,可以将Prometheus收集的指标与New Relic进行集成。

将收集到的度量指标可视化

我们可以使用New Relic Insight来将收集到的指标进行可视化。通过NRQL查询抽取所需的数据,并进行可视化和设置警报。以下是一个可视化收集到的指标的示例。

スクリーンショット 2019-12-23 22.08.59.png

今天我介绍了在Kubernetes上使用Prometheus收集系统的指标,并将其集成到New Relic中。虽然我对New Relic的使用还只有大约一个月的经验,但它有许多有趣的功能可以尝试。我希望能继续深入使用并掌握它。

非常感谢您一直看到最后!

广告
将在 10 秒后关闭
bannerAds