Skip to content

Commit 69ff432

Browse files
authored
Merge pull request #272106 from MicrosoftDocs/main
Publish to live, Sunday 4 AM PST, 4/14
2 parents 2ef4796 + 9e15f97 commit 69ff432

File tree

190 files changed

+696
-5996
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

190 files changed

+696
-5996
lines changed

.openpublishing.redirection.iot-develop.json

Lines changed: 182 additions & 97 deletions
Large diffs are not rendered by default.

articles/ai-services/speech-service/how-to-windows-voice-assistants-get-started.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ To start developing a voice assistant for Windows, you need to make sure
2929
Some resources necessary for a customized voice agent on Windows requires resources from Microsoft. The [UWP Voice Assistant Sample](windows-voice-assistants-faq.yml#the-uwp-voice-assistant-sample) provides sample versions of these resources for initial development and testing, so this section is unnecessary for initial development.
3030

3131
- **Keyword model:** Voice activation requires a keyword model from Microsoft in the form of a .bin file. The .bin file provided in the UWP Voice Assistant Sample is trained on the keyword *Contoso*.
32-
- **Limited Access Feature Token:** Since the ConversationalAgent APIs provide access to microphone audio, they're protected under Limited Access Feature restrictions. To use a Limited Access Feature, you need to obtain a Limited Access Feature token connected to the package identity of your application from Microsoft.
32+
- **Limited Access Feature Token:** Since the ConversationalAgent APIs provide access to microphone audio, they're protected under Limited Access Feature restrictions. To use a Limited Access Feature, you need to obtain a Limited Access Feature token connected to the package identity of your application from Microsoft. For more information about any Limited Access Feature or to request an unlock token, contact [Microsoft Support](https://support.serviceshub.microsoft.com/supportforbusiness/create?sapId=d15d3aa2-0512-7cb8-1df9-86221f5cbfde).
33+
34+
3335

3436
## Establish a dialog service
3537

articles/aks/start-stop-cluster.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ You may not need to continuously run your Azure Kubernetes Service (AKS) workloa
1212

1313
To better optimize your costs during these periods, you can turn off, or stop, your cluster. This action stops your control plane and agent nodes, allowing you to save on all the compute costs, while maintaining all objects except standalone pods. The cluster state is stored for when you start it again, allowing you to pick up where you left off.
1414

15+
> [!CAUTION]
16+
> Stopping your cluster deallocates the control plane and releases the capacity. In regions experiencing capacity constraints, customers may be unable to start a stopped cluster. We do not recommend stopping mission critical workloads for this reason.
17+
1518
## Before you begin
1619

1720
This article assumes you have an existing AKS cluster. If you need an AKS cluster, you can create one using [Azure CLI][aks-quickstart-cli], [Azure PowerShell][aks-quickstart-powershell], or the [Azure portal][aks-quickstart-portal].

articles/aks/use-network-policies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ Create the AKS cluster and specify `--network-plugin azure`, and `--network-poli
198198
If you plan on adding Windows node pools to your cluster, include the `windows-admin-username` and `windows-admin-password` parameters that meet the [Windows Server password requirements][windows-server-password].
199199

200200
> [!IMPORTANT]
201-
> At this time, using Calico network policies with Windows nodes is available on new clusters by using Kubernetes version 1.20 or later with Calico 3.17.2 and requires that you use Azure CNI networking. Windows nodes on AKS clusters with Calico enabled also have [Direct Server Return (DSR)][dsr] enabled by default.
201+
> At this time, using Calico network policies with Windows nodes is available on new clusters by using Kubernetes version 1.20 or later with Calico 3.17.2 and requires that you use Azure CNI networking. Windows nodes on AKS clusters with Calico enabled also have Floating IP enabled by default.
202202
>
203203
> For clusters with only Linux node pools running Kubernetes 1.20 with earlier versions of Calico, the Calico version automatically upgrades to 3.17.2.
204204

articles/aks/windows-best-practices.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ You might want to containerize existing applications and run them using Windows
3535
3636
AKS uses Windows Server 2019 and Windows Server 2022 as the host OS versions and only supports process isolation. AKS doesn't support container images built by other versions of Windows Server. For more information, see [Windows container version compatibility](/virtualization/windowscontainers/deploy-containers/version-compatibility).
3737

38-
Windows Server 2022 is the default OS for Kubernetes version 1.25 and later. Windows Server 2019 will retire after Kubernetes version 1.32 reaches end of life (EOL). Windows Server 2022 will retire after Kubernetes version 1.34 reaches its end of life (EOL). For more information, see [AKS release notes][aks-release-notes]. To stay up to date on the latest Windows Server OS versions and learn more about our roadmap of what's planned for support on AKS, see our [AKS public roadmap](https://github.com/azure/aks/projects/1).
38+
Windows Server 2022 is the default OS for Kubernetes version 1.25 and later. Windows Server 2019 will retire after Kubernetes version 1.32 reaches end of life. Windows Server 2022 will retire after Kubernetes version 1.34 reaches its end of life. For more information, see [AKS release notes][aks-release-notes]. To stay up to date on the latest Windows Server OS versions and learn more about our roadmap of what's planned for support on AKS, see our [AKS public roadmap](https://github.com/azure/aks/projects/1).
3939

4040

4141
## Networking
@@ -63,7 +63,7 @@ To help you decide which networking mode to use, see [Choosing a network model][
6363
6464
When managing traffic between pods, you should apply the principle of least privilege. The Network Policy feature in Kubernetes allows you to define and enforce ingress and egress traffic rules between the pods in your cluster. For more information, see [Secure traffic between pods using network policies in AKS][network-policies-aks].
6565

66-
Windows pods on AKS clusters that use the Calico Network Policy enable [Floating IP][dsr] by default.
66+
Windows pods on AKS clusters that use the Calico Network Policy enable Floating IP by default.
6767

6868
## Upgrades and updates
6969

articles/api-management/how-to-configure-local-metrics-logs.md

Lines changed: 78 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
title: Configure local metrics and logs for Azure API Management self-hosted gateway | Microsoft Docs
3-
description: Learn how to configure local metrics and logs for Azure API Management self-hosted gateway on a Kubernetes cluster
3+
description: Learn how to configure local metrics and logs for Azure API Management self-hosted gateway on a Kubernetes cluster.
44
services: api-management
55
author: dlepow
66
manager: gwallace
77
ms.service: api-management
88
ms.topic: article
9-
ms.date: 05/11/2021
9+
ms.date: 04/12/2024
1010
ms.author: danlep
1111
---
1212

@@ -22,7 +22,7 @@ The self-hosted gateway supports [StatsD](https://github.com/statsd/statsd), whi
2222

2323
### Deploy StatsD and Prometheus to the cluster
2424

25-
Below is a sample YAML configuration for deploying StatsD and Prometheus to the Kubernetes cluster where a self-hosted gateway is deployed. It also creates a [Service](https://kubernetes.io/docs/concepts/services-networking/service/) for each. The self-hosted gateway will publish metrics to the StatsD Service. We will access the Prometheus dashboard via its Service.
25+
The following sample YAML configuration deploys StatsD and Prometheus to the Kubernetes cluster where a self-hosted gateway is deployed. It also creates a [Service](https://kubernetes.io/docs/concepts/services-networking/service/) for each. The self-hosted gateway then publishes metrics to the StatsD Service. We'll access the Prometheus dashboard via its Service.
2626

2727
> [!NOTE]
2828
> The following example pulls public container images from Docker Hub. We recommend that you set up a pull secret to authenticate using a Docker Hub account instead of making an anonymous pull request. To improve reliability when working with public content, import and manage the images in a private Azure container registry. [Learn more about working with public images.](../container-registry/buffer-gate-public-content.md)
@@ -119,21 +119,21 @@ spec:
119119
app: sputnik-metrics
120120
```
121121
122-
Save the configurations to a file named `metrics.yaml` and use the below command to deploy everything to the cluster:
122+
Save the configurations to a file named `metrics.yaml`. Use the following command to deploy everything to the cluster:
123123

124124
```console
125125
kubectl apply -f metrics.yaml
126126
```
127127

128-
Once the deployment finishes, run the below command to check the Pods are running. Note that your pod name will be different.
128+
Once the deployment finishes, run the following command to check the Pods are running. Your pod name will be different.
129129

130130
```console
131131
kubectl get pods
132132
NAME READY STATUS RESTARTS AGE
133133
sputnik-metrics-f6d97548f-4xnb7 2/2 Running 0 1m
134134
```
135135

136-
Run the below command to check the Services are running. Take a note of the `CLUSTER-IP` and `PORT` of the StatsD Service, we would need it later. You can visit the Prometheus dashboard using its `EXTERNAL-IP` and `PORT`.
136+
Run the below command to check the `services` are running. Take a note of the `CLUSTER-IP` and `PORT` of the StatsD Service, which we use later. You can visit the Prometheus dashboard using its `EXTERNAL-IP` and `PORT`.
137137

138138
```console
139139
kubectl get services
@@ -144,16 +144,16 @@ sputnik-metrics-statsd NodePort 10.0.41.179 <none> 8125:3
144144

145145
### Configure the self-hosted gateway to emit metrics
146146

147-
Now that both StatsD and Prometheus have been deployed, we can update the configurations of the self-hosted gateway to start emitting metrics through StatsD. The feature can be enabled or disabled using the `telemetry.metrics.local` key in the ConfigMap of the self-hosted gateway Deployment with additional options. Below is a breakdown of the available options:
147+
Now that both StatsD and Prometheus are deployed, we can update the configurations of the self-hosted gateway to start emitting metrics through StatsD. The feature can be enabled or disabled using the `telemetry.metrics.local` key in the ConfigMap of the self-hosted gateway Deployment with additional options. The following are the available options:
148148

149149
| Field | Default | Description |
150150
| ------------- | ------------- | ------------- |
151151
| telemetry.metrics.local | `none` | Enables logging through StatsD. Value can be `none`, `statsd`. |
152152
| telemetry.metrics.local.statsd.endpoint | n/a | Specifies StatsD endpoint. |
153-
| telemetry.metrics.local.statsd.sampling | n/a | Specifies metrics sampling rate. Value can be between 0 and 1. e.g., `0.5`|
153+
| telemetry.metrics.local.statsd.sampling | n/a | Specifies metrics sampling rate. Value can be between 0 and 1. Example: `0.5`|
154154
| telemetry.metrics.local.statsd.tag-format | n/a | StatsD exporter [tagging format](https://github.com/prometheus/statsd_exporter#tagging-extensions). Value can be `none`, `librato`, `dogStatsD`, `influxDB`. |
155155

156-
Here is a sample configuration:
156+
Here's a sample configuration:
157157

158158
```yaml
159159
apiVersion: v1
@@ -182,16 +182,16 @@ kubectl rollout restart deployment/<deployment-name>
182182

183183
### View the metrics
184184

185-
Now we have everything deployed and configured, the self-hosted gateway should report metrics via StatsD. Prometheus will pick up the metrics from StatsD. Go to the Prometheus dashboard using the `EXTERNAL-IP` and `PORT` of the Prometheus Service.
185+
Now we have everything deployed and configured, the self-hosted gateway should report metrics via StatsD. Prometheus then picks up the metrics from StatsD. Go to the Prometheus dashboard using the `EXTERNAL-IP` and `PORT` of the Prometheus Service.
186186

187187
Make some API calls through the self-hosted gateway, if everything is configured correctly, you should be able to view below metrics:
188188

189189
| Metric | Description |
190190
| ------------- | ------------- |
191191
| requests_total | Number of API requests in the period |
192192
| request_duration_seconds | Number of milliseconds from the moment gateway received request until the moment response sent in full |
193-
| request_backend_duration_seconds | Number of milliseconds spent on overall backend IO (connecting, sending and receiving bytes) |
194-
| request_client_duration_seconds | Number of milliseconds spent on overall client IO (connecting, sending and receiving bytes) |
193+
| request_backend_duration_seconds | Number of milliseconds spent on overall backend IO (connecting, sending, and receiving bytes) |
194+
| request_client_duration_seconds | Number of milliseconds spent on overall client IO (connecting, sending, and receiving bytes) |
195195

196196
## Logs
197197

@@ -203,20 +203,20 @@ kubectl logs <pod-name>
203203

204204
If your self-hosted gateway is deployed in Azure Kubernetes Service, you can enable [Azure Monitor for containers](../azure-monitor/containers/container-insights-overview.md) to collect `stdout` and `stderr` from your workloads and view the logs in Log Analytics.
205205

206-
The self-hosted gateway also supports a number of protocols including `localsyslog`, `rfc5424`, and `journal`. The below table summarizes all the options supported.
206+
The self-hosted gateway also supports many protocols including `localsyslog`, `rfc5424`, and `journal`. The following table summarizes all the options supported.
207207

208208
| Field | Default | Description |
209209
| ------------- | ------------- | ------------- |
210210
| telemetry.logs.std | `text` | Enables logging to standard streams. Value can be `none`, `text`, `json` |
211211
| telemetry.logs.local | `auto` | Enables local logging. Value can be `none`, `auto`, `localsyslog`, `rfc5424`, `journal`, `json` |
212-
| telemetry.logs.local.localsyslog.endpoint | n/a | Specifies localsyslog endpoint. |
213-
| telemetry.logs.local.localsyslog.facility | n/a | Specifies localsyslog [facility code](https://en.wikipedia.org/wiki/Syslog#Facility). e.g., `7`
212+
| telemetry.logs.local.localsyslog.endpoint | n/a | Specifies local syslog endpoint. For details, see [using local syslog logs](#using-local-syslog-logs). |
213+
| telemetry.logs.local.localsyslog.facility | n/a | Specifies local syslog [facility code](https://en.wikipedia.org/wiki/Syslog#Facility). Example: `7`
214214
| telemetry.logs.local.rfc5424.endpoint | n/a | Specifies rfc5424 endpoint. |
215-
| telemetry.logs.local.rfc5424.facility | n/a | Specifies facility code per [rfc5424](https://tools.ietf.org/html/rfc5424). e.g., `7` |
215+
| telemetry.logs.local.rfc5424.facility | n/a | Specifies facility code per [rfc5424](https://tools.ietf.org/html/rfc5424). Example: `7` |
216216
| telemetry.logs.local.journal.endpoint | n/a | Specifies journal endpoint. |
217217
| telemetry.logs.local.json.endpoint | 127.0.0.1:8888 | Specifies UDP endpoint that accepts JSON data: file path, IP:port, or hostname:port.
218218

219-
Here is a sample configuration of local logging:
219+
Here's a sample configuration of local logging:
220220

221221
```yaml
222222
apiVersion: v1
@@ -230,9 +230,65 @@ Here is a sample configuration of local logging:
230230
telemetry.logs.local.localsyslog.facility: "7"
231231
```
232232

233-
### Using local syslog logs on Azure Kubernetes Service (AKS)
233+
### Using local syslog logs
234234

235-
When configuring to use localsyslog on Azure Kubernetes Service, you can choose two ways to explore the logs:
235+
#### Configuring gateway to stream logs
236+
237+
When using local syslog as a destination for logs, the runtime needs to allow streaming logs to the destination. For Kubernetes, a volume needs to be mounted which that matches the destination.
238+
239+
Given the following configuration:
240+
241+
```yaml
242+
apiVersion: v1
243+
kind: ConfigMap
244+
metadata:
245+
name: contoso-gateway-environment
246+
data:
247+
config.service.endpoint: "<self-hosted-gateway-management-endpoint>"
248+
telemetry.logs.local: localsyslog
249+
telemetry.logs.local.localsyslog.endpoint: /dev/log
250+
```
251+
252+
You can easily start streaming logs to that local syslog endpoint:
253+
254+
```diff
255+
apiVersion: apps/v1
256+
kind: Deployment
257+
metadata:
258+
name: contoso-deployment
259+
labels:
260+
app: contoso
261+
spec:
262+
replicas: 1
263+
selector:
264+
matchLabels:
265+
app: contoso
266+
template:
267+
metadata:
268+
labels:
269+
app: contoso
270+
spec:
271+
containers:
272+
name: azure-api-management-gateway
273+
image: mcr.microsoft.com/azure-api-management/gateway:2.5.0
274+
imagePullPolicy: IfNotPresent
275+
envFrom:
276+
- configMapRef:
277+
name: contoso-gateway-environment
278+
# ... redacted ...
279+
+ volumeMounts:
280+
+ - mountPath: /dev/log
281+
+ name: logs
282+
+ volumes:
283+
+ - hostPath:
284+
+ path: /dev/log
285+
+ type: Socket
286+
+ name: logs
287+
```
288+
289+
#### Consuming local syslog logs on Azure Kubernetes Service (AKS)
290+
291+
When configuring to use local syslog on Azure Kubernetes Service, you can choose two ways to explore the logs:
236292

237293
- Use [Syslog collection with Container Insights](./../azure-monitor/containers/container-insights-syslog.md)
238294
- Connect & explore logs on the worker nodes
@@ -256,6 +312,6 @@ May 15 05:54:21 aks-agentpool-43853532-vmss000000 apimuser[8]: Timestamp=2023-05
256312

257313
## Next steps
258314

259-
* To learn more about the [observability capabilities of the Azure API Management gateways](observability.md).
260-
* To learn more about the self-hosted gateway, see [Azure API Management self-hosted gateway overview](self-hosted-gateway-overview.md)
261-
* Learn about [configuring and persisting logs in the cloud](how-to-configure-cloud-metrics-logs.md)
315+
* Learn about the [observability capabilities of the Azure API Management gateways](observability.md).
316+
* Learn more about the [Azure API Management self-hosted gateway](self-hosted-gateway-overview.md).
317+
* Learn about [configuring and persisting logs in the cloud](how-to-configure-cloud-metrics-logs.md).

articles/api-management/self-hosted-gateway-settings-reference.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: dlepow
66

77
ms.service: api-management
88
ms.topic: reference
9-
ms.date: 06/28/2022
9+
ms.date: 04/12/2024
1010
ms.author: danlep
1111
---
1212

@@ -29,7 +29,7 @@ Here is an overview of all configuration options:
2929

3030
| Name | Description | Required | Default | Availability |
3131
|----|------|----------|-------------------|-------------------|
32-
| gateway.name | Id of the self-hosted gateway resource. | Yes, when using Microsoft Entra authentication | N/A | v2.3+ |
32+
| gateway.name | ID of the self-hosted gateway resource. | Yes, when using Microsoft Entra authentication | N/A | v2.3+ |
3333
| config.service.endpoint | Configuration endpoint in Azure API Management for the self-hosted gateway. Find this value in the Azure portal under **Gateways** > **Deployment**. | Yes | N/A | v2.0+ |
3434
| config.service.auth | Defines how the self-hosted gateway should authenticate to the Configuration API. Currently gateway token and Microsoft Entra authentication are supported. | Yes | N/A | v2.0+ |
3535
| config.service.auth.azureAd.tenantId | ID of the Microsoft Entra tenant. | Yes, when using Microsoft Entra authentication | N/A | v2.3+ |
@@ -98,7 +98,7 @@ This guidance helps you provide the required information to define how to authen
9898
| telemetry.logs.std.level | Defines the log level of logs sent to standard stream. Value is one of the following options: `all`, `debug`, `info`, `warn`, `error` or `fatal`. | No | `info` | v2.0+ |
9999
| telemetry.logs.std.color | Indication whether or not colored logs should be used in standard stream. | No | `true` | v2.0+ |
100100
| telemetry.logs.local | [Enable local logging](how-to-configure-local-metrics-logs.md#logs). Value is one of the following options: `none`, `auto`, `localsyslog`, `rfc5424`, `journal`, `json` | No | `auto` | v2.0+ |
101-
| telemetry.logs.local.localsyslog.endpoint | localsyslog endpoint. | Yes if `telemetry.logs.local` is set to `localsyslog`; otherwise no. | N/A | v2.0+ |
101+
| telemetry.logs.local.localsyslog.endpoint | localsyslog endpoint. | Yes if `telemetry.logs.local` is set to `localsyslog`; otherwise no. See [local syslog documentation](how-to-configure-local-metrics-logs.md#using-local-syslog-logs) for more details on configuration. | N/A | v2.0+ |
102102
| telemetry.logs.local.localsyslog.facility | Specifies localsyslog [facility code](https://en.wikipedia.org/wiki/Syslog#Facility), for example, `7`. | No | N/A | v2.0+ |
103103
| telemetry.logs.local.rfc5424.endpoint | rfc5424 endpoint. | Yes if `telemetry.logs.local` is set to `rfc5424`; otherwise no. | N/A | v2.0+ |
104104
| telemetry.logs.local.rfc5424.facility | Facility code per [rfc5424](https://tools.ietf.org/html/rfc5424), for example, `7` | No | N/A | v2.0+ |

0 commit comments

Comments
 (0)