Skip to content

Commit 7af0de9

Browse files
authored
Add more metrics and logs to workbook (#630)
* Add more metrics and logs to workbook - This required templating resource names - Extracted resources to hidden params to reduce templating effort - Let me know if you want a link to a working example Required by #418 * Extract workbook logic into a separate module * Use resources directly to retrieve names * Fix main.json after merge
1 parent 9247f62 commit 7af0de9

File tree

7 files changed

+1968
-79
lines changed

7 files changed

+1968
-79
lines changed

infra/app/eventgrid.bicep

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,5 @@ resource eventGridSystemTopicNameBlobEvents 'Microsoft.EventGrid/systemTopics/ev
4141
}
4242
}
4343
}
44+
45+
output name string = eventGridSystemTopic.name

infra/app/function.bicep

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,4 @@ module functionaccess '../core/security/keyvault-access.bicep' = if (useKeyVault
141141
}
142142

143143
output FUNCTION_IDENTITY_PRINCIPAL_ID string = function.outputs.identityPrincipalId
144+
output functionName string = function.outputs.name

infra/app/workbook.bicep

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
param workbookDisplayName string
2+
param location string
3+
param hostingPlanName string
4+
param functionName string
5+
param websiteName string
6+
param adminWebsiteName string
7+
param eventGridSystemTopicName string
8+
param logAnalyticsName string
9+
param azureOpenAIResourceName string
10+
param azureAISearchName string
11+
param storageAccountName string
12+
13+
var wookbookContents = loadTextContent('../workbooks/workbook.json')
14+
var wookbookContentsSubReplaced = replace(wookbookContents, '{subscription-id}', subscription().id)
15+
var wookbookContentsRGReplaced = replace(wookbookContentsSubReplaced, '{resource-group}', resourceGroup().name)
16+
var wookbookContentsAppServicePlanReplaced = replace(wookbookContentsRGReplaced, '{app-service-plan}', hostingPlanName)
17+
var wookbookContentsBackendAppServiceReplaced = replace(wookbookContentsAppServicePlanReplaced, '{backend-app-service}', functionName)
18+
var wookbookContentsWebAppServiceReplaced = replace(wookbookContentsBackendAppServiceReplaced, '{web-app-service}', websiteName)
19+
var wookbookContentsAdminAppServiceReplaced = replace(wookbookContentsWebAppServiceReplaced, '{admin-app-service}', adminWebsiteName)
20+
var wookbookContentsEventGridReplaced = replace(wookbookContentsAdminAppServiceReplaced, '{event-grid}', eventGridSystemTopicName)
21+
var wookbookContentsLogAnalyticsReplaced = replace(wookbookContentsEventGridReplaced, '{log-analytics}', logAnalyticsName)
22+
var wookbookContentsOpenAIReplaced = replace(wookbookContentsLogAnalyticsReplaced, '{open-ai}', azureOpenAIResourceName)
23+
var wookbookContentsAISearchReplaced = replace(wookbookContentsOpenAIReplaced, '{ai-search}', azureAISearchName)
24+
var wookbookContentsStorageAccountReplaced = replace(wookbookContentsAISearchReplaced, '{storage-account}', storageAccountName)
25+
26+
module cwydsa_workbook '../core/monitor/workbook.bicep' = {
27+
name: workbookDisplayName
28+
params: {
29+
workbookId: 'd9bd03af-7ef0-4bac-b91b-b14ee4c7002b'
30+
workbookDisplayName: workbookDisplayName
31+
location: location
32+
workbookContents: wookbookContentsStorageAccountReplaced
33+
}
34+
}

infra/core/monitor/workbook.bicep

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ param workbookContents string
1515

1616
param location string = resourceGroup().location
1717

18-
resource workbookId_resource 'microsoft.insights/workbooks@2023-06-01' = {
18+
resource workbook_resource 'microsoft.insights/workbooks@2023-06-01' = {
1919
name: workbookId
2020
location: location
2121
kind: 'shared'
@@ -26,7 +26,6 @@ resource workbookId_resource 'microsoft.insights/workbooks@2023-06-01' = {
2626
sourceId: workbookSourceId
2727
category: workbookType
2828
}
29-
dependsOn: []
3029
}
3130

32-
output workbookId string = workbookId_resource.id
31+
output workbookId string = workbook_resource.id

infra/main.bicep

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ param hostingPlanSku string = 'B3'
3333
@description('Name of Web App')
3434
param websiteName string = 'web-${resourceToken}'
3535

36+
@description('Name of Admin Web App')
37+
param adminWebsiteName string = '${websiteName}-admin'
38+
3639
@description('Name of Application Insights')
3740
param applicationInsightsName string = 'appinsights-${resourceToken}'
3841

@@ -148,6 +151,9 @@ param contentSafetyName string = 'contentsafety-${resourceToken}'
148151
@description('Azure Speech Service Name')
149152
param speechServiceName string = 'speech-${resourceToken}'
150153

154+
@description('Log Analytics Name')
155+
param logAnalyticsName string = 'la-${resourceToken}'
156+
151157
param newGuidString string = newGuid()
152158
param searchTag string = 'chatwithyourdata-sa'
153159

@@ -440,10 +446,10 @@ module web_docker './app/web.bicep' = if (hostingModel == 'container') {
440446
}
441447

442448
module adminweb './app/adminweb.bicep' = if (hostingModel == 'code') {
443-
name: '${websiteName}-admin'
449+
name: adminWebsiteName
444450
scope: rg
445451
params: {
446-
name: '${websiteName}-admin'
452+
name: adminWebsiteName
447453
location: location
448454
tags: union(tags, { 'azd-service-name': 'adminweb' })
449455
runtimeName: 'python'
@@ -501,10 +507,10 @@ module adminweb './app/adminweb.bicep' = if (hostingModel == 'code') {
501507
}
502508

503509
module adminweb_docker './app/adminweb.bicep' = if (hostingModel == 'container') {
504-
name: '${websiteName}-admin-docker'
510+
name: '${adminWebsiteName}-docker'
505511
scope: rg
506512
params: {
507-
name: '${websiteName}-admin-docker'
513+
name: '${adminWebsiteName}-docker'
508514
location: location
509515
tags: union(tags, { 'azd-service-name': 'adminweb-docker' })
510516
dockerFullImageName: 'fruoccopublic.azurecr.io/rag-adminwebapp'
@@ -569,19 +575,26 @@ module monitoring './core/monitor/monitoring.bicep' = {
569575
tags: {
570576
'hidden-link:${resourceId('Microsoft.Web/sites', applicationInsightsName)}': 'Resource'
571577
}
572-
logAnalyticsName: 'la-${resourceToken}'
578+
logAnalyticsName: logAnalyticsName
573579
applicationInsightsDashboardName: 'dash-${applicationInsightsName}'
574580
}
575581
}
576582

577-
module workbook './core/monitor/workbook.bicep' = {
578-
name: workbookDisplayName
583+
module workbook './app/workbook.bicep' = {
584+
name: 'workbook'
579585
scope: rg
580586
params: {
581-
workbookId: 'd9bd03af-7ef0-4bac-b91b-b14ee4c7002b'
582587
workbookDisplayName: workbookDisplayName
583588
location: location
584-
workbookContents: loadTextContent('workbooks/workbook.json')
589+
hostingPlanName: hostingplan.outputs.name
590+
functionName: hostingModel == 'container' ? function_docker.outputs.functionName : function.outputs.functionName
591+
websiteName: hostingModel == 'container' ? web_docker.outputs.FRONTEND_API_NAME : web.outputs.FRONTEND_API_NAME
592+
adminWebsiteName: hostingModel == 'container' ? adminweb_docker.outputs.WEBSITE_ADMIN_NAME : adminweb.outputs.WEBSITE_ADMIN_NAME
593+
eventGridSystemTopicName: eventgrid.outputs.name
594+
logAnalyticsName: monitoring.outputs.logAnalyticsWorkspaceName
595+
azureOpenAIResourceName: openai.outputs.name
596+
azureAISearchName: search.outputs.name
597+
storageAccountName: storage.outputs.name
585598
}
586599
}
587600

infra/main.json

Lines changed: 207 additions & 66 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)