public Trace getTrace() { return (trace == null) ? null : trace.asTrace(); }
public boolean filters(TraceInterface traceAccess) { ApplicationName appName = traceAccess.getAppName(); if (enabled.get() && ApplicationName.UNKOWN_APPLICATION.equals(appName)) { return true; } return false; }
public TraceAnalysis analyze(TraceInterface traceAccess) { Trace trace=traceAccess.asTrace(); ApplicationName trcName=traceAccess.getAppName(), appName=applicationMetadata.getApplicationName(trcName); TraceSource traceSource = sourceAnalysisService != null ? sourceAnalysisService.locateTraceSource(traceAccess) : null; trace.setTraceSource(traceSource); if (!ObjectUtil.typedEquals(trcName, appName)) { if (logger.isDebugEnabled()) { logger.debug("analyze(" + trace + ") modified application " + trcName + " => " + appName); } trace.setAppName(appName); } EndPointAnalysis endPointAnalysis=locateEndPoint(traceAccess); Collection<Resource> extResources=collectExternalResources(traceAccess, endPointAnalysis); List<TraceError> errors=locateErrors(trace); ServerName serverName=(traceAccess instanceof ServerNameCarrier) ? ((ServerNameCarrier) traceAccess).getServer() : trace.getServer() ; ServerResource server=serverResolver.resolve(serverName); TraceAnalysis res=new TraceAnalysis(trace, server, endPointAnalysis, extResources, errors, null); Set<TraceTag> tags=locateTags(traceAccess, (EndPointAwareResource) res.getResource(ResourceType.APPLICATION_SERVER_END_POINT), ListUtil.size(errors) > 0); res.addTags(tags); return res; }
public TraceReport(TraceInterface traceAccess) { this((traceAccess == null) ? null /* cause exception */ : traceAccess.asTrace(), traceAccess); }
public Collection<Resource> collectExternalResources (TraceInterface traceAccess, EndPointName endpointName) { Collection<Resource> resources=topographyAnalysisService.externalResources(endpointName, traceAccess); if (logger.isTraceEnabled()) { Trace trace=traceAccess.asTrace(); if (ListUtil.size(resources) > 0) { for (Resource r : resources) { logger.trace("collectExternalResources(" + trace + ")[" + endpointName + "]: " + r); } } else { logger.trace("collectExternalResources(" + trace + ")[" + endpointName + "] no resources"); } } return resources; }
public List<TraceError> locateErrors(TraceInterface traceAccess) { if (traceAccess instanceof TraceErrorsCarrier) { TraceErrorsCarrier carrier=(TraceErrorsCarrier) traceAccess; if (!carrier.isTraceErrorAnalysisRequired()) { return carrier.getErrors(); } } Trace trace=traceAccess.asTrace(); List<TraceError> errors=errorAnalyzer.locateErrors(trace); if (ListUtil.size(errors) > 0) { if (logger.isDebugEnabled()) { logger.debug("locateErrors(" + trace + ") found " + errors.size() + " errors"); } if (logger.isTraceEnabled()) { for (TraceError error : errors) { logger.trace("locateErrors(" + trace + "): " + error); } } } else { if (logger.isTraceEnabled()) { // trace level since most of the traces have no errors logger.trace("locateErrors(" + trace + ") no errors"); } } return errors; }
public List<Command> processTrace(TraceInterface traceAccess) { Trace trace=traceAccess.asTrace(); if (filter.filters(traceAccess)) { if (log.isDebugEnabled()) { log.debug("Trace [" + trace.getId() + "] was filtered"); } return Collections.emptyList(); } TraceAnalysis analysis = analyzer.analyze(traceAccess); List<Command> commands = commandGenerator.generateCommands(analysis); List<Command> metricGeneratorsCommands = metricsGenerators.generateCommands(traceAccess, analysis); commands.addAll(metricGeneratorsCommands); // TODO: Aggregation of some commands (increment) could happen here return commands; }
Trace trace=traceAccess.asTrace(); boolean multipleFrames=false, invokeAnalyzers=true;
public Set<TraceTag> locateTags (TraceInterface traceAccess, EndPointAwareResource endpoint, boolean hasErrors) { if (traceAccess instanceof TraceTagsCarrier) { TraceTagsCarrier tagsCarrier=(TraceTagsCarrier) traceAccess; if (!tagsCarrier.isTraceTagsAnalysisRequired()) { return tagsCarrier.getTags(); } } return locateTags(new TraceTagRuleContext(traceAccess.asTrace(), endpoint, hasErrors)); }
public EndPointAnalysis locateEndPoint (TraceInterface traceAccess) { Trace trace=traceAccess.asTrace(); EndPointAnalysis traceAnalysis=trace.getEndpoint(); EndPointAnalysis endPointAnalysis=(traceAccess instanceof EndPointAnalysisCarrier)
public boolean filters(TraceInterface traceAccess) { Trace trace = traceAccess.asTrace(); Frame rootFrame = trace.getRootFrame(); Operation op = rootFrame.getOperation(); OperationMap details = op.get("request", OperationMap.class); if (details == null) { return false; } String path = details.get(OperationFields.URI, String.class); if (StringUtil.isEmpty(path)) { return false; } if (pathMatchesPatterns(path)) { if (log.isDebugEnabled()) { log.debug("Frame " + op.getLabel() + " with path " + path + " filtered"); } return true; } return false; }
public TraceSource locateTraceSource(TraceInterface traceAccess) { if (!active || traceAccess == null || ListUtil.size(analyzers) <= 0) { return null; } TraceSource source = null; if (traceAccess instanceof TraceSourceCarrier) { TraceSourceCarrier carrier = (TraceSourceCarrier) traceAccess; if (!carrier.isTraceSourceAnalysisRequired()) { source = carrier.getTraceSource(); } } if (source == null) { Frame root = traceAccess.asTrace().getRootFrame(); for (TraceSourceAnalyzer analyzer : analyzers) { source = analyzer.getTraceSource(root); if (source != null) { break; } } } return TraceSource.isNullSource(source) ? null : source; }