using System.Diagnostics; namespace StellaOps.Policy.Registry.Telemetry; /// /// Activity source for Policy Registry tracing. /// Provides distributed tracing capabilities for all registry operations. /// public static class PolicyRegistryActivitySource { public const string SourceName = "StellaOps.Policy.Registry"; public static readonly ActivitySource ActivitySource = new(SourceName, "1.0.0"); // Pack operations public static Activity? StartCreatePack(string tenantId, string packName) { var activity = ActivitySource.StartActivity("policy_registry.pack.create", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_name", packName); return activity; } public static Activity? StartGetPack(string tenantId, Guid packId) { var activity = ActivitySource.StartActivity("policy_registry.pack.get", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); return activity; } public static Activity? StartUpdatePack(string tenantId, Guid packId) { var activity = ActivitySource.StartActivity("policy_registry.pack.update", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); return activity; } public static Activity? StartDeletePack(string tenantId, Guid packId) { var activity = ActivitySource.StartActivity("policy_registry.pack.delete", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); return activity; } // Compilation operations public static Activity? StartCompile(string tenantId, Guid packId) { var activity = ActivitySource.StartActivity("policy_registry.compile", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); return activity; } public static Activity? StartValidateRule(string tenantId, string ruleId) { var activity = ActivitySource.StartActivity("policy_registry.rule.validate", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("rule_id", ruleId); return activity; } // Simulation operations public static Activity? StartSimulation(string tenantId, Guid packId) { var activity = ActivitySource.StartActivity("policy_registry.simulate", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); return activity; } public static Activity? StartBatchSimulation(string tenantId, Guid packId, int inputCount) { var activity = ActivitySource.StartActivity("policy_registry.batch_simulate", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); activity?.SetTag("input_count", inputCount); return activity; } // Review operations public static Activity? StartSubmitReview(string tenantId, Guid packId) { var activity = ActivitySource.StartActivity("policy_registry.review.submit", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); return activity; } public static Activity? StartApproveReview(string tenantId, string reviewId) { var activity = ActivitySource.StartActivity("policy_registry.review.approve", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("review_id", reviewId); return activity; } public static Activity? StartRejectReview(string tenantId, string reviewId) { var activity = ActivitySource.StartActivity("policy_registry.review.reject", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("review_id", reviewId); return activity; } // Publish operations public static Activity? StartPublish(string tenantId, Guid packId) { var activity = ActivitySource.StartActivity("policy_registry.publish", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); return activity; } public static Activity? StartRevoke(string tenantId, Guid packId) { var activity = ActivitySource.StartActivity("policy_registry.revoke", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); return activity; } public static Activity? StartVerifyAttestation(string tenantId, Guid packId) { var activity = ActivitySource.StartActivity("policy_registry.attestation.verify", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); return activity; } // Promotion operations public static Activity? StartPromotion(string tenantId, Guid packId, string targetEnvironment) { var activity = ActivitySource.StartActivity("policy_registry.promote", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); activity?.SetTag("target_environment", targetEnvironment); return activity; } public static Activity? StartRollback(string tenantId, string environment) { var activity = ActivitySource.StartActivity("policy_registry.rollback", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("environment", environment); return activity; } public static Activity? StartValidatePromotion(string tenantId, Guid packId, string targetEnvironment) { var activity = ActivitySource.StartActivity("policy_registry.promotion.validate", ActivityKind.Internal); activity?.SetTag("tenant_id", tenantId); activity?.SetTag("pack_id", packId.ToString()); activity?.SetTag("target_environment", targetEnvironment); return activity; } // Helper methods public static void SetError(this Activity? activity, Exception ex) { if (activity is null) return; activity.SetStatus(ActivityStatusCode.Error, ex.Message); activity.SetTag("error.type", ex.GetType().FullName); activity.SetTag("error.message", ex.Message); } public static void SetSuccess(this Activity? activity) { activity?.SetStatus(ActivityStatusCode.Ok); } public static void SetResult(this Activity? activity, string key, object? value) { if (activity is null || value is null) return; activity.SetTag($"result.{key}", value.ToString()); } }