OceanBase
支持通过系统租户采集 OceanBase 监控指标。
已测试的版本:
- OceanBase 3.2.4 企业版
配置¶
前置条件¶
- 创建监控账号
使用 OceanBase 系统租户账号创建监控账号,并授予以下权限:
CREATE USER 'datakit'@'localhost' IDENTIFIED BY '<UNIQUEPASSWORD>';
-- MySQL 8.0+ create the datakit user with the caching_sha2_password method
CREATE USER 'datakit'@'localhost' IDENTIFIED WITH caching_sha2_password by '<UNIQUEPASSWORD>';
-- 授权
GRANT SELECT ON *.* TO 'datakit'@'localhost';
Info
-
如用
localhost时发现采集器有如下报错,需要将上述步骤的localhost换成::1: -
以上创建、授权操作,均限定了
datakit这个用户,只能在 OceanBase 主机上(localhost)访问。如果需要远程采集,建议将localhost替换成%(表示 DataKit 可以在任意机器上访问),也可用特定的 DataKit 安装机器地址。
采集器配置¶
进入 DataKit 安装目录下的 conf.d/samples 目录,复制 oceanbase.conf.sample 并命名为 oceanbase.conf。示例如下:
[[inputs.oceanbase]]
# host name
host = "localhost"
## port
port = 2883
## tenant name
tenant = "sys"
## cluster name
cluster = "obcluster"
## user name
user = "datakit"
## password
password = "<PASS>"
## database name
database = "oceanbase"
## mode. mysql only.
mode = "mysql"
## @param connect_timeout - number - optional - default: 10s
# connect_timeout = "10s"
interval = "10s"
## OceanBase slow query time threshold defined. If larger than this, the executed sql will be reported.
slow_query_time = "0s"
## Set true to enable election
election = true
## Run a custom SQL query and collect corresponding metrics.
# [[inputs.oceanbase.custom_queries]]
# sql = '''
# select
# CON_ID tenant_id,
# STAT_ID,
# replace(name, " ", "_") metric_name,
# VALUE
# from
# v$sysstat;
# '''
# metric = "oceanbase_custom"
# tags = ["metric_name", "tenant_id"]
# fields = ["VALUE"]
[inputs.oceanbase.tags]
# some_tag = "some_value"
# more_tag = "some_other_value"
配置好后,重启 DataKit 即可。
目前可以通过 ConfigMap 方式注入采集器配置来开启采集器。
慢查询支持¶
DataKit 可以将执行超过用户自定义时间的 SQL 语句报告给观测云,在日志中显示,来源名是 oceanbase_log。
该功能默认情况下是关闭的,用户可以在 OceanBase 的配置文件中将其打开,方法如下:
将 slow_query_time 后面的值从 0s 改成用户心中的阈值,最小值 1 毫秒,一般推荐 10 秒。
Info
failed_obfuscate:SQL 脱敏失败的原因。只有在 SQL 脱敏失败才会出现。SQL 脱敏失败后原 SQL 会被上报。更多字段解释可以查看这里- 如果值是
0s或空或小于 1 毫秒,则不会开启 OceanBase 采集器的慢查询功能,即默认状态 - 没有执行完成的 SQL 语句不会被查询到
指标¶
以下所有数据采集,默认会追加全局选举 tag,也可以在配置中通过 [inputs.oceanbase.tags] 指定其它标签:
oceanbase_stat¶
| Tags & Fields | Description |
|---|---|
| cluster ( tag) |
Cluster Name |
| host ( tag) |
The server address or the host Name |
| metric_name ( tag) |
The name of the statistical event. |
| stat_id ( tag) |
The ID of the statistical event. |
| svr_ip ( tag) |
The IP address of the server where the information is located. |
| tenant_id ( tag) |
Tenant id |
| tenant_name ( tag) |
Tenant Name |
| metric_value | The value of the statistical item. Type: int | (gauge) Unit: N/A |
oceanbase_cache_block¶
| Tags & Fields | Description |
|---|---|
| cache_name ( tag) |
The cache name. |
| cluster ( tag) |
Cluster Name |
| host ( tag) |
The server address or the host Name |
| svr_ip ( tag) |
The IP address of the server where the information is located. |
| svr_port ( tag) |
The port of the server where the information is located. |
| tenant_id ( tag) |
Tenant id |
| tenant_name ( tag) |
Tenant Name |
| cache_size | The block cache size in the specified statistical range. Type: int | (digital,MB) Unit: digital,MB |
oceanbase_cache_plan¶
| Tags & Fields | Description |
|---|---|
| cluster ( tag) |
Cluster Name |
| host ( tag) |
The server address or the host Name |
| svr_ip ( tag) |
The IP address of the server where the information is located. |
| svr_port ( tag) |
The port of the server where the information is located. |
| tenant_id ( tag) |
Tenant id |
| tenant_name ( tag) |
Tenant Name |
| access_count | The number of times that the query accesses the plan cache. Type: int | (count) Unit: count |
| hit_count | The number of plan cache hits. Type: int | (count) Unit: count |
oceanbase_event¶
| Tags & Fields | Description |
|---|---|
| cluster ( tag) |
Cluster Name |
| event_group ( tag) |
The group of the event. |
| host ( tag) |
The server address or the host Name |
| svr_ip ( tag) |
The IP address of the server where the information is located. |
| tenant_id ( tag) |
Tenant id |
| tenant_name ( tag) |
Tenant Name |
| time_waited | The total wait time for the event in seconds. Type: int | (time,s) Unit: time,s |
| total_waits | The total number of waits for the event. Type: int | (count) Unit: count |
oceanbase_session¶
| Tags & Fields | Description |
|---|---|
| cluster ( tag) |
Cluster Name |
| host ( tag) |
The server address or the host Name |
| svr_ip ( tag) |
The IP address of the server where the information is located. |
| svr_port ( tag) |
The port of the server where the information is located. |
| tenant_id ( tag) |
Tenant id |
| tenant_name ( tag) |
Tenant Name |
| active_cnt | The number of active sessions within a tenant. Type: int | (count) Unit: count |
| all_cnt | The total number of sessions within a tenant. Type: int | (count) Unit: count |
oceanbase_clog¶
| Tags & Fields | Description |
|---|---|
| cluster ( tag) |
Cluster Name |
| host ( tag) |
The server address or the host Name |
| replica_type ( tag) |
The type of the replica |
| svr_ip ( tag) |
The IP address of the server where the information is located. |
| svr_port ( tag) |
The port of the server where the information is located. |
| tenant_id ( tag) |
Tenant id |
| tenant_name ( tag) |
Tenant Name |
| max_clog_sync_delay_seconds | The max clog synchronization delay of an tenant. Type: int | (time,s) Unit: time,s |
日志¶
oceanbase_log¶
| Tags & Fields | Description |
|---|---|
| cluster ( tag) |
Cluster Name |
| host ( tag) |
Hostname. |
| oceanbase_server ( tag) |
The address of the database instance (including port). |
| oceanbase_service ( tag) |
OceanBase service name. |
| tenant_id ( tag) |
Tenant id |
| tenant_name ( tag) |
Tenant Name |
| message | The text of the logging. Type: string Unit: N/A |
| status | The status of the logging, only supported info/emerg/alert/critical/error/warning/debug/OK/unknown.Type: string Unit: N/A |