kingbase

package
v0.0.0-...-5655933 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// 返回包含 "userstat" 和 "userstat_running" 这两个全局变量的当前值的结果集
	SQL_GLOBAL_VARIABLES = `SHOW GLOBAL VARIABLES WHERE Variable_Name='userstat' OR Variable_Name='userstat_running'`

	// 查询全局状态
	SQL_GLOBAL_STATUS = "SHOW GLOBAL STATUS;"

	// 查看实例启动时间
	SQL_START_TIME = "select sys_postmaster_start_time();"

	// 查看KES无故障运行时长
	SQL_UP_TIME  = "select date_trunc('second',current_timestamp - sys_postmaster_start_time()) as uptime;"
	SQL_RUN_TIME = "select extract(epoch from (current_timestamp - sys_postmaster_start_time())) as runningtime"
	// 统计所有数据库占用的磁盘空间总量
	SQL_SYS_DATABASE_SIZE = "select (sum(sys_database_size(datname))/1024/1024) || 'MB'  MB from sys_database;"
	// 查看所有会话执行的SQL信息
	SQL_ALL_QUERY_INFO = "select datname,usename,client_addr,client_port from sys_stat_activity;"
)

Variables

View Source
var BINLOG_VARS = map[string]struct{}{
	"binlog_space_usage_bytes": {},
}
View Source
var GALERA_VARS = map[string]struct{}{
	"wsrep_cluster_size":           {},
	"wsrep_local_recv_queue_avg":   {},
	"wsrep_flow_control_paused":    {},
	"wsrep_flow_control_paused_ns": {},
	"wsrep_flow_control_recv":      {},
	"wsrep_flow_control_sent":      {},
	"wsrep_cert_deps_distance":     {},
	"wsrep_local_send_queue_avg":   {},
	"wsrep_replicated_bytes":       {},
	"wsrep_received_bytes":         {},
	"wsrep_received":               {},
	"wsrep_local_state":            {},
	"wsrep_local_cert_failures":    {},
}
View Source
var GROUP_REPLICATION_VARS = map[string]struct{}{
	"transactions_count":                {},
	"transactions_check":                {},
	"conflict_detected":                 {},
	"transactions_row_validating":       {},
	"transactions_remote_applier_queue": {},
	"transactions_remote_applied":       {},
	"transactions_local_proposed":       {},
	"transactions_local_rollback":       {},
}
View Source
var INNODB_VARS = map[string]struct{}{
	"innodb_buffer_pool_size":          {},
	"open_files_limit":                 {},
	"innodb_log_waits":                 {},
	"innodb_data_reads":                {},
	"innodb_data_writes":               {},
	"innodb_os_log_fsyncs":             {},
	"innodb_mutex_spin_waits":          {},
	"innodb_mutex_spin_rounds":         {},
	"innodb_mutex_os_waits":            {},
	"innodb_row_lock_waits":            {},
	"innodb_row_lock_time":             {},
	"innodb_row_lock_current_waits":    {},
	"innodb_current_row_locks":         {},
	"innodb_buffer_pool_read_requests": {},
	"innodb_buffer_pool_reads":         {},
}

auto compute "innodb_buffer_pool_bytes_dirty": {}, "innodb_buffer_pool_bytes_free": {}, "innodb_buffer_pool_bytes_used": {}, "innodb_buffer_pool_bytes_total": {}, "innodb_buffer_pool_pages_utilization": {},

View Source
var OPTIONAL_INNODB_VARS = map[string]struct{}{
	"innodb_active_transactions":            {},
	"innodb_buffer_pool_bytes_data":         {},
	"innodb_buffer_pool_pages_data":         {},
	"innodb_buffer_pool_pages_dirty":        {},
	"innodb_buffer_pool_pages_flushed":      {},
	"innodb_buffer_pool_pages_free":         {},
	"innodb_buffer_pool_pages_total":        {},
	"innodb_buffer_pool_read_ahead":         {},
	"innodb_buffer_pool_read_ahead_evicted": {},
	"innodb_buffer_pool_read_ahead_rnd":     {},
	"innodb_buffer_pool_wait_free":          {},
	"innodb_buffer_pool_write_requests":     {},
	"innodb_checkpoint_age":                 {},
	"innodb_current_transactions":           {},
	"innodb_data_fsyncs":                    {},
	"innodb_data_pending_fsyncs":            {},
	"innodb_data_pending_reads":             {},
	"innodb_data_pending_writes":            {},
	"innodb_data_read":                      {},
	"innodb_data_written":                   {},
	"innodb_dblwr_pages_written":            {},
	"innodb_dblwr_writes":                   {},
	"innodb_hash_index_cells_total":         {},
	"innodb_hash_index_cells_used":          {},
	"innodb_history_list_length":            {},
	"innodb_ibuf_free_list":                 {},
	"innodb_ibuf_merged":                    {},
	"innodb_ibuf_merged_delete_marks":       {},
	"innodb_ibuf_merged_deletes":            {},
	"innodb_ibuf_merged_inserts":            {},
	"innodb_ibuf_merges":                    {},
	"innodb_ibuf_segment_size":              {},
	"innodb_ibuf_size":                      {},
	"innodb_lock_structs":                   {},
	"innodb_locked_tables":                  {},
	"innodb_locked_transactions":            {},
	"innodb_log_write_requests":             {},
	"innodb_log_writes":                     {},
	"innodb_lsn_current":                    {},
	"innodb_lsn_flushed":                    {},
	"innodb_lsn_last_checkpoint":            {},
	"innodb_mem_adaptive_hash":              {},
	"innodb_mem_additional_pool":            {},
	"innodb_mem_dictionary":                 {},
	"innodb_mem_file_system":                {},
	"innodb_mem_lock_system":                {},
	"innodb_mem_page_hash":                  {},
	"innodb_mem_recovery_system":            {},
	"innodb_mem_thread_hash":                {},
	"innodb_mem_total":                      {},
	"innodb_os_file_fsyncs":                 {},
	"innodb_os_file_reads":                  {},
	"innodb_os_file_writes":                 {},
	"innodb_os_log_pending_fsyncs":          {},
	"innodb_os_log_pending_writes":          {},
	"innodb_os_log_written":                 {},
	"innodb_pages_created":                  {},
	"innodb_pages_read":                     {},
	"innodb_pages_written":                  {},
	"innodb_pending_aio_log_ios":            {},
	"innodb_pending_aio_sync_ios":           {},
	"innodb_pending_buffer_pool_flushes":    {},
	"innodb_pending_checkpoint_writes":      {},
	"innodb_pending_ibuf_aio_reads":         {},
	"innodb_pending_log_flushes":            {},
	"innodb_pending_log_writes":             {},
	"innodb_pending_normal_aio_reads":       {},
	"innodb_pending_normal_aio_writes":      {},
	"innodb_queries_inside":                 {},
	"innodb_queries_queued":                 {},
	"innodb_read_views":                     {},
	"innodb_rows_deleted":                   {},
	"innodb_rows_inserted":                  {},
	"innodb_rows_read":                      {},
	"innodb_rows_updated":                   {},
	"innodb_s_lock_os_waits":                {},
	"innodb_s_lock_spin_rounds":             {},
	"innodb_s_lock_spin_waits":              {},
	"innodb_semaphore_wait_time":            {},
	"innodb_semaphore_waits":                {},
	"innodb_tables_in_use":                  {},
	"innodb_x_lock_os_waits":                {},
	"innodb_x_lock_spin_rounds":             {},
	"innodb_x_lock_spin_waits":              {},
}
View Source
var OPTIONAL_STATUS_VARS = map[string]struct{}{
	"binlog_cache_disk_use":      {},
	"binlog_cache_use":           {},
	"handler_commit":             {},
	"handler_delete":             {},
	"handler_prepare":            {},
	"handler_read_first":         {},
	"handler_read_key":           {},
	"handler_read_next":          {},
	"handler_read_prev":          {},
	"handler_read_rnd":           {},
	"handler_read_rnd_next":      {},
	"handler_rollback":           {},
	"handler_update":             {},
	"handler_write":              {},
	"opened_tables":              {},
	"qcache_total_blocks":        {},
	"qcache_free_blocks":         {},
	"qcache_free_memory":         {},
	"qcache_not_cached":          {},
	"qcache_queries_in_cache":    {},
	"select_full_join":           {},
	"select_full_range_join":     {},
	"select_range":               {},
	"select_range_check":         {},
	"select_scan":                {},
	"sort_merge_passes":          {},
	"sort_range":                 {},
	"sort_rows":                  {},
	"sort_scan":                  {},
	"table_locks_immediate":      {},
	"table_locks_immediate_rate": {},
	"threads_cached":             {},
	"threads_created":            {},
	"table_open_cache_hits":      {},
	"table_open_cache_misses":    {},
}
View Source
var PERFORMANCE_VARS = map[string]struct{}{
	"query_run_time_avg":                 {},
	"perf_digest_95th_percentile_avg_us": {},
}
View Source
var REPLICA_VARS = map[string]struct{}{
	"seconds_behind_source": {},
	"seconds_behind_master": {},
	"slave_io_running":      {},
	"slave_sql_running":     {},
	"master_server_id":      {},
	"source_server_id":      {},
	"sql_delay":             {},
	"exec_master_log_pos":   {},
	"read_master_log_pos":   {},
}

"replicas_connected": {},

View Source
var SCHEMA_VARS = map[string]struct{}{
	"information_schema_size": {},
}
View Source
var STATUS_VARS = map[string]struct{}{
	"uptime":                  {},
	"prepared_stmt_count":     {},
	"slow_queries":            {},
	"questions":               {},
	"queries":                 {},
	"com_select":              {},
	"com_insert":              {},
	"com_update":              {},
	"com_delete":              {},
	"com_replace":             {},
	"com_commit":              {},
	"com_rollback":            {},
	"com_load":                {},
	"com_insert_select":       {},
	"com_update_multi":        {},
	"com_delete_multi":        {},
	"com_replace_select":      {},
	"connections":             {},
	"max_used_connections":    {},
	"aborted_clients":         {},
	"aborted_connects":        {},
	"open_files":              {},
	"open_tables":             {},
	"bytes_sent":              {},
	"bytes_received":          {},
	"qcache_hits":             {},
	"qcache_inserts":          {},
	"qcache_lowmem_prunes":    {},
	"table_locks_waited":      {},
	"table_locks_waited_rate": {},
	"created_tmp_tables":      {},
	"created_tmp_disk_tables": {},
	"created_tmp_files":       {},
	"threads_connected":       {},
	"threads_running":         {},
	"key_blocks_used":         {},
	"key_blocks_unused":       {},
	"key_blocks_not_flushed":  {},
	"key_read_requests":       {},
	"key_reads":               {},
	"key_write_requests":      {},
	"key_writes":              {},
}
View Source
var SYNTHETIC_VARS = map[string]struct{}{
	"qcache_utilization":         {},
	"qcache_instant_utilization": {},
}
View Source
var TABLE_VARS = map[string]struct{}{
	"information_table_index_size": {},
	"information_table_data_size":  {},
}
View Source
var VARIABLES_VARS = map[string]struct{}{
	"key_buffer_size":         {},
	"key_cache_block_size":    {},
	"max_connections":         {},
	"max_prepared_stmt_count": {},
	"query_cache_size":        {},
	"table_open_cache":        {},
	"thread_cache_size":       {},
	"long_query_time":         {},
	"max_user_connections":    {},
	"read_only":               {},
}

Functions

This section is empty.

Types

type Instance

type Instance struct {
	config.InstanceConfig

	Address        string `toml:"address"`
	Username       string `toml:"username"`
	Password       string `toml:"password"`
	DBname         string `toml:"dbname"`
	Sslmode        string `toml:"sslmode"`
	Parameters     string `toml:"parameters"`
	TimeoutSeconds int64  `toml:"timeout_seconds"`

	Queries       []QueryConfig `toml:"queries"`
	GlobalQueries []QueryConfig `toml:"-"`

	// ExtraStatusMetrics              bool `toml:"extra_status_metrics"`
	// ExtraInnodbMetrics              bool `toml:"extra_innodb_metrics"`
	// GatherProcessListProcessByState bool `toml:"gather_processlist_processes_by_state"`
	// GatherProcessListProcessByUser  bool `toml:"gather_processlist_processes_by_user"`
	GatherSchemaSize bool `toml:"gather_schema_size"`

	DisableGlobalStatus    bool `toml:"disable_global_status"`
	DisableGlobalVariables bool `toml:"disable_global_variables"`

	tls.ClientConfig
	// contains filtered or unexported fields
}

插件实例的配置

func (*Instance) Gather

func (ins *Instance) Gather(slist *types.SampleList)

收集 KingBase 数据库的各种指标,并将它们推送到 Catagraf 的 SampleList 中

func (*Instance) Init

func (ins *Instance) Init() error

func (*Instance) InitValidMetrics

func (ins *Instance) InitValidMetrics()

初始化采集指标

type KingBase

type KingBase struct {
	config.PluginConfig
	Instances []*Instance   `toml:"instances"`
	Queries   []QueryConfig `toml:"queries"`
}

Catagraf 插件的配置,多个 Instance 实例,每个实例代表了一个 KingBase 数据库的连接

func (*KingBase) Clone

func (k *KingBase) Clone() inputs.Input

克隆 KingBase 插件的实例

func (*KingBase) GetInstances

func (k *KingBase) GetInstances() []inputs.Instance

返回所有 KingBase 插件实例的配置信息

func (*KingBase) Name

func (k *KingBase) Name() string

返回插件的名称

type QueryConfig

type QueryConfig struct {
	Mesurement    string          `toml:"mesurement"`
	LabelFields   []string        `toml:"label_fields"`
	MetricFields  []string        `toml:"metric_fields"`
	FieldToAppend string          `toml:"field_to_append"`
	Timeout       config.Duration `toml:"timeout"`
	Request       string          `toml:"request"`
}

定义了要查询的数据指标的配置

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL