Updates the configurations of an Alibaba Cloud Service Mesh (ASM) instance.
Debugging
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| Action | String | Yes | UpdateMeshFeature | The operation that you want to perform. Set the value to UpdateMeshFeature. |
| ServiceMeshId | String | Yes | cb8963379255149cb98c8686f274x**** | The ID of the ASM instance. |
| Tracing | Boolean | No | false | Specifies whether to enable the tracing analysis feature. To enable this feature, make sure that you have activated Tracing Analysis. Valid values:
Default value: |
| TraceSampling | Float | No | 100 | The sampling percentage of tracing analysis. |
| TraceCustomTags | String | No | {"mytag": {"literal":{"value":"test"}}} | The custom tag of tracing analysis. The value is in the JSON format.
Tag structure: literal, header, or environment.
|
| TraceMaxPathTagLength | String | No | 256 | The maximum length of the request path contained in the HttpUrl span tag. Default value: |
| LocalityLoadBalancing | Boolean | No | true | Specifies whether to enable cross-region load balancing. Valid values:
Default value: |
| LocalityLBConf | String | No | {"failover":[{"from":"cn-hangzhou","to":"cn-shanghai"}]} | The configurations of cross-region load balancing. Valid values:
|
| Telemetry | Boolean | No | false | Specifies whether to enable Prometheus monitoring. We recommend that you activate ARMS Prometheus. Valid values:
Default value: |
| OpenAgentPolicy | Boolean | No | false | Specifies whether to install the Open Policy Agent (OPA) plug-in. Valid values:
Default value: |
| OPALogLevel | String | No | info | The log level of the OPA proxy container.
|
| OPARequestCPU | String | No | 1 | The number of CPU cores that are requested by the OPA proxy container. |
| OPARequestMemory | String | No | 512Mi | The size of the memory that is requested by the OPA proxy container. |
| OPALimitCPU | String | No | 2 | The maximum number of CPU cores that are available to the OPA proxy container. |
| OPALimitMemory | String | No | 1024Mi | The maximum size of the memory that is available to the OPA proxy container. |
| EnableAudit | Boolean | No | false | Specifies whether to enable the mesh audit feature. To enable this feature, make sure that you have activated Log Service. Valid values:
Default value: |
| AuditProject | String | No | mesh-log-c08ba3fd1e64xxb0f8cc1ad8**** | The name of the Log Service project that is used for mesh audit. Default format: |
| CustomizedZipkin | Boolean | No | false | Specifies whether to use a self-managed Zipkin system to collect tracing analysis data. Valid values:
Default value: |
| OutboundTrafficPolicy | String | No | ALLOW_ANY | The policy of handling outbound traffic. Valid values:
|
| ProxyRequestCPU | String | No | 100m | The number of CPU cores that are requested by the sidecar proxy container. |
| ProxyRequestMemory | String | No | 128Mi | The size of the memory that is requested by the sidecar proxy container. |
| ProxyLimitCPU | String | No | 2000m | The maximum number of CPU cores that are available to the sidecar proxy container. |
| ProxyLimitMemory | String | No | 1024Mi | The maximum size of the memory that is available to the sidecar proxy container. |
| IncludeIPRanges | String | No | * | The IP addresses of external services to which traffic is intercepted. |
| ExcludeIPRanges | String | No | 100.100.XXX.XXX | The IP addresses of external services to which traffic is not intercepted. |
| ExcludeOutboundPorts | String | No | 80,81 | The outbound ports to be excluded from redirection to the sidecar proxy. Separate multiple port numbers with commas (,). |
| IncludeInboundPorts | String | No | 80,81 | The inbound ports for which traffic is to be redirected to the sidecar proxy. |
| ExcludeInboundPorts | String | No | 80,81 | The inbound ports to be excluded from redirection to the sidecar proxy. Separate multiple port numbers with commas (,). |
| EnableNamespacesByDefault | Boolean | No | false | Specifies whether to enable automatic sidecar injection for all namespaces. Valid values:
Default value: |
| AutoInjectionPolicyEnabled | Boolean | No | false | Specifies whether to enable automatic sidecar injection by using pod annotations. Valid values:
Default value: |
| SidecarInjectorRequestCPU | String | No | 1000m | The number of CPU cores that are requested by the sidecar injector pod. |
| SidecarInjectorRequestMemory | String | No | 512Mi | The size of the memory that is requested by the sidecar injector pod. |
| SidecarInjectorLimitCPU | String | No | 4000m | The maximum number of CPU cores that are available to the sidecar injector pod. |
| SidecarInjectorLimitMemory | String | No | 2048Mi | The maximum size of the memory that is available to the sidecar injector pod. |
| SidecarInjectorWebhookAsYaml | String | No | {"injectedAnnotations":{"test/istio-init":"runtime/default2","test/istio-proxy":"runtime/default"},"replicaCount":2,"nodeSelector":{"beta.kubernetes.io/os":"linux"}} | Other configurations of automatic sidecar injection, in the YAML format. |
| CniEnabled | Boolean | No | false | Specifies whether to enable the Container Network Interface (CNI) plug-in. Valid values:
Default value: |
| CniExcludeNamespaces | String | No | kube-system | The namespaces to be excluded for the CNI plug-in. |
| OpaEnabled | Boolean | No | false | Specifies whether to enable the OPA plug-in. Valid values:
Default value: |
| Http10Enabled | Boolean | No | false | Specifies whether to enable the support for HTTP 1.0. Valid values:
Default value: |
| KialiEnabled | Boolean | No | false | Specifies whether to enable the mesh topology feature. To enable this feature, make sure that you have enabled Prometheus monitoring. If Prometheus monitoring is disabled, the value of this parameter must be
Default value: |
| CustomizedPrometheus | Boolean | No | false | Specifies whether to use a custom Prometheus instance. Valid values:
Default value: |
| PrometheusUrl | String | No | http://prometheus:9090 | The endpoint of Prometheus monitoring. If you use ARMS Prometheus, set this parameter to the endpoint of Prometheus provided by ARMS. |
| AccessLogEnabled | Boolean | No | false | Specifies whether to enable access log collection. Valid values:
Default value: |
| MSEEnabled | Boolean | Yes | false | Specifies whether to enable Microservices Engine (MSE). Valid values:
Default value: |
| RedisFilterEnabled | Boolean | No | false | Specifies whether to enable Redis Filter. Valid values:
|
| MysqlFilterEnabled | Boolean | No | false | Specifies whether to enable MySQL Filter. Valid values:
Default value: |
| ThriftFilterEnabled | Boolean | No | false | Specifies whether to enable Thrift Filter. Valid values:
Default value: |
| WebAssemblyFilterEnabled | Boolean | No | false | Specifies whether to enable WebAssembly Filter. Valid values:
Default value: |
| DNSProxyingEnabled | Boolean | No | false | Specifies whether to enable DNS proxying. Valid values:
Default value: |
| DubboFilterEnabled | Boolean | No | false | Specifies whether to enable Dubbo Filter. Valid values:
Default value: |
| FilterGatewayClusterConfig | Boolean | No | false | Specifies whether to enable gateway configuration filtering. Valid values:
Default value: |
| EnableSDSServer | Boolean | No | false | Specifies whether to enable Secret Discovery Service (SDS). Valid values:
Default value: |
| AccessLogServiceEnabled | Boolean | No | false | Specifies whether to enable gRPC Access Log Service (ALS) for Envoy. Valid values:
Default value: |
| AccessLogServiceHost | String | No | 0.0.0.0 | The endpoint of gRPC ALS for Envoy. |
| AccessLogServicePort | Integer | No | 9999 | The port of gRPC ALS for Envoy. |
| GatewayAPIEnabled | Boolean | No | false | Specifies whether to enable Gateway API. Valid values:
Default value: |
| ConfigSourceEnabled | Boolean | No | false | Specifies whether to enable the external service registry. Valid values:
Default value: |
| ConfigSourceNacosID | String | No | mse-cn-tl326****** | The instance ID of the Nacos registry. |
| AccessLogFormat | String | No | {"authority_for":"%REQ(:AUTHORITY)%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","downstream_local_address":"%DOWNSTREAM_LOCAL_ADDRESS%","downstream_remote_address":"%DOWNSTREAM_REMOTE_ADDRESS%","duration":"%DURATION%","istio_policy_status":"%DYNAMIC_METADATA(istio.mixer:status)%","method":"%REQ(:METHOD)%","path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","protocol":"%PROTOCOL%","request_id":"%REQ(X-REQUEST-ID)%","requested_server_name":"%REQUESTED_SERVER_NAME%","response_code":"%RESPONSE_CODE%","response_flags":"%RESPONSE_FLAGS%","route_name":"%ROUTE_NAME%","start_time":"%START_TIME%","trace_id":"%REQ(X-B3-TRACEID)%","upstream_cluster":"%UPSTREAM_CLUSTER%","upstream_host":"%UPSTREAM_HOST%","upstream_local_address":"%UPSTREAM_LOCAL_ADDRESS%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_transport_failure_reason":"%UPSTREAM_TRANSPORT_FAILURE_REASON%","user_agent":"%REQ(USER-AGENT)%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%"} | The custom format of access logs. To set this parameter, make sure that you have enabled access log collection. The value must be a JSON string. The following key names must be contained: authority_for, bytes_received, bytes_sent, downstream_local_address, downstream_remote_address, duration, istio_policy_status, method, path, protocol, requested_server_name, response_code, response_flags, route_name, start_time, trace_id, upstream_cluster, upstream_host, upstream_local_address, upstream_service_time, upstream_transport_failure_reason, user_agent, and x_forwarded_for. |
| AccessLogFile | String | No | "" | Specifies whether to enable access logging. Valid values:
|
| AccessLogProject | String | No | mesh-log-cf245a429b6ff4b6e97f20797758e**** | The custom project on which the Log Service collects logs. |
| EnableCRHistory | Boolean | No | false | Specifies whether to enable the rollback feature for Istio resources. |
| CRAggregationEnabled | Boolean | No | false | Specifies whether the Kubernetes API of clusters on the data plane can be used access Istio resources. To use this feature, the version of the ASM instance must be V1.9.7.93 or later. |
| TerminationDrainDuration | String | No | 5s | The maximum period of time that the sidecar proxy waits for requests to be processed before the proxy is stopped. For example, if you want to specify a period of 5 seconds, set this parameter to 5s. |
| ProxyInitCPUResourceLimit | String | No | 2000m | The maximum number of CPU cores that are available to the istio-init container. |
| ProxyInitMemoryResourceLimit | String | No | 1024Mi | The maximum size of the memory that is available to the istio-init container. |
| ProxyInitCPUResourceRequest | String | No | 10m | The number of CPU cores that are requested by the istio-init container. |
| ProxyInitMemoryResourceRequest | String | No | 10Mi | The size of the memory that is requested by the istio-init container. |
| Lifecycle | String | No | {"postStart":{"exec":{"command":["pilot-agent","wait"]}},"preStop":{"exec":{"command":["/bin/sh","-c","sleep 15"]}}} | The lifecycle of the sidecar proxy. |
| MultiBufferEnabled | Boolean | No | false | Specifies whether to enable Transport Layer Security (TLS) acceleration based on MultiBuffer. |
| MultiBufferPollDelay | String | No | 0.02s | The pull-request latency. By default, this parameter is left empty. |
| DiscoverySelectors | String | No | [{"matchExpressions":[{"key":"asm-discovery","operator":"Exists"}]}] | The label selectors used to specify the namespaces of the clusters on the data plane for selective service discovery. |
| GlobalRateLimitEnabled | Boolean | No | false | Specifies whether to enable Application High Availability Service (AHAS)-based throttling. Valid values:
Default value: |
| ClusterSpec | String | No | standard | The edition of the ASM instance. Valid values:
|
| OPAScopeInjected | Boolean | No | false | Specifies whether to enable the feature of controlling the OPA injection scope. Valid values:
|
| OPAInjectorCPURequirement | String | No | 80m | The minimum number of CPU cores requested by the pod to which the OPA proxy container is injected. For example, |
| OPAInjectorMemoryRequirement | String | No | 50Mi | The minimum size of the memory requested by the pod to which the OPA proxy container is injected. For example, |
| OPAInjectorCPULimit | String | No | 1000m | The maximum number of CPU cores that are available to the pod to which the OPA proxy container is injected. For example, |
| OPAInjectorMemoryLimit | String | No | 1024Mi | The maximum size of the memory that is available to the pod to which the OPA proxy container is injected. For example, |
| IntegrateKiali | Boolean | No | false | Specifies whether to create an SLB instance for accessing the ASM mesh topology. |
| NFDEnabled | Boolean | No | false | Specifies whether to enable Node Feature Discovery (NFD). |
| NFDLabelPruned | Boolean | No | false | Specifies whether to clear feature labels on nodes when NFD is disabled. This parameter is valid only when the |
| TracingOnExtZipkinRequestCPU | String | No | 200m | The minimum number of CPU cores requested by the proxy that exports trace data. For example, |
| TracingOnExtZipkinRequestMemory | String | No | 200Mi | The minimum size of the memory requested by the proxy that exports trace data. For example, |
| TracingOnExtZipkinLimitCPU | String | No | 1000Mi | The maximum number of CPU cores that are available to the proxy that exports trace data. For example, |
| TracingOnExtZipkinLimitMemory | String | No | 1024Mi | The maximum size of the memory that is available to the proxy that exports trace data. For example, |
| AccessLogGatewayLifecycle | Integer | No | 30 | The retention period for the access logs of the ingress gateway. Unit: day. The logs are collected by using the Log Service. For example, |
| AccessLogSidecarLifecycle | Integer | No | 30 | The retention period for the access logs of the sidecar proxy. Unit: day. The logs are collected by using the Log Service. For example, |
| EnableAutoDiagnosis | Boolean | No | true | Specifies whether to enable automatic diagnosis for the ASM instance. If you enable this feature, the ASM instance is automatically diagnosed when you modify Istio resources in the ASM instance. |
| IncludeOutboundPorts | String | No | 8000,8001 | The outbound ports for which traffic is to be redirected to the sidecar proxy. |
| LogLevel | String | No | info | The log level of the sidecar proxy on the data plane. Log levels include |
| Concurrency | Integer | No | 2 | The number of worker threads used by the sidecar proxy on the data plane. |
| HoldApplicationUntilProxyStarts | Boolean | No | true | Specifies whether to delay application container startup until the sidecar proxy container is started in a pod. |
| ProxyStatsMatcher | String | No | {"inclusionRegexps":".*adaptive_concurrency.*"} | Other metrics of the sidecar proxy on the data plane. |
| InterceptionMode | String | No | TPROXY | The mode in which the sidecar proxy intercepts inbound traffic. Valid values: Valid values:
|
| EnableBootstrapXdsAgent | Boolean | No | true | Specifies whether to load the bootstrap configuration before the sidecar proxy is started. |
| KialiArmsAuthTokens | String | No | {"c31e3b******5634b":"token_example"} | Specifies the authentication token of the ARMS Prometheus instance when the mesh topology feature is enabled and ARMS Prometheus is used to collect monitoring metrics. The token is used to allow mesh topology to access the ARMS Prometheus instance. The token is in the JSON format. The key in the JSON object is the ID of the cluster on the data plane, and the value is the authentication token for the ARMS Prometheus instance deployed in the cluster. |
Response parameters
| Parameter | Type | Example | Description |
|---|---|---|---|
| RequestId | String | BD65C0AD-D3C6-48D3-8D93-38D2015C**** | The ID of the request. |
Examples
Sample requests
http(s)://[Endpoint]/?Action=UpdateMeshFeature
&ServiceMeshId=cb8963379255149cb98c8686f274x****
&Tracing=false
&TraceSampling=100.0
&TraceCustomTags={"mytag": {"literal":{"value":"test"}}}
&TraceMaxPathTagLength=256
&LocalityLoadBalancing=true
&LocalityLBConf={"failover":[{"from":"cn-hangzhou","to":"cn-shanghai"}]}
&Telemetry=false
&OpenAgentPolicy=false
&OPALogLevel=info
&OPARequestCPU=1
&OPARequestMemory=512Mi
&OPALimitCPU=2
&OPALimitMemory=1024Mi
&EnableAudit=false
&AuditProject=mesh-log-c08ba3fd1e64xxb0f8cc1ad8****
&CustomizedZipkin=false
&OutboundTrafficPolicy=ALLOW_ANY
&ProxyRequestCPU=100m
&ProxyRequestMemory=128Mi
&ProxyLimitCPU=2000m
&ProxyLimitMemory=1024Mi
&IncludeIPRanges=*
&ExcludeIPRanges=100.100.XXX.XXX
&ExcludeOutboundPorts=80,81
&IncludeInboundPorts=80,81
&ExcludeInboundPorts=80,81
&EnableNamespacesByDefault=false
&AutoInjectionPolicyEnabled=false
&SidecarInjectorRequestCPU=1000m
&SidecarInjectorRequestMemory=512Mi
&SidecarInjectorLimitCPU=4000m
&SidecarInjectorLimitMemory=2048Mi
&SidecarInjectorWebhookAsYaml={"injectedAnnotations":{"test/istio-init":"runtime/default2","test/istio-proxy":"runtime/default"},"replicaCount":2,"nodeSelector":{"beta.kubernetes.io/os":"linux"}}
&CniEnabled=false
&CniExcludeNamespaces=kube-system
&OpaEnabled=false
&Http10Enabled=false
&KialiEnabled=false
&CustomizedPrometheus=false
&PrometheusUrl=http://prometheus:9090
&AccessLogEnabled=false
&MSEEnabled=false
&RedisFilterEnabled=false
&MysqlFilterEnabled=false
&ThriftFilterEnabled=false
&WebAssemblyFilterEnabled=false
&DNSProxyingEnabled=false
&DubboFilterEnabled=false
&FilterGatewayClusterConfig=false
&EnableSDSServer=false
&AccessLogServiceEnabled=false
&AccessLogServiceHost=0.0.0.0
&AccessLogServicePort=9999
&GatewayAPIEnabled=false
&ConfigSourceEnabled=false
&ConfigSourceNacosID=mse-cn-tl326******
&AccessLogFormat={"authority_for":"%REQ(:AUTHORITY)%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","downstream_local_address":"%DOWNSTREAM_LOCAL_ADDRESS%","downstream_remote_address":"%DOWNSTREAM_REMOTE_ADDRESS%","duration":"%DURATION%","istio_policy_status":"%DYNAMIC_METADATA(istio.mixer:status)%","method":"%REQ(:METHOD)%","path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","protocol":"%PROTOCOL%","request_id":"%REQ(X-REQUEST-ID)%","requested_server_name":"%REQUESTED_SERVER_NAME%","response_code":"%RESPONSE_CODE%","response_flags":"%RESPONSE_FLAGS%","route_name":"%ROUTE_NAME%","start_time":"%START_TIME%","trace_id":"%REQ(X-B3-TRACEID)%","upstream_cluster":"%UPSTREAM_CLUSTER%","upstream_host":"%UPSTREAM_HOST%","upstream_local_address":"%UPSTREAM_LOCAL_ADDRESS%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_transport_failure_reason":"%UPSTREAM_TRANSPORT_FAILURE_REASON%","user_agent":"%REQ(USER-AGENT)%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%"}
&AccessLogFile=""
&AccessLogProject=mesh-log-cf245a429b6ff4b6e97f20797758e****
&EnableCRHistory=false
&CRAggregationEnabled=false
&TerminationDrainDuration=5s
&ProxyInitCPUResourceLimit=2000m
&ProxyInitMemoryResourceLimit=1024Mi
&ProxyInitCPUResourceRequest=10m
&ProxyInitMemoryResourceRequest=10Mi
&Lifecycle={"postStart":{"exec":{"command":["pilot-agent","wait"]}},"preStop":{"exec":{"command":["/bin/sh","-c","sleep 15"]}}}
&MultiBufferEnabled=false
&MultiBufferPollDelay=0.02s
&DiscoverySelectors=[{"matchExpressions":[{"key":"asm-discovery","operator":"Exists"}]}]
&GlobalRateLimitEnabled=false
&ClusterSpec=standard
&OPAScopeInjected=false
&OPAInjectorCPURequirement=80m
&OPAInjectorMemoryRequirement=50Mi
&OPAInjectorCPULimit=1000m
&OPAInjectorMemoryLimit=1024Mi
&IntegrateKiali=false
&NFDEnabled=false
&NFDLabelPruned=false
&TracingOnExtZipkinRequestCPU=200m
&TracingOnExtZipkinRequestMemory=200Mi
&TracingOnExtZipkinLimitCPU=1000Mi
&TracingOnExtZipkinLimitMemory=1024Mi
&AccessLogGatewayLifecycle=30
&AccessLogSidecarLifecycle=30
&EnableAutoDiagnosis=true
&IncludeOutboundPorts=8000,8001
&LogLevel=info
&Concurrency=2
&HoldApplicationUntilProxyStarts=true
&ProxyStatsMatcher={"inclusionRegexps":".*adaptive_concurrency.*"}
&InterceptionMode=TPROXY
&EnableBootstrapXdsAgent=true
&KialiArmsAuthTokens={"c31e3b******5634b":"token_example"}
&<Common request parameters>
Sample success responses
XML format
HTTP/1.1 200 OK
Content-Type:application/xml
<UpdateMeshFeatureResponse>
<RequestId>BD65C0AD-D3C6-48D3-8D93-38D2015C****</RequestId>
</UpdateMeshFeatureResponse>
JSON format
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "BD65C0AD-D3C6-48D3-8D93-38D2015C****"
}
Error codes
For a list of error codes, see Service error codes.