背景: 对于初创企业来说,在很长一段时间一些基础的开源服务基本都是"裸奔"上线的,除了一些传统的主机级别的监控之外,很难有一些额外的性能指标来描述该服务的整体性能情况。
在我们的Minio对象存储服务上线以来一直也是裸奔的,虽然暂时也没出现过故障,但是作为一名专业搞笑的SRE来讲,服务的可观测性一定得跟上,不然后期铁锅是妥妥的背定了,这篇文章就主要介绍下Minio
的可观测性方案。感兴趣的可直接看底部
监控大盘
开源组件的可观测性现状
在开头提到了,初创企业的开源服务初期大多都是裸奔上线的,出现这种情况我认为一般分为内因和外因:
-
内因是开源的基础中间件性能指标通常很多,不容易抽象,因此这些服务的性能指标数据通常可以通过内部的api或cli来获取,不太容易直接和开源的监控系统进行集成;
-
外因是对于初创企业来说,人力有限并且对于众多开源组件的理解不够深入导致前面说的"裸奔"上线的现象。
不过随着以Kubernetes
,Prometheus
为代表的CloudNative理念不断发展,越来越多的开源中间件也支持了兼容Prometheus Metrics
格式的性能指标,这对于初创企业的技术团队来说可谓是一个福音。
截止目前,我们所熟知的很多开源软件已经内置了兼容Prometheus Metrics
的API接口,不再需要第三方的exporter
来导出一些性能指标数据。
[内置Metrics接口的开源软件](https://prometheus.io/docs/instrumenting/exporters/#software-exposing-prometheus-metrics)