蚂蚁金服轻量级监控分析系统 SOFALookout 服务端开源

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: SOFA Scalable Open Financial Architecture是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。

SOFA Scalable Open Financial Architecture
是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。

SOFALookout 是蚂蚁金服在 SOFAStack 体系内研发开源的一款解决系统的度量和监控问题的轻量级中间件服务。本文给大家介绍下 SOFALookout 服务器端主要提供的特性以及使用方式。

SOFALookout:https://github.com/sofastack/sofa-lookout

| 前言

容器,K8S,微服务,Mesh 以及 Serverless 这些新技术方向正在根本的变革我们运行软件的方式。我们构建的系统更加分布式化,另外由于容器,系统的生命周期更加短,变得易逝。针对这些变化,SOFALookout 希望提供一套轻量级的监控分析解决方案。之前 SOFALookout 已经开源客户端的能力。今天,SOFALookout 服务器端 Metrics 部分的代码终于正式开源啦!本文给大家介绍下 SOFALookout 服务器端的主要特性以及使用方法。

| 什么是 SOFALookout

SOFALookout 是蚂蚁金服开源的一款解决系统的度量和监控问题的轻量级中间件服务。它提供的服务包括:Metrics 的埋点、收集、加工、存储与查询等。该开源项目包括了两个独立部分,分别是客户端与服务器端服务。

SOFALookout 目标是打造一套轻量级 Observability 实时工具平台,帮助用户解决基础设施、应用和服务等的监控和分析的问题。SOFALookout 是一个利用多维度的 Metrics 对目标系统进行度量和监控的项目。SOFALookout(目前已开源部分) 的多维度 Metrics 参考 Metrics2.0 [1] 标准。

SOFALookout [2]:

https://github.com/sofastack/sofa-lookout

SOFALookout 安装文档 [3]:

https://www.sofastack.tech/sofa-lookout/docs/quickstart-metrics-server

image.png

SOFALookout 服务器端的主要特性:

适配社区主要 Metrics 数据源协议写入(比如: Prometheus[4],Metricbeat [5]等);

数据的存储支持扩展,暂时开源版默认支持 Elasticsearch [6],并且透明和自动化了相关运维操作;

遵循 Prometheus 查询 API 的标准以及支持 PromQL [7] ,并进行了适当改进;

自带数据查询的控制台,并支持 Grafana [8] 进行数据可视化;

使用简单,支持单一进程运行整个服务器端模块。

随着 SOFALookout (Metrics)服务器端代码开源,Metrics 数据的处理已经形成闭环。后续我们将会进一步开源 Trace 和 Event 相关的服务能力,敬请期待。

| SOFALookout 项目结构

服务器端代码分别包括两部分:Gateway 模块和 Server 模块。如下图所示(展示了 SOFALookout 源码项目的模块概要结构)

├── boot

├── client

├── gateway

└── server

项目中的 boot 模块作用是方便集成和运行服务端的模块,既可以单独运行 Gateway 和 Server 的服务,也可以借助 SOFAArk 完成(Gateway 和 Server)的 All in One 的合并为单一进程运行。

| SOFALookout 工作机制

下图完整展示了 SOFALookout 如何从 Metrics 数据采集、上报、存储到最终展示的完整流程路径。

image.png

目前 SOFALookout 支持灵活的 Metrics 数据存储选型。但开源版本我们暂时只支持了 Elasticsearch 作为存储的方案(后续可能继续支持 Cassandra,InfluxDB...),其他存储地适配我们希望更多同学能参与共建和支持。优先支持 Elasticsearch 是因为我们考虑到了 ELK 解决方案在业界已经广泛使用,尤其是日志数据。

为了开箱即用,同时考虑到不熟悉 Elasticsearch 的同学的使用,SOFALookout已经内置了关于 mMetrics 数据存储的自动化运维工具,可以免除大家自己建 Index,和日常维护 ES Index 的麻烦,更多细节后续单独讲解。

| 本次新增开源模块

一、SOFALookout Gateway 模块

SOFALookout Gateway 轻量的数据管道,它提供丰富的协议接入支持,包括自有SDK(SOFALookout Client)上报协议,还支持 Prometheus 的数据协议(推模式和拉模式),Metricbeat 协议(版本是6),OpenTSDB [9] 写入协议。每种数据来源对应于一个 Importer 的概念。

SOFALookout Gateway 对于远程(推模式)上报提供本地硬盘缓冲的支持。Gateway 总体设计是围绕数据加工的Pipeline 形式,包括前置后置的数据过滤器方便进行开发者数据加工。 另外 Gateway 可以支持自定义 Exporter,默认提供了 Elasticsearch Exporter,Standard Exporter(用于 Gateway 间数据中继),开发者也可以自定义其他存储的 或 Kafka 等各式各样 Exporter。

二、 SOFALookout Server 模块

SOFALookout Server 兼容和增强了 Prometheus 的数据及元数据查询的 RESTful API。同样对应 PromQL 我们也基本实现了兼容和增强(不包括 Alert 相关语法),SOFALookout 的 promQL 相关解析逻辑是从 Prometheus 移植而来,做了一些优化和改进, 感谢 Prometheus 开源了如此易用和强大的 golang 版本的 QL 实现。

为了方便方便开发者做数据探索和试验,我们也提供了自有 Web-UI 的支持,能够满足基本功能使用。

image.png

我们还是推荐大家使用 Grafana 进行数据展示。Grafana 集成 SOFALookout 很简单,只需要选择 Prometheus 作为数据源协议即可(SOFALookout默认查询端口也是: 9090)。下图展示 Grafana 新增数据源配置:

image.png

image.png

| 近期计划

下图是近期的 Roadmap:

image.png

非常欢迎更多同学参与 SOFALookout 共建,尤其是支持更多的 Metrics 存储库。

| 文中涉及的相关链接

[1] Metrics2.0:

http://metrics20.org/

[2] SOFALookout:

https://github.com/sofastack/sofa-lookout

[3] SOFALookout 安装文档:

https://www.sofastack.tech/sofa-lookout/docs/quickstart-metrics-server

[4] Prometheus:

https://prometheus.io

[5] Metricbeat:

https://www.elastic.co/guide/en/beats/metricbeat/6.4/index.html

[6] Elasticsearch:

https://www.elastic.co/cn/products/elasticsearch

[7] PromQL:

https://prometheus.io/docs/prometheus/latest/querying/basics/

[8] Grafana:

https://grafana.com/

[9] OpenTSDB:

http://opentsdb.net/

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
JSON NoSQL Redis
聊一聊分布式会话的解决方案
分布式会话的解决方案
185 0
聊一聊分布式会话的解决方案
|
4月前
|
监控 C++ 运维
开发与运维数据问题之实现商业版和开源版在发送可观测数据方面的差异如何解决
开发与运维数据问题之实现商业版和开源版在发送可观测数据方面的差异如何解决
58 1
|
消息中间件 监控 数据处理
消息队列和应用工具产品体系-APM 系统简述和架构演化
消息队列和应用工具产品体系-APM 系统简述和架构演化
|
消息中间件 存储 缓存
【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析
【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析
205 8
【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析
|
机器学习/深度学习 人工智能 开发者
阿里云PAI发布基于HLO的全自动分布式系统 TePDist,并宣布开源!
阿里云PAI发布基于HLO的全自动分布式系统 TePDist,并宣布开源!
|
存储 JSON 算法
【分布式技术专题】「架构实践于案例分析」盘点分布式服务的(无状态\有状态)认证实现方案
【分布式技术专题】「架构实践于案例分析」盘点分布式服务的(无状态\有状态)认证实现方案
325 0
【分布式技术专题】「架构实践于案例分析」盘点分布式服务的(无状态\有状态)认证实现方案
|
Prometheus 监控 Cloud Native
【分布式技术专题】「架构实践于案例分析」盘点一下分布式模式下的服务治理和监控优化方案
【分布式技术专题】「架构实践于案例分析」盘点一下分布式模式下的服务治理和监控优化方案
253 0
【分布式技术专题】「架构实践于案例分析」盘点一下分布式模式下的服务治理和监控优化方案
|
Kubernetes Cloud Native JavaScript
【Quarkus技术系列】「云原生架构体系」配置参考指南相关的功能机制配置介绍分析
【Quarkus技术系列】「云原生架构体系」配置参考指南相关的功能机制配置介绍分析
478 0
【Quarkus技术系列】「云原生架构体系」配置参考指南相关的功能机制配置介绍分析
|
存储 Cloud Native 架构师
专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】(下)
专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】(下)
专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】(下)
下一篇
无影云桌面