我已经按照Documentation
中的说明建立了容器见解是否可以删除一些发送到CloudWatch的指标?
详细信息:
我有一个小型集群(3个面向客户端的名称空间,每个名称空间约8个服务),并在其自己的独立名称空间中进行了一些自定义监视,日志记录等操作,我只想将CloudWatch用于重要的面向客户端的指标。
我遇到的问题是,代理向CloudWatch发送了500多个指标,而我实际上只对几个重要指标感兴趣,尤其是每个指标的AWS账单。
有什么方法可以限制将哪些指标发送到CloudWatch?
如果我只能从某些名称空间发送指标,这将特别有用,例如,排除kube-system名称空间
我的配置图是:
cwagentconfig.json: |
{
"logs": {
"metrics_collected": {
"kubernetes": {
"cluster_name": "*****",
"metrics_collection_interval": 60
}
},
"force_flush_interval": 5
}
}
我已经搜索了一段时间,但在以下位置找不到任何东西
: "metrics_collected": {
"kubernetes": {
答案 0 :(得分:0)
我尽力了,你是对的,在这个话题上几乎找不到或没有发现。在我提出使用Prometheus或在AWS论坛上提出明显但无用的建议之前,请快速了解CloudWatch代理的实际作用。
Cloudwatch代理从cAdvisor(在每个节点上作为kubelet的一部分运行)或kubernetesmetrics-server API(也从kubelet和cAdvisor获取其指标)获取容器指标。 cAdvisor有据可查,Cloudwatch代理很可能使用Prometheus format metrics cAdvisor produces来构建自己的指标列表。
不幸的是,这只是一个猜测,因为Cloudwatch代理似乎不是开源的。这也意味着可以仅仅在kubernetes部分中设置一个“ measurement”选项,然后根据Prometheus度量名称选择度量,但这可能不受支持。 (如果您确实要问AWS,高级支持团队应该关注论坛,这样您可能会很幸运并得到答案而无需支付支持费用)
因此,如果您不能缩减Container Insights创建的指标,您还有其他选择吗? Prometheus是easy to deploy,您可以设置记录规则以减少其实际保存的指标数量。默认情况下,它不会推送到Cloudwatch,但是如果您的节点上有一些空间可以将指标保留在本地,或者可以使用MetricFire之类的remote storage服务(请注意,我所服务的公司! ),这提供了Grafana的支持。您也可以export metrics from Cloudwatch并将Prometheus用作唯一的事实来源,但这意味着群集上有更多存储空间。
如果您希望在Cloudwatch中查看指标,则有Prometheus-to-cloudwatch之类的工具实际上会刮取Prometheus端点并将数据发送到Cloudwatch,就像(我猜)Cloudwatch Agent一样。该服务实际上具有包括和排除设置,用于确定将哪些指标发送到Cloudwatch。
为了帮助您,我在EKS Architecture and Monitoring上写了一篇博客文章。祝您好运,让我们知道您选择哪种选择!