简介:流畅说利用日志服务 SLS 构建对立可察看性平台最佳实际
在线教育行业现状
随着 90 年代互联网的引入,在线教育产品也依靠于互联网诞生。随着互联网技术的倒退,在线教育产品也开 始了呈现新的模式。在线教育从最后单纯的文字模式,开始往图片、音频方面开始倒退。教育在线化也进一步促成了数据化的倒退,内容作为教育企业的外围资产,无论是数据化水平还是数据化规模都在一直晋升。同时用户应用时长的晋升,又为教育 AI 提供了大量源数据。据统计往年 3 月份在线教育用户日均在线 时长,超过 200 万天。如此海量的数据为行业的智能化倒退提供了良好的土壤,推动了教学内容、课程营销、师资 治理、品质评估等智能剖析的倒退。
流畅说公司介绍
流畅说是世界领先的科技驱动的教育公司,作为智能教育的倡行者,流畅说领有一支业内当先的人工智能团队,通过多年积攒,流畅说已领有巨型的“中国人英语语音数据库”,累积实现记录大概 37 亿分钟的对话和 504 亿句录音。
2013 年流畅说推出了第一款产品“英语流畅说”,集成了语音辨认、打分和自适应学习等多种核心技术。具备上下文情景对话、发音领导课程等丰盛内容,并提供人工智能英语老师和游戏化的学习体验,为用户在英语学习中取得更多乐趣。这款乏味又无效的产品很快就霸占了过后的市场并取得了用户的高度认可。
但业务疾速倒退,用户数大幅度增长,平台的用户数量已从当初的百万级,增长至过亿,因而业务的高下峰期数据流量变动、业务复杂度和剖析难度都给给 IT 架构带来了微小的挑战。
流畅说对立监控平台的相干挑战
作为一个没有独自运维部门的公司,根底平台的对立监控平台次要由 cloud-infra 团队的研发来实现,而团队的外围诉求也不仅仅是 SLA、性能的监控、告警和提供问题定位的相干数据,还包含 cloud-infra 的技术价值经营,例如利用率、老本节约、业务关系网络等。在这些外围诉求下,对于对立监控平台会具高的要求:
1. 采集、监控各种异构数据源,包含 K8s、ECS 上的机器指标、利用率、Istio 相干的调用日志、自建中间件相干指标、云服务提供的指标、业务的 Trace 数据等,此外还要包含各类老本数据的实时采集。
2. 各类资源的动静发现与动静采集,包含组织关系等部门相干的数据也须要实时更新,以便可能实时反馈出最精确的相干指标和归属关系。
3. 大规模的数据存储与剖析,因为流畅说的业务规模大,应用的各类云资源以及业务产生的数据量十分微小,每天在数十 TB,计划须要满足在此规模上的实时剖析和展示的能力。
4. 监控平台负责的是稳定性问题,自身的稳定性也须要做好,因而须要打消各个局部的单点问题,并且具备异样疾速复原的能力。
技术选型
对立监控平台不仅仅是时序相干的数据,其中十分外围的业务可用性数据须要通过各类日志进行计算和剖析,因而整体上须要抉择 Logs 和 Metrics 两种数据计划。对于这两类数据都别离有不同的社区计划或商业计划,例如 ES、Loki、SLS、Prometheus、OpenTSDB、InfluxDB 等。最终日志计划抉择了阿里云 SLS,时序计划抉择了 Prometheus+SLS,次要的起因如下:
1.SLS 具备各类数据对立存储、剖析的能力,可能在 SLS 下来关联到 Metrics、Logs 数据,这是其余平台所不具备的
2.SLS 平台可能适应十分大的数据规模,相比 ES 来说性能要好很多,也是免运维的服务,省去了本人保护 ES 高牢靠的问题
3. 时序计划以 Prometheus 为主,Prometheus 的生态十分欠缺,而且 PromQL 应用起来也简介。SLS 的时序库能够作为 Prometheus 的远端高牢靠存储,可能解决 Prometheus 的可靠性问题
4.SLS 的计划中有数据加工的性能,能够和内部的数据源去做 Join 剖析和加工,可能更好的来解决各种简单的日志,把日志加上 catalog 相干的信息
整体架构
以后流畅说对立监控平台的架构如上图所示:
1. 为了可能实现自动化,咱们开发了一套实用于云上场景的 IaaS、PaaS 资源动静发现的机制,可能实时将新购买、创立的资源退出到监控、采集中,防止大部分的人工操作
2. 日志相干:
•不同业务的日志间接通过 SLS 的 Logtail 采集到不同的日志库中
•并不是所有的日志都须要长时间存储和索引,因而咱们对于日志进行归类,对于其中须要有审计需要的,会投递到 OSS 上做长期存储;业务排查问题的日志只保留 2 周,并开启全文索引;AccessLog 只开启局部字段的索引,能够节俭很多的索引费用。
•对于须要计算 SLA、PXX 指标的 NGINX 拜访日志,会应用数据加工,配合曾经在 RDS 中存储的一些映射规定、部门、利用等 Catalog 信息,将 NGINX 拜访日志中的 URL 映射成对应的部门、利用、办法等。
3. 监控相干
•监控计划抉择了 Prometheus,针对于流畅说的场景,咱们开发了一些 Exporter 用于从各类云上产品、自建组件中获取 Metrics
•同时为了更好的应用 Prometheus,和外部的 CICD 系统集成,咱们在 Prometheus 上减少了一个 Sidecar,监听 Git 仓库的变更,并依据变更动静的 Reload Prometheus 配置
•Prometheus 上为了进步查问速度,配置了各类 Recording Rule,这些都对立应用 Git 治理
•AlertManager 的告警间接对接外部的告警核心,能够做排版、降级等高级性能
•为了解决 Prometheus 单点的问题以及前面和 Catalog 进行关联剖析的问题,咱们应用 SLS 的时序库,间接让 Prometheus Remote Write 到 SLS 的时序库中
4. 指标计算
•外围指标的计算一部分来源于 NGINX 的 AccessLog,从入口就能够拿到各个业务的 QPS、错误率、Latency(均匀、PXX 等),对于业务没有任何的侵入性
•资源利用率、中间件、基础设施等指标来源于 Prometheus 写入的时序库,基于 Catalog 能够聚合计算出每个部门、业务的相干指标
•计算实现后的指标信息,因为数据量十分小,能够很容易的存储在 MySQL、ES 中,并且投递一份到 OSS 上备份
相干成绩
目前这套监控平台简直承载了公司所有的外围监控,在上线后始终稳固运行,并且在各类流动期间也可能十分轻松的应答数据量的突增。整体的业务价值次要体现在:
1. 监控:监控的第一价值是做各类的监控和告警,尤其是 SLA 相干,因为将数据曾经关联到了具体的部门和业务利用,能够很容易的失去每个部门、利用的 SLA,并进行公司范畴内对立的推动和改良
2. 问题排查与故障隔离:基于 Istio 的拜访日志,配合 Catalog 信息,能够计算出每个利用的调用关系,因而能够实时的生成业务关系网格,并可能晓得每个关系(边)的品质状况。理解到业务的关系后,在呈现问题的时候也能够疾速的定位本源和故障隔离
3.FinOps:在 Cloud Infra 部门,被挑战最多的就是开销问题。因而老本优化也是咱们的一个外围工作,次要的做法是:计算每个部门、团队的资源利用率,包含均匀利用率以及各类 PXX 的利用率(入下表格所示),以此可能判断每个部门的资源应用状况,推动各部门优化老本。
流畅说对立监控背地的技术
流畅说对立监控基于阿里云 SLS 进行构建,SLS 定位为云原生观测剖析平台,为 Log/Metric/Trace 等数据提供大规模、低成本、实时平台化服务。一站式提供数据采集、加工、剖析、告警可视化与投递性能,全面晋升研发、运维、经营和平安等场景数字化能力。其中对立监控应用到了多种 SLS 的外围性能,次要包含:
全方位日志采集
SLS 反对 Log/Metric/Trace 对立采集,反对服务器 /Kubernetes/ 利用 / 挪动设施 / 网页 /IoT 等数据源接入,反对阿里云产品 / 开源零碎 / 云间 / 云下日志数据接入,外围特点有:
1. 便捷:40+ 成熟接入计划,多客户端对立采集,反对内网、公网、寰球减速传输等多种传输方式
2. 牢靠:阿里经济体自用基础设施,历经屡次双十一,春晚流动考验。反对断点续传,可依据业务流量实现弹性伸缩
3. 凋谢:多协定(HTTP/Syslog/Prometheus/OpenTelemetry)无缝接入,残缺对接开源生态
Prometheus 时序计划
SLS 时序存储从设计之初就是为了解决阿里外部与泛滥头部企业客户的时序存储需要,并借助于阿里外部多年的技术积攒,使之能够适应绝大部分企业级时序监控 / 剖析诉求。SLS 时序存储的特点次要有:
1. 丰盛上下游:数据接入上 SLS 反对泛滥采集形式,包含各类开源 Agent 以及阿里云外部的监控数据通道;同时存储的时序数据反对对接各类的流计算、离线计算引擎,数据齐全凋谢
2. 高性能:SLS 存储计算拆散架构充分发挥集群能力,尤其在大量数据下端对端的速度晋升显著
3. 免运维:SLS 的时序存储齐全是服务化,无需用户本人去运维实例,而且所有数据都是 3 正本高牢靠存储,不必放心数据的可靠性问题
4. 开源敌对:SLS 的时序存储原生反对 Prometheus 的写入和查问,并反对 SQL92 的分析方法,能够原生对接 Grafana 等可视化计划
5. 智能:SLS 提供了各种 AIOps 算法,例如多周期估算、预测、异样检测、时序分类等各类时序算法,能够基于这些算法疾速构建适应于公司业务的智能报警、诊断平台
实时数据分析
查问剖析提供关键词、SQL92、AIOps 函数等多种形式,反对面向文本 + 结构化数据实时查问剖析,异样巡检与智能剖析。次要特点如下:
1. 高性能:秒级剖析十亿级数据,且残缺反对 SQL、PromQL 等剖析接口,HTTP、Kafka、JDBC、Prometheus 等协定
2. 稳固牢靠:企业级设计,多租户隔离,PB 级容量设计,数万企业用户抉择
3. 智能:通过阿里经济体实际的 AIOps 能力,反对智能异样巡检与根因剖析数据加工
数据加工通过灵便语法,在不编写代码状况下反对各种简单数据提取、解析、富化、散发等需要,反对结构化分析。数据加工的次要特点如下:
1. 灵便:提供丰盛算子、开箱即用的场景化 UDF(Syslog、非标准 json、AccessLog UA/URI/IP 解析等)。可扩大语法应答各种简单格局
2. 免运维:全托管云上服务,毋庸投入额定运维资源。反对主动依据流量弹性伸缩
3. 可扩大:反对多层嵌套、分流等逻辑,反对简单的数据分派与编排需要
在云原生时代,数字化正在各行业推动业务翻新。只有晋升用户体验、减速翻新、更新基础设施与架构、利用好多样化的数据,能力在整体大环境中怀才不遇。阿里云推出的智能运维平台,不仅仅是要帮忙工程师缩小工作量,更多的是心愿让运维工程师们从各种机械化的工作中解脱。咱们将会包揽所有的“脏活累活”,让故障的工夫大幅放大,让运维人将更多创造力,放在数字翻新以及企业业务翻新上,为企业提供提供更优的竞争力。
原文链接
本文为阿里云原创内容,未经容许不得转载。