Skip to content

Commit f9a0874

Browse files
Merge pull request #303138 from MicrosoftDocs/main
Auto Publish – main to live - 2025-07-22 22:00 UTC
2 parents 4c8f6b5 + 2140205 commit f9a0874

File tree

40 files changed

+976
-660
lines changed

40 files changed

+976
-660
lines changed

articles/application-gateway/for-containers/migrate-from-agic-to-agc.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: application gateway
55
author: mbender-ms
66
ms.service: azure-appgw-for-containers
77
ms.topic: concept-article
8-
ms.date: 10/28/2024
8+
ms.date: 7/22/2025
99
ms.author: mbender
1010
# Customer intent: As a Kubernetes administrator, I want to migrate services from Application Gateway Ingress Controller to Application Gateway for Containers, so that I can leverage improved performance, seamless scaling, and modern API compatibility without experiencing downtime during the transition.
1111
---
@@ -43,7 +43,6 @@ Prior to migration, it is important to identify any dependencies on Application
4343

4444
Such dependencies include:
4545

46-
- Web Application Firewall (WAF)
4746
- Private IP
4847
- Ports other than 80 and 443
4948
- Configurable request timeout values
@@ -65,7 +64,7 @@ Here's a summarized list of AGIC annotations and whether Application Gateway for
6564
| [Request timeout](migrate-from-agic-to-agc.md#request-timeout) | appgw.ingress.kubernetes.io/request-timeout | Non-configurable | Non-configurable |
6665
| [Frontend port other than 80 and 443](migrate-from-agic-to-agc.md#frontend-port-override) | appgw.ingress.kubernetes.io/override-frontend-port | Not supported | Not supported |
6766
| [Private frontend](migrate-from-agic-to-agc.md#private-frontend) | appgw.ingress.kubernetes.io/use-private-ip | Not supported | Not supported |
68-
| [WAF](migrate-from-agic-to-agc.md#waf) | appgw.ingress.kubernetes.io/waf-policy-for-path | Not supported | Not supported |
67+
| [Web Application Firewall (WAF)](migrate-from-agic-to-agc.md#waf) | appgw.ingress.kubernetes.io/waf-policy-for-path | [Web Application Firewall (WAF) (Preview)](web-application-firewall.md) | Not supported |
6968
| [Custom health probe](migrate-from-agic-to-agc.md#custom-health-probes) | appgw.ingress.kubernetes.io/health-probe-hostname | [HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy) | [HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy) |
7069
| [Custom health probe](migrate-from-agic-to-agc.md#custom-health-probes) | appgw.ingress.kubernetes.io/health-probe-port | [HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy) | [HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy) |
7170
| [Custom health probe](migrate-from-agic-to-agc.md#custom-health-probes) | appgw.ingress.kubernetes.io/health-probe-path | [HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy) | [HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy) |
@@ -298,7 +297,9 @@ AGIC annotation
298297
299298
Application Gateway for Containers implementation
300299
301-
WAF isn't supported by Application Gateway for Containers.
300+
#### Web Application Firewall Policy
301+
302+
The equivalent is a new WebApplicationFirewallPolicy resource with a reference to a defined resource or resource section. More details can be found in the [Web Application Firewall](web-application-firewall.md) document.
302303
303304
### Custom Health probes
304305

articles/azure-app-configuration/howto-telemetry-javascript.md

Lines changed: 4 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -91,82 +91,12 @@ In this tutorial, you use telemetry in your Node.js application to track feature
9191
export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'
9292
```
9393
94-
1. Run the application, [see step 4 of Use variant feature flags](./howto-variant-feature-flags-javascript.md#run-the-application).
95-
96-
1. Create 10 different users and log into the application. As you log in with each user, you get a different message variant for some of them. ~50% of the time you get no message. 25% of the time you get the message "Hello!" and 25% of the time you get "I hope this makes your day!"
97-
98-
1. With some of the users click the **Like** button to trigger the telemetry event.
99-
100-
> [!div class="mx-imgBorder"]
101-
> ![Screenshot of the application with like button clicked.](./media/howto-telemetry-javascript/like-button.png)
102-
103-
1. Open your Application Insights resource in the Azure portal and select **Logs** under **Monitoring**. In the query window, run the following query to see the telemetry events:
104-
105-
```kusto
106-
// Step 1: Get distinct users and their Variant from FeatureEvaluation
107-
let evaluated_users =
108-
customEvents
109-
| where name == "FeatureEvaluation"
110-
| extend TargetingId = tostring(customDimensions.TargetingId),
111-
Variant = tostring(customDimensions.Variant)
112-
| summarize Variant = any(Variant) by TargetingId;
113-
114-
// Step 2: Get distinct users who emitted a "Like"
115-
let liked_users =
116-
customEvents
117-
| where name == "Liked"
118-
| extend TargetingId = tostring(customDimensions.TargetingId)
119-
| summarize by TargetingId;
120-
121-
// Step 3: Join them to get only the evaluated users who also liked
122-
let hearted_users =
123-
evaluated_users
124-
| join kind=inner (liked_users) on TargetingId
125-
| summarize HeartedUsers = dcount(TargetingId) by Variant;
126-
127-
// Step 4: Total evaluated users per variant
128-
let total_users =
129-
evaluated_users
130-
| summarize TotalUsers = dcount(TargetingId) by Variant;
131-
132-
// Step 5: Combine results
133-
let combined_data =
134-
total_users
135-
| join kind=leftouter (hearted_users) on Variant
136-
| extend HeartedUsers = coalesce(HeartedUsers, 0)
137-
| extend PercentageHearted = strcat(round(HeartedUsers * 100.0 / TotalUsers, 1), "%")
138-
| project Variant, TotalUsers, HeartedUsers, PercentageHearted;
139-
140-
// Step 6: Add total row
141-
let total_sum =
142-
combined_data
143-
| summarize
144-
TotalUsers = sum(TotalUsers),
145-
HeartedUsers = sum(HeartedUsers)
146-
| extend
147-
Variant = "All",
148-
PercentageHearted = strcat(round(HeartedUsers * 100.0 / TotalUsers, 1), "%")
149-
| project Variant, TotalUsers, HeartedUsers, PercentageHearted;
150-
151-
// Step 7: Output
152-
combined_data
153-
| union (total_sum)
154-
```
155-
156-
> [!div class="mx-imgBorder"]
157-
> ![Screenshot of Application Insights showing the results table with four rows; All, Simple, Long, and None with their respective user counts and percentages.](./media/howto-telemetry-javascript/telemetry-results.png)
158-
159-
You see one "FeatureEvaluation" event for each time the quote page was loaded and one "Liked" event for each time the like button was clicked. The "FeatureEvaluation" event has a custom property called `FeatureName` with the name of the feature flag that was evaluated. Both events have a custom property called `TargetingId` with the name of the user that liked the quote.
94+
## Collect telemetry
16095
161-
For more information about the "FeatureEvaluation" event, go to the [Feature flag telemetry reference](./feature-flag-telemetry-reference.md)
96+
Deploy your application to begin collecting telemetry from your users. To test its functionality, you can simulate user activity by creating many test users. Each user will experience a different variant of greeting messages, and they can interact with the application by clicking the heart button to like a quote. As your user base grows, you can monitor the increasing volume of telemetry data collected in Azure App Configuration. Additionally, you can drill down into the data to analyze how each variant of the feature flag influences user behavior.
97+
- [Review telemetry results in App Configuration](./howto-telemetry.md#review-telemetry-results-in-azure-app-configuration).
16298
16399
## Additional resources
164100
165101
- [Quote of the Day sample](https://github.com/Azure-Samples/quote-of-the-day-javascript)
166-
167-
## Next steps
168-
169-
For the full feature rundown of the JavaScript feature management library, refer to the following document.
170-
171-
> [!div class="nextstepaction"]
172-
> [JavaScript Feature Management](./feature-management-javascript-reference.md)
102+
- For the full feature rundown of the JavaScript feature management library you can refer to the [JavaScript Feature Management reference documentation](./feature-management-javascript-reference.md)

articles/azure-app-configuration/howto-telemetry-python.md

Lines changed: 3 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -105,70 +105,10 @@ In this tutorial, you use telemetry in your Python application to track feature
105105
export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'
106106
```
107107
108-
1. Run the application, [see step 2 of Use variant feature flags](./howto-variant-feature-flags-python.md#build-and-run-the-app).
109-
110-
1. Create 10 different users and log into the application. As you log in with each user, you get a different message variant for some of them. ~50% of the time you get no message. 25% of the time you get the message "Hello!" and 25% of the time you get "I hope this makes your day!".
111-
112-
1. With some of the users select the **Like** button to trigger the telemetry event.
113-
114-
1. Open your Application Insights resource in the Azure portal and select **Logs** under **Monitoring**. In the query window, run the following query to see the telemetry events:
115-
116-
```kusto
117-
// Step 1: Get distinct users and their Variant from FeatureEvaluation
118-
let evaluated_users =
119-
customEvents
120-
| where name == "FeatureEvaluation"
121-
| extend TargetingId = tostring(customDimensions.TargetingId),
122-
Variant = tostring(customDimensions.Variant)
123-
| summarize Variant = any(Variant) by TargetingId;
124-
125-
// Step 2: Get distinct users who emitted a "Like"
126-
let liked_users =
127-
customEvents
128-
| where name == "Liked"
129-
| extend TargetingId = tostring(customDimensions.TargetingId)
130-
| summarize by TargetingId;
131-
132-
// Step 3: Join them to get only the evaluated users who also liked
133-
let hearted_users =
134-
evaluated_users
135-
| join kind=inner (liked_users) on TargetingId
136-
| summarize HeartedUsers = dcount(TargetingId) by Variant;
137-
138-
// Step 4: Total evaluated users per variant
139-
let total_users =
140-
evaluated_users
141-
| summarize TotalUsers = dcount(TargetingId) by Variant;
142-
143-
// Step 5: Combine results
144-
let combined_data =
145-
total_users
146-
| join kind=leftouter (hearted_users) on Variant
147-
| extend HeartedUsers = coalesce(HeartedUsers, 0)
148-
| extend PercentageHearted = strcat(round(HeartedUsers * 100.0 / TotalUsers, 1), "%")
149-
| project Variant, TotalUsers, HeartedUsers, PercentageHearted;
150-
151-
// Step 6: Add total row
152-
let total_sum =
153-
combined_data
154-
| summarize
155-
TotalUsers = sum(TotalUsers),
156-
HeartedUsers = sum(HeartedUsers)
157-
| extend
158-
Variant = "All",
159-
PercentageHearted = strcat(round(HeartedUsers * 100.0 / TotalUsers, 1), "%")
160-
| project Variant, TotalUsers, HeartedUsers, PercentageHearted;
161-
162-
// Step 7: Output
163-
combined_data
164-
| union (total_sum)
108+
## Collect telemetry
165109
166-
```
167-
168-
> [!div class="mx-imgBorder"]
169-
> ![Screenshot of Application Insights showing the results table with four rows; All, Simple, Long, and None with their respective user counts and percentages.](./media/howto-telemetry-python/telemetry-results.png)
170-
171-
You see one "FeatureEvaluation" for each time the quote page was loaded and one "Liked" event for each time the like button was clicked. The "FeatureEvaluation" event have a custom property called `FeatureName` with the name of the feature flag that was evaluated. Both events have a custom property called `TargetingId` with the name of the user that liked the quote.
110+
Deploy your application to begin collecting telemetry from your users. To test its functionality, you can simulate user activity by creating many test users. Each user will experience a different variant of greeting messages, and they can interact with the application by clicking the heart button to like a quote. As your user base grows, you can monitor the increasing volume of telemetry data collected in Azure App Configuration. Additionally, you can drill down into the data to analyze how each variant of the feature flag influences user behavior.
111+
- [Review telemetry results in App Configuration](./howto-telemetry.md#review-telemetry-results-in-azure-app-configuration).
172112
173113
## Additional resources
174114
- [Flask Quote of the Day sample](https://github.com/Azure-Samples/quote-of-the-day-python)

0 commit comments

Comments
 (0)