Odigos(https://github.com/keyval-dev/odigos) 是一个开源的可观测性控制平面,允许企业创建和维护他们的可观测性管道,Odigos 允许应用程序在几分钟内提供追踪、指标和日志,重要的是无需修改任何代码,完全无任何侵入性。
当你的应用程序在世界各地的数十个节点上的数百个 pod 上运行时,很难全面了解整个应用程序,对于需要跟踪、管理和优化这些环境的性能和可用性的团队来说,可观测性就成为了关键的工作任务。如果整合得当,可观测性工具可以通过集中你的数据并提供对性能、使用情况和用户行为等关键指标提供更智能的洞察力来监控和排查问题,可观测性工具应支持你使用的语言和框架,与你的容器平台和你使用的其他工具轻松集成,包括任何通信或报警。问题是实施、维护和扩展是持续的任务,如果没有适当的执行和持续的配置,可观测性工具是有限的,很多时候还是无效的。对于研发团队来说,在云上应用可观测性能力需要特定的技能组合,特别是考虑到向 OpenTelemetry & eBPF 的转变。企业必须确保他们能够在有限的、竞争激烈的人才库中获得特定的技能组合。学习 SDK、添加自动仪表(针对每种语言)、编写代码、部署和维护采集器--这些都需要大量的时间和知识,而大多数组织并不具备这些条件。为了解决这些集成问题,一些大型的可观测性工具供应商提供自己的代理,提供他们自己的定制解决方案。这样做的问题是,通过使用专有格式摄取和存储数据的专有代理,但是会和这些供应商绑定在一起了。随着企业越来越多地寻求与开源标准的兼容性,以及跨部门共享和访问数据的能力,将数据锁定在一个独立的供应商中会阻碍这些努力并增加成本。Odigos 可观测性控制平面提供了一个全面的、完全自动化的解决方案,使各组织能够在几分钟内建立他们的可观测性管道。Odigos 专注与第三方集成、开源、开放标准,以及整体上更加综合的方法,减少了结合多个可观测性软件平台和开源软件解决方案的复杂性。Odigos 自动检测你集群中每个应用程序的编程语言,并相应地进行自动检测。对于已编译的语言(如 Go),使用 eBPF 来检测应用程序,对于虚拟机语言(如 Java)则使用 OpenTelemetry。此外,Odigos 创建的管道遵循最佳实践,例如:将 API 密钥持久化为 Kubernetes 的 Secret,使用最小的采集器镜像,等等。安装、配置和维护一个开源的、不可知的 Observabiity 控制平面的能力将使各种规模的组织有能力在任何时候采用适合他们的工具,并根据需要添加更多工具。Odigos 使可观测性变得简单,人人都能使用。
当然前提是需要一个 Kubernetes 集群,如果是在本地开发环境强烈推荐使用 kind 来创建一个测试集群,只需要使用名 kind create cluster 即可创建一个集群。有了集群后使用下面的命令部署测试应用即可:kubectl apply -f https://raw.githubusercontent.com/keyval-dev/bank-of-athnos/main/release/kubernetes-manifests.yamlhelm repo add odigos https://keyval-dev.github.io/odigos-charts/
helm install my-odigos odigos/odigos --namespace odigos-system --create-namespacekubectl port-forward svc/odigos-ui 3000:3000 -n odigos-system
有两种方法可以选择 Odigos 应该使用哪些应用程序进行观测:
比如我们这里选择自己托管的 Prometheus、Tempo、Loki 三个服务,当然也需要提前部署该 3 个服务:
添加以下三个目的地:Tempo:kubectl get pods -wkubectl port-forward svc/observability-grafana -n observability 3100:80kubectl get secret -n observability observability-grafana -o jsnotallow=”{.data.admin-password}” | base64 --decode
就会出现如下所示的一个非常熟悉的图表:
还有很多 Odigos 收集的指标可以从 Prometheus 数据源轻松查询,请查看此文档(https://odigos.io/docs/telemetry-types/)以了解完整的清单 。追踪再次点击 Service Graph 中的 contacts 应用,但这次选择请求直方图,为了将指标和追踪联系起来,我们将使用一个叫做 exemplars 的功能,要显示 exemplars,按照如下步骤:
将鼠标悬停在其中一个添加的点上,点击 Query With Tempo,应该会出现类似于下面的追踪数据。
在此 trace 中,可以准确地看到整个请求的每个部分花费了多少时间,深入其中一个部分将显示其他信息,例如数据库查询。
在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',
在编写Ruby(客户端脚本)时,我看到了三种构建更长字符串的方法,包括行尾,所有这些对我来说“闻起来”有点难看。有没有更干净、更好的方法?变量递增。ifrender_quote?quote="NowthatthereistheTec-9,acrappyspraygunfromSouthMiami."quote+="ThisgunisadvertisedasthemostpopularguninAmericancrime.Doyoubelievethatshit?"quote+="Itactuallysaysthatinthelittlebookthatcomeswithit:themo
我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm
我有一个应用程序正在从Ruby迁移到JRuby(由于需要通过Java提供更好的Web服务安全支持)。我使用的gem之一是daemons创建后台作业。问题在于它使用fork+exec来创建后台进程,但这对JRuby来说是禁忌。那么-是否有用于创建后台作业的替代gem/wrapper?我目前的想法是只从shell脚本调用rake并让rake任务永远运行......提前致谢,克里斯。更新我们目前正在使用几个与Java线程相关的包装器,即https://github.com/jmettraux/rufus-scheduler和https://github.com/philostler/acts
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我们有以下(以及更多)系统,我们将数据从一个应用推送/拉取到另一个:托管CRM(InsideSales.com)Asterisk电话系统(内部)横幅广告系统(openx,我们托管)潜在客户生成系统(自行开发)电子商务商店(spree,我们托管)工作板(本土)一些工作网站抓取+入站工作提要电子邮件传送系统(如Mailchimp,自主开发)事件管理系统(如eventbrite,自主开发)仪表板系统(大量图表和
在我的mac上安装几个东西时遇到这个问题,我认为这个问题来自将我的豹子升级到雪豹。我认为这个问题也与macports有关。/usr/local/lib/libz.1.dylib,filewasbuiltfori386whichisnotthearchitecturebeinglinked(x86_64)有什么想法吗?更新更具体地说,这发生在安装nokogirigem时日志看起来像:xslt_stylesheet.c:127:warning:passingargument1of‘Nokogiri_wrap_xml_document’withdifferentwidthduetoproto
Ruby语言是否可以用于创建全新的移动操作系统或桌面操作系统,即是否可以用于系统编程? 最佳答案 嗯,现在有一些操作系统使用比C更高级的语言。基本上,ruby解释器本身需要用一些低级的东西来编写,并且需要一些引导加载代码将功能齐全的ruby解释器作为独立内核加载到内存中。一旦ruby解释器被引导并以内核模式(或innerrings之一)运行,就没有什么可以阻止您在其上构建整个操作系统。不幸的是,它可能会很慢。每个操作系统功能的垃圾收集可能会相当引人注目。ruby解释器将负责任务调度和网络堆栈等基本事情,使用垃圾收集框架会大大
这个问题在这里已经有了答案:Unabletoinstallgem-Failedtobuildgemnativeextension-cannotloadsuchfile--mkmf(LoadError)(17个答案)关闭9年前。嘿,我正在尝试在一台新的ubuntu机器上安装rails。我安装了ruby和rvm,但出现“无法构建gemnative扩展”错误。这是什么意思?$sudogeminstallrails-v3.2.9(没有sudo表示我没有权限)然后它会输出很多“获取”命令,最终会出现这个错误:Buildingnativeextensions.Thiscouldtakeawhi
我尝试了一些关于rubyonrails中openid利用率的搜索。然而,尽管出现了一组选项,例如omniauth、authlogic等,但这些gem通常用于构建接受openid身份验证的站点。换句话说,它们用于openid消费者设置。我也想构建自己的openid服务器。AssuggestedhereinOpenIdsite我发现了像Masquerade和local-openid这样的东西,不幸的是,它们不是非常活跃的项目,下载量很少。自建openidprovider服务器有没有其他设施可以推荐?非常感谢!!干杯,叶 最佳答案 虽
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我想知道是否有人知道Ruby的rubyzip替代品,它可以处理各种格式,特别是zip/rar/7z?我知道libarchive,但它对我的目的来说并不完整(它是一个很好的gem)。(澄清一下,libarchive-对我不起作用-因为