博客/社区

实时监控机器人Grafana和其他原生云解决方案bob彩票中奖计划

2022年7月6日 7分钟

埃德加多·佩雷格里诺是一个自由软件开发人员、作家、制造商和技术人员。

六年了,我一直充满激情与关注机器人制造商。最近,我进入原生云计算的世界,这使我能集成制造商项目等开放源码工具Grafana,普罗米修斯,贼鸥。

我拥抱开源自2016年以来,当我买了我的第一个覆盆子π3和学会了如何闪烁LED首次。从那时起,我学会了如何控制机器人使用的项目,如一个键盘,一个Android手机,和一个英特尔神经计算棒2对象检测。我决定添加实时监测与Grafana确保我的机器人运行时刻,请求之间有非常小的滞后。这真的没有任何尝试,所以我认为这是我挑战。

尽管我这样做作为一个爱好,监测尤为重要对于那些正在使用一个工业机器人工作在一个组装工厂,100%正常运行时间和最小的延迟请求之间的目标。也很重要,当你处理非常精确的运动,必须避免任何错误。

我一直在做的项目包括我的两个机器人:莱纳斯(下图左)和托瓦尔兹(下图右)。是的,我叫他们在Linux的创造者,因为他让我进入开源的。

机器人Linus Torvalds
机器人Linus Torvalds

让我带你通过我的经验设置监测和我学到的。

开始

去年开始我的旅程之后,我成功地创建了一个图形用户界面(GUI)来控制机器人。当时,我正在寻找新的方法来控制——原来,我做了使用蓝牙键盘和键盘控制也是一个Android智能手机作为机器人控制器。我遇到了一个文章显示如何使用烧瓶Python库来创建web应用程序,所以我尝试本教程,让我走了。

我乱用一些示例应用程序,然后决定集成web开发和控制led,伺服系统和汽车。工作之后,我开始机器人。我发现(如的教程这一个创建一个web服务器,并使用发光二极管和一个按钮)非常旧,零售物价指数使用。GPIO库而不是更新的GPIO零库。因为没有帮助,我决定自己想办法。我能够成功控制的别针尝试GPIO 0而不是老零售物价指数。GPIO图书馆。

一件事帮助我控制我的机器人是jQuery,因为它让我移动机器人只有当鼠标左键下举行。中缺少的那一块,我需要创建一个功能的机器人控制器。

直到我已经和一个机器人一起工作,所以我决定扩大项目两个机器人。为什么?因为控制一个机器人做了很多次,和能够控制两个或更多的机器人更有帮助。

事情开始捡起去年6月,当我接受到SUSE Udacity设立的奖学金项目。程序集中在云本机工具像码头工人,Kubernetes ArgoCD,我很兴奋,当我学会了如何部署一个烧瓶应用程序使用这些工具。我决定把我现有的样本应用程序,尝试用这些额外的工具来将我现有的应用程序部署到云中。

这GitHub回购显示我的工作和这个演示视频显示我的机器人行动。

把它到下一个水平

即使一切都是成功的,是失踪。我想,我怎么能把这个进一步吗?

这个答案的形式出现的另一个机会去年8月,当我接受到云本机应用程序架构Nanodegree程序。三个月,我学到了消息传递和监控服务,以及安全服务。这也是我学到了如何使用服务时如Grafana,普罗米修斯,贼鸥。

完成课程后,我创建了一个小的测试应用程序。我的目标是第一个监控一个小应用程序,然后建立监测系统。我的目的是应用Grafana,普罗米修斯,Jaeger我的应用程序和学习那些云本机工具是如何工作的。要做到这一点,我不得不使用普罗米修斯瓶出口国图书馆在Python中为了指标可以被普罗米修斯,然后提出在Grafana图表。我还决定将Jaeger测试应用程序。

安装Jaeger,普罗米修斯,Grafana我依靠执掌图表,然后确保运行的服务。集成与Grafana Jaeger,我需要正确的查询代理。需要一些好的Linux上的shell脚本。(仅供参考,我做了我所有的实验安装Ubuntu 20.04 PC和码头工人因为这是必需的。)我最初对我的测试中,但对最终产品我用k3。

我开始小通过监测基本瓶眨了眨眼睛LED的应用程序。之后,我搬到了两个伺服电机控制,然后控制一个直流电机速度控制。最后,它是测试我的机器人Torvalds的时候了。一旦我知道一切都工作得很好,我决定把我的双机器人应用程序和做一些需要更改基础代码。

花了几个步骤运行这个应用程序,我将地址每一层来解释它是如何运作的。

基本应用程序

这是我的机器人应用程序运行。下图显示了一个应用程序的屏幕截图。

基本应用程序的屏幕截图
基本应用程序的屏幕截图

码头工人层

这是应用程序打包,可以作为一个容器运行。这是必要的,因为在下一步中,码头工人形象使用Kubernetes部署。

下面的示意图显示了Jaeger,普罗米修斯,Grafana部署。Jaeger普罗米修斯从应用程序收集数据,然后显示它为人类可读的图表。

示意图显示Jaeger,普罗米修斯,Grafana部署
示意图显示Jaeger,普罗米修斯,Grafana部署

Jaeger,随时之一或Linus Torvalds的眼睛眨了眨眼睛,会触发一个跨度和送到Grafana消费。我也能够使用Jaeger引发任何时间跨度李纳斯的手臂动作。这可以用于调试的任何问题,确保机器人正在运行。

在这里,你可以看到一个示例跨度被发现:

样本跨度被发现
样本跨度被发现

如前所述,普罗米修斯瓶出口国是必要的让普罗米修斯消费应用程序产生的数据并将其呈现Grafana图表。普罗米修斯为了消耗指标在应用程序中,我必须确保所有的服务都是跑步,我跑我的应用程序是使用Kubernetes集群部署。

一旦我有集群,我指着我的浏览器本地主机和端口5000,然后移动机器人。创建数据的普罗米修斯,Jaeger Grafana消费和发送。

仪表板

当我确信我有足够的样本数据,我Grafana创建指示板(下图),看到的数据显示为不同的图表。

数据从Grafana仪表板的机器人
数据从Grafana仪表板的机器人

在这个指示板,我想象:

  • Jaeger跨越
  • 总请求/秒
  • 平均响应时间
  • 内存使用情况
  • 处理器利用率
  • 每秒请求
  • Kubernetes pod正常运行时间

设定后,我再次动了我的机器人确保图表是否工作正常,我可以看到实时更新的数据。我就知道,我有一个赢家。

机器人和原生云计算

使用Grafana实时监控应用程序和应用,如机器人制造商项目经验和了解普罗米修斯之旅,Grafana, Jaeger工作。它还帮助我了解更多关于云本地计算。

Grafana是一个伟大的工具来创建仪表板应用程序,可以用来监视任何问题与您的应用程序。使用Grafana仪表板与制造商项目向用户展示了如何诊断错误等问题,停机时间和连接问题。将来我想做的一件事是运行该应用程序使用一个覆盆子π集群运行k3。

我希望学习项目激励你自己实验和承担新的挑战,没有人尝试过。如果你想了解更多关于我的双机器人监控、查看GitHub回购演示视频在行动,这显示了最终的产品。