Skip to content

Commit a81461d

Browse files
authored
Merge pull request #91 from intergral/trace_tracepoints
feat(traces): update trace support
2 parents 43c24a6 + ef74535 commit a81461d

File tree

25 files changed

+1893
-584
lines changed

25 files changed

+1893
-584
lines changed

.idea/codeStyles/Project.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

agent-api/src/main/java/com/intergral/deep/agent/api/plugin/ITraceProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,7 @@ interface ISpan extends AutoCloseable {
4747
String traceId();
4848

4949
String spanId();
50+
51+
void addAttribute(String key, String value);
5052
}
5153
}

agent/src/main/java/com/intergral/deep/agent/DeepAgent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public DeepAgent(final Settings settings,
6262
this.grpcService = new GrpcService(settings);
6363
this.pollService = new LongPollService(settings, this.grpcService);
6464
this.tracepointConfig = new TracepointConfigService(tracepointInstrumentationService);
65-
final PushService pushService = new PushService(settings, grpcService);
65+
final PushService pushService = new PushService(grpcService);
6666

6767
Callback.init(settings, tracepointConfig, pushService);
6868
}

agent/src/main/java/com/intergral/deep/agent/push/PushService.java

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,11 @@
1717

1818
package com.intergral.deep.agent.push;
1919

20-
import com.intergral.deep.agent.api.plugin.ISnapshotContext;
21-
import com.intergral.deep.agent.api.plugin.ISnapshotDecorator;
22-
import com.intergral.deep.agent.api.resource.Resource;
2320
import com.intergral.deep.agent.grpc.GrpcService;
24-
import com.intergral.deep.agent.settings.Settings;
2521
import com.intergral.deep.agent.types.snapshot.EventSnapshot;
2622
import com.intergral.deep.proto.tracepoint.v1.Snapshot;
2723
import com.intergral.deep.proto.tracepoint.v1.SnapshotResponse;
2824
import io.grpc.stub.StreamObserver;
29-
import java.util.Collection;
3025
import org.slf4j.Logger;
3126
import org.slf4j.LoggerFactory;
3227

@@ -36,42 +31,23 @@
3631
public class PushService {
3732

3833
private static final Logger LOGGER = LoggerFactory.getLogger(PushService.class);
39-
private final Settings settings;
4034
private final GrpcService grpcService;
4135

4236

43-
public PushService(final Settings settings, final GrpcService grpcService) {
44-
this.settings = settings;
37+
public PushService(final GrpcService grpcService) {
4538
this.grpcService = grpcService;
4639
}
4740

4841
/**
4942
* Decorate and push the provided snapshot.
5043
*
5144
* @param snapshot the snapshot to push
52-
* @param context the context of where the snapshot is collected
5345
*/
54-
public void pushSnapshot(final EventSnapshot snapshot, final ISnapshotContext context) {
55-
decorate(snapshot, context);
46+
public void pushSnapshot(final EventSnapshot snapshot) {
5647
final Snapshot grpcSnapshot = PushUtils.convertToGrpc(snapshot);
5748
this.grpcService.snapshotService().send(grpcSnapshot, new LoggingObserver(snapshot.getID()));
5849
}
5950

60-
private void decorate(final EventSnapshot snapshot, final ISnapshotContext context) {
61-
final Collection<ISnapshotDecorator> plugins = this.settings.getPlugins(ISnapshotDecorator.class);
62-
for (ISnapshotDecorator plugin : plugins) {
63-
try {
64-
final Resource decorate = plugin.decorate(this.settings, context);
65-
if (decorate != null) {
66-
snapshot.mergeAttributes(decorate);
67-
}
68-
} catch (Throwable t) {
69-
LOGGER.error("Error processing plugin {}", plugin.getClass().getName());
70-
}
71-
}
72-
snapshot.close();
73-
}
74-
7551
static class LoggingObserver implements StreamObserver<SnapshotResponse> {
7652

7753
private final String id;

agent/src/main/java/com/intergral/deep/agent/settings/Settings.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.intergral.deep.agent.api.resource.Resource;
2424
import com.intergral.deep.agent.api.settings.ISettings;
2525
import com.intergral.deep.agent.api.spi.IDeepPlugin;
26+
import com.intergral.deep.agent.types.TracePointConfig.EStage;
2627
import java.io.FileInputStream;
2728
import java.io.FileNotFoundException;
2829
import java.io.IOException;
@@ -182,6 +183,8 @@ public static <T> T coerc(final String str, final Class<T> type) {
182183
return (T) Level.parse(str);
183184
} else if (type == Pattern.class) {
184185
return (T) Pattern.compile(str);
186+
} else if (type == EStage.class) {
187+
return (T) EStage.fromArg(str);
185188
} else if (type == URL.class) {
186189
try {
187190
return (T) new URL(str);

agent/src/main/java/com/intergral/deep/agent/tracepoint/TracepointConfigService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public class TracepointConfigService implements ITracepointConfig {
3939
private final TracepointInstrumentationService tracepointInstrumentationService;
4040
private String currentHash = null;
4141
private final Collection<TracePointConfig> customTracepoints = new ArrayList<>();
42-
private Collection<TracePointConfig> installedTracepoints = new ArrayList<>();
42+
protected Collection<TracePointConfig> installedTracepoints = new ArrayList<>();
4343
@SuppressWarnings("unused")
4444
private long lastUpdate;
4545

agent/src/main/java/com/intergral/deep/agent/tracepoint/cf/CFFrameProcessor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ public CFFrameProcessor(final Settings settings,
3838
final IEvaluator evaluator,
3939
final Map<String, Object> variables,
4040
final Collection<TracePointConfig> tracePointConfigs,
41-
final long[] lineStart, final StackTraceElement[] stack) {
42-
super(settings, evaluator, variables, tracePointConfigs, lineStart, stack);
41+
final long[] lineStart, final StackTraceElement[] stack,
42+
final String methodName) {
43+
super(settings, evaluator, variables, tracePointConfigs, lineStart, stack, methodName);
4344
}
4445

4546
@Override

0 commit comments

Comments
 (0)