blob: 97d13050ad70bff8de0f639b46796b98c1accf2c [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Pegasus | Monitoring</title>
<link rel="stylesheet" href="/zh/assets/css/app.css">
<link rel="shortcut icon" href="/zh/assets/images/favicon.ico">
<link rel="stylesheet" href="/zh/assets/css/utilities.min.css">
<link rel="stylesheet" href="/zh/assets/css/docsearch.v3.css">
<script src="/assets/js/jquery.min.js"></script>
<script src="/assets/js/all.min.js"></script>
<script src="/assets/js/docsearch.v3.js"></script>
<!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Monitoring | Pegasus</title>
<meta name="generator" content="Jekyll v4.3.2" />
<meta property="og:title" content="Monitoring" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="组件 从v1.12.0开始, Pegasus 支持使用 Prometheus 和 Grafana 进项监控项的采集和展示。 Prometheus Prometheus 是一款开源的系统监控和报警套件。它可以通过将采集被监控系统的监控项存入自身的时序数据库中,并且通过丰富的多维数据查询语言,满足用户的不同数据展示需求。 Grafana Grafana 是一款开源的数据分析和展示平台。支持包括 Prometheus 在内的多个主流时序数据库源。通过对应的数据库查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。 注意* 本文档仅提供一种使用 Prometheus 和 Grafana 进行 Pegasus 监控数据采集和展示的方式。Pegasus不包含、不维护这些组件。更多关于这些组件的详细介绍,请移步对应官方文档进行查阅。 配置 Prometheus 本小节介绍如何配置 Prometheus。 第一步: 配置Pegasus服务 Pegasus默认不向任何外部系统推送监控信息, 你需要修改配置文件以启用prometheus推送。具体如下: [pegasus.server] perf_counter_sink = prometheus prometheus_port = 9091 注: 如果你想要测试你的Pegasus节点是否正确开启了Prometheus推送, 可以检查 http://{pegasus_host}:{prometheus_port}/metrics 是否能正常访问. Onebox使用Prometheus 如果使用onebox, 请首先修改配置文件src/server/config.min.ini以开启Prometheus推送. 但不需要改动 prometheus_port. [pegasus.server] perf_counter_sink = prometheus prometheus_port = @PROMETHEUS_PORT@ 由于onebox模式下多个Pegasus服务进程部署在一台机器上,因此各replica、meta、collector的prometheus端口存在冲突问题. 当前我们的解决办法是对每个进程配置单独的prometheus port: collector : 9091 meta: [9092, 9093, 9094…] replica: [9092+{META_COUNT}, 9093+{META_COUNT}, 9094+{META_COUNT}…] 例如一个2 meta, 3 replica, 1 collector的onebox集群, 其端口对应如下: ./run.sh start_onebox -r 3 -m 2 -c meta1: 9092, meta2: 9093 replica1: 9094, replica2: 9095, replica3: 9096 第二步: 安装及运行 Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.15.2/prometheus-2.15.2.linux-amd64.tar.gz tar xvfz prometheus-2.15.2.linux-amd64.tar.gz cd prometheus-2.15.2.linux-amd64 修改prometheus目录下的prometheus.yml文件,配置模板如下所示: global: scrape_interval: 5s scrape_configs: - job_name: &#39;pegasus&#39; static_configs: - targets: [&#39;collector_host:9091&#39;] labels: group: collector - targets: [&#39;meta_host1:9091&#39;, &#39;meta_host2:9091&#39;, &#39;meta_host3:9091&#39;] labels: group: meta - targets: [&#39;replica_host1:9091&#39;, &#39;replica_host2:9091&#39;, &#39;replica_host3:9091&#39;] labels: group: replica # # NOTE: Add the following lines if node exporter is deployed. # - targets: # [ # &#39;node_exporter_host1:9100&#39;, # &#39;node_exporter_host2:9100&#39;, # ... # &#39;node_exporter_hostn:9100&#39;, # ] # labels: # group: node_exporter 对于上述通过 ./run.sh start_onebox -r 3 -m 2 -c 启动的onebox集群, 实际配置如下: global: scrape_interval: 5s scrape_configs: - job_name: &quot;pegasus&quot; static_configs: - targets: [&quot;0.0.0.0:9091&quot;] labels: group: collector - targets: [&quot;0.0.0.0:9092&quot;, &quot;0.0.0.0:9093&quot;] labels: group: meta - targets: [&quot;0.0.0.0:9094&quot;, &quot;0.0.0.0:9095&quot;, &quot;0.0.0.0:9096&quot;] labels: group: replica 修改完prometheus.yml之后,启动prometheus: ./prometheus --config.file=prometheus.yml 进入网址 localhost:9090 看到如下界面即表示到这一步为止是成功的。 注: 如果你想要测试Prometheus是否正确配置, 可以检查 http://{prometheus_host}:9090/targets 查看各节点的监控上报状态. 在Expression框内输入需要查找的内容,点击Excute即可在Element中展示查找到的内容,当选择Graph时可以显示该内容一段时间内数值变化情况。 注意 实际运维过程中, 我们通常需要获取一些机器及操作系统的监控指标, 如cpu.busy, disk.iostat等等, 所以在部署Pegasus集群的时候,可以考虑在每一台机器上部署一个node exporter后台实例,具体可参考: Node Exporter Alert Manager 为 Prometheus 报警组件,需单独部署(暂不提供方案,可参照官方文档自行搭建)。通过 Alert Manager,用户可以配置报警策略,接收邮件、短信等报警。 目前我们的prometheus.yml使用的是静态配置的方式(static_configs),其缺点是当动态扩容缩容的时候需要手动去修改该静态配置。当前Prometheus支持多种动态服务发现方式,例如k8s、consul和dns等等,用户也可以根据自己需求去定制实现。详情请参考文档:配置文件说明、实现动态服务发现 配置 Grafana 本小节介绍如何配置 Grafana。 第一步: 安装及运行 Grafana 首先下载grafana二进制包: wget https://dl.grafana.com/oss/release/grafana-6.0.0.linux-amd64.tar.gz //如果报错,可以尝试在后面添加--no-check-certificate tar -zxvf grafana-6.0.0.linux-amd64.tar.gz cd grafana-6.0.0 启动Grafana ./bin/grafana-server web 观察到如下输出,即为启动成功 INFO[07-24|14:36:59] Starting Grafana logger=server version=6.0.0 commit=34a9a62 branch=HEAD compiled=2019-02-25T22:47:26+0800 ... INFO[07-24|14:37:00] HTTP Server Listen logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket= INFO[07-24|14:37:00] cleanup of expired auth tokens done logger=auth count=2 第二步: 添加 Prometheus 数据源 登录 Grafana 界面。如下图所示: 默认地址:http://localhost:3000 默认账户:admin 默认密码:admin 注意: Change Password 步骤可以选择 Skip。 点击 Grafana 侧边栏菜单 Configuration 中的 Data Source。 点击 Add data source。 指定数据源的相关信息: 在 Name 处,为数据源指定一个名称。 在 Type 处,选择 Prometheus。 在 URL 处,指定 Prometheus 的 IP 地址。 根据需求指定其它字段。 点击 Add 保存新的数据源。 第三步: 导入 Pegasus DashBoard 目前Pegasus拥有一个DashBoard,用于提供一些基本的监控信息。其相应的json文件: Pegasus json文件 下载了json文件后,可以通过import的方式将其导入进去。其步骤如下: 进入grafana,点击左边框的”+”,选择import,进入import页面 点击右上角的”Upload .json File”,然后选择文件。选择之后进入如下页面 然后点击左下角的”import”按钮完成导入,并进入到Pegasus相应的DashBoard,其页面如下所示 从图中可以看出,Pegasus的DashBoard分为两个row: Pegasus-Cluster和Pegasus-Table,分别代表集群级别监控和表级监控。在左上角的cluster_name后输入具体的集群名字,便可以查看该集群相应的各种监控信息。" />
<meta property="og:description" content="组件 从v1.12.0开始, Pegasus 支持使用 Prometheus 和 Grafana 进项监控项的采集和展示。 Prometheus Prometheus 是一款开源的系统监控和报警套件。它可以通过将采集被监控系统的监控项存入自身的时序数据库中,并且通过丰富的多维数据查询语言,满足用户的不同数据展示需求。 Grafana Grafana 是一款开源的数据分析和展示平台。支持包括 Prometheus 在内的多个主流时序数据库源。通过对应的数据库查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。 注意* 本文档仅提供一种使用 Prometheus 和 Grafana 进行 Pegasus 监控数据采集和展示的方式。Pegasus不包含、不维护这些组件。更多关于这些组件的详细介绍,请移步对应官方文档进行查阅。 配置 Prometheus 本小节介绍如何配置 Prometheus。 第一步: 配置Pegasus服务 Pegasus默认不向任何外部系统推送监控信息, 你需要修改配置文件以启用prometheus推送。具体如下: [pegasus.server] perf_counter_sink = prometheus prometheus_port = 9091 注: 如果你想要测试你的Pegasus节点是否正确开启了Prometheus推送, 可以检查 http://{pegasus_host}:{prometheus_port}/metrics 是否能正常访问. Onebox使用Prometheus 如果使用onebox, 请首先修改配置文件src/server/config.min.ini以开启Prometheus推送. 但不需要改动 prometheus_port. [pegasus.server] perf_counter_sink = prometheus prometheus_port = @PROMETHEUS_PORT@ 由于onebox模式下多个Pegasus服务进程部署在一台机器上,因此各replica、meta、collector的prometheus端口存在冲突问题. 当前我们的解决办法是对每个进程配置单独的prometheus port: collector : 9091 meta: [9092, 9093, 9094…] replica: [9092+{META_COUNT}, 9093+{META_COUNT}, 9094+{META_COUNT}…] 例如一个2 meta, 3 replica, 1 collector的onebox集群, 其端口对应如下: ./run.sh start_onebox -r 3 -m 2 -c meta1: 9092, meta2: 9093 replica1: 9094, replica2: 9095, replica3: 9096 第二步: 安装及运行 Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.15.2/prometheus-2.15.2.linux-amd64.tar.gz tar xvfz prometheus-2.15.2.linux-amd64.tar.gz cd prometheus-2.15.2.linux-amd64 修改prometheus目录下的prometheus.yml文件,配置模板如下所示: global: scrape_interval: 5s scrape_configs: - job_name: &#39;pegasus&#39; static_configs: - targets: [&#39;collector_host:9091&#39;] labels: group: collector - targets: [&#39;meta_host1:9091&#39;, &#39;meta_host2:9091&#39;, &#39;meta_host3:9091&#39;] labels: group: meta - targets: [&#39;replica_host1:9091&#39;, &#39;replica_host2:9091&#39;, &#39;replica_host3:9091&#39;] labels: group: replica # # NOTE: Add the following lines if node exporter is deployed. # - targets: # [ # &#39;node_exporter_host1:9100&#39;, # &#39;node_exporter_host2:9100&#39;, # ... # &#39;node_exporter_hostn:9100&#39;, # ] # labels: # group: node_exporter 对于上述通过 ./run.sh start_onebox -r 3 -m 2 -c 启动的onebox集群, 实际配置如下: global: scrape_interval: 5s scrape_configs: - job_name: &quot;pegasus&quot; static_configs: - targets: [&quot;0.0.0.0:9091&quot;] labels: group: collector - targets: [&quot;0.0.0.0:9092&quot;, &quot;0.0.0.0:9093&quot;] labels: group: meta - targets: [&quot;0.0.0.0:9094&quot;, &quot;0.0.0.0:9095&quot;, &quot;0.0.0.0:9096&quot;] labels: group: replica 修改完prometheus.yml之后,启动prometheus: ./prometheus --config.file=prometheus.yml 进入网址 localhost:9090 看到如下界面即表示到这一步为止是成功的。 注: 如果你想要测试Prometheus是否正确配置, 可以检查 http://{prometheus_host}:9090/targets 查看各节点的监控上报状态. 在Expression框内输入需要查找的内容,点击Excute即可在Element中展示查找到的内容,当选择Graph时可以显示该内容一段时间内数值变化情况。 注意 实际运维过程中, 我们通常需要获取一些机器及操作系统的监控指标, 如cpu.busy, disk.iostat等等, 所以在部署Pegasus集群的时候,可以考虑在每一台机器上部署一个node exporter后台实例,具体可参考: Node Exporter Alert Manager 为 Prometheus 报警组件,需单独部署(暂不提供方案,可参照官方文档自行搭建)。通过 Alert Manager,用户可以配置报警策略,接收邮件、短信等报警。 目前我们的prometheus.yml使用的是静态配置的方式(static_configs),其缺点是当动态扩容缩容的时候需要手动去修改该静态配置。当前Prometheus支持多种动态服务发现方式,例如k8s、consul和dns等等,用户也可以根据自己需求去定制实现。详情请参考文档:配置文件说明、实现动态服务发现 配置 Grafana 本小节介绍如何配置 Grafana。 第一步: 安装及运行 Grafana 首先下载grafana二进制包: wget https://dl.grafana.com/oss/release/grafana-6.0.0.linux-amd64.tar.gz //如果报错,可以尝试在后面添加--no-check-certificate tar -zxvf grafana-6.0.0.linux-amd64.tar.gz cd grafana-6.0.0 启动Grafana ./bin/grafana-server web 观察到如下输出,即为启动成功 INFO[07-24|14:36:59] Starting Grafana logger=server version=6.0.0 commit=34a9a62 branch=HEAD compiled=2019-02-25T22:47:26+0800 ... INFO[07-24|14:37:00] HTTP Server Listen logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket= INFO[07-24|14:37:00] cleanup of expired auth tokens done logger=auth count=2 第二步: 添加 Prometheus 数据源 登录 Grafana 界面。如下图所示: 默认地址:http://localhost:3000 默认账户:admin 默认密码:admin 注意: Change Password 步骤可以选择 Skip。 点击 Grafana 侧边栏菜单 Configuration 中的 Data Source。 点击 Add data source。 指定数据源的相关信息: 在 Name 处,为数据源指定一个名称。 在 Type 处,选择 Prometheus。 在 URL 处,指定 Prometheus 的 IP 地址。 根据需求指定其它字段。 点击 Add 保存新的数据源。 第三步: 导入 Pegasus DashBoard 目前Pegasus拥有一个DashBoard,用于提供一些基本的监控信息。其相应的json文件: Pegasus json文件 下载了json文件后,可以通过import的方式将其导入进去。其步骤如下: 进入grafana,点击左边框的”+”,选择import,进入import页面 点击右上角的”Upload .json File”,然后选择文件。选择之后进入如下页面 然后点击左下角的”import”按钮完成导入,并进入到Pegasus相应的DashBoard,其页面如下所示 从图中可以看出,Pegasus的DashBoard分为两个row: Pegasus-Cluster和Pegasus-Table,分别代表集群级别监控和表级监控。在左上角的cluster_name后输入具体的集群名字,便可以查看该集群相应的各种监控信息。" />
<meta property="og:site_name" content="Pegasus" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2023-11-23T14:51:44+00:00" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="Monitoring" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-11-23T14:51:44+00:00","datePublished":"2023-11-23T14:51:44+00:00","description":"组件 从v1.12.0开始, Pegasus 支持使用 Prometheus 和 Grafana 进项监控项的采集和展示。 Prometheus Prometheus 是一款开源的系统监控和报警套件。它可以通过将采集被监控系统的监控项存入自身的时序数据库中,并且通过丰富的多维数据查询语言,满足用户的不同数据展示需求。 Grafana Grafana 是一款开源的数据分析和展示平台。支持包括 Prometheus 在内的多个主流时序数据库源。通过对应的数据库查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。 注意* 本文档仅提供一种使用 Prometheus 和 Grafana 进行 Pegasus 监控数据采集和展示的方式。Pegasus不包含、不维护这些组件。更多关于这些组件的详细介绍,请移步对应官方文档进行查阅。 配置 Prometheus 本小节介绍如何配置 Prometheus。 第一步: 配置Pegasus服务 Pegasus默认不向任何外部系统推送监控信息, 你需要修改配置文件以启用prometheus推送。具体如下: [pegasus.server] perf_counter_sink = prometheus prometheus_port = 9091 注: 如果你想要测试你的Pegasus节点是否正确开启了Prometheus推送, 可以检查 http://{pegasus_host}:{prometheus_port}/metrics 是否能正常访问. Onebox使用Prometheus 如果使用onebox, 请首先修改配置文件src/server/config.min.ini以开启Prometheus推送. 但不需要改动 prometheus_port. [pegasus.server] perf_counter_sink = prometheus prometheus_port = @PROMETHEUS_PORT@ 由于onebox模式下多个Pegasus服务进程部署在一台机器上,因此各replica、meta、collector的prometheus端口存在冲突问题. 当前我们的解决办法是对每个进程配置单独的prometheus port: collector : 9091 meta: [9092, 9093, 9094…] replica: [9092+{META_COUNT}, 9093+{META_COUNT}, 9094+{META_COUNT}…] 例如一个2 meta, 3 replica, 1 collector的onebox集群, 其端口对应如下: ./run.sh start_onebox -r 3 -m 2 -c meta1: 9092, meta2: 9093 replica1: 9094, replica2: 9095, replica3: 9096 第二步: 安装及运行 Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.15.2/prometheus-2.15.2.linux-amd64.tar.gz tar xvfz prometheus-2.15.2.linux-amd64.tar.gz cd prometheus-2.15.2.linux-amd64 修改prometheus目录下的prometheus.yml文件,配置模板如下所示: global: scrape_interval: 5s scrape_configs: - job_name: &#39;pegasus&#39; static_configs: - targets: [&#39;collector_host:9091&#39;] labels: group: collector - targets: [&#39;meta_host1:9091&#39;, &#39;meta_host2:9091&#39;, &#39;meta_host3:9091&#39;] labels: group: meta - targets: [&#39;replica_host1:9091&#39;, &#39;replica_host2:9091&#39;, &#39;replica_host3:9091&#39;] labels: group: replica # # NOTE: Add the following lines if node exporter is deployed. # - targets: # [ # &#39;node_exporter_host1:9100&#39;, # &#39;node_exporter_host2:9100&#39;, # ... # &#39;node_exporter_hostn:9100&#39;, # ] # labels: # group: node_exporter 对于上述通过 ./run.sh start_onebox -r 3 -m 2 -c 启动的onebox集群, 实际配置如下: global: scrape_interval: 5s scrape_configs: - job_name: &quot;pegasus&quot; static_configs: - targets: [&quot;0.0.0.0:9091&quot;] labels: group: collector - targets: [&quot;0.0.0.0:9092&quot;, &quot;0.0.0.0:9093&quot;] labels: group: meta - targets: [&quot;0.0.0.0:9094&quot;, &quot;0.0.0.0:9095&quot;, &quot;0.0.0.0:9096&quot;] labels: group: replica 修改完prometheus.yml之后,启动prometheus: ./prometheus --config.file=prometheus.yml 进入网址 localhost:9090 看到如下界面即表示到这一步为止是成功的。 注: 如果你想要测试Prometheus是否正确配置, 可以检查 http://{prometheus_host}:9090/targets 查看各节点的监控上报状态. 在Expression框内输入需要查找的内容,点击Excute即可在Element中展示查找到的内容,当选择Graph时可以显示该内容一段时间内数值变化情况。 注意 实际运维过程中, 我们通常需要获取一些机器及操作系统的监控指标, 如cpu.busy, disk.iostat等等, 所以在部署Pegasus集群的时候,可以考虑在每一台机器上部署一个node exporter后台实例,具体可参考: Node Exporter Alert Manager 为 Prometheus 报警组件,需单独部署(暂不提供方案,可参照官方文档自行搭建)。通过 Alert Manager,用户可以配置报警策略,接收邮件、短信等报警。 目前我们的prometheus.yml使用的是静态配置的方式(static_configs),其缺点是当动态扩容缩容的时候需要手动去修改该静态配置。当前Prometheus支持多种动态服务发现方式,例如k8s、consul和dns等等,用户也可以根据自己需求去定制实现。详情请参考文档:配置文件说明、实现动态服务发现 配置 Grafana 本小节介绍如何配置 Grafana。 第一步: 安装及运行 Grafana 首先下载grafana二进制包: wget https://dl.grafana.com/oss/release/grafana-6.0.0.linux-amd64.tar.gz //如果报错,可以尝试在后面添加--no-check-certificate tar -zxvf grafana-6.0.0.linux-amd64.tar.gz cd grafana-6.0.0 启动Grafana ./bin/grafana-server web 观察到如下输出,即为启动成功 INFO[07-24|14:36:59] Starting Grafana logger=server version=6.0.0 commit=34a9a62 branch=HEAD compiled=2019-02-25T22:47:26+0800 ... INFO[07-24|14:37:00] HTTP Server Listen logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket= INFO[07-24|14:37:00] cleanup of expired auth tokens done logger=auth count=2 第二步: 添加 Prometheus 数据源 登录 Grafana 界面。如下图所示: 默认地址:http://localhost:3000 默认账户:admin 默认密码:admin 注意: Change Password 步骤可以选择 Skip。 点击 Grafana 侧边栏菜单 Configuration 中的 Data Source。 点击 Add data source。 指定数据源的相关信息: 在 Name 处,为数据源指定一个名称。 在 Type 处,选择 Prometheus。 在 URL 处,指定 Prometheus 的 IP 地址。 根据需求指定其它字段。 点击 Add 保存新的数据源。 第三步: 导入 Pegasus DashBoard 目前Pegasus拥有一个DashBoard,用于提供一些基本的监控信息。其相应的json文件: Pegasus json文件 下载了json文件后,可以通过import的方式将其导入进去。其步骤如下: 进入grafana,点击左边框的”+”,选择import,进入import页面 点击右上角的”Upload .json File”,然后选择文件。选择之后进入如下页面 然后点击左下角的”import”按钮完成导入,并进入到Pegasus相应的DashBoard,其页面如下所示 从图中可以看出,Pegasus的DashBoard分为两个row: Pegasus-Cluster和Pegasus-Table,分别代表集群级别监控和表级监控。在左上角的cluster_name后输入具体的集群名字,便可以查看该集群相应的各种监控信息。","headline":"Monitoring","mainEntityOfPage":{"@type":"WebPage","@id":"/administration/monitoring"},"url":"/administration/monitoring"}</script>
<!-- End Jekyll SEO tag -->
</head>
<body>
<div class="dashboard is-full-height">
<!-- left panel -->
<div class="dashboard-panel is-medium is-hidden-mobile pl-0">
<div class="dashboard-panel-header has-text-centered">
<a href="/zh/">
<img src="/assets/images/pegasus-logo-inv.png" style="width: 80%;">
</a>
</div>
<div class="dashboard-panel-main is-scrollable pl-6">
<aside class="menu">
<p class="menu-label">Pegasus产品文档</p>
<ul class="menu-list">
<li>
<a href="/zh/docs/downloads"
class="">
下载
</a>
</li>
</ul>
<p class="menu-label">编译构建</p>
<ul class="menu-list">
<li>
<a href="/zh/docs/build/compile-by-docker"
class="">
使用Docker完成编译(推荐)
</a>
</li>
<li>
<a href="/zh/docs/build/compile-from-source"
class="">
从源码编译
</a>
</li>
</ul>
<p class="menu-label">客户端库</p>
<ul class="menu-list">
<li>
<a href="/zh/clients/java-client"
class="">
Java客户端
</a>
</li>
<li>
<a href="/zh/clients/cpp-client"
class="">
C++客户端
</a>
</li>
<li>
<a href="https://github.com/apache/incubator-pegasus/tree/master/go-client"
class="">
Golang客户端
</a>
</li>
<li>
<a href="/zh/clients/python2-client"
class="">
Python2客户端
</a>
</li>
<li>
<a href="/zh/clients/python3-client"
class="">
Python3客户端
</a>
</li>
<li>
<a href="/zh/clients/node-client"
class="">
NodeJS客户端
</a>
</li>
<li>
<a href="/zh/clients/scala-client"
class="">
Scala客户端
</a>
</li>
</ul>
<p class="menu-label">生态工具</p>
<ul class="menu-list">
<li>
<a href="/zh/docs/tools/shell"
class="">
Pegasus Shell 工具
</a>
</li>
<li>
<a href="https://github.com/pegasus-kv/admin-cli"
class="">
集群管理命令行
</a>
</li>
<li>
<a href="https://github.com/pegasus-kv/pegic"
class="">
数据访问命令行
</a>
</li>
</ul>
<p class="menu-label">用户接口</p>
<ul class="menu-list">
<li>
<a href="/zh/api/ttl"
class="">
TTL
</a>
</li>
<li>
<a href="/zh/api/single-atomic"
class="">
单行原子操作
</a>
</li>
<li>
<a href="/zh/api/redis"
class="">
Redis适配
</a>
</li>
<li>
<a href="/zh/api/geo"
class="">
GEO支持
</a>
</li>
<li>
<a href="/zh/api/http"
class="">
HTTP接口
</a>
</li>
</ul>
<p class="menu-label">高效运维</p>
<ul class="menu-list">
<li>
<a href="/zh/administration/deployment"
class="">
集群部署
</a>
</li>
<li>
<a href="/zh/administration/config"
class="">
配置说明
</a>
</li>
<li>
<a href="/zh/administration/rebalance"
class="">
负载均衡
</a>
</li>
<li>
<a href="/zh/administration/monitoring"
class="is-active">
可视化监控
</a>
</li>
<li>
<a href="/zh/administration/rolling-update"
class="">
集群升级
</a>
</li>
<li>
<a href="/zh/administration/scale-in-out"
class="">
集群扩容缩容
</a>
</li>
<li>
<a href="/zh/administration/resource-management"
class="">
资源管理
</a>
</li>
<li>
<a href="/zh/administration/cold-backup"
class="">
冷备份
</a>
</li>
<li>
<a href="/zh/administration/meta-recovery"
class="">
元数据恢复
</a>
</li>
<li>
<a href="/zh/administration/replica-recovery"
class="">
Replica数据恢复
</a>
</li>
<li>
<a href="/zh/administration/zk-migration"
class="">
Zookeeper迁移
</a>
</li>
<li>
<a href="/zh/administration/table-migration"
class="">
Table迁移
</a>
</li>
<li>
<a href="/zh/administration/table-soft-delete"
class="">
Table软删除
</a>
</li>
<li>
<a href="/zh/administration/table-env"
class="">
Table环境变量
</a>
</li>
<li>
<a href="/zh/administration/remote-commands"
class="">
远程命令
</a>
</li>
<li>
<a href="/zh/administration/partition-split"
class="">
Partition-Split
</a>
</li>
<li>
<a href="/zh/administration/duplication"
class="">
跨机房同步
</a>
</li>
<li>
<a href="/zh/administration/compression"
class="">
数据压缩
</a>
</li>
<li>
<a href="/zh/administration/throttling"
class="">
流量控制
</a>
</li>
<li>
<a href="/zh/administration/experiences"
class="">
运维经验
</a>
</li>
<li>
<a href="/zh/administration/manual-compact"
class="">
Manual Compact功能
</a>
</li>
<li>
<a href="/zh/administration/usage-scenario"
class="">
Usage Scenario功能
</a>
</li>
<li>
<a href="/zh/administration/bad-disk"
class="">
坏盘检修
</a>
</li>
<li>
<a href="/zh/administration/whitelist"
class="">
白名单
</a>
</li>
<li>
<a href="/zh/administration/backup-request"
class="">
Backup Request
</a>
</li>
<li>
<a href="/zh/administration/hotspot-detection"
class="">
热点检测
</a>
</li>
</ul>
</aside>
</div>
</div>
<!-- main section -->
<div class="dashboard-main is-scrollable">
<nav class="navbar is-hidden-desktop">
<div class="navbar-brand">
<a href="/zh/" class="navbar-item">
<!-- Pegasus Icon -->
<img src="/assets/images/pegasus-square.png">
</a>
<div class="navbar-item">
<!--A simple language switch button that only supports zh and en.-->
<!--IF its language is zh, then switches to en.-->
<!--If you don't want a url to be relativized, you can add a space explicitly into the href to
prevents a url from being relativized by polyglot.-->
<a class="button is-light is-outlined is-inverted" href=" /administration/monitoring"><strong>En</strong></a>
</div>
<a role="button" class="navbar-burger burger" aria-label="menu" aria-expanded="false" data-target="navMenu">
<!-- Appears in mobile mode only -->
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
</div>
<div class="navbar-menu" id="navMenu">
<div class="navbar-end">
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
Pegasus产品文档
</span>
</a>
<div class="navbar-dropdown">
<a href="/zh/docs/downloads"
class="navbar-item ">
下载
</a>
</div>
</div>
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
编译构建
</span>
</a>
<div class="navbar-dropdown">
<a href="/zh/docs/build/compile-by-docker"
class="navbar-item ">
使用Docker完成编译(推荐)
</a>
<a href="/zh/docs/build/compile-from-source"
class="navbar-item ">
从源码编译
</a>
</div>
</div>
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
客户端库
</span>
</a>
<div class="navbar-dropdown">
<a href="/zh/clients/java-client"
class="navbar-item ">
Java客户端
</a>
<a href="/zh/clients/cpp-client"
class="navbar-item ">
C++客户端
</a>
<a href="https://github.com/apache/incubator-pegasus/tree/master/go-client"
class="navbar-item ">
Golang客户端
</a>
<a href="/zh/clients/python2-client"
class="navbar-item ">
Python2客户端
</a>
<a href="/zh/clients/python3-client"
class="navbar-item ">
Python3客户端
</a>
<a href="/zh/clients/node-client"
class="navbar-item ">
NodeJS客户端
</a>
<a href="/zh/clients/scala-client"
class="navbar-item ">
Scala客户端
</a>
</div>
</div>
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
生态工具
</span>
</a>
<div class="navbar-dropdown">
<a href="/zh/docs/tools/shell"
class="navbar-item ">
Pegasus Shell 工具
</a>
<a href="https://github.com/pegasus-kv/admin-cli"
class="navbar-item ">
集群管理命令行
</a>
<a href="https://github.com/pegasus-kv/pegic"
class="navbar-item ">
数据访问命令行
</a>
</div>
</div>
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
用户接口
</span>
</a>
<div class="navbar-dropdown">
<a href="/zh/api/ttl"
class="navbar-item ">
TTL
</a>
<a href="/zh/api/single-atomic"
class="navbar-item ">
单行原子操作
</a>
<a href="/zh/api/redis"
class="navbar-item ">
Redis适配
</a>
<a href="/zh/api/geo"
class="navbar-item ">
GEO支持
</a>
<a href="/zh/api/http"
class="navbar-item ">
HTTP接口
</a>
</div>
</div>
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
高效运维
</span>
</a>
<div class="navbar-dropdown">
<a href="/zh/administration/deployment"
class="navbar-item ">
集群部署
</a>
<a href="/zh/administration/config"
class="navbar-item ">
配置说明
</a>
<a href="/zh/administration/rebalance"
class="navbar-item ">
负载均衡
</a>
<a href="/zh/administration/monitoring"
class="navbar-item is-active">
可视化监控
</a>
<a href="/zh/administration/rolling-update"
class="navbar-item ">
集群升级
</a>
<a href="/zh/administration/scale-in-out"
class="navbar-item ">
集群扩容缩容
</a>
<a href="/zh/administration/resource-management"
class="navbar-item ">
资源管理
</a>
<a href="/zh/administration/cold-backup"
class="navbar-item ">
冷备份
</a>
<a href="/zh/administration/meta-recovery"
class="navbar-item ">
元数据恢复
</a>
<a href="/zh/administration/replica-recovery"
class="navbar-item ">
Replica数据恢复
</a>
<a href="/zh/administration/zk-migration"
class="navbar-item ">
Zookeeper迁移
</a>
<a href="/zh/administration/table-migration"
class="navbar-item ">
Table迁移
</a>
<a href="/zh/administration/table-soft-delete"
class="navbar-item ">
Table软删除
</a>
<a href="/zh/administration/table-env"
class="navbar-item ">
Table环境变量
</a>
<a href="/zh/administration/remote-commands"
class="navbar-item ">
远程命令
</a>
<a href="/zh/administration/partition-split"
class="navbar-item ">
Partition-Split
</a>
<a href="/zh/administration/duplication"
class="navbar-item ">
跨机房同步
</a>
<a href="/zh/administration/compression"
class="navbar-item ">
数据压缩
</a>
<a href="/zh/administration/throttling"
class="navbar-item ">
流量控制
</a>
<a href="/zh/administration/experiences"
class="navbar-item ">
运维经验
</a>
<a href="/zh/administration/manual-compact"
class="navbar-item ">
Manual Compact功能
</a>
<a href="/zh/administration/usage-scenario"
class="navbar-item ">
Usage Scenario功能
</a>
<a href="/zh/administration/bad-disk"
class="navbar-item ">
坏盘检修
</a>
<a href="/zh/administration/whitelist"
class="navbar-item ">
白名单
</a>
<a href="/zh/administration/backup-request"
class="navbar-item ">
Backup Request
</a>
<a href="/zh/administration/hotspot-detection"
class="navbar-item ">
热点检测
</a>
</div>
</div>
</div>
</div>
</nav>
<nav class="navbar is-hidden-mobile">
<div class="navbar-start w-full">
<div class="navbar-item pl-0 w-full">
<!--TODO(wutao): Given the limitation of docsearch that couldn't handle multiple input,
I make searchbox only shown in desktop. Fix this issue when docsearch.js v3 released.
Related issue: https://github.com/algolia/docsearch/issues/230-->
<div id="docsearch"></div>
</div>
</div>
<div class="navbar-end">
<div class="navbar-item">
<!--A simple language switch button that only supports zh and en.-->
<!--IF its language is zh, then switches to en.-->
<!--If you don't want a url to be relativized, you can add a space explicitly into the href to
prevents a url from being relativized by polyglot.-->
<a class="button is-light is-outlined is-inverted" href=" /administration/monitoring"><strong>En</strong></a>
</div>
</div>
</nav>
<section class="hero is-info lg:mr-3">
<div class="hero-body">
<p class="title is-size-2 is-centered">可视化监控</p>
</div>
</section>
<section class="section" style="padding-top: 2rem;">
<div class="content">
<h2 id="组件">组件</h2>
<p>从v1.12.0开始, Pegasus 支持使用 <a href="https://prometheus.io/">Prometheus</a> 和 <a href="https://grafana.com/">Grafana</a> 进项监控项的采集和展示。</p>
<ul>
<li>Prometheus</li>
</ul>
<blockquote>
<p>Prometheus 是一款开源的系统监控和报警套件。它可以通过将采集被监控系统的监控项存入自身的时序数据库中,并且通过丰富的多维数据查询语言,满足用户的不同数据展示需求。</p>
</blockquote>
<ul>
<li>Grafana</li>
</ul>
<blockquote>
<p>Grafana 是一款开源的数据分析和展示平台。支持包括 Prometheus 在内的多个主流时序数据库源。通过对应的数据库查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。</p>
</blockquote>
<p><strong>注意</strong>*</p>
<p>本文档仅提供一种使用 Prometheus 和 Grafana 进行 Pegasus 监控数据采集和展示的方式。Pegasus<strong>不包含、不维护这些组件</strong>。更多关于这些组件的详细介绍,请移步对应官方文档进行查阅。</p>
<h2 id="配置-prometheus">配置 Prometheus</h2>
<p>本小节介绍如何配置 Prometheus。</p>
<h3 id="第一步-配置pegasus服务">第一步: 配置Pegasus服务</h3>
<p>Pegasus默认不向任何外部系统推送监控信息, 你需要修改配置文件以启用prometheus推送。具体如下:</p>
<div class="language-ini highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">[pegasus.server]</span>
<span class="py">perf_counter_sink</span> <span class="p">=</span> <span class="s">prometheus</span>
<span class="py">prometheus_port</span> <span class="p">=</span> <span class="s">9091</span>
</code></pre></div></div>
<blockquote>
<p><strong>注</strong>: 如果你想要测试你的Pegasus节点是否正确开启了Prometheus推送, 可以检查 <code class="language-plaintext highlighter-rouge">http://{pegasus_host}:{prometheus_port}/metrics</code> 是否能正常访问.</p>
</blockquote>
<h4 id="onebox使用prometheus">Onebox使用Prometheus</h4>
<p>如果使用onebox, 请首先修改配置文件src/server/config.min.ini以开启Prometheus推送. 但不需要改动 <code class="language-plaintext highlighter-rouge">prometheus_port</code>.</p>
<div class="language-ini highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">[pegasus.server]</span>
<span class="py">perf_counter_sink</span> <span class="p">=</span> <span class="s">prometheus</span>
<span class="py">prometheus_port</span> <span class="p">=</span> <span class="s">@PROMETHEUS_PORT@</span>
</code></pre></div></div>
<p>由于onebox模式下多个Pegasus服务进程部署在一台机器上,因此各replica、meta、collector的prometheus端口存在冲突问题. 当前我们的解决办法是对每个进程配置单独的prometheus port:</p>
<ul>
<li>collector : 9091</li>
<li>meta: [9092, 9093, 9094…]</li>
<li>replica: [9092+{META_COUNT}, 9093+{META_COUNT}, 9094+{META_COUNT}…]</li>
</ul>
<p>例如一个2 meta, 3 replica, 1 collector的onebox集群, 其端口对应如下:</p>
<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./run.sh start_onebox <span class="nt">-r</span> 3 <span class="nt">-m</span> 2 <span class="nt">-c</span>
</code></pre></div></div>
<ul>
<li>meta1: 9092, meta2: 9093</li>
<li>replica1: 9094, replica2: 9095, replica3: 9096</li>
</ul>
<h3 id="第二步-安装及运行-prometheus">第二步: 安装及运行 Prometheus</h3>
<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>wget https://github.com/prometheus/prometheus/releases/download/v2.15.2/prometheus-2.15.2.linux-amd64.tar.gz
<span class="nb">tar </span>xvfz prometheus-2.15.2.linux-amd64.tar.gz
<span class="nb">cd </span>prometheus-2.15.2.linux-amd64
</code></pre></div></div>
<p>修改prometheus目录下的prometheus.yml文件,配置模板如下所示:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">global</span><span class="pi">:</span>
<span class="na">scrape_interval</span><span class="pi">:</span> <span class="s">5s</span>
<span class="na">scrape_configs</span><span class="pi">:</span>
<span class="pi">-</span> <span class="na">job_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">pegasus'</span>
<span class="na">static_configs</span><span class="pi">:</span>
<span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s1">'</span><span class="s">collector_host:9091'</span><span class="pi">]</span>
<span class="na">labels</span><span class="pi">:</span>
<span class="na">group</span><span class="pi">:</span> <span class="s">collector</span>
<span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s1">'</span><span class="s">meta_host1:9091'</span><span class="pi">,</span> <span class="s1">'</span><span class="s">meta_host2:9091'</span><span class="pi">,</span> <span class="s1">'</span><span class="s">meta_host3:9091'</span><span class="pi">]</span>
<span class="na">labels</span><span class="pi">:</span>
<span class="na">group</span><span class="pi">:</span> <span class="s">meta</span>
<span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s1">'</span><span class="s">replica_host1:9091'</span><span class="pi">,</span> <span class="s1">'</span><span class="s">replica_host2:9091'</span><span class="pi">,</span> <span class="s1">'</span><span class="s">replica_host3:9091'</span><span class="pi">]</span>
<span class="na">labels</span><span class="pi">:</span>
<span class="na">group</span><span class="pi">:</span> <span class="s">replica</span>
<span class="c1">#</span>
<span class="c1"># NOTE: Add the following lines if node exporter is deployed.</span>
<span class="c1"># - targets:</span>
<span class="c1"># [</span>
<span class="c1"># 'node_exporter_host1:9100',</span>
<span class="c1"># 'node_exporter_host2:9100',</span>
<span class="c1"># ...</span>
<span class="c1"># 'node_exporter_hostn:9100',</span>
<span class="c1"># ]</span>
<span class="c1"># labels:</span>
<span class="c1"># group: node_exporter</span>
</code></pre></div></div>
<p>对于上述通过 <code class="language-plaintext highlighter-rouge">./run.sh start_onebox -r 3 -m 2 -c</code> 启动的onebox集群, 实际配置如下:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">global</span><span class="pi">:</span>
<span class="na">scrape_interval</span><span class="pi">:</span> <span class="s">5s</span>
<span class="na">scrape_configs</span><span class="pi">:</span>
<span class="pi">-</span> <span class="na">job_name</span><span class="pi">:</span> <span class="s2">"</span><span class="s">pegasus"</span>
<span class="na">static_configs</span><span class="pi">:</span>
<span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s2">"</span><span class="s">0.0.0.0:9091"</span><span class="pi">]</span>
<span class="na">labels</span><span class="pi">:</span>
<span class="na">group</span><span class="pi">:</span> <span class="s">collector</span>
<span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s2">"</span><span class="s">0.0.0.0:9092"</span><span class="pi">,</span> <span class="s2">"</span><span class="s">0.0.0.0:9093"</span><span class="pi">]</span>
<span class="na">labels</span><span class="pi">:</span>
<span class="na">group</span><span class="pi">:</span> <span class="s">meta</span>
<span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s2">"</span><span class="s">0.0.0.0:9094"</span><span class="pi">,</span> <span class="s2">"</span><span class="s">0.0.0.0:9095"</span><span class="pi">,</span> <span class="s2">"</span><span class="s">0.0.0.0:9096"</span><span class="pi">]</span>
<span class="na">labels</span><span class="pi">:</span>
<span class="na">group</span><span class="pi">:</span> <span class="s">replica</span>
</code></pre></div></div>
<p>修改完prometheus.yml之后,启动prometheus:</p>
<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./prometheus <span class="nt">--config</span>.file<span class="o">=</span>prometheus.yml
</code></pre></div></div>
<p>进入网址 <a href="http://localhost:9090">localhost:9090</a> 看到如下界面即表示到这一步为止是成功的。</p>
<p><img src="/assets/images/prometheus-server.png" alt="prometheus-server" /></p>
<blockquote>
<p><strong>注</strong>: 如果你想要测试Prometheus是否正确配置, 可以检查 <code class="language-plaintext highlighter-rouge">http://{prometheus_host}:9090/targets</code> 查看各节点的监控上报状态.</p>
</blockquote>
<p>在Expression框内输入需要查找的内容,点击Excute即可在Element中展示查找到的内容,当选择Graph时可以显示该内容一段时间内数值变化情况。</p>
<p><strong><em>注意</em></strong></p>
<ol>
<li>
<p>实际运维过程中, 我们通常需要获取一些机器及操作系统的监控指标, 如cpu.busy, disk.iostat等等, 所以在部署Pegasus集群的时候,可以考虑在每一台机器上部署一个node exporter后台实例,具体可参考: <a href="https://github.com/prometheus/node_exporter">Node Exporter</a></p>
</li>
<li>
<p><a href="https://github.com/prometheus/alertmanager">Alert Manager</a> 为 Prometheus 报警组件,需单独部署(暂不提供方案,可参照官方文档自行搭建)。通过 Alert Manager,用户可以配置报警策略,接收邮件、短信等报警。</p>
</li>
<li>
<p>目前我们的prometheus.yml使用的是静态配置的方式(static_configs),其缺点是当动态扩容缩容的时候需要手动去修改该静态配置。当前Prometheus支持多种动态服务发现方式,例如k8s、consul和dns等等,用户也可以根据自己需求去定制实现。详情请参考文档:<a href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/">配置文件说明</a>、<a href="https://prometheus.io/blog/2018/07/05/implementing-custom-sd/">实现动态服务发现</a></p>
</li>
</ol>
<h2 id="配置-grafana">配置 Grafana</h2>
<p>本小节介绍如何配置 Grafana。</p>
<h3 id="第一步-安装及运行-grafana">第一步: 安装及运行 Grafana</h3>
<p>首先下载grafana二进制包:</p>
<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>wget https://dl.grafana.com/oss/release/grafana-6.0.0.linux-amd64.tar.gz //如果报错,可以尝试在后面添加--no-check-certificate
<span class="nb">tar</span> <span class="nt">-zxvf</span> grafana-6.0.0.linux-amd64.tar.gz
<span class="nb">cd </span>grafana-6.0.0
</code></pre></div></div>
<p>启动Grafana</p>
<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./bin/grafana-server web
</code></pre></div></div>
<p>观察到如下输出,即为启动成功</p>
<pre><code class="language-Linux">INFO[07-24|14:36:59] Starting Grafana logger=server version=6.0.0 commit=34a9a62 branch=HEAD compiled=2019-02-25T22:47:26+0800
...
INFO[07-24|14:37:00] HTTP Server Listen logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket=
INFO[07-24|14:37:00] cleanup of expired auth tokens done logger=auth count=2
</code></pre>
<h3 id="第二步-添加-prometheus-数据源">第二步: 添加 Prometheus 数据源</h3>
<ol>
<li>
<p>登录 Grafana 界面。如下图所示:</p>
<p><img src="/assets/images/grafana-login.png" alt="grafana-login" /></p>
<ul>
<li>默认地址:<a href="http://localhost:3000">http://localhost:3000</a></li>
<li>默认账户:admin</li>
<li>默认密码:admin</li>
</ul>
<blockquote>
<p><strong>注意:</strong></p>
<p>Change Password 步骤可以选择 Skip。</p>
</blockquote>
</li>
<li>
<p>点击 Grafana 侧边栏菜单 <strong>Configuration</strong> 中的 <strong>Data Source</strong>。</p>
</li>
<li>
<p>点击 <strong>Add data source</strong>。</p>
</li>
<li>
<p>指定数据源的相关信息:</p>
<ul>
<li>在 <strong>Name</strong> 处,为数据源指定一个名称。</li>
<li>在 <strong>Type</strong> 处,选择 <strong>Prometheus</strong>。</li>
<li>在 <strong>URL</strong> 处,指定 Prometheus 的 IP 地址。</li>
<li>根据需求指定其它字段。</li>
</ul>
</li>
<li>
<p>点击 Add 保存新的数据源。</p>
</li>
</ol>
<h3 id="第三步-导入-pegasus-dashboard">第三步: 导入 Pegasus DashBoard</h3>
<p>目前Pegasus拥有一个DashBoard,用于提供一些基本的监控信息。其相应的json文件: <a href="https://github.com/XiaoMi/pegasus-common/releases/download/deps/grafana-dashboard.json">Pegasus json文件</a></p>
<p>下载了json文件后,可以通过import的方式将其导入进去。其步骤如下:</p>
<p>进入grafana,点击左边框的”+”,选择import,进入import页面</p>
<p><img src="/assets/images/grafana-import-panel-upload.png" alt="grafana-import-panel" /></p>
<p>点击右上角的”Upload .json File”,然后选择文件。选择之后进入如下页面</p>
<p><img src="/assets/images/grafana-import-panel.png" alt="grafana-import-panel" /></p>
<p>然后点击左下角的”import”按钮完成导入,并进入到Pegasus相应的DashBoard,其页面如下所示</p>
<p><img src="/assets/images/grafana-dashboard-pegasus.png" alt="grafana-import-panel" /></p>
<p>从图中可以看出,Pegasus的DashBoard分为两个row: Pegasus-Cluster和Pegasus-Table,分别代表集群级别监控和表级监控。在左上角的cluster_name后输入具体的集群名字,便可以查看该集群相应的各种监控信息。</p>
</div>
</section>
<footer class="footer">
<div class="container">
<div class="content is-small has-text-centered">
<div style="margin-bottom: 20px;">
<a href="http://incubator.apache.org">
<img src="/assets/images/egg-logo.png"
width="15%"
alt="Apache Incubator"/>
</a>
</div>
Copyright &copy; 2023 <a href="http://www.apache.org">The Apache Software Foundation</a>.
Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a>.
<br><br>
Apache Pegasus is an effort undergoing incubation at The Apache Software Foundation (ASF),
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects
until a further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation status is
not necessarily a reflection of the completeness or stability of the code, it does indicate that the
project has yet to be fully endorsed by the ASF.
<br><br>
Apache Pegasus, Pegasus, Apache, the Apache feather logo, and the Apache Pegasus project logo are either
registered trademarks or trademarks of The Apache Software Foundation in the United States and other
countries.
</div>
</div>
</footer>
</div>
<!-- right panel -->
<div class="dashboard-panel is-small is-scrollable is-hidden-mobile">
<p class="menu-label">
<span class="icon">
<i class="fa fa-bars" aria-hidden="true"></i>
</span>
本页导航
</p>
<ul class="menu-list">
<li><a href="#组件">组件</a></li>
<li><a href="#配置-prometheus">配置 Prometheus</a>
<ul>
<li><a href="#第一步-配置pegasus服务">第一步: 配置Pegasus服务</a>
<ul>
<li><a href="#onebox使用prometheus">Onebox使用Prometheus</a></li>
</ul>
</li>
<li><a href="#第二步-安装及运行-prometheus">第二步: 安装及运行 Prometheus</a></li>
</ul>
</li>
<li><a href="#配置-grafana">配置 Grafana</a>
<ul>
<li><a href="#第一步-安装及运行-grafana">第一步: 安装及运行 Grafana</a></li>
<li><a href="#第二步-添加-prometheus-数据源">第二步: 添加 Prometheus 数据源</a></li>
<li><a href="#第三步-导入-pegasus-dashboard">第三步: 导入 Pegasus DashBoard</a></li>
</ul>
</li>
</ul>
</div>
</div>
<script src="/assets/js/app.js" type="text/javascript"></script>
<script>
docsearch({
container: '#docsearch',
appId: 'QRN30RBW0S',
indexName: 'pegasus-apache',
apiKey: 'd3a3252fa344359766707a106c4ed88f',
debug: true
});
</script>
</body>
</html>