Skip to content

Commit 56f541a

Browse files
committed
fix(mysql): mysql-monitor-update-monitor-config-error #14618
1 parent 9e4f865 commit 56f541a

File tree

6 files changed

+78
-18
lines changed

6 files changed

+78
-18
lines changed

dbm-services/mysql/db-tools/mysql-monitor/pkg/itemscollect/update_monitor_config/init.go

Lines changed: 71 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,24 @@ func (c *Checker) Run() (msg string, err error) {
3232
return "", err
3333
}
3434

35-
sii, err := c.getSelfInfo()
36-
if err != nil {
37-
slog.Error("get self info failed", slog.String("err", err.Error()))
38-
return "", nil
39-
}
40-
slog.Info(name, slog.Any("sii", sii))
35+
// 目前只更新 monitor config
36+
// item config 还要等等
37+
switch config.MonitorConfig.MachineType {
38+
case "backend", "remote", "single":
39+
selfInfo, err := c.getSelfInfoStorage()
40+
if err != nil {
41+
return "", err
42+
}
43+
slog.Info(name, slog.Any("self info storage", selfInfo))
44+
err = c.updateConfigFile(selfInfo)
45+
if err != nil {
46+
return "", err
47+
}
4148

42-
err = c.updateConfigFile(sii)
43-
if err != nil {
44-
return "", err
49+
default:
50+
// spider, proxy 暂时不自动更新
51+
return "", nil
4552
}
46-
4753
return "", nil
4854
}
4955

@@ -140,10 +146,10 @@ func (c *Checker) updateConfigFile(sii *mysql.StorageInstanceInfo) (err error) {
140146
return nil
141147
}
142148

143-
func (c *Checker) getSelfInfo() (sii *mysql.StorageInstanceInfo, err error) {
149+
func (c *Checker) readInstanceInfoContent() (b []byte, err error) {
144150
filePath := filepath.Join(
145151
define.DefaultCommonConfigDir,
146-
define.DefaultNginxProxyAddrsFileName,
152+
define.DefaultInstanceInfoFileName,
147153
)
148154
f, err := os.OpenFile(filePath, os.O_RDONLY, os.ModePerm)
149155
if err != nil {
@@ -154,8 +160,60 @@ func (c *Checker) getSelfInfo() (sii *mysql.StorageInstanceInfo, err error) {
154160
)
155161
return nil, err
156162
}
163+
defer func() {
164+
_ = f.Close()
165+
}()
166+
167+
b, err = io.ReadAll(f)
168+
if err != nil {
169+
slog.Error(
170+
name,
171+
slog.String("err", err.Error()),
172+
)
173+
return nil, err
174+
}
175+
return b, nil
176+
}
177+
178+
func (c *Checker) getSelfInfoProxy() (pii *mysql.ProxyInstanceInfo, err error) {
179+
b, err := c.readInstanceInfoContent()
180+
if err != nil {
181+
slog.Error(
182+
name,
183+
slog.String("err", err.Error()),
184+
)
185+
return nil, err
186+
}
187+
188+
var piis []mysql.ProxyInstanceInfo
189+
err = json.Unmarshal(b, &piis)
190+
if err != nil {
191+
slog.Error(
192+
name,
193+
slog.String("err", err.Error()),
194+
)
195+
return nil, err
196+
}
197+
198+
idx := slices.IndexFunc(
199+
piis, func(ele mysql.ProxyInstanceInfo) bool {
200+
return ele.Ip == config.MonitorConfig.Ip && ele.Port == config.MonitorConfig.Port
201+
},
202+
)
203+
if idx < 0 {
204+
err := fmt.Errorf("can't find %s:%d in %v", config.MonitorConfig.Ip, config.MonitorConfig.Port, piis)
205+
slog.Error(
206+
name,
207+
slog.String("err", err.Error()),
208+
)
209+
return nil, err
210+
}
211+
212+
return &piis[idx], nil
213+
}
157214

158-
b, err := io.ReadAll(f)
215+
func (c *Checker) getSelfInfoStorage() (sii *mysql.StorageInstanceInfo, err error) {
216+
b, err := c.readInstanceInfoContent()
159217
if err != nil {
160218
slog.Error(
161219
name,

dbm-ui/backend/db_monitor/tpls/alarm/mysql/Mysql dbha切换mysql成功策略.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,8 @@
238238
"labels": [
239239
"DBM",
240240
"DBM_MYSQL",
241-
"NO_MONITOR_TARGET"
241+
"NO_MONITOR_TARGET",
242+
"NEED_AUTOFIX/MYSQL_DBHA_AF_TODO_REGISTER"
242243
],
243244
"app": "",
244245
"path": "",

dbm-ui/backend/db_services/redis/redis_keystat_report/migrations/0001_initial.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# Generated by Django 4.2.23 on 2025-11-26 08:58
22

3-
import backend.flow.consts
43
from django.db import migrations, models
54

5+
import backend.flow.consts
6+
67

78
class Migration(migrations.Migration):
89

dbm-ui/backend/db_services/redis/redis_keystat_report/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
from backend.components import BKMonitorV3Api
2626
from backend.configuration.constants import DBType
2727
from backend.db_meta.models import AppCache
28+
from backend.db_services.redis.capacity_evaluate_service.util import UNIFY_QUERY_PARAMS
2829
from backend.db_services.redis.redis_keystat_report.filters import (
2930
KeyStatRecordDetailFilter,
3031
KeyStatReportRecordFilter,
@@ -41,7 +42,6 @@
4142
)
4243
from backend.iam_app.handlers.drf_perm.base import DBManagePermission
4344
from backend.utils.excel import ExcelHandler
44-
from backend.db_services.redis.capacity_evaluate_service.util import UNIFY_QUERY_PARAMS
4545

4646
SWAGGER_TAG = "db_services/redis/redis_keystat_report"
4747

dbm-ui/backend/flow/engine/bamboo/scene/redis/redis_keystat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from backend.core.encrypt.constants import AsymmetricCipherConfigType
1919
from backend.core.encrypt.handlers import AsymmetricHandler
2020
from backend.db_meta.api.cluster.nosqlcomm.redis_cluster_repo import DbmClusterRepository
21+
from backend.db_meta.enums import InstanceRole
2122
from backend.db_meta.enums.cluster_type import ClusterType
2223
from backend.db_meta.models.cluster import Cluster
2324
from backend.db_proxy.constants import ExtensionType
@@ -29,7 +30,6 @@
2930
from backend.flow.plugins.components.collections.redis.trans_flies import TransFileComponent
3031
from backend.flow.utils.base.payload_handler import PayloadHandler
3132
from backend.flow.utils.redis.redis_context_dataclass import ActKwargs, CommonContext
32-
from backend.db_meta.enums import InstanceRole
3333

3434
logger = logging.getLogger("flow")
3535

dbm-ui/backend/ticket/builders/mysql/mysql_migrate_single.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from backend.ticket import builders
1818
from backend.ticket.builders.common.base import BaseOperateResourceParamBuilder, HostInfoSerializer
1919
from backend.ticket.builders.common.constants import MySQLBackupSource
20-
from backend.ticket.builders.mysql.base import MySQLBaseOperateDetailSerializer, BaseMySQLSingleTicketFlowBuilder
20+
from backend.ticket.builders.mysql.base import BaseMySQLSingleTicketFlowBuilder, MySQLBaseOperateDetailSerializer
2121
from backend.ticket.constants import TicketType
2222

2323

0 commit comments

Comments
 (0)