当前位置: 首页 > news >正文

使用 Elastic Observability 中的 OpenTelemetry 进行基础设施监控

作者:来自 Elastic ISHLEEN KAUR

将 OpenTelemetry 与 Elastic Observability 相结合,形成应用程序和基础设施监控解决方案。

在 Elastic,我们最近决定全面采用 OpenTelemetry 作为首要的数据收集框架。作为一名可观察性工程师,我坚信供应商中立性对于为客户提供最大价值至关重要。通过致力于 OpenTelemetry,我们不仅紧跟技术进步,而且还推动技术进步。这项投资使我们处于行业前沿,倡导更开放、更灵活的可观察性方法。

Elastic 将 Elastic Common Schema (ECS) 捐赠给 OpenTelemetry,并积极致力于将其与语义约定融合。与此同时,我们致力于支持我们的用户,确保他们不必遵循不同的标准。我们的目标是在将 OpenTelemetry 与我们的应用程序和基础设施监控解决方案结合使用时提供无缝的端到端体验。这一承诺使用户能够毫无阻碍地享受两全其美的优势。

在这篇博客中,我们探讨如何使用 OpenTelemetry (OTel) 收集器从各种来源(例如 AWS EC2、Google Compute、Kubernetes 集群以及运行 Linux 或 MacOS 的单个系统)捕获核心系统指标。

使用两种采集路径为基础设施 UI 提供支持

希望使用 OpenTelemetry 作为数据收集机制的 Elastic 用户现在可以使用 Elastic Observability 中提供的主机和库存 UI 来监控部署了 OpenTelemetry 收集器的主机的运行状况。

Elastic 提供了两种不同的采集路径来为基础设施 UI 提供支持:ElasticsearchExporter 采集路径和 OTLP Exporter 采集路径。

ElasticsearchExporter 采集路径:

Opentelmetry 中的 hostmetrics 接收器从 OTel 模式中的主机收集系统级指标,例如 CPU、内存和磁盘使用情况。ElasticsearchExporter 采集路径利用 Hostmetrics 接收器在 OTel 模式中生成主机指标。我们开发了 ElasticInfraMetricsProcesor,它利用 opentlemetry-lib 将这些指标转换为 Elastic UI 可以理解的格式。

例如,system.network.io OTel 指标包含一个 direction 属性,其值为 receive 或 transmit。它们分别对应于 Elastic 中的 system.network.in.bytes 和 system.network.out.bytes。

然后,processor 将这些指标转发到 Elasticsearch Exporter,现在已增强以支持在 ECS 模式下导出指标。导出器将指标发送到 Elasticsearch 端点,用富有洞察力的数据点亮基础设施 UI。

要利用此路径,你可以从此处提供的 Elastic Collector Distro 部署收集器。

此摄取路径的收集器配置示例:

receivers:hostmetrics:collection_interval: 10sscrapers:cpu:metrics:system.cpu.utilization:enabled: truesystem.cpu.logical.count:enabled: truememory:metrics:system.memory.utilization:enabled: trueprocess:metrics:process.open_file_descriptors:enabled: trueprocess.memory.utilization:enabled: trueprocess.disk.operations:enabled: truenetwork:processes:load:disk:filesystem:processors:resourcedetection/system:detectors: ["system", "ec2"]elasticinframetrics:exporters:  logging:verbosity: detailedelasticsearch/metrics: endpoints: <elasticsearch_endpoint>api_key: <api_key>mapping:mode: ecsservice:pipelines:metrics/host:receivers: [hostmetrics]processors: [resourcedetection/system, elasticinframetrics]exporters: [logging, elasticsearch/ metrics]

对于喜欢使用自定义 Elastic Collector Distro 的用户来说,Elastic 导出器路径是理想之选。此路径包括 Elasticinframetrics 处理器,它通过 Elasticsearch 导出器将数据发送到 Elasticsearch。

OTLP 导出器采集路径:

在 OTLP 导出器采集路径中,hostmetrics 接收器以 OTel Schema 从主机收集系统级指标,例如 CPU、内存和磁盘使用情况。这些指标被发送到 OTLP 导出器,后者将它们转发到 APM 服务器端点。APM 服务器使用相同的 opentelemetry-lib 将这些指标转换为与 Elastic UI 兼容的格式。随后,APM 服务器将指标推送到 Elasticsearch,为基础设施 UI 提供支持。

APM 采集路径的示例收集器配置

receivers:hostmetrics:collection_interval: 10sscrapers:cpu:metrics:system.cpu.utilization:enabled: truesystem.cpu.logical.count:enabled: truememory:metrics:system.memory.utilization:enabled: trueprocess:metrics:process.open_file_descriptors:enabled: trueprocess.memory.utilization:enabled: trueprocess.disk.operations:enabled: truenetwork:processes:load:disk:filesystem:processors:resourcedetection/system:detectors: ["system"]system:hostname_sources: ["os"]exporters:otlphttp:endpoint: <mis_endpoint>tls:insecure: falseheaders:Authorization: <api_key_>logging:verbosity: detailedservice:pipelines:metrics/host:receivers: [hostmetrics]processors: [resourcedetection/system]exporters: [logging, otlphttp]

OTLP Exporter Ingest 路径可以帮助已经使用 Elastic APM 并希望看到基础设施 UI 填充的现有用户。这些用户可以使用默认的 OpenTelemetry Collector。

基础设施 UI 概览

基础设施 UI 展示了主机和 Kubernetes 级别的视图。以下是一些 UI 概览

主机概览 UI

主机库存 UI

主机进程相关详细信息

Kubernetes Inventory UI

Pod 级别指标

我们的下一步是创建由原生 OTel 数据驱动的基础设施 UI,并使用在此原生数据上运行的专用 OTel 仪表板。

结论

Elastic 与 OpenTelemetry 的集成简化了可观察性环境,虽然我们正在努力使 ECS 与 OpenTelemetry 的语义约定保持一致,但我们的当务之急是通过简化用户体验来支持用户。通过这种额外的支持,我们的目标是为使用 OpenTelemetry 和我们的应用程序和基础设施监控解决方案的用户提供无缝的端到端体验。我们很高兴看到我们的用户将如何利用这些功能来更深入地了解他们的系统。

原文:Infrastructure monitoring with OpenTelemetry in Elastic Observability — Elastic Observability Labs

相关文章:

使用 Elastic Observability 中的 OpenTelemetry 进行基础设施监控

作者&#xff1a;来自 Elastic ISHLEEN KAUR 将 OpenTelemetry 与 Elastic Observability 相结合&#xff0c;形成应用程序和基础设施监控解决方案。 在 Elastic&#xff0c;我们最近决定全面采用 OpenTelemetry 作为首要的数据收集框架。作为一名可观察性工程师&#xff0c;我…...

征服数据结构中的时间和空间复杂度

目录 时间复杂度推导大O方法求解时间复杂度的方法普通顺序结构单循环双循环递归Master定理&#xff08;主定理&#xff09;递归树方法 空间复杂度 一个算法的好坏根据什么来判断呢&#xff1f;有两种一种是时间效率&#xff0c;一种是空间效率。时间效率也可称为时间复杂度&…...

springboot Security vue

在使用Spring Boot Security与Vue.js构建前后端分离的应用时&#xff0c;你需要处理几个关键的技术点&#xff0c;包括认证&#xff08;Authentication&#xff09;和授权&#xff08;Authorization&#xff09;&#xff0c;以及如何处理跨域请求&#xff08;CORS&#xff09;、…...

13. 计算机网络HTTPS协议(一)

1. 前言 在上一章节中我们介绍了 HTTP 协议相关的面试题目,作为 HTTP 协议的扩展,HTTPS 协议也经常被面试官提起。 因为对于大部分的前端、后端开发者,都接触不到 HTTPS 协议的开发场景,因为我们往往只关注请求路径后缀,例如关注 URL: /get/username,而非路径全称 htt…...

Bean的作用域和生命周期

Bean的作用域 我们先来看下面这段代码 首先是一个Dog类 &#xff08;此处使用lombok来完成setter、getter、toString方法&#xff09; Setter Getter public class Dog {private String name;} 然后在DogBeanConfig类里面写一个返回Dog的方法&#xff0c;并将这个方法的返…...

【Qt】QMainWindow之菜单栏

目录 一.菜单栏 1.概念 2.组成 二.代码创建菜单栏 1.创建菜单栏 2.在菜单栏中添加菜单 3.在菜单中添加菜单项 三.图形化创建菜单栏 1.在打开Qt自带的ui文件界面后&#xff0c;得到以下界面 2.双击点击界面中&#xff08;在这里输入&#xff09;&#xff0c;在菜单栏中进行…...

uni-app封装组件实现下方滑动弹出模态框

子组件 <template><div class"bottom-modal" :class"{show: showModal}"><div class"modal-content" :class"{show: showModal}"><!-- 内容区域 --><slot></slot></div></div></…...

MATLAB(15)分类模型

一、前言 在MATLAB中&#xff0c;实现不同类型的聚类&#xff08;如K-means聚类、层次聚类、模糊聚类&#xff09;和分类&#xff08;如神经网络分类&#xff09;需要用到不同的函数和工具箱。下面我将为每种方法提供一个基本的示例代码。 二、实现 1. K-means聚类 % 假设X是…...

非虚拟机安装Centos7连接wifi并开机自动联网

一&#xff1a;确认网卡名称 ip addr 无线网卡是以 w 开头&#xff0c;确定是wlp4s0 &#xff0c;有的是 wlp5s0 二&#xff1a;配置网络 wpa_supplicant -B -i wlp4s0 -c <(wpa_passphrase "网络的名字" “网络的密码“) 设置自动分配IP dhclient wlp4s0 三&…...

怎么选择的开放式耳机好用?2024超值耳机分享!

耳机在当前数字化时代已成为我们生活、娱乐乃至工作中的重要部分。随着市场需求的增长&#xff0c;消费者对耳机的期望也在提高&#xff0c;他们不仅追求音质的卓越&#xff0c;还关注佩戴的舒适度和外观设计。虽然传统的入耳式和半入耳式耳机在音质上往往能够满足人们&#xf…...

Web 框架

Web 框架 Web服务器Web服务器的主要功能常见的Web服务器软件包 Web 框架常用 Python Web 框架选择Python Web框架的考虑因素 WSGIWSGI的主要特点WSGI的工作原理常见的WSGI服务器和框架&#xff1a; 静态资源定义与特点静态资源的类型静态资源的管理与优化 动态资源定义与特点动…...

嗖嗖移动业务大厅(JDBC)

一、项目介绍 1、项目背景: 该项目旨在模拟真实的移动业务大厅&#xff0c;。用户可以注册新卡、查询账单、管理套餐、充值话费、打印消费记录等功能。同时&#xff0c;项目还模拟了用户使用场景&#xff0c;如通话、上网、发短信等&#xff0c;并根据套餐规则进行相应的扣费…...

大学生编程入门指南:如何从零开始?

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 编程语言选择 &#x1f4da; 1. Python 2. JavaScript 3. Java 4. C/C 如何选择适合自己的编程语言&a…...

如何基于欧拉系统完成数据库的安装

一、安装 当我们直接进行安装软件包时&#xff0c;会提示有冲突&#xff0c;此时&#xff0c;我们应该这样来解决 使用rpm命令 [rootlocalhost yum.repos.d]# rpm -qa | grep selinux使用 rpm命令卸载以下两个软件包 [rootlocalhost yum.repos.d]# rpm -e selinux-policy-3…...

防御笔记第九天(持续更新)

注意&#xff1a;攻击可能只是一个点&#xff0c;而防御需要全方面进行。 1.IAE引擎 2.DPI DPI ----深度包检测 --- 针对完整的数据包&#xff0c;进行内容的识别和检测 3.基于特征字的检测技术 4&#xff0c;基于应用网关的检测技术 基于应用网关的检测技术 --- 有些应用控…...

html+css+js前端作业和平精英6个页面页面带js

htmlcssjs前端作业和平精英6个页面页面带js 下载地址 https://download.csdn.net/download/qq_42431718/89595600 目录1 目录2 项目视频 htmlcssjs前端作业和平精英6个页面带js 页面1 页面2 页面3 页面4 页面5 页面6...

详解基于百炼平台及函数计算快速上线网页AI助手

引言 在当今这个信息爆炸的时代&#xff0c;用户对于在线服务的需求越来越趋向于即时性和个性化。无论是寻找产品信息、解决问题还是寻求建议&#xff0c;人们都期望能够获得即时反馈。这对企业来说既是挑战也是机遇——如何在海量信息中脱颖而出&#xff0c;提供高效且贴心的…...

【TVM 教程】在 CUDA 上部署量化模型

更多 TVM 中文文档可访问 →Apache TVM 是一个端到端的深度学习编译框架&#xff0c;适用于 CPU、GPU 和各种机器学习加速芯片。 | Apache TVM 中文站 作者&#xff1a;Wuwei Lin 本文介绍如何用 TVM 自动量化&#xff08;TVM 的一种量化方式&#xff09;。有关 TVM 中量化的…...

使用 continue 自定义 AI 编程环境

一直在使用github 的 copilot 来编程&#xff0c;确实好用&#xff0c;对编码效率有很大提升。 但是站在公司角度&#xff0c;因为它只能对接公网&#xff08;有代码安全问题&#xff09;。另外&#xff0c;它的扩展能力也不强&#xff0c;无法适配公司特定领域的知识库&#x…...

谷粒商城实战笔记-118-全文检索-ElasticSearch-进阶-aggregations聚合分析

文章目录 一&#xff0c;基本概念主要聚合类型 二&#xff0c;实战1&#xff0c;搜索 address 中包含 mill 的所有人的年龄分布以及平均年龄&#xff0c;但不显示这些人的详情2&#xff0c;按照年龄聚合&#xff0c;并且请求每个年龄的平均薪资 Elasticsearch 的聚合&#xff0…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

如何通过git命令查看项目连接的仓库地址?

要通过 Git 命令查看项目连接的仓库地址&#xff0c;您可以使用以下几种方法&#xff1a; 1. 查看所有远程仓库地址 使用 git remote -v 命令&#xff0c;它会显示项目中配置的所有远程仓库及其对应的 URL&#xff1a; git remote -v输出示例&#xff1a; origin https://…...

用鸿蒙HarmonyOS5实现国际象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码&#xff0c;使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...

比较数据迁移后MySQL数据库和ClickHouse数据仓库中的表

设计一个MySQL数据库和Clickhouse数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

【AI News | 20250609】每日AI进展

AI Repos 1、OpenHands-Versa OpenHands-Versa 是一个通用型 AI 智能体&#xff0c;通过结合代码编辑与执行、网络搜索、多模态网络浏览和文件访问等通用工具&#xff0c;在软件工程、网络导航和工作流自动化等多个领域展现出卓越性能。它在 SWE-Bench Multimodal、GAIA 和 Th…...