Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
bb12990
add readme and info about commit of the source repository
lbloder Aug 4, 2025
14d2f3b
delete jfr file on jvm exit
lbloder Aug 5, 2025
bdd7b3a
further split into smaller methods
lbloder Aug 5, 2025
1b88a3d
deduplicate frames in order to save bandwidth, add converter tests
lbloder Aug 22, 2025
81aef38
remove Platform Enum, use string constants instead for compatibility …
lbloder Aug 25, 2025
8f32429
implement equals and hashcode for SentryStackFrame to make frame dedu…
lbloder Aug 25, 2025
b7645f2
bump api
lbloder Aug 25, 2025
66ae530
improve error handling, fix start stop start flow
lbloder Aug 26, 2025
037b237
add new testfile
lbloder Aug 26, 2025
2979b16
calculate ticksPerNanosecond in constructor
lbloder Aug 26, 2025
a32b71e
adapt Ratelimiter to check for both ProfileChunk and ProfileChunkUi r…
lbloder Aug 29, 2025
4b1e57e
update ratelimiter test to check for both profileChunk and profileChu…
lbloder Aug 29, 2025
8992018
use string constant instead of string
lbloder Aug 29, 2025
c9a6bc0
Format code
getsentry-bot Aug 29, 2025
451f191
add non aggregating event collector to send each event individually, …
lbloder Sep 4, 2025
885f0ab
adapt converter tests to new non-aggregated converter
lbloder Sep 5, 2025
7ae393e
Merge branch 'feat/continuous-profiling-03' of github.com:getsentry/s…
lbloder Sep 5, 2025
b1701c5
Format code
getsentry-bot Sep 5, 2025
30cb14b
add logging to loadProfileConverter
lbloder Sep 8, 2025
94a37b1
Format code
getsentry-bot Sep 8, 2025
524a32a
fix duplication of events
lbloder Sep 8, 2025
2cfe307
catch all exception happening when converting from jfr
lbloder Sep 17, 2025
a559bb3
add exists and writable info to log message
lbloder Sep 19, 2025
94a0097
add method to safely delete file
lbloder Sep 19, 2025
0179ea3
remove setNative call
lbloder Sep 19, 2025
66a6c33
fix test
lbloder Sep 22, 2025
bb10259
fix reference to commit we vendored from
lbloder Sep 22, 2025
7a9c931
drop event if it cannot be processed to not lose the whole chunk
lbloder Sep 23, 2025
bcb7feb
make format
lbloder Sep 23, 2025
0ea8a2d
fix test
lbloder Sep 23, 2025
2e54dde
Format code
getsentry-bot Sep 23, 2025
242ca41
Profiling - OTEL profiling fix, Stabilization, Logging (#4746)
lbloder Sep 26, 2025
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
Prev Previous commit
Next Next commit
add logging to loadProfileConverter
  • Loading branch information
lbloder committed Sep 8, 2025
commit 30cb14b3ee1a9029d7a52678b8bbeb549da37541
9 changes: 9 additions & 0 deletions sentry-async-profiler/api/sentry-async-profiler.api
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@ public final class io/sentry/asyncprofiler/convert/JfrAsyncProfilerToSentryProfi
public static fun convertFromFileStatic (Ljava/nio/file/Path;)Lio/sentry/protocol/profiling/SentryProfile;
}

public final class io/sentry/asyncprofiler/convert/NonAggregatingEventCollector : io/sentry/asyncprofiler/vendor/asyncprofiler/jfr/event/EventCollector {
public fun <init> ()V
public fun afterChunk ()V
public fun beforeChunk ()V
public fun collect (Lio/sentry/asyncprofiler/vendor/asyncprofiler/jfr/event/Event;)V
public fun finish ()Z
public fun forEach (Lio/sentry/asyncprofiler/vendor/asyncprofiler/jfr/event/EventCollector$Visitor;)V
}

public final class io/sentry/asyncprofiler/profiling/JavaContinuousProfiler : io/sentry/IContinuousProfiler, io/sentry/transport/RateLimiter$IRateLimitObserver {
public fun <init> (Lio/sentry/ILogger;Ljava/lang/String;ILio/sentry/ISentryExecutorService;)V
public fun close (Z)V
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import io.sentry.IProfileConverter;
import io.sentry.ISentryExecutorService;
import io.sentry.NoOpContinuousProfiler;
import io.sentry.ScopesAdapter;
import io.sentry.SentryLevel;
import java.util.Iterator;
import java.util.ServiceLoader;
Expand Down Expand Up @@ -49,16 +50,22 @@ public final class ProfilingServiceLoader {
* @return an IProfileConverter instance or null if no provider is found
*/
public static @Nullable IProfileConverter loadProfileConverter() {
ILogger logger = ScopesAdapter.getInstance().getGlobalScope().getOptions().getLogger();
try {
JavaProfileConverterProvider provider =
loadSingleProvider(JavaProfileConverterProvider.class);
if (provider != null) {
logger.log(
SentryLevel.DEBUG,
"Loaded profile converter from provider: %s",
provider.getClass().getName());
return provider.getProfileConverter();
} else {
logger.log(SentryLevel.DEBUG, "No profile converter provider found, returning null");
return null;
}
} catch (Throwable t) {
// Log error and return null to skip conversion
logger.log(SentryLevel.ERROR, "Failed to load profile converter provider, returning null", t);
return null;
}
}
Expand All @@ -74,3 +81,4 @@ public final class ProfilingServiceLoader {
}
}
}

Loading