Pratik Thanki是一个软件工程师Trayport、开发工具和专用能源交易市场的特性。在这个博客中,他深入了解他对足球的热情通过他的橄榄球比赛详情API,FourthDown,展示了如何Grafana云是他的可观测性的核心堆栈。
关于FourthDown
FourthDown是一个API,它允许data-obsessed橄榄球球迷访问各种各样的信息,从计划和团队细节详细报道的游戏数据和球员的训练结合起来。
开发这个API的动机是为访问实况报道的数据创建一个语言无关的工具,作为现有的工具/ Python / R库迎合用户。(从开源API利用数据R包,nflfastr)。FourthDown API,它是围绕HTTP REST协议,有可预测的面向资源的url,返回json编码的响应,并使用标准的HTTP响应代码和动词。
大多数端点都共享相同的一组基本查询参数:GameId,季节,团队和星期。这个API是OpenAPI记录格式和几个供应商支持的扩展。
的背面宣布一个新的免费的计划今年早些时候,我很兴奋Grafana云监控FourthDown。
太激动了监视我的橄榄球比赛详情api !https://t.co/Y1jDBHs5WZ
——Pratik Thanki (@pratik_thanki)2021年1月16日
API是设计时考虑到可观察性,利用强大的功能普罗米修斯和Jaeger。我的经验,这些工具帮助我把它们更快收集监测数据。
从技术角度来看,API是设计和建造ASP。网络核心并利用存储库模式。API的总体体系结构描述如下。
Pratik(左)和他的兄弟队在球场的NFL伦敦奥运会(亚利桑那红雀队@洛杉矶公羊队)。
可观测性原则
应用程序的可观察性设计理念与三个关键组件:
日志记录:信息系统中的事件,可以抛出内存不足异常的不同实例,应用程序在启动时配置不反映预期的值。用于获得一个完整的系统中发生的理解。
跟踪:信息端到端系统接收到的请求。跟踪类似于跨多个应用程序堆栈跟踪。痕迹是一个很好的起点识别潜在的应用程序的性能瓶颈,如异步web请求,序列化或数据处理。
指标:实时信息系统是如何运行的。kpi可以定义建立警报,允许在性能下降的情况下积极的步骤。日志和跟踪相比,使用度量收集的数据量保持不变的系统负载的增加。实现应用程序问题通过指标超过某个阈值时报警。例子包括CPU使用量比以前更高,增加5 xx请求或平均响应时间。
发现
我们与监视功能上线后,很明显,API性能最优。这是与Jaeger容易发现。下面是一个示例跟踪同步HTTP web请求:
很快发现这个瓶颈,直接影响最终用户的性能是一个重大胜利。在这种情况下,如何提高多个HTTP web请求被发送了5倍提高响应时间。我们得到以下跟踪与这种变化:
Grafana-Jaeger集成视图:
监控API的状态:
结论
开始使用Grafana云启发了我,来进一步研究其他方面的监控,和我现在欣赏开源生态系统可观测性——普罗米修斯,Jaeger Grafana,更不用说其他框架和库我对这个项目没有使用。
接下来,我想扩大使用Grafana云Prometheus-based提醒走向主动监视并整合应用程序日志洛基。
如果你使用FourthDown API感兴趣,开始使用任何语言是超级简单。你可以用代码片段,看看这篇文章FourthDown API样品,或者是FourthDown API文档。