public void ParseData(LogAnalytics logAnalytics) { try { var stopwatch = Stopwatch.StartNew(); ParsingStatus = ParsingStatus.Parsing; var parsedLog = logAnalytics.Parser.ParseLog(FileInfo.FullName); var log = logAnalytics.Processor.GetProcessedLog(parsedLog); var encounter = logAnalytics.Analyser.GetEncounter(log); EncounterName = encounter.GetName(); EncounterResult = encounter.GetResult(); Players = logAnalytics.Analyser.GetPlayers(log).Where(x => x.Identified).Select(x => new LogPlayer(x.Name, x.AccountName, x.Subgroup, x.Profession, x.EliteSpecialization, GetGuildGuid(x.GuildGuid)) ).ToArray(); EncounterStartTime = log.StartTime.ServerTime; EncounterDuration = logAnalytics.Analyser.GetEncounterDuration(encounter); stopwatch.Stop(); ParseMilliseconds = stopwatch.ElapsedMilliseconds; ParseTime = DateTimeOffset.Now; ParsingStatus = ParsingStatus.Parsed; } catch (Exception e) { ParsingStatus = ParsingStatus.Failed; ParsingException = e; } }
public void ParseData(LogAnalytics logAnalytics) { try { var stopwatch = Stopwatch.StartNew(); ParsingStatus = ParsingStatus.Parsing; var parsedLog = logAnalytics.Parser.ParseLog(FileInfo.FullName); var log = logAnalytics.Processor.ProcessLog(parsedLog); var analyzer = logAnalytics.AnalyzerFactory(log); GameLanguage = log.GameLanguage; GameBuild = log.GameBuild; EvtcVersion = log.EvtcVersion; PointOfView = new PointOfView { AccountName = log.PointOfView.AccountName, CharacterName = log.PointOfView.Name }; Encounter = log.EncounterData.Encounter; MapId = log.MapId; MainTargetName = log.MainTarget?.Name ?? UnknownMainTargetName; EncounterResult = analyzer.GetResult(); EncounterMode = analyzer.GetMode(); HealthPercentage = GetHealthPercentage(log); if (EncounterResult == EncounterResult.Success) { HealthPercentage = 0; } var tagEvents = log.Events.OfType <AgentTagEvent>().Where(x => x.Id != 0 && x.Agent is Player); Players = analyzer.GetPlayers().Where(x => x.Identified).Select(p => new LogPlayer(p.Name, p.AccountName, p.Subgroup, p.Profession, p.EliteSpecialization, GetGuildGuid(p.GuildGuid)) { Tag = tagEvents.Any(e => e.Agent == p) ? PlayerTag.Commander : PlayerTag.None } ).ToArray(); EncounterStartTime = log.StartTime.ServerTime; EncounterDuration = analyzer.GetEncounterDuration(); stopwatch.Stop(); ParseMilliseconds = stopwatch.ElapsedMilliseconds; ParseTime = DateTimeOffset.Now; ParsingStatus = ParsingStatus.Parsed; } catch (Exception e) { ParsingStatus = ParsingStatus.Failed; ParsingException = new ExceptionData(e); } finally { ParsingVersion = typeof(LogAnalytics).Assembly.GetName().Version; } }
public IWithCreate WithLogAnalytics(string workspaceId, string workspaceKey) { LogAnalytics logAnalytics = new LogAnalytics(); logAnalytics.WorkspaceId = workspaceId; logAnalytics.WorkspaceKey = workspaceKey; this.Inner.Diagnostics = new ContainerGroupDiagnostics(); this.Inner.Diagnostics.LogAnalytics = logAnalytics; return(this); }
public static ContainerGroup CreateTestContainerGroup(string containerGroupName) { var containers = new Container[] { new Container( name: containerGroupName, image: "alpine", ports: new List <ContainerPort>() { new ContainerPort(80) }, command: new List <string>() { "/bin/sh", "-c", "while true; do sleep 10; done" }, environmentVariables: new List <EnvironmentVariable> { new EnvironmentVariable(name: "secretEnv", secureValue: "secretValue1") }, livenessProbe: new ContainerProbe( exec: new ContainerExec(command: new List <string> { "cat", "/tmp/healthy" }), periodSeconds: 20), resources: new ResourceRequirements(requests: new ResourceRequests(memoryInGB: 1.5, cpu: 1.0))) }; var ipAddress = new IpAddress( ports: new List <Port>() { new Port(80, "TCP") }, dnsNameLabel: containerGroupName, type: ContainerGroupIpAddressType.Public); var logAnalytics = new LogAnalytics( workspaceId: "workspaceid", workspaceKey: "workspacekey"); var msiIdentity = new ContainerGroupIdentity(type: ResourceIdentityType.SystemAssigned); var containerGroup = new ContainerGroup( name: containerGroupName, location: "westus", osType: OperatingSystemTypes.Linux, ipAddress: ipAddress, restartPolicy: "Never", containers: containers, identity: msiIdentity, diagnostics: new ContainerGroupDiagnostics(logAnalytics: logAnalytics)); return(containerGroup); }
public IWithCreate WithLogAnalytics(string workspaceId, string workspaceKey, LogAnalyticsLogType logType, IDictionary <string, string> metadata) { LogAnalytics logAnalytics = new LogAnalytics(); logAnalytics.WorkspaceId = workspaceId; logAnalytics.WorkspaceKey = workspaceKey; logAnalytics.LogType = logType; logAnalytics.Metadata = metadata; this.Inner.Diagnostics = new ContainerGroupDiagnostics(); this.Inner.Diagnostics.LogAnalytics = logAnalytics; return(this); }
public void QueueForIngest(FileObject fileObject) { Log.Debug("enter"); if (Config.IsKustoConfigured()) { TaskManager.QueueTaskAction(() => Kusto.AddFile(fileObject)); } if (Config.IsLogAnalyticsConfigured()) { TaskManager.QueueTaskAction(() => LogAnalytics.AddFile(fileObject)); } }
public void ParseData(LogAnalytics logAnalytics) { try { var stopwatch = Stopwatch.StartNew(); ParsingStatus = ParsingStatus.Parsing; var parsedLog = logAnalytics.Parser.ParseLog(FileInfo.FullName); var log = logAnalytics.Processor.ProcessLog(parsedLog); var analyzer = logAnalytics.AnalyzerFactory(log); GameLanguage = log.GameLanguage; GameBuild = log.GameBuild; EvtcVersion = log.EvtcVersion; PointOfView = new PointOfView { AccountName = log.PointOfView.AccountName, CharacterName = log.PointOfView.Name }; Encounter = log.EncounterData.Encounter; MapId = log.MapId; MainTargetName = log.MainTarget?.Name ?? UnknownMainTargetName; EncounterResult = analyzer.GetResult(); EncounterMode = analyzer.GetMode(); Players = analyzer.GetPlayers().Where(x => x.Identified).Select(x => new LogPlayer(x.Name, x.AccountName, x.Subgroup, x.Profession, x.EliteSpecialization, GetGuildGuid(x.GuildGuid)) ).ToArray(); EncounterStartTime = log.StartTime.ServerTime; EncounterDuration = analyzer.GetEncounterDuration(); stopwatch.Stop(); ParseMilliseconds = stopwatch.ElapsedMilliseconds; ParseTime = DateTimeOffset.Now; ParsingStatus = ParsingStatus.Parsed; } catch (Exception e) { ParsingStatus = ParsingStatus.Failed; ParsingException = new ExceptionData(e); } finally { ParsingVersion = typeof(LogAnalytics).Assembly.GetName().Version; } }
public static ContainerGroup CreateTestContainerGroup(string containerGroupName, bool doNotEncrypt = false) { var containers = new Container[] { new Container( name: containerGroupName, image: "alpine", ports: new List <ContainerPort>() { new ContainerPort(80) }, command: new List <string>() { "/bin/sh", "-c", "while true; do sleep 10; done" }, environmentVariables: new List <EnvironmentVariable> { new EnvironmentVariable(name: "secretEnv", secureValue: "secretValue1") }, livenessProbe: new ContainerProbe( exec: new ContainerExec(command: new List <string> { "ls" }), periodSeconds: 20), resources: new ResourceRequirements(requests: new ResourceRequests(memoryInGB: 1.5, cpu: 1.0))) }; var initContainers = new InitContainerDefinition[] { new InitContainerDefinition( name: $"{containerGroupName}init", image: "alpine", command: new List <string>() { "/bin/sh", "-c", "sleep 5" }, environmentVariables: new List <EnvironmentVariable> { new EnvironmentVariable(name: "secretEnv", secureValue: "secretValue1") }) }; var ipAddress = new IpAddress( ports: new List <Port>() { new Port(80, "TCP") }, dnsNameLabel: containerGroupName, type: ContainerGroupIpAddressType.Public); var logAnalytics = new LogAnalytics( workspaceId: "workspaceid", workspaceKey: "workspacekey"); var msiIdentity = new ContainerGroupIdentity(type: ResourceIdentityType.SystemAssigned); var encryptionProps = doNotEncrypt ? null : new EncryptionProperties( vaultBaseUrl: "https://cloudaci-cloudtest.vault.azure.net/", keyName: "testencryptionkey", keyVersion: "804d3f1d5ce2456b9bc3dc9e35aaa67e"); var containerGroup = new ContainerGroup( name: containerGroupName, location: "westus", osType: OperatingSystemTypes.Linux, ipAddress: ipAddress, restartPolicy: "Never", containers: containers, identity: msiIdentity, diagnostics: new ContainerGroupDiagnostics(logAnalytics: logAnalytics), sku: "Standard", initContainers: initContainers, encryptionProperties: encryptionProps); return(containerGroup); }
public LogDataProcessor(LogCache logCache, ApiProcessor apiProcessor, LogAnalytics analytics) { this.analytics = analytics ?? throw new ArgumentNullException(nameof(analytics)); this.logCache = logCache ?? throw new ArgumentNullException(nameof(logCache)); this.apiProcessor = apiProcessor ?? throw new ArgumentNullException(nameof(apiProcessor)); }
internal ContainerGroupDiagnostics(LogAnalytics logAnalytics) { LogAnalytics = logAnalytics; }