博客/社区

如何FourthDown NFL比赛详情API措施其性能与普罗米修斯,Jaeger, Grafana云

2021年2月5日 3分钟

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是设计时考虑到可观察性,利用强大的功能普罗米修斯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文档


在这一页上
滚动的更多