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

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(使用前将#替换为@)

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

  • 计算相对于当前行匹配条件的行数

    我有一个像这样构造的数据框 但它实际上有大约 400k 行 library data table df lt fread id start end 174095 2018 12 19 2018 12 31 227156 2018 12 19
  • Dragonfly Gem 与 ImageMagick 和 Passenger

    我在让蜻蜓宝石与乘客很好地配合时遇到了一些问题 Passenger 似乎没有使用当前的 PATH 因此它找不到转换二进制文件 我给蜻蜓添加了一些配置 这似乎解决了这个问题 require dragonfly rails images Dra

随机推荐

  • 解决依赖关系时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 采集到中间件的关键指标 有些中间件自带可观测 会