diff --git a/go.mod b/go.mod index 8bd5872d28..095fa3a74e 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/antiddos v1.0.799 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/api v1.0.285 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.1.37 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.2.2 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.48 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.1.27 @@ -46,7 +46,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1148 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.2.2 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1206 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1161 diff --git a/go.sum b/go.sum index 291344ede0..adc3e953bc 100644 --- a/go.sum +++ b/go.sum @@ -829,6 +829,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825 h1:yiC2lsZ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825/go.mod h1:6qtSa8OZKwJOWoOCYWVZd6+T62O96AxbPll0I43d4yw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.1.37 h1:f3wXn0kS5CFiXPIxSXJxMOiMeE57wseZqEnRmOQJE5w= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.1.37/go.mod h1:homYeG4GjZoJXub/DK/7yV6kar1kxRbrkAFz67cQSXY= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.2.2 h1:/BlN5LD/rLm0WMM4Yyp2m4XQ8EVzlSV0uKt3SuT5+SE= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.2.2/go.mod h1:XIggn8QQknIzb+1lnsOiKbTQ0fjRe1uV6P+1N0L2ccI= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.4 h1:9EguBiOzGyfCm4ZlO4QnnsZf/kpyTWS6DHz3bse9lNY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.4/go.mod h1:jUF68ck1rxCqXkdmYRT2B2GtLrXAxmp7T0CcyWZ8BbM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.21 h1:Y1miKK/dhfGn3AtCXMFDE3+kOUXyJMUnVlHCGC6EKSw= @@ -981,6 +983,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49 h1:BQwUw github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50 h1:wZGiUXmzr4L0S1coFhnjddkyNrO5ZTtfxBDrbeR+1d8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.2.2 h1:IqDivO9t4+39+YWlFXhK7kJPm/FbLAD1FbhoaGbDSx8= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.2.2/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU= diff --git a/tencentcloud/connectivity/client.go b/tencentcloud/connectivity/client.go index 71aeb2fde3..31487de3db 100644 --- a/tencentcloud/connectivity/client.go +++ b/tencentcloud/connectivity/client.go @@ -196,6 +196,7 @@ type TencentCloudClient struct { chdfsConn *chdfs.Client mdlConn *mdl.Client apmConn *apm.Client + apmv20210622Conn *apm.Client ciamConn *ciam.Client tseConn *tse.Client cdwchConn *cdwch.Client @@ -1551,6 +1552,19 @@ func (me *TencentCloudClient) UseApmClient() *apm.Client { return me.apmConn } +// UseApmClient returns apm client for service +func (me *TencentCloudClient) UseApmV20210622Client() *apm.Client { + if me.apmv20210622Conn != nil { + return me.apmv20210622Conn + } + + cpf := me.NewClientProfile(300) + me.apmv20210622Conn, _ = apm.NewClient(me.Credential, me.Region, cpf) + me.apmv20210622Conn.WithHttpTransport(&LogRoundTripper{}) + + return me.apmv20210622Conn +} + // UseCiamClient returns ciam client for service func (me *TencentCloudClient) UseCiamClient() *ciam.Client { if me.ciamConn != nil { diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go index 3cac2cbf41..21455ff407 100644 --- a/tencentcloud/provider.go +++ b/tencentcloud/provider.go @@ -2234,6 +2234,7 @@ func Provider() *schema.Provider { "tencentcloud_mdl_stream_live_input": mdl.ResourceTencentCloudMdlStreamLiveInput(), "tencentcloud_lighthouse_blueprint": lighthouse.ResourceTencentCloudLighthouseBlueprint(), "tencentcloud_apm_instance": apm.ResourceTencentCloudApmInstance(), + "tencentcloud_apm_sample_config": apm.ResourceTencentCloudApmSampleConfig(), "tencentcloud_lighthouse_firewall_rule": lighthouse.ResourceTencentCloudLighthouseFirewallRule(), "tencentcloud_lighthouse_disk_backup": lighthouse.ResourceTencentCloudLighthouseDiskBackup(), "tencentcloud_lighthouse_apply_disk_backup": lighthouse.ResourceTencentCloudLighthouseApplyDiskBackup(), diff --git a/tencentcloud/provider.md b/tencentcloud/provider.md index 859c8c47dc..6f5d16a0ee 100644 --- a/tencentcloud/provider.md +++ b/tencentcloud/provider.md @@ -2058,6 +2058,7 @@ tencentcloud_mdl_stream_live_input Application Performance Management(APM) Resource tencentcloud_apm_instance +tencentcloud_apm_sample_config Tencent Cloud Service Engine(TSE) Data Source diff --git a/tencentcloud/services/apm/resource_tc_apm_sample_config.go b/tencentcloud/services/apm/resource_tc_apm_sample_config.go new file mode 100644 index 0000000000..6ed9488189 --- /dev/null +++ b/tencentcloud/services/apm/resource_tc_apm_sample_config.go @@ -0,0 +1,408 @@ +package apm + +import ( + "context" + "fmt" + "log" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + apmv20210622 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622" + + tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" +) + +func ResourceTencentCloudApmSampleConfig() *schema.Resource { + return &schema.Resource{ + Create: resourceTencentCloudApmSampleConfigCreate, + Read: resourceTencentCloudApmSampleConfigRead, + Update: resourceTencentCloudApmSampleConfigUpdate, + Delete: resourceTencentCloudApmSampleConfigDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ + "instance_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Business system ID.", + }, + + "sample_rate": { + Type: schema.TypeInt, + Required: true, + Description: "Sampling rate.", + }, + + "service_name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Application name.", + }, + + "sample_name": { + Type: schema.TypeString, + Required: true, + Description: "Sampling rule name.", + }, + + "tags": { + Type: schema.TypeList, + Optional: true, + Description: "Sampling tags.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key value definition.", + }, + "value": { + Type: schema.TypeString, + Required: true, + Description: "Value definition.", + }, + }, + }, + }, + + "operation_name": { + Type: schema.TypeString, + Optional: true, + Description: "API name.", + }, + + "operation_type": { + Type: schema.TypeInt, + Optional: true, + Description: "0: exact match (default); 1: prefix match; 2: suffix match.", + }, + + "sample_config_status": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + ValidateFunc: tccommon.ValidateAllowedIntValue([]int{0, 1}), + Description: "Sample config status. 0: disabled; 1: enabled.", + }, + + // computed + "sample_id": { + Type: schema.TypeInt, + Computed: true, + Description: "Sample config ID.", + }, + }, + } +} + +func resourceTencentCloudApmSampleConfigCreate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_apm_sample_config.create")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + request = apmv20210622.NewCreateApmSampleConfigRequest() + instanceId string + sampleName string + ) + + if v, ok := d.GetOk("instance_id"); ok { + request.InstanceId = helper.String(v.(string)) + instanceId = v.(string) + } + + if v, ok := d.GetOkExists("sample_rate"); ok { + request.SampleRate = helper.IntInt64(v.(int)) + } + + if v, ok := d.GetOk("service_name"); ok { + request.ServiceName = helper.String(v.(string)) + } + + if v, ok := d.GetOk("sample_name"); ok { + request.SampleName = helper.String(v.(string)) + sampleName = v.(string) + } + + if v, ok := d.GetOk("tags"); ok { + for _, item := range v.([]interface{}) { + tagsMap := item.(map[string]interface{}) + aPMKVItem := apmv20210622.APMKVItem{} + if v, ok := tagsMap["key"].(string); ok && v != "" { + aPMKVItem.Key = helper.String(v) + } + + if v, ok := tagsMap["value"].(string); ok && v != "" { + aPMKVItem.Value = helper.String(v) + } + + request.Tags = append(request.Tags, &aPMKVItem) + } + } + + if v, ok := d.GetOk("operation_name"); ok { + request.OperationName = helper.String(v.(string)) + } + + if v, ok := d.GetOkExists("operation_type"); ok { + request.OperationType = helper.IntInt64(v.(int)) + } + + reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseApmV20210622Client().CreateApmSampleConfigWithContext(ctx, request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + if result == nil || result.Response == nil || result.Response.ApmSampleConfig == nil { + return resource.NonRetryableError(fmt.Errorf("Create apm sample config failed, Response is nil.")) + } + + return nil + }) + + if reqErr != nil { + log.Printf("[CRITAL]%s create apm sample config failed, reason:%+v", logId, reqErr) + return reqErr + } + + d.SetId(strings.Join([]string{instanceId, sampleName}, tccommon.FILED_SP)) + + // set status close + if v, ok := d.GetOkExists("sample_config_status"); ok { + if v.(int) == 0 { + request := apmv20210622.NewModifyApmSampleConfigRequest() + request.Status = helper.IntInt64(v.(int)) + request.InstanceId = &instanceId + request.SampleName = &sampleName + reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseApmV20210622Client().ModifyApmSampleConfigWithContext(ctx, request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if reqErr != nil { + log.Printf("[CRITAL]%s update apm sample config failed, reason:%+v", logId, reqErr) + return reqErr + } + } + } + + return resourceTencentCloudApmSampleConfigRead(d, meta) +} + +func resourceTencentCloudApmSampleConfigRead(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_apm_sample_config.read")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + service = ApmService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} + ) + + idSplit := strings.Split(d.Id(), tccommon.FILED_SP) + if len(idSplit) != 2 { + return fmt.Errorf("id is broken,%s", d.Id()) + } + + instanceId := idSplit[0] + sampleName := idSplit[1] + + respData, err := service.DescribeApmSampleConfigById(ctx, instanceId, sampleName) + if err != nil { + return err + } + + if respData == nil { + log.Printf("[WARN]%s resource `tencentcloud_apm_sample_config` [%s] not found, please check if it has been deleted.\n", logId, d.Id()) + d.SetId("") + return nil + } + + if respData.InstanceKey != nil { + _ = d.Set("instance_id", respData.InstanceKey) + } + + if respData.SampleRate != nil { + _ = d.Set("sample_rate", respData.SampleRate) + } + + if respData.ServiceName != nil { + _ = d.Set("service_name", respData.ServiceName) + } + + if respData.SampleName != nil { + _ = d.Set("sample_name", respData.SampleName) + } + + if respData.Tags != nil && len(respData.Tags) > 0 { + tagsList := make([]map[string]interface{}, 0, len(respData.Tags)) + for _, item := range respData.Tags { + tagsMap := map[string]interface{}{} + if item.Key != nil { + tagsMap["key"] = item.Key + } + + if item.Value != nil { + tagsMap["value"] = item.Value + } + + tagsList = append(tagsList, tagsMap) + } + + _ = d.Set("tags", tagsList) + } + + if respData.OperationName != nil { + _ = d.Set("operation_name", respData.OperationName) + } + + if respData.OperationType != nil { + _ = d.Set("operation_type", respData.OperationType) + } + + if respData.Id != nil { + _ = d.Set("sample_id", respData.Id) + } + + return nil +} + +func resourceTencentCloudApmSampleConfigUpdate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_apm_sample_config.update")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + ) + + idSplit := strings.Split(d.Id(), tccommon.FILED_SP) + if len(idSplit) != 2 { + return fmt.Errorf("id is broken,%s", d.Id()) + } + + instanceId := idSplit[0] + sampleName := idSplit[1] + + needChange := false + mutableArgs := []string{"sample_rate", "service_name", "operation_name", "tags", "operation_type"} + for _, v := range mutableArgs { + if d.HasChange(v) { + needChange = true + break + } + } + + if needChange { + request := apmv20210622.NewModifyApmSampleConfigRequest() + if v, ok := d.GetOkExists("sample_rate"); ok { + request.SampleRate = helper.IntInt64(v.(int)) + } + + if v, ok := d.GetOk("service_name"); ok { + request.ServiceName = helper.String(v.(string)) + } + + if v, ok := d.GetOk("operation_name"); ok { + request.OperationName = helper.String(v.(string)) + } + + if v, ok := d.GetOk("tags"); ok { + for _, item := range v.([]interface{}) { + tagsMap := item.(map[string]interface{}) + aPMKVItem := apmv20210622.APMKVItem{} + if v, ok := tagsMap["key"].(string); ok && v != "" { + aPMKVItem.Key = helper.String(v) + } + + if v, ok := tagsMap["value"].(string); ok && v != "" { + aPMKVItem.Value = helper.String(v) + } + + request.Tags = append(request.Tags, &aPMKVItem) + } + } + + if v, ok := d.GetOkExists("status"); ok { + request.Status = helper.IntInt64(v.(int)) + } + + if v, ok := d.GetOkExists("operation_type"); ok { + request.OperationType = helper.IntInt64(v.(int)) + } + + request.InstanceId = &instanceId + request.SampleName = &sampleName + reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseApmV20210622Client().ModifyApmSampleConfigWithContext(ctx, request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if reqErr != nil { + log.Printf("[CRITAL]%s update apm sample config failed, reason:%+v", logId, reqErr) + return reqErr + } + } + + return resourceTencentCloudApmSampleConfigRead(d, meta) +} + +func resourceTencentCloudApmSampleConfigDelete(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_apm_sample_config.delete")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + request = apmv20210622.NewDeleteApmSampleConfigRequest() + ) + + idSplit := strings.Split(d.Id(), tccommon.FILED_SP) + if len(idSplit) != 2 { + return fmt.Errorf("id is broken,%s", d.Id()) + } + + instanceId := idSplit[0] + sampleName := idSplit[1] + + request.InstanceId = &instanceId + request.SampleName = &sampleName + reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseApmV20210622Client().DeleteApmSampleConfigWithContext(ctx, request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if reqErr != nil { + log.Printf("[CRITAL]%s delete apm sample config failed, reason:%+v", logId, reqErr) + return reqErr + } + + return nil +} diff --git a/tencentcloud/services/apm/resource_tc_apm_sample_config.md b/tencentcloud/services/apm/resource_tc_apm_sample_config.md new file mode 100644 index 0000000000..20e7c5df83 --- /dev/null +++ b/tencentcloud/services/apm/resource_tc_apm_sample_config.md @@ -0,0 +1,27 @@ +Provides a resource to create a APM sample config + +Example Usage + +```hcl +resource "tencentcloud_apm_sample_config" "example" { + instance_id = "" + sample_name = "" + sample_rate = 10 + service_name = "" + operation_name = "" + operation_type = "" + sample_config_status = 1 + tags { + key = "createdBy" + value = "Terraform" + } +} +``` + +Import + +APM sample config can be imported using the instanceId#sampleName, e.g. + +``` +terraform import tencentcloud_apm_sample_config.example apm-1o8yMC47u#tf-example +``` diff --git a/tencentcloud/services/apm/resource_tc_apm_sample_config_test.go b/tencentcloud/services/apm/resource_tc_apm_sample_config_test.go new file mode 100644 index 0000000000..60e87c0915 --- /dev/null +++ b/tencentcloud/services/apm/resource_tc_apm_sample_config_test.go @@ -0,0 +1,86 @@ +package apm_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" +) + +func TestAccTencentCloudApmSampleConfigResource_basic(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + tcacctest.AccPreCheck(t) + }, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{ + { + Config: testAccApmSampleConfig, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "instance_id"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "sample_name"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "sample_rate"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "service_name"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "operation_name"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "operation_type"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "sample_config_status"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "tags"), + ), + }, + { + Config: testAccApmSampleConfigUpdate, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "instance_id"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "sample_name"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "sample_rate"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "service_name"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "operation_name"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "operation_type"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "sample_config_status"), + resource.TestCheckResourceAttrSet("tencentcloud_apm_sample_config.example", "tags"), + ), + }, + { + ResourceName: "tencentcloud_apm_sample_config.example", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +const testAccApmSampleConfig = ` +resource "tencentcloud_apm_sample_config" "example" { + instance_id = "" + sample_name = "" + sample_rate = 10 + service_name = "" + operation_name = "" + operation_type = "" + sample_config_status = 1 + tags { + key = "createdBy" + value = "Terraform" + } +} +` + +const testAccApmSampleConfigUpdate = ` +resource "tencentcloud_apm_sample_config" "example" { + instance_id = "" + sample_name = "" + sample_rate = 20 + service_name = "" + operation_name = "" + operation_type = "" + sample_config_status = 0 + tags { + key = "createdBy" + value = "Terraform" + } +} +` diff --git a/tencentcloud/services/apm/service_tencentcloud_apm.go b/tencentcloud/services/apm/service_tencentcloud_apm.go index 4b03364be7..7d22b39416 100644 --- a/tencentcloud/services/apm/service_tencentcloud_apm.go +++ b/tencentcloud/services/apm/service_tencentcloud_apm.go @@ -2,8 +2,10 @@ package apm import ( "context" + "fmt" "log" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" apm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622" @@ -97,3 +99,41 @@ func (me *ApmService) DeleteApmInstanceById(ctx context.Context, instanceId stri return } + +func (me *ApmService) DescribeApmSampleConfigById(ctx context.Context, instanceId, sampleName string) (ret *apm.ApmSampleConfig, errRet error) { + logId := tccommon.GetLogId(ctx) + + request := apm.NewDescribeApmSampleConfigRequest() + response := apm.NewDescribeApmSampleConfigResponse() + request.InstanceId = &instanceId + request.SampleName = &sampleName + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + result, e := me.client.UseApmV20210622Client().DescribeApmSampleConfig(request) + if e != nil { + return tccommon.RetryError(e) + } + + if result == nil || result.Response == nil || result.Response.ApmSampleConfigs == nil || len(result.Response.ApmSampleConfigs) < 1 { + return resource.NonRetryableError(fmt.Errorf("Describe apm sample config failed, Response is nil.")) + } + + response = result + return nil + }) + + if err != nil { + errRet = err + return + } + + ret = response.Response.ApmSampleConfigs[0] + return +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/client.go index e2f5a915b0..cce8a25cf8 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/client.go @@ -103,6 +103,124 @@ func (c *Client) CreateApmInstanceWithContext(ctx context.Context, request *Crea return } +func NewCreateApmPrometheusRuleRequest() (request *CreateApmPrometheusRuleRequest) { + request = &CreateApmPrometheusRuleRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "CreateApmPrometheusRule") + + + return +} + +func NewCreateApmPrometheusRuleResponse() (response *CreateApmPrometheusRuleResponse) { + response = &CreateApmPrometheusRuleResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// CreateApmPrometheusRule +// 用于创建apm业务系统与Prometheus实例的指标匹配规则 +// +// 可能返回的错误码: +// FAILEDOPERATION_PROMRULECONFLICT = "FailedOperation.PromRuleConflict" +// FAILEDOPERATION_PROMRULEISEMPTYERR = "FailedOperation.PromRuleIsEmptyErr" +// FAILEDOPERATION_PROMRULENAMECONFLICT = "FailedOperation.PromRuleNameConflict" +// FAILEDOPERATION_PROMRULEREQUESTNOTVALIDERROR = "FailedOperation.PromRuleRequestNotValidError" +func (c *Client) CreateApmPrometheusRule(request *CreateApmPrometheusRuleRequest) (response *CreateApmPrometheusRuleResponse, err error) { + return c.CreateApmPrometheusRuleWithContext(context.Background(), request) +} + +// CreateApmPrometheusRule +// 用于创建apm业务系统与Prometheus实例的指标匹配规则 +// +// 可能返回的错误码: +// FAILEDOPERATION_PROMRULECONFLICT = "FailedOperation.PromRuleConflict" +// FAILEDOPERATION_PROMRULEISEMPTYERR = "FailedOperation.PromRuleIsEmptyErr" +// FAILEDOPERATION_PROMRULENAMECONFLICT = "FailedOperation.PromRuleNameConflict" +// FAILEDOPERATION_PROMRULEREQUESTNOTVALIDERROR = "FailedOperation.PromRuleRequestNotValidError" +func (c *Client) CreateApmPrometheusRuleWithContext(ctx context.Context, request *CreateApmPrometheusRuleRequest) (response *CreateApmPrometheusRuleResponse, err error) { + if request == nil { + request = NewCreateApmPrometheusRuleRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "CreateApmPrometheusRule") + + if c.GetCredential() == nil { + return nil, errors.New("CreateApmPrometheusRule require credential") + } + + request.SetContext(ctx) + + response = NewCreateApmPrometheusRuleResponse() + err = c.Send(request, response) + return +} + +func NewCreateApmSampleConfigRequest() (request *CreateApmSampleConfigRequest) { + request = &CreateApmSampleConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "CreateApmSampleConfig") + + + return +} + +func NewCreateApmSampleConfigResponse() (response *CreateApmSampleConfigResponse) { + response = &CreateApmSampleConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// CreateApmSampleConfig +// 创建采样配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION_DEMOINSTANCENOTALLOWMODIFIED = "FailedOperation.DemoInstanceNotAllowModified" +// FAILEDOPERATION_INVALIDOPERATIONTYPE = "FailedOperation.InvalidOperationType" +// FAILEDOPERATION_INVALIDPARAM = "FailedOperation.InvalidParam" +// FAILEDOPERATION_INVALIDREQUEST = "FailedOperation.InvalidRequest" +// FAILEDOPERATION_OPERATIONNAMEISEMPTY = "FailedOperation.OperationNameIsEmpty" +// FAILEDOPERATION_SAMPLENAMECONFLICT = "FailedOperation.SampleNameConflict" +// FAILEDOPERATION_SAMPLERULECONFLICT = "FailedOperation.SampleRuleConflict" +func (c *Client) CreateApmSampleConfig(request *CreateApmSampleConfigRequest) (response *CreateApmSampleConfigResponse, err error) { + return c.CreateApmSampleConfigWithContext(context.Background(), request) +} + +// CreateApmSampleConfig +// 创建采样配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION_DEMOINSTANCENOTALLOWMODIFIED = "FailedOperation.DemoInstanceNotAllowModified" +// FAILEDOPERATION_INVALIDOPERATIONTYPE = "FailedOperation.InvalidOperationType" +// FAILEDOPERATION_INVALIDPARAM = "FailedOperation.InvalidParam" +// FAILEDOPERATION_INVALIDREQUEST = "FailedOperation.InvalidRequest" +// FAILEDOPERATION_OPERATIONNAMEISEMPTY = "FailedOperation.OperationNameIsEmpty" +// FAILEDOPERATION_SAMPLENAMECONFLICT = "FailedOperation.SampleNameConflict" +// FAILEDOPERATION_SAMPLERULECONFLICT = "FailedOperation.SampleRuleConflict" +func (c *Client) CreateApmSampleConfigWithContext(ctx context.Context, request *CreateApmSampleConfigRequest) (response *CreateApmSampleConfigResponse, err error) { + if request == nil { + request = NewCreateApmSampleConfigRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "CreateApmSampleConfig") + + if c.GetCredential() == nil { + return nil, errors.New("CreateApmSampleConfig require credential") + } + + request.SetContext(ctx) + + response = NewCreateApmSampleConfigResponse() + err = c.Send(request, response) + return +} + func NewCreateProfileTaskRequest() (request *CreateProfileTaskRequest) { request = &CreateProfileTaskRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -161,6 +279,56 @@ func (c *Client) CreateProfileTaskWithContext(ctx context.Context, request *Crea return } +func NewDeleteApmSampleConfigRequest() (request *DeleteApmSampleConfigRequest) { + request = &DeleteApmSampleConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "DeleteApmSampleConfig") + + + return +} + +func NewDeleteApmSampleConfigResponse() (response *DeleteApmSampleConfigResponse) { + response = &DeleteApmSampleConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DeleteApmSampleConfig +// 删除采样配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION_INSTANCENOTFOUND = "FailedOperation.InstanceNotFound" +func (c *Client) DeleteApmSampleConfig(request *DeleteApmSampleConfigRequest) (response *DeleteApmSampleConfigResponse, err error) { + return c.DeleteApmSampleConfigWithContext(context.Background(), request) +} + +// DeleteApmSampleConfig +// 删除采样配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION_INSTANCENOTFOUND = "FailedOperation.InstanceNotFound" +func (c *Client) DeleteApmSampleConfigWithContext(ctx context.Context, request *DeleteApmSampleConfigRequest) (response *DeleteApmSampleConfigResponse, err error) { + if request == nil { + request = NewDeleteApmSampleConfigRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "DeleteApmSampleConfig") + + if c.GetCredential() == nil { + return nil, errors.New("DeleteApmSampleConfig require credential") + } + + request.SetContext(ctx) + + response = NewDeleteApmSampleConfigResponse() + err = c.Send(request, response) + return +} + func NewDescribeApmAgentRequest() (request *DescribeApmAgentRequest) { request = &DescribeApmAgentRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -229,6 +397,112 @@ func (c *Client) DescribeApmAgentWithContext(ctx context.Context, request *Descr return } +func NewDescribeApmApplicationConfigRequest() (request *DescribeApmApplicationConfigRequest) { + request = &DescribeApmApplicationConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "DescribeApmApplicationConfig") + + + return +} + +func NewDescribeApmApplicationConfigResponse() (response *DescribeApmApplicationConfigResponse) { + response = &DescribeApmApplicationConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeApmApplicationConfig +// 查询应用配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_APPIDNOTMATCHINSTANCEINFO = "FailedOperation.AppIdNotMatchInstanceInfo" +// FAILEDOPERATION_INSTANCENOTFOUND = "FailedOperation.InstanceNotFound" +// FAILEDOPERATION_INVALIDSERVICENAME = "FailedOperation.InvalidServiceName" +func (c *Client) DescribeApmApplicationConfig(request *DescribeApmApplicationConfigRequest) (response *DescribeApmApplicationConfigResponse, err error) { + return c.DescribeApmApplicationConfigWithContext(context.Background(), request) +} + +// DescribeApmApplicationConfig +// 查询应用配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_APPIDNOTMATCHINSTANCEINFO = "FailedOperation.AppIdNotMatchInstanceInfo" +// FAILEDOPERATION_INSTANCENOTFOUND = "FailedOperation.InstanceNotFound" +// FAILEDOPERATION_INVALIDSERVICENAME = "FailedOperation.InvalidServiceName" +func (c *Client) DescribeApmApplicationConfigWithContext(ctx context.Context, request *DescribeApmApplicationConfigRequest) (response *DescribeApmApplicationConfigResponse, err error) { + if request == nil { + request = NewDescribeApmApplicationConfigRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "DescribeApmApplicationConfig") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeApmApplicationConfig require credential") + } + + request.SetContext(ctx) + + response = NewDescribeApmApplicationConfigResponse() + err = c.Send(request, response) + return +} + +func NewDescribeApmAssociationRequest() (request *DescribeApmAssociationRequest) { + request = &DescribeApmAssociationRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "DescribeApmAssociation") + + + return +} + +func NewDescribeApmAssociationResponse() (response *DescribeApmAssociationResponse) { + response = &DescribeApmAssociationResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeApmAssociation +// 用于查询apm业务系统与其他产品的关联关系 +// +// 可能返回的错误码: +// FAILEDOPERATION_PRODUCTNAMENOTAVAILABLE = "FailedOperation.ProductNameNotAvailable" +func (c *Client) DescribeApmAssociation(request *DescribeApmAssociationRequest) (response *DescribeApmAssociationResponse, err error) { + return c.DescribeApmAssociationWithContext(context.Background(), request) +} + +// DescribeApmAssociation +// 用于查询apm业务系统与其他产品的关联关系 +// +// 可能返回的错误码: +// FAILEDOPERATION_PRODUCTNAMENOTAVAILABLE = "FailedOperation.ProductNameNotAvailable" +func (c *Client) DescribeApmAssociationWithContext(ctx context.Context, request *DescribeApmAssociationRequest) (response *DescribeApmAssociationResponse, err error) { + if request == nil { + request = NewDescribeApmAssociationRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "DescribeApmAssociation") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeApmAssociation require credential") + } + + request.SetContext(ctx) + + response = NewDescribeApmAssociationResponse() + err = c.Send(request, response) + return +} + func NewDescribeApmInstancesRequest() (request *DescribeApmInstancesRequest) { request = &DescribeApmInstancesRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -287,6 +561,118 @@ func (c *Client) DescribeApmInstancesWithContext(ctx context.Context, request *D return } +func NewDescribeApmPrometheusRuleRequest() (request *DescribeApmPrometheusRuleRequest) { + request = &DescribeApmPrometheusRuleRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "DescribeApmPrometheusRule") + + + return +} + +func NewDescribeApmPrometheusRuleResponse() (response *DescribeApmPrometheusRuleResponse) { + response = &DescribeApmPrometheusRuleResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeApmPrometheusRule +// 用于查询apm业务系统与Prometheus实例的指标匹配规则 +// +// 可能返回的错误码: +// AUTHFAILURE_ACCESSCAMFAIL = "AuthFailure.AccessCAMFail" +// AUTHFAILURE_UNMARSHALRESPONSE = "AuthFailure.UnmarshalResponse" +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_ACCESSTAGFAIL = "FailedOperation.AccessTagFail" +// FAILEDOPERATION_SENDREQUEST = "FailedOperation.SendRequest" +func (c *Client) DescribeApmPrometheusRule(request *DescribeApmPrometheusRuleRequest) (response *DescribeApmPrometheusRuleResponse, err error) { + return c.DescribeApmPrometheusRuleWithContext(context.Background(), request) +} + +// DescribeApmPrometheusRule +// 用于查询apm业务系统与Prometheus实例的指标匹配规则 +// +// 可能返回的错误码: +// AUTHFAILURE_ACCESSCAMFAIL = "AuthFailure.AccessCAMFail" +// AUTHFAILURE_UNMARSHALRESPONSE = "AuthFailure.UnmarshalResponse" +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_ACCESSTAGFAIL = "FailedOperation.AccessTagFail" +// FAILEDOPERATION_SENDREQUEST = "FailedOperation.SendRequest" +func (c *Client) DescribeApmPrometheusRuleWithContext(ctx context.Context, request *DescribeApmPrometheusRuleRequest) (response *DescribeApmPrometheusRuleResponse, err error) { + if request == nil { + request = NewDescribeApmPrometheusRuleRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "DescribeApmPrometheusRule") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeApmPrometheusRule require credential") + } + + request.SetContext(ctx) + + response = NewDescribeApmPrometheusRuleResponse() + err = c.Send(request, response) + return +} + +func NewDescribeApmSampleConfigRequest() (request *DescribeApmSampleConfigRequest) { + request = &DescribeApmSampleConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "DescribeApmSampleConfig") + + + return +} + +func NewDescribeApmSampleConfigResponse() (response *DescribeApmSampleConfigResponse) { + response = &DescribeApmSampleConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeApmSampleConfig +// 查询采样配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_INSTANCENOTFOUND = "FailedOperation.InstanceNotFound" +// FAILEDOPERATION_SAMPLENOTFOUND = "FailedOperation.SampleNotFound" +func (c *Client) DescribeApmSampleConfig(request *DescribeApmSampleConfigRequest) (response *DescribeApmSampleConfigResponse, err error) { + return c.DescribeApmSampleConfigWithContext(context.Background(), request) +} + +// DescribeApmSampleConfig +// 查询采样配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_INSTANCENOTFOUND = "FailedOperation.InstanceNotFound" +// FAILEDOPERATION_SAMPLENOTFOUND = "FailedOperation.SampleNotFound" +func (c *Client) DescribeApmSampleConfigWithContext(ctx context.Context, request *DescribeApmSampleConfigRequest) (response *DescribeApmSampleConfigResponse, err error) { + if request == nil { + request = NewDescribeApmSampleConfigRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "DescribeApmSampleConfig") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeApmSampleConfig require credential") + } + + request.SetContext(ctx) + + response = NewDescribeApmSampleConfigResponse() + err = c.Send(request, response) + return +} + func NewDescribeApmServiceMetricRequest() (request *DescribeApmServiceMetricRequest) { request = &DescribeApmServiceMetricRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -795,6 +1181,134 @@ func (c *Client) DescribeTagValuesWithContext(ctx context.Context, request *Desc return } +func NewModifyApmApplicationConfigRequest() (request *ModifyApmApplicationConfigRequest) { + request = &ModifyApmApplicationConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "ModifyApmApplicationConfig") + + + return +} + +func NewModifyApmApplicationConfigResponse() (response *ModifyApmApplicationConfigResponse) { + response = &ModifyApmApplicationConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ModifyApmApplicationConfig +// 修改应用配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_AGENTOPERATIONCONFIGINVALID = "FailedOperation.AgentOperationConfigInvalid" +// FAILEDOPERATION_APPIDNOTMATCHINSTANCEINFO = "FailedOperation.AppIdNotMatchInstanceInfo" +// FAILEDOPERATION_INSTANCEIDISEMPTY = "FailedOperation.InstanceIdIsEmpty" +// FAILEDOPERATION_INVALIDREGEX = "FailedOperation.InvalidRegex" +func (c *Client) ModifyApmApplicationConfig(request *ModifyApmApplicationConfigRequest) (response *ModifyApmApplicationConfigResponse, err error) { + return c.ModifyApmApplicationConfigWithContext(context.Background(), request) +} + +// ModifyApmApplicationConfig +// 修改应用配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_AGENTOPERATIONCONFIGINVALID = "FailedOperation.AgentOperationConfigInvalid" +// FAILEDOPERATION_APPIDNOTMATCHINSTANCEINFO = "FailedOperation.AppIdNotMatchInstanceInfo" +// FAILEDOPERATION_INSTANCEIDISEMPTY = "FailedOperation.InstanceIdIsEmpty" +// FAILEDOPERATION_INVALIDREGEX = "FailedOperation.InvalidRegex" +func (c *Client) ModifyApmApplicationConfigWithContext(ctx context.Context, request *ModifyApmApplicationConfigRequest) (response *ModifyApmApplicationConfigResponse, err error) { + if request == nil { + request = NewModifyApmApplicationConfigRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "ModifyApmApplicationConfig") + + if c.GetCredential() == nil { + return nil, errors.New("ModifyApmApplicationConfig require credential") + } + + request.SetContext(ctx) + + response = NewModifyApmApplicationConfigResponse() + err = c.Send(request, response) + return +} + +func NewModifyApmAssociationRequest() (request *ModifyApmAssociationRequest) { + request = &ModifyApmAssociationRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "ModifyApmAssociation") + + + return +} + +func NewModifyApmAssociationResponse() (response *ModifyApmAssociationResponse) { + response = &ModifyApmAssociationResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ModifyApmAssociation +// 用于修改apm业务系统与其他产品的关联关系(包括创建和删除) +// +// 可能返回的错误码: +// FAILEDOPERATION_ASSOCIATIONMODIFYREQUESTNOTVALIDERROR = "FailedOperation.AssociationModifyRequestNotValidError" +// FAILEDOPERATION_CKAFKADIFFASSOCIATIONERROR = "FailedOperation.CKafkaDiffAssociationError" +// FAILEDOPERATION_CKAFKAEMPTYTOPICERROR = "FailedOperation.CKafkaEmptyTopicError" +// FAILEDOPERATION_CKAFKAGETROUTEIDFAILEDERROR = "FailedOperation.CKafkaGetRouteIDFailedError" +// FAILEDOPERATION_CKAFKAGETROUTETIMEOUTERROR = "FailedOperation.CKafkaGetRouteTimeoutError" +// FAILEDOPERATION_CKAFKANOTAVAILABLEERROR = "FailedOperation.CKafkaNotAvailableError" +// FAILEDOPERATION_PEERIDNOTAVAILABLE = "FailedOperation.PeerIdNotAvailable" +// FAILEDOPERATION_PRODUCTNAMENOTAVAILABLE = "FailedOperation.ProductNameNotAvailable" +// FAILEDOPERATION_PROMINSTANCENOTAVAILABLEERROR = "FailedOperation.PromInstanceNotAvailableError" +// FAILEDOPERATION_ROUTENOTAVAILABLEERROR = "FailedOperation.RouteNotAvailableError" +// FAILEDOPERATION_TOPICNOTAVAILABLEERROR = "FailedOperation.TopicNotAvailableError" +func (c *Client) ModifyApmAssociation(request *ModifyApmAssociationRequest) (response *ModifyApmAssociationResponse, err error) { + return c.ModifyApmAssociationWithContext(context.Background(), request) +} + +// ModifyApmAssociation +// 用于修改apm业务系统与其他产品的关联关系(包括创建和删除) +// +// 可能返回的错误码: +// FAILEDOPERATION_ASSOCIATIONMODIFYREQUESTNOTVALIDERROR = "FailedOperation.AssociationModifyRequestNotValidError" +// FAILEDOPERATION_CKAFKADIFFASSOCIATIONERROR = "FailedOperation.CKafkaDiffAssociationError" +// FAILEDOPERATION_CKAFKAEMPTYTOPICERROR = "FailedOperation.CKafkaEmptyTopicError" +// FAILEDOPERATION_CKAFKAGETROUTEIDFAILEDERROR = "FailedOperation.CKafkaGetRouteIDFailedError" +// FAILEDOPERATION_CKAFKAGETROUTETIMEOUTERROR = "FailedOperation.CKafkaGetRouteTimeoutError" +// FAILEDOPERATION_CKAFKANOTAVAILABLEERROR = "FailedOperation.CKafkaNotAvailableError" +// FAILEDOPERATION_PEERIDNOTAVAILABLE = "FailedOperation.PeerIdNotAvailable" +// FAILEDOPERATION_PRODUCTNAMENOTAVAILABLE = "FailedOperation.ProductNameNotAvailable" +// FAILEDOPERATION_PROMINSTANCENOTAVAILABLEERROR = "FailedOperation.PromInstanceNotAvailableError" +// FAILEDOPERATION_ROUTENOTAVAILABLEERROR = "FailedOperation.RouteNotAvailableError" +// FAILEDOPERATION_TOPICNOTAVAILABLEERROR = "FailedOperation.TopicNotAvailableError" +func (c *Client) ModifyApmAssociationWithContext(ctx context.Context, request *ModifyApmAssociationRequest) (response *ModifyApmAssociationResponse, err error) { + if request == nil { + request = NewModifyApmAssociationRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "ModifyApmAssociation") + + if c.GetCredential() == nil { + return nil, errors.New("ModifyApmAssociation require credential") + } + + request.SetContext(ctx) + + response = NewModifyApmAssociationResponse() + err = c.Send(request, response) + return +} + func NewModifyApmInstanceRequest() (request *ModifyApmInstanceRequest) { request = &ModifyApmInstanceRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -871,6 +1385,120 @@ func (c *Client) ModifyApmInstanceWithContext(ctx context.Context, request *Modi return } +func NewModifyApmPrometheusRuleRequest() (request *ModifyApmPrometheusRuleRequest) { + request = &ModifyApmPrometheusRuleRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "ModifyApmPrometheusRule") + + + return +} + +func NewModifyApmPrometheusRuleResponse() (response *ModifyApmPrometheusRuleResponse) { + response = &ModifyApmPrometheusRuleResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ModifyApmPrometheusRule +// 用于修改apm业务系统与Prometheus实例的指标匹配规则 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_PROMRULECONFLICT = "FailedOperation.PromRuleConflict" +// FAILEDOPERATION_PROMRULEISEMPTYERR = "FailedOperation.PromRuleIsEmptyErr" +// FAILEDOPERATION_PROMRULEREQUESTNOTVALIDERROR = "FailedOperation.PromRuleRequestNotValidError" +func (c *Client) ModifyApmPrometheusRule(request *ModifyApmPrometheusRuleRequest) (response *ModifyApmPrometheusRuleResponse, err error) { + return c.ModifyApmPrometheusRuleWithContext(context.Background(), request) +} + +// ModifyApmPrometheusRule +// 用于修改apm业务系统与Prometheus实例的指标匹配规则 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_PROMRULECONFLICT = "FailedOperation.PromRuleConflict" +// FAILEDOPERATION_PROMRULEISEMPTYERR = "FailedOperation.PromRuleIsEmptyErr" +// FAILEDOPERATION_PROMRULEREQUESTNOTVALIDERROR = "FailedOperation.PromRuleRequestNotValidError" +func (c *Client) ModifyApmPrometheusRuleWithContext(ctx context.Context, request *ModifyApmPrometheusRuleRequest) (response *ModifyApmPrometheusRuleResponse, err error) { + if request == nil { + request = NewModifyApmPrometheusRuleRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "ModifyApmPrometheusRule") + + if c.GetCredential() == nil { + return nil, errors.New("ModifyApmPrometheusRule require credential") + } + + request.SetContext(ctx) + + response = NewModifyApmPrometheusRuleResponse() + err = c.Send(request, response) + return +} + +func NewModifyApmSampleConfigRequest() (request *ModifyApmSampleConfigRequest) { + request = &ModifyApmSampleConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("apm", APIVersion, "ModifyApmSampleConfig") + + + return +} + +func NewModifyApmSampleConfigResponse() (response *ModifyApmSampleConfigResponse) { + response = &ModifyApmSampleConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ModifyApmSampleConfig +// 修改采样配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION_INVALIDOPERATIONTYPE = "FailedOperation.InvalidOperationType" +// FAILEDOPERATION_INVALIDPARAM = "FailedOperation.InvalidParam" +// FAILEDOPERATION_INVALIDREQUEST = "FailedOperation.InvalidRequest" +// FAILEDOPERATION_OPERATIONNAMEISEMPTY = "FailedOperation.OperationNameIsEmpty" +// FAILEDOPERATION_SAMPLERULECONFLICT = "FailedOperation.SampleRuleConflict" +func (c *Client) ModifyApmSampleConfig(request *ModifyApmSampleConfigRequest) (response *ModifyApmSampleConfigResponse, err error) { + return c.ModifyApmSampleConfigWithContext(context.Background(), request) +} + +// ModifyApmSampleConfig +// 修改采样配置接口 +// +// 可能返回的错误码: +// FAILEDOPERATION_INVALIDOPERATIONTYPE = "FailedOperation.InvalidOperationType" +// FAILEDOPERATION_INVALIDPARAM = "FailedOperation.InvalidParam" +// FAILEDOPERATION_INVALIDREQUEST = "FailedOperation.InvalidRequest" +// FAILEDOPERATION_OPERATIONNAMEISEMPTY = "FailedOperation.OperationNameIsEmpty" +// FAILEDOPERATION_SAMPLERULECONFLICT = "FailedOperation.SampleRuleConflict" +func (c *Client) ModifyApmSampleConfigWithContext(ctx context.Context, request *ModifyApmSampleConfigRequest) (response *ModifyApmSampleConfigResponse, err error) { + if request == nil { + request = NewModifyApmSampleConfigRequest() + } + c.InitBaseRequest(&request.BaseRequest, "apm", APIVersion, "ModifyApmSampleConfig") + + if c.GetCredential() == nil { + return nil, errors.New("ModifyApmSampleConfig require credential") + } + + request.SetContext(ctx) + + response = NewModifyApmSampleConfigResponse() + err = c.Send(request, response) + return +} + func NewModifyGeneralApmApplicationConfigRequest() (request *ModifyGeneralApmApplicationConfigRequest) { request = &ModifyGeneralApmApplicationConfigRequest{ BaseRequest: &tchttp.BaseRequest{}, diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/errors.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/errors.go index 3e4277d45f..6d32b313d2 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/errors.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/errors.go @@ -41,6 +41,9 @@ const ( // 未检测到探针在线 FAILEDOPERATION_AGENTNOTONLINEERROR = "FailedOperation.AgentNotOnlineError" + // 探针接口相关配置错误 + FAILEDOPERATION_AGENTOPERATIONCONFIGINVALID = "FailedOperation.AgentOperationConfigInvalid" + // 当前探针版本不支持此功能 FAILEDOPERATION_AGENTVERSIONNOTSUPPORTERROR = "FailedOperation.AgentVersionNotSupportError" @@ -50,6 +53,24 @@ const ( // AppID 和业务系统信息不匹配。 FAILEDOPERATION_APPIDNOTMATCHINSTANCEINFO = "FailedOperation.AppIdNotMatchInstanceInfo" + // 关联关系修改请求有误 + FAILEDOPERATION_ASSOCIATIONMODIFYREQUESTNOTVALIDERROR = "FailedOperation.AssociationModifyRequestNotValidError" + + // ckafka与旧关联信息不一致 + FAILEDOPERATION_CKAFKADIFFASSOCIATIONERROR = "FailedOperation.CKafkaDiffAssociationError" + + // topic不能为空 + FAILEDOPERATION_CKAFKAEMPTYTOPICERROR = "FailedOperation.CKafkaEmptyTopicError" + + // 获取路由失败 + FAILEDOPERATION_CKAFKAGETROUTEIDFAILEDERROR = "FailedOperation.CKafkaGetRouteIDFailedError" + + // 获取路由超时 + FAILEDOPERATION_CKAFKAGETROUTETIMEOUTERROR = "FailedOperation.CKafkaGetRouteTimeoutError" + + // CKafka实例不可用 + FAILEDOPERATION_CKAFKANOTAVAILABLEERROR = "FailedOperation.CKafkaNotAvailableError" + // 未命中白名单且业务系统 ID 为官方 Demo 业务系统 ID 时,不允许修改接口。 FAILEDOPERATION_DEMOINSTANCENOTALLOWMODIFIED = "FailedOperation.DemoInstanceNotAllowModified" @@ -74,6 +95,9 @@ const ( // 非法业务系统 ID。 FAILEDOPERATION_INVALIDINSTANCEID = "FailedOperation.InvalidInstanceID" + // 不合法的接口匹配类型 + FAILEDOPERATION_INVALIDOPERATIONTYPE = "FailedOperation.InvalidOperationType" + // 不合法入参 FAILEDOPERATION_INVALIDPARAM = "FailedOperation.InvalidParam" @@ -98,12 +122,48 @@ const ( // 非内网 VPC。 FAILEDOPERATION_NOTINNERVPC = "FailedOperation.NotInnerVPC" + // 接口名不能为空 + FAILEDOPERATION_OPERATIONNAMEISEMPTY = "FailedOperation.OperationNameIsEmpty" + + // 关联产品ID不可用 + FAILEDOPERATION_PEERIDNOTAVAILABLE = "FailedOperation.PeerIdNotAvailable" + + // 关联的产品名称不可用或暂不支持 + FAILEDOPERATION_PRODUCTNAMENOTAVAILABLE = "FailedOperation.ProductNameNotAvailable" + + // 该Prometheus实例状态不可用 + FAILEDOPERATION_PROMINSTANCENOTAVAILABLEERROR = "FailedOperation.PromInstanceNotAvailableError" + + // Prometheus指标匹配规则冲突,有相同的指标匹配规则 + FAILEDOPERATION_PROMRULECONFLICT = "FailedOperation.PromRuleConflict" + + // Prometheus指标匹配规则为空 + FAILEDOPERATION_PROMRULEISEMPTYERR = "FailedOperation.PromRuleIsEmptyErr" + + // Prometheus指标匹配规则名已存在 + FAILEDOPERATION_PROMRULENAMECONFLICT = "FailedOperation.PromRuleNameConflict" + + // Prometheus指标匹配规则请求有误 + FAILEDOPERATION_PROMRULEREQUESTNOTVALIDERROR = "FailedOperation.PromRuleRequestNotValidError" + // 查询时间区间不支持。 FAILEDOPERATION_QUERYTIMEINTERVALISNOTSUPPORTED = "FailedOperation.QueryTimeIntervalIsNotSupported" // 不支持该地域。 FAILEDOPERATION_REGIONNOTSUPPORT = "FailedOperation.RegionNotSupport" + // 路由不可用 + FAILEDOPERATION_ROUTENOTAVAILABLEERROR = "FailedOperation.RouteNotAvailableError" + + // 该实例下采样名重复。 + FAILEDOPERATION_SAMPLENAMECONFLICT = "FailedOperation.SampleNameConflict" + + // 没有该采样规则。 + FAILEDOPERATION_SAMPLENOTFOUND = "FailedOperation.SampleNotFound" + + // 采样规则冲突。 + FAILEDOPERATION_SAMPLERULECONFLICT = "FailedOperation.SampleRuleConflict" + // 发送查询请求失败。 FAILEDOPERATION_SENDREQUEST = "FailedOperation.SendRequest" @@ -119,6 +179,9 @@ const ( // serviceId 与 appId 不匹配 FAILEDOPERATION_SERVICENOTMATCHAPPIDERR = "FailedOperation.ServiceNotMatchAppIdErr" + // topic不可用 + FAILEDOPERATION_TOPICNOTAVAILABLEERROR = "FailedOperation.TopicNotAvailableError" + // 视图名不存在或非法。 FAILEDOPERATION_VIEWNAMENOTEXISTORILLEGAL = "FailedOperation.ViewNameNotExistOrIllegal" diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/models.go index a11eeece1e..10faba8d6e 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622/models.go @@ -36,6 +36,20 @@ type APMKVItem struct { Value *string `json:"Value,omitnil,omitempty" name:"Value"` } +type AgentOperationConfigView struct { + // 当前接口配置是否开启了接口白名单配置 + // 注意:此字段可能返回 null,表示取不到有效值。 + RetentionValid *bool `json:"RetentionValid,omitnil,omitempty" name:"RetentionValid"` + + // RetentionValid为false时生效,接口配置中的黑名单配置,配置中的接口不采集 + // 注意:此字段可能返回 null,表示取不到有效值。 + IgnoreOperation *string `json:"IgnoreOperation,omitnil,omitempty" name:"IgnoreOperation"` + + // RetentionValid为true时生效,接口配置中的白名单配置,仅采集配置中的接口 + // 注意:此字段可能返回 null,表示取不到有效值。 + RetentionOperation *string `json:"RetentionOperation,omitnil,omitempty" name:"RetentionOperation"` +} + type ApmAgentInfo struct { // Agent 下载地址 AgentDownloadURL *string `json:"AgentDownloadURL,omitnil,omitempty" name:"AgentDownloadURL"` @@ -56,6 +70,187 @@ type ApmAgentInfo struct { PrivateLinkCollectorURL *string `json:"PrivateLinkCollectorURL,omitnil,omitempty" name:"PrivateLinkCollectorURL"` } +type ApmAppConfig struct { + // 实例ID + InstanceKey *string `json:"InstanceKey,omitnil,omitempty" name:"InstanceKey"` + + // 服务名 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // URL收敛开关 + UrlConvergenceSwitch *int64 `json:"UrlConvergenceSwitch,omitnil,omitempty" name:"UrlConvergenceSwitch"` + + // URL收敛阈值 + UrlConvergenceThreshold *int64 `json:"UrlConvergenceThreshold,omitnil,omitempty" name:"UrlConvergenceThreshold"` + + // URL收敛正则 + UrlConvergence *string `json:"UrlConvergence,omitnil,omitempty" name:"UrlConvergence"` + + // 异常过滤正则 + ExceptionFilter *string `json:"ExceptionFilter,omitnil,omitempty" name:"ExceptionFilter"` + + // 错误码过滤 + ErrorCodeFilter *string `json:"ErrorCodeFilter,omitnil,omitempty" name:"ErrorCodeFilter"` + + // 服务组件类型 + Components *string `json:"Components,omitnil,omitempty" name:"Components"` + + // URL排除正则 + UrlExclude *string `json:"UrlExclude,omitnil,omitempty" name:"UrlExclude"` + + // 日志来源 + LogSource *string `json:"LogSource,omitnil,omitempty" name:"LogSource"` + + // 日志所在地域 + LogRegion *string `json:"LogRegion,omitnil,omitempty" name:"LogRegion"` + + // 是否开启日志 0 关 1 开 + IsRelatedLog *int64 `json:"IsRelatedLog,omitnil,omitempty" name:"IsRelatedLog"` + + // 日志主题ID + LogTopicID *string `json:"LogTopicID,omitnil,omitempty" name:"LogTopicID"` + + // 需过滤的接口名 + IgnoreOperationName *string `json:"IgnoreOperationName,omitnil,omitempty" name:"IgnoreOperationName"` + + // CLS日志集 | ES集群ID + LogSet *string `json:"LogSet,omitnil,omitempty" name:"LogSet"` + + // 探针每秒上报trace数 + TraceRateLimit *int64 `json:"TraceRateLimit,omitnil,omitempty" name:"TraceRateLimit"` + + // 是否开启线程剖析 + EnableSnapshot *bool `json:"EnableSnapshot,omitnil,omitempty" name:"EnableSnapshot"` + + // 线程剖析超时阈值 + SnapshotTimeout *int64 `json:"SnapshotTimeout,omitnil,omitempty" name:"SnapshotTimeout"` + + // 是否开启agent + AgentEnable *bool `json:"AgentEnable,omitnil,omitempty" name:"AgentEnable"` + + // 组件列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + InstrumentList []*Instrument `json:"InstrumentList,omitnil,omitempty" name:"InstrumentList"` + + // 是否开启链路压缩 + TraceSquash *bool `json:"TraceSquash,omitnil,omitempty" name:"TraceSquash"` + + // 是否开启应用诊断开关 + EventEnable *bool `json:"EventEnable,omitnil,omitempty" name:"EventEnable"` + + // 探针接口相关配置 + // 注意:此字段可能返回 null,表示取不到有效值。 + AgentOperationConfigView *AgentOperationConfigView `json:"AgentOperationConfigView,omitnil,omitempty" name:"AgentOperationConfigView"` + + // 是否开启应用日志配置 + EnableLogConfig *bool `json:"EnableLogConfig,omitnil,omitempty" name:"EnableLogConfig"` + + // 应用ID + // 注意:此字段可能返回 null,表示取不到有效值。 + ServiceID *string `json:"ServiceID,omitnil,omitempty" name:"ServiceID"` + + // 应用是否开启dashboard配置: false 关(与业务系统保持一致)/true 开(应用级配置) + // 注意:此字段可能返回 null,表示取不到有效值。 + EnableDashboardConfig *bool `json:"EnableDashboardConfig,omitnil,omitempty" name:"EnableDashboardConfig"` + + // 是否关联dashboard: 0 关 1 开 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsRelatedDashboard *int64 `json:"IsRelatedDashboard,omitnil,omitempty" name:"IsRelatedDashboard"` + + // dashboard ID + // 注意:此字段可能返回 null,表示取不到有效值。 + DashboardTopicID *string `json:"DashboardTopicID,omitnil,omitempty" name:"DashboardTopicID"` + + // 是否开启应用级别配置 + // 注意:此字段可能返回 null,表示取不到有效值。 + EnableSecurityConfig *bool `json:"EnableSecurityConfig,omitnil,omitempty" name:"EnableSecurityConfig"` + + // 是否开启组件漏洞检测 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsInstrumentationVulnerabilityScan *int64 `json:"IsInstrumentationVulnerabilityScan,omitnil,omitempty" name:"IsInstrumentationVulnerabilityScan"` + + // 是否开启SQL注入分析 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsSqlInjectionAnalysis *int64 `json:"IsSqlInjectionAnalysis,omitnil,omitempty" name:"IsSqlInjectionAnalysis"` + + // 是否开启远程命令执行分析 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsRemoteCommandExecutionAnalysis *int64 `json:"IsRemoteCommandExecutionAnalysis,omitnil,omitempty" name:"IsRemoteCommandExecutionAnalysis"` + + // 是否开启内存马检测分析 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsMemoryHijackingAnalysis *int64 `json:"IsMemoryHijackingAnalysis,omitnil,omitempty" name:"IsMemoryHijackingAnalysis"` + + // CLS索引类型(0=全文索引,1=键值索引) + LogIndexType *int64 `json:"LogIndexType,omitnil,omitempty" name:"LogIndexType"` + + // traceId的索引key: 当CLS索引类型为键值索引时生效 + LogTraceIdKey *string `json:"LogTraceIdKey,omitnil,omitempty" name:"LogTraceIdKey"` + + // 是否开启删除任意文件检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsDeleteAnyFileAnalysis *int64 `json:"IsDeleteAnyFileAnalysis,omitnil,omitempty" name:"IsDeleteAnyFileAnalysis"` + + // 是否开启读取任意文件检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsReadAnyFileAnalysis *int64 `json:"IsReadAnyFileAnalysis,omitnil,omitempty" name:"IsReadAnyFileAnalysis"` + + // 是否开启上传任意文件检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsUploadAnyFileAnalysis *int64 `json:"IsUploadAnyFileAnalysis,omitnil,omitempty" name:"IsUploadAnyFileAnalysis"` + + // 是否开启包含任意文件检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsIncludeAnyFileAnalysis *int64 `json:"IsIncludeAnyFileAnalysis,omitnil,omitempty" name:"IsIncludeAnyFileAnalysis"` + + // 是否开启目录遍历检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsDirectoryTraversalAnalysis *int64 `json:"IsDirectoryTraversalAnalysis,omitnil,omitempty" name:"IsDirectoryTraversalAnalysis"` + + // 是否开启模板引擎注入检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsTemplateEngineInjectionAnalysis *int64 `json:"IsTemplateEngineInjectionAnalysis,omitnil,omitempty" name:"IsTemplateEngineInjectionAnalysis"` + + // 是否开启脚本引擎注入检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsScriptEngineInjectionAnalysis *int64 `json:"IsScriptEngineInjectionAnalysis,omitnil,omitempty" name:"IsScriptEngineInjectionAnalysis"` + + // 是否开启表达式注入检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsExpressionInjectionAnalysis *int64 `json:"IsExpressionInjectionAnalysis,omitnil,omitempty" name:"IsExpressionInjectionAnalysis"` + + // 是否开启JNDI注入检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsJNDIInjectionAnalysis *int64 `json:"IsJNDIInjectionAnalysis,omitnil,omitempty" name:"IsJNDIInjectionAnalysis"` + + // 是否开启JNI注入检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsJNIInjectionAnalysis *int64 `json:"IsJNIInjectionAnalysis,omitnil,omitempty" name:"IsJNIInjectionAnalysis"` + + // 是否开启Webshell后门检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsWebshellBackdoorAnalysis *int64 `json:"IsWebshellBackdoorAnalysis,omitnil,omitempty" name:"IsWebshellBackdoorAnalysis"` + + // 是否开启反序列化检测(0-关闭,1-开启) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsDeserializationAnalysis *int64 `json:"IsDeserializationAnalysis,omitnil,omitempty" name:"IsDeserializationAnalysis"` + + // 接口名称自动收敛开关(0-关闭,1-开启) + UrlAutoConvergenceEnable *bool `json:"UrlAutoConvergenceEnable,omitnil,omitempty" name:"UrlAutoConvergenceEnable"` + + // URL长分段收敛阈值 + UrlLongSegmentThreshold *int64 `json:"UrlLongSegmentThreshold,omitnil,omitempty" name:"UrlLongSegmentThreshold"` + + // URL数字分段收敛阈值 + UrlNumberSegmentThreshold *int64 `json:"UrlNumberSegmentThreshold,omitnil,omitempty" name:"UrlNumberSegmentThreshold"` + + // 探针熔断内存阈值 + DisableMemoryUsed *int64 `json:"DisableMemoryUsed,omitnil,omitempty" name:"DisableMemoryUsed"` + + // 探针熔断CPU阈值 + DisableCpuUsed *int64 `json:"DisableCpuUsed,omitnil,omitempty" name:"DisableCpuUsed"` +} + type ApmApplicationConfigView struct { // 业务系统 ID InstanceKey *string `json:"InstanceKey,omitnil,omitempty" name:"InstanceKey"` @@ -121,6 +316,19 @@ type ApmApplicationConfigView struct { DisableCpuUsed *int64 `json:"DisableCpuUsed,omitnil,omitempty" name:"DisableCpuUsed"` } +type ApmAssociation struct { + // 关联产品的实例ID + // 注意:此字段可能返回 null,表示取不到有效值。 + PeerId *string `json:"PeerId,omitnil,omitempty" name:"PeerId"` + + // 关联关系状态:1(启用)、2(不启用)、3(已失效) + // 注意:此字段可能返回 null,表示取不到有效值。 + Status *int64 `json:"Status,omitnil,omitempty" name:"Status"` + + // CKafka消息主题 + Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` +} + type ApmField struct { // 指标名 Key *string `json:"Key,omitnil,omitempty" name:"Key"` @@ -333,6 +541,66 @@ type ApmMetricRecord struct { Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` } +type ApmPrometheusRules struct { + // 指标匹配规则ID + Id *int64 `json:"Id,omitnil,omitempty" name:"Id"` + + // 指标匹配规则名 + // 注意:此字段可能返回 null,表示取不到有效值。 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 规则生效的应用。生效于全部应用就传空字符串 + // 注意:此字段可能返回 null,表示取不到有效值。 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // 指标匹配规则状态:1(启用)、2(不启用) + // 注意:此字段可能返回 null,表示取不到有效值。 + Status *int64 `json:"Status,omitnil,omitempty" name:"Status"` + + // 指标匹配规则 + // 注意:此字段可能返回 null,表示取不到有效值。 + MetricNameRule *string `json:"MetricNameRule,omitnil,omitempty" name:"MetricNameRule"` + + // 匹配类型:0精准匹配,1前缀匹配,2后缀匹配 + // 注意:此字段可能返回 null,表示取不到有效值。 + MetricMatchType *int64 `json:"MetricMatchType,omitnil,omitempty" name:"MetricMatchType"` +} + +type ApmSampleConfig struct { + // 实例ID + InstanceKey *string `json:"InstanceKey,omitnil,omitempty" name:"InstanceKey"` + + // 服务名 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // 采样名字 + SampleName *string `json:"SampleName,omitnil,omitempty" name:"SampleName"` + + // 接口名 + OperationName *string `json:"OperationName,omitnil,omitempty" name:"OperationName"` + + // 采样的span数 + SpanNum *int64 `json:"SpanNum,omitnil,omitempty" name:"SpanNum"` + + // 采样配置开关 0 关 1 开 + Status *int64 `json:"Status,omitnil,omitempty" name:"Status"` + + // tags数组 + // 注意:此字段可能返回 null,表示取不到有效值。 + Tags []*APMKVItem `json:"Tags,omitnil,omitempty" name:"Tags"` + + // 采样率 + SampleRate *int64 `json:"SampleRate,omitnil,omitempty" name:"SampleRate"` + + // 0=精确匹配(默认);1=前缀匹配;2=后缀匹配 + // 注意:此字段可能返回 null,表示取不到有效值。 + OperationType *int64 `json:"OperationType,omitnil,omitempty" name:"OperationType"` + + // 配置Id + // 注意:此字段可能返回 null,表示取不到有效值。 + Id *int64 `json:"Id,omitnil,omitempty" name:"Id"` +} + type ApmServiceMetric struct { // filed数组 // 注意:此字段可能返回 null,表示取不到有效值。 @@ -455,1342 +723,2307 @@ func (r *CreateApmInstanceResponse) FromJsonString(s string) error { } // Predefined struct for user -type CreateProfileTaskRequestParams struct { - // 应用名称 - ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - - // APM业务系统ID - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - - // 应用实例(在线) - ServiceInstance *string `json:"ServiceInstance,omitnil,omitempty" name:"ServiceInstance"` - - // 事件类型(cpu、alloc) - Event *string `json:"Event,omitnil,omitempty" name:"Event"` +type CreateApmPrometheusRuleRequestParams struct { + // 指标匹配规则名 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` - // 任务持续时长(单位:毫秒),范围限制在5~180秒 - Duration *int64 `json:"Duration,omitnil,omitempty" name:"Duration"` + // 规则生效的应用。作用全部应用就传空字符串 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - // 执行次数,范围限制在1~100次 - AllTimes *int64 `json:"AllTimes,omitnil,omitempty" name:"AllTimes"` + // 指标匹配类型:0精准匹配,1前缀匹配,2后缀匹配 + MetricMatchType *int64 `json:"MetricMatchType,omitnil,omitempty" name:"MetricMatchType"` - // 开始时间戳,0代表从当前开始(单位:秒) - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + // 客户定义的命中指标名规则。 + MetricNameRule *string `json:"MetricNameRule,omitnil,omitempty" name:"MetricNameRule"` - // 任务执行间隔(单位:毫秒),范围限制在10~600秒,不可小于1.5倍的Duration - TaskInterval *int64 `json:"TaskInterval,omitnil,omitempty" name:"TaskInterval"` + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` } -type CreateProfileTaskRequest struct { +type CreateApmPrometheusRuleRequest struct { *tchttp.BaseRequest - // 应用名称 - ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - - // APM业务系统ID - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - - // 应用实例(在线) - ServiceInstance *string `json:"ServiceInstance,omitnil,omitempty" name:"ServiceInstance"` - - // 事件类型(cpu、alloc) - Event *string `json:"Event,omitnil,omitempty" name:"Event"` + // 指标匹配规则名 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` - // 任务持续时长(单位:毫秒),范围限制在5~180秒 - Duration *int64 `json:"Duration,omitnil,omitempty" name:"Duration"` + // 规则生效的应用。作用全部应用就传空字符串 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - // 执行次数,范围限制在1~100次 - AllTimes *int64 `json:"AllTimes,omitnil,omitempty" name:"AllTimes"` + // 指标匹配类型:0精准匹配,1前缀匹配,2后缀匹配 + MetricMatchType *int64 `json:"MetricMatchType,omitnil,omitempty" name:"MetricMatchType"` - // 开始时间戳,0代表从当前开始(单位:秒) - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + // 客户定义的命中指标名规则。 + MetricNameRule *string `json:"MetricNameRule,omitnil,omitempty" name:"MetricNameRule"` - // 任务执行间隔(单位:毫秒),范围限制在10~600秒,不可小于1.5倍的Duration - TaskInterval *int64 `json:"TaskInterval,omitnil,omitempty" name:"TaskInterval"` + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` } -func (r *CreateProfileTaskRequest) ToJsonString() string { +func (r *CreateApmPrometheusRuleRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *CreateProfileTaskRequest) FromJsonString(s string) error { +func (r *CreateApmPrometheusRuleRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } + delete(f, "Name") delete(f, "ServiceName") + delete(f, "MetricMatchType") + delete(f, "MetricNameRule") delete(f, "InstanceId") - delete(f, "ServiceInstance") - delete(f, "Event") - delete(f, "Duration") - delete(f, "AllTimes") - delete(f, "StartTime") - delete(f, "TaskInterval") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateProfileTaskRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateApmPrometheusRuleRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type CreateProfileTaskResponseParams struct { - // 任务ID - TaskId *int64 `json:"TaskId,omitnil,omitempty" name:"TaskId"` - +type CreateApmPrometheusRuleResponseParams struct { // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type CreateProfileTaskResponse struct { +type CreateApmPrometheusRuleResponse struct { *tchttp.BaseResponse - Response *CreateProfileTaskResponseParams `json:"Response"` + Response *CreateApmPrometheusRuleResponseParams `json:"Response"` } -func (r *CreateProfileTaskResponse) ToJsonString() string { +func (r *CreateApmPrometheusRuleResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *CreateProfileTaskResponse) FromJsonString(s string) error { +func (r *CreateApmPrometheusRuleResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeApmAgentRequestParams struct { - // 业务系统 ID +type CreateApmSampleConfigRequestParams struct { + // 业务系统ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 接入方式,现支持 skywalking, ot, ebpf 方式接入上报,不填默认为 ot - AgentType *string `json:"AgentType,omitnil,omitempty" name:"AgentType"` + // 采样率 + SampleRate *int64 `json:"SampleRate,omitnil,omitempty" name:"SampleRate"` - // 上报环境,现支持 pl (内网上报), public (外网), inner (自研 VPC )环境上报,不传默认为 public - NetworkMode *string `json:"NetworkMode,omitnil,omitempty" name:"NetworkMode"` + // 应用名 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - // 语言,现支持 java, golang, php, python, dotNet, nodejs 语言上报,不传默认为 golang - LanguageEnvironment *string `json:"LanguageEnvironment,omitnil,omitempty" name:"LanguageEnvironment"` + // 采样规则名 + SampleName *string `json:"SampleName,omitnil,omitempty" name:"SampleName"` - // 上报方式,已弃用 - ReportMethod *string `json:"ReportMethod,omitnil,omitempty" name:"ReportMethod"` + // 采样Tags + Tags []*APMKVItem `json:"Tags,omitnil,omitempty" name:"Tags"` + + // 接口名 + OperationName *string `json:"OperationName,omitnil,omitempty" name:"OperationName"` + + // 0=精确匹配(默认);1=前缀匹配;2=后缀匹配 + OperationType *int64 `json:"OperationType,omitnil,omitempty" name:"OperationType"` } -type DescribeApmAgentRequest struct { +type CreateApmSampleConfigRequest struct { *tchttp.BaseRequest - // 业务系统 ID + // 业务系统ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 接入方式,现支持 skywalking, ot, ebpf 方式接入上报,不填默认为 ot - AgentType *string `json:"AgentType,omitnil,omitempty" name:"AgentType"` + // 采样率 + SampleRate *int64 `json:"SampleRate,omitnil,omitempty" name:"SampleRate"` - // 上报环境,现支持 pl (内网上报), public (外网), inner (自研 VPC )环境上报,不传默认为 public - NetworkMode *string `json:"NetworkMode,omitnil,omitempty" name:"NetworkMode"` + // 应用名 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - // 语言,现支持 java, golang, php, python, dotNet, nodejs 语言上报,不传默认为 golang - LanguageEnvironment *string `json:"LanguageEnvironment,omitnil,omitempty" name:"LanguageEnvironment"` + // 采样规则名 + SampleName *string `json:"SampleName,omitnil,omitempty" name:"SampleName"` - // 上报方式,已弃用 - ReportMethod *string `json:"ReportMethod,omitnil,omitempty" name:"ReportMethod"` + // 采样Tags + Tags []*APMKVItem `json:"Tags,omitnil,omitempty" name:"Tags"` + + // 接口名 + OperationName *string `json:"OperationName,omitnil,omitempty" name:"OperationName"` + + // 0=精确匹配(默认);1=前缀匹配;2=后缀匹配 + OperationType *int64 `json:"OperationType,omitnil,omitempty" name:"OperationType"` } -func (r *DescribeApmAgentRequest) ToJsonString() string { +func (r *CreateApmSampleConfigRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeApmAgentRequest) FromJsonString(s string) error { +func (r *CreateApmSampleConfigRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } delete(f, "InstanceId") - delete(f, "AgentType") - delete(f, "NetworkMode") - delete(f, "LanguageEnvironment") - delete(f, "ReportMethod") + delete(f, "SampleRate") + delete(f, "ServiceName") + delete(f, "SampleName") + delete(f, "Tags") + delete(f, "OperationName") + delete(f, "OperationType") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApmAgentRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateApmSampleConfigRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeApmAgentResponseParams struct { - // Agent 信息 - ApmAgent *ApmAgentInfo `json:"ApmAgent,omitnil,omitempty" name:"ApmAgent"` +type CreateApmSampleConfigResponseParams struct { + // 采样配置参数 + ApmSampleConfig *ApmSampleConfig `json:"ApmSampleConfig,omitnil,omitempty" name:"ApmSampleConfig"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeApmAgentResponse struct { +type CreateApmSampleConfigResponse struct { *tchttp.BaseResponse - Response *DescribeApmAgentResponseParams `json:"Response"` + Response *CreateApmSampleConfigResponseParams `json:"Response"` } -func (r *DescribeApmAgentResponse) ToJsonString() string { +func (r *CreateApmSampleConfigResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeApmAgentResponse) FromJsonString(s string) error { +func (r *CreateApmSampleConfigResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeApmInstancesRequestParams struct { - // Tag 列表 - Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` - - // 按业务系统名过滤,支持模糊检索 - InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"` +type CreateProfileTaskRequestParams struct { + // 应用名称 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - // 按业务系统 ID 过滤,支持模糊检索 + // APM业务系统ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 按业务系统 ID 过滤 - InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"` + // 应用实例(在线) + ServiceInstance *string `json:"ServiceInstance,omitnil,omitempty" name:"ServiceInstance"` - // 是否查询官方 Demo 业务系统(0=非 Demo 业务系统,1=Demo 业务系统,默认为0) - DemoInstanceFlag *int64 `json:"DemoInstanceFlag,omitnil,omitempty" name:"DemoInstanceFlag"` + // 事件类型(cpu、alloc) + Event *string `json:"Event,omitnil,omitempty" name:"Event"` - // 是否查询全地域业务系统(0=不查询全地域,1=查询全地域,默认为0) - AllRegionsFlag *int64 `json:"AllRegionsFlag,omitnil,omitempty" name:"AllRegionsFlag"` + // 任务持续时长(单位:毫秒),范围限制在5~180秒 + Duration *int64 `json:"Duration,omitnil,omitempty" name:"Duration"` + + // 执行次数,范围限制在1~100次 + AllTimes *int64 `json:"AllTimes,omitnil,omitempty" name:"AllTimes"` + + // 开始时间戳,0代表从当前开始(单位:秒) + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 任务执行间隔(单位:毫秒),范围限制在10~600秒,不可小于1.5倍的Duration + TaskInterval *int64 `json:"TaskInterval,omitnil,omitempty" name:"TaskInterval"` } -type DescribeApmInstancesRequest struct { +type CreateProfileTaskRequest struct { *tchttp.BaseRequest - // Tag 列表 - Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` - - // 按业务系统名过滤,支持模糊检索 - InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"` + // 应用名称 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - // 按业务系统 ID 过滤,支持模糊检索 + // APM业务系统ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 按业务系统 ID 过滤 - InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"` + // 应用实例(在线) + ServiceInstance *string `json:"ServiceInstance,omitnil,omitempty" name:"ServiceInstance"` - // 是否查询官方 Demo 业务系统(0=非 Demo 业务系统,1=Demo 业务系统,默认为0) - DemoInstanceFlag *int64 `json:"DemoInstanceFlag,omitnil,omitempty" name:"DemoInstanceFlag"` + // 事件类型(cpu、alloc) + Event *string `json:"Event,omitnil,omitempty" name:"Event"` - // 是否查询全地域业务系统(0=不查询全地域,1=查询全地域,默认为0) - AllRegionsFlag *int64 `json:"AllRegionsFlag,omitnil,omitempty" name:"AllRegionsFlag"` + // 任务持续时长(单位:毫秒),范围限制在5~180秒 + Duration *int64 `json:"Duration,omitnil,omitempty" name:"Duration"` + + // 执行次数,范围限制在1~100次 + AllTimes *int64 `json:"AllTimes,omitnil,omitempty" name:"AllTimes"` + + // 开始时间戳,0代表从当前开始(单位:秒) + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 任务执行间隔(单位:毫秒),范围限制在10~600秒,不可小于1.5倍的Duration + TaskInterval *int64 `json:"TaskInterval,omitnil,omitempty" name:"TaskInterval"` } -func (r *DescribeApmInstancesRequest) ToJsonString() string { +func (r *CreateProfileTaskRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeApmInstancesRequest) FromJsonString(s string) error { +func (r *CreateProfileTaskRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } - delete(f, "Tags") - delete(f, "InstanceName") + delete(f, "ServiceName") delete(f, "InstanceId") - delete(f, "InstanceIds") - delete(f, "DemoInstanceFlag") - delete(f, "AllRegionsFlag") + delete(f, "ServiceInstance") + delete(f, "Event") + delete(f, "Duration") + delete(f, "AllTimes") + delete(f, "StartTime") + delete(f, "TaskInterval") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApmInstancesRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateProfileTaskRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeApmInstancesResponseParams struct { - // APM 业务系统列表 - Instances []*ApmInstanceDetail `json:"Instances,omitnil,omitempty" name:"Instances"` +type CreateProfileTaskResponseParams struct { + // 任务ID + TaskId *int64 `json:"TaskId,omitnil,omitempty" name:"TaskId"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeApmInstancesResponse struct { +type CreateProfileTaskResponse struct { *tchttp.BaseResponse - Response *DescribeApmInstancesResponseParams `json:"Response"` + Response *CreateProfileTaskResponseParams `json:"Response"` } -func (r *DescribeApmInstancesResponse) ToJsonString() string { +func (r *CreateProfileTaskResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeApmInstancesResponse) FromJsonString(s string) error { +func (r *CreateProfileTaskResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeApmServiceMetricRequestParams struct { +type DeleteApmSampleConfigRequestParams struct { // 业务系统ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 应用名 - ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - - // 应用ID - ServiceID *string `json:"ServiceID,omitnil,omitempty" name:"ServiceID"` - - // 开始时间 - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // 结束时间 - EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` - - // 排序 - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` - - // 是否demo模式 - Demo *bool `json:"Demo,omitnil,omitempty" name:"Demo"` - - // 应用状态筛选,可枚举的值为:health、warning、error。如果选中多个状态用逗号隔开,例如:"warning,error" - ServiceStatus *string `json:"ServiceStatus,omitnil,omitempty" name:"ServiceStatus"` - - // 标签列表 - Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` - - // 页码 - Page *int64 `json:"Page,omitnil,omitempty" name:"Page"` - - // 页大小 - PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` - - // 过滤条件 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + // 采样规则名 + SampleName *string `json:"SampleName,omitnil,omitempty" name:"SampleName"` } -type DescribeApmServiceMetricRequest struct { +type DeleteApmSampleConfigRequest struct { *tchttp.BaseRequest // 业务系统ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 应用名 - ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - - // 应用ID - ServiceID *string `json:"ServiceID,omitnil,omitempty" name:"ServiceID"` - - // 开始时间 - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // 结束时间 - EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` - - // 排序 - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` - - // 是否demo模式 - Demo *bool `json:"Demo,omitnil,omitempty" name:"Demo"` - - // 应用状态筛选,可枚举的值为:health、warning、error。如果选中多个状态用逗号隔开,例如:"warning,error" - ServiceStatus *string `json:"ServiceStatus,omitnil,omitempty" name:"ServiceStatus"` - - // 标签列表 - Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` - - // 页码 - Page *int64 `json:"Page,omitnil,omitempty" name:"Page"` - - // 页大小 - PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` - - // 过滤条件 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + // 采样规则名 + SampleName *string `json:"SampleName,omitnil,omitempty" name:"SampleName"` } -func (r *DescribeApmServiceMetricRequest) ToJsonString() string { +func (r *DeleteApmSampleConfigRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeApmServiceMetricRequest) FromJsonString(s string) error { +func (r *DeleteApmSampleConfigRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } delete(f, "InstanceId") - delete(f, "ServiceName") - delete(f, "ServiceID") - delete(f, "StartTime") - delete(f, "EndTime") - delete(f, "OrderBy") - delete(f, "Demo") - delete(f, "ServiceStatus") - delete(f, "Tags") - delete(f, "Page") - delete(f, "PageSize") - delete(f, "Filters") + delete(f, "SampleName") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApmServiceMetricRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteApmSampleConfigRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeApmServiceMetricResponseParams struct { - // 应用指标列表 - ServiceMetricList []*ApmServiceMetric `json:"ServiceMetricList,omitnil,omitempty" name:"ServiceMetricList"` - - // 符合筛选条件的应用数 - TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` - - // 警示异常应用数 - WarningErrorCount *int64 `json:"WarningErrorCount,omitnil,omitempty" name:"WarningErrorCount"` - - // 应用总数 - ApplicationCount *int64 `json:"ApplicationCount,omitnil,omitempty" name:"ApplicationCount"` - - // 页码 - Page *int64 `json:"Page,omitnil,omitempty" name:"Page"` - - // 页大小 - PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` - - // 异常应用数 - ErrorCount *int64 `json:"ErrorCount,omitnil,omitempty" name:"ErrorCount"` - - // 警示应用数 - WarningCount *int64 `json:"WarningCount,omitnil,omitempty" name:"WarningCount"` - +type DeleteApmSampleConfigResponseParams struct { // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeApmServiceMetricResponse struct { +type DeleteApmSampleConfigResponse struct { *tchttp.BaseResponse - Response *DescribeApmServiceMetricResponseParams `json:"Response"` + Response *DeleteApmSampleConfigResponseParams `json:"Response"` } -func (r *DescribeApmServiceMetricResponse) ToJsonString() string { +func (r *DeleteApmSampleConfigResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeApmServiceMetricResponse) FromJsonString(s string) error { +func (r *DeleteApmSampleConfigResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeGeneralApmApplicationConfigRequestParams struct { - // 应用名 - ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - - // 业务系统ID +type DescribeApmAgentRequestParams struct { + // 业务系统 ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 接入方式,现支持 skywalking, ot, ebpf 方式接入上报,不填默认为 ot + AgentType *string `json:"AgentType,omitnil,omitempty" name:"AgentType"` + + // 上报环境,现支持 pl (内网上报), public (外网), inner (自研 VPC )环境上报,不传默认为 public + NetworkMode *string `json:"NetworkMode,omitnil,omitempty" name:"NetworkMode"` + + // 语言,现支持 java, golang, php, python, dotNet, nodejs 语言上报,不传默认为 golang + LanguageEnvironment *string `json:"LanguageEnvironment,omitnil,omitempty" name:"LanguageEnvironment"` + + // 上报方式,已弃用 + ReportMethod *string `json:"ReportMethod,omitnil,omitempty" name:"ReportMethod"` } -type DescribeGeneralApmApplicationConfigRequest struct { +type DescribeApmAgentRequest struct { *tchttp.BaseRequest - // 应用名 - ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - - // 业务系统ID + // 业务系统 ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 接入方式,现支持 skywalking, ot, ebpf 方式接入上报,不填默认为 ot + AgentType *string `json:"AgentType,omitnil,omitempty" name:"AgentType"` + + // 上报环境,现支持 pl (内网上报), public (外网), inner (自研 VPC )环境上报,不传默认为 public + NetworkMode *string `json:"NetworkMode,omitnil,omitempty" name:"NetworkMode"` + + // 语言,现支持 java, golang, php, python, dotNet, nodejs 语言上报,不传默认为 golang + LanguageEnvironment *string `json:"LanguageEnvironment,omitnil,omitempty" name:"LanguageEnvironment"` + + // 上报方式,已弃用 + ReportMethod *string `json:"ReportMethod,omitnil,omitempty" name:"ReportMethod"` } -func (r *DescribeGeneralApmApplicationConfigRequest) ToJsonString() string { +func (r *DescribeApmAgentRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeGeneralApmApplicationConfigRequest) FromJsonString(s string) error { +func (r *DescribeApmAgentRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } - delete(f, "ServiceName") delete(f, "InstanceId") + delete(f, "AgentType") + delete(f, "NetworkMode") + delete(f, "LanguageEnvironment") + delete(f, "ReportMethod") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGeneralApmApplicationConfigRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApmAgentRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeGeneralApmApplicationConfigResponseParams struct { - // 应用配置项 - ApmApplicationConfigView *ApmApplicationConfigView `json:"ApmApplicationConfigView,omitnil,omitempty" name:"ApmApplicationConfigView"` +type DescribeApmAgentResponseParams struct { + // Agent 信息 + ApmAgent *ApmAgentInfo `json:"ApmAgent,omitnil,omitempty" name:"ApmAgent"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeGeneralApmApplicationConfigResponse struct { +type DescribeApmAgentResponse struct { *tchttp.BaseResponse - Response *DescribeGeneralApmApplicationConfigResponseParams `json:"Response"` + Response *DescribeApmAgentResponseParams `json:"Response"` } -func (r *DescribeGeneralApmApplicationConfigResponse) ToJsonString() string { +func (r *DescribeApmAgentResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeGeneralApmApplicationConfigResponse) FromJsonString(s string) error { +func (r *DescribeApmAgentResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeGeneralMetricDataRequestParams struct { - // 需要查询的指标名称,不可自定义输入,[详情请见。](https://cloud.tencent.com/document/product/248/101681) - Metrics []*string `json:"Metrics,omitnil,omitempty" name:"Metrics"` - - // 业务系统 ID +type DescribeApmApplicationConfigRequestParams struct { + // 实例ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 视图名称,不可自定义输入。[详情请见。](https://cloud.tencent.com/document/product/248/101681) - ViewName *string `json:"ViewName,omitnil,omitempty" name:"ViewName"` - - // 要过滤的维度信息,不同视图有对应的指标维度,[详情请见。](https://cloud.tencent.com/document/product/248/101681) - Filters []*GeneralFilter `json:"Filters,omitnil,omitempty" name:"Filters"` - - // 聚合维度,不同视图有对应的指标维度,[详情请见。](https://cloud.tencent.com/document/product/248/101681) - GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` - - // 起始时间的时间戳,支持查询30天内的指标数据。(单位:秒) - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // 结束时间的时间戳,支持查询30天内的指标数据。(单位:秒) - EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` - - // 是否按固定时间跨度聚合,填入1及大于1的值按1处理,不填按0处理。 - // - 填入0,则计算开始时间到截止时间的指标数据。 - // - 填入1,则会按照开始时间到截止时间的时间跨度选择聚合粒度: - // - 时间跨度 (0,12) 小时,则按一分钟粒度聚合。 - // - 时间跨度 [12,48] 小时,则按五分钟粒度聚合。 - // - 时间跨度 (48, +∞) 小时,则按一小时粒度聚合。 - Period *int64 `json:"Period,omitnil,omitempty" name:"Period"` - - // 对查询指标进行排序: - // Key 填写云 API 指标名称,[详情请见。](https://cloud.tencent.com/document/product/248/101681) - // Value 填写排序方式: - // - asc:对查询指标进行升序排序 - // - desc:对查询指标进行降序排序 - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` - - // 查询指标的限制条数,目前最多展示50条数据,PageSize取值为1-50,上送PageSize则根据PageSize的值展示限制条数。 - PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` + // 服务名称 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` } -type DescribeGeneralMetricDataRequest struct { +type DescribeApmApplicationConfigRequest struct { *tchttp.BaseRequest - // 需要查询的指标名称,不可自定义输入,[详情请见。](https://cloud.tencent.com/document/product/248/101681) - Metrics []*string `json:"Metrics,omitnil,omitempty" name:"Metrics"` - - // 业务系统 ID + // 实例ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 视图名称,不可自定义输入。[详情请见。](https://cloud.tencent.com/document/product/248/101681) - ViewName *string `json:"ViewName,omitnil,omitempty" name:"ViewName"` - - // 要过滤的维度信息,不同视图有对应的指标维度,[详情请见。](https://cloud.tencent.com/document/product/248/101681) - Filters []*GeneralFilter `json:"Filters,omitnil,omitempty" name:"Filters"` - - // 聚合维度,不同视图有对应的指标维度,[详情请见。](https://cloud.tencent.com/document/product/248/101681) - GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` - - // 起始时间的时间戳,支持查询30天内的指标数据。(单位:秒) - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // 结束时间的时间戳,支持查询30天内的指标数据。(单位:秒) - EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` - - // 是否按固定时间跨度聚合,填入1及大于1的值按1处理,不填按0处理。 - // - 填入0,则计算开始时间到截止时间的指标数据。 - // - 填入1,则会按照开始时间到截止时间的时间跨度选择聚合粒度: - // - 时间跨度 (0,12) 小时,则按一分钟粒度聚合。 - // - 时间跨度 [12,48] 小时,则按五分钟粒度聚合。 - // - 时间跨度 (48, +∞) 小时,则按一小时粒度聚合。 - Period *int64 `json:"Period,omitnil,omitempty" name:"Period"` - - // 对查询指标进行排序: - // Key 填写云 API 指标名称,[详情请见。](https://cloud.tencent.com/document/product/248/101681) - // Value 填写排序方式: - // - asc:对查询指标进行升序排序 - // - desc:对查询指标进行降序排序 - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` - - // 查询指标的限制条数,目前最多展示50条数据,PageSize取值为1-50,上送PageSize则根据PageSize的值展示限制条数。 - PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` + // 服务名称 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` } -func (r *DescribeGeneralMetricDataRequest) ToJsonString() string { +func (r *DescribeApmApplicationConfigRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeGeneralMetricDataRequest) FromJsonString(s string) error { +func (r *DescribeApmApplicationConfigRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } - delete(f, "Metrics") delete(f, "InstanceId") - delete(f, "ViewName") - delete(f, "Filters") - delete(f, "GroupBy") - delete(f, "StartTime") - delete(f, "EndTime") - delete(f, "Period") - delete(f, "OrderBy") - delete(f, "PageSize") + delete(f, "ServiceName") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGeneralMetricDataRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApmApplicationConfigRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeGeneralMetricDataResponseParams struct { - // 指标结果集 - Records []*Line `json:"Records,omitnil,omitempty" name:"Records"` +type DescribeApmApplicationConfigResponseParams struct { + // Apm应用配置 + // 注意:此字段可能返回 null,表示取不到有效值。 + ApmAppConfig *ApmAppConfig `json:"ApmAppConfig,omitnil,omitempty" name:"ApmAppConfig"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeGeneralMetricDataResponse struct { +type DescribeApmApplicationConfigResponse struct { *tchttp.BaseResponse - Response *DescribeGeneralMetricDataResponseParams `json:"Response"` + Response *DescribeApmApplicationConfigResponseParams `json:"Response"` } -func (r *DescribeGeneralMetricDataResponse) ToJsonString() string { +func (r *DescribeApmApplicationConfigResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeGeneralMetricDataResponse) FromJsonString(s string) error { +func (r *DescribeApmApplicationConfigResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeGeneralOTSpanListRequestParams struct { - // 业务系统 ID - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` +type DescribeApmAssociationRequestParams struct { + // 关联的产品名,当前只支持Prometheus + ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"` - // Span 查询开始时间戳(单位:秒) - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // Span 查询结束时间戳(单位:秒) - EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` - - // 通用过滤参数 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` - - // 排序 - // 现支持的 Key 有: - // - // - startTime(开始时间) - // - endTime(结束时间) - // - duration(响应时间) - // - // 现支持的 Value 有: - // - // - desc(降序排序) - // - asc(升序排序) - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` - - // 业务自身服务名,控制台用户请填写taw - BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` - - // 单页项目个数,默认为10000,合法取值范围为0~10000 - Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` - - // 分页 - Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + // 业务系统名 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` } -type DescribeGeneralOTSpanListRequest struct { +type DescribeApmAssociationRequest struct { *tchttp.BaseRequest - // 业务系统 ID - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - - // Span 查询开始时间戳(单位:秒) - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // Span 查询结束时间戳(单位:秒) - EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` - - // 通用过滤参数 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` - - // 排序 - // 现支持的 Key 有: - // - // - startTime(开始时间) - // - endTime(结束时间) - // - duration(响应时间) - // - // 现支持的 Value 有: - // - // - desc(降序排序) - // - asc(升序排序) - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` - - // 业务自身服务名,控制台用户请填写taw - BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` + // 关联的产品名,当前只支持Prometheus + ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"` - // 单页项目个数,默认为10000,合法取值范围为0~10000 - Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` - - // 分页 - Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + // 业务系统名 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` } -func (r *DescribeGeneralOTSpanListRequest) ToJsonString() string { +func (r *DescribeApmAssociationRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeGeneralOTSpanListRequest) FromJsonString(s string) error { +func (r *DescribeApmAssociationRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } + delete(f, "ProductName") delete(f, "InstanceId") - delete(f, "StartTime") - delete(f, "EndTime") - delete(f, "Filters") - delete(f, "OrderBy") - delete(f, "BusinessName") - delete(f, "Limit") - delete(f, "Offset") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGeneralOTSpanListRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApmAssociationRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeGeneralOTSpanListResponseParams struct { - // 总数量 - TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` - - // Spans字段中包含了链路数据的全部内容,由于数据经过了压缩,需要对结果进行如下三步转换,以还原始的文本。 - // 1. 将Spans字段中的文本进行 Base64 解码,得到经过压缩后字节数组。 - // 2. 使用 gzip 对压缩后的字节数组进行解压,得到压缩前的字节数组。 - // 3. 使用 UTF-8 字符集,将压缩前的字节数组转换为文本。 - Spans *string `json:"Spans,omitnil,omitempty" name:"Spans"` +type DescribeApmAssociationResponseParams struct { + // 关联的产品实例ID + ApmAssociation *ApmAssociation `json:"ApmAssociation,omitnil,omitempty" name:"ApmAssociation"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeGeneralOTSpanListResponse struct { +type DescribeApmAssociationResponse struct { *tchttp.BaseResponse - Response *DescribeGeneralOTSpanListResponseParams `json:"Response"` + Response *DescribeApmAssociationResponseParams `json:"Response"` } -func (r *DescribeGeneralOTSpanListResponse) ToJsonString() string { +func (r *DescribeApmAssociationResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeGeneralOTSpanListResponse) FromJsonString(s string) error { +func (r *DescribeApmAssociationResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeGeneralSpanListRequestParams struct { - // 业务系统 ID - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` +type DescribeApmInstancesRequestParams struct { + // Tag 列表 + Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` - // Span 查询开始时间戳(单位:秒) - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // Span 查询结束时间戳(单位:秒) - EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` - - // 通用过滤参数 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + // 按业务系统名过滤,支持模糊检索 + InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"` - // 排序 - // 现支持的 Key 有: - // - // - startTime(开始时间) - // - endTime(结束时间) - // - duration(响应时间) - // - // 现支持的 Value 有: - // - // - desc(降序排序) - // - asc(升序排序) - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + // 按业务系统 ID 过滤,支持模糊检索 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 业务自身服务名,控制台用户请填写taw - BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` + // 按业务系统 ID 过滤 + InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"` - // 单页项目个数,默认为10000,合法取值范围为0~10000 - Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + // 是否查询官方 Demo 业务系统(0=非 Demo 业务系统,1=Demo 业务系统,默认为0) + DemoInstanceFlag *int64 `json:"DemoInstanceFlag,omitnil,omitempty" name:"DemoInstanceFlag"` - // 分页 - Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + // 是否查询全地域业务系统(0=不查询全地域,1=查询全地域,默认为0) + AllRegionsFlag *int64 `json:"AllRegionsFlag,omitnil,omitempty" name:"AllRegionsFlag"` } -type DescribeGeneralSpanListRequest struct { +type DescribeApmInstancesRequest struct { *tchttp.BaseRequest - // 业务系统 ID - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - - // Span 查询开始时间戳(单位:秒) - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // Span 查询结束时间戳(单位:秒) - EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + // Tag 列表 + Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` - // 通用过滤参数 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + // 按业务系统名过滤,支持模糊检索 + InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"` - // 排序 - // 现支持的 Key 有: - // - // - startTime(开始时间) - // - endTime(结束时间) - // - duration(响应时间) - // - // 现支持的 Value 有: - // - // - desc(降序排序) - // - asc(升序排序) - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + // 按业务系统 ID 过滤,支持模糊检索 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 业务自身服务名,控制台用户请填写taw - BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` + // 按业务系统 ID 过滤 + InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"` - // 单页项目个数,默认为10000,合法取值范围为0~10000 - Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + // 是否查询官方 Demo 业务系统(0=非 Demo 业务系统,1=Demo 业务系统,默认为0) + DemoInstanceFlag *int64 `json:"DemoInstanceFlag,omitnil,omitempty" name:"DemoInstanceFlag"` - // 分页 - Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + // 是否查询全地域业务系统(0=不查询全地域,1=查询全地域,默认为0) + AllRegionsFlag *int64 `json:"AllRegionsFlag,omitnil,omitempty" name:"AllRegionsFlag"` } -func (r *DescribeGeneralSpanListRequest) ToJsonString() string { +func (r *DescribeApmInstancesRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeGeneralSpanListRequest) FromJsonString(s string) error { +func (r *DescribeApmInstancesRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } + delete(f, "Tags") + delete(f, "InstanceName") delete(f, "InstanceId") - delete(f, "StartTime") - delete(f, "EndTime") - delete(f, "Filters") - delete(f, "OrderBy") - delete(f, "BusinessName") - delete(f, "Limit") - delete(f, "Offset") + delete(f, "InstanceIds") + delete(f, "DemoInstanceFlag") + delete(f, "AllRegionsFlag") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGeneralSpanListRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApmInstancesRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeGeneralSpanListResponseParams struct { - // 总数量 - TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` - - // Span 分页列表 - Spans []*Span `json:"Spans,omitnil,omitempty" name:"Spans"` +type DescribeApmInstancesResponseParams struct { + // APM 业务系统列表 + Instances []*ApmInstanceDetail `json:"Instances,omitnil,omitempty" name:"Instances"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeGeneralSpanListResponse struct { +type DescribeApmInstancesResponse struct { *tchttp.BaseResponse - Response *DescribeGeneralSpanListResponseParams `json:"Response"` + Response *DescribeApmInstancesResponseParams `json:"Response"` } -func (r *DescribeGeneralSpanListResponse) ToJsonString() string { +func (r *DescribeApmInstancesResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeGeneralSpanListResponse) FromJsonString(s string) error { +func (r *DescribeApmInstancesResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeMetricRecordsRequestParams struct { - // 业务系统 ID +type DescribeApmPrometheusRuleRequestParams struct { + // 业务系统ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - - // 指标列表 - Metrics []*QueryMetricItem `json:"Metrics,omitnil,omitempty" name:"Metrics"` - - // 开始时间(单位为秒) - StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // 结束时间(单位为秒) - EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` - - // 聚合维度 - GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` - - // 过滤条件 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` - - // Or 过滤条件 - OrFilters []*Filter `json:"OrFilters,omitnil,omitempty" name:"OrFilters"` - - // 排序 - // 现支持的 Key 有: - // - // - startTime(开始时间) - // - endTime(结束时间) - // - duration(响应时间) - // - // 现支持的 Value 有: - // - // - desc(降序排序) - // - asc(升序排序) - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` - - // 业务名称,控制台用户请填写taw。 - BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` - - // 特殊处理查询结果 - Type *string `json:"Type,omitnil,omitempty" name:"Type"` - - // 每页大小,默认为1000,合法取值范围为0~1000 - Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` - - // 分页起始点 - Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` - - // 页码 - PageIndex *int64 `json:"PageIndex,omitnil,omitempty" name:"PageIndex"` - - // 页长 - PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` } -type DescribeMetricRecordsRequest struct { +type DescribeApmPrometheusRuleRequest struct { *tchttp.BaseRequest - // 业务系统 ID + // 业务系统ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - - // 指标列表 - Metrics []*QueryMetricItem `json:"Metrics,omitnil,omitempty" name:"Metrics"` - - // 开始时间(单位为秒) - StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // 结束时间(单位为秒) - EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` - - // 聚合维度 - GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` - - // 过滤条件 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` - - // Or 过滤条件 - OrFilters []*Filter `json:"OrFilters,omitnil,omitempty" name:"OrFilters"` - - // 排序 - // 现支持的 Key 有: - // - // - startTime(开始时间) - // - endTime(结束时间) - // - duration(响应时间) - // - // 现支持的 Value 有: - // - // - desc(降序排序) - // - asc(升序排序) - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` - - // 业务名称,控制台用户请填写taw。 - BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` - - // 特殊处理查询结果 - Type *string `json:"Type,omitnil,omitempty" name:"Type"` - - // 每页大小,默认为1000,合法取值范围为0~1000 - Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` - - // 分页起始点 - Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` - - // 页码 - PageIndex *int64 `json:"PageIndex,omitnil,omitempty" name:"PageIndex"` - - // 页长 - PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` } -func (r *DescribeMetricRecordsRequest) ToJsonString() string { +func (r *DescribeApmPrometheusRuleRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeMetricRecordsRequest) FromJsonString(s string) error { +func (r *DescribeApmPrometheusRuleRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } delete(f, "InstanceId") - delete(f, "Metrics") - delete(f, "StartTime") - delete(f, "EndTime") - delete(f, "GroupBy") - delete(f, "Filters") - delete(f, "OrFilters") - delete(f, "OrderBy") - delete(f, "BusinessName") - delete(f, "Type") - delete(f, "Limit") - delete(f, "Offset") - delete(f, "PageIndex") - delete(f, "PageSize") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMetricRecordsRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApmPrometheusRuleRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeMetricRecordsResponseParams struct { - // 指标结果集 - Records []*ApmMetricRecord `json:"Records,omitnil,omitempty" name:"Records"` - - // 查询指标结果集条数 - TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` +type DescribeApmPrometheusRuleResponseParams struct { + // 指标匹配规则 + ApmPrometheusRules []*ApmPrometheusRules `json:"ApmPrometheusRules,omitnil,omitempty" name:"ApmPrometheusRules"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeMetricRecordsResponse struct { +type DescribeApmPrometheusRuleResponse struct { *tchttp.BaseResponse - Response *DescribeMetricRecordsResponseParams `json:"Response"` + Response *DescribeApmPrometheusRuleResponseParams `json:"Response"` } -func (r *DescribeMetricRecordsResponse) ToJsonString() string { +func (r *DescribeApmPrometheusRuleResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeMetricRecordsResponse) FromJsonString(s string) error { +func (r *DescribeApmPrometheusRuleResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeServiceOverviewRequestParams struct { - // 业务系统 ID +type DescribeApmSampleConfigRequestParams struct { + // 业务系统ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 指标列表 - Metrics []*QueryMetricItem `json:"Metrics,omitnil,omitempty" name:"Metrics"` + // 采样规则名 + SampleName *string `json:"SampleName,omitnil,omitempty" name:"SampleName"` +} - // 开始时间(单位:秒) - StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` +type DescribeApmSampleConfigRequest struct { + *tchttp.BaseRequest + + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 结束时间(单位:秒) - EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + // 采样规则名 + SampleName *string `json:"SampleName,omitnil,omitempty" name:"SampleName"` +} - // 聚合维度 - GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` +func (r *DescribeApmSampleConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 过滤条件 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeApmSampleConfigRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "SampleName") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApmSampleConfigRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} - // 排序方式 - // Value 填写: - // - asc:对查询指标进行升序排序 - // - desc:对查询指标进行降序排序 - OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` +// Predefined struct for user +type DescribeApmSampleConfigResponseParams struct { + // 采样配置列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + ApmSampleConfigs []*ApmSampleConfig `json:"ApmSampleConfigs,omitnil,omitempty" name:"ApmSampleConfigs"` - // 每页大小 - Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} - // 分页起始点 - Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +type DescribeApmSampleConfigResponse struct { + *tchttp.BaseResponse + Response *DescribeApmSampleConfigResponseParams `json:"Response"` } -type DescribeServiceOverviewRequest struct { - *tchttp.BaseRequest - - // 业务系统 ID +func (r *DescribeApmSampleConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeApmSampleConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeApmServiceMetricRequestParams struct { + // 业务系统ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 指标列表 - Metrics []*QueryMetricItem `json:"Metrics,omitnil,omitempty" name:"Metrics"` + // 应用名 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` - // 开始时间(单位:秒) - StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + // 应用ID + ServiceID *string `json:"ServiceID,omitnil,omitempty" name:"ServiceID"` - // 结束时间(单位:秒) - EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + // 开始时间 + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - // 聚合维度 - GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` + // 结束时间 + EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 排序 + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 是否demo模式 + Demo *bool `json:"Demo,omitnil,omitempty" name:"Demo"` + + // 应用状态筛选,可枚举的值为:health、warning、error。如果选中多个状态用逗号隔开,例如:"warning,error" + ServiceStatus *string `json:"ServiceStatus,omitnil,omitempty" name:"ServiceStatus"` + + // 标签列表 + Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` + + // 页码 + Page *int64 `json:"Page,omitnil,omitempty" name:"Page"` + + // 页大小 + PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` // 过滤条件 Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` +} - // 排序方式 - // Value 填写: - // - asc:对查询指标进行升序排序 - // - desc:对查询指标进行降序排序 +type DescribeApmServiceMetricRequest struct { + *tchttp.BaseRequest + + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 应用名 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // 应用ID + ServiceID *string `json:"ServiceID,omitnil,omitempty" name:"ServiceID"` + + // 开始时间 + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 结束时间 + EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 排序 OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` - // 每页大小 - Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + // 是否demo模式 + Demo *bool `json:"Demo,omitnil,omitempty" name:"Demo"` - // 分页起始点 - Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + // 应用状态筛选,可枚举的值为:health、warning、error。如果选中多个状态用逗号隔开,例如:"warning,error" + ServiceStatus *string `json:"ServiceStatus,omitnil,omitempty" name:"ServiceStatus"` + + // 标签列表 + Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` + + // 页码 + Page *int64 `json:"Page,omitnil,omitempty" name:"Page"` + + // 页大小 + PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` + + // 过滤条件 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` } -func (r *DescribeServiceOverviewRequest) ToJsonString() string { +func (r *DescribeApmServiceMetricRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeServiceOverviewRequest) FromJsonString(s string) error { +func (r *DescribeApmServiceMetricRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } delete(f, "InstanceId") - delete(f, "Metrics") + delete(f, "ServiceName") + delete(f, "ServiceID") delete(f, "StartTime") delete(f, "EndTime") - delete(f, "GroupBy") - delete(f, "Filters") delete(f, "OrderBy") - delete(f, "Limit") - delete(f, "Offset") + delete(f, "Demo") + delete(f, "ServiceStatus") + delete(f, "Tags") + delete(f, "Page") + delete(f, "PageSize") + delete(f, "Filters") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApmServiceMetricRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeApmServiceMetricResponseParams struct { + // 应用指标列表 + ServiceMetricList []*ApmServiceMetric `json:"ServiceMetricList,omitnil,omitempty" name:"ServiceMetricList"` + + // 符合筛选条件的应用数 + TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // 警示异常应用数 + WarningErrorCount *int64 `json:"WarningErrorCount,omitnil,omitempty" name:"WarningErrorCount"` + + // 应用总数 + ApplicationCount *int64 `json:"ApplicationCount,omitnil,omitempty" name:"ApplicationCount"` + + // 页码 + Page *int64 `json:"Page,omitnil,omitempty" name:"Page"` + + // 页大小 + PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` + + // 异常应用数 + ErrorCount *int64 `json:"ErrorCount,omitnil,omitempty" name:"ErrorCount"` + + // 警示应用数 + WarningCount *int64 `json:"WarningCount,omitnil,omitempty" name:"WarningCount"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeApmServiceMetricResponse struct { + *tchttp.BaseResponse + Response *DescribeApmServiceMetricResponseParams `json:"Response"` +} + +func (r *DescribeApmServiceMetricResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeApmServiceMetricResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeGeneralApmApplicationConfigRequestParams struct { + // 应用名 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` +} + +type DescribeGeneralApmApplicationConfigRequest struct { + *tchttp.BaseRequest + + // 应用名 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` +} + +func (r *DescribeGeneralApmApplicationConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeGeneralApmApplicationConfigRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "ServiceName") + delete(f, "InstanceId") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGeneralApmApplicationConfigRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeGeneralApmApplicationConfigResponseParams struct { + // 应用配置项 + ApmApplicationConfigView *ApmApplicationConfigView `json:"ApmApplicationConfigView,omitnil,omitempty" name:"ApmApplicationConfigView"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeGeneralApmApplicationConfigResponse struct { + *tchttp.BaseResponse + Response *DescribeGeneralApmApplicationConfigResponseParams `json:"Response"` +} + +func (r *DescribeGeneralApmApplicationConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeGeneralApmApplicationConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeGeneralMetricDataRequestParams struct { + // 需要查询的指标名称,不可自定义输入,[详情请见。](https://cloud.tencent.com/document/product/248/101681) + Metrics []*string `json:"Metrics,omitnil,omitempty" name:"Metrics"` + + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 视图名称,不可自定义输入。[详情请见。](https://cloud.tencent.com/document/product/248/101681) + ViewName *string `json:"ViewName,omitnil,omitempty" name:"ViewName"` + + // 要过滤的维度信息,不同视图有对应的指标维度,[详情请见。](https://cloud.tencent.com/document/product/248/101681) + Filters []*GeneralFilter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // 聚合维度,不同视图有对应的指标维度,[详情请见。](https://cloud.tencent.com/document/product/248/101681) + GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` + + // 起始时间的时间戳,支持查询30天内的指标数据。(单位:秒) + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 结束时间的时间戳,支持查询30天内的指标数据。(单位:秒) + EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 是否按固定时间跨度聚合,填入1及大于1的值按1处理,不填按0处理。 + // - 填入0,则计算开始时间到截止时间的指标数据。 + // - 填入1,则会按照开始时间到截止时间的时间跨度选择聚合粒度: + // - 时间跨度 (0,12) 小时,则按一分钟粒度聚合。 + // - 时间跨度 [12,48] 小时,则按五分钟粒度聚合。 + // - 时间跨度 (48, +∞) 小时,则按一小时粒度聚合。 + Period *int64 `json:"Period,omitnil,omitempty" name:"Period"` + + // 对查询指标进行排序: + // Key 填写云 API 指标名称,[详情请见。](https://cloud.tencent.com/document/product/248/101681) + // Value 填写排序方式: + // - asc:对查询指标进行升序排序 + // - desc:对查询指标进行降序排序 + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 查询指标的限制条数,目前最多展示50条数据,PageSize取值为1-50,上送PageSize则根据PageSize的值展示限制条数。 + PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` +} + +type DescribeGeneralMetricDataRequest struct { + *tchttp.BaseRequest + + // 需要查询的指标名称,不可自定义输入,[详情请见。](https://cloud.tencent.com/document/product/248/101681) + Metrics []*string `json:"Metrics,omitnil,omitempty" name:"Metrics"` + + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 视图名称,不可自定义输入。[详情请见。](https://cloud.tencent.com/document/product/248/101681) + ViewName *string `json:"ViewName,omitnil,omitempty" name:"ViewName"` + + // 要过滤的维度信息,不同视图有对应的指标维度,[详情请见。](https://cloud.tencent.com/document/product/248/101681) + Filters []*GeneralFilter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // 聚合维度,不同视图有对应的指标维度,[详情请见。](https://cloud.tencent.com/document/product/248/101681) + GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` + + // 起始时间的时间戳,支持查询30天内的指标数据。(单位:秒) + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 结束时间的时间戳,支持查询30天内的指标数据。(单位:秒) + EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 是否按固定时间跨度聚合,填入1及大于1的值按1处理,不填按0处理。 + // - 填入0,则计算开始时间到截止时间的指标数据。 + // - 填入1,则会按照开始时间到截止时间的时间跨度选择聚合粒度: + // - 时间跨度 (0,12) 小时,则按一分钟粒度聚合。 + // - 时间跨度 [12,48] 小时,则按五分钟粒度聚合。 + // - 时间跨度 (48, +∞) 小时,则按一小时粒度聚合。 + Period *int64 `json:"Period,omitnil,omitempty" name:"Period"` + + // 对查询指标进行排序: + // Key 填写云 API 指标名称,[详情请见。](https://cloud.tencent.com/document/product/248/101681) + // Value 填写排序方式: + // - asc:对查询指标进行升序排序 + // - desc:对查询指标进行降序排序 + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 查询指标的限制条数,目前最多展示50条数据,PageSize取值为1-50,上送PageSize则根据PageSize的值展示限制条数。 + PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` +} + +func (r *DescribeGeneralMetricDataRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeGeneralMetricDataRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "Metrics") + delete(f, "InstanceId") + delete(f, "ViewName") + delete(f, "Filters") + delete(f, "GroupBy") + delete(f, "StartTime") + delete(f, "EndTime") + delete(f, "Period") + delete(f, "OrderBy") + delete(f, "PageSize") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGeneralMetricDataRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeGeneralMetricDataResponseParams struct { + // 指标结果集 + Records []*Line `json:"Records,omitnil,omitempty" name:"Records"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeGeneralMetricDataResponse struct { + *tchttp.BaseResponse + Response *DescribeGeneralMetricDataResponseParams `json:"Response"` +} + +func (r *DescribeGeneralMetricDataResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeGeneralMetricDataResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeGeneralOTSpanListRequestParams struct { + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // Span 查询开始时间戳(单位:秒) + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // Span 查询结束时间戳(单位:秒) + EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 通用过滤参数 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // 排序 + // 现支持的 Key 有: + // + // - startTime(开始时间) + // - endTime(结束时间) + // - duration(响应时间) + // + // 现支持的 Value 有: + // + // - desc(降序排序) + // - asc(升序排序) + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 业务自身服务名,控制台用户请填写taw + BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` + + // 单页项目个数,默认为10000,合法取值范围为0~10000 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 分页 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +} + +type DescribeGeneralOTSpanListRequest struct { + *tchttp.BaseRequest + + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // Span 查询开始时间戳(单位:秒) + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // Span 查询结束时间戳(单位:秒) + EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 通用过滤参数 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // 排序 + // 现支持的 Key 有: + // + // - startTime(开始时间) + // - endTime(结束时间) + // - duration(响应时间) + // + // 现支持的 Value 有: + // + // - desc(降序排序) + // - asc(升序排序) + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 业务自身服务名,控制台用户请填写taw + BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` + + // 单页项目个数,默认为10000,合法取值范围为0~10000 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 分页 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +} + +func (r *DescribeGeneralOTSpanListRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeGeneralOTSpanListRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "StartTime") + delete(f, "EndTime") + delete(f, "Filters") + delete(f, "OrderBy") + delete(f, "BusinessName") + delete(f, "Limit") + delete(f, "Offset") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGeneralOTSpanListRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeGeneralOTSpanListResponseParams struct { + // 总数量 + TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // Spans字段中包含了链路数据的全部内容,由于数据经过了压缩,需要对结果进行如下三步转换,以还原始的文本。 + // 1. 将Spans字段中的文本进行 Base64 解码,得到经过压缩后字节数组。 + // 2. 使用 gzip 对压缩后的字节数组进行解压,得到压缩前的字节数组。 + // 3. 使用 UTF-8 字符集,将压缩前的字节数组转换为文本。 + Spans *string `json:"Spans,omitnil,omitempty" name:"Spans"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeGeneralOTSpanListResponse struct { + *tchttp.BaseResponse + Response *DescribeGeneralOTSpanListResponseParams `json:"Response"` +} + +func (r *DescribeGeneralOTSpanListResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeGeneralOTSpanListResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeGeneralSpanListRequestParams struct { + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // Span 查询开始时间戳(单位:秒) + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // Span 查询结束时间戳(单位:秒) + EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 通用过滤参数 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // 排序 + // 现支持的 Key 有: + // + // - startTime(开始时间) + // - endTime(结束时间) + // - duration(响应时间) + // + // 现支持的 Value 有: + // + // - desc(降序排序) + // - asc(升序排序) + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 业务自身服务名,控制台用户请填写taw + BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` + + // 单页项目个数,默认为10000,合法取值范围为0~10000 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 分页 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +} + +type DescribeGeneralSpanListRequest struct { + *tchttp.BaseRequest + + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // Span 查询开始时间戳(单位:秒) + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // Span 查询结束时间戳(单位:秒) + EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 通用过滤参数 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // 排序 + // 现支持的 Key 有: + // + // - startTime(开始时间) + // - endTime(结束时间) + // - duration(响应时间) + // + // 现支持的 Value 有: + // + // - desc(降序排序) + // - asc(升序排序) + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 业务自身服务名,控制台用户请填写taw + BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` + + // 单页项目个数,默认为10000,合法取值范围为0~10000 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 分页 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +} + +func (r *DescribeGeneralSpanListRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeGeneralSpanListRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "StartTime") + delete(f, "EndTime") + delete(f, "Filters") + delete(f, "OrderBy") + delete(f, "BusinessName") + delete(f, "Limit") + delete(f, "Offset") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGeneralSpanListRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeGeneralSpanListResponseParams struct { + // 总数量 + TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // Span 分页列表 + Spans []*Span `json:"Spans,omitnil,omitempty" name:"Spans"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeGeneralSpanListResponse struct { + *tchttp.BaseResponse + Response *DescribeGeneralSpanListResponseParams `json:"Response"` +} + +func (r *DescribeGeneralSpanListResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeGeneralSpanListResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeMetricRecordsRequestParams struct { + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 指标列表 + Metrics []*QueryMetricItem `json:"Metrics,omitnil,omitempty" name:"Metrics"` + + // 开始时间(单位为秒) + StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 结束时间(单位为秒) + EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 聚合维度 + GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` + + // 过滤条件 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // Or 过滤条件 + OrFilters []*Filter `json:"OrFilters,omitnil,omitempty" name:"OrFilters"` + + // 排序 + // 现支持的 Key 有: + // + // - startTime(开始时间) + // - endTime(结束时间) + // - duration(响应时间) + // + // 现支持的 Value 有: + // + // - desc(降序排序) + // - asc(升序排序) + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 业务名称,控制台用户请填写taw。 + BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` + + // 特殊处理查询结果 + Type *string `json:"Type,omitnil,omitempty" name:"Type"` + + // 每页大小,默认为1000,合法取值范围为0~1000 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 分页起始点 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 页码 + PageIndex *int64 `json:"PageIndex,omitnil,omitempty" name:"PageIndex"` + + // 页长 + PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` +} + +type DescribeMetricRecordsRequest struct { + *tchttp.BaseRequest + + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 指标列表 + Metrics []*QueryMetricItem `json:"Metrics,omitnil,omitempty" name:"Metrics"` + + // 开始时间(单位为秒) + StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 结束时间(单位为秒) + EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 聚合维度 + GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` + + // 过滤条件 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // Or 过滤条件 + OrFilters []*Filter `json:"OrFilters,omitnil,omitempty" name:"OrFilters"` + + // 排序 + // 现支持的 Key 有: + // + // - startTime(开始时间) + // - endTime(结束时间) + // - duration(响应时间) + // + // 现支持的 Value 有: + // + // - desc(降序排序) + // - asc(升序排序) + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 业务名称,控制台用户请填写taw。 + BusinessName *string `json:"BusinessName,omitnil,omitempty" name:"BusinessName"` + + // 特殊处理查询结果 + Type *string `json:"Type,omitnil,omitempty" name:"Type"` + + // 每页大小,默认为1000,合法取值范围为0~1000 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 分页起始点 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 页码 + PageIndex *int64 `json:"PageIndex,omitnil,omitempty" name:"PageIndex"` + + // 页长 + PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"` +} + +func (r *DescribeMetricRecordsRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeMetricRecordsRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "Metrics") + delete(f, "StartTime") + delete(f, "EndTime") + delete(f, "GroupBy") + delete(f, "Filters") + delete(f, "OrFilters") + delete(f, "OrderBy") + delete(f, "BusinessName") + delete(f, "Type") + delete(f, "Limit") + delete(f, "Offset") + delete(f, "PageIndex") + delete(f, "PageSize") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMetricRecordsRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeMetricRecordsResponseParams struct { + // 指标结果集 + Records []*ApmMetricRecord `json:"Records,omitnil,omitempty" name:"Records"` + + // 查询指标结果集条数 + TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeMetricRecordsResponse struct { + *tchttp.BaseResponse + Response *DescribeMetricRecordsResponseParams `json:"Response"` +} + +func (r *DescribeMetricRecordsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeMetricRecordsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeServiceOverviewRequestParams struct { + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 指标列表 + Metrics []*QueryMetricItem `json:"Metrics,omitnil,omitempty" name:"Metrics"` + + // 开始时间(单位:秒) + StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 结束时间(单位:秒) + EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 聚合维度 + GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` + + // 过滤条件 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // 排序方式 + // Value 填写: + // - asc:对查询指标进行升序排序 + // - desc:对查询指标进行降序排序 + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 每页大小 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 分页起始点 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +} + +type DescribeServiceOverviewRequest struct { + *tchttp.BaseRequest + + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 指标列表 + Metrics []*QueryMetricItem `json:"Metrics,omitnil,omitempty" name:"Metrics"` + + // 开始时间(单位:秒) + StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 结束时间(单位:秒) + EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 聚合维度 + GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"` + + // 过滤条件 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // 排序方式 + // Value 填写: + // - asc:对查询指标进行升序排序 + // - desc:对查询指标进行降序排序 + OrderBy *OrderBy `json:"OrderBy,omitnil,omitempty" name:"OrderBy"` + + // 每页大小 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 分页起始点 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +} + +func (r *DescribeServiceOverviewRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeServiceOverviewRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "Metrics") + delete(f, "StartTime") + delete(f, "EndTime") + delete(f, "GroupBy") + delete(f, "Filters") + delete(f, "OrderBy") + delete(f, "Limit") + delete(f, "Offset") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeServiceOverviewRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeServiceOverviewResponseParams struct { + // 指标结果集 + Records []*ApmMetricRecord `json:"Records,omitnil,omitempty" name:"Records"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeServiceOverviewResponse struct { + *tchttp.BaseResponse + Response *DescribeServiceOverviewResponseParams `json:"Response"` +} + +func (r *DescribeServiceOverviewResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeServiceOverviewResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeTagValuesRequestParams struct { + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 维度名 + TagKey *string `json:"TagKey,omitnil,omitempty" name:"TagKey"` + + // 开始时间(单位为秒) + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 结束时间(单位为秒) + EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 过滤条件 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // Or 过滤条件 + OrFilters []*Filter `json:"OrFilters,omitnil,omitempty" name:"OrFilters"` + + // 使用类型 + Type *string `json:"Type,omitnil,omitempty" name:"Type"` +} + +type DescribeTagValuesRequest struct { + *tchttp.BaseRequest + + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 维度名 + TagKey *string `json:"TagKey,omitnil,omitempty" name:"TagKey"` + + // 开始时间(单位为秒) + StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 结束时间(单位为秒) + EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 过滤条件 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + + // Or 过滤条件 + OrFilters []*Filter `json:"OrFilters,omitnil,omitempty" name:"OrFilters"` + + // 使用类型 + Type *string `json:"Type,omitnil,omitempty" name:"Type"` +} + +func (r *DescribeTagValuesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeTagValuesRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "TagKey") + delete(f, "StartTime") + delete(f, "EndTime") + delete(f, "Filters") + delete(f, "OrFilters") + delete(f, "Type") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTagValuesRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeTagValuesResponseParams struct { + // 维度值列表 + Values []*string `json:"Values,omitnil,omitempty" name:"Values"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeTagValuesResponse struct { + *tchttp.BaseResponse + Response *DescribeTagValuesResponseParams `json:"Response"` +} + +func (r *DescribeTagValuesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeTagValuesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type Filter struct { + // 过滤方式(=, !=, in) + Type *string `json:"Type,omitnil,omitempty" name:"Type"` + + // 过滤维度名 + Key *string `json:"Key,omitnil,omitempty" name:"Key"` + + // 过滤值,in过滤方式用逗号分割多个值 + Value *string `json:"Value,omitnil,omitempty" name:"Value"` +} + +type GeneralFilter struct { + // 过滤维度名 + Key *string `json:"Key,omitnil,omitempty" name:"Key"` + + // 过滤值 + Value *string `json:"Value,omitnil,omitempty" name:"Value"` +} + +type Instrument struct { + // 组件名称 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 组件开关 + Enable *bool `json:"Enable,omitnil,omitempty" name:"Enable"` +} + +type Line struct { + // 指标名 + MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"` + + // 指标中文名 + MetricNameCN *string `json:"MetricNameCN,omitnil,omitempty" name:"MetricNameCN"` + + // 时间序列 + TimeSerial []*int64 `json:"TimeSerial,omitnil,omitempty" name:"TimeSerial"` + + // 数据序列 + DataSerial []*float64 `json:"DataSerial,omitnil,omitempty" name:"DataSerial"` + + // 维度列表 + Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` + + // 指标数据单位 + MetricUnit *string `json:"MetricUnit,omitnil,omitempty" name:"MetricUnit"` +} + +// Predefined struct for user +type ModifyApmApplicationConfigRequestParams struct { + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 应用名 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // URL收敛开关,0 关 | 1 开 + UrlConvergenceSwitch *int64 `json:"UrlConvergenceSwitch,omitnil,omitempty" name:"UrlConvergenceSwitch"` + + // URL收敛阈值 + UrlConvergenceThreshold *int64 `json:"UrlConvergenceThreshold,omitnil,omitempty" name:"UrlConvergenceThreshold"` + + // 异常过滤正则规则,逗号分隔 + ExceptionFilter *string `json:"ExceptionFilter,omitnil,omitempty" name:"ExceptionFilter"` + + // URL收敛正则规则,逗号分隔 + UrlConvergence *string `json:"UrlConvergence,omitnil,omitempty" name:"UrlConvergence"` + + // 错误码过滤,逗号分隔 + ErrorCodeFilter *string `json:"ErrorCodeFilter,omitnil,omitempty" name:"ErrorCodeFilter"` + + // URL排除正则规则,逗号分隔 + UrlExclude *string `json:"UrlExclude,omitnil,omitempty" name:"UrlExclude"` + + // 日志开关 0 关 1 开 + IsRelatedLog *int64 `json:"IsRelatedLog,omitnil,omitempty" name:"IsRelatedLog"` + + // 日志地域 + LogRegion *string `json:"LogRegion,omitnil,omitempty" name:"LogRegion"` + + // 日志主题ID + LogTopicID *string `json:"LogTopicID,omitnil,omitempty" name:"LogTopicID"` + + // CLS 日志集 | ES 集群ID + LogSet *string `json:"LogSet,omitnil,omitempty" name:"LogSet"` + + // 日志来源 CLS | ES + LogSource *string `json:"LogSource,omitnil,omitempty" name:"LogSource"` + + // 需过滤的接口 + IgnoreOperationName *string `json:"IgnoreOperationName,omitnil,omitempty" name:"IgnoreOperationName"` + + // 是否开启线程剖析 + EnableSnapshot *bool `json:"EnableSnapshot,omitnil,omitempty" name:"EnableSnapshot"` + + // 线程剖析超时阈值 + SnapshotTimeout *int64 `json:"SnapshotTimeout,omitnil,omitempty" name:"SnapshotTimeout"` + + // 是否开启agent + AgentEnable *bool `json:"AgentEnable,omitnil,omitempty" name:"AgentEnable"` + + // 是否开启链路压缩 + TraceSquash *bool `json:"TraceSquash,omitnil,omitempty" name:"TraceSquash"` + + // 是否开启应用诊断的开关 + EventEnable *bool `json:"EventEnable,omitnil,omitempty" name:"EventEnable"` + + // 组件列表 + InstrumentList []*Instrument `json:"InstrumentList,omitnil,omitempty" name:"InstrumentList"` + + // 探针接口相关配置 + AgentOperationConfigView *AgentOperationConfigView `json:"AgentOperationConfigView,omitnil,omitempty" name:"AgentOperationConfigView"` + + // 是否开启应用日志配置 + EnableLogConfig *bool `json:"EnableLogConfig,omitnil,omitempty" name:"EnableLogConfig"` + + // 应用是否开启dashboard配置: false 关(与业务系统保持一致)/true 开(应用级配置) + EnableDashboardConfig *bool `json:"EnableDashboardConfig,omitnil,omitempty" name:"EnableDashboardConfig"` + + // 是否关联dashboard: 0 关 1 开 + IsRelatedDashboard *int64 `json:"IsRelatedDashboard,omitnil,omitempty" name:"IsRelatedDashboard"` + + // dashboard ID + DashboardTopicID *string `json:"DashboardTopicID,omitnil,omitempty" name:"DashboardTopicID"` + + // CLS索引类型(0=全文索引,1=键值索引) + LogIndexType *int64 `json:"LogIndexType,omitnil,omitempty" name:"LogIndexType"` + + // traceId的索引key: 当CLS索引类型为键值索引时生效 + LogTraceIdKey *string `json:"LogTraceIdKey,omitnil,omitempty" name:"LogTraceIdKey"` + + // 是否开启应用安全配置 + EnableSecurityConfig *bool `json:"EnableSecurityConfig,omitnil,omitempty" name:"EnableSecurityConfig"` + + // 是否开启SQL注入分析 + IsSqlInjectionAnalysis *int64 `json:"IsSqlInjectionAnalysis,omitnil,omitempty" name:"IsSqlInjectionAnalysis"` + + // 是否开启组件漏洞检测 + IsInstrumentationVulnerabilityScan *int64 `json:"IsInstrumentationVulnerabilityScan,omitnil,omitempty" name:"IsInstrumentationVulnerabilityScan"` + + // 是否开启远程命令检测 + IsRemoteCommandExecutionAnalysis *int64 `json:"IsRemoteCommandExecutionAnalysis,omitnil,omitempty" name:"IsRemoteCommandExecutionAnalysis"` + + // 是否开启内存马检测 + IsMemoryHijackingAnalysis *int64 `json:"IsMemoryHijackingAnalysis,omitnil,omitempty" name:"IsMemoryHijackingAnalysis"` + + // 是否开启删除任意文件检测(0-关闭,1-开启) + IsDeleteAnyFileAnalysis *int64 `json:"IsDeleteAnyFileAnalysis,omitnil,omitempty" name:"IsDeleteAnyFileAnalysis"` + + // 是否开启读取任意文件检测(0-关闭,1-开启) + IsReadAnyFileAnalysis *int64 `json:"IsReadAnyFileAnalysis,omitnil,omitempty" name:"IsReadAnyFileAnalysis"` + + // 是否开启上传任意文件检测(0-关闭,1-开启) + IsUploadAnyFileAnalysis *int64 `json:"IsUploadAnyFileAnalysis,omitnil,omitempty" name:"IsUploadAnyFileAnalysis"` + + // 是否开启包含任意文件检测(0-关闭,1-开启) + IsIncludeAnyFileAnalysis *int64 `json:"IsIncludeAnyFileAnalysis,omitnil,omitempty" name:"IsIncludeAnyFileAnalysis"` + + // 是否开启目录遍历检测(0-关闭,1-开启) + IsDirectoryTraversalAnalysis *int64 `json:"IsDirectoryTraversalAnalysis,omitnil,omitempty" name:"IsDirectoryTraversalAnalysis"` + + // 是否开启模板引擎注入检测(0-关闭,1-开启) + IsTemplateEngineInjectionAnalysis *int64 `json:"IsTemplateEngineInjectionAnalysis,omitnil,omitempty" name:"IsTemplateEngineInjectionAnalysis"` + + // 是否开启脚本引擎注入检测(0-关闭,1-开启) + IsScriptEngineInjectionAnalysis *int64 `json:"IsScriptEngineInjectionAnalysis,omitnil,omitempty" name:"IsScriptEngineInjectionAnalysis"` + + // 是否开启表达式注入检测(0-关闭,1-开启) + IsExpressionInjectionAnalysis *int64 `json:"IsExpressionInjectionAnalysis,omitnil,omitempty" name:"IsExpressionInjectionAnalysis"` + + // 是否开启JNDI注入检测(0-关闭,1-开启) + IsJNDIInjectionAnalysis *int64 `json:"IsJNDIInjectionAnalysis,omitnil,omitempty" name:"IsJNDIInjectionAnalysis"` + + // 是否开启JNI注入检测(0-关闭,1-开启) + IsJNIInjectionAnalysis *int64 `json:"IsJNIInjectionAnalysis,omitnil,omitempty" name:"IsJNIInjectionAnalysis"` + + // 是否开启Webshell后门检测(0-关闭,1-开启) + IsWebshellBackdoorAnalysis *int64 `json:"IsWebshellBackdoorAnalysis,omitnil,omitempty" name:"IsWebshellBackdoorAnalysis"` + + // 是否开启反序列化检测(0-关闭,1-开启) + IsDeserializationAnalysis *int64 `json:"IsDeserializationAnalysis,omitnil,omitempty" name:"IsDeserializationAnalysis"` + + // 接口自动收敛开关,0 关 | 1 开 + UrlAutoConvergenceEnable *bool `json:"UrlAutoConvergenceEnable,omitnil,omitempty" name:"UrlAutoConvergenceEnable"` + + // URL长分段收敛阈值 + UrlLongSegmentThreshold *int64 `json:"UrlLongSegmentThreshold,omitnil,omitempty" name:"UrlLongSegmentThreshold"` + + // URL数字分段收敛阈值 + UrlNumberSegmentThreshold *int64 `json:"UrlNumberSegmentThreshold,omitnil,omitempty" name:"UrlNumberSegmentThreshold"` + + // 探针熔断内存阈值 + DisableMemoryUsed *int64 `json:"DisableMemoryUsed,omitnil,omitempty" name:"DisableMemoryUsed"` + + // 探针熔断CPU阈值 + DisableCpuUsed *int64 `json:"DisableCpuUsed,omitnil,omitempty" name:"DisableCpuUsed"` +} + +type ModifyApmApplicationConfigRequest struct { + *tchttp.BaseRequest + + // 业务系统 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 应用名 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // URL收敛开关,0 关 | 1 开 + UrlConvergenceSwitch *int64 `json:"UrlConvergenceSwitch,omitnil,omitempty" name:"UrlConvergenceSwitch"` + + // URL收敛阈值 + UrlConvergenceThreshold *int64 `json:"UrlConvergenceThreshold,omitnil,omitempty" name:"UrlConvergenceThreshold"` + + // 异常过滤正则规则,逗号分隔 + ExceptionFilter *string `json:"ExceptionFilter,omitnil,omitempty" name:"ExceptionFilter"` + + // URL收敛正则规则,逗号分隔 + UrlConvergence *string `json:"UrlConvergence,omitnil,omitempty" name:"UrlConvergence"` + + // 错误码过滤,逗号分隔 + ErrorCodeFilter *string `json:"ErrorCodeFilter,omitnil,omitempty" name:"ErrorCodeFilter"` + + // URL排除正则规则,逗号分隔 + UrlExclude *string `json:"UrlExclude,omitnil,omitempty" name:"UrlExclude"` + + // 日志开关 0 关 1 开 + IsRelatedLog *int64 `json:"IsRelatedLog,omitnil,omitempty" name:"IsRelatedLog"` + + // 日志地域 + LogRegion *string `json:"LogRegion,omitnil,omitempty" name:"LogRegion"` + + // 日志主题ID + LogTopicID *string `json:"LogTopicID,omitnil,omitempty" name:"LogTopicID"` + + // CLS 日志集 | ES 集群ID + LogSet *string `json:"LogSet,omitnil,omitempty" name:"LogSet"` + + // 日志来源 CLS | ES + LogSource *string `json:"LogSource,omitnil,omitempty" name:"LogSource"` + + // 需过滤的接口 + IgnoreOperationName *string `json:"IgnoreOperationName,omitnil,omitempty" name:"IgnoreOperationName"` + + // 是否开启线程剖析 + EnableSnapshot *bool `json:"EnableSnapshot,omitnil,omitempty" name:"EnableSnapshot"` + + // 线程剖析超时阈值 + SnapshotTimeout *int64 `json:"SnapshotTimeout,omitnil,omitempty" name:"SnapshotTimeout"` + + // 是否开启agent + AgentEnable *bool `json:"AgentEnable,omitnil,omitempty" name:"AgentEnable"` + + // 是否开启链路压缩 + TraceSquash *bool `json:"TraceSquash,omitnil,omitempty" name:"TraceSquash"` + + // 是否开启应用诊断的开关 + EventEnable *bool `json:"EventEnable,omitnil,omitempty" name:"EventEnable"` + + // 组件列表 + InstrumentList []*Instrument `json:"InstrumentList,omitnil,omitempty" name:"InstrumentList"` + + // 探针接口相关配置 + AgentOperationConfigView *AgentOperationConfigView `json:"AgentOperationConfigView,omitnil,omitempty" name:"AgentOperationConfigView"` + + // 是否开启应用日志配置 + EnableLogConfig *bool `json:"EnableLogConfig,omitnil,omitempty" name:"EnableLogConfig"` + + // 应用是否开启dashboard配置: false 关(与业务系统保持一致)/true 开(应用级配置) + EnableDashboardConfig *bool `json:"EnableDashboardConfig,omitnil,omitempty" name:"EnableDashboardConfig"` + + // 是否关联dashboard: 0 关 1 开 + IsRelatedDashboard *int64 `json:"IsRelatedDashboard,omitnil,omitempty" name:"IsRelatedDashboard"` + + // dashboard ID + DashboardTopicID *string `json:"DashboardTopicID,omitnil,omitempty" name:"DashboardTopicID"` + + // CLS索引类型(0=全文索引,1=键值索引) + LogIndexType *int64 `json:"LogIndexType,omitnil,omitempty" name:"LogIndexType"` + + // traceId的索引key: 当CLS索引类型为键值索引时生效 + LogTraceIdKey *string `json:"LogTraceIdKey,omitnil,omitempty" name:"LogTraceIdKey"` + + // 是否开启应用安全配置 + EnableSecurityConfig *bool `json:"EnableSecurityConfig,omitnil,omitempty" name:"EnableSecurityConfig"` + + // 是否开启SQL注入分析 + IsSqlInjectionAnalysis *int64 `json:"IsSqlInjectionAnalysis,omitnil,omitempty" name:"IsSqlInjectionAnalysis"` + + // 是否开启组件漏洞检测 + IsInstrumentationVulnerabilityScan *int64 `json:"IsInstrumentationVulnerabilityScan,omitnil,omitempty" name:"IsInstrumentationVulnerabilityScan"` + + // 是否开启远程命令检测 + IsRemoteCommandExecutionAnalysis *int64 `json:"IsRemoteCommandExecutionAnalysis,omitnil,omitempty" name:"IsRemoteCommandExecutionAnalysis"` + + // 是否开启内存马检测 + IsMemoryHijackingAnalysis *int64 `json:"IsMemoryHijackingAnalysis,omitnil,omitempty" name:"IsMemoryHijackingAnalysis"` + + // 是否开启删除任意文件检测(0-关闭,1-开启) + IsDeleteAnyFileAnalysis *int64 `json:"IsDeleteAnyFileAnalysis,omitnil,omitempty" name:"IsDeleteAnyFileAnalysis"` + + // 是否开启读取任意文件检测(0-关闭,1-开启) + IsReadAnyFileAnalysis *int64 `json:"IsReadAnyFileAnalysis,omitnil,omitempty" name:"IsReadAnyFileAnalysis"` + + // 是否开启上传任意文件检测(0-关闭,1-开启) + IsUploadAnyFileAnalysis *int64 `json:"IsUploadAnyFileAnalysis,omitnil,omitempty" name:"IsUploadAnyFileAnalysis"` + + // 是否开启包含任意文件检测(0-关闭,1-开启) + IsIncludeAnyFileAnalysis *int64 `json:"IsIncludeAnyFileAnalysis,omitnil,omitempty" name:"IsIncludeAnyFileAnalysis"` + + // 是否开启目录遍历检测(0-关闭,1-开启) + IsDirectoryTraversalAnalysis *int64 `json:"IsDirectoryTraversalAnalysis,omitnil,omitempty" name:"IsDirectoryTraversalAnalysis"` + + // 是否开启模板引擎注入检测(0-关闭,1-开启) + IsTemplateEngineInjectionAnalysis *int64 `json:"IsTemplateEngineInjectionAnalysis,omitnil,omitempty" name:"IsTemplateEngineInjectionAnalysis"` + + // 是否开启脚本引擎注入检测(0-关闭,1-开启) + IsScriptEngineInjectionAnalysis *int64 `json:"IsScriptEngineInjectionAnalysis,omitnil,omitempty" name:"IsScriptEngineInjectionAnalysis"` + + // 是否开启表达式注入检测(0-关闭,1-开启) + IsExpressionInjectionAnalysis *int64 `json:"IsExpressionInjectionAnalysis,omitnil,omitempty" name:"IsExpressionInjectionAnalysis"` + + // 是否开启JNDI注入检测(0-关闭,1-开启) + IsJNDIInjectionAnalysis *int64 `json:"IsJNDIInjectionAnalysis,omitnil,omitempty" name:"IsJNDIInjectionAnalysis"` + + // 是否开启JNI注入检测(0-关闭,1-开启) + IsJNIInjectionAnalysis *int64 `json:"IsJNIInjectionAnalysis,omitnil,omitempty" name:"IsJNIInjectionAnalysis"` + + // 是否开启Webshell后门检测(0-关闭,1-开启) + IsWebshellBackdoorAnalysis *int64 `json:"IsWebshellBackdoorAnalysis,omitnil,omitempty" name:"IsWebshellBackdoorAnalysis"` + + // 是否开启反序列化检测(0-关闭,1-开启) + IsDeserializationAnalysis *int64 `json:"IsDeserializationAnalysis,omitnil,omitempty" name:"IsDeserializationAnalysis"` + + // 接口自动收敛开关,0 关 | 1 开 + UrlAutoConvergenceEnable *bool `json:"UrlAutoConvergenceEnable,omitnil,omitempty" name:"UrlAutoConvergenceEnable"` + + // URL长分段收敛阈值 + UrlLongSegmentThreshold *int64 `json:"UrlLongSegmentThreshold,omitnil,omitempty" name:"UrlLongSegmentThreshold"` + + // URL数字分段收敛阈值 + UrlNumberSegmentThreshold *int64 `json:"UrlNumberSegmentThreshold,omitnil,omitempty" name:"UrlNumberSegmentThreshold"` + + // 探针熔断内存阈值 + DisableMemoryUsed *int64 `json:"DisableMemoryUsed,omitnil,omitempty" name:"DisableMemoryUsed"` + + // 探针熔断CPU阈值 + DisableCpuUsed *int64 `json:"DisableCpuUsed,omitnil,omitempty" name:"DisableCpuUsed"` +} + +func (r *ModifyApmApplicationConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyApmApplicationConfigRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "ServiceName") + delete(f, "UrlConvergenceSwitch") + delete(f, "UrlConvergenceThreshold") + delete(f, "ExceptionFilter") + delete(f, "UrlConvergence") + delete(f, "ErrorCodeFilter") + delete(f, "UrlExclude") + delete(f, "IsRelatedLog") + delete(f, "LogRegion") + delete(f, "LogTopicID") + delete(f, "LogSet") + delete(f, "LogSource") + delete(f, "IgnoreOperationName") + delete(f, "EnableSnapshot") + delete(f, "SnapshotTimeout") + delete(f, "AgentEnable") + delete(f, "TraceSquash") + delete(f, "EventEnable") + delete(f, "InstrumentList") + delete(f, "AgentOperationConfigView") + delete(f, "EnableLogConfig") + delete(f, "EnableDashboardConfig") + delete(f, "IsRelatedDashboard") + delete(f, "DashboardTopicID") + delete(f, "LogIndexType") + delete(f, "LogTraceIdKey") + delete(f, "EnableSecurityConfig") + delete(f, "IsSqlInjectionAnalysis") + delete(f, "IsInstrumentationVulnerabilityScan") + delete(f, "IsRemoteCommandExecutionAnalysis") + delete(f, "IsMemoryHijackingAnalysis") + delete(f, "IsDeleteAnyFileAnalysis") + delete(f, "IsReadAnyFileAnalysis") + delete(f, "IsUploadAnyFileAnalysis") + delete(f, "IsIncludeAnyFileAnalysis") + delete(f, "IsDirectoryTraversalAnalysis") + delete(f, "IsTemplateEngineInjectionAnalysis") + delete(f, "IsScriptEngineInjectionAnalysis") + delete(f, "IsExpressionInjectionAnalysis") + delete(f, "IsJNDIInjectionAnalysis") + delete(f, "IsJNIInjectionAnalysis") + delete(f, "IsWebshellBackdoorAnalysis") + delete(f, "IsDeserializationAnalysis") + delete(f, "UrlAutoConvergenceEnable") + delete(f, "UrlLongSegmentThreshold") + delete(f, "UrlNumberSegmentThreshold") + delete(f, "DisableMemoryUsed") + delete(f, "DisableCpuUsed") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeServiceOverviewRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyApmApplicationConfigRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeServiceOverviewResponseParams struct { - // 指标结果集 - Records []*ApmMetricRecord `json:"Records,omitnil,omitempty" name:"Records"` - +type ModifyApmApplicationConfigResponseParams struct { // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeServiceOverviewResponse struct { +type ModifyApmApplicationConfigResponse struct { *tchttp.BaseResponse - Response *DescribeServiceOverviewResponseParams `json:"Response"` + Response *ModifyApmApplicationConfigResponseParams `json:"Response"` } -func (r *DescribeServiceOverviewResponse) ToJsonString() string { +func (r *ModifyApmApplicationConfigResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeServiceOverviewResponse) FromJsonString(s string) error { +func (r *ModifyApmApplicationConfigResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeTagValuesRequestParams struct { - // 业务系统 ID - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` +type ModifyApmAssociationRequestParams struct { + // 关联的产品名,当前只支持Prometheus + ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"` - // 维度名 - TagKey *string `json:"TagKey,omitnil,omitempty" name:"TagKey"` - - // 开始时间(单位为秒) - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` - - // 结束时间(单位为秒) - EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + // 关联关系的状态:// 关联关系状态:1(启用)、2(不启用)、4(已删除) + Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"` - // 过滤条件 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // Or 过滤条件 - OrFilters []*Filter `json:"OrFilters,omitnil,omitempty" name:"OrFilters"` + // 关联的产品实例ID + PeerId *string `json:"PeerId,omitnil,omitempty" name:"PeerId"` - // 使用类型 - Type *string `json:"Type,omitnil,omitempty" name:"Type"` + // CKafka消息主题 + Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` } -type DescribeTagValuesRequest struct { +type ModifyApmAssociationRequest struct { *tchttp.BaseRequest - // 业务系统 ID - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - - // 维度名 - TagKey *string `json:"TagKey,omitnil,omitempty" name:"TagKey"` - - // 开始时间(单位为秒) - StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"` + // 关联的产品名,当前只支持Prometheus + ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"` - // 结束时间(单位为秒) - EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"` + // 关联关系的状态:// 关联关系状态:1(启用)、2(不启用)、4(已删除) + Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"` - // 过滤条件 - Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // Or 过滤条件 - OrFilters []*Filter `json:"OrFilters,omitnil,omitempty" name:"OrFilters"` + // 关联的产品实例ID + PeerId *string `json:"PeerId,omitnil,omitempty" name:"PeerId"` - // 使用类型 - Type *string `json:"Type,omitnil,omitempty" name:"Type"` + // CKafka消息主题 + Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` } -func (r *DescribeTagValuesRequest) ToJsonString() string { +func (r *ModifyApmAssociationRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeTagValuesRequest) FromJsonString(s string) error { +func (r *ModifyApmAssociationRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } + delete(f, "ProductName") + delete(f, "Status") delete(f, "InstanceId") - delete(f, "TagKey") - delete(f, "StartTime") - delete(f, "EndTime") - delete(f, "Filters") - delete(f, "OrFilters") - delete(f, "Type") + delete(f, "PeerId") + delete(f, "Topic") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTagValuesRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyApmAssociationRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeTagValuesResponseParams struct { - // 维度值列表 - Values []*string `json:"Values,omitnil,omitempty" name:"Values"` - +type ModifyApmAssociationResponseParams struct { // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeTagValuesResponse struct { +type ModifyApmAssociationResponse struct { *tchttp.BaseResponse - Response *DescribeTagValuesResponseParams `json:"Response"` + Response *ModifyApmAssociationResponseParams `json:"Response"` } -func (r *DescribeTagValuesResponse) ToJsonString() string { +func (r *ModifyApmAssociationResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeTagValuesResponse) FromJsonString(s string) error { +func (r *ModifyApmAssociationResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type Filter struct { - // 过滤方式(=, !=, in) - Type *string `json:"Type,omitnil,omitempty" name:"Type"` - - // 过滤维度名 - Key *string `json:"Key,omitnil,omitempty" name:"Key"` - - // 过滤值,in过滤方式用逗号分割多个值 - Value *string `json:"Value,omitnil,omitempty" name:"Value"` -} - -type GeneralFilter struct { - // 过滤维度名 - Key *string `json:"Key,omitnil,omitempty" name:"Key"` - - // 过滤值 - Value *string `json:"Value,omitnil,omitempty" name:"Value"` -} - -type Instrument struct { - // 组件名称 - Name *string `json:"Name,omitnil,omitempty" name:"Name"` - - // 组件开关 - Enable *bool `json:"Enable,omitnil,omitempty" name:"Enable"` -} - -type Line struct { - // 指标名 - MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"` - - // 指标中文名 - MetricNameCN *string `json:"MetricNameCN,omitnil,omitempty" name:"MetricNameCN"` - - // 时间序列 - TimeSerial []*int64 `json:"TimeSerial,omitnil,omitempty" name:"TimeSerial"` - - // 数据序列 - DataSerial []*float64 `json:"DataSerial,omitnil,omitempty" name:"DataSerial"` - - // 维度列表 - Tags []*ApmTag `json:"Tags,omitnil,omitempty" name:"Tags"` - - // 指标数据单位 - MetricUnit *string `json:"MetricUnit,omitnil,omitempty" name:"MetricUnit"` -} - // Predefined struct for user type ModifyApmInstanceRequestParams struct { // 业务系统 ID @@ -2132,6 +3365,212 @@ func (r *ModifyApmInstanceResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type ModifyApmPrometheusRuleRequestParams struct { + // 规则ID + Id *int64 `json:"Id,omitnil,omitempty" name:"Id"` + + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 所要修改的规则名 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 规则状态:1(启用)、2(不启用)、3(删除) + Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"` + + // 规则生效的应用。生效于全部应用就传空(这个如果不修改也要传旧的规则) + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // 匹配类型:0精准匹配,1前缀匹配,2后缀匹配(这个如果不修改也要传旧的规则) + MetricMatchType *int64 `json:"MetricMatchType,omitnil,omitempty" name:"MetricMatchType"` + + // 客户定义的命中指标名规则。 + MetricNameRule *string `json:"MetricNameRule,omitnil,omitempty" name:"MetricNameRule"` +} + +type ModifyApmPrometheusRuleRequest struct { + *tchttp.BaseRequest + + // 规则ID + Id *int64 `json:"Id,omitnil,omitempty" name:"Id"` + + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 所要修改的规则名 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 规则状态:1(启用)、2(不启用)、3(删除) + Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"` + + // 规则生效的应用。生效于全部应用就传空(这个如果不修改也要传旧的规则) + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // 匹配类型:0精准匹配,1前缀匹配,2后缀匹配(这个如果不修改也要传旧的规则) + MetricMatchType *int64 `json:"MetricMatchType,omitnil,omitempty" name:"MetricMatchType"` + + // 客户定义的命中指标名规则。 + MetricNameRule *string `json:"MetricNameRule,omitnil,omitempty" name:"MetricNameRule"` +} + +func (r *ModifyApmPrometheusRuleRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyApmPrometheusRuleRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "Id") + delete(f, "InstanceId") + delete(f, "Name") + delete(f, "Status") + delete(f, "ServiceName") + delete(f, "MetricMatchType") + delete(f, "MetricNameRule") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyApmPrometheusRuleRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ModifyApmPrometheusRuleResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ModifyApmPrometheusRuleResponse struct { + *tchttp.BaseResponse + Response *ModifyApmPrometheusRuleResponseParams `json:"Response"` +} + +func (r *ModifyApmPrometheusRuleResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyApmPrometheusRuleResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ModifyApmSampleConfigRequestParams struct { + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 采样规则名 + SampleName *string `json:"SampleName,omitnil,omitempty" name:"SampleName"` + + // 采样率 + SampleRate *int64 `json:"SampleRate,omitnil,omitempty" name:"SampleRate"` + + // 应用名,生效于所有应用则填空 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // 接口名 + OperationName *string `json:"OperationName,omitnil,omitempty" name:"OperationName"` + + // 采样tag + Tags []*APMKVItem `json:"Tags,omitnil,omitempty" name:"Tags"` + + // 采样开关 0关 1开 2删除 + Status *int64 `json:"Status,omitnil,omitempty" name:"Status"` + + // 配置Id + Id *int64 `json:"Id,omitnil,omitempty" name:"Id"` + + // 0=精确匹配(默认);1=前缀匹配;2=后缀匹配 + OperationType *int64 `json:"OperationType,omitnil,omitempty" name:"OperationType"` +} + +type ModifyApmSampleConfigRequest struct { + *tchttp.BaseRequest + + // 业务系统ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 采样规则名 + SampleName *string `json:"SampleName,omitnil,omitempty" name:"SampleName"` + + // 采样率 + SampleRate *int64 `json:"SampleRate,omitnil,omitempty" name:"SampleRate"` + + // 应用名,生效于所有应用则填空 + ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"` + + // 接口名 + OperationName *string `json:"OperationName,omitnil,omitempty" name:"OperationName"` + + // 采样tag + Tags []*APMKVItem `json:"Tags,omitnil,omitempty" name:"Tags"` + + // 采样开关 0关 1开 2删除 + Status *int64 `json:"Status,omitnil,omitempty" name:"Status"` + + // 配置Id + Id *int64 `json:"Id,omitnil,omitempty" name:"Id"` + + // 0=精确匹配(默认);1=前缀匹配;2=后缀匹配 + OperationType *int64 `json:"OperationType,omitnil,omitempty" name:"OperationType"` +} + +func (r *ModifyApmSampleConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyApmSampleConfigRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "SampleName") + delete(f, "SampleRate") + delete(f, "ServiceName") + delete(f, "OperationName") + delete(f, "Tags") + delete(f, "Status") + delete(f, "Id") + delete(f, "OperationType") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyApmSampleConfigRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ModifyApmSampleConfigResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ModifyApmSampleConfigResponse struct { + *tchttp.BaseResponse + Response *ModifyApmSampleConfigResponseParams `json:"Response"` +} + +func (r *ModifyApmSampleConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyApmSampleConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type ModifyGeneralApmApplicationConfigRequestParams struct { // 业务系统Id diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go index ef97ef16cc..6060ac197b 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go @@ -265,7 +265,7 @@ func CompleteCommonParams(request Request, region string, requestClient string) params["Action"] = request.GetAction() params["Timestamp"] = strconv.FormatInt(time.Now().Unix(), 10) params["Nonce"] = strconv.Itoa(rand.Int()) - params["RequestClient"] = "SDK_GO_1.1.50" + params["RequestClient"] = "SDK_GO_1.2.2" if requestClient != "" { params["RequestClient"] += ": " + requestClient } diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/role_arn_provider.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/role_arn_provider.go index 421f09dfea..46ac52acba 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/role_arn_provider.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/role_arn_provider.go @@ -27,6 +27,7 @@ type RoleArnProvider struct { roleArn string roleSessionName string durationSeconds int64 + Endpoint string } type stsRsp struct { @@ -65,7 +66,11 @@ func (r *RoleArnProvider) GetCredential() (CredentialIface, error) { } credential := NewCredential(r.longSecretId, r.longSecretKey) cpf := profile.NewClientProfile() - cpf.HttpProfile.Endpoint = endpoint + providerEndpoint := r.Endpoint + if providerEndpoint == "" { + providerEndpoint = endpoint + } + cpf.HttpProfile.Endpoint = providerEndpoint cpf.HttpProfile.ReqMethod = "POST" client := NewCommonClient(credential, region, cpf) diff --git a/vendor/modules.txt b/vendor/modules.txt index 154e51339b..3ab6c962c2 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1107,7 +1107,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/api/v20201106 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway/v20180808 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.1.37 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.2.2 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm/v20210622 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.48 @@ -1170,7 +1170,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit/v20190319 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1148 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls/v20201016 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.2.2 ## explicit; go 1.11 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors diff --git a/website/docs/r/apm_sample_config.html.markdown b/website/docs/r/apm_sample_config.html.markdown new file mode 100644 index 0000000000..fd8da70de8 --- /dev/null +++ b/website/docs/r/apm_sample_config.html.markdown @@ -0,0 +1,65 @@ +--- +subcategory: "Application Performance Management(APM)" +layout: "tencentcloud" +page_title: "TencentCloud: tencentcloud_apm_sample_config" +sidebar_current: "docs-tencentcloud-resource-apm_sample_config" +description: |- + Provides a resource to create a APM sample config +--- + +# tencentcloud_apm_sample_config + +Provides a resource to create a APM sample config + +## Example Usage + +```hcl +resource "tencentcloud_apm_sample_config" "example" { + instance_id = "" + sample_name = "" + sample_rate = 10 + service_name = "" + operation_name = "" + operation_type = "" + sample_config_status = 1 + tags { + key = "createdBy" + value = "Terraform" + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `instance_id` - (Required, String, ForceNew) Business system ID. +* `sample_name` - (Required, String) Sampling rule name. +* `sample_rate` - (Required, Int) Sampling rate. +* `service_name` - (Required, String, ForceNew) Application name. +* `operation_name` - (Optional, String) API name. +* `operation_type` - (Optional, Int) 0: exact match (default); 1: prefix match; 2: suffix match. +* `sample_config_status` - (Optional, Int) Sample config status. 0: disabled; 1: enabled. +* `tags` - (Optional, List) Sampling tags. + +The `tags` object supports the following: + +* `key` - (Required, String) Key value definition. +* `value` - (Required, String) Value definition. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `id` - ID of the resource. +* `sample_id` - Sample config ID. + + +## Import + +APM sample config can be imported using the instanceId#sampleName, e.g. + +``` +terraform import tencentcloud_apm_sample_config.example apm-1o8yMC47u#tf-example +``` + diff --git a/website/tencentcloud.erb b/website/tencentcloud.erb index fca5cc9d2c..9073cb263c 100644 --- a/website/tencentcloud.erb +++ b/website/tencentcloud.erb @@ -337,6 +337,9 @@
  • tencentcloud_apm_instance
  • +
  • + tencentcloud_apm_sample_config +