使用 Elastic 3 步实现基于 OTel 的原生 K8s 和应用可观测性

作者:来自 Elastic Bahubali Shetti

Elastic 的 OpenTelemetry 发行版现已支持 OTel Operator,可使用 EDOT SDK 自动检测应用程序,并管理 EDOT OTel Collector 的部署和生命周期以实现 Kubernetes 可观察性。了解如何通过 3 个简单步骤进行配置。

Elastic 最近发布了 Elastic Distributions of OpenTelemetry (EDOT),该发行版旨在增强标准 OpenTelemetry 发行版的功能并改进 Elastic 现有的 OpenTelemetry 支持。EDOT 可帮助 Elastic 提供其新的统一 OpenTelemetry 体验。SRE 不再需要执行一系列繁琐的步骤来将 OTel 数据装入 Observability。SRE 可以通过一种简单且顺畅的方式来对 OTel 收集器和应用程序进行检测,并将所有 OTel 数据装入 Elastic。此体验的组成部分包括:(在概述博客中详细介绍)

  • OpenTelemetry 的 Elastic 发行版 (EDOT)
  • Elastic 为 OpenTelemetry Operator 提供的配置:
    • OTel 收集器和 SDK 的 OTel 生命周期管理
    • 大多数开发人员不会对应用程序进行自动检测
  • 预打包的接收器、处理器、导出器和 OTel Kubernetes Collector 的配置
  • 用于指标和日志的开箱即用的基于 OTel 的 K8S 仪表板
  • 发现服务、主机和容器的视图清单
  • 直接将 OTel 导入 Elasticsearch(绕过 APM)- 你的所有数据(日志、指标和跟踪)现在都存储在 Elastic 的 Search AI Lake 中

在此博客中,我们将介绍如何通过 3 个简单步骤为 K8S 和你的应用程序导入 OTel:

  1. 从 UI 复制安装命令
  2. 添加 OpenTelemetry helm 图表,使用 Elastic 的 helm 安装 OpenTelemetry Operator 配置并设置你的 Elastic 端点​​和身份验证
  3. 注释你想要自动检测的应用服务

然后你可以在 Elastic Observability 中轻松查看 K8S 指标、日志和应用程序日志、指标和跟踪。

要关注此博客,你需要具备以下条件:

  1. cloud.elastic.co 上的帐户,具有获取 Elasticsearch 端点和身份验证(API 密钥)的权限
  2. 基于 Go、dotnet、Python 或 Java 的服务的非检测应用程序。通过 OTel 操作员自动检测。在此示例中,我们将使用 Elastiflix 应用程序。
  3. Kubernetes 集群,我们在设置中使用了 EKS
  4. 已加载 Helm 和 Kubectl

要查找身份验证,你可以在 Elastic 的集成部分中找到它。文档中还提供了更多信息。

Elastic 中的 K8S 和应用程序可观察性:

在我们引导你完成这些步骤之前,让我们向你展示 Elastic 中可见的内容。

操作员启动 OTel Collector 后,你可以在 Elastic 中看到以下内容:

Kubernetes 指标:

使用开箱即用的仪表板,你可以查看节点指标、整体集群指标以及跨 pod、部署等的状态。

发现主机、服务和容器的清单:

可在 UI 上的 Observability->Inventory 中找到

主机的详细指标、日志和处理器信息:

可在Observability->Infrastructure->Hosts 中找到

Elastic 的新 Discover(称为 Explorer)中的 K8S 和应用程序日志

可在 Observability->Discover 中找到

应用服务视图(日志、指标和跟踪):

可在 Observability->Application 中找到

然后选择 service 并深入了解不同方面。

上面我们展示了如何使用 Native OTel 数据显示跟踪。

安装步骤

步骤 0. 按照 UI 中列出的命令进行操作

在 Add data->Kubernetes->Kubernetes Monitoring with EDOT

你将找到以下说明,我们将在此处遵循这些说明。

步骤 1. 为 OpenTelemetry Operator 安装 EDOT 配置

运行以下命令。请确保你已在 K8s 集群中进行了身份验证,并且你将在此处运行下面提供的 helm 命令。

# Install helm repo needed
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts --force-update
# Install needed secrets. Provide the Elasticsearch Endpoint URL and API key you have noted in previous steps
kubectl create ns opentelemetry-operator-system
kubectl create -n opentelemetry-operator-system secret generic elastic-secret-otel \--from-literal=elastic_endpoint='YOUR_ELASTICSEARCH_ENDPOINT' \--from-literal=elastic_api_key='YOUR_ELASTICSEARCH_API_KEY'
# Install the EDOT Operator
helm install opentelemetry-kube-stack open-telemetry/opentelemetry-kube-stack --namespace opentelemetry-operator-system --create-namespace --values https://raw.githubusercontent.com/elastic/opentelemetry/refs/heads/main/resources/kubernetes/operator/helm/values.yaml --version 0.3.0

values.yaml 文件配置可以在这里找到。

步骤 1b:确保 OTel 数据已到达 Elastic

最简单的检查方法是转到菜单 > Dashboards > [OTEL][Metrics Kubernetes] Cluster Overview,并确保看到以下仪表板正在填充

第 2 步:使用自动检测注释应用程序

在此示例中,我们仅注释一项服务,即 Elastiflix 应用程序中的 favorite-java 服务

使用以下命令启动自动检测:

#Annotate Java namespace
kubectl annotate namespace java instrumentation.opentelemetry.io/inject-java="opentelemetry-operator-system/elastic-instrumentation"
#Restart the java-app to get the new annotation
kubectl rollout restart deployment java-app -n java

你还可以使用注释修改 pod 的 yaml

metadata:name: my-appannotations:instrumentation.opentelemetry.io/inject-python: "true"

UI 中提供了以下说明:

查看 Elastic APM 中的服务数据

一旦 OTel 数据进入 Elastic,你就可以看到:

  • 基于 OTel 的 Kubernetes 指标的开箱即用仪表板
  • 发现属于 Kubernetes 集群的服务、主机和容器等资源
  • Kubernetes 指标、主机指标、日志、处理器信息、异常检测和通用分析。
  • Elastic Discover 中的日志分析
  • 显示应用程序概览、事务、依赖项、错误等的 APM 功能:

试用

Elastic 的 OpenTelemetry 分布 (EDOT) 通过简化 Kubernetes 和应用程序检测来改变可观察性体验。借助 EDOT,SRE 和开发人员可以绕过复杂的设置,立即深入了解 Kubernetes 集群,并捕获关键指标、日志和跟踪 - 所有这些都在 Elastic Observability 中完成。只需遵循几个简单的步骤,你就可以获得统一、高效的监控解决方案,将你的 OpenTelemetry 数据直接导入 Elastic。凭借强大的开箱即用仪表板、自动应用程序检测和无缝集成,EDOT 不仅可以节省时间,还可以提高整个基础设施的可观察性的准确性和可访问性。立即开始利用 EDOT 来解锁无摩擦的可观察性体验,让你的系统平稳、富有洞察力地运行。

其他资源

  • OpenTelemetry 的 Elastic Distributions 概述
  • 带有 Elastic Distributions 的 OpenTelemetry 演示
  • 在 Elastic Observability 中使用 OpenTelemetry 进行基础设施监控
  • 使用 OpenTelemetry 自动检测 Go 应用程序
  • Elastic Distribution OpenTelemetry Java 代理
  • 适用于 PHP 的 Elastic OpenTelemetry Distribution

原文:Native OTel-based K8s & App Observability in 3 Steps with Elastic — Elastic Observability Labs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/61076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stack、queue、priority_queue、deque的使用和模拟实现

目录 1.容器适配器 2.stack stack的常用接口及使用示例 stack的模拟实现 3.queue queue的常用接口及使用示例 queue的模拟实现 4.priority_queue priority_queue的常用接口及使用示例 priority_queue的模拟实现 5.deque 认识deque deque底层的数据结构 deque和ve…

Linux的cuDNN(cudnn)安装教程(CUDA(cuda\cuda toolkit))

CUDA(cuda\cuda toolkit)安装教程 https://blog.csdn.net/huiyayaya/article/details/143863835?spm1001.2014.3001.5502官网下载cudnn https://developer.nvidia.com/rdp/cudnn-archive这个下载到自己的电脑 下载到本地就好 复制到服务器 切换到cudnn文件所在目…

Kafka中ACKS LSO LEO LW HW AR ISR OSR解析

名称解释 ACKS(Acknowledgments)确认、回执 LW(Low watermark)低水位、LSO(Log start offset)起始偏移量 HW(High watermark)高水位 LEO(Log end offset)…

C++设计模式行为模式———迭代器模式

文章目录 一、引言二、迭代器模式三、总结 一、引言 迭代器模式是一种行为设计模式, 让你能在不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素。C标准库中内置了很多容器并提供了合适的迭代器,尽管我们不…

智能体Agent调研

单个智能体建模与优化现状 人类长期以来追求类似于或超越人类水平的人工智能 (AI),而 基于AI的代理(Agent)被认为是一个有前途的研究方向。传统计算机领域的Agent有多种,如自动化脚本、网络爬虫、推荐系统、软件机器人能够独立自…

SAP PI/PO Proxy2JDBC SQL_QUERY动态接口示例

目录 背景: 完整demo步骤: IR: ID: SPROXY: 测试代码: 注意点: 背景: 中途临时帮客户项目做其他功能,项目上有部分开发项需要通过PO去第三方数据库取数,项目上的开发对PO不太熟&#xf…

【汇编语言】数据处理的两个基本问题(三) —— 汇编语言的艺术:从div,dd,dup到结构化数据的访问

文章目录 前言1. div指令1.1 使用div时的注意事项1.2 使用格式1.3 多种内存单元表示方法进行举例1.4 问题一1.5 问题一的分析与求解1.5.1 分析1.5.2 程序实现 1.6 问题二1.7 问题二的分析与求解1.7.1 分析1.7.2 程序实现 2. 伪指令 dd2.1 什么是dd?2.2 问题三2.3 问…

模型的评估指标——IoU、混淆矩阵、Precision、Recall、P-R曲线、F1-score、mAP、AP、AUC-ROC

文章目录 预测框的预测指标——IoU(交并比)分类预测指标混淆矩阵(Confusion Matrix,TP、FP、FN、TN)Precision(精度)Recall(召回率)P-R曲线F1-scoreTPR、TNR、FPR、FNRROC曲线下面积…

轻量云服务器:入门级云计算的最佳选择

在云计算领域,轻量云服务器逐渐成为小型企业、个人开发者和初创公司关注的热点。它凭借高性价比、简单易用和稳定性能,正在改变传统的服务器部署方式。本文将详细解析轻量云服务器的定义、优势、适用场景及如何选择最佳方案,帮助您全面了解这…

【初阶数据结构篇】归并排序、计数排序

文章目录 须知 💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力! 👍 点赞、收藏与分享:觉得这篇文章对你有帮助吗&#xff1…

移远通信5G RedCap模组RG255C-CN通过中国电信5G Inside终端生态认证

近日,移远通信5G RedCap模组RG255C-CN荣获中国电信颁发的5G Inside终端生态认证证书。这表明,该产品在5G基本性能、网络兼容性、安全特性等方面已经过严格评测且表现优异,将进一步加速推动5G行业终端规模化应用。 中国电信5G Inside终端生态认…

Towards Reasoning in Large Language Models: A Survey

文章目录 题目摘要引言什么是推理?走向大型语言模型中的推理测量大型语言模型中的推理发现与启示反思、讨论和未来方向 为什么要推理?结论题目 大型语言模型中的推理:一项调查 论文地址:https://arxiv.org/abs/2212.10403 项目地址: https://github.com/jeffhj/LM-reason…

Android Studio | 修改镜像地址为阿里云镜像地址,启动App

在项目文件的目录下的 settings.gradle.kts 中修改配置,配置中包含插件和依赖项 pluginManagement {repositories {maven { urluri ("https://www.jitpack.io")}maven { urluri ("https://maven.aliyun.com/repository/releases")}maven { urlu…

Python | Leetcode Python题解之第564题数组嵌套

题目&#xff1a; 题解&#xff1a; class Solution:def arrayNesting(self, nums: List[int]) -> int:ans, n 0, len(nums)for i in range(n):cnt 0while nums[i] < n:num nums[i]nums[i] ni numcnt 1ans max(ans, cnt)return ans

2024-11-17 -MATLAB三维绘图简单实例

1. x -1:0.05:1; y x; [X, Y] meshgrid(x, y); f (X, Y) (sin(pi * X) .* sin(pi * Y)) .^ 2.*sin(2.*X2.*Y); mesh(X, Y, f(X, Y)); % 调用函数f并传递X和Y xlabel(X-axis); ylabel(Y-axis); zlabel(Z-axis); title(Surface Plot of (sin(pi * X) .* sin(pi * Y)) .^ 2.*…

网络层9——虚拟专用网VPN和网络地址转换NAT

目录 一、为什么有虚拟专用网&#xff1f; 二、如何理解“虚拟专用网”&#xff1f; 三、IP隧道技术实现虚拟专用网 四、网络地址变换 一、为什么有虚拟专用网&#xff1f; 第一&#xff0c;IPv4只有32位&#xff0c;最多有40亿个全球唯一的IP地址数量不够&#xff0c;无法…

小程序如何完成订阅

小程序如何完成订阅 参考相关文档实践问题处理授权弹窗不再触发引导用户重新授权 参考相关文档 微信小程序实现订阅消息推送的实现步骤 发送订阅消息 小程序订阅消息&#xff08;用户通过弹窗订阅&#xff09;开发指南 实践 我们需要先选这一个模板&#xff0c;具体流程参考…

Oracle OCP认证考试考点详解082系列19

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 91. 第91题&#xff1a; 题目 解析及答案&#xff1a; 关于 Oracle 数据库中的索引及其管理&#xff0c;以下哪三个陈述是正确的&#x…

HuggingFace:基于YOLOv8的人脸检测模型

个人操作经验总结 1、YOLO的环境配置 github 不论base环境版本如何&#xff0c;建议在conda的虚拟环境中安装 1.1、创建虚拟环境 conda create -n yolov8-face python3.9conda create &#xff1a;创建conda虚拟环境&#xff0c; -n &#xff1a;给虚拟环境命名的…

2024-11-15 Element-ui的tab切换中table自适应宽度无法立即100%的问题

前言 今天在写一个统计图表的时候&#xff0c;将所有的table表格和echarts图表放到一个页面中&#xff0c;这样会在纵向上出现滚动条&#xff0c;上下滑动对用户体验不好&#xff0c;于是改成tab切换的形式 遇到的问题 正如标题所述&#xff0c;elementui在tab中使用table时&…