Spot Ocean的功能相当于Kubernetes数据平面的自动驾驶仪容器驱动自动定量持续监控和优化集群的云基础设施。Ocean位于应用程序部署管道中繁忙的十字路口,它以多种方式/格式生成和维护数据——这些数据在监视容器化环境时非常有价值。换句话说,使用定义良好的度量标准对Ocean活动进行有效监视,可以加速在环境监视或故障排除场景中对集群拓扑的理解。
根据Kubernetes的指标监控,普罗米修斯是去的工具。它在使用HTTP拉模型构建的时间序列数据库(允许高维)中记录实时指标,具有灵活的查询和实时警报。普罗米修斯项目是CNCF下的第二大项目,根据该项目的数据,该项目增长了43%2021年CNCF调查.
作为在您的可观测性管道中原生集成Ocean数据的一部分,我们非常兴奋地分享Ocean现在维护了一套官方度量标准,可由Prometheus原生删除!这组指标有助于构建Ocean主动采取的行动的360º视图,以交付应用程序驱动的基础设施。
理解海洋尺度
ocean_managed_nodes:这个度量类型的度量跟踪集群中节点的总数(由Ocean管理)。该度量在响应非自然异常、跟踪守护进程启动开销等方面非常有用。此外,该度量提供了一种简单的分解方法来监视集群中的特定虚拟节点组,以及其他基础设施特征,如实例生命周期或类型。
例子:
13 . ocean_managed_nodes {VNGId="ols-xxxxxxxx", lifecycle="Spot", AZ="us-west-2a", type="c5.2xlarge", ocean-id= " o-12345678 ", ocean_name= " myOceanCluster ", vng_name= " batchWorkloadsVNG "
ocean_managed_nodes {VNGId="ols-xxxxxxxx", lifecycle="OD", AZ="us-west-2b", type="c5.2xlarge", ocean-id= " o-12345678 ", ocean_name= " myOceanCluster ", vng_name= " batchWorkloadsVNG "} 2 .执行以下命令
ocean_managed_nodes {VNGId="ols-xxxxxxxx", lifecycle="Spot", AZ="us-西-2b", type="m5.8xlarge", sea -id= " o-12345678 ", ocean_name= " myOceanCluster ", vng_name= " batchWorkloadsVNG "} 3 .使用实例
ocean_nodes_added_total而且ocean_nodes_removed_total:这些计数器类型的指标有助于跟踪集群中节点添加/移除的速度以及它们背后的不同原因,正如一个名为“reason”的专用标签所反映的那样,具有诸如“pendingPodsOrHeadroom”(用于扩大规模),“odToSpotReplacement”(主动用Spot实例替换OD实例),revertToLowerCostReplacement(捕获Ocean最近发布的优化流程)和更多!
ocean_node_adde_total {reason="revertToLowerCostReplacement", lifecycle="Spot", AZ="us-west-2a", type="c5. ", ocean-id= " o-12345678 ", ocean_name= " myOceanCluster ", vng_name= " batchWorkloadsVNG "
ocean_node_adde_total {reason="scaleUpForPendingPods", lifecycle="Spot", AZ="us-west-2b", type="r5a. "13 ., ocean-id= " o-12345678 ", ocean_name= " myOceanCluster ", vng_name= " batchWorkloadsVNG "}
追踪海洋管理资源雷竞技rabet官网
ocean_allocatable_cpu_vcpus/ocean_allocatable_memory_gibs/ocean_allocatable_gpu_units
这些度量类型的度量详细说明了集群中所有海洋管理节点可分配的资源。雷竞技rabet官网添加到这些标签上的标签保存了从不同角度对资源的分解,并帮助跟踪将操作扩展到集群中可供容器使用的计雷竞技rabet官网算资源上的效果。
ocean_allocatable_cpu_vcpus{VNGId="ols-xxxxxxxx", lifecycle="OD/Spot", AZ="us-west-2a", VMtype="c5.2xlarge", ocean-id= " o-12345678 ", ocean_name= " myOceanCluster ", vng_name= " batchWorkloadsVNG "} 45
ocean_allocatable_headroom_cpu_vcpus/ocean_allocatable_headroom_memory_gibs/ocean_allocatable_headroom_gpu_units
与前一节一样,这3个指标捕获了集群中所有海洋管理节点中可作为净空分配的计算资源子集。雷竞技rabet官网
普罗米修斯米制类型:量规
12 . ocean_allocatable_headroom_gpu_units{VNGId=" ors -xxxxxxxx", lifecycle="OD/Spot", AZ="us-west-2a", VMtype="c5.2xlarge", ocean-id= " o-12345678 ", ocean_name= " myOceanCluster ", vng_name= " batchWorkloadsVNG "
跟踪健康
ocean_controller_heartbeat_info
这种规格类型的度量特征值为0/1,捕获连接海洋控制器在集群和SaaS中。
ocean_controller_heartbeat_info {ocean-id= " o-12345678 ", ocean_name= " myOceanCluster "
获取海洋指标
上面的指标是可以通过Prometheus来实现的。使用一个简单的出口商,Ocean能够提供测量数据开放的标准格式。
Spot Ocean度量导出器是运行在Kubernetes集群中的一个轻量级应用程序,它负责不断地从Ocean SaaS中抓取度量数据。每60秒进行一次抓取,返回的数据经过格式化,以便普罗米修斯消化。
注意,导出器应用程序独立于Ocean控制器。也就是说,数据流到Ocean SaaS并最终更新指标需要一个功能正常的控制器。
先决条件
- Ocean up &运行与报告控制器
- 普罗米修斯安装在集群中
部署导出器
通过舵
这张舵图完全覆盖了这一步。
首先,添加Spot Helm图表存储库:
Helm repo补充现货https://charts.www.drvrless.com
然后更新您的本地Helm图表存储库缓存:
Helm回购更新
最后,安装ocean-metric-exporter:
Helm安装my-release spot/ocean-metric-出口商
通过基础设施作为代码
或者,使用https://registry.terraform.io/modules/spotinst/ocean-metric-exporter/spotinst/latestTerraform模块将导出器合并到IaC设置中。
配置普罗米修斯
该步骤配置Prometheus为公开Ocean导出器的Kubernetes服务生成抓取请求。在您的环境中配置的Prometheus作业集中,添加以下内容:
scrape_configs:- job_name: 'spot-ocean-metrics' #任务名默认分配给抓取的指标。metrics_path: '/metrics' #从目标获取指标的HTTP资源路径。scrape_interval: 30s #从这个作业中抓取目标的频率。static_configs:-目标:['spot-ocean-metric-export .kube-system.svc.cluster. txt]#kube-system表示导出服务所在的名称空间
和中提琴!海洋指标将刮每30秒,并保存到普罗米修斯!
Prometheus中保存的指标的一个流行用法是仪表板。可以肯定地说,Grafana是最受欢迎的工具之一。因此,为了更进一步,我们已经创建了一个预设的Grafana仪表板,可视化Ocean指标,准备将其合并到您现有的仪表板基础中!
指https://grafana.com/grafana/dashboards/16475有关详细信息,请下载仪表板模板。
接下来是什么?
这是导出器和度量集的第一个版本。展望未来,我们计划扩展指标列表,以涵盖:
- 基础设施优化
- 与尺度相关的海洋原木
- 合适的尺寸建议
- 还有更多的有待确定
这是影响下一个要添加的指标的好机会!单击Ocean控制台中的路线图菜单项,并分享反馈和/或对未来的指标提出请求。
如需更多资料,请参阅海洋文档。目前关于普罗米修斯整合的信息可以在下面找到工具和集成-普罗米修斯,获取海洋指标.