Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# main - Unreleased
- **[CHANGE]**: change log config to allow better control of logging [#103](https://github.com/intergral/deep/pull/103) [@Umaaz](https://github.com/Umaaz)
- **[CHANGE]**: change tracepoint logger to be a plugin [#106](https://github.com/intergral/deep/pull/106) [@Umaaz](https://github.com/Umaaz)
- **[FEATURE]**: plugin: Add plugin for Otel [#87](https://github.com/intergral/deep/pull/87) [@Umaaz](https://github.com/Umaaz)
- **[FEATURE]**: traces: Add apis for creating traces from tracepoints [#87](https://github.com/intergral/deep/pull/87) [@Umaaz](https://github.com/Umaaz)
- **[ENHANCEMENT]**: make checkstyle use regex for license check [#94](https://github.com/intergral/deep/pull/94) [@Umaaz](https://github.com/Umaaz)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,14 @@

package com.intergral.deep.agent.api.logger;

import com.intergral.deep.agent.api.spi.IDeepPlugin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* This is the default tracepoint logger that will log to the default Deep logger.
*/
public class TracepointLogger implements ITracepointLogger {
public class TracepointLogger implements ITracepointLogger, IDeepPlugin {

private static final Logger LOGGER = LoggerFactory.getLogger(TracepointLogger.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@

import com.intergral.deep.agent.api.IRegistration;
import com.intergral.deep.agent.api.logger.ITracepointLogger;
import com.intergral.deep.agent.api.logger.TracepointLogger;
import com.intergral.deep.agent.api.resource.Resource;
import com.intergral.deep.agent.api.settings.ISettings;
import com.intergral.deep.agent.api.spi.IDeepPlugin;
import com.intergral.deep.agent.api.spi.Ordered;
import com.intergral.deep.agent.types.TracePointConfig.EStage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
Expand All @@ -34,6 +34,7 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand All @@ -53,8 +54,7 @@ public class Settings implements ISettings {
private static final AtomicBoolean IS_ACTIVE = new AtomicBoolean(true);
private final Properties properties;
private Resource resource;
private final Collection<IDeepPlugin> plugins = new ArrayList<>();
private ITracepointLogger tracepointLogger = new TracepointLogger();
private final List<IDeepPlugin> plugins = new ArrayList<>();

private Settings(Properties properties) {
this.properties = properties;
Expand Down Expand Up @@ -400,7 +400,7 @@ public void setActive(boolean state) {
* @param snapshotId the snapshot id
*/
public void logTracepoint(final String logMsg, final String tracepointId, final String snapshotId) {
this.tracepointLogger.logTracepoint(logMsg, tracepointId, snapshotId);
getTracepointLogger().logTracepoint(logMsg, tracepointId, snapshotId);
}

/**
Expand All @@ -409,20 +409,9 @@ public void logTracepoint(final String logMsg, final String tracepointId, final
* @return the tracepoint logger
*/
public ITracepointLogger getTracepointLogger() {
return tracepointLogger;
return getPlugin(ITracepointLogger.class);
}

/**
* Set the tracepoint logger to a new logger.
*
* @param tracepointLogger the new logger
*/
public void setTracepointLogger(final ITracepointLogger tracepointLogger) {
if (tracepointLogger == null) {
return;
}
this.tracepointLogger = tracepointLogger;
}

/**
* Add a plugin to the current config.
Expand All @@ -432,6 +421,7 @@ public void setTracepointLogger(final ITracepointLogger tracepointLogger) {
*/
public IRegistration<IDeepPlugin> addPlugin(final IDeepPlugin plugin) {
this.plugins.add(plugin);
this.plugins.sort(Comparator.comparing(Ordered::order));
return new IRegistration<IDeepPlugin>() {
@Override
public void unregister() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ com.intergral.deep.plugin.JavaPlugin
com.intergral.deep.agent.api.auth.BasicAuthProvider
com.intergral.deep.plugin.PrometheusMetricsPlugin
com.intergral.deep.plugin.OtelPlugin
com.intergral.deep.agent.api.logger.TracepointLogger
Original file line number Diff line number Diff line change
Expand Up @@ -130,23 +130,20 @@ void setActive() {
}

@Test
void tracepointLogger_not_null() {
void tracepointLogger_null() {
final Settings settings = Settings.build(new HashMap<>());
assertNotNull(settings.getTracepointLogger());
}

@Test
void tracepointLogger_set_null() {
final Settings settings = Settings.build(new HashMap<>());
settings.setTracepointLogger(null);
assertNotNull(settings.getTracepointLogger());
assertNull(settings.getTracepointLogger());
}

@Test
void tracepointLogger_can_log() {
final Settings settings = Settings.build(new HashMap<>());
final ITracepointLogger tracepointLogger = Mockito.mock(ITracepointLogger.class);
settings.setTracepointLogger(tracepointLogger);
abstract class TPLogger implements IDeepPlugin, ITracepointLogger {

}

final TPLogger tracepointLogger = Mockito.mock(TPLogger.class);
settings.setPlugins(Collections.singletonList(tracepointLogger));
assertNotNull(settings.getTracepointLogger());

settings.logTracepoint("log", "tp_id", "snap_id");
Expand Down