Skip to content

Commit 47101c3

Browse files
author
Cairry
committed
♻️ Remove support for VictoriaMetrics datasource
1 parent 4c2d870 commit 47101c3

File tree

16 files changed

+215
-346
lines changed

16 files changed

+215
-346
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ WatchAlert 是一款专为云原生环境设计 的轻量级监控告警引擎
3131

3232
| 监控类型 | 支持的数据源 |
3333
|:-------:|-------------------------------------------------------------------------------------------|
34-
| Metrics | Prometheus、VictoriaMetrics |
35-
| Logs | Loki、ElasticSearch、VictoriaLogs、ClickHouse、SLS(阿里云日志服务)、TLS(火山云日志服务,开发中)、CLS(腾讯云日志服务,开发中) |
34+
| Metrics | Prometheus. |
35+
| Logs | Loki、ElasticSearch、VictoriaLogs、ClickHouse、SLS(阿里云日志服务)、TLS(火山云日志服务,开发中)、CLS(腾讯云日志服务,开发中) |
3636
| Traces | Jaeger |
3737
| Events | Kubernetes 事件监控 |
38-
| 网络拨测 | HTTP、ICMP、TCP、SSL |
39-
| 通知渠道 | 飞书、钉钉、企业微信、邮件、自定义 Webhook、Slack |
38+
| 网络拨测 | HTTP、ICMP、TCP、SSL |
39+
| 通知渠道 | 飞书、钉钉、企业微信、邮件、自定义 Webhook、Slack |
4040

4141

4242
## 🔍 核心亮点

alert/eval/eval.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
const (
2121
// 数据源类型
2222
DatasourceTypePrometheus = "Prometheus"
23-
DatasourceTypeVictoriaMetrics = "VictoriaMetrics"
2423
DatasourceTypeAliCloudSLS = "AliCloudSLS"
2524
DatasourceTypeLoki = "Loki"
2625
DatasourceTypeElasticSearch = "ElasticSearch"
@@ -40,7 +39,6 @@ const (
4039
// 数据源处理器映射
4140
var datasourceHandlers = map[string]func(*ctx.Context, string, string, models.AlertRule) []string{
4241
DatasourceTypePrometheus: metrics,
43-
DatasourceTypeVictoriaMetrics: metrics,
4442
DatasourceTypeAliCloudSLS: logs,
4543
DatasourceTypeLoki: logs,
4644
DatasourceTypeElasticSearch: logs,

alert/eval/query.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
v1 "k8s.io/api/core/v1"
1818
)
1919

20-
// Metrics 包含 Prometheus、VictoriaMetrics 数据源
20+
// Metrics Prometheus 数据源
2121
func metrics(ctx *ctx.Context, datasourceId, datasourceType string, rule models.AlertRule) []string {
2222
pools := ctx.Redis.ProviderPools()
2323
var (
@@ -44,14 +44,6 @@ func metrics(ctx *ctx.Context, datasourceId, datasourceType string, rule models.
4444
}
4545

4646
externalLabels = cli.(provider.PrometheusProvider).GetExternalLabels()
47-
case provider.VictoriaMetricsDsProvider:
48-
resQuery, err = cli.(provider.VictoriaMetricsProvider).Query(rule.PrometheusConfig.PromQL)
49-
if err != nil {
50-
logc.Errorf(ctx.Ctx, "VictoriaMetrics查询失败, 规则ID: %s, 规则名称: %s, 数据源ID: %s, PromQL: %s, 错误: %v", rule.RuleId, rule.RuleName, datasourceId, rule.PrometheusConfig.PromQL, err)
51-
return nil
52-
}
53-
54-
externalLabels = cli.(provider.VictoriaMetricsProvider).GetExternalLabels()
5547
default:
5648
logc.Errorf(ctx.Ctx, "不支持的指标类型, 规则ID: %s, 规则名称: %s, 数据源ID: %s, 类型: %s", rule.RuleId, rule.RuleName, datasourceId, datasourceType)
5749
return nil

go.mod

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ require (
2727
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
2828
github.com/mitchellh/mapstructure v1.5.0
2929
github.com/olivere/elastic/v7 v7.0.32
30-
github.com/prometheus/client_golang v1.23.2
31-
github.com/prometheus/common v0.67.4
3230
github.com/prometheus/prometheus v0.308.0
3331
github.com/robfig/cron/v3 v3.0.1
3432
github.com/rs/xid v1.5.0
@@ -125,6 +123,7 @@ require (
125123
github.com/pierrec/lz4/v4 v4.1.22 // indirect
126124
github.com/pkg/errors v0.9.1 // indirect
127125
github.com/prometheus/client_model v0.6.2 // indirect
126+
github.com/prometheus/common v0.67.4 // indirect
128127
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
129128
github.com/segmentio/asm v1.2.0 // indirect
130129
github.com/shopspring/decimal v1.4.0 // indirect

go.sum

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,6 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.39.1 h1:mLlUgHn02ue8whiR4BmxxGJLR2gw
9696
github.com/aws/aws-sdk-go-v2/service/sts v1.39.1/go.mod h1:E19xDjpzPZC7LS2knI9E6BaRFDK43Eul7vd6rSq2HWk=
9797
github.com/aws/smithy-go v1.23.2 h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM=
9898
github.com/aws/smithy-go v1.23.2/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
99-
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
100-
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
10199
github.com/bytedance/sonic v1.14.0 h1:/OfKt8HFw0kh2rj8N0F6C/qPGRESq0BbaNZgcNXXzQQ=
102100
github.com/bytedance/sonic v1.14.0/go.mod h1:WoEbx8WTcFJfzCe0hbmyTGrfjt8PzNEBdxlNUO24NhA=
103101
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
@@ -187,8 +185,6 @@ github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
187185
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
188186
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
189187
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
190-
github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
191-
github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
192188
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
193189
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
194190
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -243,8 +239,6 @@ github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
243239
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible/go.mod h1:1c7szIrayyPPB/987hsnvNzLushdWf4o/79s3P08L8A=
244240
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
245241
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
246-
github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
247-
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
248242
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
249243
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
250244
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
@@ -289,8 +283,6 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWu
289283
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
290284
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
291285
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
292-
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
293-
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
294286
github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=
295287
github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
296288
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
@@ -326,15 +318,11 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
326318
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
327319
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
328320
github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
329-
github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
330-
github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
331321
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
332322
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
333323
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
334324
github.com/prometheus/common v0.67.4 h1:yR3NqWO1/UyO1w2PhUvXlGQs/PtFmoveVO0KZ4+Lvsc=
335325
github.com/prometheus/common v0.67.4/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
336-
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
337-
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
338326
github.com/prometheus/prometheus v0.308.0 h1:kVh/5m1n6m4cSK9HYTDEbMxzuzCWyEdPdKSxFRxXj04=
339327
github.com/prometheus/prometheus v0.308.0/go.mod h1:xXYKzScyqyFHihpS0UsXpC2F3RA/CygOs7wb4mpdusE=
340328
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=

internal/models/datasource.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ type Write struct {
2525
}
2626

2727
type HTTP struct {
28-
URL string `json:"url"`
29-
Timeout int64 `json:"timeout"`
28+
URL string `json:"url"`
29+
Headers map[string]string `json:"headers"`
30+
Timeout int64 `json:"timeout"`
3031
}
3132

3233
type Auth struct {

internal/services/datasource.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func (ds datasourceService) Create(req interface{}) (interface{}, interface{}) {
6464
return nil, err
6565
}
6666

67-
if dataSource.Type == "Prometheus" || dataSource.Type == "VictoriaMetrics" {
67+
if dataSource.Type == "Prometheus" && dataSource.Write.Enabled == "On" {
6868
alert.Probe.ResetWriteCache(data.ID, probe.NewWriter(probe.MetricsWriterConfig{
6969
Endpoint: dataSource.Write.URL,
7070
Username: dataSource.Auth.User,
@@ -107,7 +107,7 @@ func (ds datasourceService) Update(req interface{}) (interface{}, interface{}) {
107107
return nil, err
108108
}
109109

110-
if dataSource.Type == "Prometheus" || dataSource.Type == "VictoriaMetrics" {
110+
if dataSource.Type == "Prometheus" && dataSource.Write.Enabled == "On" {
111111
alert.Probe.ResetWriteCache(data.ID, probe.NewWriter(probe.MetricsWriterConfig{
112112
Endpoint: dataSource.Write.URL,
113113
Username: dataSource.Auth.User,
@@ -163,8 +163,6 @@ func (ds datasourceService) WithAddClientToProviderPools(datasource models.Alert
163163
switch datasource.Type {
164164
case provider.PrometheusDsProvider:
165165
cli, err = provider.NewPrometheusClient(datasource)
166-
case provider.VictoriaMetricsDsProvider:
167-
cli, err = provider.NewVictoriaMetricsClient(datasource)
168166
case provider.LokiDsProviderName:
169167
cli, err = provider.NewLokiClient(datasource)
170168
case provider.AliCloudSLSDsProviderName:

pkg/provider/check.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ var datasourceFactories = map[string]ClientFactory{
2020
"Prometheus": func(ds models.AlertDataSource) (HealthChecker, error) {
2121
return NewPrometheusClient(ds)
2222
},
23-
"VictoriaMetrics": func(ds models.AlertDataSource) (HealthChecker, error) {
24-
return NewVictoriaMetricsClient(ds)
25-
},
2623
"Kubernetes": func(ds models.AlertDataSource) (HealthChecker, error) {
2724
return NewKubernetesClient(context.Background(), ds.KubeConfig, ds.Labels)
2825
},

pkg/provider/logs.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ type Elasticsearch struct {
6161
RawJson string
6262
}
6363

64-
// VictoriaLogs victoriaMetrics数据源配置
64+
// VictoriaLogs 数据源配置
6565
type VictoriaLogs struct {
6666
Query string `json:"query"` // 查询语句
6767
Limit int // 要返回的最大条目数

pkg/provider/logs_elasticsearch.go

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@ import (
55
"encoding/base64"
66
"errors"
77
"fmt"
8-
"github.com/bytedance/sonic"
9-
"github.com/olivere/elastic/v7"
108
"watchAlert/internal/models"
119
"watchAlert/pkg/tools"
10+
11+
"github.com/bytedance/sonic"
12+
"github.com/olivere/elastic/v7"
1213
)
1314

1415
type ElasticSearchDsProvider struct {
15-
cli *elastic.Client
16-
url string
17-
username string
18-
password string
16+
Cli *elastic.Client
17+
Url string
18+
Username string
19+
Password string
1920
ExternalLabels map[string]interface{}
2021
}
2122

@@ -30,10 +31,10 @@ func NewElasticSearchClient(ctx context.Context, ds models.AlertDataSource) (Log
3031
}
3132

3233
return ElasticSearchDsProvider{
33-
cli: client,
34-
url: ds.HTTP.URL,
35-
username: ds.Auth.User,
36-
password: ds.Auth.Pass,
34+
Cli: client,
35+
Url: ds.HTTP.URL,
36+
Username: ds.Auth.User,
37+
Password: ds.Auth.Pass,
3738
ExternalLabels: ds.Labels,
3839
}, nil
3940
}
@@ -90,7 +91,7 @@ func (e ElasticSearchDsProvider) Query(options LogQueryOptions) (Logs, int, erro
9091
return Logs{}, 0, fmt.Errorf("undefined QueryType, type: %s", options.ElasticSearch.QueryType)
9192
}
9293

93-
res, err := e.cli.Search().
94+
res, err := e.Cli.Search().
9495
Index(indexName).
9596
Query(query).
9697
Pretty(true).
@@ -123,12 +124,12 @@ func (e ElasticSearchDsProvider) Query(options LogQueryOptions) (Logs, int, erro
123124

124125
func (e ElasticSearchDsProvider) Check() (bool, error) {
125126
header := make(map[string]string)
126-
url := fmt.Sprintf("%s/_cat/health", e.url)
127-
if e.username != "" {
128-
auth := e.username + ":" + e.password
127+
url := fmt.Sprintf("%s/_cat/health", e.Url)
128+
if e.Username != "" {
129+
auth := e.Username + ":" + e.Password
129130
basicAuth := "Basic " + base64.StdEncoding.EncodeToString([]byte(auth))
130131
header["Authorization"] = basicAuth
131-
url = fmt.Sprintf("%s/_cat/health", e.url)
132+
url = fmt.Sprintf("%s/_cat/health", e.Url)
132133
}
133134
res, err := tools.Get(header, url, 10)
134135
if err != nil {

0 commit comments

Comments
 (0)