From b464c362be2b890dadcb8faca91830e8e6ab1b25 Mon Sep 17 00:00:00 2001 From: sinbai Date: Tue, 14 Jan 2025 14:32:29 +0800 Subject: [PATCH] support new property metrics --- .../api_management_api_diagnostic_resource.go | 8 ++++++++ .../api_management_api_diagnostic_resource_test.go | 2 ++ .../apimanagement/api_management_diagnostic_resource.go | 8 ++++++++ .../api_management_diagnostic_resource_test.go | 2 ++ .../docs/r/api_management_api_diagnostic.html.markdown | 2 ++ website/docs/r/api_management_diagnostic.html.markdown | 2 ++ 6 files changed, 24 insertions(+) diff --git a/internal/services/apimanagement/api_management_api_diagnostic_resource.go b/internal/services/apimanagement/api_management_api_diagnostic_resource.go index f47e92db498b..a8c1d87a3cf5 100644 --- a/internal/services/apimanagement/api_management_api_diagnostic_resource.go +++ b/internal/services/apimanagement/api_management_api_diagnostic_resource.go @@ -65,6 +65,12 @@ func resourceApiManagementApiDiagnostic() *pluginsdk.Resource { ValidateFunc: logger.ValidateLoggerID, }, + "metrics_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + "sampling_percentage": { Type: pluginsdk.TypeFloat, Optional: true, @@ -199,6 +205,7 @@ func resourceApiManagementApiDiagnosticCreateUpdate(d *pluginsdk.ResourceData, m parameters := apidiagnostic.DiagnosticContract{ Properties: &apidiagnostic.DiagnosticContractProperties{ LoggerId: d.Get("api_management_logger_id").(string), + Metrics: pointer.To(d.Get("metrics_enabled").(bool)), }, } @@ -332,6 +339,7 @@ func resourceApiManagementApiDiagnosticRead(d *pluginsdk.ResourceData, meta inte format = string(pointer.From(props.OperationNameFormat)) } d.Set("operation_name_format", format) + d.Set("metrics_enabled", pointer.From(props.Metrics)) } } diff --git a/internal/services/apimanagement/api_management_api_diagnostic_resource_test.go b/internal/services/apimanagement/api_management_api_diagnostic_resource_test.go index 536592899ff4..1db928b46872 100644 --- a/internal/services/apimanagement/api_management_api_diagnostic_resource_test.go +++ b/internal/services/apimanagement/api_management_api_diagnostic_resource_test.go @@ -272,6 +272,7 @@ resource "azurerm_api_management_api_diagnostic" "test" { http_correlation_protocol = "W3C" verbosity = "verbose" operation_name_format = "Name" + metrics_enabled = true backend_request { body_bytes = 1 @@ -362,6 +363,7 @@ resource "azurerm_api_management_api_diagnostic" "test" { http_correlation_protocol = "W3C" verbosity = "verbose" operation_name_format = "Url" + metrics_enabled = false } `, r.template(data)) } diff --git a/internal/services/apimanagement/api_management_diagnostic_resource.go b/internal/services/apimanagement/api_management_diagnostic_resource.go index 60d8f8621568..e165a27cb545 100644 --- a/internal/services/apimanagement/api_management_diagnostic_resource.go +++ b/internal/services/apimanagement/api_management_diagnostic_resource.go @@ -63,6 +63,12 @@ func resourceApiManagementDiagnostic() *pluginsdk.Resource { ValidateFunc: logger.ValidateLoggerID, }, + "metrics_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + "sampling_percentage": { Type: pluginsdk.TypeFloat, Optional: true, @@ -158,6 +164,7 @@ func resourceApiManagementDiagnosticCreateUpdate(d *pluginsdk.ResourceData, meta parameters := diagnostic.DiagnosticContract{ Properties: &diagnostic.DiagnosticContractProperties{ LoggerId: d.Get("api_management_logger_id").(string), + Metrics: pointer.To(d.Get("metrics_enabled").(bool)), }, } @@ -280,6 +287,7 @@ func resourceApiManagementDiagnosticRead(d *pluginsdk.ResourceData, meta interfa format = string(pointer.From(props.OperationNameFormat)) } d.Set("operation_name_format", format) + d.Set("metrics_enabled", pointer.From(props.Metrics)) } } diff --git a/internal/services/apimanagement/api_management_diagnostic_resource_test.go b/internal/services/apimanagement/api_management_diagnostic_resource_test.go index 3c114686b603..663161923c7a 100644 --- a/internal/services/apimanagement/api_management_diagnostic_resource_test.go +++ b/internal/services/apimanagement/api_management_diagnostic_resource_test.go @@ -230,6 +230,7 @@ resource "azurerm_api_management_diagnostic" "test" { log_client_ip = false http_correlation_protocol = "Legacy" verbosity = "error" + metrics_enabled = false frontend_request { body_bytes = 100 @@ -310,6 +311,7 @@ resource "azurerm_api_management_diagnostic" "test" { http_correlation_protocol = "Legacy" verbosity = "error" operation_name_format = "Url" + metrics_enabled = true } `, r.template(data)) } diff --git a/website/docs/r/api_management_api_diagnostic.html.markdown b/website/docs/r/api_management_api_diagnostic.html.markdown index 5c171b370358..a3ad27c8b47c 100644 --- a/website/docs/r/api_management_api_diagnostic.html.markdown +++ b/website/docs/r/api_management_api_diagnostic.html.markdown @@ -144,6 +144,8 @@ The following arguments are supported: * `log_client_ip` - (Optional) Log client IP address. +* `metrics_enabled` - (Optional) Whether to enable emitting custom metrics by the emit-metric policy. Defaults to `false`. + * `sampling_percentage` - (Optional) Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`. * `verbosity` - (Optional) Logging verbosity. Possible values are `verbose`, `information` or `error`. diff --git a/website/docs/r/api_management_diagnostic.html.markdown b/website/docs/r/api_management_diagnostic.html.markdown index e9d5b915cea4..2be7dbf45883 100644 --- a/website/docs/r/api_management_diagnostic.html.markdown +++ b/website/docs/r/api_management_diagnostic.html.markdown @@ -125,6 +125,8 @@ The following arguments are supported: * `log_client_ip` - (Optional) Log client IP address. +* `metrics_enabled` - (Optional) Whether to enable emitting custom metrics by the emit-metric policy. Defaults to `false`. + * `sampling_percentage` - (Optional) Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`. * `verbosity` - (Optional) Logging verbosity. Possible values are `verbose`, `information` or `error`.