Skip to content

Commit 17ad9d6

Browse files
committed
Metrics Envelope item deserialization
1 parent 95094ac commit 17ad9d6

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

sentry/api/sentry.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2955,6 +2955,7 @@ public final class io/sentry/SentryEnvelopeItem {
29552955
public fun getEvent (Lio/sentry/ISerializer;)Lio/sentry/SentryEvent;
29562956
public fun getHeader ()Lio/sentry/SentryEnvelopeItemHeader;
29572957
public fun getLogs (Lio/sentry/ISerializer;)Lio/sentry/SentryLogEvents;
2958+
public fun getMetrics (Lio/sentry/ISerializer;)Lio/sentry/SentryMetricsEvents;
29582959
public fun getTransaction (Lio/sentry/ISerializer;)Lio/sentry/protocol/SentryTransaction;
29592960
}
29602961

sentry/src/main/java/io/sentry/JsonSerializer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ public JsonSerializer(@NotNull SentryOptions options) {
120120
deserializersByClass.put(SentryLevel.class, new SentryLevel.Deserializer());
121121
deserializersByClass.put(SentryLockReason.class, new SentryLockReason.Deserializer());
122122
deserializersByClass.put(SentryLogEvents.class, new SentryLogEvents.Deserializer());
123+
deserializersByClass.put(SentryMetricsEvents.class, new SentryMetricsEvents.Deserializer());
123124
deserializersByClass.put(SentryPackage.class, new SentryPackage.Deserializer());
124125
deserializersByClass.put(SentryRuntime.class, new SentryRuntime.Deserializer());
125126
deserializersByClass.put(SentryReplayEvent.class, new SentryReplayEvent.Deserializer());

sentry/src/main/java/io/sentry/SentryEnvelopeItem.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,17 @@ public final class SentryEnvelopeItem {
158158
}
159159
}
160160

161+
public @Nullable SentryMetricsEvents getMetrics(final @NotNull ISerializer serializer)
162+
throws Exception {
163+
if (header == null || header.getType() != SentryItemType.TraceMetric) {
164+
return null;
165+
}
166+
try (final Reader eventReader =
167+
new BufferedReader(new InputStreamReader(new ByteArrayInputStream(getData()), UTF_8))) {
168+
return serializer.deserialize(eventReader, SentryMetricsEvents.class);
169+
}
170+
}
171+
161172
public static SentryEnvelopeItem fromUserFeedback(
162173
final @NotNull ISerializer serializer, final @NotNull UserFeedback userFeedback) {
163174
Objects.requireNonNull(serializer, "ISerializer is required.");

0 commit comments

Comments
 (0)