简介
TickStats 是孵化自 @idoknow 的一个开源(即将)项目,当前主要由我全程参与设计和功能开发。它旨在提供一个轻量化、易用的指标收集与指标可视化的一体化解决方案。相比于 prometheus
、grafana
这些服务,TickStats 更加轻量化,能够做到开箱即用,适用于中小型项目等场景。
Demo: https://tickstats.soulter.top
Soulter’s TickStats Stat: https://tickstats.soulter.top/app/66049a53
缘起
可观测性对于开发者来说非常重要。开发者需要知道项目的运行状态、性能指标、用户使用数据等信息,以便及时发现问题并进行优化。一般来说,首选的解决方案是使用 prometheus
作为指标收集工具,grafana
作为指标可视化工具。但是,这两个工具的配置和使用都比较复杂,对于一些小型项目来说,可能会显得有些“大材小用”,并且这些服务的运行也会产生服务器开销。
此外,我们注意到很多的项目都开发了自己的指标收集系统,这些系统的功能都是类似的,但是都是独立开发的,没有统一的标准。这样就导致了很多的重复劳动,而且这些系统的功能也比较简单,没有很好的可视化功能。
基于上述问题,我们希望设计出一套系统来加以解决。
TickStats 只暴露了一个数据上报接口,只需要 POST 一个简单的 Json 数据:
1 | { |
即可完成指标收集。无论是 Event-based 还是 Time-based 的指标,都可以通过这个接口上报。
然后在数据面板添加对应的图表,并绑定 KeyName
,即可完成指标可视化。
开发中
目前该项目已经完成第一阶段的开发,已经处于能用的状态了。团队正在着手第二阶段开发和内部稳定性测试,Todo List 如下:
- WebHook: 可自定义的 Hook,如异常指标报警、Weekly Report,可与 Mail、OneBot、HTTP 协议对接。
- 更多的图表和数据分析类型:包括但不限于雷达图、柱状图、Gauge 等,以 cover 到更多的场景。
- 指标模板: 提供一些常用的指标模板,方便用户一键生成。
- Embed Chart: 可以将图表嵌入到其他网页中。
- Application Description: 为每个 Application 添加描述,方便管理。
此外,第三阶段的开发计划如下:
- SDK 支持:提供 SDK,方便用户在各种语言中使用 TickStats。
- Paid Plan: 提供更多的服务,如更长的数据预览、更粒度化的 Data Point、更多 Application 等。
- 特化网站分析能力:提供网站分析的能力,如用户访问量、用户地理位置、用户设备等。【讨论中】
- 插件: [特化网站分析能力] 的一个超集。提供插件机制,用户可以自定义插件,实现更多的功能。【讨论中】