ps/Modules/Alkami.DevOps.Installation/Public/Get-MicroserviceNewRelicMapping.ps1

43 lines
1.8 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
function Get-MicroserviceNewRelicMapping {
<#
.SYNOPSIS
Determine which microservices should report to New Relic. Utilized by Classify-Packages.
.PARAMETER BuildCheckoutDirectory
Directory where the code is checked out by TC.
.PARAMETER PackageMetadata
Packages object to populate.
#>
[CmdletBinding()]
param(
$BuildCheckoutDirectory,
[PSObject]$PackageMetadata
)
# For each of the microservice packages, figure out if they will have new relic enabled or disabled.
# Build out the config checkout directory.
$configCheckoutDirectory = (Join-Path $BuildCheckoutDirectory "config-defaults")
if($PackageMetadata.DisableMicroserviceNewRelic) {
Write-Host "Now determining which microservices need New Relic Enabled/Disabled"
# Read in the package names to leave new-relic enabled for.
$newRelicServicePath = (Join-Path $configCheckoutDirectory "NewRelicMicroServices/NewRelicMicroServices.txt")
if(Test-Path $newRelicServicePath) {
$newRelicMicroservicesToLeaveEnabled = [array](Get-Content -Path $newRelicServicePath)
} else {
Write-Warning "Could not find NewRelicMicroServices.txt to leave new relic enabled. Assuming no microservices should have NewRelic enabled."
$newRelicMicroservicesToLeaveEnabled = $null;
}
foreach($package in $PackageMetadata.AppPackagesToInstall) {
if($package.IsMicroservice) {
$enableNewRelic = ($newRelicMicroservicesToLeaveEnabled -contains $package.Name)
Add-Member -InputObject $package -NotePropertyName "EnableNewRelic" -NotePropertyValue $enableNewRelic -Force
}
}
} else {
Write-Host "New Relic will be left enabled on microservices."
}
return $PackageMetadata
}