public void ScheduleDumpAnalysis(DumpMetainfo dumpInfo)
        {
            string dumpFilePath = dumpStorage.GetDumpFilePath(dumpInfo.Id);

            if (!File.Exists(dumpFilePath))
            {
                throw new DumpNotFoundException($"id: {dumpInfo.Id}, path: {dumpFilePath}");
            }

            string analysisWorkingDir = pathHelper.GetDumpDirectory(dumpInfo.Id);

            if (!Directory.Exists(analysisWorkingDir))
            {
                throw new DirectoryNotFoundException($"id: {dumpInfo.Id}, path: {dumpFilePath}");
            }

            // schedule actual analysis
            var outgoingMessageTracer = dynatraceSdk.TraceOutgoingMessage(messagingSystemInfo);

            outgoingMessageTracer.Trace(() => {
                string jobId = Hangfire.BackgroundJob.Enqueue <AnalysisService>(repo => Analyze(dumpInfo, dumpFilePath, analysisWorkingDir, outgoingMessageTracer.GetDynatraceByteTag()));
                outgoingMessageTracer.SetVendorMessageId(jobId);
            });
        }
Exemple #2
0
 public string GetDumpFilePath(DumpIdentifier id)
 {
     return(storage.GetDumpFilePath(id));
 }