尝试在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,我们可以将收集到的指标可视化。

方法 (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查询抽取所需的数据,并进行可视化和设置警报。以下是一个可视化收集到的指标的示例。

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