如何将支持标准可观测性协议的中间件快速接入观测

2024-01-06

前言

作为一名云原生工程师,如何将支持标准可观测性协议的中间件快速接入观测云呢?答案是只需要三步。

  • 首先,需要确定您要观测的中间件类型。支持标准可观测性协议中间件可通过观测云的 DataKit 采集到中间件的关键指标。有些中间件自带可观测,会提供相应的端口和 /metrics 对外提供指标。有些中间件需要启动 exporter,通过 exporter 对外暴露 metrics。
  • 其次,安装 DataKit。再开通 Prom 采集器。Prometheus 提供了一种规范的方式来收集中间件的指标,DataKit 内置了 Prom 采集器,在不安装 Prometheus 的情况下,只需要在采集器配置文件中指定 metrics 的 url ,可以轻松采集到中间件的指标。
  • 最后,可视化指标数据。通过「 观测云 」-「场景」-「仪表板」-「+新建仪表板」即可实现指标的可视化,观测云内置了多种中间件的仪表板,支持时序图、概览图、饼图、矩形树图、蜂窝图等几十种可视化图表。图表中通过简单 DQL 查询直接选择指标来展示数据。

下面以 HBase 为案例来快速接入观测云。HBase 是 JAVA 开发的分布式开源数据库,自身不提供 metrics,需要借助 JMX exporter来暴露指标。JMX(Java Management Extensions)用于 Java 程序扩展监控和管理项。为应用程序植入观测功能的框架提供了一种简单的、标准的可观测的方式。JMX 最常用的场景就是暴露 Java 程序指标,任何 Java 程序都可开启 JMX。观测云的 DataKit 支持直接采集 JMX 暴露的指标。

环境版本

  • CentOS 7.9
  • DataKit 1.5.6
  • JDK 1.8.0_341
  • HBase 2.4.16

前置条件

  • 您需要先创建一个 观测云账号
  • 已安装 HBase 2.4.16 (二进制安装路径是 /opt/soft/hbase-2.4.16 )

操作步骤

1 配置 HBase

1.1 下载 JMX exporter

下载 jmx_prometheus_javaagent-0.17.2.jar ,解压放到 HBase 的 bin 目录。
本示例目录是 /opt/soft/hbase-2.4.16/bin/jmx_prometheus_javaagent-0.17.2.jar

1.2 配置 HBase

新建 /opt/soft/hbase-2.4.16/conf/hbase_jmx_config.yaml

rules:
- pattern: '.*'

修改 /opt/soft/hbase-2.4.16/conf/hbase-env.sh ,配置对外暴露端口 30001

 export HBASE_MASTER_OPTS="  -javaagent:/opt/soft/hbase-2.4.16/bin/jmx_prometheus_javaagent-0.17.2.jar=30001:/opt/soft/hbase-2.4.16/conf/hbase_jmx_config.yaml"
export HBASE_REGIONSERVER_OPTS="-javaagent:/opt/soft/hbase-2.4.16/bin/jmx_prometheus_javaagent-0.17.2.jar=30001:/opt/soft/hbase-2.4.16/conf/hbase_jmx_config.yaml"

1.3 重启 HBase
cd /opt/soft/hbase-2.4.16/bin
./stop-hbase.sh
./start-hbase.sh

执行如下命令,验证是否可以输出指标。

curl http://localhost:30001/metrics

2 采集指标

2.1 安装 DataKit

登录「 观测云 」-「集成」-「DataKit」-「Linux」,在第二步中,点击右边的「复制图标」,在 Linux 主机上安装 DataKit。

2.2 开启采集器

开通 prom 采集器比较方便,只需复制 prom.conf.sample 文件,改成以 .conf 扩展名的文件,再配置待采集的 url。

cd /usr/local/datakit/conf.d/prom
cp prom.conf.sample prom_hbase.conf

编辑 prom_hbase.conf ,urls 中配置 HBase 指标的地址 http://localhost:30001/metrics

由于 HBase 指标有 untyped 类型,而默认配置只采集 counter 和gauge 类型的指标,这里需要设置 metric_types = [] 采集全部类型指标。

重启 DataKit,让新的采集器生效。

systemctl restart datakit
2.3 查看指标

登录「 观测云 」- 「指标」,查看采集到的指标。

Hadoop_HBase_numRegionServers 指标为例,观测云默认会把第一个下划线前面的 Hadoop 作为指标集,第一个下划线后面的 HBase_numRegionServers 作为指标。

# TYPE Hadoop_HBase_numRegionServers untyped
Hadoop_HBase_numRegionServers{name="Master",sub="Server",} 1.0

在「指标分析」中选择 Hadoop 指标集,再选 HBase_numRegionServers 指标即可可视化该指标。

在「指标管理」中可查看具体的指标集名称。

在 Hadoop 指标集中可以看到 host 标签,可以用做该标签做下拉框。

3 视图制作

登录「 观测云 」-「场景」-「仪表板」-「+新建仪表板」,输入 HBase 点「确定」新建仪表板。

点击 HBase 视图中的「新建视图变量」-「+添加视图变量」,数据链路选 DQL,变量查询输入 show_tag_value(from=['Hadoop'],keyin=['host']) ,其中 Hadoop 是指标集,host 是指标集中的标签。变量名输入 “host”,显示名输入“主机”,这样就制作了“主机”下拉框。

在 HBase 视图中拖一个“时序图”,简单查询表达式选择“指标”,指标集选择“Hadoop”,指标选择 HBase_numRegionServers 。再点击「添加筛选」图标,再选择“host”和“#{host}”,这为了与主机下拉框做联动。左边选择“面积图”,图表标题输入“Region Servers”。自此“Region Servers”时序图制作完成。

根据同样的方式制作其它图表,制作完成后点击主机下拉框选择对应主机,展示的即是该主机上部署的 HBase 的指标视图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将支持标准可观测性协议的中间件快速接入观测 的相关文章

  • PHP+Laravel框架RabbitMQ简单使用

    RabbitMQ安装教程请转到 RabbitMQ安装教程 超详细 1 创建生产者 在app Http Controllers里创建一个php控制器文件 namespace App Http Controllers use App Http
  • 【2023】java打印PDF(不需要调用浏览器直接静默打印)

    java打印PDF 不需要调用浏览器直接静默打印 一 简 需求 实现步骤 二 代码实现 0 打印模板 1 服务器部分 端口 8090 1 1 maven依赖 1 2 实体 1 2 1 接口返回类 1 2 2 标签纸页面参数类 1 2 3 P
  • 【Redis】缓存问题

    用户数据一般都是存储在数据库中 数据库则落在磁盘上 而磁盘的I O速度是计算机中最慢的硬件 当用户的访问量在某一个时间段突然上升 数据库就很容易崩溃 为了避免用户直接访问数据库 所以会使用缓存数据库 Redis 作为缓冲层 Redis 是内
  • 消息中间件(一)

    文章目录 消息中间件 什么是中间件 为什么使用MQ 应用场景 JMS和AMQP JMS AMQP JMS和AMQP的区别 消息队列产品 消息中间件 什么是中间件 MQ全称为Message Queue 消息队列是应用程序和应用程序之间的通信方
  • Nacos启动出现Error creating bean with name ‘memoryMonitor‘ 、‘externalDumpService‘

    目录 问题 解决方法 这里是CS大白话专场 让枯燥的学习变得有趣 没有对象不要怕 我们new一个出来 每天对ta说不尽情话 好记性不如烂键盘 自己总结不如收藏别人 问题 用KubeSphere创建Nacos时出现Error creating
  • Redis底层数据结构.md

    1 Redis 概述 Redis 数据库里面的每个键值对 key value 都是由对象 object 组成的 数据库键总是一个字符串对象 string object 数据库的值则可以是字符串对象 列表对象 list 哈希对象 hash 集
  • ElasticSearch安装在Windows上详细教程

    ElasticSearchWindows安装教程 Download Elasticsearch Elastic 解压ElasticSearch 打开elasticsearch 6 4 2 bin调用黑窗口 输入elasticsearch b
  • 送书

    又到了周三了 说实话 本来这期想鸽的 上海这边的疫情太严重了 前几期上海这边中奖的粉丝都没办法收货 只能等解封后再安排了 在这里和大家道个歉 希望大家谅解 最后希望在上海的小伙伴们早日渡过难关 像这种一把青菜50块的日子什么时候才是个头啊
  • nginx中间件常见漏洞总结

    nginx中间件常见漏洞总结 1 中间件漏洞的概念 1 1 中间件 容器 服务器的基本概念辨析 2 Nginx 配置错误导致漏洞 2 1 uri 导致的CRLF注入漏洞 2 1 1 漏洞成因 2 1 2 利用方式 2 1 3 修改方案 2
  • [Redis] Redis 安装部署

    Redis Redis 安装部署 简介 Redis是一个开源的使用ANSI C语言编写 遵守BSD协议 支持网络 可基于内存亦可持久化的日志型 Key Value 数据库 并提供多种语言的API 它通常被称为数据结构服务器 因为值 valu
  • 你遇到过的测试难题(6)记一次xxl-job的故障失败没有重试机制

    你遇到过的测试难题 6 记一次xxl job的故障失败没有重试机制 你遇到过的测试难题 6 记一次xxl job的故障失败没有重试机制 业务背景 线上故障表现 故障结论 测试过程 总结 你遇到过的测试难题 6 记一次xxl job的故障失败
  • 布隆过滤器(Bloom Filter)

    1 引言 通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景 一般想到的是将集合中所有元素保存起来 然后通过比较确定 链表 树 散列表 又叫哈希表 Hash table 等等数据结构都是这种思路 但是随着集合中元素的增加 我们需要的
  • 深聊性能测试,从入门到放弃之:我只做了这几点,公司的架构师也对我刮目相看

    1 引言 2 执行步骤 2 1 测试确认 2 2 通过标准 2 3 测试设计 2 4 数据准备 2 5 处理问题 3 总结 1 引言 接着上一篇 深聊性能测试 从入门到放弃之 性能测试如何做 这篇我们看看 到底做到那几点 架构师也对我刮目相
  • nacos安装配置

    1 下载 sentos安装 先下在安装包 nacos server 2 0 3 tar gz nacos官网 https nacos io zh cn 2 解压安装 上传安装包至linux系统 使用 tar zxvf nacos serve
  • 常见 Web 中间件及其漏洞概述(一):IIS

    目录 PUT漏洞 漏洞原理 复现 修复 短文件名猜解 漏洞原理 IIS短文件名产生 复现 短文件漏洞的局限性 IIS短文件名扫描工具 修复 远程代码执行 解析漏洞 IIS 6 0 基于文件名 基于目录名 IIS 7 0 7 5 IIS PH
  • 带你使用Golang快速构建出命令行应用程序

    在日常开发中 大家对命令行工具 CLI 想必特别熟悉了 如果说你不知道命令工具 那你可能是个假开发 每天都会使用大量的命令行工具 例如最常用的Git Go Docker等 不管是做技术开发还是业务开发 都会有开发命令行程序的场景 例如如果是
  • Keycloak概述

    这里写自定义目录标题 Keycloak概述 Single Sign On Kerberos 社交登录 用户合并 客户端适配 管理控制台 用户管理控制台 标准协议 授权服务 Getting Started Keycloak概述 keycloa
  • 16-MyCat

    一 Mycat概述 1 什么是Mycat 什么是Mycat Mycat是数据库中间件 所谓数据库中间件是连接Java应用程序和数据库中间的软件 为什么要用Mycat 遇到问题 Java与数据库的紧耦合 高访问量高并发对数据库的压力 读写请求
  • AUTOSAR从入门到精通-中间件通信DDS(三)

    目录 前言 原理 常见中间件模型 第一代 点对点CS Client Server 模型
  • 消息队列选型:Kafka 如何实现高性能?

    在分布式消息模块中 我将对消息队列中应用最广泛的 Kafka 和 RocketMQ 进行梳理 以便于你在应用中可以更好地进行消息队列选型 另外 这两款消息队列也是面试的高频考点 所以 本文我们就一起来看一下 Kafka 是如何实现高性能的

随机推荐

  • 解决依赖关系时Maven错误

    我是 Maven 新手 正在尝试建立我的第一个POMs 我的应用程序将使用 EhCache 进行缓存 前往 Maven Central Repo 链接here http mvnrepository com artifact net sf e
  • 状态 Monad 的传播

    我有以下函数用于在游戏世界的 图形 的 边缘 行走 它改变了世界的状态 特别是玩家的位置 我还需要报告一条消息 提醒玩家位置发生变化 所以我可以返回一个 message newWorld 元组 或者我可以使用 State monad 对吧
  • 使用 RabbitMQ 的 SimpMessagingTemplate.convertAndSend 工作速度非常慢

    我正在使用 spring STOMP over Websocket 和 RabbitMQ 一切正常 但 simpMessagingTemplate convertAndSend 工作速度非常慢 调用可能需要 2 10 秒 同步 阻塞线程 能
  • 尝试在 Visual Studio 2010 中包含 winhttp.h 时出现 C++ 307 错误

    我有一个很大的问题 我正在尝试使用 WinHttp 通过 C 下载文件 并且我正在使用 Visual Studio 2010 来执行此操作 我的问题是程序无法编译 因为生成了 307 错误 所有错误都指的是winhttp h 我提到我已经包
  • FileReader javascript 类不适用于 IE

    我使用 javascript FileReader 类在将图像上传到服务器之前预览图像 Firefox 和 Chrome 似乎一切正常 但由于某种原因似乎不适用于 IE 下面是我的代码 这是针对Cakephp框架的 有没有办法解决这个问题
  • Scroll Rect 手动滚动脚本 Unity C#

    我想为 Unity 编写一个 C 脚本 使滚动视图在按 UP 键时向上滚动 在按 DOWN 键时向下滚动 只需使用 ScrollRect horizontalNormalizedPosition value range 0 to 1 or
  • 从静态基类方法调用子类构造函数

    好的 在 Objective C 中 您可以使用 new this 从基类中的静态方法新建子类 因为在静态方法中 this 指的是类 而不是实例 当我第一次发现它时 这是一个非常酷的发现 并且我经常使用它 然而 在 C 中这是行不通的 该死
  • npm install 不会创建 node_modules 目录

    我正在尝试为 mongodb uni 课程做作业 他们给了我们一些文件 说明是 run npm install mongodb then node app js 由于某种原因 npm install 不会创建 node modules 目录
  • Python 绑定的 RPATH 传播失败

    我正在构建一个使用的库 Ubuntu 22 onnxruntime https github com microsoft onnxruntime在引擎盖下 反过来 onnxruntime使用CUDA 动态加载一些专用的 后端 我构建了除 C
  • 反向对象迭代 (javascript)

    如何从后到前迭代 javascript 对象 该物体看起来像这样 33 140 34 100 35 120 36 200 我希望它像这样显示 36 200 35 120 34 100 33 140 我尝试先排序然后显示 但它按第二个数字排序
  • 哪些单元测试框架可用于 F#

    我正在专门寻找允许我利用该语言的独特功能的框架 我知道FsUnit http fsunit codeplex com 您会推荐其他东西吗 为什么 我自己的单元测试库 Unquote http code google com p unquot
  • 使用 Jena 编写 SPARQL 查询来查询 IRI,例如:http://pt.dbpedia.org/

    我正在使用 Jena 写一个SPARQL查询以获取rdfs label来自作为方法参数接收的 URI 的属性 该方法仅接收如下 URI http pt dbpedia org 它应该返回给我rdfs label 但它没有给我任何回报 我查了
  • 使用电话或电子邮件登录/注册以进行 django、allauth 集成

    我想修改我的 django 用户模型以允许电话或电子邮件注册 登录 使用 USERNAME FIELD identifier 如果用户使用电话号码注册 则标识符将是其电话号码或电子邮件 反之亦然 如果有人认为我应该分配一些数字作为标识符 请
  • 如何在 Java 中保持多个服务器之间的数据结构同步?

    有一个地图 其中包含我想要在多个服务器之间保持同步的对象 这样 如果地图中的对象被创建 删除或修改 这会立即 即在一两秒内 反映在所有服务器上 这种方式有可能扩展到数十台服务器 有没有一个轻量级的开源Java工具可以做这样的事情 我知道 T
  • PDF 文本提取问题 - 字体/大写不一致

    我正在尝试从 pdf 书中提取文本 并继续遇到一个问题 即复制的文本部分在粘贴到文本文档中时无法保留正确的大写属性 我有权复制这本书 也有使用所有必要字体的许可 起初我认为问题是由未嵌入字体引起的 但我检查后发现所有字体似乎都是嵌入的子集
  • NSCache 在两次启动之间是否持续存在?

    我正在研究一种相当简单的缓存机制 目前正在使用 NSCache 出于内存管理的原因 问题是 缓存在两次启动之间是否持续存在 对我来说似乎没有 我将对象很好地放入缓存中 并且可以在应用程序运行时将它们从缓存中取出 没有问题 但是一旦我重新启动
  • 将 HTML 表格行包裹在 标记中

    是否可以将整个表行包装在 a 标签 我希望整行都是可点击的链接 如果我尝试以下操作 链接将呈现在表格上方和外部 This table a href value url tr td value td td value td tr a a hr
  • 如何使用 PHP IMAP 函数从 CPanel Webmail 获取收件箱消息

    我正在我的 cpanel webmail roundcube squirrelmail 中集成未读邮件的自动回复邮件 请参阅下面的我的代码 问题是我面临 imap open 函数无法连接 它的加载无法通过任何错误 异常 但仍在加载 有谁指导
  • firebase存储和数据库规则通信

    我需要在数据库和存储中存储某些变量 但重要的是要确保该变量将保存在两个数据库中 而不仅仅是一个数据库中 此外 该变量必须具有相同的值 但我发现存储和数据库没有进行通信 我该如何解决 简而言之 目前 一项服务的安全规则无法访问另一项服务的数据
  • 如何将支持标准可观测性协议的中间件快速接入观测

    前言 作为一名云原生工程师 如何将支持标准可观测性协议的中间件快速接入观测云呢 答案是只需要三步 首先 需要确定您要观测的中间件类型 支持标准可观测性协议中间件可通过观测云的 DataKit 采集到中间件的关键指标 有些中间件自带可观测 会