网络研讨会重点:提高临床数据准确性 - 如何使用 Node.js、AWS 和 InfluxDB 精简数据管道
作者:Bria Jones / 产品, 用例
2022 年 8 月 26 日
导航至
鉴于世界在过去几年面临的全球健康危机,对快速但准确的医学试验的需求从未如此重要。临床试验数据验证得越快,药物获得批准的速度就越快,治疗方法就越快普及。Pinnacle 21 的客户是创造拯救生命的治疗方法背后的推动力量。在本次网络研讨会中,DevOps 总监 Josh Gitlin 分享了 Pinnacle 21 如何使用专门构建的时序平台 InfluxDB,以帮助简化数据管道,从而更快、更准确地获得临床试验数据。如果您错过了参加现场会议,我们已分享了录像和幻灯片,供大家随时回顾和观看。
网络研讨会重点
Pinnacle 21 概述
Pinnacle 21 是 Certara 旗下的一家软件公司,专门从事生命科学解决方案。他们的旗舰产品 Pinnacle 21 Enterprise(简称 P21E)被主要的生命科学和制药公司用于验证临床试验数据。在开发医疗疗法、药物和设备时,必须满足 CDISC(临床数据交换标准协会)制定的特定数据标准才能获得批准。Pinnacle 21 的客户使用 P21E 来确保他们的数据在提交审批时看起来是正确的;Josh 提供了他听过的最好的外行解释:“这就像临床试验数据的拼写检查。”
对解决方案的需求
当 Josh 加入 Pinnacle 21 时,Datadog 已被选为监控服务器的首选产品。他觉得它缺少关键功能,例如标记 Y 轴的能力,并且可视化选项有限。此外,它价格昂贵,并且不太适合 Pinnacle 21 的用例。凭借之前使用 Grafana 和 InfluxDB 的经验,Josh 提出了更换 Datadog 的想法。由于 Josh 一直在 CINC(开源版本的 Chef)中编写自动化软件,因此用另一个监控解决方案替换 Datadog 相当容易。
更换要求
- 易于实施
- 能够捕获日志和指标
- 必须是外部托管工具
- 收集和监控 APM 指标
他们需要将数据托管在其他地方,以确保安全并防止篡改,但不希望管理另一个监控解决方案的基础设施。此要求将帮助他们遵守 CDISC 制定的审计和合规性要求。
为什么选择 Grafana、InfluxDB 和 Telegraf?
Josh 最初考虑将 InfluxDB 和 Grafana 作为其 DevOps 监控需求的潜在替代品,因为其成本效益高——即使与另一个供应商配对进行日志分析,它仍然比之前的解决方案便宜得多。通过 InfluxDB 的基于使用量的计划,他们评估了他们选择发送到 Telegraf 的每个指标,以确定哪些指标值得付费。Pinnacle 21 的另一个关键组件是 Telegraf 本身。对于 Josh 和他的团队来说,Telegraf 是一款令人印象深刻且功能强大的数据摄取工具,其开箱即用的插件比他们现有的代理程序更多。
Pinnacle 21 的客户位于 AWS 中他们自己的 EC2 安全组内,每个客户都有两个实例——Web 服务器和应用程序服务器。Telegraf 位于这两个实例上,将指标发布到内部 InfluxDB 实例以及 GCP 托管的 InfluxDB Cloud 实例。Pinnacle 团队为每种类型的服务器创建了基于策略文件的工作流程,该工作流程定义了要运行哪些自动化以及要通过 Telegraf 监控哪些内容。
Pinnacle 21 的安装非常容易,因为 Telegraf 有一个目录,允许他们编写单独的插件配置。当通过 Chef 自动化 Telegraf 安装时,这非常有用,因为他们有基于服务器的不同策略和角色。Josh 和团队选择让每个插件在 Telegraf 目录中编写配置,然后建立一个节点属性列表,列出 Telegraf 应监控的插件。这使他们能够为每台服务器的每个 Telegraf 输入自定义配置。
Josh 的提示:将节点属性构造为哈希而不是数组,因为数组将被深度合并,并且不容易关闭。将节点堆叠为哈希将更好地控制在非常精细的级别上监控的内容。
然后,Josh 在 Chef 中决定了一个初始基本监控集,并发现某些输入很有价值,但不值得付出代价。解决方案是什么?Telegraf 在每个输出插件中都有一个名为“Tag Pass”的过滤选项。该团队配置了具有特定目标标签的输出插件,并排除了某些标签不发布到特定服务器。通过在每个 Telegraf 输入上放置标签,他们可以选择将这些指标发送到哪些 InfluxDB 服务器。这也使团队能够为特定输入收集更高粒度的指标,并微调他们正在收集的内容、收集频率以及发送位置,从而更好地管理成本。
KPI 和 APM
下一个关键行动项是查看其服务器的一些关键绩效指标。由于他们之前使用过 Datadog,因此他们已经以 JSON 格式编写 NGINX 日志,但 Josh 建议解析 NGINX 日志。通过解析日志,Pinnacle 21 的团队能够将其日志转换为指标,并将其存储在 InfluxDB 中。
Pinnacle 21 的客户使用 IBM Aspera 上传大型数据集进行验证;他们已将 Aspera 配置为将日志写入特定路径,Telegraf 可以使用 Tail Telegraf 插件 在该路径中获取日志。这使团队能够生成图表来显示特定的 KPI——平均客户数据集大小、客户数据上传速度、正在进行的上传数量等,这些图表有助于扩展 Pinnacle 21 团队了解数据的影响。
由于 P21E 是一个 Java 应用程序,因此他们需要使用 Java 代理来获取其 APM 指标。该团队选择 InspectIT Ocelot 来收集 JVM 指标,并使用机器上的 Telegraf Listener 本地发布这些指标。这使他们的工程师能够编写代码来捕获单个事件(如函数运行时和其他指标),以监控应用程序的性能并优化软件。
这对于 Pinnacle 21 来说非常重要,因为某些数据集可能需要数小时甚至数天才能验证。例如,考虑 COVID-19 数据集——验证数据所需的时间越长,新疗法获得批准所需的时间就越长。通过让工程师能够快速评估和优化应用程序的性能,最终可以加快验证过程。
HTTP 监控更换
最初,该团队考虑将 Telegraf 作为其 HTTP 监控系统的可能替代品,虽然 Telegraf 可以完成这项工作,但他们最终选择了带有 Node.js 应用程序的 AWS Lambda 实例。Node 是他们正确的解决方案,因为它具有事件驱动的基础架构。Josh 使用 Node.js 客户端 将指标直接发布到 InfluxDB,并触发 AWS CloudWatch 事件,以便每分钟从多个区域执行。他们使用 Grafana 进行警报、创建热图以及可视化来自全球各地的数据,例如响应时间、中断和故障代码。
提示和技巧
Josh 为任何开始使用 InfluxDB 进行监控之旅的人提供了一些有用的提示和技巧。首先,他建议首先评估需求并确定总体目标。由于 Telegraf 非常强大,因此很容易迷失在所有可用的 插件中。Josh 指出,将数据发送到多个 InfluxDB 实例是实现冗余的强大选择,也是一个很好的备份选项,以防某个实例出现问题。接下来,他强调使用使用情况仪表板来衡量您的使用情况和管理成本的重要性。他建议缓慢添加指标以评估其对您的使用情况的影响,尤其是在服务器规模庞大的情况下。最后,他建议使用 Flux,因为它是一种功能强大且功能齐全的语言。
Josh 提到他将查看 InfluxDB 大学以提高他的 Flux 技能,如果您有兴趣了解有关 Flux 或其他 InfluxDB 主题的更多信息,请从此处开始!
问答
问题: 您的组织是否有云优先计划?
回答: 在 Pinnacle 21 部门内部,云优先是非常重要的,我认为这很大程度上是创业心态,创始人需要托管此软件,而 CTO 最不想做的就是管理更多基础设施来维持业务运营。我真的很喜欢云优先,因此我在很大程度上坚持这种方法来处理我们推出的许多东西,例如 InfluxDB 和我们的日志监控解决方案。但我也并不害怕在内部运行东西。有时我认为这样做各有利弊。因此,这取决于团队规模和资源。我们目前正在招聘,因此,随着我们获得更多 DevOps 工程师,我们将有更大的能力来支持内部托管的东西。
问题: 您提到了您希望接下来做的一些事情——关于您使用 InfluxDB 收集的指标,优先级最高的是什么?
回答: 我很想开始用 Flux 查询替换我们拥有的一些 InfluxQL 查询,并改进我们拥有的一些仪表板。我认为我们可以从一些比较信息中受益,在其中我们可以查看比较一个客户或一周又一周的性能。我认为这绝对具有一定的潜力。我想改进 HTTP 监控方面的一些内容。现在它很好,但我认为它可以更好,并且更多地在 Grafana 方面而不是在 InfluxDB 方面。我一直在使用 Grafana OnCall,对此非常满意。我们尚未在生产环境中使用它,但我们正在开发环境中使用它,我想将所有内容都切换到它。它允许您直接从 Slack 中确认警报。它允许您更好地配置停机时间。这是我们现有解决方案面临的挑战之一,如果我们知道我们正在对特定实例进行维护,我们会收到该实例的大量警报,因为很难使这些警报静音或安排停机时间。因此,Grafana OnCall 使之变得更容易,并且仍然可以使用 InfluxQL 或 Flux。
问题: 我们的社区喜欢 Grafana,但您是否看过 InfluxDB 中的可视化工具?
回答: 是的。当我构建新查询时,我会使用 InfluxDB Cloud UI,并在其中编写我的查询,对其进行可视化,确保我拥有我想要的方式。当我查看使用情况仪表板时,我会使用 InfluxDB Cloud UI。我认为其中的一些可视化效果还不够强大,仅仅是因为 Grafana 在 InfluxDB Cloud 上有如此大的领先优势。但这确实是一个很棒的系统。它已经比我在 Datadog 中看到的一些东西更强大了。例如,您拥有不同类型的可视化效果,而不仅仅是折线图。因此,是的,我们在 InfluxDB Cloud UI 本身中确实有一些仪表板。
要了解有关 Pinnacle 21 如何使用 InfluxDB 的更多信息,请单击此处。