@@ -41,10 +41,66 @@ in OpenTelemetry Collector pipeline (for example, using `transformprocessor`) or
4141| ` durationMs ` | ` azure.operation.duration ` | Log Attribute |
4242| ` callerIpAddress ` | ` network.peer.address ` | Log Attribute |
4343| ` correlationId ` | ` azure.correlation_id ` | Log Attribute |
44- | ` identity ` | ` azure.identity ` | Log Attribute |
44+ | ` identity ` | see [ Identity Field ] ( #identity-field ) below | Log Attribute |
4545| ` Level ` | ` log.SeverityNumber ` | Log |
4646| ` properties ` | see mapping for each Category below | mixed |
4747
48+ ### Identity Field
49+
50+ The ` identity ` field has different structures across Azure log categories, so identity parsing is handled per-category:
51+
52+ - ** Activity Logs** : Specific known fields are extracted into flat, semantically meaningful attributes (see below)
53+ - ** Storage Logs** : Stored as a nested map under ` azure.identity ` (different structure with authorization as an array)
54+ - ** Unknown/Generic categories** : Stored as a nested map under ` azure.identity `
55+
56+ Only known useful fields are extracted to minimize the risk of accidentally including sensitive data.
57+
58+ #### Activity Log Identity
59+
60+ Activity Logs contain caller identity information with JWT claims from Azure AD/Entra ID tokens and authorization details.
61+
62+ ##### Authorization Fields
63+
64+ | Azure identity Field | OpenTelemetry | OpenTelemetry Scope |
65+ | ---------------------| ---------------| ---------------------|
66+ | ` identity.authorization.scope ` | ` azure.identity.authorization.scope ` | Log Attribute |
67+ | ` identity.authorization.action ` | ` azure.identity.authorization.action ` | Log Attribute |
68+ | ` identity.authorization.evidence.role ` | ` azure.identity.authorization.evidence.role ` | Log Attribute |
69+ | ` identity.authorization.evidence.roleAssignmentScope ` | ` azure.identity.authorization.evidence.role.assignment.scope ` | Log Attribute |
70+ | ` identity.authorization.evidence.roleAssignmentId ` | ` azure.identity.authorization.evidence.role.assignment.id ` | Log Attribute |
71+ | ` identity.authorization.evidence.roleDefinitionId ` | ` azure.identity.authorization.evidence.role.definition.id ` | Log Attribute |
72+ | ` identity.authorization.evidence.principalId ` | ` azure.identity.authorization.evidence.principal.id ` | Log Attribute |
73+ | ` identity.authorization.evidence.principalType ` | ` azure.identity.authorization.evidence.principal.type ` | Log Attribute |
74+
75+ ##### Claims Fields
76+
77+ Unix timestamps (` exp ` , ` nbf ` , ` iat ` ) are converted to RFC3339 format.
78+
79+ | Azure identity.claims Field | OpenTelemetry | OpenTelemetry Scope |
80+ | ----------------------------| ---------------| ---------------------|
81+ | ` iss ` | ` azure.identity.issuer ` | Log Attribute |
82+ | ` sub ` | ` azure.identity.subject ` | Log Attribute |
83+ | ` aud ` | ` azure.identity.audience ` | Log Attribute |
84+ | ` exp ` | ` azure.identity.not_after ` | Log Attribute |
85+ | ` nbf ` | ` azure.identity.not_before ` | Log Attribute |
86+ | ` iat ` | ` azure.identity.created ` | Log Attribute |
87+ | ` http://schemas.microsoft.com/identity/claims/scope ` | ` azure.identity.scope ` | Log Attribute |
88+ | ` idtyp ` | ` azure.identity.type ` | Log Attribute |
89+ | ` appid ` | ` azure.identity.application.id ` | Log Attribute |
90+ | ` http://schemas.microsoft.com/claims/authnmethodsreferences ` | ` azure.identity.auth.methods.references ` | Log Attribute |
91+ | ` http://schemas.microsoft.com/identity/claims/identityprovider ` | ` azure.identity.provider ` | Log Attribute |
92+ | ` http://schemas.microsoft.com/identity/claims/objectidentifier ` | ` azure.identity.identifier.object ` | Log Attribute |
93+ | ` http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier ` | ` user.id ` | Log Attribute |
94+ | ` http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress ` | ` user.email ` | Log Attribute |
95+
96+ #### Storage Log Identity
97+
98+ Storage Logs have a different identity structure containing authorization decisions as an array, token information, and requester details. The entire identity object is stored as a nested map under ` azure.identity ` .
99+
100+ #### Unknown/Generic Categories
101+
102+ For log categories where the identity structure is not known, the entire identity object is stored as a nested map under ` azure.identity ` to preserve all data.
103+
48104## Application Gateway
49105
50106### Application Gateway Access Logs (both v1 and v2)
@@ -510,18 +566,6 @@ in OpenTelemetry Collector pipeline (for example, using `transformprocessor`) or
510566| ` roleInstance ` | ` service.instance.id ` | Resource Attribute |
511567| - | ` faas.invoked_provider ` =` azure ` | Log Attribute |
512568
513- ## Recommendation Logs
514-
515- | Azure "properties" Field | OpenTelemetry | OpenTelemetry Scope |
516- | -------------------------------| ---------------------------------------| ---------------------|
517- | ` recommendationSchemaVersion ` | ` azure.recommendation.schema_version ` | Log Attribute |
518- | ` recommendationCategory ` | ` azure.recommendation.category ` | Log Attribute |
519- | ` recommendationImpact ` | ` azure.recommendation.impact ` | Log Attribute |
520- | ` recommendationName ` | ` azure.recommendation.name ` | Log Attribute |
521- | ` recommendationResourceLink ` | ` azure.recommendation.link ` | Log Attribute |
522- | ` recommendationType ` | ` azure.recommendation.type ` | Log Attribute |
523- | ` recommendationRisk ` | ` azure.recommendation.risk ` | Log Attribute |
524-
525569## Storage Blob Logs (StorageRead, StorageWrite, StorageDelete)
526570
527571| Azure "properties" Field | OpenTelemetry | OpenTelemetry Scope |
@@ -543,3 +587,112 @@ in OpenTelemetry Collector pipeline (for example, using `transformprocessor`) or
543587| ` tlsVersion ` | ` tls.protocol.name ` + ` tls.protocol.version ` . If unparsable - ` tls.protocol.original ` | Log Attribute |
544588| ` objectKey ` | ` azure.storage.object.key ` | Log Attribute |
545589| ` sourceAccessTier ` | ` azure.storage.source.access_tier ` | Log Attribute |
590+
591+ ## Activity Logs
592+
593+ Activity Logs are a type of Azure platform log that provides insight into subscription-level events. The following categories are supported:
594+
595+ ### Administrative
596+
597+ | Azure "properties" Field | OpenTelemetry | OpenTelemetry Scope |
598+ | ---------------------------| -------------------------------------| ---------------------|
599+ | ` entity ` | ` azure.administrative.entity ` | Log Attribute |
600+ | ` message ` | ` azure.administrative.message ` | Log Attribute |
601+ | ` hierarchy ` | ` azure.administrative.hierarchy ` | Log Attribute |
602+
603+ ### Alert
604+
605+ | Azure "properties" Field | OpenTelemetry | OpenTelemetry Scope |
606+ | ---------------------------| -------------------------------------| ---------------------|
607+ | ` webHookUri ` | ` azure.alert.webhook.uri ` | Log Attribute |
608+ | ` RuleUri ` | ` azure.alert.rule.uri ` | Log Attribute |
609+ | ` RuleName ` | ` azure.alert.rule.name ` | Log Attribute |
610+ | ` RuleDescription ` | ` azure.alert.rule.description ` | Log Attribute |
611+ | ` Threshold ` | ` azure.alert.threshold ` | Log Attribute |
612+ | ` WindowSizeInMinutes ` | ` azure.alert.window_size_minutes ` | Log Attribute |
613+ | ` Aggregation ` | ` azure.alert.aggregation ` | Log Attribute |
614+ | ` Operator ` | ` azure.alert.operator ` | Log Attribute |
615+ | ` MetricName ` | ` azure.alert.metric.name ` | Log Attribute |
616+ | ` MetricUnit ` | ` azure.alert.metric.unit ` | Log Attribute |
617+
618+ ### Autoscale
619+
620+ | Azure "properties" Field | OpenTelemetry | OpenTelemetry Scope |
621+ | ---------------------------| ---------------------------------------------| ---------------------|
622+ | ` Description ` | ` azure.autoscale.description ` | Log Attribute |
623+ | ` ResourceName ` | ` azure.autoscale.resource.name ` | Log Attribute |
624+ | ` OldInstancesCount ` | ` azure.autoscale.instances.previous_count ` | Log Attribute |
625+ | ` NewInstancesCount ` | ` azure.autoscale.instances.count ` | Log Attribute |
626+ | ` LastScaleActionTime ` | ` azure.autoscale.resource.last_scale ` | Log Attribute |
627+
628+ ### Security
629+
630+ | Azure "properties" Field | OpenTelemetry | OpenTelemetry Scope |
631+ | ---------------------------| -------------------------------------| ---------------------|
632+ | ` commandLine ` | ` process.command_line ` | Log Attribute |
633+ | ` processName ` | ` process.executable.path ` | Log Attribute |
634+ | ` userName ` | ` process.owner ` | Log Attribute |
635+ | ` UserSID ` | ` enduser.id ` | Log Attribute |
636+ | ` processId ` | ` process.pid ` | Log Attribute |
637+ | ` parentProcess id ` | ` process.parent_pid ` | Log Attribute |
638+ | ` accountLogonId ` | ` azure.security.account_logon_id ` | Log Attribute |
639+ | ` domainName ` | ` azure.security.domain_name ` | Log Attribute |
640+ | ` ActionTaken ` | ` azure.security.action_taken ` | Log Attribute |
641+ | ` Severity ` | ` azure.security.severity ` | Log Attribute |
642+
643+ ### Policy
644+
645+ | Azure "properties" Field | OpenTelemetry | OpenTelemetry Scope |
646+ | ---------------------------| -------------------------------------| ---------------------|
647+ | ` isComplianceCheck ` | ` azure.policy.compliance_check ` | Log Attribute |
648+ | ` resourceLocation ` | ` azure.location ` | Log Attribute |
649+ | ` ancestors ` | ` azure.policy.ancestors ` | Log Attribute |
650+ | ` hierarchy ` | ` azure.policy.hierarchy ` | Log Attribute |
651+ | ` policies ` | ` azure.policy.policies ` (parsed as structured array) | Log Attribute |
652+
653+ ### Recommendation
654+
655+ | Azure "properties" Field | OpenTelemetry | OpenTelemetry Scope |
656+ | -------------------------------| ---------------------------------------| ---------------------|
657+ | ` recommendationSchemaVersion ` | ` azure.recommendation.schema_version ` | Log Attribute |
658+ | ` recommendationCategory ` | ` azure.recommendation.category ` | Log Attribute |
659+ | ` recommendationImpact ` | ` azure.recommendation.impact ` | Log Attribute |
660+ | ` recommendationName ` | ` azure.recommendation.name ` | Log Attribute |
661+ | ` recommendationResourceLink ` | ` azure.recommendation.link ` | Log Attribute |
662+ | ` recommendationType ` | ` azure.recommendation.type ` | Log Attribute |
663+ | ` recommendationRisk ` | ` azure.recommendation.risk ` | Log Attribute |
664+
665+ ### Service Health
666+
667+ | Azure "properties" Field | OpenTelemetry | OpenTelemetry Scope |
668+ | ---------------------------| ---------------------------------------------| ---------------------|
669+ | ` title ` | ` azure.servicehealth.title ` | Log Attribute |
670+ | ` service ` | ` azure.servicehealth.service ` | Log Attribute |
671+ | ` region ` | ` azure.servicehealth.region ` | Log Attribute |
672+ | ` communication ` | ` azure.servicehealth.communication.body ` | Log Attribute |
673+ | ` communicationId ` | ` azure.servicehealth.communication.id ` | Log Attribute |
674+ | ` incidentType ` | ` azure.servicehealth.incident.type ` | Log Attribute |
675+ | ` trackingId ` | ` azure.servicehealth.tracking.id ` | Log Attribute |
676+ | ` impactStartTime ` | ` azure.servicehealth.impact.start ` | Log Attribute |
677+ | ` impactMitigationTime ` | ` azure.servicehealth.impact.mitigation ` | Log Attribute |
678+ | ` impactedServices ` | ` azure.servicehealth.impact.services ` (parsed as structured array) | Log Attribute |
679+ | ` impactType ` | ` azure.servicehealth.impact.type ` | Log Attribute |
680+ | ` impactCategory ` | ` azure.servicehealth.impact.category ` | Log Attribute |
681+ | ` defaultLanguageTitle ` | ` azure.servicehealth.default_language.title ` | Log Attribute |
682+ | ` defaultLanguageContent ` | ` azure.servicehealth.default_language.content ` | Log Attribute |
683+ | ` stage ` | ` azure.servicehealth.state ` | Log Attribute |
684+ | ` maintenanceId ` | ` azure.servicehealth.maintenance.id ` | Log Attribute |
685+ | ` maintenanceType ` | ` azure.servicehealth.maintenance.type ` | Log Attribute |
686+ | ` isHIR ` | ` azure.servicehealth.is_hir ` | Log Attribute |
687+ | ` IsSynthetic ` | ` azure.servicehealth.is_synthetic ` | Log Attribute |
688+
689+ ### Resource Health
690+
691+ | Azure "properties" Field | OpenTelemetry | OpenTelemetry Scope |
692+ | ---------------------------| ---------------------------------------------| ---------------------|
693+ | ` title ` | ` azure.resourcehealth.title ` | Log Attribute |
694+ | ` details ` | ` azure.resourcehealth.details ` | Log Attribute |
695+ | ` currentHealthStatus ` | ` azure.resourcehealth.state ` | Log Attribute |
696+ | ` previousHealthStatus ` | ` azure.resourcehealth.previous_state ` | Log Attribute |
697+ | ` type ` | ` azure.resourcehealth.type ` | Log Attribute |
698+ | ` cause ` | ` azure.resourcehealth.cause ` | Log Attribute |
0 commit comments