private TicketArticle CreatePlatformArticle(AlertContext context) { string conditions = $"Window Size: {context.Condition.WindowSize} \n"; foreach (var metric in context.Condition.AllOf) { conditions = $"Metric Name : {metric.MetricName} \n " + $"Operator: {metric.Operator} \n " + $"Threshold {metric.Threshold} \n " + $"Time Aggregation: {metric.TimeAggregation}"; conditions += "\n\n"; } TicketArticle activityLogArticle = new TicketArticle { Subject = context.ConditionType, Body = $"Conditions: \n" + $"{conditions}" + $"Window Start Time: {context.Condition.WindowStartTime.ToString(DateTimeFormat)} \n " + $"Window End Time: {context.Condition.WindowEndTime.ToString(DateTimeFormat)}", Type = "note", }; return(activityLogArticle); }
private TicketArticle CreateActivityLogArticle(AlertContext context) { TicketArticle activityLogArticle = new TicketArticle { Subject = context.OperationName, Body = $"Authorization: \n" + $"Action: {context.Authorization.Action} \n" + $"Scope: {context.Authorization.Scope} \n\n" + $"Level: {context.Level} \n" + $"Status: {context.Status} \n" + $"Caller: {context.Caller} \n" + $"Event Time: {context.EventTimestamp.ToString(DateTimeFormat)}", Type = "note" }; return(activityLogArticle); }
private TicketArticle CreateApplicationInsightsArticle(AlertContext context) { //string tables = FormatSearchResults(context.SearchResults); TicketArticle activityLogArticle = new TicketArticle { Subject = context.AlertType, Body = $"Search Query {context.SearchQuery} \n " + $"Link To Search Results: {context.LinkToSearchResults} \n" + $"Search Interval Start Time Utc: {context.SearchIntervalStartTimeUtc.ToString(DateTimeFormat)} \n" + $"Result Count {context.ResultCount} \n " + $"Search Interval In Minutes: {context.SearchIntervalInMinutes} \n " + $"Threshold: {context.Threshold} \n " + $"Operator: {context.Operator} \n ", //$"Search Result: {tables}", Type = "note" }; return(activityLogArticle); }
private TicketArticle CreateResourceHealthArticle(AlertContext context) { TicketArticle activityLogArticle = new TicketArticle { Subject = context.EventSource, Body = $"Level: {context.Level} \n " + $"Operation Name: {context.OperationName} \n\n" + $"Properties: \n" + $"Title: {context.Properties.Title} \n" + $"Current Health Status: {context.Properties.CurrentHealthStatus} \n" + $"Previous Health Status: {context.Properties.PreviousHealthStatus} \n" + $"Type: {context.Properties.Type} \n" + $"Cause: {context.Properties.Cause} \n\n" + $"Status: {context.Status} \n " + $"Event Time: {context.EventTimestamp.ToString(DateTimeFormat)}", Type = "note", From = context.Caller }; return(activityLogArticle); }
private TicketArticle CreateServiceHealthArticle(AlertContext context) { TicketArticle activityLogArticle = new TicketArticle { Subject = context.EventSource, Body = $"Level: {context.Level} \n " + $"Operation Name: {context.OperationName} \n\n" + $"Properties: \n" + $"Title: {context.Properties.Title} \n" + $"Service: {context.Properties.Service} \n" + $"Region: {context.Properties.Region} \n" + $"ImpactStartTime: {context.Properties.ImpactStartTime.ToString(DateTimeFormat)} \n" + $"Stage: {context.Properties.Stage} \n\n" + $"Status: {context.Status} \n " + $"Event Time: {context.EventTimestamp.ToString(DateTimeFormat)}", Type = "note", From = context.Caller }; return(activityLogArticle); }
private TicketArticle CreateLogAnalyticsArticle(AlertContext context) { string affectedConfigurationItems = string.Empty; foreach (var affectedItem in context.AffectedConfigurationItems) { affectedConfigurationItems += $"{affectedItem} \n"; } //string tables = FormatSearchResults(context.SearchResults); TicketArticle activityLogArticle = new TicketArticle { Subject = context.AlertType, Body = $"Search Query: \n" + $"{context.SearchQuery} \n\n " + $"Link To Search Results: {context.LinkToSearchResults} \n\n" + $"Affected Configuration Items: \n" + $"{affectedConfigurationItems} \n" + $"Search Interval Start Time Utc: {context.SearchIntervalStartTimeUtc.ToString(DateTimeFormat)} \n" + $"Result Count {context.ResultCount} \n " + $"Severity Description: {context.SeverityDescription} \n " + $"Search Interval In Minutes: {context.SearchIntervalInMinutes} \n " + $"Threshold: {context.Threshold} \n " + $"Operator: {context.Operator} \n\n ", //$"Search Result: \n" + //$"{tables}", Type = "note" }; return(activityLogArticle); }