我需要阻止按条件发送一些事件。(运行状况检查)
我使用的是Spring库:
implementation "io.sentry:sentry-spring-boot-starter:5.4.1"
implementation "io.sentry:sentry-logback:5.4.1"
它的工作原理是,sentry有很多事务等,配置是:
sentry:
dsn: https://....ingest.sentry.io/....
traces-sample-rate: 1.0
我将使用事件处理器阻止一些具有运行状况检查数据的事件:https://docs.sentry.io/platforms/java/guides/spring-boot/advanced-usage/#registering-custom-event-processor
@Component
public class SentryCallbackExtension implements EventProcessor {
@Value("${app.sentry.exclude.transactions}")
private List<String> excludes;
@Override
public @Nullable SentryEvent process(@NotNull SentryEvent event, @Nullable Object hint) {
return StringUtils.containsAnyIgnoreCase(
event.getTransaction(), excludes.toArray(new String[0])
) ? null : event;
}
}
此块的配置为:
app:
sentry:
exclude:
transactions: "/actuator/health"
但它不起作用。sentry服务中有很多运行状况检查事件。
2条答案
按热度按时间ryevplcw1#
我使用了TracesSamplerCallback(https://docs.sentle.io/platforms/java/guides/spring-boot/configuration/filtering/#using-sampling-to-filter-transaction-events),它很有帮助。它可以阻止所有的事件/事务(不仅仅是应用程序的自定义)。
daupos2t2#
EventProcessor
接口有两个方法:SentryEvent process(SentryEvent event, Object hint)
-用于处理事件SentryTransaction process(SentryTransaction transaction, Object hint)
-用于处理事务由于您希望筛选出从对健康终结点的请求中创建的事务,因此需要实现第二个方法,该方法将
SentryTransaction
作为第一个参数。