LightStep调研-阿里云开发者社区

开发者社区> 阿里云存储服务> 正文
登录阅读全文

LightStep调研

简介: 公司由前Google工程师Ben Sigelman于2015年成立(创始人曾经是Dapper的开发者,专注于分布式链路追踪),LightStep的使命是削减软件的规模和复杂性,帮助公司能够持续保持对其系统的控制。第一个产品LightStep [x]PM能够在任何时间点提供整个软件系统准确、详细的快照,基于快照能够快速识别问题、瓶颈并解决。

公司背景

公司由前Google工程师Ben Sigelman于2015年成立(创始人曾经是Dapper的开发者,专注于分布式链路追踪),LightStep的使命是削减软件的规模和复杂性,帮助公司能够持续保持对其系统的控制。第一个产品LightStep [x]PM能够在任何时间点提供整个软件系统准确、详细的快照,基于快照能够快速识别问题、瓶颈并解决。


  • 估值:最新一次是2018.10,估值在1-5亿美元之间
  • 规模:100-200人左右
  • 营收:客户数 1.1万,每年营收1600万美元

里程碑

  • 2015 公司成立
  • 2017.11 发布 LoghtStep [x]PM产品
  • 2018 公司至少募集了 27M$
  • 2018.9 入选Gartner创新性五大APM工具
  • 2018.9 《福布斯》将LightStep列为年度云计算100强新星
  • 2018.10 募集 40M$,估值 $100M - $500M 之间
  • 2019.4 被评为旧金山最佳工作企业之一
  • 2019.9 OpenTelemetry为可观察性指明发展方向
  • 2020.1 提供了一种可以使开发人员快速识别部署前后的性能回归方案
  • 2020.6 提出了仅需3次Click即可定位问题根因的方案
  • 2020.9 提供了基于OpenTelemetry的一行代码接入方案

核心理念

由于是一家非常新的公司(2015年成立),所以公司最开始面对的大环境就是微服务、容器化、SaaS,因此这也深刻影响了LightStep的定位与公司宗旨,主要的一些理念如下:

  1. 公司的软件系统架构会逐渐复杂,微服务、容器是未来的发展方向
  2. IT人员不应该专注于基础的Metrics,而应该有一个更强大的软件/服务来帮他们解决复杂系统分析的问题
  3. 不采样,支持全时间100%的链路追踪
  4. 灵活,支持任意维度GroupBy
  5. 实时性,能够实时显示结果,缩短问题定位时间
  6. 遵循OpenTracing、OpenTelemetry标准来提供服务

和传统的APM厂商不同,LightStep不是把所有的数据都直接暴露给用户,而引擎本身就做了很多数据分析和问题定位的工作,把复杂的算法包装成简单的操作,让用户能够非常快的去定位问题(后面将详细展开)。

产品形态与售卖方式

  • 类型:纯SaaS化服务,
  • 免费版:终身免费版,每个月100GB数据,3用户
  • 高级版:每月每个服务100$,5个用户,不限制数据量
  • 企业版:单独报价(不确定是否支持线下部署),无任何限制,有专业的客户经理支持

核心功能剖析

image.png


数据接入

目前LightStep支持主流语言的Trace接入,并且一些库(Java、NodeJS等)中还带有一些Metric的接入方式。当前绝大部分语言都逐渐迁移到OpenTelemetry标准上,可预见后期所有的接入方式都是OT标准。官方推荐使用的是自动埋点,这也是当前各家推荐的主流方式。

语言

支持自动埋点

标准化

接入复杂度

侵入性

Java

支持

OpenTelemetry

Jar包

NodeJS

支持

OpenTelemetry

代码

Ruby

支持

DataDog

代码

Golang

OpenTelemetry

代码

Python

支持

OpenTelemetry

代码

C#

OpenTelemetry

代码

C++

OpenTracing

代码

Swift

OpenTelemetry

代码

Php

OpenTelemetry

代码


三方数据兼容

目前LightStep除支持OpenTelemetry协议外,还支持Jaeger、Zipikin、DataDog数据接入方式,秉承LightStep用户简单化的理念,他们是尽可能直接提供支持这些协议写入的Endpoint,而不是通过Agent进行格式转换。


实现方式:

  • HTTP/HTTPS:提供 ingest.lightstep.com 域名用来接入这些数据,不需要额外的URLPath
  • GRPC:对于OpenTelemetry的支持直接写入到LightStep,Jaeger需要自己部署Satellites


问题排查

和传统的APM产品不同,LightStep第一个步骤是接入数据,第二步便是教你该如何查看服务的健康度,然后就是各种类型的问题排查(其他很多传统的公司可能把产品的功能使用花很大的篇幅来介绍,问题排查的经验可能就放在最佳实践里面)。通过问题排查把各项功能的作用讲解给用户,代入感更强。

延迟回归分析

  1. 发现某个Service延迟升高,点击延迟升高时间段的Metric图,选择和未升高的时间进行对比
  2. 查看基础的Metric指标,看基础指标是否有变化
  3. 查看Latency的分布,看是否是因为部分引起
  4. 按照Attribute进行关联性分析,查看是否是因为部分Attribute引起
  5. 排查下游调用延迟贡献度
  6. 搜索/查看Trace附加的日志信息
  7. 使用Trace分析功能直接进行回归分析
  8. 过滤出问题的Trace

排查错误率升高

  1. 发现某个Service错误率升高,点击错误率升高时间段的Metric图,选择和未升高的时间进行对比
  2. 查看基础的Metric指标,看基础指标是否有变化
  3. 通过error=true来过滤出想要的Trace,然后进行Dependency绘制,找到错误传播路径
  4. 对服务的错误率进行回归分析,找到贡献率最大的服务
  5. 对该服务进行Attribute关联分析,找到服务内贡献度最大的Attribute组合
  6. 搜索/查看Trace附加的日志信息
  7. 使用Trace分析功能直接进行回归分析
  8. 过滤出问题的Trace

部署回归分析

这个场景主要针对的是最常见的版本发布,对于A/B两个版本进行对比分析,LightStep从产品本身就支持了版本号的概念,支持按照版本号来对比性能、错误率等,操作起来也十分方便:

  1. 直接在Service详情页选择一个版本,然后再Operation的Metric列表中可以看到具体是什么时候这个版本发布。
  2. Metric列表会显示当前选中版本和其他版本的延迟、qps、错误率对比(和之前的图是一样的,也就是说一张图在两个模式下会有两种不同的表现方式)

image.png

此外LightStep还支持和其他任一版本进行对比,这里有一点比较有意思的是,LightStep支持time-shifted的方式,也就是说会把历史的一个版本平移过来显示在一张图上,方便进行比对。

image.png


查找关联性(模式分析)

LightStep提供了内置的关联性分析功能,可以快速的找到引起延迟、错误率上升的最大关联系组合。其本质上也是分析Trace的各个属性对当前问题的影响,和SLS的模式分析函数比较类型。但其产品功能的设计上非常的友好,使用起来非常便捷。

  1. 可以直接选择一个时间段或者对于指定的条件结果进行关联性分析
  2. 支持对于Attribute内部的子字段进行分析
  3. 关联性分析会直接告诉你哪些属性的组合造成了延迟上升、错误率提高
  4. 关联出来的数据还支持进行Filter和GroupBy可以快速的进行点击来筛选对应的数据



image.png

image.png

亮点分析

理念

  1. 瞄准未来微服务、云原生的场景,直接从分析/定位问题出手,而不是提供一堆基础工具让用户来做
  2. 一开始就提供的SaaS话服务,对于后续的估值提升会有很大的帮助。
  3. 紧跟开源标准,OpenTracing、OpenTelemetry,应该是我当前遇到第一家把OpenTelemetry推荐给用户生产使用的公司。

引导页

引导页做的非常好,无需登录,无需Moc数据,直接从四个场景让你来使用LightStep的功能,对于获客帮助非常大。需要我们好好学习!

Satellite

Satellite其实也就是相当于扮演了Collector、Logtail的角色,但是LightStep还支持公共的Satellite集群(免费,不保证SLA),用户第一次接入数据可以直接使用一个免费的endpoint,不需要额外再部署Agent集群(但最后上生产的时候还是要部署),进一步降低了用户第一次接入的成本。

回归分析

回归分析有一个专门的页面,能够支持两个时间相关数据的对比分析,包括Metrics/Traces/Logs,能够在一个页面查看到服务的所有相关信息。

image.png

关联性分析

关联性分析对于问题排查十分有用,和Trace这种标准Schema的数据结合意义重大,还是有很大的潜力可以挖。

Stream Dashboard

Dashboard的配置非常简单,只需要有一个条件能够过滤出一组Traces即可,LightStep就会创建出下述这一个Dashboard。

  • 其中上部分是一个多Y轴的图表,Y轴能同时展示延迟(PXX)、错误率、QPS,而且还能把一些关键的Trace以小点的形式展示在图中,信息量非常的大。
  • 下半部分是Trace Explorer中的图标功能,支持过滤、GroupBy,用来自定义分析上述这些Trace。

image.png

总结

LightStep整体的创新性满满,功能使用起来很酷很赞,算是可观察性领域创新性公司的领导者之一。无论是从产品定位、文档、功能等都独具一格,对于Trace场景应该是非常好的参考者。

虽说有那么多的创新点,但LightStep还是有一些美中不足:

  1. 基础的监控信息获取不到,Metrics领域的能力基本没有
  2. Logs的能力也非常弱,只能支持Trace附带的Logs的查询
  3. 很多图表没有针对性的对大数据量做一些优化
  4. 不支持一些自定义的分析统计功能
  5. 数据想要导出很麻烦,基本上只有一些Query的接口
  6. 没有立体化的问题排查能力,只能纯粹的看Trace,没办法关联CMDB、基础监控、PaaS监控等



参考

  1. https://lightstep.com
  2. https://app.lightstep.com/play/service-directory/android/deployments
  3. https://docs.lightstep.com/docs/welcome-to-lightstep
  4. https://lightstep.com/about/newsroom/
  5. https://www.globenewswire.com/news-release/2018/12/05/1662638/0/en/LightStep-Raises-41-Million-to-Accelerate-Market-Expansion-for-Microservices-and-Serverless-APM.html
  6. https://growjo.com/company/LightStep
  7. https://www.glassdoor.com/Overview/Working-at-LightStep-EI_IE2087881.11,20.htm
  8. https://www.sequoiacap.com/article/lightstep-and-future-of-application-management/
  9. https://pitchbook.com/profiles/company/161563-60

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云存储基于飞天盘古2.0分布式存储系统,产品多种多样,充分满足用户数据存储和迁移上云需求。

官方博客
链接