The azure-native:impact:WorkloadImpact resource, part of the Pulumi Azure Native provider, records workload impact events for Azure resources: operation failures, connectivity issues, availability problems, and performance degradation. This guide focuses on three capabilities: ARM operation failure tracking, network connectivity impact reporting, and availability and performance issue documentation.
Impact records reference existing Azure resources and may link to external incident tracking systems like Jira. The examples are intentionally small. Combine them with your own monitoring infrastructure and incident management workflows.
Report Azure Resource Manager operation failures
When Azure control plane operations fail, teams track these failures for troubleshooting and correlation with support cases.
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const workloadImpact = new azure_native.impact.WorkloadImpact("workloadImpact", {
properties: {
armCorrelationIds: ["00000000-0000-0000-0000-000000000000"],
clientIncidentDetails: {
clientIncidentId: "AA123",
clientIncidentSource: azure_native.impact.IncidentSource.Jira,
},
impactCategory: "ArmOperation",
impactDescription: "deletion of resource failed",
impactedResourceId: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
startDateTime: "2022-06-15T05:59:46.6517821Z",
workload: {
context: "webapp/scenario1",
toolset: azure_native.impact.Toolset.Other,
},
},
workloadImpactName: "impact-002",
});
import pulumi
import pulumi_azure_native as azure_native
workload_impact = azure_native.impact.WorkloadImpact("workloadImpact",
properties={
"arm_correlation_ids": ["00000000-0000-0000-0000-000000000000"],
"client_incident_details": {
"client_incident_id": "AA123",
"client_incident_source": azure_native.impact.IncidentSource.JIRA,
},
"impact_category": "ArmOperation",
"impact_description": "deletion of resource failed",
"impacted_resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
"start_date_time": "2022-06-15T05:59:46.6517821Z",
"workload": {
"context": "webapp/scenario1",
"toolset": azure_native.impact.Toolset.OTHER,
},
},
workload_impact_name="impact-002")
package main
import (
impact "github.com/pulumi/pulumi-azure-native-sdk/impact/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := impact.NewWorkloadImpact(ctx, "workloadImpact", &impact.WorkloadImpactArgs{
Properties: &impact.WorkloadImpactPropertiesArgs{
ArmCorrelationIds: pulumi.StringArray{
pulumi.String("00000000-0000-0000-0000-000000000000"),
},
ClientIncidentDetails: &impact.ClientIncidentDetailsArgs{
ClientIncidentId: pulumi.String("AA123"),
ClientIncidentSource: pulumi.String(impact.IncidentSourceJira),
},
ImpactCategory: pulumi.String("ArmOperation"),
ImpactDescription: pulumi.String("deletion of resource failed"),
ImpactedResourceId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext"),
StartDateTime: pulumi.String("2022-06-15T05:59:46.6517821Z"),
Workload: &impact.WorkloadArgs{
Context: pulumi.String("webapp/scenario1"),
Toolset: pulumi.String(impact.ToolsetOther),
},
},
WorkloadImpactName: pulumi.String("impact-002"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var workloadImpact = new AzureNative.Impact.WorkloadImpact("workloadImpact", new()
{
Properties = new AzureNative.Impact.Inputs.WorkloadImpactPropertiesArgs
{
ArmCorrelationIds = new[]
{
"00000000-0000-0000-0000-000000000000",
},
ClientIncidentDetails = new AzureNative.Impact.Inputs.ClientIncidentDetailsArgs
{
ClientIncidentId = "AA123",
ClientIncidentSource = AzureNative.Impact.IncidentSource.Jira,
},
ImpactCategory = "ArmOperation",
ImpactDescription = "deletion of resource failed",
ImpactedResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
StartDateTime = "2022-06-15T05:59:46.6517821Z",
Workload = new AzureNative.Impact.Inputs.WorkloadArgs
{
Context = "webapp/scenario1",
Toolset = AzureNative.Impact.Toolset.Other,
},
},
WorkloadImpactName = "impact-002",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.impact.WorkloadImpact;
import com.pulumi.azurenative.impact.WorkloadImpactArgs;
import com.pulumi.azurenative.impact.inputs.WorkloadImpactPropertiesArgs;
import com.pulumi.azurenative.impact.inputs.ClientIncidentDetailsArgs;
import com.pulumi.azurenative.impact.inputs.WorkloadArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var workloadImpact = new WorkloadImpact("workloadImpact", WorkloadImpactArgs.builder()
.properties(WorkloadImpactPropertiesArgs.builder()
.armCorrelationIds("00000000-0000-0000-0000-000000000000")
.clientIncidentDetails(ClientIncidentDetailsArgs.builder()
.clientIncidentId("AA123")
.clientIncidentSource("Jira")
.build())
.impactCategory("ArmOperation")
.impactDescription("deletion of resource failed")
.impactedResourceId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext")
.startDateTime("2022-06-15T05:59:46.6517821Z")
.workload(WorkloadArgs.builder()
.context("webapp/scenario1")
.toolset("Other")
.build())
.build())
.workloadImpactName("impact-002")
.build());
}
}
resources:
workloadImpact:
type: azure-native:impact:WorkloadImpact
properties:
properties:
armCorrelationIds:
- 00000000-0000-0000-0000-000000000000
clientIncidentDetails:
clientIncidentId: AA123
clientIncidentSource: Jira
impactCategory: ArmOperation
impactDescription: deletion of resource failed
impactedResourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext
startDateTime: 2022-06-15T05:59:46.6517821Z
workload:
context: webapp/scenario1
toolset: Other
workloadImpactName: impact-002
The impactCategory identifies this as an ARM operation failure. The armCorrelationIds array links the impact to specific Azure operation traces, enabling correlation with Azure support cases. The clientIncidentDetails block connects this impact to your external incident tracking system (Jira, ServiceNow, etc.). The workload block provides context about which application or scenario experienced the failure.
Report network connectivity failures between resources
Applications that depend on network communication between Azure resources document connectivity failures for diagnosis and support escalation.
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const workloadImpact = new azure_native.impact.WorkloadImpact("workloadImpact", {
properties: {
clientIncidentDetails: {
clientIncidentId: "AA123",
clientIncidentSource: azure_native.impact.IncidentSource.Jira,
},
connectivity: {
port: 1443,
protocol: azure_native.impact.Protocol.TCP,
source: {
azureResourceId: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1",
},
target: {
azureResourceId: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2",
},
},
impactCategory: "Resource.Connectivity",
impactDescription: "conection failure",
impactedResourceId: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
startDateTime: "2022-06-15T05:59:46.6517821Z",
workload: {
context: "webapp/scenario1",
toolset: azure_native.impact.Toolset.Other,
},
},
workloadImpactName: "impact-001",
});
import pulumi
import pulumi_azure_native as azure_native
workload_impact = azure_native.impact.WorkloadImpact("workloadImpact",
properties={
"client_incident_details": {
"client_incident_id": "AA123",
"client_incident_source": azure_native.impact.IncidentSource.JIRA,
},
"connectivity": {
"port": 1443,
"protocol": azure_native.impact.Protocol.TCP,
"source": {
"azure_resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1",
},
"target": {
"azure_resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2",
},
},
"impact_category": "Resource.Connectivity",
"impact_description": "conection failure",
"impacted_resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
"start_date_time": "2022-06-15T05:59:46.6517821Z",
"workload": {
"context": "webapp/scenario1",
"toolset": azure_native.impact.Toolset.OTHER,
},
},
workload_impact_name="impact-001")
package main
import (
impact "github.com/pulumi/pulumi-azure-native-sdk/impact/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := impact.NewWorkloadImpact(ctx, "workloadImpact", &impact.WorkloadImpactArgs{
Properties: &impact.WorkloadImpactPropertiesArgs{
ClientIncidentDetails: &impact.ClientIncidentDetailsArgs{
ClientIncidentId: pulumi.String("AA123"),
ClientIncidentSource: pulumi.String(impact.IncidentSourceJira),
},
Connectivity: &impact.ConnectivityArgs{
Port: pulumi.Int(1443),
Protocol: pulumi.String(impact.ProtocolTCP),
Source: &impact.SourceOrTargetArgs{
AzureResourceId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1"),
},
Target: &impact.SourceOrTargetArgs{
AzureResourceId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2"),
},
},
ImpactCategory: pulumi.String("Resource.Connectivity"),
ImpactDescription: pulumi.String("conection failure"),
ImpactedResourceId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext"),
StartDateTime: pulumi.String("2022-06-15T05:59:46.6517821Z"),
Workload: &impact.WorkloadArgs{
Context: pulumi.String("webapp/scenario1"),
Toolset: pulumi.String(impact.ToolsetOther),
},
},
WorkloadImpactName: pulumi.String("impact-001"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var workloadImpact = new AzureNative.Impact.WorkloadImpact("workloadImpact", new()
{
Properties = new AzureNative.Impact.Inputs.WorkloadImpactPropertiesArgs
{
ClientIncidentDetails = new AzureNative.Impact.Inputs.ClientIncidentDetailsArgs
{
ClientIncidentId = "AA123",
ClientIncidentSource = AzureNative.Impact.IncidentSource.Jira,
},
Connectivity = new AzureNative.Impact.Inputs.ConnectivityArgs
{
Port = 1443,
Protocol = AzureNative.Impact.Protocol.TCP,
Source = new AzureNative.Impact.Inputs.SourceOrTargetArgs
{
AzureResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1",
},
Target = new AzureNative.Impact.Inputs.SourceOrTargetArgs
{
AzureResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2",
},
},
ImpactCategory = "Resource.Connectivity",
ImpactDescription = "conection failure",
ImpactedResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
StartDateTime = "2022-06-15T05:59:46.6517821Z",
Workload = new AzureNative.Impact.Inputs.WorkloadArgs
{
Context = "webapp/scenario1",
Toolset = AzureNative.Impact.Toolset.Other,
},
},
WorkloadImpactName = "impact-001",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.impact.WorkloadImpact;
import com.pulumi.azurenative.impact.WorkloadImpactArgs;
import com.pulumi.azurenative.impact.inputs.WorkloadImpactPropertiesArgs;
import com.pulumi.azurenative.impact.inputs.ClientIncidentDetailsArgs;
import com.pulumi.azurenative.impact.inputs.ConnectivityArgs;
import com.pulumi.azurenative.impact.inputs.SourceOrTargetArgs;
import com.pulumi.azurenative.impact.inputs.WorkloadArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var workloadImpact = new WorkloadImpact("workloadImpact", WorkloadImpactArgs.builder()
.properties(WorkloadImpactPropertiesArgs.builder()
.clientIncidentDetails(ClientIncidentDetailsArgs.builder()
.clientIncidentId("AA123")
.clientIncidentSource("Jira")
.build())
.connectivity(ConnectivityArgs.builder()
.port(1443)
.protocol("TCP")
.source(SourceOrTargetArgs.builder()
.azureResourceId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1")
.build())
.target(SourceOrTargetArgs.builder()
.azureResourceId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2")
.build())
.build())
.impactCategory("Resource.Connectivity")
.impactDescription("conection failure")
.impactedResourceId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext")
.startDateTime("2022-06-15T05:59:46.6517821Z")
.workload(WorkloadArgs.builder()
.context("webapp/scenario1")
.toolset("Other")
.build())
.build())
.workloadImpactName("impact-001")
.build());
}
}
resources:
workloadImpact:
type: azure-native:impact:WorkloadImpact
properties:
properties:
clientIncidentDetails:
clientIncidentId: AA123
clientIncidentSource: Jira
connectivity:
port: 1443
protocol: TCP
source:
azureResourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1
target:
azureResourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2
impactCategory: Resource.Connectivity
impactDescription: conection failure
impactedResourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext
startDateTime: 2022-06-15T05:59:46.6517821Z
workload:
context: webapp/scenario1
toolset: Other
workloadImpactName: impact-001
The connectivity block captures network-level details: source and target resources by Azure resource ID, the port and protocol being used. Setting impactCategory to “Resource.Connectivity” classifies this as a network connectivity issue rather than an availability or performance problem. This structured data helps Azure support teams diagnose network path issues.
Report resource availability issues
When Azure resources become unavailable or operations fail, teams document these incidents to track patterns and correlate with Azure service health.
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const workloadImpact = new azure_native.impact.WorkloadImpact("workloadImpact", {
properties: {
clientIncidentDetails: {
clientIncidentId: "AA123",
clientIncidentSource: azure_native.impact.IncidentSource.Jira,
},
impactCategory: "Availability",
impactDescription: "read calls failed",
impactedResourceId: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
startDateTime: "2022-06-15T05:59:46.6517821Z",
workload: {
context: "webapp/scenario1",
toolset: azure_native.impact.Toolset.Other,
},
},
workloadImpactName: "impact-002",
});
import pulumi
import pulumi_azure_native as azure_native
workload_impact = azure_native.impact.WorkloadImpact("workloadImpact",
properties={
"client_incident_details": {
"client_incident_id": "AA123",
"client_incident_source": azure_native.impact.IncidentSource.JIRA,
},
"impact_category": "Availability",
"impact_description": "read calls failed",
"impacted_resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
"start_date_time": "2022-06-15T05:59:46.6517821Z",
"workload": {
"context": "webapp/scenario1",
"toolset": azure_native.impact.Toolset.OTHER,
},
},
workload_impact_name="impact-002")
package main
import (
impact "github.com/pulumi/pulumi-azure-native-sdk/impact/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := impact.NewWorkloadImpact(ctx, "workloadImpact", &impact.WorkloadImpactArgs{
Properties: &impact.WorkloadImpactPropertiesArgs{
ClientIncidentDetails: &impact.ClientIncidentDetailsArgs{
ClientIncidentId: pulumi.String("AA123"),
ClientIncidentSource: pulumi.String(impact.IncidentSourceJira),
},
ImpactCategory: pulumi.String("Availability"),
ImpactDescription: pulumi.String("read calls failed"),
ImpactedResourceId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext"),
StartDateTime: pulumi.String("2022-06-15T05:59:46.6517821Z"),
Workload: &impact.WorkloadArgs{
Context: pulumi.String("webapp/scenario1"),
Toolset: pulumi.String(impact.ToolsetOther),
},
},
WorkloadImpactName: pulumi.String("impact-002"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var workloadImpact = new AzureNative.Impact.WorkloadImpact("workloadImpact", new()
{
Properties = new AzureNative.Impact.Inputs.WorkloadImpactPropertiesArgs
{
ClientIncidentDetails = new AzureNative.Impact.Inputs.ClientIncidentDetailsArgs
{
ClientIncidentId = "AA123",
ClientIncidentSource = AzureNative.Impact.IncidentSource.Jira,
},
ImpactCategory = "Availability",
ImpactDescription = "read calls failed",
ImpactedResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
StartDateTime = "2022-06-15T05:59:46.6517821Z",
Workload = new AzureNative.Impact.Inputs.WorkloadArgs
{
Context = "webapp/scenario1",
Toolset = AzureNative.Impact.Toolset.Other,
},
},
WorkloadImpactName = "impact-002",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.impact.WorkloadImpact;
import com.pulumi.azurenative.impact.WorkloadImpactArgs;
import com.pulumi.azurenative.impact.inputs.WorkloadImpactPropertiesArgs;
import com.pulumi.azurenative.impact.inputs.ClientIncidentDetailsArgs;
import com.pulumi.azurenative.impact.inputs.WorkloadArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var workloadImpact = new WorkloadImpact("workloadImpact", WorkloadImpactArgs.builder()
.properties(WorkloadImpactPropertiesArgs.builder()
.clientIncidentDetails(ClientIncidentDetailsArgs.builder()
.clientIncidentId("AA123")
.clientIncidentSource("Jira")
.build())
.impactCategory("Availability")
.impactDescription("read calls failed")
.impactedResourceId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext")
.startDateTime("2022-06-15T05:59:46.6517821Z")
.workload(WorkloadArgs.builder()
.context("webapp/scenario1")
.toolset("Other")
.build())
.build())
.workloadImpactName("impact-002")
.build());
}
}
resources:
workloadImpact:
type: azure-native:impact:WorkloadImpact
properties:
properties:
clientIncidentDetails:
clientIncidentId: AA123
clientIncidentSource: Jira
impactCategory: Availability
impactDescription: read calls failed
impactedResourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext
startDateTime: 2022-06-15T05:59:46.6517821Z
workload:
context: webapp/scenario1
toolset: Other
workloadImpactName: impact-002
The impactCategory “Availability” indicates the resource was unreachable or operations failed. The impactDescription provides human-readable context about what failed. Unlike connectivity impacts, availability impacts focus on whether the resource responds at all, not on network path details.
Report performance degradation with metrics
Performance issues require documenting actual versus expected metrics to establish baselines and track degradation patterns.
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const workloadImpact = new azure_native.impact.WorkloadImpact("workloadImpact", {
properties: {
clientIncidentDetails: {
clientIncidentId: "AA123",
clientIncidentSource: azure_native.impact.IncidentSource.Jira,
},
impactCategory: "Resource.Performance",
impactDescription: "high cpu utilization",
impactedResourceId: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
performance: [{
actual: 90,
expected: 60,
metricName: "CPU",
unit: "garbage",
}],
startDateTime: "2022-06-15T05:59:46.6517821Z",
workload: {
context: "webapp/scenario1",
toolset: azure_native.impact.Toolset.Other,
},
},
workloadImpactName: "impact-002",
});
import pulumi
import pulumi_azure_native as azure_native
workload_impact = azure_native.impact.WorkloadImpact("workloadImpact",
properties={
"client_incident_details": {
"client_incident_id": "AA123",
"client_incident_source": azure_native.impact.IncidentSource.JIRA,
},
"impact_category": "Resource.Performance",
"impact_description": "high cpu utilization",
"impacted_resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
"performance": [{
"actual": 90,
"expected": 60,
"metric_name": "CPU",
"unit": "garbage",
}],
"start_date_time": "2022-06-15T05:59:46.6517821Z",
"workload": {
"context": "webapp/scenario1",
"toolset": azure_native.impact.Toolset.OTHER,
},
},
workload_impact_name="impact-002")
package main
import (
impact "github.com/pulumi/pulumi-azure-native-sdk/impact/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := impact.NewWorkloadImpact(ctx, "workloadImpact", &impact.WorkloadImpactArgs{
Properties: &impact.WorkloadImpactPropertiesArgs{
ClientIncidentDetails: &impact.ClientIncidentDetailsArgs{
ClientIncidentId: pulumi.String("AA123"),
ClientIncidentSource: pulumi.String(impact.IncidentSourceJira),
},
ImpactCategory: pulumi.String("Resource.Performance"),
ImpactDescription: pulumi.String("high cpu utilization"),
ImpactedResourceId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext"),
Performance: impact.PerformanceArray{
&impact.PerformanceArgs{
Actual: pulumi.Float64(90),
Expected: pulumi.Float64(60),
MetricName: pulumi.String("CPU"),
Unit: pulumi.String("garbage"),
},
},
StartDateTime: pulumi.String("2022-06-15T05:59:46.6517821Z"),
Workload: &impact.WorkloadArgs{
Context: pulumi.String("webapp/scenario1"),
Toolset: pulumi.String(impact.ToolsetOther),
},
},
WorkloadImpactName: pulumi.String("impact-002"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var workloadImpact = new AzureNative.Impact.WorkloadImpact("workloadImpact", new()
{
Properties = new AzureNative.Impact.Inputs.WorkloadImpactPropertiesArgs
{
ClientIncidentDetails = new AzureNative.Impact.Inputs.ClientIncidentDetailsArgs
{
ClientIncidentId = "AA123",
ClientIncidentSource = AzureNative.Impact.IncidentSource.Jira,
},
ImpactCategory = "Resource.Performance",
ImpactDescription = "high cpu utilization",
ImpactedResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext",
Performance = new[]
{
new AzureNative.Impact.Inputs.PerformanceArgs
{
Actual = 90,
Expected = 60,
MetricName = "CPU",
Unit = "garbage",
},
},
StartDateTime = "2022-06-15T05:59:46.6517821Z",
Workload = new AzureNative.Impact.Inputs.WorkloadArgs
{
Context = "webapp/scenario1",
Toolset = AzureNative.Impact.Toolset.Other,
},
},
WorkloadImpactName = "impact-002",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.impact.WorkloadImpact;
import com.pulumi.azurenative.impact.WorkloadImpactArgs;
import com.pulumi.azurenative.impact.inputs.WorkloadImpactPropertiesArgs;
import com.pulumi.azurenative.impact.inputs.ClientIncidentDetailsArgs;
import com.pulumi.azurenative.impact.inputs.WorkloadArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var workloadImpact = new WorkloadImpact("workloadImpact", WorkloadImpactArgs.builder()
.properties(WorkloadImpactPropertiesArgs.builder()
.clientIncidentDetails(ClientIncidentDetailsArgs.builder()
.clientIncidentId("AA123")
.clientIncidentSource("Jira")
.build())
.impactCategory("Resource.Performance")
.impactDescription("high cpu utilization")
.impactedResourceId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext")
.performance(PerformanceArgs.builder()
.actual(90.0)
.expected(60.0)
.metricName("CPU")
.unit("garbage")
.build())
.startDateTime("2022-06-15T05:59:46.6517821Z")
.workload(WorkloadArgs.builder()
.context("webapp/scenario1")
.toolset("Other")
.build())
.build())
.workloadImpactName("impact-002")
.build());
}
}
resources:
workloadImpact:
type: azure-native:impact:WorkloadImpact
properties:
properties:
clientIncidentDetails:
clientIncidentId: AA123
clientIncidentSource: Jira
impactCategory: Resource.Performance
impactDescription: high cpu utilization
impactedResourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext
performance:
- actual: 90
expected: 60
metricName: CPU
unit: garbage
startDateTime: 2022-06-15T05:59:46.6517821Z
workload:
context: webapp/scenario1
toolset: Other
workloadImpactName: impact-002
The performance array captures metric-level details: actual and expected values, the metric name (CPU, memory, latency), and units. This structured format enables trend analysis and helps establish whether performance degradation correlates with Azure service issues or application-level problems.
Beyond these examples
These snippets focus on specific impact reporting features: ARM operation and connectivity failure tracking, availability and performance impact reporting, and incident correlation with external systems. They’re intentionally minimal rather than full monitoring solutions.
The examples reference pre-existing infrastructure such as Azure resources being monitored (VMs, SQL servers, etc.) and external incident tracking systems (Jira, ServiceNow). They focus on recording impact events rather than provisioning monitoring infrastructure.
To keep things focused, common impact tracking patterns are omitted, including:
- End time tracking (endDateTime)
- Additional context fields (additionalProperties)
- Impact severity classification
- Automated impact detection and reporting
These omissions are intentional: the goal is to illustrate how each impact type is recorded, not provide drop-in monitoring modules. See the WorkloadImpact resource reference for all available configuration options.
Let's configure Azure Workload Impact
Get started with Pulumi Cloud, then follow our quick setup guide to deploy this infrastructure.
Try Pulumi Cloud for FREEFrequently Asked Questions
Impact Categories & Reporting
You can report four impact categories:
- ArmOperation - ARM operation failures
- Resource.Connectivity - Connectivity issues between resources
- Availability - Availability problems
- Resource.Performance - Performance degradation
impactCategory to ArmOperation and include armCorrelationIds array with the ARM correlation IDs from the failed operation.impactCategory to Resource.Connectivity and configure the connectivity object with port, protocol, source, and target resource IDs.impactCategory to Resource.Performance and include a performance array with metrics showing actual vs expected values, along with metricName and unit.Configuration & Required Fields
properties object is required. All examples include impactCategory, impactDescription, impactedResourceId, startDateTime, workload, and clientIncidentDetails as essential fields.clientIncidentDetails. The examples show Jira as the clientIncidentSource.Immutability & Limitations
workloadImpactName is immutable and cannot be changed after the resource is created.