使用 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 进行基础设施监控
作者:来自 Elastic ISHLEEN KAUR 将 OpenTelemetry 与 Elastic Observability 相结合,形成应用程序和基础设施监控解决方案。 在 Elastic,我们最近决定全面采用 OpenTelemetry 作为首要的数据收集框架。作为一名可观察性工程师,我…...

征服数据结构中的时间和空间复杂度
目录 时间复杂度推导大O方法求解时间复杂度的方法普通顺序结构单循环双循环递归Master定理(主定理)递归树方法 空间复杂度 一个算法的好坏根据什么来判断呢?有两种一种是时间效率,一种是空间效率。时间效率也可称为时间复杂度&…...
springboot Security vue
在使用Spring Boot Security与Vue.js构建前后端分离的应用时,你需要处理几个关键的技术点,包括认证(Authentication)和授权(Authorization),以及如何处理跨域请求(CORS)、…...
13. 计算机网络HTTPS协议(一)
1. 前言 在上一章节中我们介绍了 HTTP 协议相关的面试题目,作为 HTTP 协议的扩展,HTTPS 协议也经常被面试官提起。 因为对于大部分的前端、后端开发者,都接触不到 HTTPS 协议的开发场景,因为我们往往只关注请求路径后缀,例如关注 URL: /get/username,而非路径全称 htt…...

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

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

uni-app封装组件实现下方滑动弹出模态框
子组件 <template><div class"bottom-modal" :class"{show: showModal}"><div class"modal-content" :class"{show: showModal}"><!-- 内容区域 --><slot></slot></div></div></…...

MATLAB(15)分类模型
一、前言 在MATLAB中,实现不同类型的聚类(如K-means聚类、层次聚类、模糊聚类)和分类(如神经网络分类)需要用到不同的函数和工具箱。下面我将为每种方法提供一个基本的示例代码。 二、实现 1. K-means聚类 % 假设X是…...
非虚拟机安装Centos7连接wifi并开机自动联网
一:确认网卡名称 ip addr 无线网卡是以 w 开头,确定是wlp4s0 ,有的是 wlp5s0 二:配置网络 wpa_supplicant -B -i wlp4s0 -c <(wpa_passphrase "网络的名字" “网络的密码“) 设置自动分配IP dhclient wlp4s0 三&…...

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

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

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

大学生编程入门指南:如何从零开始?
人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 编程语言选择 📚 1. Python 2. JavaScript 3. Java 4. C/C 如何选择适合自己的编程语言&a…...

如何基于欧拉系统完成数据库的安装
一、安装 当我们直接进行安装软件包时,会提示有冲突,此时,我们应该这样来解决 使用rpm命令 [rootlocalhost yum.repos.d]# rpm -qa | grep selinux使用 rpm命令卸载以下两个软件包 [rootlocalhost yum.repos.d]# rpm -e selinux-policy-3…...

防御笔记第九天(持续更新)
注意:攻击可能只是一个点,而防御需要全方面进行。 1.IAE引擎 2.DPI DPI ----深度包检测 --- 针对完整的数据包,进行内容的识别和检测 3.基于特征字的检测技术 4,基于应用网关的检测技术 基于应用网关的检测技术 --- 有些应用控…...

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助手
引言 在当今这个信息爆炸的时代,用户对于在线服务的需求越来越趋向于即时性和个性化。无论是寻找产品信息、解决问题还是寻求建议,人们都期望能够获得即时反馈。这对企业来说既是挑战也是机遇——如何在海量信息中脱颖而出,提供高效且贴心的…...
【TVM 教程】在 CUDA 上部署量化模型
更多 TVM 中文文档可访问 →Apache TVM 是一个端到端的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。 | Apache TVM 中文站 作者:Wuwei Lin 本文介绍如何用 TVM 自动量化(TVM 的一种量化方式)。有关 TVM 中量化的…...

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

谷粒商城实战笔记-118-全文检索-ElasticSearch-进阶-aggregations聚合分析
文章目录 一,基本概念主要聚合类型 二,实战1,搜索 address 中包含 mill 的所有人的年龄分布以及平均年龄,但不显示这些人的详情2,按照年龄聚合,并且请求每个年龄的平均薪资 Elasticsearch 的聚合࿰…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...