Skip to content

Commit a401d48

Browse files
authored
fix(cls): [118241302] add syntax_rule params for cls alarm resource (#2699)
* add * add
1 parent 05c224a commit a401d48

File tree

12 files changed

+3702
-2369
lines changed

12 files changed

+3702
-2369
lines changed

.changelog/2699.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_cls_alarm: supports set `syntax_rule`
3+
```

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ require (
4545
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.748
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.860
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
48-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.860
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.947
48+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.952
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.952
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692

go.sum

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544 h1:
860860
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544/go.mod h1:c37rIdL3LrJXYwrfp9c8L4MabTqKIZUe1xvnWhN75oc=
861861
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.860 h1:IU20AhNd0fEbgFzTTGB8cdMkUCrgB0FsLd0puC4QDzU=
862862
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.860/go.mod h1:RP3NkBvKio1dFmCNKozHX9qmef57sUCfsTcE0FnCvjk=
863+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.952 h1:+4g+Wp3WKTf/QU814lF+kft4jP/NNUkggciB/n0joTM=
864+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.952/go.mod h1:OW+FNkQgeQTesREQ7iPA4g9V81cEb/NcWSYO6bYe2Qo=
863865
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.414/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
864866
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
865867
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.524/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
@@ -930,10 +932,13 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.916 h1:30u2
930932
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.916/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
931933
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.920 h1:Kmm4rJrdI7D29IMOTT2oNp70h0TGsZ3obaekS8hvYkU=
932934
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.920/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
935+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.921/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
933936
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.932 h1:MB1+Ll6JxWTpZw/v0dMRvMEJhlcDKxK/JMQ8O5owRVc=
934937
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.932/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
935938
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.947 h1:obeD8UftWQ6XO1OlQQYMAJ2r6tqKPTQ/+8IrZAE0BMs=
936939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.947/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
940+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.952 h1:fqO77A01ayOji0F0ovFKRlbatbvVsDhyjO7h0MXJsFk=
941+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.952/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
937942
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
938943
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860/go.mod h1:NZo1WplQcC314kMlCRUoy8NQju2BnolIJj7NAWgsuhY=
939944
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=

tencentcloud/services/cls/resource_tc_cls_alarm.go

Lines changed: 75 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ func ResourceTencentCloudClsAlarm() *schema.Resource {
6767
Required: true,
6868
Description: "logset id.",
6969
},
70+
"syntax_rule": {
71+
Type: schema.TypeInt,
72+
Optional: true,
73+
Computed: true,
74+
Description: "Retrieve grammar rules, 0: Lucene syntax, 1: CQL syntax, Default value is 0.",
75+
},
7076
},
7177
},
7278
},
@@ -221,13 +227,13 @@ func resourceTencentCloudClsAlarmCreate(d *schema.ResourceData, meta interface{}
221227
defer tccommon.LogElapsed("resource.tencentcloud_cls_alarm.create")()
222228
defer tccommon.InconsistentCheck(d, meta)()
223229

224-
logId := tccommon.GetLogId(tccommon.ContextNil)
225-
226230
var (
231+
logId = tccommon.GetLogId(tccommon.ContextNil)
227232
request = cls.NewCreateAlarmRequest()
228233
response = cls.NewCreateAlarmResponse()
229234
alarmId string
230235
)
236+
231237
if v, ok := d.GetOk("name"); ok {
232238
request.Name = helper.String(v.(string))
233239
}
@@ -239,21 +245,31 @@ func resourceTencentCloudClsAlarmCreate(d *schema.ResourceData, meta interface{}
239245
if v, ok := dMap["topic_id"]; ok {
240246
alarmTarget.TopicId = helper.String(v.(string))
241247
}
248+
242249
if v, ok := dMap["query"]; ok {
243250
alarmTarget.Query = helper.String(v.(string))
244251
}
252+
245253
if v, ok := dMap["number"]; ok {
246254
alarmTarget.Number = helper.IntInt64(v.(int))
247255
}
256+
248257
if v, ok := dMap["start_time_offset"]; ok {
249258
alarmTarget.StartTimeOffset = helper.IntInt64(v.(int))
250259
}
260+
251261
if v, ok := dMap["end_time_offset"]; ok {
252262
alarmTarget.EndTimeOffset = helper.IntInt64(v.(int))
253263
}
264+
254265
if v, ok := dMap["logset_id"]; ok {
255266
alarmTarget.LogsetId = helper.String(v.(string))
256267
}
268+
269+
if v, ok := dMap["syntax_rule"]; ok {
270+
alarmTarget.SyntaxRule = helper.IntUint64(v.(int))
271+
}
272+
257273
request.AlarmTargets = append(request.AlarmTargets, &alarmTarget)
258274
}
259275
}
@@ -263,9 +279,11 @@ func resourceTencentCloudClsAlarmCreate(d *schema.ResourceData, meta interface{}
263279
if v, ok := dMap["type"]; ok {
264280
monitorTime.Type = helper.String(v.(string))
265281
}
282+
266283
if v, ok := dMap["time"]; ok {
267284
monitorTime.Time = helper.IntInt64(v.(int))
268285
}
286+
269287
request.MonitorTime = &monitorTime
270288
}
271289

@@ -307,13 +325,15 @@ func resourceTencentCloudClsAlarmCreate(d *schema.ResourceData, meta interface{}
307325
if v, ok := dMap["body"]; ok {
308326
callBackInfo.Body = helper.String(v.(string))
309327
}
328+
310329
if v, ok := dMap["headers"]; ok {
311330
headersSet := v.(*schema.Set).List()
312331
for i := range headersSet {
313332
headers := headersSet[i].(string)
314333
callBackInfo.Headers = append(callBackInfo.Headers, &headers)
315334
}
316335
}
336+
317337
request.CallBack = &callBackInfo
318338
}
319339

@@ -324,25 +344,31 @@ func resourceTencentCloudClsAlarmCreate(d *schema.ResourceData, meta interface{}
324344
if v, ok := dMap["name"]; ok {
325345
analysisDimensional.Name = helper.String(v.(string))
326346
}
347+
327348
if v, ok := dMap["type"]; ok {
328349
analysisDimensional.Type = helper.String(v.(string))
329350
}
351+
330352
if v, ok := dMap["content"]; ok {
331353
analysisDimensional.Content = helper.String(v.(string))
332354
}
355+
333356
if v, ok := dMap["config_info"]; ok {
334357
for _, item := range v.([]interface{}) {
335358
configInfoMap := item.(map[string]interface{})
336359
alarmAnalysisConfig := cls.AlarmAnalysisConfig{}
337360
if v, ok := configInfoMap["key"]; ok {
338361
alarmAnalysisConfig.Key = helper.String(v.(string))
339362
}
363+
340364
if v, ok := configInfoMap["value"]; ok {
341365
alarmAnalysisConfig.Value = helper.String(v.(string))
342366
}
367+
343368
analysisDimensional.ConfigInfo = append(analysisDimensional.ConfigInfo, &alarmAnalysisConfig)
344369
}
345370
}
371+
346372
request.Analysis = append(request.Analysis, &analysisDimensional)
347373
}
348374
}
@@ -354,9 +380,11 @@ func resourceTencentCloudClsAlarmCreate(d *schema.ResourceData, meta interface{}
354380
} else {
355381
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
356382
}
383+
357384
response = result
358385
return nil
359386
})
387+
360388
if err != nil {
361389
log.Printf("[CRITAL]%s create cls alarm failed, reason:%+v", logId, err)
362390
return err
@@ -382,13 +410,12 @@ func resourceTencentCloudClsAlarmRead(d *schema.ResourceData, meta interface{})
382410
defer tccommon.LogElapsed("resource.tencentcloud_cls_alarm.read")()
383411
defer tccommon.InconsistentCheck(d, meta)()
384412

385-
logId := tccommon.GetLogId(tccommon.ContextNil)
386-
387-
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
388-
389-
service := ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
390-
391-
alarmId := d.Id()
413+
var (
414+
logId = tccommon.GetLogId(tccommon.ContextNil)
415+
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
416+
service = ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
417+
alarmId = d.Id()
418+
)
392419

393420
alarm, err := service.DescribeClsAlarmById(ctx, alarmId)
394421
if err != nil {
@@ -434,6 +461,10 @@ func resourceTencentCloudClsAlarmRead(d *schema.ResourceData, meta interface{})
434461
alarmTargetsMap["logset_id"] = alarmTarget.LogsetId
435462
}
436463

464+
if alarmTarget.SyntaxRule != nil {
465+
alarmTargetsMap["syntax_rule"] = alarmTarget.SyntaxRule
466+
}
467+
437468
alarmTargetsList = append(alarmTargetsList, alarmTargetsMap)
438469
}
439470

@@ -546,6 +577,7 @@ func resourceTencentCloudClsAlarmRead(d *schema.ResourceData, meta interface{})
546577
if err != nil {
547578
return err
548579
}
580+
549581
_ = d.Set("tags", tags)
550582

551583
return nil
@@ -555,15 +587,14 @@ func resourceTencentCloudClsAlarmUpdate(d *schema.ResourceData, meta interface{}
555587
defer tccommon.LogElapsed("resource.tencentcloud_cls_alarm.update")()
556588
defer tccommon.InconsistentCheck(d, meta)()
557589

558-
logId := tccommon.GetLogId(tccommon.ContextNil)
559-
needChange := false
560-
561-
request := cls.NewModifyAlarmRequest()
562-
563-
alarmId := d.Id()
590+
var (
591+
logId = tccommon.GetLogId(tccommon.ContextNil)
592+
request = cls.NewModifyAlarmRequest()
593+
alarmId = d.Id()
594+
)
564595

596+
needChange := false
565597
request.AlarmId = &alarmId
566-
567598
mutableArgs := []string{
568599
"name", "alarm_targets", "monitor_time", "condition", "alarm_level",
569600
"trigger_count", "alarm_period", "alarm_notice_ids",
@@ -578,7 +609,6 @@ func resourceTencentCloudClsAlarmUpdate(d *schema.ResourceData, meta interface{}
578609
}
579610

580611
if needChange {
581-
582612
if v, ok := d.GetOk("name"); ok {
583613
request.Name = helper.String(v.(string))
584614
}
@@ -590,21 +620,31 @@ func resourceTencentCloudClsAlarmUpdate(d *schema.ResourceData, meta interface{}
590620
if v, ok := dMap["topic_id"]; ok {
591621
alarmTarget.TopicId = helper.String(v.(string))
592622
}
623+
593624
if v, ok := dMap["query"]; ok {
594625
alarmTarget.Query = helper.String(v.(string))
595626
}
627+
596628
if v, ok := dMap["number"]; ok {
597629
alarmTarget.Number = helper.IntInt64(v.(int))
598630
}
631+
599632
if v, ok := dMap["start_time_offset"]; ok {
600633
alarmTarget.StartTimeOffset = helper.IntInt64(v.(int))
601634
}
635+
602636
if v, ok := dMap["end_time_offset"]; ok {
603637
alarmTarget.EndTimeOffset = helper.IntInt64(v.(int))
604638
}
639+
605640
if v, ok := dMap["logset_id"]; ok {
606641
alarmTarget.LogsetId = helper.String(v.(string))
607642
}
643+
644+
if v, ok := dMap["syntax_rule"]; ok {
645+
alarmTarget.SyntaxRule = helper.IntUint64(v.(int))
646+
}
647+
608648
request.AlarmTargets = append(request.AlarmTargets, &alarmTarget)
609649
}
610650
}
@@ -614,9 +654,11 @@ func resourceTencentCloudClsAlarmUpdate(d *schema.ResourceData, meta interface{}
614654
if v, ok := dMap["type"]; ok {
615655
monitorTime.Type = helper.String(v.(string))
616656
}
657+
617658
if v, ok := dMap["time"]; ok {
618659
monitorTime.Time = helper.IntInt64(v.(int))
619660
}
661+
620662
request.MonitorTime = &monitorTime
621663
}
622664

@@ -658,13 +700,15 @@ func resourceTencentCloudClsAlarmUpdate(d *schema.ResourceData, meta interface{}
658700
if v, ok := dMap["body"]; ok {
659701
callBackInfo.Body = helper.String(v.(string))
660702
}
703+
661704
if v, ok := dMap["headers"]; ok {
662705
headersSet := v.(*schema.Set).List()
663706
for i := range headersSet {
664707
headers := headersSet[i].(string)
665708
callBackInfo.Headers = append(callBackInfo.Headers, &headers)
666709
}
667710
}
711+
668712
request.CallBack = &callBackInfo
669713
}
670714

@@ -675,25 +719,31 @@ func resourceTencentCloudClsAlarmUpdate(d *schema.ResourceData, meta interface{}
675719
if v, ok := dMap["name"]; ok {
676720
analysisDimensional.Name = helper.String(v.(string))
677721
}
722+
678723
if v, ok := dMap["type"]; ok {
679724
analysisDimensional.Type = helper.String(v.(string))
680725
}
726+
681727
if v, ok := dMap["content"]; ok {
682728
analysisDimensional.Content = helper.String(v.(string))
683729
}
730+
684731
if v, ok := dMap["config_info"]; ok {
685732
for _, item := range v.([]interface{}) {
686733
configInfoMap := item.(map[string]interface{})
687734
alarmAnalysisConfig := cls.AlarmAnalysisConfig{}
688735
if v, ok := configInfoMap["key"]; ok {
689736
alarmAnalysisConfig.Key = helper.String(v.(string))
690737
}
738+
691739
if v, ok := configInfoMap["value"]; ok {
692740
alarmAnalysisConfig.Value = helper.String(v.(string))
693741
}
742+
694743
analysisDimensional.ConfigInfo = append(analysisDimensional.ConfigInfo, &alarmAnalysisConfig)
695744
}
696745
}
746+
697747
request.Analysis = append(request.Analysis, &analysisDimensional)
698748
}
699749
}
@@ -705,8 +755,10 @@ func resourceTencentCloudClsAlarmUpdate(d *schema.ResourceData, meta interface{}
705755
} else {
706756
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
707757
}
758+
708759
return nil
709760
})
761+
710762
if err != nil {
711763
log.Printf("[CRITAL]%s update cls alarm failed, reason:%+v", logId, err)
712764
return err
@@ -732,11 +784,12 @@ func resourceTencentCloudClsAlarmDelete(d *schema.ResourceData, meta interface{}
732784
defer tccommon.LogElapsed("resource.tencentcloud_cls_alarm.delete")()
733785
defer tccommon.InconsistentCheck(d, meta)()
734786

735-
logId := tccommon.GetLogId(tccommon.ContextNil)
736-
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
737-
738-
service := ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
739-
alarmId := d.Id()
787+
var (
788+
logId = tccommon.GetLogId(tccommon.ContextNil)
789+
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
790+
service = ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
791+
alarmId = d.Id()
792+
)
740793

741794
if err := service.DeleteClsAlarmById(ctx, alarmId); err != nil {
742795
return err

tencentcloud/services/cls/resource_tc_cls_alarm.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ resource "tencentcloud_cls_alarm" "example" {
2525
query = "status:>500 | select count(*) as errorCounts"
2626
start_time_offset = -15
2727
topic_id = "88735a07-bea4-4985-8763-e9deb6da4fad"
28+
syntax_rule = 1
2829
}
2930
3031
analysis {

tencentcloud/services/cls/resource_tc_cls_alarm_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ resource "tencentcloud_cls_alarm" "alarm" {
6565
query = "status:>500 | select count(*) as errorCounts"
6666
start_time_offset = -15
6767
topic_id = "775c0bc2-2246-43a0-8eb2-f5bc248be183"
68+
syntax_rule = 0
6869
}
6970
7071
analysis {
@@ -108,6 +109,7 @@ resource "tencentcloud_cls_alarm" "alarm" {
108109
query = "status:>500 | select count(*) as errorCounts"
109110
start_time_offset = -15
110111
topic_id = "775c0bc2-2246-43a0-8eb2-f5bc248be183"
112+
syntax_rule = 1
111113
}
112114
113115
analysis {

0 commit comments

Comments
 (0)