Grafana Labs 近日开源了两个新项目,分别是用于大规模持续性能分析 (Continuous Profiling) 的开源数据库 Phlare,以及用于前端应用可观测性的 Faro。
Grafana Phlare
Grafana Phlare 是一个用于聚合持续分析 (Continuous Profiling) 数据的开源项目,它可以和 Grafana 完全集成,允许你与其他可观察信号相关联。
Grafana Labs 介绍道,Profiling 可用于分析程序的资源使用情况,进而帮助开发者优化程序的性能和成本。但当下主流的分布式云原生架构让 Profiling 这件事变得更加复杂,从而产生了对持续分析 (Continuous Profiling) 的需求,其中有关资源使用情况的信息会在整个计算基础设施中定期自动收集,然后压缩并存储为时间序列数据,这使开发者能够可视化查看随时间的变化并放大与感兴趣的时间段相匹配的 profile 文件 —— 例如,CPU 在其利用率最高时所花费的时间,或函数调用的频率和持续时间。
Grafana Labs 称"Continuous Profiling"是除 metrics, logs 和 traces 之外的可观测性第四大支柱。
Phlare 使用诸如 Amazon S3、Google Cloud Storage、Azure Blob Storage、OpenStack Swift,以及任何与 S3 兼容的对象存储,因此开发者可以使用较低廉的存储来存放所有历史记录,Phlare 还提供多租户和隔离功能集,可供团队或业务部门运行独立数据库。
Phlare 运行流程
Phlare 架构
(图片来源:https://xie.infoq.cn)
详情查看 Grafana Phlare 发布公告。
Grafana Faro
Grafana Faro 是用于收集有关 Web 应用程序前端运行状况数据的开源函数库,开发者将其提供的 Grafana Faro Web SDK 嵌入到前端应用程序,该程序就会自动开始收集日志、错误和性能指标,然后添加元数据以便找到有用的条目,并将其转发到 Grafana 代理(需启用集成的应用程序代理接收器),然后它可以将这些数据发送到 Prometheus、Grafana Loki 或 Grafana Tempo。
如下图所示:
Faro 运行流程
Grafana Labs 表示,过去开发者可以使用 Grafana 来监控基础设施,并使用 OpenTelemetry 来监控 API,但是前端应用程序缺乏监控解决方案,因此开发者无法掌握终端用户的实际使用状况,现在 Faro 填补了这个空缺。
Faro 还提供了事件 API,可用于捕获用户事件,让开发者能够重建终端用户在应用程序的使用历程,以了解用户与应用程序的交互方式。
详情查看 Grafana Faro 发布公告。