SOFAStack Scalable Open Financial Architecture Stack 是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。html
SOFALookout 是蚂蚁金服在 SOFAStack 体系内研发开源的一款解决系统的度量和监控问题的轻量级中间件服务。本文给你们介绍下 SOFALookout 服务器端主要提供的特性以及使用方式。 SOFALookout:https://gitee.com/sofastack/sofa-lookoutgit
容器,K8S,微服务,Mesh 以及 Serverless 这些新技术方向正在根本的变革咱们运行软件的方式。咱们构建的系统更加分布式化,另外因为容器,系统的生命周期更加短,变得易逝。针对这些变化,SOFALookout 但愿提供一套轻量级解决方案。以前 SOFALookout 已经开源客户端的能力。今天,SOFALookout 服务器端 Metrics 部分的代码终于正式开源啦!本文给你们介绍下 SOFALookout 服务器端的主要特性以及使用方法。github
SOFALookout 是蚂蚁金服开源的一款解决系统的度量和监控问题的轻量级中间件服务。它提供的服务包括:Metrics 的埋点、收集、加工、存储与查询等。该开源项目包括了两个独立部分,分别是客户端与服务器端服务。golang
SOFALookout 目标是打造一套轻量级 Observability 实时工具平台,帮助用户解决基础设施、应用和服务等的监控和分析的问题。SOFALookout(目前已开源部分) 是一个利用多维度的 metrics 对目标系统进行度量和监控的项目。SOFALookout 的多维度 metrics 参考 Metrics2.0 标准。服务器
SOFALookout :https://github.com/sofastack/sofa-lookout架构
SOFALookout 安装文档:https://www.sofastack.tech/sofa-lookout/docs/quickstart-metrics-serverless
SOFALookout 服务器端的主要特性:运维
随着 SOFALookout (metrics)服务器端代码开源,metrics 数据的处理已经造成闭环。后续咱们将会进一步开源 Trace 和 Event 相关的服务能力,敬请期待。elasticsearch
服务器端代码分别包括两部分:Gateway 模块和 Server 模块。以下图所示(展现了 SOFALookout 源码项目的模块概要结构)分布式
├── boot ├── client ├── gateway └── server
项目中的 boot 模块做用是方便集成和运行服务端的模块,既能够单独运行 Gateway 和 Server 的服务,也能够借助 SOFAArk 完成(Gateway 和 Server)的 All in One 的合并为单一进程运行。
下图完整展现了 SOFALookout 如何从 metrics 数据采集、上报、存储到最终展现的完整流程路径。
目前 SOFALookout 支持灵活的 metrics 数据存储选型。但开源版本咱们暂时只支持了 Elasticsearch 做为存储的方案(后续可能继续支持 Cassandra,InfluxDB...),其余存储地适配咱们但愿更多同窗能参与共建和支持。优先支持 Elasticsearch 是由于咱们考虑到了 ELK 解决方案在业界已经普遍使用,尤为是日志数据。
为了开箱即用,同时考虑到不熟悉 Elasticsearch 的同窗的使用,SOFALookout已经内置了关于 metrics 数据存储的自动化运维工具,能够免除你们本身建 Index,和平常维护 ES Index 的麻烦,更多细节后续单独讲解。
SOFALookout Gateway 轻量的数据管道,它提供丰富的协议接入支持,包括自有SDK(SOFALookout Client)上报协议,还支持 Prometheus 的数据协议(推模式和拉模式),Metricbeat 协议(版本是6),OpenTSDB 写入协议。每种数据来源对应于一个 Importer 的概念。
SOFALookout Gateway 对于远程(推模式)上报提供本地硬盘缓冲的支持。Gateway 整体设计是围绕数据加工的Pipeline 形式,包括前置后置的数据过滤器方便进行开发者数据加工。 另外 Gateway 能够支持自定义 Exporter,默认提供了 Elasticsearch Exporter,Standard Exporter(用于 Gateway 间数据中继),开发者也能够自定义其余存储的 或 Kafka 等各式各样 Exporter。
SOFALookout Server 兼容和加强了 Prometheus 的数据及元数据查询的 RESTful API。一样对应 PromQL 咱们也基本实现了兼容和加强(不包括 Alert 相关语法),SOFALookout 的 promQL 相关解析逻辑是从 Prometheus 移植而来,作了一些优化和改进, 感谢 Prometheus 开源了如此易用和强大的 golang 版本的 QL 实现。
为了方便方便开发者作数据探索和试验,咱们也提供了自有 Web-UI 的支持,可以知足基本功能使用。
咱们仍是推荐你们使用 Grafana 进行数据展现。Grafana 集成 SOFALookout 很简单,只须要选择 Prometheus 做为数据源协议便可(SOFALookout默认查询端口也是: 9090)。下图展现 Grafana 新增数据源配置:
下图是近期的 Roadmap:
很是欢迎更多同窗参与 SOFALookout 共建,尤为是支持更多的 Metrics 存储库。