Skip to content

Onboard arcade-validation to OpenTelemetry Audit (OTel)#5500

Open
haruna99 wants to merge 1 commit intomainfrom
haruna/otel-migration
Open

Onboard arcade-validation to OpenTelemetry Audit (OTel)#5500
haruna99 wants to merge 1 commit intomainfrom
haruna/otel-migration

Conversation

@haruna99
Copy link
Copy Markdown

@haruna99 haruna99 commented Apr 9, 2026

Work Item: https://dev.azure.com/dnceng/internal/_workitems/edit/10352

Add OTel Audit SDK instrumentation for privileged operations per S360 Service Layer Auditing requirements

Changes:

  • Add OpenTelemetry.Audit.Geneva SDK (v2.5.2) with AzureGenevaMonitoring NuGet feed
  • Create AuditHelper.cs with LogControlPlane/LogDataPlane wrappers, auto-detected dual Service Tree IDs (GitHub + AzDO),
    GetLocalIpAddress helper, and Golden Schema field population
  • Create eng/validation/audit-logging.ps1 PowerShell module with typed helpers for channel promotion, branch ops, build invocation, and build retention
  • Instrument validation scripts: update-channel, test-publishing, build-arcadewithrepo, remove-oldbranches, validation-functions, create-baridtag
  • Instrument C# test code: signing certificate selection/override, strong name signing config, process execution, directory operations

Add OTel Audit SDK instrumentation for privileged operations per S360 Service Layer Auditing requirements
@haruna99 haruna99 self-assigned this Apr 9, 2026
$ci = $true
. $PSScriptRoot\..\common\tools.ps1
. $PSScriptRoot\..\common\pipeline-logging-functions.ps1
. $PSScriptRoot\..\common\audit-logging.ps1
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

audit-logging.ps1 is in the validation folder, not common.

@missymessa
Copy link
Copy Markdown
Member

I'd run this branch through https://dnceng.visualstudio.com/internal/_build?definitionId=282 to make sure it does what you expect it to.

string round0FilePath = Path.Combine(builder.TestRepoRoot, "artifacts", "tmp", "Release", "Signing", "Round0-Sign.proj");
string round0ProjectText = File.ReadAllText(round0FilePath);
string expectedCert = useDotNetCert.GetValueOrDefault() ? DotNetCertificate : MicrosoftCertificate;
AuditHelper.LogControlPlane(
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you need to initialize AuditHelper?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants